Jan |
16 |
Welcome; Haskell basics |
SOE chapters 1 to 3 (just skim pp. 30-32), Handout 1
(1-up, 6-up) |
HW1 out; due 1/23 at 2PM (Haskell basics) |
|
21 |
MLK day: no class |
|
|
|
23 |
Higher-order functions; polymorphism; datatypes |
SOE chapters 5 and 7, Handout 2
(1-up, 6-up), Handout 3
(1-up, 6-up)
|
HW2 out; due Monday, 1/28 at
3PM (here are the files to use as a starting point) |
|
28 |
More higher-order functions; qualified types |
SOE chapters 9 and 12, Handout 4
(1-up, 6-up)
|
|
|
30 |
case study: functional red-black trees |
Handout 5
(1-up, 6-up)
|
HW3 out; due Wednesday, 2/6 at
3PM (here is a template
for some of the code) |
Feb |
4 |
Case study: regions and pictures |
SOE chapters 4, 6, 8, 10; Handout 6
(1-up, 6-up)
|
|
|
6 |
Case study: Functional Animation |
SOE chapter 13
|
HW4 out; due Wednesday, 2/13 at
3PM (here is a template
for the warm-up exercises) |
Feb |
11 |
Monads |
SOE chapter 18; Handout 7
(1-up, 6-up)
|
|
|
13 |
The parsing monad; Handout 8
(1-up, 6-up) |
SOE chapter 13
|
HW5 out; due Wednesday, 2/20 at
3PM |
Feb |
18 |
Review |
|
|
Feb |
20 |
Monadic evaluators; monad transformers |
Bird ("Introduction to Functional Programming Using Haskell"),
chapter 10; Handout 9
|
HW6 out; due Wednesday, 2/26 at
3PM (lec9.hs) |
Feb |
25 |
Review; functional hardware description |
|
|
Feb |
27 |
QuickCheck |
Handout
10; QuickCheck
paper
|
HW7 out; due Wednesday, 3/5 at
3PM (circuits.hs) |
Mar |
3 |
Modularity |
Handout
11; HUnit user guide |
|
Mar |
5 |
Guest lecture by Yaron Minsky in Berger Auditorium |
|
HW8 out; due Wednesday, 3/19 at
3PM (first round) and Wednesday, 3/26 at
3PM (second round) |
Mar |
17 |
Continuations |
Handout
12 |
|
Mar |
19 |
Discussion of mini-projects |
|
|
Mar |
24 |
Tackling the awkward squad |
Handout
13 and Tackling the
Awkward Squad by Simon PJ |
|
Mar |
26 |
Intro to concurrency |
Handout 14 |
HW9 out |
Mar |
31 |
Intro to concurrency (cont'd) |
|
|
Apr |
2 |
Semantics of MVars |
|
HW10 out
(template and test harness) |
Apr |
7 |
Semantics of exceptions |
Handout 15 |
|
Apr |
9 |
Software Transactional Memory |
Handout 16
and Handout 17
and Composable Memory
Transactions (Harris et al.) |
HW11 out |
Apr |
14 |
Composing Financial Contracts (guest lecture by Anton van Straaten) |
How to write a financial
contract (by Simon Peyton Jones and Jean-Marc Eber) |
|
Apr |
16 |
Generalized Algebraic Data Types (guest lecture by Chris
Casinghino) |
|
|