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