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
(Video) (1pp) (1pps) (8pp) (25.py) |
3.3 | Lab 9: Scheme | Homework 7 (due Wed 4/8) (Solutions) | |
Fri 4/3 | Calculator
(Video) (1pp) (1pps) (8pp) (26.scm) |
3.4 | Discussion 8: Scheme (Solutions) | ||
12 | Mon 4/6 | Interpreters
(Video) (1pp) (1pps) (8pp) |
3.5 | Scheme (due Thu 4/23) | |
Wed 4/8 | Tail Calls
(Video) (1pp) (1pps) (8pp) (28.scm) |
3.5 | Lab 10: Interpreters | Quiz 3 (due Thu 4/9) (Solutions) | |
Fri 4/10 | Iterators
(Video) (1pp) (1pps) (8pp) (29.py) |
4.2 | Discussion 9: Tail Calls (Solutions) | Homework 8 (due Wed 4/15) (Solutions) | |
13 | Mon 4/13 | Streams
(Video) (1pp) (1pps) (8pp) (30.py) |
4.2 | ||
Wed 4/15 | Declarative Programming
(Video) (1pp) (1pps) (8pp) (31.sql) |
4.3 | Lab 11: Iterators, Generators, and Streams | ||
Fri 4/17 | Tables
(Video) (1pp) (1pps) (8pp) (32.sql) |
4.3 | Discussion 10: Iterators, Generators, and Streams (Solutions) | Scheme Contest (due Mon 4/27) | |
14 | Mon 4/20 | Recursive Select
(Video) (1pp) (1pps) (8pp) (33.sql) |
4.3 | Homework 9 (due Wed 4/29) (Solutions) | |
Wed 4/22 | Aggregation
(Video) (1pp) (1pps) (8pp) (34.sql) |
4.3 | Lab 12: SQL | ||
Fri 4/24 | Distributed Computing
(Video) (1pp) (1pps) (8pp) |
4.6 | Discussion 11: SQL (Solutions) | ||
15 | Mon 4/27 | Distributed Data
(Video) (1pp) (1pps) (8pp) (36.zip) |
4.6 | ||
Wed 4/29 | Natural Language
(Video) (1pp) (1pps) (8pp) (37.zip) |
Lab 13: SQL II: Aggregation | Quiz 4 (due Thu 4/30) (Solutions) | ||
Fri 5/1 | Conclusion | Discussion 12: Final Review (Solutions) | Homework 11 (due Wed 5/6) Homework 12 (due Wed 5/6) |
||
16 | Tue 5/12 | No Lecture: Final |