Schedule
Color key |
---|
Classwork is assigned |
Classwork is due |
Purpose |
Week | Date | Topic | Assignment |
---|---|---|---|
1 | Thursday, 9/6 class meeting | Course intro |
Read "Aesthetics and Programming" and write short response, due 9/10 by 10pm. Read "A Brief Introduction to C" and do assignment 1, due 9/13 by 10pm. |
2 | Monday, 9/10 due date | Short response to "Aesthetics and Programming" due by 10pm. | |
2 |
Tuesday, 9/11 class meeting Note: Meet at Williams College Museum of Art (WCMA) |
How a C program runs | |
2 | Thursday, 9/13 class meeting; due date | Data types, values, and pointers |
Assignment 1 due by 10pm. Read "How to Fix a Motorcycle" and write short response, due 9/17 by 10pm. Read "Memory Management in C" and do Assignment 2, due 9/20. |
3 | Monday, 9/17 due date | Short response to "How to Fix a Motorcycle" due by 10pm. | |
3 | Tuesday, 9/18 class meeting | Memory and call-by-value semantics | |
3 | Thursday, 9/20 due date | NO CLASS |
Assignment 2 due by 10pm. Read "Introduction to the Lambda Calculus, Part 1" and write short response, due 9/24 by 10pm. Assignment 3, due 9/28 by 10pm. |
4 | Monday, 9/24 due date | Short response to "Introduction to the Lambda Calculus, Part 1" due by 10pm. | |
4 | Tuesday, 9/25 class meeting | Lambda calculus | |
4 | Thursday, 9/27 class meeting; due date | Lambda calculus |
Read "Introduction to the Lambda Calculus, Part 2", write short response due 10/1 by 10pm, and do Assignment 4 due 10/4 by 10pm. |
4 | Friday, 9/28 due date | Assignment due | Assignment 3 due by 10pm. |
5 | Monday, 10/1 due date | Short response to "Introduction to the Lambda Calculus, Part 2" due by 10pm. | |
5 | Tuesday, 10/2 class meeting | Lambda calculus | |
5 | Thursday, 10/4 class meeting; due date | Halting problem |
Assignment 4 due by 10pm. Read Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I and write short response, due 10/15 by 10pm. |
6 | Tuesday, 10/9 | NO CLASS (Reading period) | |
6 | Thursday, 10/11 | Lisp and ML | Optional assignment (yes, purely for fun), due 10/18 by 10pm (or, you know, whenever). |
7 | Monday, 10/15 due date | Short response to "Recursive Functions [...]" due by 10pm. | |
7 | Tuesday, 10/16 class meeting | ML | |
7 | Thursday, 10/18class meeting; due date | In-class midterm exam |
Read "Introduction to F#" and write short response, due 10/22 by 10pm. Assignment 6, due 10/25 by 10pm. |
8 | Monday, 10/22 due date | Short response to "A Slightly Longer Introduction to F#" due by 10pm. | |
8 | Tuesday, 10/23 class meeting | Parsers | |
8 | Thursday, 10/25 class meeting; due date | Program evaluation |
Assignment 6 due by 10pm. Read "Why Functional Programming Matters" and write short response, due 10/29 by 10pm. Read Parser Combinators and do Assignment 7, due 11/1 by 10pm. |
9 | Monday, 10/29 due date | Short response to "Why Functional Programming Matters" due by 10pm. | |
9 | Tuesday, 10/30 class meeting | Type checking and inference | |
9 | Thursday, 11/1 class meeting; due date | Hindley-Milner |
Assignment 7 due by 10pm. Read "Beating the Averages" and "The Rise of Worse is Better" and write short response, due 11/5 by 10pm. Assignment 8, due 11/8 by 10pm. |
10 | Monday, 11/5 due date | Short response to "Beating the Averages" / "The Rise of Worse is Better" due by 10pm. | |
10 | Tuesday, 11/6 class meeting | Unit testing | |
10 | Thursday, 11/8 due date | NO CLASS |
Assignment 8 due by 10pm. Read note, watch "Growing a Language" and write short response, due 11/12 by 10pm. Assignment 9, due 11/15 by 10pm. |
11 | Monday, 11/12 due date | Short response to "Growing a language" due by 10pm. | |
11 | Tuesday, 11/13 class meeting | Evaluation within a context | |
11 | Thursday, 11/15 class meeting; due date | Polymorphic type inference |
Assignment 9 due by 10pm. Read pp. 3--4 in paper about types (Cardelli & Wegner) and write short response, due 11/12 by 10pm. Assignment 10 ("mostly working" project implementation), due 11/29 by 10pm. |
11 | Monday, 11/20 due date | Short response to Cardelli paper due by 10pm. | |
11 | Tuesday, 11/21 class meeting | Object-oriented programming | |
11 | Thursday, 11/23 | NO CLASS 🦃 | |
12 | Tuesday, 11/27 class meeting | Project-related activities |
Assignment 11 (final project implementation), due 12/7 by 10pm. |
12 | Thursday, 11/29 class meeting; due date | Object-oriented programming, part 2 |
Assignment 10 due by 10pm. Watch "How to Give a Great Research Talk" and write short response, due 12/3 by 10pm. |
13 | Monday, 12/3 due date | Short response to "How to Give a Great Research Talk" due by 10pm. | |
13 | Tuesday, 12/4 class meeting | How to present technical material | |
13 | Thursday, 12/6 class meeting | Recap | |
13 | Friday, 12/7 due date | Final project | Final project due by 10pm. |
14 | Tuesday, 12/11 final project presentations | Project presentations, TCL 202 11:20-2:20pm |