Fall2013.CSCI180CourseSyllabus History

Hide minor edits - Show changes to markup

Added line 171:
  • Any student who feels he or she may need an accommodation based on the impact of a disability should contact me individually to discuss your specific needs. Also, please contact the Center for Disability Services for additional help.
Added line 177:
  • Assignments may NOT be submitted via email.
Changed line 164 from:
  • If you miss class, you must get an absence memo from the Associate Dean of Students Office.
  • If you miss class, you must fill out Absence Memo Request Form from the Absence Memo Office.
Changed lines 25-26 from:

Tuesday, 9-10:30am, and
Thursday 9-11:30am.\\


Tuesday, 9-10:30am
Thursday 9-11:30am\\

Changed lines 25-26 from:



Tuesday, 9-10:30am, and
Thursday 9-11:30am.\\

Added lines 1-183:
College of CharlestonAugust 21, 2013

CSCI/CITA 180 Computer Music

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;':) TBA
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/ Requirements: (:cell style='padding:5px;':)

  • Students must bring their own laptops and headphones.
  • Students must have basic computer experience (e.g., file organization and software installation).
  • Students must have 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;':) 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: 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)

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)

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 (2013), ''Making Music with Computers: Creative Programming in Python", draft manuscript.

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

  • Michael Edwards, "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 .
  • 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.
  • Fritjof Carpa, "Foreword", in Joachim-Ernst Berendt, The World is Sound, pp. xi-xiii, Destiny Books, 1991.

Additional reading materials will provided via handouts and the class website.
(:cellnr valign=top align=right style='padding:5px;':) Learning Outcomes: (:cell style='padding:5px;':)

  • 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;':)

  • Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.
    • Students will be exposed to computer data modeling, algorithmic techniques, and research related to computing in the arts.
  • 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.
    • Students 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.
  • Understanding the goals of liberal arts and sciences education and the core values of College of Charleston.
    • Readings will explore the intersection between computing and the liberal arts and sciences.
  • Using effective skills and strategies for working collaboratively.
    • Student 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;':) Active Learning: (:cell style='padding:5px;':) 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;':) 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).

(: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 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 attend all classes, and be in class on-time. If you accumulate 4 or more absences, you may be given a 'WA' grade.
    • If you miss class, you must get an absence memo from the Associate Dean of Students Office.
    • If you miss class, you are responsible for announcements made in class, assignment due dates, etc.
  • 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 do your own work during class activities, exercises, and assignments.
  • 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 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.