skip to main content
short-paper

Experience report: the next 1100 Haskell programmers

Published:03 September 2014Publication History
Skip Abstract Section

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.

References

  1. R. Bird. Introduction to Functional Programming using Haskell. Prentice Hall, 1998. Second edition. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Claessen and J. Hughes. QuickCheck: A lightweight tool for random testing of Haskell programs. In ICFP ';00, pages 268--279. ACM, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. P. Hudak. The Haskell School of Expression. Cambridge University Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. G. Hutton. Programming in Haskell. Cambridge University Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. E. Knuth, T. L. Larrabee, and P. M. Roberts. Mathematical Writing. Mathematical Association of America, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. F. Lindblad. Property directed generation of first-order test data. In M. Morazán, editor, TFP 2007, pages 105--123. Intellect, 2008.Google ScholarGoogle Scholar
  10. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL: A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Rudnicki. Why I do it? http://webdocs.cs.ualberta.ca/ piotr/ProgContest/why.txt. Accessed 25 Feb. 2013.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Sutcliffe and C. B. Suttner. The state of CASC. AI Commun., 19 (1): 35--48, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Thompson. Haskell, the craft of functional programming. Addison Wesley, 2011. Third edition. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Experience report: the next 1100 Haskell programmers

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!