Spring2016.CITA180Homework1 History

Hide minor edits - Show changes to output

Changed line 2 from:
'''Due Date''': Thursday, Jan. 19, 2016\\
to:
'''Due Date''': Thursday, Jan. 21, 2016\\
Added lines 1-80:
'''Assigned Date''': Thursday, Jan. 12, 2016\\
'''Due Date''': Thursday, Jan. 19, 2016\\
'''Due Time''': 2:00 PM

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

!!Assignment

Find a complete, interesting melody. Transcribe it using Python in JEM.

!!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 textbook examples on how to document code.

Additionally, your code should always have header documentation that explains what the program does, in general terms.

For this assignment, just copy and paste these into the top of your program. (For future assignments, you will have to modify these comments, to fit the new assignment.)

(:source lang=Python tabwidth=3 -trim :)
# digitalPiano1.py
#
# Author: <Your name>
# Email: <Your email address>
# Class: CITA 180
# Assignment: Homework #1
# Due Date: <The assignment's due date>
#
# Purpose: To play the melody of <mention 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>.
#
# Input: None.
#
# Output: The corresponding melody played via the computer's synthesizer.
#
(:sourcend:)

'''NOTE:''' In the above, replace the bracketed phrases, e.g., '''<Your name>''', with your name, e.g., '''John Smith'''. Do remove the brackets.

!!Bonus

Once you complete the above, feel free to do additional work, for bonus points:

# Any other idea you can think of (just document your idea in the program's comments, so that I'll know what you are trying to do, when I am grading).

!!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. Your submission consists of:

# 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 an interesting melody with JythonMusic

!!Reference

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