Learn Lisp From MIT—for Free!!!

by Christopher Roach

Think you've got the neurological chops to stand up to the rigors of an MIT education? Ever wanted to find out what's so great about going to MIT in the first place? Perhaps, you just want to get one of the best educations possible without paying a single dime? Well, now you're in luck, thanks to MIT's willingness to embrace the ideologies of the open source community in their classrooms.

In 1999, the seeds of openness were planted by, then MIT Provost, Robert A. Brown. This initiative would eventually grow into what is now a collection of teaching materials (including syllabi, lecture slides, course notes, quizzes, exams, and in some cases, even recorded lectures) for roughly 1,100 MIT courses freely available online for access by students, teachers, and self learners. This collection of MIT's collective knowledge is known as OpenCourseWare.

The reason I am bringing up this website and all its amazing possibilities in my blog is due to the fact that alongside of offering class materials in the humanities, business, and biology (to name just a few) this website also offers some really great material in the area of computer science. In particular, there is one class I would like to point out to anyone who has ever had the desire to learn programming at MIT, or to anyone who just has a general interest in learning how to program in LISP. That class, in MIT's extremely strange numbering scheme (there's some foreshadowing for ya), is known as 6.001 or "Structure and Interpretation of Computer Programs". In this class you'll learn how to program using a dialect of LISP known as Scheme (see I told you that was foreshadowing).

Ok, so you've checked out the OpenCourseWare website that I linked above and found all kinds of great classes you want to check out, right? Well, if not, then what are you waiting for? This is MIT people! The wealth of knowledge that is being granted to you is nothing less than absolutely amazing. Nevertheless, before you get started on some class on ancient Mesopotamian pottery or something, let me point you in the direction of what is essentially "Intro to Programming" for the first year undergraduate computer science student at MIT—Structure and Interpretation of Computer Programming (SICP). This link will get you access to nearly everything you need to take the class. From its OpenCourseWare homepage, you'll have access to the course's syllabus, reading list, projects/exams, and best of all—you'll even find a link to an online version of the textbook used in the class. Believe me when I say that everything you need to take this entire class can be found online for absolutely no cost whatsoever.

Even though the SICP OpenCourseWare homepage host's a wealth of information, there's sill quite an abundance of material available on the web for getting the most out of this class. First, start by taking a look at the class's iCampus website. The two links I want you to take note of here are the ones listed in the "Using the iCampus system for self-study" section (Ok, what's with all this i-prefixing nowadays? I think I'm going to start referring to myself as iRoach in the future—I'll be a commodity.). The first link takes you to the iCampus Tutor for the class where you'll find audio recordings of lectures accompanied by the class slides (note: these are not the full lectures, but they're pretty helpful, nonetheless, and they play alongside each slide perfectly). The iCampus Tutor also has links to problem sets for you to take that will give you immediate feedback on what you've learned so far for each section (this is exactly the same site that students at MIT use when taking the class!!!). The next link that I wanted to point out takes you to a tutorial on using the iCampus Tutor system. This will get you started and on your way to learning Lisp at MIT.

So, I've exhausted all of the MIT sites that I want to discuss for this class, but I'm still not done yet. Au contraire—the best is still yet to come. First, if you plan on actually giving this class that ol' college try, then you're going to need a copy of Scheme on your system. I recommend, DrScheme. It has a very intuitive interface, very forgiving (as well as very powerful versions) of the language, and it's a super easy install on the Mac. Get it, install it, and look over some of the intro documentation to get yourself up to speed on using the IDE. Once you've installed a version of Scheme on your system, you'll be ready to start the class. This leads me to my two final links, both of which will get you copies of the actual class lectures (I mean really, it's absolutely amazing to me that you can get an entire MIT class for free online, how much more could you ask for?).

Ok, so I lied earlier—I still have one more MIT website to send you to. You can download and view each of the SICP lectures for free in either .avi or .mpg formats. I've watched the first two and they are very good. So give them a try, if you have any interest in programming in general and Lisp in particular—I think you'll like them. Finally, we come to my last link for this blog, and this one is definitely only for the hardcore geeks out there. How would you like to carry an entire MIT course with you, in your pocket, on your new 5G iPod? Well, now you can, thanks to weblogger Max Khesin. In his blog, Python and the web, Max points out the website for the original lectures and also goes on to say that he has converted all of the videos to an iPod ready format and has packaged them in an RSS feed so you can easily add all of them to iTunes, and then straight to your iPod. No fumbling around with downloading the originals and converting them yourself—thanks Max!!!

So, I think that's everything. I've tried to include every link to a pertinent resource that I can think of to make it possible for you to take an entire MIT class for free. If you follow through with everything I've posted here, within a few weeks to a few months you'll be able to tell others that you learned how to program at MIT (although, the jury is still out on the legal ramifications of listing this in your resume). So, what are you waiting for? Go forth geek, I give you the keys to kingdom, enjoy!!!


2006-03-20 20:55:25
This is great. I was actually just trying to learn Scheme in a manner similar to how it is taught at Universities. Lo and behold, I can take a Scheme course with no digging around on the net. Thanks so much for this article.
Christopher Roach
2006-03-23 13:31:27
My pleasure Russ, I'm just glad you enjoyed it. Good luck in your studies.