Week 1: Course Intro & Racket Fundamentals
-
1/13Course Introduction, Basic Racket, and Dr. Racket
-
1/15Racket Forms, Callsites, and Definitions
-
- Optional Reading: SICP sections 1 up to 1.1.5
Week 2: Lists and Recursion
-
1/20Conditional Statements and Linked Lists
-
1/20Homework P1: Tic-Tac-Toe -- Released 1/20, due 2/3
-
1/22Recursion over Lists
Week 3: Abstractions and Algebraic Data
-
1/27
-
1/29Tree-Shaped (Algebraic) Data and Pattern Matching
Week 4: Programming with Algebra
-
2/3Pattern Matching and Algebraic Data
-
2/3Homework P1 Deadline
-
2/5
Week 5: Graphs and Interpreters
-
2/10Evaluation Order and Tail Recursion
-
2/12Homework P2: Network Reachability (Due 2/26)
-
2/12Finish up / review previous topics -- Homework 2 Discussion
Week 6: Exam 1
-
2/17Exam 1 Review
-
2/19Exam 1 (in class, 20%)
Week 7: Natural Deduction and Interpreters
-
2/24Natural Deduction, Proof Trees, and Interpreters Intro
-
2/26Homework P2 Deadline
-
2/26Review Day (Sets, Hashes, etc.)
Week 8: Lambda Calculus and Interpreters
-
3/3
-
3/3Homework P3: Scheme Interpreter -- Released (Due 3/24)
-
3/5Closure-Creating Interpreters
Week 9: Reduction Strategies and Exam 2 Review
-
3/17Lambda Calculus Reduction Rules and Substitution
-
3/19Exam 2 Review
Week 10: Exam 2
-
3/24Homework P3 Deadline
-
3/24More Exam Review / Practice
-
3/26Exam 2 (in class, 20%)
Week 11: Church Encoding and Y Combinator
-
3/31Church Numerals and Church Encoding
-
4/2Church Encodings (Continued) and Y Combinator
-
4/2Homework 4 -- Released (Due 4/21)
Week 12: Type Theory
-
4/7Y Combinator and Type Theory Introduction
- Lecture Notes (NEW)
- Lecture Slides
-
4/9Programs as Proofs, Formalizing Math in Lean
Week 13: Low-level Programming in Rust
-
4/14Types Continued and Introduction to Rust
-
4/16Rust Type System: Traits, Lifetimes, and Functional Programming Patterns
Week 14: Exam 3
-
4/21Homework P4 Deadline
-
4/21Exam 3 Review
-
4/23Exam 3 (in class, 20%)
Week 15: Finals Week
-
5/1Final Exam (optional, replaces lowest exam grade)
- Friday 10:15AM - 12:15PM, Life Science Building 105