Class Information

CS43 - Winter Quarter 2019

General Info

This course explores the philosophy and fundamentals of functional programming, focusing on the Haskell language, its theoretical underpinnings, and practical applications. Topics include: functional abstractions (function composition, higher order functions), immutable data structures, type systems, and various functional design patters (monads, etc).


There is no formal textbook, but we recommend the Haskell wikibook as a primary reference. A larger compilation of resources can be found here.



There are no formal prerequisites, but we recommend “programming and mathematical maturity.” In terms of Stanford courses, CS107 + CS103 or equivalent experience will suffice.


To pass the class (graded C/NC), we expect:

  1. Attendance in \(\ge\) 80% of lectures.
  2. Successful completion of \(\ge 5/7\) assignments, which are designed to take around an hour each.

We also welcome open source contributions to the course materials; we will offer extra credit for this on a case-by-case basis to replace assignments.

Anonymous feedback

Any feedback is appreciated; the anonymous form is here.