Resources by Type
Discussion
- Discussion 0: Lost on the Moon (Solutions)
- Discussion 1: Control Structures and Higher Order Functions (Solutions)
- Discussion 2: Recursion (Solutions)
- Discussion 3: Data Abstraction (Solutions)
- Discussion 4: Trees (Solutions)
- Discussion 5: Object Oriented Programming (Solutions)
- Discussion 6: Multiple Representations and Generic Functions (Solutions)
- Discussion 7: Orders of Growth (Solutions)
- Discussion 8: Scheme (Solutions)
- Discussion 9: Tail Calls (Solutions)
- Discussion 10: Iterators, Generators, and Streams (Solutions)
- Discussion 11: SQL (Solutions)
Homework
- Homework 1 (due Wed 1/28) (Solutions)
- Quiz 1 (due Thu 1/29) (Solutions)
- Homework 2 (due Mon 2/2) (Solutions)
- Homework 3 (due Wed 2/18)
- Homework 4 (due Mon 2/23)
- Homework 5 (due Wed 3/4)
- Homework 6 (due Mon 3/9)
- Homework 7 (due Wed 4/8)
- Homework 8 (due Wed 4/15)
- Quiz 2 (due Thu 4/9)
- Homework 9 (due Mon 4/20)
- Homework 10 (due Wed 4/29)
- Quiz 3 (due Thu 4/30)
Lab
- Lab 0: Intro to UNIX
- Lab 1: Your own machine
- Lab 2: Functions and Control Structures
- Lab 3: Recursion
- Lab 4: Lists and Linked Lists
- Lab 5: Trees, Dictionaries, and Mutability
- Lab 6: Object Oriented Programming
- Lab 7: TBD
- Lab 8: Sets
- Lab 9: Scheme
- Lab 10: Interpreters
- Lab 11: Iterators, Generators, and Streams
- Lab 12: SQL
Lecture
- Functions
(Video) (1pp) (1pps) (8pp) (01.py) - Names
(Video) (1pp) (1pps) (8pp) (02.py) - Control
(Video) (1pp) (1pps) (8pp) (03.py) - Higher-Order Functions
(Video) (1pp) (1pps) (8pp) (04.py) - Environments
(Video) (1pp) (1pps) (8pp) (05.py) - Recursion
(Video) (1pp) (1pps) (8pp) (06.py) - Tree Recursion
(Video) (1pp) (1pps) (8pp) (07.py) - Function Examples
(Video) (1pp) (1pps) (8pp) (08.py) - Data Abstraction
- Sequences
- Trees
- Mutable Values
- Mutable Functions
- Objects
- Inheritance
- Representation
- Generic Functions
- Composition
- Hierarchy
- Growth
- Sets
- Data Examples
- Users
- Scheme
- Exceptions
- Calculator
- Interpreters
- Tail Calls
- Iterators
- Streams
- Declarative Programming
- Interpreting SQL
- Recursive Select
- Aggregation
- Distributed Computing
- Distributed Data
- Natural Language
- Conclusion
Project
- Hog (due Thu 2/5)
- Hog Contest (due Wed 2/18)
- Maps (due Thu 2/26)
- Ants (due Thu 3/12)
- Scheme (due Thu 4/23)
- Scheme Contest (due Mon 4/27)