We report on our experience teaching a Haskell-based functional programming course to over 1100 students for two winter terms. The syllabus was organized around selected material from various sources. Throughout the terms, we emphasized correctness through QuickCheck tests and proofs by induction. The submission architecture was coupled with automatic testing, giving students the possibility to correct mistakes before the deadline. To motivate the students, we complemented the weekly assignments with an informal competition and gave away trophies in a award ceremony.
© Blanchette, Hupel, Nipkow, Noschinski & Traytel, 2014. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive version was published in Haskell 2014, dx.doi.org/10.1145/2633357.2633359.Paper draft