TY - JOUR
T1 - A functional I/O system :Or, fun for freshman kids
AU - Felleisen, Matthias
AU - Findler, Robert
AU - Flatt, Matthew
AU - Krishnamurthi, Shriram
PY - 2009/9
Y1 - 2009/9
N2 - 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.
AB - 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.
KW - Introductory programming
UR - http://www.scopus.com/inward/record.url?scp=70350447336&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70350447336&partnerID=8YFLogxK
U2 - 10.1145/1631687.1596561
DO - 10.1145/1631687.1596561
M3 - Article
AN - SCOPUS:70350447336
SN - 1523-2867
VL - 44
SP - 47
EP - 58
JO - ACM SIGPLAN Notices
JF - ACM SIGPLAN Notices
IS - 9
ER -