CS 61A

Structure and Interpretation of Computer Programs, Spring 2015

Instructor: John DeNero




Announcements

Calendar

Week Date Lecture Reading Handout Assignment
1 Wed 1/21 Functions
(Video) (1pp) (1pps) (8pp) (01.py)
1.1
1.2
Lab 0: Intro to UNIX
Lab 1: Your own machine
Fri 1/23 Names
(Video) (1pp) (1pps) (8pp) (02.py)
1.3
1.4
Discussion 0: Lost on the Moon (Solutions) Homework 1 (due Wed 1/28) (Solutions)
2 Mon 1/26 Control
(Video) (1pp) (1pps) (8pp) (03.py)
1.5
Wed 1/28 Higher-Order Functions
(Video) (1pp) (1pps) (8pp) (04.py)
1.6 Lab 2: Functions and Control Structures Quiz 1 (due Thu 1/29) (Solutions)
Hog (due Thu 2/5)
Fri 1/30 Environments
(Video) (1pp) (1pps) (8pp) (05.py)
1.6 Discussion 1: Control Structures and Higher Order Functions (Solutions) Homework 2 (due Mon 2/2) (Solutions)
3 Mon 2/2 Recursion
(Video) (1pp) (1pps) (8pp) (06.py)
1.7
Wed 2/4 Tree Recursion
(Video) (1pp) (1pps) (8pp) (07.py)
1.7 Lab 3: Recursion Hog Contest (due Wed 2/18)
Fri 2/6 Function Examples
(Video) (1pp) (1pps) (8pp) (08.py)
Discussion 2: Recursion (Solutions)
4 Mon 2/9 No Lecture: Midterm 1
Wed 2/11 Data Abstraction
(Video) (1pp) (1pps) (8pp) (09.py)
2.1
2.2
Homework 3 (due Thu 2/19) (Solutions)
Fri 2/13 Sequences
(Video) (1pp) (1pps) (8pp) (10.py)
2.3 Discussion 3: Data Abstraction (Solutions)
5 Mon 2/16 No Lecture: President's Day Maps (due Thu 2/26)
Wed 2/18 Trees
(Video) (1pp) (1pps) (8pp) (11.py)
2.3 Lab 4: Lists Homework 4 (due Mon 2/23) (Solutions)
Fri 2/20 Mutable Values
(Video) (1pp) (1pps) (8pp) (12.py)
2.4 Discussion 4: Trees (Solutions)
6 Mon 2/23 Mutable Functions
(Video) (1pp) (1pps) (8pp) (13.py)
2.4
Wed 2/25 Objects
(Video) (1pp) (1pps) (8pp) (14.py)
2.5 Lab 5: Trees and Dictionaries Homework 5 (due Wed 3/4) (Solutions)
Fri 2/27 Inheritance
(Video) (1pp) (1pps) (8pp) (15.py)
2.5 Discussion 5: Mutation (Solutions) Ants (due Thu 3/12)
7 Mon 3/2 Representation
(Video) (1pp) (1pps) (8pp) (16.py)
2.7
Wed 3/4 Generic Functions
(Video) (1pp) (1pps) (8pp) (17.py)
2.7 Lab 6: Object Oriented Programming Quiz 2 (due Thu 3/5) (Solutions)
Fri 3/6 Composition
(Video) (1pp) (1pps) (8pp) (18.py)
2.9 Discussion 6: Object Oriented Programming and Interfaces (Solutions)
8 Mon 3/9 Hierarchy
(Video) (1pp) (1pps) (8pp) (19.py)
2.9 Homework 6 (due Mon 3/16) (Solutions)
Wed 3/11 Growth
(Video) (1pp) (1pps) (8pp) (20.py)
2.8 Lab 7: Recursive Objects
Fri 3/13 Sets
(Video) (1pp) (1pps) (8pp) (21.py)
2.9 Discussion 7: Orders of Growth (Solutions)
9 Mon 3/16 Data Examples
(Video) (1pp) (1pps) (8pp) (22.py)
Wed 3/18 No Lecture: Midterm 2 on Thurs 3/19 Lab 8: Sets
Fri 3/20 Users
(Video)
10 Mon 3/23 No Lecture: Spring Break
Wed 3/25 No Lecture: Spring Break
Fri 3/27 No Lecture: Spring Break
11 Mon 3/30 Scheme
(Video) (1pp) (1pps) (8pp) (24.scm)
3.1
3.2
Wed 4/1 Exceptions 3.3 Lab 9: Scheme Homework 7 (due Wed 4/8)
Fri 4/3 Calculator 3.4 Discussion 8: Scheme (Solutions)
12 Mon 4/6 Interpreters 3.5 Scheme (due Thu 4/23)
Wed 4/8 Tail Calls 3.5 Lab 10: Interpreters Homework 8 (due Wed 4/15)
Quiz 3 (due Thu 4/9)
Fri 4/10 Iterators 4.2 Discussion 9: Tail Calls (Solutions)
13 Mon 4/13 Streams 4.2
Wed 4/15 Declarative Programming 4.3 Lab 11: Iterators, Generators, and Streams Homework 9 (due Mon 4/20)
Fri 4/17 Interpreting SQL 4.3 Discussion 10: Iterators, Generators, and Streams (Solutions) Scheme Contest (due Mon 4/27)
14 Mon 4/20 Recursive Select 4.3
Wed 4/22 Aggregation 4.3 Lab 12: SQL Homework 10 (due Wed 4/29)
Fri 4/24 Distributed Computing 4.6 Discussion 11: SQL (Solutions)
15 Mon 4/27 Distributed Data 4.6
Wed 4/29 Natural Language Quiz 4 (due Thu 4/30)
Fri 5/1 Conclusion