These are course notes for a second-year Programming Paradigms course that focuses on introducing functional programming concepts, first in JavaScript, then introducing type systems through TypeScript, and finally diving in to Haskell.

The Markdown source for these notes is available at GitHub. Pull-requests with corrections or suggested changes are most welcome.

To cite these course notes, please use the following DOI: DOI