| Week |
Date |
Lecture |
Textbook |
Lab & Discussion Links |
Homework & Project |
| 1 |
Wed 1/21 |
1. Welcome |
|
Disc 00: Getting Started
Lab 00: Getting Started
Due
Wed 1/28
|
|
Fri 1/23 |
2. Functions
|
|
|
HW 01: Functions, Control
Due
Thu 1/29
|
| 2 |
Mon 1/26 |
3. Control
|
|
Lab 01: Functions
Due
Wed 1/28
|
|
Wed 1/28 |
4. Higher-Order Functions
|
|
Disc 01: Control, Environment Diagrams
|
Hog
Checkpt
Tue 2/3
Early Due
Wed 2/11
Due
Thu 2/12
(Optional) Hog Contest
Due
Thu 2/12
|
Fri 1/30 |
5. Environments
|
|
|
HW 02: Higher-Order Functions
Due
Thu 2/5
|
| 3 |
Mon 2/2 |
6. Functional Abstraction
|
|
Lab 02: Higher-Order Functions, Lambda Expressions
Due
Wed 2/4
|
|
Wed 2/4 |
7. Function Examples
|
|
Disc 02: Environment Diagrams, Higher-Order Functions
|
|
Fri 2/6 |
8. Quest Review |
|
|
|
| 4 |
Mon 2/9 |
No Lecture: Quest (Mon - Wed) |
|
|
|
Wed 2/11 |
9. Recursion
|
|
Disc 03: Recursion
|
|
Fri 2/13 |
10. Tree Recursion
|
|
|
HW 03: Recursion, Tree Recursion
Due
Thu 2/19
|
| 5 |
Mon 2/16 |
No Lecture: Presidents' Day |
|
Lab 03: Recursion, Python Lists
Due
Wed 2/18
|
|
Wed 2/18 |
11. Sequences
|
|
Disc 04: Tree Recursion
|
|
Fri 2/20 |
12. Containers
|
|
|
Cats
Checkpt
Thu 2/26
Early Due
Wed 3/4
Due
Thu 3/5
|
| 6 |
Mon 2/23 |
13. Data Abstraction
|
|
Lab 04: Tree Recursion, Data Abstraction
Due
Wed 2/25
|
|
Wed 2/25 |
14. Trees
|
|
Disc 05: Trees
|
|
Fri 2/27 |
15. Mutability
|
|
|
HW 04: Sequences, Data Abstraction, Trees
Due
Thu 3/5
|
| 7 |
Mon 3/2 |
16. Iterators
|
|
Lab 05: Iterators, Mutability
Due
Wed 3/4
|
|
Wed 3/4 |
17. Generators
|
|
Disc 06: Iterators, Generators
|
|
Fri 3/6 |
18. Objects
|
|
|
HW 05: Iterators, Generators
Due
Thu 3/12
Ants
Checkpt
1
Thu 3/12
Checkpt
2
Tue 3/17
Early Due
Thu 3/19
Due
Fri 3/20
|
| 8 |
Mon 3/9 |
19. Attributes
|
|
Lab 06: Object-Oriented Programming
Due
Wed 3/11
|
|
Wed 3/11 |
20. Inheritance
|
|
Disc 07: OOP, Inheritance
|
|
Fri 3/13 |
21. Representation
|
|
|
HW 06: Object-Oriented Programming, Linked Lists, Mutable Trees
Due
Thu 3/19
|
| 9 |
Mon 3/16 |
22. Composition
|
|
Lab 07: Linked Lists, Inheritance
Due
Wed 3/18
|
|
Wed 3/18 |
23. Efficiency
|
|
Disc 08: Linked Lists
|
|
Fri 3/20 |
24. Decomposition
|
|
|
|
| 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 |
25. Midterm Review
|
|
|
|
Wed 4/1 |
Midterm (7pm-9pm) |
|
|
|
Fri 4/3 |
26. Scheme
|
|
|
HW 07: Scheme
Due
Thu 4/9
|
| 12 |
Mon 4/6 |
27. Scheme Lists
|
|
Lab 08: Scheme
Due
Wed 4/8
Lab 09: Interpreters
Due
Wed 4/8
|
|
Wed 4/8 |
28. Calculator
|
|
Disc 09: Scheme, Scheme Lists
|
|
Fri 4/10 |
29. Interpreters
|
|
|
HW 08: Scheme Lists
Due
Thu 4/16
Scheme
Checkpt
1
Thu 4/16
Checkpt
2
Thu 4/23
Early Due
Tue 4/28
Due
Wed 4/29
(Optional) Scheme Contest
Due
Wed 4/29
Scheme Gallery
Due
Wed 4/29
|
| 13 |
Mon 4/13 |
30. Programs as Data
|
|
Lab 10: Programs as Data, Macros
Due
Wed 4/15
|
|
Wed 4/15 |
31. Macros
|
|
Disc 10: Interpreters
|
|
Fri 4/17 |
32. SQL
|
|
|
HW 09: Programs as Data, Macros
Due
Thu 4/23
|
| 14 |
Mon 4/20 |
33. Tables
|
|
Lab 11: SQL
Due
Wed 4/22
|
|
Wed 4/22 |
34. Aggregation
|
|
Disc 11: Macros
|
|
Fri 4/24 |
35. Databases
|
|
|
HW 10: SQL
Due
Thu 4/30
|
| 15 |
Mon 4/27 |
36. Designing Functions
|
|
|
|
Wed 4/29 |
37. Language Models (Optional) |
|
Disc 12: SQL
|
|
Fri 5/1 |
38. Conclusion |
|
|
HW 11: Finale
Due
Sun 5/10
|
| 16 |
Mon 5/4 |
No Lecture: RRR Week |
|
|
|
Wed 5/6 |
No Lecture: RRR Week |
|
|
|
Fri 5/8 |
No Lecture: RRR Week |
|
|
|
| 17 |
Tue 5/12 |
Final (8am-11am) |
|
|
|