MIT 6.001: Structure and Interpretation of Computer Programs

The legendary MIT course that shaped generations of programmers, taught by Hal Abelson and Gerald Jay Sussman.

About This Course

MIT 6.001 (SICP) is one of the most influential computer science courses ever created. Based on the textbook of the same name, it uses the Scheme programming language to teach fundamental concepts in programming and computer science.

The course covers abstraction, recursion, higher-order functions, data structures, interpreters, and the nature of computation itself. While the language is Scheme, the ideas are universal and applicable to any programming paradigm.

What You Will Learn

  • Abstraction: Building complex systems from simple parts using procedural and data abstraction
  • Recursion: Thinking recursively and understanding recursive processes vs. iterative processes
  • Higher-Order Functions: Functions as first-class citizens, passing and returning functions
  • Data Structures: Building complex data from simple primitives, pairs, lists, and trees
  • Interpreters: How programming languages work, building a metacircular evaluator
  • Register Machines: Understanding computation at the hardware level

Prerequisites

No formal prerequisites, though comfort with basic mathematics (algebra) is helpful. This course starts from scratch but moves quickly into deep territory.

Course content belongs to MIT OpenCourseWare. Licensed under Creative Commons BY-NC-SA.