Abstract
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.
- R. Bird. Introduction to Functional Programming using Haskell. Prentice Hall, 1998. Second edition. Google Scholar
Digital Library
- L. Bulwahn. The new Quickcheck for Isabelle--Random, exhaustive and symbolic testing under one roof. In C. Hawblitzel and D. Miller, editors, CPP 2012, volume 7679 of LNCS, pages 92--108. Springer, 2012. Google Scholar
Digital Library
- K. Claessen and J. Hughes. QuickCheck: A lightweight tool for random testing of Haskell programs. In ICFP ';00, pages 268--279. ACM, 2000. Google Scholar
Digital Library
- N. A. Danielsson, J. Hughes, P. Jansson, and J. Gibbons. Fast and loose reasoning is morally correct. In J. G. Morrisett and S. L. P. Jones, editors, POPL 2006, pages 206--217. ACM, 2006. Google Scholar
Digital Library
- J. Ellson, E. R. Gansner, E. Koutsofios, S. C. North, and G. Woodhull. Graphviz--Open source graph drawing tools. In Graph Drawing, pages 483--484, 2001.Google Scholar
- P. Hudak. The Haskell School of Expression. Cambridge University Press, 2000. Google Scholar
Digital Library
- G. Hutton. Programming in Haskell. Cambridge University Press, 2007. Google Scholar
Digital Library
- D. E. Knuth, T. L. Larrabee, and P. M. Roberts. Mathematical Writing. Mathematical Association of America, 1989. Google Scholar
Digital Library
- F. Lindblad. Property directed generation of first-order test data. In M. Morazán, editor, TFP 2007, pages 105--123. Intellect, 2008.Google Scholar
- T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL: A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer, 2002. Google Scholar
Digital Library
- P. Rudnicki. Why I do it? http://webdocs.cs.ualberta.ca/ piotr/ProgContest/why.txt. Accessed 25 Feb. 2013.Google Scholar
- C. Runciman, M. Naylor, and F. Lindblad. SmallCheck and Lazy SmallCheck: Automatic exhaustive testing for small values. In A. Gill, editor, Haskell 2008, pages 37--48. ACM, 2008. Google Scholar
Digital Library
- S. Schleimer, D. S. Wilkerson, and A. Aiken. Winnowing: Local algorithms for document fingerprinting. In A. Y. Halevy, Z. G. Ives, and A. Doan, editors, SIGMOD Conference, pages 76--85. ACM, 2003. Google Scholar
Digital Library
- G. Sutcliffe and C. B. Suttner. The state of CASC. AI Commun., 19 (1): 35--48, 2006. Google Scholar
Digital Library
- S. Thompson. Haskell, the craft of functional programming. Addison Wesley, 2011. Third edition. Google Scholar
Digital Library
Index Terms
Experience report: the next 1100 Haskell programmers
Recommendations
Experience report: the next 1100 Haskell programmers
Haskell '14: Proceedings of the 2014 ACM SIGPLAN symposium on HaskellWe 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 ...
FunZ Designs -- A Bridge Between Z Specifications and Haskell Implementations
COMPSAC '95: Proceedings of the 19th International Computer Software and Applications ConferenceFunZ, an intermediate specification language, is part of a complete methodology designed to facilitate the derivation of purely functional programs from Z specifications. FunZ is actually an extension of Haskell, yet the language also retains a Z-like ...
Experience report: using hackage to inform language design
HASKELL '10Hackage, an online repository of Haskell applications and libraries, provides a hub for programmers to both release code to and use code from the larger Haskell community. We suggest that Hackage can also serve as a valuable resource for language ...







Comments