Designed for the introductory computer science subject at MIT, this book presents a unique conceptual introduction to programming that should make it required reading for every computer scientist. The authors' main concern is to give their readers command of the major techniques used to control the complexity of large software systems: building abstractions, establishing conventional interfaces, and establishing new descriptive languages. Structure and Interpretation of Computer Programscovers a wide range of material, from simple numerical programs, through symbol manipulation, logic programming, interpretation, and compilation. Main sections of the book are: Building Abstractions with Procedures; Building Abstractions with Data; Modularity, Objects, and State, Meta-Linguistic Abstraction; and Computing with Register Machines. Each chapter includes numerous exercises and programming projects. As a programming language, the book uses Scheme, a modern dialect of LISP, which incorporates block structure and lexical scoping. This book inaugurates the MIT Electrical Engineering and Computer Science series, copublished with McGraw Hill.Harold Abelson is the author of 'Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)', published 1984 under ISBN 9780262010771 and ISBN 0262010771.