Where do I begin? A problem solving approach in teaching functional programming

  • Simon Thompson
Education: Methodologies
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)


This paper introduces a problem solving method for teaching functional programming, based on Polya's How To Solve It, an introductory investigation of mathematical method. We first present the language independent version, and then show in particular how it applies to the development of programs in Haskell. The method is illustrated by a sequence of examples and a larger case study.


Functional programming Haskell palindrome recognition Polya problem solving 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    David Barnes, Sally Fincher, and Simon Thompson. Introductory problem solving in computer science. In CTC97, Dublin, 1997.Google Scholar
  2. 2.
    Michael Clancy and Marcia Linn. Designing Pascal Solutions: Case studies using data structures. Computer Science Press, W. H. Freeman and Co., 1996.Google Scholar
  3. 3.
    Imre Lakatos. Proofs and Refuations: The Logic of Mathematical Discovery. Cambridge University Press, 1976. Edited by John Worrall and Elie Zahar.Google Scholar
  4. 4.
    John Peterson and Kevin Hammond, editors. Report on the Programming Language Haskell, Version 1.3.,1996.Google Scholar
  5. 5.
    G. Polya. How To Solve It. Princeton University Press, second edition, 1957.Google Scholar
  6. 6.
    Teaching functional programming: Opportunities & difficulties.,September 1996.Google Scholar
  7. 7.
    Simon Thompson. Haskell: The Craft of Functional Programming. Addison-Wesley, 1996.Google Scholar
  8. 8.
    Simon Thompson. Problem solving: recognising palindromes., 1996.Google Scholar
  9. 9.
    Simon Thompson. Programming it in Haskell., 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Simon Thompson
    • 1
  1. 1.Computing LaboratorUniversity of KentCanterburyUK

Personalised recommendations