CS 61A: The Structure and Interpretation of Computer Programs
CS 61A: The Structure and Interpretation of Computer Programs (Spring 2014, UC Berkeley). Instructor: Professor Paul Hilfinger. 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.
Lecture 32 - Declarative Programming, Unification |
|
Go to the Course Home or watch other lectures:
Lecture 01 - Introduction |
Lecture 02 - Functions and Expressions |
Lecture 03 - Names and Environments |
Lecture 04 - Control |
Lecture 05 - Higher-Order Functions |
Lecture 06 - Higher-Order Functions (cont.) |
Lecture 07 - Recursion |
Lecture 08 - Tree Recursion |
Lecture 09 - Function Examples |
Lecture 10 - Function and Data Abstraction |
Lecture 11 - Sequences |
Lecture 12 - Python Sequences: Tuples |
Lecture 13 - Strings and Sequence Processing |
Lecture 14 - Mutable Data, Lists, Dictionaries |
Lecture 15 - Objects |
Lecture 16 - Inheritance |
Lecture 17 - Abstraction Support: Exceptions, Operators, Properties |
Lecture 18 - Abstraction Support (cont.), Complexity and Orders of Growth |
Lecture 19 - Complexity and Orders of Growth (cont.) |
Lecture 20 - Recursive Processes, Memoization, and Tree Structures |
Lecture 21 - Search Trees and Sets |
Lecture 22 - Search Trees and Sets, Part II |
Lecture 23 - Iterators on Trees |
Lecture 24 - Programming Languages and Programs |
Lecture 25 - Calculator |
Lecture 26 - Interpreters |
Lecture 27 - Anatomy of an Interpreter |
Lecture 28 - The Halting Problem and Incompleteness |
Lecture 29 - Generators, Streams, and Lazy Evaluation |
Lecture 30 - Mostly Project 4 Overview |
Lecture 31 - Declarative Programming |
Lecture 32 - Declarative Programming, Unification |
Lecture 33 - Concurrency |
Lecture 34 - Synchronization and Communication |
Lecture 35 - Cryptography |
Lecture 36 - Review |
Lecture 37 - Review II |
Lecture 38 - Conclusion |