Software System Design and Implementation (18s1)

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    

2018-06-14 Thu 18:29

Announcements RSS