Development Environments for a Multimedia Approach to Teaching Functional Programming
My background is in the design and analysis of programming languages, especially typed functional languages such as Haskell or Standard ML. Some of the advantages of functional languages are that it is easy to apply mathematical reasoning techniques (for example, proof by induction) when establishing properties of programs, and they tend to support higher-level descriptions of algorithms and data structures.
Since arriving at DePauw, I have been working with students to develop FUNNIE, the Functional Networked Integrated Environment. FUNNIE provides a tool with which to explore recursion and list operations by writing functions in a language based on Haskell; it has been used in DePauw's Computer Science II class since the fall of 2003. Recent development has focused on supporting graphical and musical output in FUNNIE. In the summer of 2007, the Scales project was started to explore similar issues using the Scala programming language.