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