CS43 - Winter Quarter 2019
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).
- Lectures: Mon / Wed: 4:30pm - 5:50pm, in Building 200, Room 030.
- Instructors: Adithya Ganesh and Isaac Scheinfeld
- Advisor: Jerry Cain
- Office Hours: By appointment, with scheduled times TBD.
There is no formal textbook, but we recommend the Haskell wikibook as a primary reference. A larger compilation of resources can be found here.
- Assignment 1 (out: 1/14, due: 1/21). Solutions here.
- Assignment 2 (out: 1/21, due: 1/28). Solutions here.
- Assignment 3 (out: 1/29, due: 2/6).
- Assignment 4 (out: 2/7, due: 2/15). Solutions here.
- Assignment 5 (out: 2/20, due: 2/27).
- Assignment 6 (out: 3/5, due: 3/15).
- Assignment 7 (out: 3/5, due: 3/15).
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:
- Attendance in \(\ge\) 80% of lectures.
- 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.
Any feedback is appreciated; the anonymous form is here.