This selection of programming assignments, drawn from material developed for MIT's introductory computer science subject, is provided for the convenience of instructors teaching courses based on Structure and Interpretation of Computer Programs, and as a self-study aid for people using the book on their own.There is a separate directory for each assignment. In general, individual directories will contain:
- The assignment in PostScript form (.ps) ready to be printed.
- The assignment source text, which you can modify and reprint. The source is designed to be processed by the LaTex text formatting system. In order to process the sources, you will need to download some LaTeX support files from this site. In addition to the LaTeX text sources, some of the assignments require figures, which are included as graphics files.
- One or more files of source code (.scm) written in the Scheme dialect of Lisp. Most of the assignments involve modifying and extending such code.
- Answers to the problems are not included.
Note to instructors
The PostScript files here are provided as a guide to what the problem sets should look like. You should not expect to simply print them out and assign them without modification. Some of the assignments available rely on specific features of MIT Scheme and idiosyncrasies our programming environment at MIT. Also, the exercise numbers alluded to in "the course notes" may not match the published textbook, since these assignments were constructed before the final revisions to the manuscript. In some cases (such as the adventure game) you will want to modify the problem set to remove MIT-isms and replace them with your own local color. Finally, the assignments are referred to by number -- problem set 1, problem set 2, etc. These numbers are the assignment numbers used during the semester that each one was assigned at MIT, and you will likely want to change them.Copyright
Copyright © 1985-1996 Massachusetts Institute of Technology.
The material in these problem sets may be duplicated, modified, and redistributed for any non-commercial use in conjunction with the book Structure and Interpretation of Computer Programs.
Available assignments
Assignment Relevant sections
in textbookIntroductory assignment 1.1 The game of twenty-one 1.3 Graphing with higher-order procedures 1.3 Continued fractions 1.3 RSA encryption 1.2.6, 2.2.1 Prisoner's dilemma 1.3, 2.2.1 Picture language 2.2.4 Term-rewriting evaluator 1.1, 2.3 Automated freshman advisor 2.3 Generic Arithmetic 2.4, 2.5 Object-oriented adventure game
3.1, 3.2, 3.3 Concurrency 3.4 Streams and series 3.5 Evaluators 4.1, 4.2 Languages for object-oriented progamming 4.1 Register machines and compilation 5.1, 5.2, 5.4, 5.5 Last modified: Tue Oct 8 17:24:15 1996