5 ms·
It's too bad that this is just a compressed sampler course and that they are not reinstating the original class. I took the equivalent course at Berkeley, which
by busted 15y ago
It's too bad that this is just a compressed sampler course and that they are not reinstating the original class. I took the equivalent course at Berkeley, which also taught SICP with Scheme, and I can't possibly imagine a better introductory Computer Science class, for 2 reasons:
First, as is stated everywhere else, SICP is a beautiful book and it does an amazingly fun and efficient job teaching you many, many fundamental topics in CS, and more than that it teaches you how to think and develop good intuitions for it.
Second, and maybe an opinion you haven't heard, teaching the class in Scheme is a huge benefit, and anyone who says the opposite just plain sucks. Pardon my coarseness, but so many kids who start out their college career are little shits who think they know everything about programming and that taking an introductory class is beneath them. I've heard that sentiment expressed almost verbatim, along with people listing off all the projects they've done in python and java and whatnot. When the professor (no longer Brian Harvey unfortunately!) starts teaching the class in Scheme they all shut their grubby little mouths and actually listen and try to learn something. The naysayers don't understand that the class isn't about programming, it's about computer science, and just the beauty of seeing that this weird functional language you've never seen before can be used to do everything from taking derivatives elegantly to implementing it's own interpreter to developing a query language or an OO language, etc, goes a long way in illustrating the malleability, openness, and sheer potential of Computer Science to new students who should be learning just that.
- throw_away 15y agoLooks like Brian Harvey is retiring, but before he does, he's working on a self-paced version of 61A, which will also include chapter 5 of SICP! (Cal, historically, has always only taught chapters 1-4, to the point, IIRC, of having a special SICP published without chapter 5). http://www.cs.berkeley.edu/~bh/61a.html http://www.cs.berkeley.edu/~bh/61a.html I hope this is made available to the public, as it's a bit like discovering a long-lost director's cut ending to a much-loved film.
- kruhft 15y agoI don't have my copy of SICP with me at the moment. Could you explain what is covered in chapter 5? Edit: Internet to the resucue: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-30.html#%_chap_5 http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-30.html...
- burke 15y ago> Pardon my coarseness, but so many kids who start out their college career are little shits who think they know everything about programming and that taking an introductory class is beneath them. Unfortunately enough, most intro classes are beneath a lot of these "little shits". SICP, not so much.
- snikolov 15y agoI can't possibly imagine a better introductory Computer Science class MIT student here. My year was the first to have to do the new curriculum. Here's my understanding of it. The replacement courses (6.01 and 6.02) are not supposed to be intro CS courses. They are meant to expose people to broadly applicable engineering principles in both electrical engineering and computer science. And like SICP, they are not about programming. What used to happen with the old curriculum is that everyone --- both electrical engineering and computer science students --- would take 6.001, circuits, signals & systems, and architecture. With the current curriculum you get broad exposure in the beginning with 6.01 and 6.02 and have a bit more flexibility in your other requirements (if you're into pure CS, you can avoid sitting through a semester of circuit theory, if you want). How was it in Berkeley? Are the EE and CS departments separate?
- azernik 15y agoThe departments are not separate, but the majors are; that is, the EECS department runs several majors, broadly speaking falling into the categories of a) pure CS, with a a course or two of EE to give the general idea; and b) EECS, two majors (Electrical and Computer Engineering, or Computer Science and Engineering) which offer varying combos of CS and EE. (I may have missed one or two). All of these degree programs require CS61A (the local version of SICP), though the department has switched to a version of the course taught in Python.