CS 61A

Structure and Interpretation of Computer Programs, Spring 2015

Instructor: John DeNero





Calendar

New Announcement!

Week Date Lecture Reading Lab / Discussion Assignment / Exam / Project
1 Monday, 05/04/2015 1. Functions
(Video) (1pp) (1pps) (8pp) (01.py)
1.1
1.2
Lab 0: Intro to UNIX
Lab 1: Your own machine
Tuesday, 05/05/2015 2. Names
(Video) (1pp) (1pps) (8pp) (02.py)
1.3
1.4
Discussion 0: Lost on the Moon
Wednesday, 05/06/2015 3. Control
(Video) (1pp) (1pps) (8pp) (03.py)
1.5 Homework 1 (due Fri 05/08)
Thursday, 05/07/2015 4. Higher-Order Functions
(Video) (1pp) (1pps) (8pp) (04.py)
1.6 Lab 2: Functions and Control Structures
Quiz 1
Hog (due Sun 05/10)
(TkInter Wiki)
*Thursday, 05/07/2015* *Newton's Method*
(extra lecture)
(Video) (1pp) (1pps) (8pp) (e01.py)
1.6.5 Extra Homework 1 (due Thu 2/12)
Friday, 05/08/2015 5. Environments
(Video) (1pp) (1pps) (8pp) (05.py)
1.6 Discussion 1: Control Structures and Higher Order Functions Homework 2 (due Mon 05/11)
2 Monday, 05/11/2015 6. Recursion
(Video) (1pp) (1pps) (8pp) (06.py)
1.7
*Monday, 05/11/2015* *Decisions (Kevin Chen)*
(Video) (1pp) (1pps) (8pp) (e02.py)
Tuesday, 05/12/2015 7. Tree Recursion
(Video) (1pp) (1pps) (8pp) (07.py)
1.7 Lab 3: Recursion Hog Contest (due Tue 05/12)
Wednesday, 05/13/2015 8. Function Examples
(Video) (1pp) (1pps) (8pp) (08.py)
Discussion 2: Recursion
Thursday, 05/14/2015 No Lecture: Midterm 1 (My Solution)-->
Friday, 05/15/2015 9. Data Abstraction
(Video) (1pp) (1pps) (8pp) (09.py)
2.1
2.2
Homework 3 (due Wed 5/13)
3 Monday, 05/18/2015 10. Sequences
(Video) (1pp) (1pps) (8pp) (10.py)
2.3 Discussion 3: Data Abstraction
*Maps* (due Sun 5/17)
*Monday, 05/18/2015* *Lambda Calculus (Chenyang Yuan)*
(Video) (1pp) (1pps) (8pp) (e03.py)
Tuesday, 05/19/2015 11. Trees
(Video) (1pp) (1pps) (8pp) (11.py)
2.3 Lab 4: Lists Homework 4 (due Sat 5/16)
Wednesday, 05/20/2015 12. Mutable Values
(Video) (1pp) (1pps) (8pp) (12.py)
2.4 Discussion 4: Trees
*Wednesday, 05/20/2015* *Huffman Encoding Trees (Soumya Basu)*
(Video) (1pp) (1pps) (8pp) (e04.py)
Extra Homework 2 (due Thu 5/25)
Thursday, 05/21/2015 13. Mutable Functions
(Video) (1pp) (1pps) (8pp) (13.py)
2.4 Trends (due Wed 05/20)
Friday, 05/22/2015 14. Objects
(Video) (1pp) (1pps) (8pp) (14.py)
2.5 Lab 5: Trees and Dictionaries Homework 5 (due Wed 05/20)
4 Monday, 05/25/2015 15. Inheritance
(Video) (1pp) (1pps) (8pp) (15.py)
2.5 Discussion 5: Mutation
Ants (due Sun 5/23)
Tuesday, 05/26/2015 16. Representation
(Video) (1pp) (1pps) (8pp) (16.py)
2.7
Wednesday, 05/27/2015 17. Generic Functions
(Video) (1pp) (1pps) (8pp) (17.py)
2.7 Lab 6: Object Oriented Programming Quiz 2
Thursday, 05/28/2015 18. Composition (Link Class)
(Video) (1pp) (1pps) (8pp) (18.py)
2.9.1 Discussion 6: Object Oriented Programming and Interfaces
Friday, 05/29/2015 19. Hierarchy (Tree Class)
(Video) (1pp) (1pps) (8pp) (19.py)
2.8.1-2 2.9.2 Homework 6 (due Mon 5/25)
5 Monday, 06/01/2015 20. Growth
(Video) (1pp) (1pps) (8pp) (20.py)
2.8.3 Lab 7: Recursive Objects
Tuesday, 06/02/2015 21. Sets
(Video) (1pp) (1pps) (8pp) (21.py)
2.9 Discussion 7: Orders of Growth
Wednesday, 06/03/2015 22. Data Examples
(Video) (1pp) (1pps) (8pp) (22.py)
Thursday, 06/04/2015 23. Users
(Video)
Lab 8: Sets
Friday, 06/05/2015 No Lecture: Midterm 2
6 Monday, 06/08/2015 24. Scheme
(Video) (1pp) (1pps) (8pp) (24.scm)
3.1
3.2
Tuesday, 06/09/2015 25. Exceptions
(Video) (1pp) (1pps) (8pp) (25.py)
3.3 Lab 9: Scheme Homework 7 (due Wed 06/17)
Wednesday, 06/10/2015 26. Calculator
(Video) (1pp) (1pps) (8pp) (26.scm)
3.4 Discussion 8: Scheme
Thursday, 06/11/2015 27. Interpreters
(Video) (1pp) (1pps) (8pp)
3.5 Scheme (due Thu 06/18)
Friday, 06/12/2015 28. Tail Calls
(Video) (1pp) (1pps) (8pp) (28.scm)
3.5 Lab 10: Interpreters Quiz 3
7 Monday, 06/15/2015 29. Iterators
(Video) (1pp) (1pps) (8pp) (29.py)
4.2 Discussion 9: Tail Calls Homework 8 (due Mon 06/22)
Tuesday, 06/16/2015 30. Streams
(Video) (1pp) (1pps) (8pp) (30.py)
4.2
Wednesday, 06/17/2015 31. Declarative Programming
(Video) (1pp) (1pps) (8pp) (31.sql)
4.3 Lab 11: Iterators, Generators, and Streams
*Wednesday, 06/17/2015* *Interpreting SQL*
(Video) (1pp) (1pps) (8pp) (33.sql)
4.3.4
Thursday, 06/18/2015 32. Tables
(Video) (1pp) (1pps) (8pp) (32.sql)
4.3 Discussion 10: Iterators, Generators, and Streams Scheme Contest
Friday, 06/19/2015 33. Recursive Select
(Video) (1pp) (1pps) (8pp) (33.sql)
4.3 Homework 9 (due Wed 06/24)
8 Monday, 06/22/2015 34. Aggregation
(Video) (1pp) (1pps) (8pp) (34.sql)
4.3 Lab 12: SQL
Tuesday, 06/23/2015 35. Distributed Computing
(Video) (1pp) (1pps) (8pp)
4.5 Discussion 11: SQL
Wednesday, 06/24/2015 36. Distributed Data
(Video) (1pp) (1pps) (8pp) (36.zip)
4.6 Lab 13: SQL II: Aggregation Quiz 4 (due Thu 06/25)
Thursday, 06/25/2015 37. Natural Language
(Video) (1pp) (1pps) (8pp) (37.zip)
*Lab 14: MapReduce* Recursive Art Contest Voting
Friday, 06/26/2015 38. Conclusion
(Video)
Discussion 12: Final Review
Saturday, 06/27/2015 No Lecture: Final *Discussion 13: Concurrency and MapReduce Review*