Classroom: MWF 9:10a–10:00a, MCRey 315
Web page
Instructor: Dr. Carl Burch
Telephone: 450–1377 (office); 499–9892 (home)
Office: MCRey 310
Office hours: T 8:30–9:30, W 1:10–2:00, R 1:30–2:30, F 10:10–11:00
drop-ins, appointments always welcome


Moodle course page

Wed 22 Aug Haskell: Numerical functions A1–5
Fri 24 Aug binding time, static v. dynamic types
Haskell: higher-order functions A6–7
Mon 27 Aug Haskell: polymorphic and custom types B1–5
Wed 29 Aug Haskell: tuples, lists, strings C1–4
Fri 31 Aug Assignment 1 due
Haskell: folds, comprehensions C5–6
Mon 3 Sep Labor Day — no classes
Wed 5 Sep Persistent trees, stacks, queues D1–3
Fri 7 Sep Assignment 2 due
Lambda calculus E1
Mon 10 Sep Lazy evaluation E2
Lambda calculus recursion E3.1
Wed 12 Sep Test 1 [Review A, Review B, Solutions]
Fri 14 Sep Assignment 3 due
Test postmortem
Pure lambda calculus E3.2
Mon 17 Sep Binding: Aliases, type, scope F1–3
Wed 19 Sep Binding: Memory location F4
Fri 21 Sep Assignment 4 due
Binding: Templates F5
Tail recursion G
Mon 24 Sep Axiomatic semantics H1
Proving a factorial program H2.1
Wed 26 Sep Proving sum of factors H2.2
Fri 28 Sep Assignment 5 due
Proof shortcomings H3
Mon 1 Oct Monads as transformations I1
Wed 3 Oct Haskell monad support I2
IO: Displaying text I3.1
Fri 5 Oct Assignment 6 due
IO: Displaying text I3.2–3.3
The Maybe monad I4
Mon 8 Oct Compiler stages
BNF grammars, recursive descent
Wed 10 Oct Test 2 [Review A, Review B, Solutions]
11—14 Oct Fall Break — no classes
Mon 15 Oct history of languages
Wed 17 Oct history of languages
Fri 19 Oct Assignment 7 due
recursive descent parsing
Mon 22 Oct optimizations
Wed 24 Oct array bounds checking
register allocation
compiling classes
Fri 26 Oct Project preferences due
Haskell interpreter walkthrough
executing JavaScript efficiently
Mon 29 Oct Prolog
Wed 31 Oct Prolog bubble sort
concurrency overview
Fri 2 Nov Assignment 8 due
Scala (Brandon)
Mon 5 Nov Lua (Julie)
Wed 7 Nov Test 3 [Review A, Review B, Solutions]
Fri 9 Nov Assignment 9 due
Erlang (Safari)
Mon 12 Nov Smalltalk (Kaleigh)
Wed 14 Nov OCaml (Clarissa)
Fri 16 Nov Dart (Thierry)
Mon 19 Nov Go (Andres)
21–25 Nov Thanksgiving — no classes
Mon 26 Nov threads & atomic values
lock-free programming
Wed 28 Nov Algol 68 (Jonathan)
Fri 30 Nov Assignment 10 due
D (Kyle)
Mon 3 Dec APL (Benjamin)
Fri 7 Dec Project paper due
(no class)
Tue 11 Dec Final, 9am [Review A, Review B, Solutions]
13 Dec–14 Jan Winter Break — no classes