Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1863543.1863576acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Experience report: growing programming languages for beginning students

Published: 27 September 2010 Publication History

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.

Supplementary Material

JPG File (icfp-tues-1610-sperber.jpg)
MOV File (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.
[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.
[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.
[4]
}}Will Clinger, R. Kent Dybvig, Michael Sperber, and Anton van Straaten. SRFI76:R6RSrecords.http://srfi.schemers.org/srfi- 76/, September 2005.
[5]
}}Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. How to Design Programs. MIT Press, 2001.
[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.
[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.
[8]
}}Matthew Flatt, Robert Bruce Findler, and PLT. Guide: Racket. PLT, 2010. Available from http://pre.plt-scheme.org/docs/.
[9]
}}Kathryn E. Gray and Matthias Felleisen. Linguistic support for unit tests. Technical Report UUCS-07-013 2007, University of Utah, 2007.
[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.
[11]
}}James I. Hsia, Elspeth Simpson, Daniel Smith, and Robert Cartwright. Taming Java for the classroom. In SIGCSE 2005, February 2005.
[12]
}}Herbert Klaeren and Michael Sperber. Die Macht der Abstraktion. Teubner Verlag, 1st edition, 2007.
[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.
[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.
[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.
[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.
[17]
}}Philip Wadler. A critique of Abelson and Sussman or why calculating is better than scheming. SIGPLAN Notices, 22(3):83--94, March 1987.

Cited By

View all
  • (2020)Using Video Game Development to Motivate Program Design and Algebra Among Inner-City High School StudentsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.321.5321(78-99)Online publication date: 24-Aug-2020
  • (2019)FSM Error MessagesElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.295.1295(1-16)Online publication date: 18-Jun-2019
  • (2018)Teaching how to program using automated assessment and functional glossy games (experience report)Proceedings of the ACM on Programming Languages10.1145/32367772:ICFP(1-17)Online publication date: 30-Jul-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

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
  • 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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 September 2010

Permissions

Request permissions for this article.

Check for updates

Author Tag

  1. introductory programming

Qualifiers

  • Research-article

Conference

ICFP '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Using Video Game Development to Motivate Program Design and Algebra Among Inner-City High School StudentsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.321.5321(78-99)Online publication date: 24-Aug-2020
  • (2019)FSM Error MessagesElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.295.1295(1-16)Online publication date: 18-Jun-2019
  • (2018)Teaching how to program using automated assessment and functional glossy games (experience report)Proceedings of the ACM on Programming Languages10.1145/32367772:ICFP(1-17)Online publication date: 30-Jul-2018
  • (2016)An empirical study on the impact of C++ lambdas and programmer experienceProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884849(760-771)Online publication date: 14-May-2016
  • (2013)Computer science education as part of an undergraduate program in community information systems2013 IEEE Frontiers in Education Conference (FIE)10.1109/FIE.2013.6684858(417-422)Online publication date: Oct-2013
  • (2013)Laziness by needProceedings of the 22nd European conference on Programming Languages and Systems10.1007/978-3-642-37036-6_5(81-100)Online publication date: 16-Mar-2013
  • (2012)Form over functionProceedings of the 2012 Annual Workshop on Scheme and Functional Programming10.1145/2661103.2661113(81-89)Online publication date: 9-Sep-2012
  • (2011)Mind your languageProceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software10.1145/2048237.2048241(3-18)Online publication date: 22-Oct-2011
  • (2022)Gradual Grammars: Syntax in Levels and LocalesProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567524(134-147)Online publication date: 29-Nov-2022
  • (2014)On teaching *how to design programs*ACM SIGPLAN Notices10.1145/2692915.262813749:9(153-166)Online publication date: 19-Aug-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

EPUB

View this article in ePub.

ePub

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media