The Structure and Interpretation of Computer Programs

Course Summary

This course is based on CS 61A The Structure and Interpretation of Computer Programs, Spring 2008 made available by University of California, Berkeley: Webcast.Berkeley under the Creative commons BY-NC-ND 2.5 license.

This course provides an introduction to programming and computer science. It is taught using Scheme, a dialect of the LISP programming language. It is based on the book Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. An online version of book is available here. The course is taught by Brian Harvey, Computer Science Division, University of California at Berkeley.

This course exposes students to techniques of abstraction at several levels: (a) within a programming language, using higher-order functions, manifest types, data-directed programming, and message-passing; (b) between programming languages, using functional and rule-based languages as examples. It also relates these techniques to the practical problems of implementation of languages and algorithms on a von Neumann machine. There are several significant programming projects to be done in Scheme.

Course Material

1. Revised Report on Scheme (484 KB pdf)Scheme is a dialect of Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics. A wide variety of programming paradigms can be conveniently expressed in Scheme.