Spring2017.CITA180Homework2 History

Show minor edits - Show changes to output

Added lines 1-62:
'''Assigned Date''': Monday, Jan. 30, 2017\\
'''Due Date''': Monday, Feb. 6\\
'''Due Time''': 30 mins before class

Last modified on {$LastModified} (see [[http://www.cs.cofc.edu/~manaris/index.php/Spring2017.CITA180Homework2?action=diff&source=n&minor=n | updates]])

!!Assignment

Write a Jython program that generates an interesting piece of music.

The piece should contain '''at least three Parts with different instruments'''.

It is OK to add percussion (drums), if you wish.

!!Documentation

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." [1]

In general, you should comment any variable, obscure statement, block of code, etc. you create.

Follow the documentation instructions from [[http://www.cs.cofc.edu/~manaris/?n=Spring2017.CITA180Homework1?action=print | Homework 1]]. In particular, your header documentation should mention the name of the piece where the melody comes from, and, if you used a score available on-line, include the URL where the score can be found.
(:sourcend:)

!!Submissions

You will submit your assignment by both '''handing in a printout of your program in class''', and '''on-line''' via [[https://lms.cofc.edu/ | OAKS]].

Be prepared to perform your music in class.

Do all of the following:

# Hand in a printout of your Python program in class on the due date.

# Upload your program file on [[https://lms.cofc.edu/ | OAKS]]. Give your program a meaningful name, e.g., '''furElise.py'''.

# Be ready to perform it in class.

# '''If you do the bonus''', submit a separate, additional program. Give the program a different meaningful name.

!!Grading

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

!!Learning Objectives

This assignment has the following objectives:

* Understand the fundamentals of music theory.
* Analyze music and create musical studies modeled on pre-existing works.
* Apply numeric and string data types to represent information.
* Use variables in program development.
* Use predefined classes in program development (object-based programming).

Also how to:

* Create interesting music with JythonMusic
* Program MIDI melodies, chords, etc.
* Program MIDI percussion (optional)

!!Reference

# Cooper, D. and Clancy, M. (1985) "Oh! Pascal", 2nd ed., W.W. Norton & Company, New York, p. 42.