The Structure and Interpretation of Computer Programs Course

The Structure and Interpretation of Computer Programs

Brian Harvey
Berkeley

Course Description

Introduction to programming and computer science. 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, programmed in a dialect of the LISP language.

Lectures

  1. Functional Programming I  Lecture favorites
  2. Functional Programming II Lecture favorites
  3. Higher-Order Procedures I  Lecture favorites
  4. Higher-Order Procedures II Lecture favorites
  5. Orders Of Growth  Lecture favorites
  6. Recursion And Iteration  Lecture favorites
  7. User Interface I (Alan Kay)  Lecture favorites
  8. User Interface II (Alan Kay)  Lecture favorites
  9. Data Abstraction  Lecture favorites
  10. Sequences  Lecture favorites
  11. Example - Calculator  Lecture favorites
  12. Hierarchical Data I  Lecture favorites
  13. Hierarchical Data II Lecture favorites
  14. Scheme-1 Interpreter  Lecture favorites
  15. Generic Operators I  Lecture favorites
  16. Generic Operators II Lecture favorites
  17. Object-Oriented Programming I  Lecture favorites
  18. Object-Oriented Programming II Lecture favorites
  19. Object-Oriented Programming III Lecture favorites
  20. Assignment And State  Lecture favorites
  21. Environments I  Lecture favorites
  22. Environments II Lecture favorites
  23. Mutable Data I  Lecture favorites
  24. Mutable Data II Lecture favorites
  25. Vectors  Lecture favorites
  26. Client-Server Programming  Lecture favorites
  27. Concurrency I  Lecture favorites
  28. Concurrency II Lecture favorites
  29. Streams I  Lecture favorites
  30. Streams II Lecture favorites
  31. Mapreduce I  Lecture favorites
  32. Metacircular Evaluator, Logo I  Lecture favorites
  33. Metacircular Evaluator, Logo II Lecture favorites
  34. Mapreduce II Lecture favorites
  35. Analyzing Evaluator  Lecture favorites
  36. Therac-25  Lecture favorites
  37. Lazy Evaluator  Lecture favorites
  38. Nondeterministic Evaluator I  Lecture favorites
  39. Nondeterministic Evaluator II Lecture favorites
  40. Logic Programming I  Lecture favorites
  41. Logic Programming II Lecture favorites
  42. Shell Programming  Lecture favorites
  43. Structure and Interpretation of Computer Programs Review I Lecture favorites
  44. Structure and Interpretation of Computer Programs Review II Lecture favorites
Leave Feedback