Title: Using Music to Teach Computation and Mathematics in Secondary
1- Using Music to Teach Computation and Mathematics
in Secondary - Education
- John Peterson
- Paul (who me, travel?) Hudak
- Yale University
2Good Morning Class!
- Lets learn about programming!
- Please get out your computers .
3All About Computation!
Programming is fun! Lets do something exciting
Great!
4All About Computation!
OK - heres a really amazing function. Its
called factorial
Huh?
5All About Computation!
factorial 0 1 factorial x x factorial
(x-1)
Big deal
6All About Computation!
OK - I know. Ill show you how to sort a list!
Zzzz
7Generating Interest
- So how do we get students interested in
computation? - Be concrete! Constantly produce artifacts that
motivate students to keep going - Keep it simple avoid unnecessary detail
- Cool domains such as music, robots, or
pictures - Exploit creativity allow students to build
interesting artifacts and share them with others - Tools that are powerful yet appropriate
8What Weve Done
- Paul Hudak has developed Haskore, a system for
describing music using functions. Haskore is a
Haskell library. - Ive taken Haskore on the road to high school
students. Students were very interested in music
as a way to express patterns. - Paul has looked at the algebraic properties of
music and a formal semantics of music
performance. -
9About Haskore
- type Pitch (PitchClass, Octave)
- data PitchClass Cf C Cs Df D Ds Ef
E Es Ff F Fs - Gf G Gs Af A As
Bf B Bs - type Octave Int
- data Music
- Note Pitch Dur -- a note
\ atomic - Rest Dur -- a rest
/ objects - Music Music --
sequential composition - Music Music --
parallel composition - Tempo Int Int Music -- scale the
tempo - Trans Int Music --
transposition - Instr IName Music --
instrument label - type Dur Float -- in
whole notes - type IName String
- type PName String
10Teaching Computation
- Vocabulary pitch and duration, sequential and
parallel composition - Naming reusing elements of music
- Music transformation tempo scaling,
transposition - Functional abstraction
- Recursion and iteration
- Higher order functions
11An Example
A function to recursively apply transformations f
(to elements in a sequence) and g (to accumulated
phrases) rep (Music -gt Music) -gt (Music -gt
Music) -gt Int -gt Music -gt Music rep f g 0 m
Rest 0 rep f g n m m g (rep f g (n-1) (f
m)) An example using "rep" three times,
recursively, to create a "cascade" of
sounds. run rep (Trans 5) (delay
tn) 8 (c 4 tn) cascade rep (Trans 4) (delay
en) 8 run cascades rep id (delay sn) 2
cascade waterfall cascades revM cascades
Good music in just 6 lines!
12The Algebra of Music
- Using simple equational reasoning, many useful
axioms - are easily proven
- Tempo-scaling is multiplicative.
- Transposition is additive.
- Parallel composition is commutative.
- Tempo-scaling and transposition are
distributive over both sequential and parallel
composition. - Sequential and parallel composition are
associative. - Rest 0 is a unit for Tempo and Trans, and a zero
for sequential and parallel composition.
13Evaluation
- Does an arts style of instruction work in a
technical domain? - Can we reach students that are not otherwise
motivated to study computing? - Does computing have a measurable impact on other
learning domains? - Is this a good way to teach standard music
education?
14Where to from here
- Use the principles to Haskore to build a
student-friendly algorithmic music system - Explore music as a teaching context for computing
principles using Haskore - Integrate computing into a music education
curriculum - Investigate music as a way of exploring
algebraic reasoning
15To All You Haskell Instructors
- Haskore is a great tool for teaching.
- Its simple, easy to install, and opens up a new
domain for students.
16Examples
Eric
Abe
Little
Davis