InfoCoBuild

CS 61A: The Structure and Interpretation of Computer Programs

CS 61A: The Structure and Interpretation of Computer Programs (Fall 2013, 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 - Names
Lecture 03 - Control
Lecture 04 - High-Order Functions
Lecture 05 - Environments
Lecture 06 - Newton's Method
Lecture 07 - Recursion
Lecture 08 - Tree Recursion
Lecture 09 - Function Examples
Lecture 11 - Data Abstraction
Lecture 12 - Sequences
Lecture 13 - Lists and Dictionaries
Lecture 14 - Strings and Sequence Processing
Lecture 15 - Mutable Data
Lecture 16 - Objects
Lecture 18 - Inheritance
Lecture 19 - Recursive Objects
Lecture 20 - Orders of Growth
Lecture 21 - Sets
Lecture 22 - Multiple Representations
Lecture 23 - Generic Functions
Lecture 24 - Data Examples
Lecture 26 - Functional Programming
Lecture 27 - Exceptions
Lecture 28 - Calculator
Lecture 29 - Interpreters
Lecture 30 - Tail Calls
Lecture 31 - User Interfaces (Alan Kay: Doing with Images Makes Symbols)
Lecture 32 - Iterators
Lecture 33 - Streams
Lecture 34 - Declarative Programming
Lecture 35 - Unification
Lecture 36 - Distributed Computing
Lecture 38 - MapReduce
Lecture 39 - Natural Language Processing
Lecture 40 - Conclusion

References
CS61A: Structure and Interpretation of Computer Programs, Fall 2013
Instructor: John DeNero. Course Information and Policies. Lecture Slides. Resources.