ITU, Copenhagen, 21--25 June, 2010



Papers, tutorials, and lecture notes as indicated for each session. But Hughes [Hug89] is a classic, and [HPF] and [Lip] are both good, albeit very different, tutorials. 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].

Lectures and Practicals

This is a somewhat tentative overview of the Lectures (L) and Practicals (P). In particular, end times are approximate: some lectures may be a bit shorter.

Session Time Content Reading/Material
Day 1: Monday, 21 June
L1 9:30--10:30 Introduction, Classic FRP (CFRP) Slides: on screen, 4up, 9up
L2 10:45--11:45 CFRP and Semantics (as above)
P1 13:00--14:00 DIY FRP [WH00] Exercises Source code
P2 14:15--15:15 DIY FRP (as above)
P3 14:15--15:15 DIY FRP (as above)
Day 2: Tuesday, 22 June
L3 9:30--10:30 Yampa: Arrows-based FRP Slides: on screen, 4up, 9up
L4 10:45--11:45 Yampa: Arrows-based FRP (as above)
L5 13:00--14:00 Yampa: Arrows-based FRP (as above)
P4 14:15--15:15 Yampa basics [NCP02] Exercises
P5 15:30--16:40 Yampa basics (as above)
Day 3: Wednesday, 23 June
L6 10:45--11:45 YFrob: Functional Reactive Robotics Slides: on screen, 4up, 9up
P6 13:00--14:00 Robot programming [HCNP02]
YFrob 0.4 (.tar.gz) (See YFrob slides for installation instructions.)
P7 14:15--15:15 Robot programming (as above)
L7 15:30--16:30 FRP and Highly Dynamic System Structure Slides: on screen, 4up, 9up
[NCP02] [CNP03]
Day 4: Thursday, 24 June
L8 9:30--10:30 The Yampa Implementation Slides: on screen, 4up, 9up
L9 10:45--11:45 Switched-on Yampa Slides: on screen, 4up, 9up
P8 13:00--14:00 Robot and/or video games programming
P9 14:15--15:15 Robot and/or video games programming
P10 15:30--16:30 YRSC 2010
Day 5: Friday, 25 June
L10 9:30--10:30 Functional Hybrid Modelling (FHM) Slides: on screen, 4up, 9up
L11 10:45--11:45 FHM/Discussions/Wrap Up


Last updated 25 June 2010.