Music in Introductory Object Oriented Programming Viera K.

20 Slides2.68 MB

Music in Introductory Object Oriented Programming Viera K. Proulx College of Computer and Information Science Northeastern University, Boston MA, USA 1 Constructionism 2010, Paris, France, 16 August 2010

Outline TeachScheme/ReachJava curriculum Game design: motivation, challenge Sound and music: new opportunities Programmer’s view Design considerations Support for test-first design Student experiences 2 Constructionism 2010, Paris, France, 16 August 2010

TeachScheme/ReachJava curriculum Design Recipe for functions: 1. Analyze the problem, define data needed 2. Contract and purpose for the function 3. Examples of use with expected outcomes 4. Inventory of available data, functions 5. Design the function body 6. Turn examples into tests and run tests 3 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge Special libraries that focus on model design Design the scene, program the next scene 4 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge Special libraries that focus on model design Design the scene, program the next scene 5 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge Special libraries that focus on model design Kyle Maguire, James Kandebo 6 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge Enforce Test-First Design Check the state of the world after a tick Check the state of the world in response to a key Check the end of world design Visually test the display of scenes t promotes better understanding, cleaner design (It is hard to test a function that does 20 things) 7 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge no more . econd semester: Java instead of Scheme; mutatio Same games in a new language - little challenge New paradigm: object-oriented language New programming style: state change (mutation) We needed new motivation We needed more challenging We needed a environment framework for imperative testing 8 Constructionism 2010, Paris, France, 16 August 2010

Play music - Carry a Tune (in a bucket?) Use Java MIDI support to play tunes: Synthesizer, Program, Instruments, Notes Tune Instrument (MIDI) Note (pitch) Original design: very simple, yet effective 9 Constructionism 2010, Paris, France, 16 August 2010

Game design: motivation, challenge Special libraries that focus on model design 10 Constructionism 2010, Paris, France, 16 August 2010

Pedagogical goals Creativity and constructionism Learn to work with sequences of notes Compose sequences into melodies See data that represents musical ideas See how such programs can generate music from data See how Test-First Design works in this setting First semester results: surpassed expectations 11 Constructionism 2010, Paris, France, 16 August 2010

Student experiences Define tempo by playing no tunes on some ticks Experiment with instruments, melodies Asked for a richer environment: note duration, program change, mouse actions, key pressrelease A sample musical sequence: 12 Constructionism 2010, Paris, France, 16 August 2010

Current SoundLib library: Note: e.g. C4s2 C# in 4th octave 2 beats multiple ways for defining a note (pitch only, pitch duration, String) Chord: a collection of notes Tune: an Instrument and a Chord SoundConstants: names for notes, instruments, channels, programs TuneBucket: 16 Tunes (one for each MIDI channel) MusicBox: Synthesizer SoundBank with play methods, support for tests Melody: a sequence of Chords with iterator 13 Constructionism 2010, Paris, France, 16 August 2010

Qwortet: A sequencer for music composition Visually compose music, allow replay Robby Grodin 14 Constructionism 2010, Paris, France, 16 August 2010

Qwortet: A sequencer for music composition Visually compose music, allow replay Robby Grodin 15 Constructionism 2010, Paris, France, 16 August 2010

BeatWorld: music recording and replay Start recording z Stop recording x Octave down c Octave up v Recordings p [ ] choice: l ; ‘ , . / - w e t y u a s d f g h j k Kyle Montag 16 Constructionism 2010, Paris, France, 16 August 2010

BeatWorld: music recording and replay Kyle Montag 17 Constructionism 2010, Paris, France, 16 August 2010

Design considerations Note class uses multiple representations of data verifies validity automatically converts between representations Tests: check the contents of the TuneBucket after each tick after each key event check what notes are playing after several ticks Composition: work with sequences of data compose a canon, reverse the sequence, repeat sequences create a loop; build new way of displaying the data 18 Constructionism 2010, Paris, France, 16 August 2010

Conclusion Simple environment that motivates and engages Number of pedagogical opportunities Careful design to support pedagogical goals Acknowledgements Erich Neuwirth (Music and Spreadsheets) Jenny Sendova (Music sequnces), Uri Wilensky (NetLogo) Matthias Felleisen (World and Universe libraries; TeachScheme/ReachJava) NSF DUE 0920182: “Integrating Test Design into Computing Curriculum from the Beginning” 19 Constructionism 2010, Paris, France, 16 August 2010

Find out more http://www.ccs.neu.edu/home/vkp http://www.ccs.neu.edu/javalib http://www.ccs.neu.edu/javalib/SoundLib http://teachscheme.org http://www.bootstrapworld.org 20 Constructionism 2010, Paris, France, 16 August 2010

Back to top button