| Classroom: | MWF 9:10a–10:00a, MCRey 315 |
| Web page | www.cburch.com/cs/360/ |
| Instructor: | Dr. Carl Burch |
| E-mail: | |
| 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 |
Schedule
| 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 dueHaskell: 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 dueLambda 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 dueTest 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 dueBinding: 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 dueProof 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 dueEBNF recursive descent parsing |
| Mon 22 Oct | optimizations |
| Wed 24 Oct | array bounds checking
register allocation compiling classes |
| Fri 26 Oct | Project preferences dueHaskell interpreter walkthrough executing JavaScript efficiently |
| Mon 29 Oct | Prolog |
| Wed 31 Oct | Prolog bubble sort
concurrency overview |
| Fri 2 Nov | Assignment 8 dueScala (Brandon) |
| Mon 5 Nov | Lua (Julie) |
| Wed 7 Nov |
Test 3
[Review A,
Review B,
Solutions]
|
| Fri 9 Nov | Assignment 9 dueErlang (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
|


Assignment 1 due
Labor Day — no classes
Test 1
[
Fall Break — no classes
Project preferences due
Prolog bubble sort
Thanksgiving — no classes
Winter Break — no classes