Using Music to Teach Computation and Mathematics in Secondary
Education


John Peterson
Paul Hudak

Functional and Declarative Languages in Education

September, 2002

How should we teach students the basic principles of computation? What sort of problem domain will provide the motivation to learn about computing? Can we combine the creativity of the arts with the more rigorous demands of mathematics education? These questions are the motivation for this research. While it would be difficult to provide conclusive answers to any of them, we demonstrate a system in which music is used to connect two sorts of learning experience: music composition, a creative endeavor, and computation, a precise mathematical process for defining musical performances. Educationally, we use a language of algorithmic music to teach about abstraction: the definition and use of patterns in a formal and rigorous manner.

We are creating a new version of Haskore, a Haskell-based computer music system, suitable for middle and high school students (age 12 and up) that requires no background in music and uses only a simple functional style of computation. These functions are used to capture melodic and harmonic patterns of notes. Although this language is still in the design stage, we have tested the ideas behind it by using the original version of Haskore directly with high-school level students. In this paper, we discuss our experiences using a music language in the classroom and present the design principles behind the educational version of Haskore and outline sample curricula based on Haskore for teaching computation, algebra, and music.