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.

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. An online site that provides access for
ordering books is found at bookX
site (which is an MIT based site for connecting
sellers to buyers).

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, the 6.001 lecturers 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.

Greg Durrett created a strategy game in which the player must assassinate a king by directing a team of assassins. The king has guards, however, as well as a crystal ball that shows where the assassins are.

David Farhi added trainable pets to the system. When a pet does something, you can reward or scold in various ways, and the pet uses a weight-based learning algorithm to change its behavior in the future.

Steven Herbst implemented a murder mystery, in which the player detective tries to solve the mystery by interviewing witnesses with faulty (and gradually fading) memories.

Jessica Ho designed a world inspired by Harvest Moon, where the player runs a small farm, raising crops and livestock, and trying to make a profit in the market.

Martyna Jozniak implemented a soccer game in which the player coaches a team to victory, including tackling, substitutions, and even sudden-death penalty shootouts.

Tony Kim implemented a graphical user interface for the world, complete with animations for the avatar and a method of combat by throwing inventory items at enemies.

Paresh Malalur created a graphical turn-based strategy game, with a rectangular grid of terrain images with characters sprites superimposed on it.

Brent McLaughlin implemented the game Zelda, Ocarina of Time, with a more friendly driver loop, new types of people and places and things, and a whole new world.

James Ostrowski implemented "24" with Jack Bauer at MIT, running against a real-time clock. One highlight is a chase scene with Richard Stallman on a gnu and Jack Bauer on a Linux penguin, illustrated in ASCII animation.

Maciej Pacula wrote an HTTP server in Scheme, so that the game can be played over the Web using an ordinary web browser.

Tynan Smith created a self-operating economy with items, merchants, and "recipes" that can create new items from collections of old items.

David Wen added "Oddball" mode (inspired by Halo), where the player and several autonomous competitors fight to hold on to the Oddball as long as possible before getting killed.

May 15: Final Exam information

A reminder that the final exam is scheduled for May 22
from 1:30 to 4:30 pm, in Johnson Athletic Center. The final
is closed book, but you may bring three pages of notes (8.5 by 11
inches, both sides) with you to the quiz.

The fifth and last programming project of the course is now released on the
projects page. It's due on May 11.
Also note that there is a file of provided code to be downloaded as
part of the project.

April 25: Some minor "bugs" in Project 4

There are a couple of minor glitches in the project. They don't
affect the running of the code, but they do affect the simulation
world.

We forgot to connect the student street to the rest of the world
(of course maybe this explains why students don't come to lecture, as
they are stuck on the street drinking coffee). In the
world.scm file, add the following line
(can-go-both-ways stata-center 'east 'west
student-street) to the function create-world

Exercise 5 of the project has a flaw. If
autonomous people lose health every 10 ticks, then
the whole world dies after 30 ticks since autonomous people are never
given the ability to autonomously eat food. This was unintentional.
If you want to fix this, you can also add something to
autonomous-person that
eats when it has food and is almost dead. Perhaps it could also
always pick up food when it see it. This might create a supply
problem in the world, so you might also want to add food to the
world.

April 24: Quiz 2 data

Here are the statistics on Quiz 2:

A: Grades of 85 or better

B: Grades of 70 or better

C: Grades of 55 or better

D: Grades of 40 or better

April 16: SLUG hack vs. SLUG object

In Project 4, there is a hack named SLUG that creates a
mobile-thing named SLUG, which gets confusing when you try to pick
up or drop them by name. You can fix this by changing the name of the hack
to SLUG-HACK.

April 13: Quiz 2 information

A reminder that the second quiz of the term is scheduled for April 18th
from 7:30 to 9:30. This will be held in Walker (50-340). The quiz
is closed book, but you may bring two pages of notes (8.5 by 11
inches, both sides) with you to the quiz. The quiz will cover topics
from material presented up to April 6 (i.e., including environment
models and message passing objects with state, but not including the
OOPS system of project 4).

The second quiz of the term is coming up: scheduled for April 18th
from 7:30 to 9:30. If you cannot take the quiz at this time due to a
scheduling conflict, we have arranged for a conflict exam to be held
April 19th, in 4-237 from 3:00 to 5:00. If you need to take the
conflict exam, you must send an email to Donna Kaufman (dkauf@mit.edu) to arrange this.

April 7: Project 4 released

The fourth programming project is now released on the
projects page. It's due on April 27.
Also note that there are three files of provided code to be downloaded as
part of the project.

March 19: Project 3 released

The third programming project is now released on the
projects page. It's due on April 6.
Also note that there is a file of provided code to be downloaded as
part of the project.

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