Fall2011.CSCI180CourseSyllabus History

Show minor edits - Show changes to output

Changed lines 55-66 from:
'''Week 4:''' Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm. (Ch. 3)

'''Week 5:''' The jMusic data structure
: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists. (Ch. 4)

'''Week 6
:''' Creating polyphony and repetition; managing musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc. (Ch. 5)

'''Week 7:''' Chord progressions; making arpeggios; jMusic CPhrase objects; the Python for-loop; more on Python lists. (Ch. 5)

'''Week 8:''' Making canons and transcriptions with jMusic. (Ch.
5)

'''Week 9:''' Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification. (Ch. 6)
to:
'''Week 4:''' Transcribing music to jythonMusic; the jythonMusic data structure: Note, Phrase, Part, and Score; time and key signatures; repetition and phasing; Python lists. (Ch. 3)

'''Week 5
:''' Creating polyphony and repetition; managing musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc. (Ch. 4)

'''Week 6:''' Chord progressions; making arpeggios; jMusic CPhrase objects;
the Python for-loop; more on Python lists. (Ch. 4)

'''Week 7:''' Making canons and transcriptions with jMusic. (Ch. 4)

'''Week 8:''' Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors. (Ch.
5)

'''Week 9:''' Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification. (Ch. 5 cont'd)
Changed lines 49-76 from:
'''Week 1:''' Introduction to computers and music; history (Pythagoras; the harmonic series; Antikythera mechanism; harmony of the spheres; cymatics); description of areas and existing tools; automated music.

'''Week 2:
''' Electronic music technologies; algorithmic music; algorithmic music composition; the computer as a musical instrument; installing Python and jMusic; operating system basics; creating your first Python program (first.py).

'''Week 3:
''' Computer representation of music; sonic events; notes; common practice notation; note durations; note pitches; note timbre; piano roll; representing music in Python (pitches are numbers, durations are numbers).

'''Week 4:
''' Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm; the jMusic data structure: Note, Phrase, Part, and Score.

'''Week 5
:''' The jMusic data structure: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists.

'''Week 6:''' Creating polyphony and repetition; managing musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc.

'''Week 7:
''' Chord progressions; making arpeggios; jMusic CPhrase objects; the Python for-loop; more on Python lists.

'''Week 8:
''' Making canons and transcriptions with jMusic.

'''Week 9:
''' Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification.

'''Week 10:'''
Continuation of randomness and choices; music influenced by structures in the natural world; sonification of data patterns in the world; various power laws; file I/O; fractals; intro to recursion.

'''Week 11:'''
Digital audio: sound and timbre; the properties of digital audio and how to manipulate it; digital audio, bits and bytes; audio file I/O; Python float type; Python advanced list operations; Python for-loop; Python casting; more involved algorithms and problem solving (e.g., for digital effects).

'''Week 12:''' Soundscapes: making musical collages in Python; processes for sound design and for arranging sounds as musical collages; more advanced digital audio concepts; python functions
; encapsulation; information hiding.

'''Week 13:''' Algorithmic composition
; program structure and design; top-down design, bottom-up implementation; testing strategies; working with riffs, themes, and sections; music structure, reuse and modification of materials; musical forms (ABA, AABA, etc.); Python functions (used to generate parts of musical compositions).

'''Week 14-15:''' Create simple graphical user interfaces (GUIs) in Python; how to develop instruments combining jMusic with sliders, buttons, etc.; creating computer instruments for performance (e.g., drum sequencer, flute, ambiance machine
, etc.).
to:
'''Week 1:''' Introduction to computers and music; history (Pythagoras; the harmonic series; Antikythera mechanism; harmony of the spheres; cymatics); description of areas and existing tools; automated music. (Ch. 1)

'''Week 2:''' Electronic music technologies; algorithmic music; algorithmic music composition; the computer as a musical instrument; installing Python and jMusic; operating system basics; creating your first Python program (first.py). (Ch. 1)

'''Week 3:''' Computer representation of music; sonic events; notes; common practice notation; note durations; note pitches; note timbre; piano roll; representing music in Python (pitches are numbers, durations are numbers). (Ch. 2)

'''Week 4:''' Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm. (Ch. 3)

'''Week 5
:''' The jMusic data structure: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists. (Ch. 4)

'''Week 6:
''' Creating polyphony and repetition; managing musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc. (Ch. 5)

'''Week 7:''' Chord progressions; making arpeggios; jMusic CPhrase objects; the Python for-loop; more on Python lists. (Ch. 5)

'''Week 8:''' Making canons and transcriptions with jMusic. (Ch. 5)

'''Week 9:''' Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification. (Ch. 6)

'''Week 10:''' Continuation of randomness and choices; music influenced by structures in the natural world; sonification of data patterns in the world
; various power laws; file I/O; fractals; intro to recursion. (Ch. 6)

'''Week 11
:''' Digital audio: sound and timbre; the properties of digital audio and how to manipulate it; digital audio, bits and bytes; audio file I/O; Python float type; Python advanced list operations; Python for-loop; Python casting; more involved algorithms and problem solving (e.g., for digital effects). (Ch. 7)

'''Week 12:''' Soundscapes: making musical collages in Python; processes for sound design and for arranging sounds as musical collages
; more advanced digital audio concepts; python functions; encapsulation; information hiding. (Ch. 7)

'''Week 13:''' Algorithmic composition
; program structure and design; top-down design, bottom-up implementation; testing strategies; working with riffs, themes, and sections; music structure, reuse and modification of materials; musical forms (ABA, AABA, etc.); Python functions (used to generate parts of musical compositions). (Ch. 8)

'''Week 14-15:''' Create simple graphical user interfaces (GUIs) in Python; how to develop instruments combining jMusic with sliders
, buttons, etc.; creating computer instruments for performance (e.g., drum sequencer, flute, ambiance machine, etc.). (Ch. 9)
Changed lines 91-92 from:
to:
* Fritjof Carpa, "Foreword", in Joachim-Ernst Berendt, ''The World is Sound'', pp. xi-xiii, Destiny Books, 1991.
Changed lines 90-91 from:
* Joachim-Ernst Berendt, "Before We Make Music, the Music Makes US", in ''The World is Sound'', ch. 4, pp. 57-75, Destiny Books, 1991.
to:
* Joachim-Ernst Berendt, "Before We Make Music, the Music Makes Us", in ''The World is Sound'', ch. 4, pp. 57-75, Destiny Books, 1991.
Changed line 87 from:
* Edwards, Michael. Algorithmic Composition: Computational Thinking in Music. Communications of the ACM, Vol. 54, No. 7, pp. 58-67.
to:
* Michael Edwards, "Algorithmic Composition: Computational Thinking in Music", ''Communications of the ACM'', Vol. 54, No. 7, pp. 58-67.
Changed lines 89-91 from:
to:
* Umberto Eco, "The Aesthetics of Proportion", in ''Art and Beauty in the Middle Ages'', ch. 3, pp. 28-42, Yale University Press, 1988.
* Joachim-Ernst Berendt, "Before We Make Music, the Music Makes US", in ''The World is Sound'', ch. 4, pp. 57-75, Destiny Books, 1991.
Changed lines 82-83 from:
* Andrew Brown and Bill Manaris (2011), ''Making Music with jMusic", draft manuscript.
to:
* Andrew Brown and Bill Manaris (2011), ''Making Music with Python", draft manuscript.
Changed line 164 from:
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc. '''The grade 'WA' may be given for excessive absences'''.
to:
* You are expected to attend all classes. '''The grade 'WA' may be given for excessive absences'''. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc.
Changed line 164 from:
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc. The grade 'WA' may be given for excessive absences.
to:
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc. '''The grade 'WA' may be given for excessive absences'''.
Changed lines 42-45 from:
Course is open to all majors. No previous programming experience required.

Students should bring their own laptops and headphones
.\\
to:
Students should bring their own laptops and headphones.

Course is open to all majors. No previous programming experience required
.\\
Changed lines 42-43 from:
Course is open to all majors. No previous programming experience required.\\
to:
Course is open to all majors. No previous programming experience required.

Students should bring their own laptops and headphones
.\\
Changed lines 111-112 from:
** This course introduces computer data modeling, algorithmic techniques, and research related to computing in the arts.
to:
** Students will be exposed to computer data modeling, algorithmic techniques, and research related to computing in the arts.
Changed lines 111-112 from:
** This course will introduce you to computer data modeling, algorithmic techniques, and computer-related research in the context of music, sounds, and other digital artifacts.
to:
** This course introduces computer data modeling, algorithmic techniques, and research related to computing in the arts.
Changed lines 114-115 from:
** You will attend '''campus events''' related to music and art (see below).
to:
** Students will attend '''campus events''' related to music and art (see below).
Changed lines 117-118 from:
** See (1) above.
to:
Changed lines 122-123 from:
** You will participate in various collaborative activities, such as collaborative written exercises, team programming in-class activities, and group projects. \\
to:
** Student will participate in various collaborative activities, such as collaborative written exercises, team programming in-class activities, and group projects. \\
Changed lines 111-116 from:
** This course will introduce you to computer data modeling, algorithmic techniques, and computer-related research in the context of music, sounds, and other digital artifacts. You will:
*** Learn how to creatively transform media such as music, sounds, and other digital artifacts.
*** Learn how to use computers to explore, visualize, speculate, and invent.
*** Develop an appreciation for computational thinking.
*** Gain experience with a scripting programming language and tools.
to:
** This course will introduce you to computer data modeling, algorithmic techniques, and computer-related research in the context of music, sounds, and other digital artifacts.
Changed lines 120-124 from:
** This course is designed mainly to serve non-majors in the liberal arts and sciences by immersing them in creative computational thinking and design.
*** Given that our civilization runs on software (and that this will be even more so 10-20 years from now), it is becoming necessary for liberally educated people to be able to engage in computational (algorithmic) thinking, as the effects of this thinking (i.e., software intensive systems) touch nearly every other discipline, and permeate nearly every aspect of our civilization.
*** You will begin to gain appreciation of the fact that such systems ''can amplify human intelligence'', but they ''cannot replace human judgment''.
*
** Readings will explore the intersection between computing and the liberal arts and sciences.
to:
** Readings will explore the intersection between computing and the liberal arts and sciences.
Deleted line 167:
Changed lines 149-150 from:
Exam '''or''' Final Project 20%, and Class Participation 10% (includes Active Learning Events - see below).
to:
Exam '''or''' Final Project 20%, and Class Participation 10% (includes Active Learning Events).
Changed lines 110-111 from:
#'''Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.'''
to:
* '''Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.'''
Changed lines 117-122 from:
#'''Use of academic resources''' and student support services '''at College of Charleston''', including the '''library''', '''information technology''', the '''Center for Student Learning''', the Academic Advising and Planning Center, the office of Career Services, and other appropriate academic resources, student support services, and '''cultural resources'''.

** You will attend '''campus events''' related to music and art.

#'''Using appropriate critical thinking skills and problem-solving techniques in a variety of contexts.'''
to:
* '''Use of academic resources''' and student support services '''at College of Charleston''', including the '''library''', '''information technology''', the '''Center for Student Learning''', the Academic Advising and Planning Center, the office of Career Services, and other appropriate academic resources, student support services, and '''cultural resources'''.
** You will attend '''campus events''' related to music and art (see below).

* '''Using appropriate critical thinking skills and problem-solving techniques in a variety of contexts.'''
Changed lines 123-124 from:
#'''Understanding the goals of liberal arts and sciences education and the core values of College of Charleston.'''
to:
* '''Understanding the goals of liberal arts and sciences education and the core values of College of Charleston.'''
Changed lines 129-130 from:
#'''Using effective skills and strategies for working collaboratively.'''
to:
* '''Using effective skills and strategies for working collaboratively.'''
Changed line 133 from:
'''Grading:'''
to:
'''Active Learning:'''
Added lines 135-141:
You need to attend, at least, '''three''' campus events related to music. These events have to be '''on campus''' or be '''campus-sponsored''' to count. '''Within a week''' from the event, you should bring:
* an artifact from the event (program, ticket, etc.); and
* a notecard (choose your size) with your name, a summary of the event, and a short reaction.

(:cellnr valign=top align=right style='padding:5px;':)
'''Grading:'''
(:cell style='padding:5px;':)
Deleted lines 150-159:
''Active Learning Events:''

You need to attend, at least, '''three''' campus events related to music.

* These events have to be '''on campus''' or be '''campus-sponsored''' to count.

* '''Within a week''' from the event, you should bring:
** an artifact from the event (program, ticket, etc.); and
** a notecard (choose your size) with your name and a summary of what you went to and a short reaction.
Changed line 153 from:
** These events have to be '''on campus''' or be '''campus-sponsored''' to count.
to:
* These events have to be '''on campus''' or be '''campus-sponsored''' to count.
Changed lines 155-158 from:
** '''Within a week''' from the event, you should bring:
*** an artifact from the event (program, ticket, etc.); and
*** a notecard (choose your size) with your name and a summary of what you went to and a short reaction.
to:
* '''Within a week''' from the event, you should bring:
** an artifact from the event (program, ticket, etc.); and
** a notecard (choose your size) with your name and a summary of what you went to and a short reaction.
Deleted line 92:
Deleted line 109:
Changed lines 47-74 from:
# Introduction to computers and music; history (Pythagoras; the harmonic series; Antikythera mechanism; harmony of the spheres; cymatics); description of areas and existing tools; automated music.

# Electronic music technologies; algorithmic music; algorithmic music composition; the computer as a musical instrument; installing Python and jMusic; operating system basics; creating your first Python program (bing.py).

# Computer representation of music; sonic events; notes; common practice notation; note durations; note pitches; note timbre; piano roll; representing music in Python (pitches are numbers, durations are numbers).

# Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm; the jMusic data structure: Note, Phrase, Part, and Score.

# The jMusic data structure: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists.

# Creating polyphony and repetition; managing musical parts; how to build a
musical canon; the jMusic Mod class: transpose, repeat, invert, etc.

# Chord progressions; making arpeggios; jMusic CPhrase objects; the Python for-loop
; more on Python lists.

# Making canons and transcriptions with jMusic
.

# Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification.

# Continuation of randomness and choices; music influenced by structures in the natural world;
sonification of data patterns in the world; various power laws; file I/O; fractals; intro to recursion.

# Digital audio: sound and timbre;
the properties of digital audio and how to manipulate it; digital audio, bits and bytes; audio file I/O; Python float type; Python advanced list operations; Python for-loop; Python casting; more involved algorithms and problem solving (e.g., for digital effects).

# Soundscapes: making musical collages in Python
; processes for sound design and for arranging sounds as musical collages; more advanced digital audio concepts; python functions; encapsulation; information hiding.

# Algorithmic composition
; program structure and design; top-down design, bottom-up implementation; testing strategies; working with riffs, themes, and sections; music structure, reuse and modification of materials; musical forms (ABA, AABA, etc.); Python functions (used to generate parts of musical compositions).

#
Create simple graphical user interfaces (GUIs) in Python; how to develop instruments combining jMusic with sliders, buttons, etc.; creating computer instruments for performance (e.g., drum sequencer, flute, ambiance machine, etc.).
to:
'''Week 1:''' Introduction to computers and music; history (Pythagoras; the harmonic series; Antikythera mechanism; harmony of the spheres; cymatics); description of areas and existing tools; automated music.

'''Week 2:''' Electronic music technologies; algorithmic music; algorithmic music composition; the computer as a musical instrument; installing Python and jMusic; operating system basics; creating your first Python program (first.py).

'''Week 3:''' Computer representation of music; sonic events; notes; common practice notation; note durations; note pitches; note timbre; piano roll; representing music in Python (pitches are numbers, durations are numbers).

'''Week 4:''' Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm; the jMusic data structure: Note, Phrase, Part, and Score.

'''Week 5:''' The jMusic data structure: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists.

'''Week 6:''' Creating polyphony and repetition; managing
musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc.

'''Week 7:''' Chord progressions
; making arpeggios; jMusic CPhrase objects; the Python for-loop; more on Python lists.

'''Week 8:''' Making canons and transcriptions with jMusic.

'''Week 9:''' Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements
; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification.

'''Week 10:''' Continuation of randomness and choices; music influenced by structures in the natural world; sonification of data patterns in
the world; various power laws; file I/O; fractals; intro to recursion.

'''Week 11:''' Digital
audio: sound and timbre; the properties of digital audio and how to manipulate it; digital audio, bits and bytes; audio file I/O; Python float type; Python advanced list operations; Python for-loop; Python casting; more involved algorithms and problem solving (e.g., for digital effects).

'''Week 12:''' Soundscapes: making musical collages in Python
; processes for sound design and for arranging sounds as musical collages; more advanced digital audio concepts; python functions; encapsulation; information hiding.

'''Week 13:''' Algorithmic composition; program structure and design; top-down design, bottom-up implementation; testing strategies; working with riffs, themes, and sections; music structure, reuse and modification of materials; musical forms (ABA, AABA, etc.); Python functions (used to generate parts of musical compositions).

'''Week 14-15:'''
Create simple graphical user interfaces (GUIs) in Python; how to develop instruments combining jMusic with sliders, buttons, etc.; creating computer instruments for performance (e.g., drum sequencer, flute, ambiance machine, etc.).
Changed lines 85-89 from:
* Richards R. (2001), "A New Aesthetic for Environmental Awareness: Chaos Theory, the Beauty of Nature, and our Broader Humanistic Identity". ''Journal of Humanistic Psychology'', Vol. 41, No. 2, pp. 59-95.
* Spehar, B., C.W.G. Clifford, B
.R. Newell, and R.P. Taylor. (2003). "Universal Aesthetic of Fractals." ''Computers & Graphics'', vol. 27, pp. 813-820.

Additional reading materials will provided via handouts and the [[http:
//www.cs.cofc.edu/~manaris/?n=Spring2011.CSCI180| class website]].\\
to:
* Edwards, Michael. Algorithmic Composition: Computational Thinking in Music. Communications of the ACM, Vol. 54, No. 7, pp. 58-67.
* Seth Horvitz – Eight Studies for Automatic Piano, LINE_050 (CD and Digital Edition) -http://www.lineimprint.com/editions/cd/line_050 .

Additional reading materials will provided via handouts and the [[http://www
.cs.cofc.edu/~manaris/?n=Fall2011.CSCI180| class website]].\\
Added lines 93-111:

* Understand the fundamentals of music theory.
* Analyze music and create musical studies modeled on pre-existing works.
* Perform rhythmic patterns and sing melodies.
* Understand important developments in musical styles in the twentieth century and the present.
* Apply numeric and string data types to represent information.
* Use variables in program development.
* Understand arithmetic operators and use them to design expressions.
* Understand for-loops and use them to design processes involving repetition.
* Understand if statements and use them to design processes involving selection.
* Understand functions and use them to design processes involving modularization.
* Use predefined classes in program development (object-based programming).
* Understand events and graphical user interfaces and use them to develop simple computer-based instruments for electroacoustic music.
* Learn basic principles for group collaboration.

(:cellnr valign=top align=right style='padding:5px;':)
'''First-Year Experience Learning Outcomes:'''
(:cell style='padding:5px;':)
Changed lines 122-124 from:
** You will attend [[http://spinner.cofc.edu/studentlearningcenter/studyskills/seminars.php?referrer=webcluster& | Study Skills Seminars]] at the Center for Student Learning.
** Also, you will attend [[http://sota.cofc.edu/artnews.html | campus events]]
related to music and art.
to:
** You will attend '''campus events''' related to music and art.
Changed line 153 from:
You need to attend, at least, '''three''' [[http://sota.cofc.edu/artnews.html | campus events]] related to music.
to:
You need to attend, at least, '''three''' campus events related to music.
Changed lines 157-160 from:
** You should bring an artifact from the event (program, ticket, etc.).

** You should also hand in a notecard (choose your size) with a summary of what you went to and a short reaction.
to:
** '''Within a week''' from the event, you should bring:
*** an artifact from the event (program, ticket, etc.); and
*** a notecard (choose your size) with your name and
a summary of what you went to and a short reaction.
Added lines 1-179:
|| border=0 width=100%
||![-College of Charleston-] ||! [-August 19, 2011-]||

!!%center%CSCI/CITA 180 – Computer Music
!!!%center%Course Syllabus

(:table border=0 width=100%:)

(:cell width=20% align=right style='padding:5px;':)
'''Professor:'''
(:cell width=80% style='padding:5px;':)
Dr. Bill Manaris\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Office:'''
(:cell style='padding:5px;':)
Room: 223 J.C. Long Building \\
Phone: (95)3-8159 \\
E-mail: manarisb@cofc.edu \\
Web: http://www.cs.cofc.edu/~manaris/\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Office Hours:'''
(:cell style='padding:5px;':)
Monday, Wednesday, Friday 10 - 11AM.\\
Tuesday, Thursday 10:45 - 11:45AM.\\
Other hours available by appointment.

(:cellnr valign=top align=right style='padding:5px;':)
'''Course Description:'''
(:cell style='padding:5px;':)
A course introducing the creative side of computing in the context of music, sounds, images, and other digital artifacts. Emphasis will be given to computing and computational thinking related to music making. Students will develop several digital artifacts and elementary musical compositions.

This course will introduce computer programming and music through the study, transcription, and creation of musical works. Music topics include notation, scales, key signatures, intervals, chord construction, sight-singing, ear training, and readings in music history and aesthetics. Computing topics include data types, variables, assignment, selection, iteration, lists, functions, classes, events, and graphical user interfaces. Students will experience the computer as a musical instrument and a creative environment to develop fluency with musical practices, such as algorithmic composition, developing simple computer instruments, electroacoustic music, and minimalism.

(:cellnr valign=top align=right style='padding:5px;':)
'''Prerequisites:'''
(:cell style='padding:5px;':)
# Basic computer experience, including file organization and software installation.
# Interest in music and developing skills in musical practice.

Course is open to all majors. No previous programming experience required.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Tentative Outline:'''
(:cell style='padding:5px;':)
# Introduction to computers and music; history (Pythagoras; the harmonic series; Antikythera mechanism; harmony of the spheres; cymatics); description of areas and existing tools; automated music.

# Electronic music technologies; algorithmic music; algorithmic music composition; the computer as a musical instrument; installing Python and jMusic; operating system basics; creating your first Python program (bing.py).

# Computer representation of music; sonic events; notes; common practice notation; note durations; note pitches; note timbre; piano roll; representing music in Python (pitches are numbers, durations are numbers).

# Algorithmic music; writing music in code; Python numbers, data types, variables; syntax errors; creating melody and rhythm; the jMusic data structure: Note, Phrase, Part, and Score.

# The jMusic data structure: Note, Phrase, Part, and Score (cont’d); time and key signatures; repetition and phasing; Python lists.

# Creating polyphony and repetition; managing musical parts; how to build a musical canon; the jMusic Mod class: transpose, repeat, invert, etc.

# Chord progressions; making arpeggios; jMusic CPhrase objects; the Python for-loop; more on Python lists.

# Making canons and transcriptions with jMusic.

# Randomness and choices; exploring the role of chance, uncertainty and improvisation in music making. Covers Python if statements; randomness as an approximation to creativity; different random number generators; mapping from one numeric range to another (stretching and shifting); sonification.

# Continuation of randomness and choices; music influenced by structures in the natural world; sonification of data patterns in the world; various power laws; file I/O; fractals; intro to recursion.

# Digital audio: sound and timbre; the properties of digital audio and how to manipulate it; digital audio, bits and bytes; audio file I/O; Python float type; Python advanced list operations; Python for-loop; Python casting; more involved algorithms and problem solving (e.g., for digital effects).

# Soundscapes: making musical collages in Python; processes for sound design and for arranging sounds as musical collages; more advanced digital audio concepts; python functions; encapsulation; information hiding.

# Algorithmic composition; program structure and design; top-down design, bottom-up implementation; testing strategies; working with riffs, themes, and sections; music structure, reuse and modification of materials; musical forms (ABA, AABA, etc.); Python functions (used to generate parts of musical compositions).

# Create simple graphical user interfaces (GUIs) in Python; how to develop instruments combining jMusic with sliders, buttons, etc.; creating computer instruments for performance (e.g., drum sequencer, flute, ambiance machine, etc.).

The above outline is tentative; some topics may be added, others subtracted, as interest suggests and time permits.

(:cellnr valign=top align=right style='padding:5px;':)
'''Textbook:'''
(:cell style='padding:5px;':)
* Andrew Brown and Bill Manaris (2011), ''Making Music with jMusic", draft manuscript.

(:cellnr valign=top align=right style='padding:5px;':)
'''References:'''
(:cell style='padding:5px;':)
* Richards R. (2001), "A New Aesthetic for Environmental Awareness: Chaos Theory, the Beauty of Nature, and our Broader Humanistic Identity". ''Journal of Humanistic Psychology'', Vol. 41, No. 2, pp. 59-95.
* Spehar, B., C.W.G. Clifford, B.R. Newell, and R.P. Taylor. (2003). "Universal Aesthetic of Fractals." ''Computers & Graphics'', vol. 27, pp. 813-820.

Additional reading materials will provided via handouts and the [[http://www.cs.cofc.edu/~manaris/?n=Spring2011.CSCI180| class website]].\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Learning Outcomes:'''
(:cell style='padding:5px;':)
#'''Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.'''

** This course will introduce you to computer data modeling, algorithmic techniques, and computer-related research in the context of music, sounds, and other digital artifacts. You will:
*** Learn how to creatively transform media such as music, sounds, and other digital artifacts.
*** Learn how to use computers to explore, visualize, speculate, and invent.
*** Develop an appreciation for computational thinking.
*** Gain experience with a scripting programming language and tools.

#'''Use of academic resources''' and student support services '''at College of Charleston''', including the '''library''', '''information technology''', the '''Center for Student Learning''', the Academic Advising and Planning Center, the office of Career Services, and other appropriate academic resources, student support services, and '''cultural resources'''.

** You will attend [[http://spinner.cofc.edu/studentlearningcenter/studyskills/seminars.php?referrer=webcluster& | Study Skills Seminars]] at the Center for Student Learning.
** Also, you will attend [[http://sota.cofc.edu/artnews.html | campus events]] related to music and art.

#'''Using appropriate critical thinking skills and problem-solving techniques in a variety of contexts.'''

** See (1) above.

#'''Understanding the goals of liberal arts and sciences education and the core values of College of Charleston.'''

** This course is designed mainly to serve non-majors in the liberal arts and sciences by immersing them in creative computational thinking and design.
*** Given that our civilization runs on software (and that this will be even more so 10-20 years from now), it is becoming necessary for liberally educated people to be able to engage in computational (algorithmic) thinking, as the effects of this thinking (i.e., software intensive systems) touch nearly every other discipline, and permeate nearly every aspect of our civilization.
*** You will begin to gain appreciation of the fact that such systems ''can amplify human intelligence'', but they ''cannot replace human judgment''.
*** Readings will explore the intersection between computing and the liberal arts and sciences.

#'''Using effective skills and strategies for working collaboratively.'''

** You will participate in various collaborative activities, such as collaborative written exercises, team programming in-class activities, and group projects. \\

(:cellnr valign=top align=right style='padding:5px;':)
'''Grading:'''
(:cell style='padding:5px;':)
To receive a passing grade for the course, you must average a passing grade on each of the
following: assignments, tests, and final exam.

'''Scale:''' A: 90-100; B: 80-89; C: 70-79; D: 60-69; F: <60. The grades of B+/–, C+/–, and D+/–
may be given at the professor's discretion.

'''Final Grade Computation:''' Assignments (4-6) 30%, Tests (2) 40%, Comprehensive Final
Exam '''or''' Final Project 20%, and Class Participation 10% (includes Active Learning Events - see below).

''Active Learning Events:''

You need to attend, at least, '''three''' [[http://sota.cofc.edu/artnews.html | campus events]] related to music.

** These events have to be '''on campus''' or be '''campus-sponsored''' to count.

** You should bring an artifact from the event (program, ticket, etc.).

** You should also hand in a notecard (choose your size) with a summary of what you went to and a short reaction.

(:cellnr valign=top align=right style='padding:5px;':)
'''Honor Code:'''
(:cell style='padding:5px;':)
* '''You must do your assignments alone''' (or with your teammates, for group assignments).
* You are not allowed to discuss assignments and possible solutions with any person other than the instructor (or with your teammates, for group assignments). Any violation of these rules is an honor offense.
* On assignments you will be asked to identify the person(s) you received help from, if any.
* Also see the College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', especially sections on ''The Honor Code'' (p. 11), and ''Student Code of Conduct'' (p. 12). There is other useful information there.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Test Policies:'''
(:cell style='padding:5px;':)
* Attendance at tests is mandatory. You must complete tests with no discussion or sharing of information with other students.
* Calculators, computers, cell phones, etc. may not be used during a test, unless otherwise directed.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Classroom Policies:'''
(:cell style='padding:5px;':)

* You are expected to take good notes during lecture.
* You are expected to participate in class with questions and invited discussion.
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc. The grade 'WA' may be given for excessive absences.
* You should '''turn off all electronic devices''' (e.g., cell phones, pagers, etc.).
* Since we are in a lab, you must use the computers only as directed (e.g., no checking email, or playing games) during class.
* In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn (see College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', section on ''Classroom Code of Conduct'' (p. 58)).\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Assignment Policies:'''
(:cell style='padding:5px;':)
* Assignment grades will be based on creative inspiration, design, style, and correctness of result.
* Submission instructions will be provided for each assignment.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Late Policy:'''
(:cell style='padding:5px;':)
* You have '''four "late" days''' for the whole semester. You may use these days as you wish for assignment submission. If you use them up, no late assignments will be accepted.
* '''If you submit everything on time''' (i.e., use no late days), you will earn an additional '''2.5 bonus points''' on your course grade.
(:tableend:)