The material in The Structure and Interpretation of Computer Programs has been the basis of MIT's entry-level computer science subject since 1980. Most of the students who attend this subject have had little or no prior formal training in computation.

Readers who complete this book should have a good feel for the elements of style and the aesthetics of programming. They should have command of the major techniques for controlling complexity in a large system. They should be capable of reading a 50-page-long program, if it is written in an exemplary style. They should know what not to read, and what they need not understand at any moment. They should feel secure about modifying a program, retaining the spirit and style of the original author.

This book uses Scheme - a dialect of Lisp - but it doesn't formally teach the language. The purpose of this book is not to deal with the syntactic details of the language, but rather to get on with the real issues - figuring out what to compute, how to decompose problems into manageable parts, and how to work on the parts.