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
  • CSCI 334: Principles of Programming Languages, Fall 2018