Computer Science

From Boozled

Jump to: navigation, search

Contents

Description

It should be possible to collect all the material required to complete a Degree in computer science. Please don't cut and paste content from other sites unless it's appropriate and definitely not if it's not got the appropriate license. We know this will mean we get dead links but that the internet. Please cite all references and use links to all external material.

I expect to lean heavily on the MIT Free Online Course Materials. I wish the Open University could afford to open up their courses in the same way. Ideally I would like to have material from a broad range of course or universities if possible.

Curriculum

This is where I intend to give some routes through the courses once there is enough material here. For now I recommend people start with either HtDP or SICP but don't assume you need to do both. If you are new to programming or want to improve your programming then HtDP is a good choice and starts off easily enough for most. If you have been programming for some time and have some background Mathematics then I would choose SICP.

If you are happy to design your own curriculum then have a look at the ACM Curricula Recommendations. In particular CS2001 and the CS2008 update to CS2001. There are also some sample Curricula at Berkeley (see chapter 4) and the Bachelor of Science in Mathematics with Computer Science/Course 18-C at MIT


It's safe to start with either SICP or HtDP because both teach some fundamentals that are required for other Computer Science topics, namely, programming skills. While programming is not the most important aspect of Computer Science it is necessary to have some programming skills to get the most from it, at least thats my experience so far.


Courses Materials

6.000 How To Design Programs

Front Cover of HtDP
Front Cover of HtDP

This is based on How To Design Programs or HtDP, a free book. There is some more information on this book, HtDP at Wikipedia. This book appears to be becoming the preferred course text for a first course in programming. It start off gently enough but gets progressively harder. SICP starts off easy (first 10%) then gets hard, then very hard. I would personally recommend people start with HtDP first and if they feel the need to tackle SICP then do so.

Matthias Felleisen Course is based on this text.

Why not SICP Another Power Point on why SICP is a bad first choice course.

Some more interesting reading about Why HtDP is a good first choice course. Some of the slides are excellent.


I am noticing a theme where people (in particular people related with HtDP) are quite hard on SICP. I have no idea if this view is justified yet because I have not studied both books and have only had a biased view for HtDP from online material so far.


6.001 Structure and Interpretation of Computer Programs

SICP Book Cover
SICP Book Cover

This is based on Structure and Interpretation of Computer Programs or SICP, a free book. There is some more information on this book at SICP at Wikipedia. MIT used to run their 6.001 Course using this book, hence the same name. For those that would like to see what this book is about there is the There is also * SICP Lectures freely available online.

Background about the MIT 6.001 course

This book has been used for the following courses, MIT 6.001, Caltech CS 1, and Berkeley CS 61. This kind of gives an idea of the caliber of the book.


Email List

Join the SICP Mailing List


Further Reading

You can find another list of free reading resource here

Please let me know if any pages I point at are infringing copyrights etc and I will remove the links. I do a cursory check of the pages but it's not exhaustive.

Programming and Languages

Machine Learnging

Compilers

Tools

Papers and Opinions

Non Free Resources

List of Books the Author Considers Fundamental to Comp Sci.

Free Resources

Personal tools