A functional I/O system*: Or, fun for freshman kids

Matthias Felleisen*, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

27 Scopus citations

Abstract

Functional programming languages ought to play a central role in mathematics education for middle schools (age range: 10-14). After all, functional programming is a form of algebra and programming is a creative activity about problem solving. Introducing it into mathematics courses would make pre-algebra course come alive. If input and output were invisible, students could implement fun simulations, animations, and even interactive and distributed games all while using nothing more than plain mathematics. We have implemented this vision with a simple framework for purely functional I/O. Using this framework, students design, implement, and test plain mathematical functions over numbers, booleans, string, and images. Then the framework wires them up to devices and performs all the translation from external information to internal data (and vice versa)-just like every other operating system. Once middle school students are hooked on this form of programming, our curriculum provides a smooth path for them from pre-algebra to freshman courses in college on object-oriented design and theorem proving.

Original languageEnglish (US)
Title of host publicationICFP'09 - Proceedings of the 2009 ACM SIGPLAN International Conference on Functional Programming
Pages47-58
Number of pages12
DOIs
StatePublished - Nov 27 2009
Event2009 ACM SIGPLAN International Conference on Functional Programming, ICFP'09 - Edinburgh, United Kingdom
Duration: Aug 31 2009Sep 2 2009

Publication series

NameProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP

Other

Other2009 ACM SIGPLAN International Conference on Functional Programming, ICFP'09
Country/TerritoryUnited Kingdom
CityEdinburgh
Period8/31/099/2/09

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'A functional I/O system*: Or, fun for freshman kids'. Together they form a unique fingerprint.

Cite this