Fall 2012»CSCI 180 Final Project

CSCI 180 Final Project

Due Date: Wednesday, Dec. 12
Due Time: 7:55am

Last modified on December 04, 2012, at 09:34 AM (see updates)

This is a team-programming assignment (up to 3 team members). You may discuss the assignment only with your team or the instructor.

(This project has been co-developed with Prof. Blake Stevens, Music Dept.)


Using techniques covered this semester, develop a final project that involves creating interesting music with a computer instrument. Your goal is to create something impressive and aesthetically interesting - something worth demonstrating to others.


Your piece should be longer than 1.5 mins and less than 45 mins. If you create a long piece, you should be able to demonstrate a small portion of it (say, no more than 5 mins) to communicate / demonstrate its essence to the audience.

The performance may involve human and computer components (e.g., an interaction), or may be completely computer generated.

It may also involve external artifacts, e.g., an interesting image (or two), weather data, human biosignals, a poem, or other interesting materials / data.

Since this is a final semester project, it needs to have a certain Wow factor. (Wow factor is the degree to which the first impression of something makes a person say "Wow!"). Your grade will depend partially on this.

  • For example, see this project from a different "genre" of CITA artifacts, selected to not bias you towards a particular musical idea.

Since this project acts as your final exam, it needs to demonstrate your mastery of the material covered in both classes (MUSC and CSCI). Accordingly, this project is worth 20% of your class grade.


You will submit your project via OAKS. Be prepared to demo your project in class. Your submission consists of:

  1. A Word document describing the project - its name, your name(s), how the piece is put together, any images (or other materials) you use, etc. Think of this as a description we could use to present your work in public (e.g., Vimeo, etc.).
  2. Your Python program(s) - you may have more than one, performing different tasks. Give it/them meaningful name(s).
  3. The MIDI file(s) generated from your project.
  4. Any image(s), or other material you have used.
  5. Possibly a video of a performance, especially if it involves human and machine elements. But you have to be ready to demonstrate your project (or portions of it) live in class as well.

Provide everything necessary for me to be able and generate your music from scratch, through your submission, if I wanted to check things out.


Follow the Golden Rule of Style: "A program should be as easy for a human being to read and understand as it is for a computer to execute." [3]

In general, you should comment any variable, obscure statement, block of code, method, and class you create.

Your comments should express why something is being done, as opposed to how the how is seen in the code.

Top Documentation

Additionally, your code should always include opening comments as follows:

#   Author:    "Your names"
#   Email:      "Your email addresses"
#   Class:      CSCI 180
#   Assignment: HMWK5
#   Due Date:  The assignment's due date
#   Certification of Authenticity:     
#     < ! Delete one of the two statements below - also delete this comment ! >
#      We certify that this lab is entirely our own work.
#      We certify that this lab is our own work, but we received
#      some assistance from:  "add people's names, Web links, or other references"
#   Purpose: < ! Replace this comment with a simple, yet complete description of
#         what your program does - e.g., "This program plays Chopen's Nocturne,
#         Op 72. No. 1."  The description may be several sentences long. ! >


Your grade will be based on how well you followed the above instructions, and the depth/quality of your work.

Relevant Quote

"Any amount of work can be done in any amount of time... only the quality varies." ~Joao Meidanis