2
CS 61A: The Structure and Interpretation of Computer Programs (Spring 2015, UC Berkeley). Instructor: Professor John S. Denero.
FREE
This course includes
Hours of videos
1055 years, 5 months
Units & Quizzes
38
Unlimited Lifetime access
Access on mobile app
Certificate of Completion
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. 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.
Course Currilcum
- Lecture 01 – Introduction, Functions Unlimited
- Lecture 02 – Names Unlimited
- Lecture 03 – Optimal Control, Trajectory, Optimization, and Planning Unlimited
- Lecture 04 – Higher-Order Functions Unlimited
- Lecture 05 – Environments Unlimited
- Lecture 06 – Recursion Unlimited
- Lecture 07 – Tree Recursion Unlimited
- Lecture 08 – Function Examples Unlimited
- Lecture 09 – Data Abstraction Unlimited
- Lecture 10 – Sequences Unlimited
- Lecture 11 – Trees Unlimited
- Lecture 12 – Mutable Values Unlimited
- Lecture 13 – Mutable Functions Unlimited
- Lecture 14 – Objects Unlimited
- Lecture 15 – Inheritance Unlimited
- Lecture 16 – Representation Unlimited
- Lecture 17 – Generic Functions Unlimited
- Lecture 18 – Type Coercion, Linked Lists Unlimited
- Lecture 19 – Hierarchy: Memoization, Tree Class, Hailstone Trees, Binary Tree Class Unlimited
- Lecture 20 – Orders of Growth Unlimited
- Lecture 21 – Sets Unlimited
- Lecture 22 – Data Examples Unlimited
- Lecture 23 – User Interface – Alan Kay Unlimited
- Lecture 24 – Scheme Unlimited
- Lecture 25 – Exceptions Unlimited
- Lecture 26 – Calculator Unlimited
- Lecture 27 – Interpreters Unlimited
- Lecture 28 – Tail Calls Unlimited
- Lecture 29 – Iterators Unlimited
- Lecture 30 – Streams Unlimited
- Lecture 31 – Declarative Programming Unlimited
- Lecture 32 – Tables Unlimited
- Lecture 33 – Recursive Select Unlimited
- Lecture 34 – Aggregation Unlimited
- Lecture 35 – Distributed Computing Unlimited
- Lecture 36 – Distributed Data Unlimited
- Lecture 37 – Natural Language Unlimited
- Lecture 38 – Conclusion Unlimited