Musicomputation: a pilot course exploring a pre-college computer science curriculum

Computer Science and Computational Approaches to Music for Middle School and High School Students, also known as Musicomputation (http://musicomputation.com/) was a highly successful course sponsored by the National Science Foundation (IIS-0834034) and first held in June 2008 at New York University. Two NYU professors and two doctoral candidates developed curriculum, gave lectures, and supervised labs introducing computer science and computer music to students aged 12-17. Our hypothesis was that it is easier to learn computer science when the data you are modeling and the problems you are solving belong to a domain that you know well and love. During the project, students progressed far beyond the instructors' expectations, quickly absorbing computer science concepts that even college students often find difficult.For the pilot study, we recruited 11 students with at least five years of background in music from the Juilliard School's Precollege Division, Stuyvesant High School, the NYC-area home-schooling community, and the previous participant lists of cSplash (a yearly event at the Courant Institute at NYU where graduate students and professors teach one- to three-hour classes in computer science and mathematics to students in grades 6-12). About half of the students in Musicomputation had some programming experience, with three of them finishing their year of AP Computer Science at the time of the course. All 11 students were highly motivated and had high levels of expertise in both mathematics and music. Thus, the success of our class was in part due to the fact that we had recruited very good students.Musicomptuation covered computer science basics such as the logical design of computers, formal language theory, sorting algorithms, variables, control structures and a sampling of how the same concepts can be represented in different computer languages. Algorithms and patterns used in certain pieces of contemporary music (Morton Feldman's Triadic memories and Steve Reich's Clapping Music) were also covered in the class, as were the basics of representing sound electronically. Students were taught the programming language Processing (http://www.processing.org/), an open source project based on Java that easily enables immediate visual feedback. We also used Processing for simple music composition, as well as discussing other languages used for music, such as SuperCollider and ChucK.The students produced many programs, both graphical and audible, culminating in final projects which produce music and are downloadable from the Musicomputation website. The interdisciplinary nature of the class helped show the students why computer science is both important and basic to their future development, whether they choose to go into a mathematical or scientific field or continue to develop their musical and artistic talents.To share the exciting developments from the course, the poster displays some of the more visual work that the students created through the use of Processing, such as a fractal assignment to implement recursion and a randomized algorithm that explores the properties of the equation for a circle. It also includes some evidence (in the form of code snippets and discussion) of the revelations in basic programming concepts that students made over the course of their time learning about computer science, including both the simplification and potential expansion of music composition code that can come about with the discovery of iteration and recursion.