Course Schedule (Tentative)
Lecture | Date | Topic | Readings | Notes |
---|---|---|---|---|
|
||||
1/22 |
|
Haskell Warmup | ||
01 | 1/27 | Functional Programming: A Taste of Haskell |
RWH 2-4 |
HW1 Out [js] [pdf] |
02 | 1/29 | Functions and Recursion | RWH 2-4 | [js] [pdf] |
03 | 1/31 |
(C) Specifying Valid Programs: Language Syntax and Grammar |
PFPL 1, 4.1 | [js] [pdf] |
04 | 2/3 |
(C) Specifying Program Behavior: Evaluation and Operational Semantics |
PFPL 5.(1-3), 7.1 | [js] [pdf] |
05 | 2/5 | Types in Haskell | RWH 3 | [js] [pdf] |
06 | 2/10 |
(C) Specifying Well-Behaved Programs: Type Systems |
PFPL 4.2-3, (9-11).1 |
HW1 Due HW2 Out [js] [pdf] |
07 | 2/12 | Polymorphism and Type Classes | RWH 6 | [js] [pdf] |
08 | 2/17 | More Sums, and Functor | Typeclassopedia | [js] [pdf] |
09 | 2/19 | Applicative | [js] [pdf] | |
10 | 2/24 | Applicative Parsing |
HW2 Due HW3 Out [js] [pdf] |
|
11 | 2/26 | Monads | RWH 14-16 | [js] [pdf] |
12 | 3/2 | Programming with Side-Effects | RWH 7 | [js] [pdf] |
13 | 3/4 | Quickcheck: Property-Based Testing | [js] [pdf] | |
3/6 |
|
|||
|
||||
14 | 3/9 | Imperative Programming: A Taste of Rust |
TRPL 1-3, 5-6 |
Rust Warmup [js] [pdf] |
15 | 3/11 | (C) Modeling an Imperative Language | [js] [pdf] | |
3/13 |
|
HW3 Due | ||
3/16 |
|
|||
3/18 |
|
|||
16 | 3/23 | Memory Management and Ownership | TRPL 4.1 |
HW4 Out [js] [pdf] |
17 | 3/25 | References and Borrowing | TRPL 4.2 | [js] [pdf] |
18 | 3/30 | Lifetimes, Generics, and Traits | TRPL 8-10, 19.2 |
HW4 Due HW5 Out [js] [pdf] |
19 | 4/1 | More Traits: Closures and Iterators | TRPL 13 | [js] [pdf] |
20 | 4/6 | Smart Pointers | TRPL 15 | [js] [pdf] |
21 | 4/8 | (C) Parallelism and Concurrency | [js] [pdf] | |
22 | 4/13 | (C) Shared-State and Message-Passing | [js] [pdf] | |
23 | 4/15 | Concurrency in Rust | TRPL 16 | [js] [pdf] |
4/17 |
|
HW5 Due HW6 Out |
||
24 | 4/20 | (C) Modeling Concurrency | [js] [pdf] | |
25 | 4/22 | Asynchronous Concurrency in Rust: State Machines and Futures | Async Book | [js] [pdf] |
26 | 4/27 | Asynchronous Concurrency in Rust: async/await and Runtimes | Async Book | [js] [pdf] |
27 | 4/29 | Unsafe Rust | Nomicon | [js] [pdf] |
5/1 |
|
HW6 Due | ||
5/4 |
|