Work through the lecture notes and the videos. If a video link () doesn't work for you, try Canvas > Panopto Video instead.
All assignments are due at 5:00pm CT on the given dates unless otherwise noted.
Week 1: FP Crash Course (0111 – 0115)
- Overview and Course Info
- Intro to ML in Elm
- Intro to ML in Elm (continued)
- Homework 0: Elm and PhoenixForge Setup — Due: Fri, Jan 15
- Homework 1: Functional Programming Warmup — Due: Tue, Jan 19 (Week 2)
Week 2: MVC Crash Course (0118 – 0122)
- Martin Luther King, Jr. Day
- Intro to MVC in Elm
- More Random Elm
- Testing (Optional)
- Elm Firebase (Optional)
- Homework 2: Estimating Pi — Due: Mon, Jan 25 (Week 3)
Week 3: Performance Analysis (0125 – 0129)
- Quiz 1 — Fri, Jan 29
- Asymptotic Analysis, Persistence, and Tail Recursion
- More Trees And Then...
- Homework 3: Lists and Trees — Due: Mon, Feb 1 (Week 4)
Week 4: Heaps (0201 – 0205)
- Heaps
- Leftist Heaps
- Binomial Heaps
- Homework 4: Heaps — Due: Mon, Feb 8 (Week 5)
Week 5: Red-Black Trees (0208 – 0212)
- Project Part 1: Planning — Due: Fri, Feb 12
- Red-Black Trees
- Red-Black Trees: Delete (Optional)
- Homework 5: Red-Black Trees — Due: Mon, Feb 15 (Week 6)
Week 6 (0215 – 0219)
- Quiz 1' (Optional) — Fri, Feb 19
- Quiz 2 — Fri, Feb 19
- Homework 6: Random Access Lists — Due: Mon, Feb 22 (Week 7)
Week 7: Streams (0222 – 0226)
Week 8: Queues (0301 – 0305)
- Project Part 2: Status Update — Due: Fri, Mar 5 (Optional)
- Queues
- Amortized Analysis
- Lazy Queues
- Real-Time Queues
- Homework 7: Deques and Lazy Lists — Due: Mon, Mar 8 (Week 9)
Week 9 (0308 – 0312)
- Homework 2 Voting: Pi Contest — Due: Wed, Mar 10
- Quiz 3 — Fri, Mar 12
Finals Week: Project Demos (0315 – 0319)
- Project Part 3: Final Project — Presentations: Tue, Mar 16 – Thu, Mar 18