All homework assignments should emerge creatively from the Style guidelines. Homework is due at midnight at the end of the day listed. All homework submission is via Canvas.
Week 1 (Thursday, 28 August): Introduction to Haskell ( html, lhs )
- Homework 1: due Friday, 5 September. [ HW01.hs ]
Week 2 (Thursday, 4 September): Working with Lists ( html, lhs )
- Homework 2: due Friday, 12 September. [ HW02.hs, Words.hs ]
Week 3 (11 September): Algebraic Data Types ( html, lhs )
- Homework 3: due Friday, 19 September. [ error.log, sample.log, Log.hs ]
Week 4 (18 September): Polymorphism ( html, lhs )
- Homework 4: due Friday, 26 September. [ BST.hs ]
Week 5 (25 September): Type Classes ( html, lhs )
- Homework 5: due Friday, 3 October. [ Parser.hs, Ring.hs ]
Week 6 (2 October): Monoids, I/O ( html, lhs )
- Homework 6: due Friday, 17 October. [ markets.xlsx, markets.json ]
Week 7 (16 October): Lazy evaluation ( html, lhs )
- Homework 7: due Friday, 24 October.
Week 8 (23 October): Monads ( html, lhs )
- Homework 8: due Friday, 31 October.
Week 10 (5 November): Gloss ( html, lhs )
- Homework 10: due Friday, 14 November. [ Pong.jar, Tetris.zip ]
Week 11 (13 November): Template Haskell ( html, lhs ) [ SpliceFunctions.lhs ]
- The final project is due on Friday, 21 November.
- Week 12 (20 November): Concurrency & Parallelism ( html, lhs ) [ Bank.hs, STMBank.hs ]
- Week 13 (25 November): Types ( html, lhs ) [ Gadt.hs, TH.hs, UseTH.hs, Equality.hs, TyRep.hs, Units.hs, Nats.hs, Mods0.hs, Mods1.hs, Mods2.hs, FunExtQC.hs, OrdList.hs ]
- Week 14 (4 December): Haskell and Java ( html, lhs )