6.001 - Structure and Interpretation of Computer Programs
Spring 2006

Welcome to 6.001!

This page is your entry to the course material. It includes current announcements of the course, pointers to other sources of information such as the online textbook, the course calendar, the programming projects, and the entry point to the online tutor system.

Current announcements

May 25: Prizes in Project 4

We had a lot of great submissions for the contest for Project 4, in which you were invited to extend the Object Oriented world in an interesting way. After a lot of agonizing, Prof. Grimson selected the following entries for prizes. There were many other very intriguing submissions, and we are sorry we can't offer prizes for all of them.

  • Andre Wibisono created a complete game called Fantasia: it involves a storyline about a boy drawn into his laptop while doing a 6.001 project who then completes a set of tasks with the help of his guide, Tim the Beaver.
  • Emily King extended the Hairy Cdr world to include a range of new characters: boggarts, joegs, portraits, sirens; and converted the world into a Daedalus style game.
  • Igor Kopylov created a maze game complete with 3D graphics.
  • Brian Kardon created a space exploration and trading game. Ships sapce-jump from one planet to another trading commodities and building credit, while also dealing with rivals and competitors. Decisions on whether to attack other ships are based on inherent aggressiveness and whether the other ship has attacked this ship in the recent past.
  • Michael Maddox created a team multiplayer deathmatch extension, inspired by the game Unreal Tournament.
  • Eric Wang added mana, gold and salesmen to his game.
  • Amrik Kochhar created a networked multi user dungeon (MUD) extension to the game.
  • Adam Lerer created mailmen that use Dijkstra's algorithm to navigate a package to its recipient.
  • Andrea Bradshaw implemented hackers, complete with a Green building, a Caltech cannon, MIT hackers, Caltech hackers, Campus Police and tour groups.
  • Alex Schwendner implemented a Matrix-themed world, complete with a fully-functioning meta-circular evaluator which is integrated into the game world so that rooms are environment frames.
  • Joytsna Venkataramanan extended the world to include the game of quidditch.
  • Tom Sidoti added a goal system to the game, with quest objects, keys, locked doors, and puzzles.
  • Harold Capen Low added an extensive range of zombie-like monsters to the game, together with associated weapons and events (smells, sounds), and an extensive interactive user interface.
  • Katherine Kuan implemented the entire world of Aladdin.

May 19, 2006: Final exam details

  • Remember that the final exam is scheduled for Thursday, May 25th, from 9:00 to 12:00 in Johnson Ice Rink. The exam is closed book, but you may bring up to three 8.5x11" pages of notes with you to the exam. Good luck!

May 19, 2006: Sample quiz 2 solutions

  • Examples solutions for quiz 2 may be found here

May 12, 2006: Course evaluation for 6.001

  • The following message is from Eta Kappa Nu concerning the evaluation of 6.001 for the Course Six Underground Guide

    Subject: Win Free "VI Socks" Evaluating 6.001 Online!

    Dear students of 6.001,

    This class is participating in a pilot test of a new Underground Guide Online system. Please go to http://ug.mit.edu and fill out an evaluation for this class. The deadline for submitting evaluations is Friday, May 26th at 11:59pm, but please do it ASAP!

    Every student who completes an evaluation will have a chance to win a pair of unique, otherwise unattainable "VI Socks". Please help us test out this new system, and send any questions, complaints or comments about the new evaluation system to brianwu@mit.edu. If we do not get enough participation, we will have to continue using the antiquated, inflexible paper system. So PLEASE, evaluate this subject online NOW!

    Everybody needs more socks!

May 8, 2006: Project 5 typo

  • In section 4.2 of the project, at the bottom of page 5, there is a typographical error. The last line should read: "as soon as an argument to and evaluates to false we return false"

May 5, 2006: Project 5 released

  • Project 5 has been released on the projects page. Note that this is a shorter project than the previous ones, since you have only 1 week to complete it.

Resources for course material.

    This term we are providing several resources for the course material for you.
  • You can reach the online version of the text book (see the link below).
  • You can use the lecture based "text book" by going to the tutor, clicking on the Lecture link, and then for each lecture, using the "lecture slides in pdf" link. This provides you a version of the slides of the online lectures, together with associated text descriptions. While these lectures are NOT identical to the live lectures, they cover similar material and give you a different perspective.
  • You can access copies of the lectures slides of the actual live lecture, by clicking on the lecture link in the course calendar (see link below). Note that these will typically be posted after the actual lecture.
  • "Structure and Interpretation of Computer Programs", the text for the course, is available online (link below), or at Quantam Books, for about $64. It is also available at the MIT Coop. You may also find the BookTrack site a useful source for ordering books.
  • During lecture on February 7th, we will be gathering information which we will use to assign recitation sections. The new assignments, based on our reorganization, will be posted on this web site web later that day. Starting Wednesday, February 8th, please attend the recitation to which WE assign you, based on those posted assignments. If you have a conflict with our assignment and only if you have a conflict with that time then you should contact the course secretary by email to arrange for a new assignment. During recitation you will complete an informational form that will help us assign tutorials. Do not email the course secretary about section changes until after sections are posted.

Complete list of previous announcements

Getting help in 6.001

    Just a reminder that the Lab Assistants in the 6.001 Lab are often available to provide help with course material. This is especially true if you visit the lab during non-peak hours (i.e. not right before a project is due)! See

    How to get help/Staff hours for lab

    for staffing hours.

Additional resources

The following links contain information that is of value in understanding the content and organization of the course

How to get help/Staff hours for lab

General information
Course objectives and expected outcomes
Projects and project information

Online version of the textbook, courtesy of MIT Press

Don't Panic Handout
How to write up a project
Policy on collaborative work
Records of previous terms
Download scheme

Send comments about this site to welg@csail.mit.edu.
Copyright © 1997-2006 by Massachusetts Institute of Technology. All rights reserved.