Papers, tutorials, and lecture notes as indicated for each session. There are also a number of books on Haskell and functional programming that you may find useful. Some examples:
Programming in Haskell [Hut07] by Graham Hutton is a good beginner's book on Haskell, although aimed at first-year undergraduates. |
|
Purely Functional Data Structures [Oka98] by Chris Okasaki is a great book on data structures in a purely functional setting, and how to employ both lazy and strict evaluation to get the right complexity bounds. Moreover, as purely functional data structures are persistent, which is a very useful property in its own right, the utility of the presented material goes well beyond functional programming. |
|
Real World Haskell [SGS09] by Bryan O'Sullivan, John Goerzen, and Don Stewart covers everything you need to know for serious Haskell development. |
Wondering how to debug your Haskell programs? Well, there are a number of options. One possibility, while it has certain drawbacks, is the traditional, procedural debugger integrated in GHCi 6.8.1 or later. You can read more about it in Bernie Pope's article in issue 10 of the Monad.Reader [POP08].
This is a somewhat tentative overview of the Lectures (L) and Practicals (P). In particular, some of the lectures advertised as 2 x 45 minutes are likely to be a bit shorter, giving a bit more time for the following practical.
Session | Date and Time | Content | Reading |
---|---|---|---|
L1 | 17 May, 10:15--12:00 | Review of Haskell: A lightening tour in 90 minutes | Slides: on screen,
4up,
9up
[HPF] [Hug89] [Lip] [Wad89] |
P1 | 17 May, 13:15--15:00 | Haskell Basics | Mini Tutorial [HPF] [Hug89] |
L2 | 17 May, 15:15--17:00 | Lazy Functional Programming | Slides: on screen,
4up,
9up
[AHU83] [Hug89] [Joh87] [JG92] [Llo94] |
L3 | 18 May, 09:15--11:00 | Purely Functional Data Structures |
Slides: on screen,
4up,
9up
[Oka98] |
P2 | 18 May, 11:15--12:00 | Lazy Functional Programming and Purely Functional Data Structures | Exercises Lecture 2
Exercises Lecture 3 |
L4 | 18 May, 13:15--15:00 | Monads |
Slides: on screen,
4up,
9up
[BHM00] [Wad92] |
P3 | 18 May, 15:15--16:00 | Monads | Exercises Lecture 4 and 6 |
L5 | 18 May, 16:15--17:00 | Type Classes | Slides: on screen, 4up, 9up |
L6 | 19 May, 09:15--11:00 | More About Monads and Other Notions of Effectful Computation | Slides: on screen,
4up,
9up
[BHM00] [LHJ95] |
P4 | 18 May, 11:15--12:00 | Monads and Type Classes | Exercises Lecture 4 and 6
Exercises Lecture 5 |
L7 | 19 May, 13:15--15:00 | Concurrency | Slides: on screen,
4up,
9up
[Cla99] [HMPH05] [Pey07] |
P5 | 18 May, 15:15--16:00 | Catch up |