CS 61A: The Structure and Interpretation of Computer Science

Course Description

Introduction to programming and computer science., by Prof. Brian Harvey 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.

CS 61A: The Structure and Interpretation of Computer Science

Snapshot from Lecture 18: "Object-Oriented Programming II".
3 ratings

Video Lectures & Study Materials

# Lecture Play Lecture
1 Functional Programming I (48:37) Play Video
2 Functional Programming II (51:42) Play Video
3 Functions of Functions (49:42) Play Video
4 Higher-Order Procedures (42:56) Play Video
7 Recursion and Iteration II (41:00) Play Video
8 UI Recursion and Iteration III (42:06) Play Video
9 Data Abstraction, Sequences Calculator I (51:10) Play Video
10 Data Abstraction, Sequences Calculator II (46:37) Play Video
11 Data Abstraction, Sequences Calculator III (48:36) Play Video
12 Hierarchical Data (50:46) Play Video
13 Hierarchical Data II (48:47) Play Video
14 Interpreter (51:34) Play Video
15 Generic Operators I (50:14) Play Video
16 Generic Operators II (47:40) Play Video
17 Object-Oriented Programming I (51:11) Play Video
18 Object-Oriented Programming II (51:29) Play Video
19 Object-Oriented Programming III (43:02) Play Video
20 Assignment, State, Environments I (51:25) Play Video
21 Assignment, State, Environments II (49:23) Play Video
22 Assignment, State, Environments III (48:29) Play Video
23 Mutable Data (50:05) Play Video
24 Vectors I (51:35) Play Video
25 Vectors II (47:30) Play Video
26 Client Server (52:20) Play Video
27 Concurrency I (52:38) Play Video
28 Concurrency II (42:50) Play Video
29 Streams (51:27) Play Video
30 Shell Programming I (46:39) Play Video
31 Shell Programming II (44:23) Play Video
32 Metacircular Evaluation I (50:33) Play Video
33 Metacircular Evaluation II (50:20) Play Video
34 Mapreduce I (49:02) Play Video
35 Mapreduce II (49:25) Play Video
37 Therac (50:36) Play Video
38 Lazy Evaluation I (49:00) Play Video
40 Nondeterministic Evaluation (44:33) Play Video
41 Logic Programming I (50:40) Play Video
42 Logic Programming II (50:05) Play Video
43 Review I (31:20) Play Video
44 Review II (47:41) Play Video


There are no comments. Be the first to post one.
  Post comment as a guest user.
Click to login or register:
Your name:
Your email:
(will not appear)
Your comment:
(max. 1000 characters)
Are you human? (Sorry)
CosmoLearning is promoting these materials solely for nonprofit educational purposes, and to recognize contributions made by University of California, Berkeley (UC Berkeley) to online education. We do not host or upload any copyrighted materials, including videos hosted on video websites like YouTube*, unless with explicit permission from the author(s). All intellectual property rights are reserved to UC Berkeley and involved parties. CosmoLearning is not endorsed by UC Berkeley, and we are not affiliated with them, unless otherwise specified. Any questions, claims or concerns regarding this content should be directed to their creator(s).

*If any embedded videos constitute copyright infringement, we strictly recommend contacting the website hosts directly to have such videos taken down. In such an event, these videos will no longer be playable on CosmoLearning or other websites.