Spring 2017»CITA 180 Homework 1

CITA 180 Homework 1

Assigned Date: Friday, Jan. 13, 2017
Due Date: Wednesday, Jan. 25
Due Time: 30 mins before class

Last modified on February 01, 2017, at 09:37 AM (see updates)


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


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.)

# 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.     

NOTE: In the above, replace the bracketed phrases, e.g.,

# Author:     <Your name>

with your name, e.g., John Smith"

# Author:     John Smith


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

  1. 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).


You will submit your assignment by both handing in a printout of your program in class, and on-line via OAKS.

Be prepared to perform your music in class.

Do all of the following:

  1. Hand in a printout of your Python program in class on the due date.
  2. Upload your program file on OAKS. Give your program a meaningful name, e.g., furElise.py.
  3. Be ready to perform it in class.
  4. If you do the bonus, submit a separate, additional program. Give the program a different meaningful name.


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


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