Syllabus
Home Syllabus Text / Readings Computing Resources Lecture Slides Homework

 

The first 2/3 of the course will follow the SOE text almost verbatim, as reflected in the syllabus below.  Note that there are several underlying "multimedia applications" that will be explored along the way, which I have marked with an asterisk.

After SOE, we will explore a number of advanced topics, including arrows (a generalization of monads), FRP, and Yampa.

  1. Sept 1: Ch 1: Problem Solving, Programming, and Calculation
  2. Sept 1: Ch 2: A Module of Shapes: Part I (*)
  3. Sept 3: Ch 3: Simple Graphics
  4. Sept 6: Ch 4: Shapes II: Drawing Shapes (*)
  5. Sept 8: Ch 5: Polymorphic and Higher-Order Functions
  6. Sept 10: Ch 6: Shapes III: Perimeters (*)
  7. Sept 13: Ch 7: Trees
  8. Sept 15: Ch 8: A Module of Regions (*)
  9. Sept 17: Ch 9: More About Higher-Order Functions
  10. Sept 20, 22: Ch 10: Drawing Regions (*)
  11. Sept 24: Homework review (PS2)
  12. Sept 27: Homework review (PS3)
  13. Sept 29: Ch 11: Proof by Induction
  14. Oct 1, 4: Ch 12: Qualified Types
  15. Oct 4, 6: Ch 13: A Module of Simple Animations (*)
  16. Oct 8: Homework review (PS4)
  17. Oct 11: Ch 14: Programming with Streams
  18. Oct 13, 15: Ch 15: A Module of Reactive Animations (*)
  19. Oct 18, 22: Ch 16:Communicating With the Outside World
  20. Oct 22: Ch 17: Rendering Reactive Animations (*)
  21. Oct 25, 27: Ch 18: Higher-Order Types
  22. Oct 27, 29: Ch 19: An Imperative Robot Language (*)
  23. Nov 1: Homework review (PS7)
  24. Nov 3: Ch 20: Functional Music Composition (*)
  25. Nov 5: Ch 21: Interpreting Functional Music (*)
  26. Nov 8: Homework review (PS8); Ch 22: From Performance to MIDI
  27. Nov 10: Arrows and Yampa (auxiliary reading)
  28. Nov 12: Yampa and robots (auxiliary reading)
  29. Nov 15: Homework review (PS9); project discussion.
  30. Nov 17: Pan# (guest lecturer: John Peterson)
  31. Nov 19: Pan# (guest lecturer: John Peterson)
  32. Nov 29: State in Haskell
  33. Dec 1: State in Haskell, homework review (PS10)
  34. Dec 3: Course Summary (last day of class).