InfoCoBuild

CS 61A: The Structure and Interpretation of Computer Programs

CS 61A: The Structure and Interpretation of Computer Programs (Spring 2013, UC Berkeley). Instructor: Amir Kamil. 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 - Values and Side Effects
Lecture 03 - Names
Lecture 04 - Control and Higher-Order Functions
Lecture 05 - Higher-Order Functions
Lecture 06 - Environments and Lambda
Lecture 07 - Lambda and Newton's Method
Lecture 08 - Newton's Method and Recursion
Lecture 09 - Recursion
Lecture 11 - Recursion Examples
Lecture 13 - Data Abstraction
Lecture 14 - Sequences
Lecture 15 - Sequences and Iterables
Lecture 16 - Objects, Lists, and Dictionaries
Lecture 17 - Mutable Data
Lecture 18 - Mutable Data Types
Lecture 19 - Object-Oriented Programming
Lecture 20 - Inheritance
Lecture 21 - Generic Functions
Lecture 22 - Multiple Representations
Lecture 23 - Coercion and Recursive Data
Lecture 24 - Recursive Data and Orders of Growth
Lecture 25 - Trees, Memoization, and Sets
Lecture 26 - Sets and Social Implications of Computing
Lecture 30 - Functional Programming
Lecture 31 - Scheme
Lecture 32 - Exceptions
Lecture 33 - Calculator
Lecture 34 - Interpreters
Lecture 35 - Tail Calls
Lecture 36 - Iterators
Lecture 37 - Streams
Lecture 38 - The Halting Problem
Lecture 39 - Declarative Programming
Lecture 40 - Unification
Lecture 41 - MapReduce
Lecture 42 - Parallelism
Lecture 43 - Parallelism and Conclusion
Lecture 44 - Thoughts on Computer Science and Life by Prof. Brian Harvey

References
CS61A: Structure and Interpretation of Computer Programs, Spring 2013
Instructor: Amir Kamil. Course Information and Policies. Lecture Slides. Resources.