This is a tentative syllabus for the course. Links will be added regularly with current/upcoming topics and assignments. Notes will be provided for each class, linked from the date. Unless otherwise indicated, references are to the textbook (The Haskell School of Expression, or "SOE"). Feedback is appreciated — typos, suggestions for more detailed explanations, additional examples, etc.

DateTopicsReferencesOutDue
Jan 5IntroCh. 1; Learn Haskell in 10 minutesSA-0
Jan 7List processingHow to work on lists; Prelude docs
Jan 10Recursion, pattern matchingSA-1SA-0
Jan 11 (x)Data, representing shapesCh. 2SA-2SA-1
Jan 12I/O, graphics, drawing shapesCh. 3, 4SA-3,PS-1SA-2
Jan 14PolymorphismSec. 5.1, 5.2SA-3
Jan 17MLK holiday
Jan 19List functions, function functionsSec. 5.3-5.6, Ch. 9SA-4,PS-2PS-1
Jan 21ADTsSA-5SA-4
Jan 24TreesCh. 7SA-6SA-5
Jan 26Iteration (motifs)PS-3PS-2
Jan 28InductionCh. 11SA-6
Jan 31Induction, cont.SA-7
Feb 2Search (Sudoku)PS-4PS-3
Feb 4DatabasesSA-8SA-7
Feb 6Review session, 4pm, 115 Sudikoffpractice exams on blackboard
Feb 7Graph search; stacks and queues
Midterm, 7-10pm, 008 Kemeny
Feb 9Intro to parsingPS-5SA-8,PS-4
Feb 11Winter carnival
Feb 14Parsing sentences
Feb 15 (x)Parsing expressionsSA-9
Feb 16Regions and picturesCh. 8, 10PS-6PS-5
Feb 18Region extensions; interactionSA-10SA-9
Feb 21Intro to streamsCh. 14SA-10
Feb 23Digital logic streamsSA-11,PS-7PS-6
Feb 25Computational streams
Feb 28Intro to monadsSec. 18.2SA-11
Mar 2List, IO, and state monadsSec. 18.3, 18.4SA-12
Mar 4MemoizationPS-7
Mar 7ConcurrencySA-13SA-12
Mar 8 (x)Eat pizza, talk about CS
Mar 9Concurrency: transactionsBeautiful concurrencySA-13
Mar 11Review session, 3pm, 115 Sudikoffpractice exams on blackboard
Mar 14Final, 8-11am, 007 Kemeny