InfoCoBuild

CS 61A: The Structure and Interpretation of Computer Programs

CS 61A: The Structure and Interpretation of Computer Programs (Fall 2012, UC Berkeley). Instructor: John DeNero. An 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. 61A uses the Python 3 programming language. Python is a popular language in both industry and academia.

Introduction


Lecture 01 - Introduction, Functions
Lecture 02 - Functions, Expressions, Names
Lecture 03 - Control
Lecture 04 - High-Order Functions
Lecture 05 - Environments
Lecture 06 - Newton's Method
Lecture 07 - Objects
Lecture 08 - Data Abstraction
Lecture 09 - Sequences
Lecture 10 - Strings
Lecture 11 - Lists and Dictionaries
Lecture 12 - Midterm Review
Lecture 13 - Mutable Data
Lecture 14 - Mutable Data Types
Lecture 15 - Object-Oriented Programming
Lecture 16 - Inheritance
Lecture 17 - Implanting Objects
Lecture 18 - Multiple Representations
Lecture 19 - Generic Functions
Lecture 20 - Recursion
Lecture 21 - Tree Recursion
Lecture 22 - Recursive Data
Lecture 23 - Orders of Growth
Lecture 24 - Sets
Lecture 25 - Functional Programming
Lecture 26 - Exceptions
Lecture 27 - Calculator
Lecture 28 - The Halting Problem and Incompleteness
Lecture 29 - Interpreters
Lecture 30 - Tail Calls
Lecture 31 - User Interfaces (Alan Kay: Doing with Images Makes Symbols)
Lecture 32 - Iterators and Streams
Lecture 33 - Declarative Programming
Lecture 34 - Unification
Lecture 35
Lecture 36 - Distributed Computing
Lecture 37 - MapReduce
Lecture 38 - Conclusion

References
CS61A: Structure and Interpretation of Computer Programs, Fall 2012
Instructor: John DeNero. Course Information and Policies. Lecture Slides. Python 3 Documentation. Online Textbook.