CIS 194: Introduction to Haskell (Fall 2018)
- Lectures: Thursdays 4:30pm-6:00pm, Towne 313
- Instructor: Palmer Paul
- TAs: Rob Zajac | Sanjit Kalapatapu
- TA office hours are announced on Piazza.
- Class Piazza site
Course Description
Haskell is a high-level, purely functional programming language with a strong static type system and elegant mathematical underpinnings. It is being increasingly used in industry by organizations such as Facebook, AT&T, and NASA, along with several financial firms. We will explore the joys of functional programming, using Haskell as a vehicle. In the first part of the course, you will learn to use Haskell to easily and conveniently write practical programs. The last couple of weeks will consist of several special topics that explore advanced features of Haskell. Evaluation will be based on class participation, weekly programming assignments, and an open-ended final project.
Lecture notes and assignments
All homework assignments should emerge creatively from the Style guidelines. Homework is due at midnight at the end of the day listed. All homework submission is via Canvas.
- Week 1 (Thursday, 30 August):
Haskell Basics
Homework 1 (due Thursday, 6 September).
- Week 2 (Thursday, 6 September):
Functions
Homework 2 (due Friday, 14 September).
- Week 3 (Thursday, 13 September):
Built-in types, Type signatures, Generics
Homework 3 (due Friday, 14 September).
- Week 4 (Thursday, 20 September):
Custom types, Pattern matching
- Week 5 (Thursday, 27 September):
Typeclasses, Monoid, Functor
Homework 4 (due Wednesday, 10 October).