skip to main content
research-article

Experience report: growing programming languages for beginning students

Published:27 September 2010Publication History
Skip Abstract Section

Abstract

A student learning how to program learns best when the programming language and programming environment cater to her specific needs. These needs are different from the requirements of a professional programmer. Consequently, the design of teaching languages poses challenges different from the design of professional languages. Using a functional language by itself gives advantages over more popular, professional languages, but fully exploiting these advantages requires careful adaptation to the needs of the students' as-is, these languages do not support the students nearly as well as they could. This paper describes our experience adopting the didactic approach of How to Design Programs, focussing on the design process for our own set of teaching languages. We have observed students as they try to program as part of our introductory course, and used these observations to significantly improve the design of these languages. This paper describes the changes we have made, and the journey we took to get there.

Skip Supplemental Material Section

Supplemental Material

icfp-tues-1610-sperber.mov

References

  1. }}Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. MIT Press, Cambridge, Mass., second edition, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}Annette Bieniusa, Markus Degen, Phillip Heidegger, Peter Thiemann, Stefan Wehr, Martin Gasbichler, Marcus Crestani, Herbert Klaeren, Eric Knauel, and Michael Sperber. HtDP and DMdA in the battlefield. In Frank Huch and Adam Parkin, editors, Functional and Declarative Programming in Education, Victoria, BC, Canada, September 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}Koen Claessen and John Hughes. QuickCheck: A lightweight tool for ran- dom testing of Haskell programs. In Philip Wadler, editor, Proceedings International Conference on Functional Programming 2000, pages 268-- 279, Montreal, Canada, September 2000. ACM Press, New York. ISBN 1--58113--202--6. doi: http://doi.acm.org/10.1145/351240.351266. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}Will Clinger, R. Kent Dybvig, Michael Sperber, and Anton van Straaten. SRFI76:R6RSrecords.http://srfi.schemers.org/srfi- 76/, September 2005.Google ScholarGoogle Scholar
  5. }}Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. How to Design Programs. MIT Press, 2001.Google ScholarGoogle Scholar
  6. }}Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. The TeachScheme! project: Computing and programming for every student. Computer Science Education, March 2004.Google ScholarGoogle Scholar
  7. }}Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul A. Steckler, and Matthias Felleisen. DrScheme: A programming environment for Scheme. Journal of Func- tional Programming, pages 159--182, March 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}Matthew Flatt, Robert Bruce Findler, and PLT. Guide: Racket. PLT, 2010. Available from http://pre.plt-scheme.org/docs/.Google ScholarGoogle Scholar
  9. }}Kathryn E. Gray and Matthias Felleisen. Linguistic support for unit tests. Technical Report UUCS-07-013 2007, University of Utah, 2007.Google ScholarGoogle Scholar
  10. }}Bastiaan Heeren, Daan Leijen, and Arjan van IJzendoorn. Helium, for learning Haskell. In Johan Jeuring, editor, Proceedings of the 2003 ACM SIGPLAN Haskell Workshop, pages 62--71, Uppsala, Sweden, August 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}James I. Hsia, Elspeth Simpson, Daniel Smith, and Robert Cartwright. Taming Java for the classroom. In SIGCSE 2005, February 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}Herbert Klaeren and Michael Sperber. Die Macht der Abstraktion. Teubner Verlag, 1st edition, 2007.Google ScholarGoogle Scholar
  13. }}Guillaume Marceau, Kathi Fisler, and Shriram Krishnamurthi. Measuring the effectiveness of error messages designed for novice programmiers. In 2010 Workshop on Scheme and Functional Programming, Montréal, Québec, Canada, August 2010.Google ScholarGoogle Scholar
  14. }}Linda McIver and Damian Conway. Seven deadly sins of introductory programming language design. In Proceedings Software Engineering: Education & Practice, pages 309--316, Los Alamitos, CA, USA, 1996. IEEE Computer Society Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}Vincent Rahli, J. B. Wells, and Fairouz Kamareddine. Challenges of a type error slicer for the SML language. Technical Report HW-MACS- TR-0071, Heriot-Watt University, School of Mathematics & Computer Science, September 2009.Google ScholarGoogle Scholar
  16. }}Peter van Keeken. Analyzing Helium programs obtained through logging -- the process of mining novice Haskell programs. Master's thesis, Utrecht University, October 2006. INF/SCR-05--93.Google ScholarGoogle Scholar
  17. }}Philip Wadler. A critique of Abelson and Sussman or why calculating is better than scheming. SIGPLAN Notices, 22(3):83--94, March 1987.. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Experience report: growing programming languages for beginning students

      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

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 45, Issue 9
        ICFP '10
        September 2010
        382 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1932681
        Issue’s Table of Contents
        • cover image ACM Conferences
          ICFP '10: Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
          September 2010
          398 pages
          ISBN:9781605587943
          DOI:10.1145/1863543

        Copyright © 2010 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 27 September 2010

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      ePub

      View this article in ePub.

      View ePub
      About Cookies On This Site

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

      Learn more

      Got it!