Course Schedule
Table of Contents
This is a tentative course schedule, which will evolve during the semester.
NOTE: I am putting up my lecture slides. However, these slides are not a complete representation of the material covered in the lectures, and they are no substitute for attending the lectures. I am supplying a lot of information during the lecture that is not on the slides (verbally, on the whiteboard, on the overhead projector, and by coding live). It is your duty to ensure that you are aware of and study that extra material by attending the lectures and making your own notes. The extra information that I supply in the lecture is examinable.
NB: Please make sure that you study the material listed under Additional information. I expect that you will read the referenced articles and they may be part of questions in the final examination. Optional material will be marked explicitly.
1 Lectures
Week | Topic | Slides | Additional Material |
1 | Introduction and Course Overview | Monday Thursday | Notes |
2 | Introduction to Functional Programming in Haskell | Monday Thursday | Haskell Tutorial (first two chapters), Code |
3 | Property-based Testing I, Guest Lecture by Patrick Flanagan, Jane Street Capital | Monday Thursday (Guest) | |
4 | Property-based Testing II | Mon & Thu | Real World Haskell Book on Quality Assurance |
5 | Functor, Applicative, and Monad | Mon & Thu | |
Midsession Break | |||
6 | Controlling Effects | Mon & Thu | Notes |
7 | Machine Checked Properties | Mon & Thu | |
8 | More on GADTs, Guest lecture by Erik de Castro Lopo | Monday | |
9 | Existentially quantified types and higher-ranked polymorphism | Monday | |
10 | Curry Howard Isomorphism | ||
11 | Case Study: Accelerate | ||
12 | Revision |