Haskell is a programming language that changes the way you think. Introduction to Haskell is being taught at the University of Virginia as a 1-credit pass/fail course offered this Spring 2013.
Lectures will be posted every Tuesday.
- Lecture 1: An Unexpected Journey™
Outlines class structure, syllabus, grading policies, and reference text. Introduces the origin and theory behind Haskell.
- Lecture 2: (["lists", "tuples"], "and data types")
Introduces Lists and Tuples, the most important data structures in Haskell.
- Lecture 3: types :: type1 → type2
Explores Haskell's strong Type system and Typeclasses. Along the way, covers the concept of Currying and emphasises modular coding.
- Lecture 4: #SyntaxSwag
Covers proper syntax in writing longer Haskell code. Introduces pattern matching and guards.
- Lecture 5: Make Your Own Data Type
Shows how to create your own data types to customize Haskell for you needs. Also covers record syntax, type parameters, and modules.
- Lecture 6: Maps, Folds, and Beyond
Investigates higher order functions such as maps, filters, folds, and a whole lot more.
- Lecture 7: The Prolific Haskell Community
Presents the Haskell community by introducing hackage and cabal.
- Lecture 8: Input/Output
Begins the journey to investigate the IO Monad, covering basic input and output.
- Lecture 9: Monads
Enlightens the reader about Functors, Monoids, and Monads.
- Lecture 10: Haskell Development Methods
Reinforces good programming practices in the world of Haskell.
- Lecture 11: Haskell in the Real World
Demonstrates use of existing Haskell software.
An introductory Computer Science course is recommend but not required. No previous Computer Science knowledge will be assumed. A curiosity of the topic is encouraged.
The syllabus is hosted here http://people.virginia.edu/~ns4av/syllabus/
- Real World Haskell by Bryan O’Sullivan, Don Stewart, and John Goerzen
(Available online: http://book.realworldhaskell.org/ )
- Learn You a Haskell for Great Good! By Miran Lipovača
(Available online: http://learnyouahaskell.com/ )
I'm a CS/Math major lecturing a 60-person class about Haskell at the University of Virginia.