Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Haskell: the craft of functional programming
Haskell: the craft of functional programming
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Mechanized formal reasoning about programs and computing machines
Automated reasoning and its applications
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
The Haskell school of expression: learning functional programming through multimedia
The Haskell school of expression: learning functional programming through multimedia
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Event-driven programming is simple enough for CS1
Proceedings of the 6th annual conference on Innovation and technology in computer science education
Introduction to Functional Programming
Introduction to Functional Programming
The risks and benefits of teaching purely functional programming in first year
Journal of Functional Programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
The structure and interpretation of the computer science curriculum
Journal of Functional Programming
Event-driven programming facilitates learning standard programming concepts
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Programming in Haskell
Through the looking glass: teaching CS0 with Alice
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Teaching functional programming with soccer-fun
Proceedings of the 2008 international workshop on Functional and declarative programming in education
Real World Haskell
Automatic verification for interactive graphical programs
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Crossing state lines: adapting object-oriented frameworks to functional reactive languages
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Scheme with classes, mixins, and traits
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Contracts for first-class modules
DLS '09 Proceedings of the 5th symposium on Dynamic languages
“little language” project modules
Journal of Functional Programming
Contracts for first-class classes
Proceedings of the 6th symposium on Dynamic languages
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Journal of Functional Programming
WeScheme: the browser is your programming environment
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
Functional video games in the CS1 classroom
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
Engaging high school students in computer science via challenging applications
Proceedings of the 2011 conference on Information technology education
Automated web-based user interfaces for novice programmers
Proceedings of the 50th Annual Southeast Regional Conference
Functional video games in CS1 II: from structural recursion to generative and accumulative recursion
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Whalesong: running racket in the browser
Proceedings of the 9th symposium on Dynamic languages
Hi-index | 0.00 |
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.