Course Number: 15-322A, 15-622A
Class time: Tuesday/Thursday 1:30PM – 2:50PM
Location: GHC 5222
Instructor: Jesse Stiles
Office hours: Tuesdays, 3:30PM to 5:30PM. Hunt Library Media Lab, HLA10A.

Course design:

Roger Dannenberg

Teaching Assistants:

Yijin Kang:, Office hours: Thursdays 4:30-5:30, GHC Citadel Commons Table 4

Jeena Yin:, Office hours: Thursdays 1:30-2:30, GHC Citadel Commons Table 1

For on-line discussions, questions and answers, and announcements, please use Piazza.


Curtis Roads, The Computer Music Tutorial. This is a BIG book. It’s great. It covers most of what we will do in class, but it does not cover the language Nyquist or the editor Audacity, nor does it talk about composers, composition, and specific compositions that we will listen to in class. The scope of this book is much larger than the scope of the class, so there is plenty of extra material in case you want to explore areas outside the class. It may seem overkill to buy such a comprehensive book that we cannot fully utilize, but the book is actually cheaper than what I consider to be good alternatives.

Mary Simoni and Roger B. Dannenberg, Algorithmic Composition: A Guide to Composing Music with Nyquist. This book gives an introduction to the Nyquist programming language and contains many examples of algorithmic composition. Many students will be able to skip or skim thse sections on Nyquist and programming, which are intended for beginning programmers. However, class projects will be based on algorithmic composition concepts presented in the book.

The Nyquist Reference Manual (PDF, HTML) is a book in electronic form. You can print it (and bind it, and I’ll autograph it, but I digress …) from a PDF file, or you can access it on the web or from your local Nyquist installation. The first half (up to the chapter “Nyquist Functions” is intended to be introductory and explanatory, so please use this to supplement Algorithmic Composition and the Nyquist lectures.

15-322 vs 15-622

For graduate students this course is offered as 15-622. Students taking the course under 15-622 are expected to execute an ambitious semester-long project in addition to all the other requirements of 15-322.


  • Attendance is required. You should not expect your grade to be higher than the percentage of classes you attend.
  • On-line exercises count 8%. Remember that you must do these on time to get full credit. You are expected to come prepared for each class by viewing on-line lectures and working through the exercises.
  • Projects 1-6 count 42%. Do not skip projects or, as simple math will tell you, your grade average will plummet.
  • Project 7 counts 15%
  • Midterm counts 15%
  • Final counts 20%

Grading Policies

Throughout the semester you will have 3 grace days for late delivery of Projects, after which your grade will be reduced for late delivery of work. Late delivery of online work will be penalized.

Grades will be determined through a combination of peer grading and assessment by the teaching staff. You will be asked to participate in peer grading by evaluating 3 projects submitted by your peers. It is possible to earn bonus points by evaluating more than 3 projects. Evaluating less than 3 projects will result in a loss of points.

For full details of the grading policy see this page.

Laptops and Cell Phones

As research on learning shows, unexpected noises and movement automatically divert and capture people’s attention, which means you are affecting everyone’s learning experience if your cell phone, pager, laptop, etc. makes noise or is visually distracting during class. For this reason, you may take notes on your laptop, but you must turn the sound off so that you do not disrupt other students’ learning. If you are doing anything other than taking notes on your laptop, please sit in the back row so that other students are not distracted by your screen.

Recording in Class

Classroom activities may be taped or recorded by a student for the personal, educational use of that student or for all students presently enrolled in the class only, and may not be further copied, distributed, published or otherwise used for any other purpose without the express written consent of your professor. All students are advised that classroom activities may be taped by students for this purpose.

Academic Integrity

All students are expected to be familiar with, and to comply with, the University Policy on Cheating and Plagiarism.

We regard programming, especially for music, as a creative process. There is never just one way to program a task, and tasks in this course intentionally require some creativity.

Any work submitted as a homework assignment or examination must be entirely your own creative work and may not be derived from the work of others, whether a published or unpublished source, the worldwide web, another student, other textbooks, materials from another course (including prior semesters of this course), or any other person or program. You may not copy, examine, or alter anyone else’s homework assignment or computer program, or use a computer program to transcribe or otherwise modify or copy anyone else’s files. You may adapt or incorporate examples used in lectures, shown in class, or presented by TAs, but only if you understand the examples, and only if the result contains significant creative additions and alterations.

To facilitate cooperative learning, it is permissible to discuss a homework assignment with other students, provided that the following whiteboard policy is respected. A discussion may take place at the whiteboard (or using scrap paper, etc.), but no one is allowed to take notes or record the discussion of what is written on the board, and you must allow two hours to lapse after any discussion before working on the assignment. The fact that you can recreate the solution from memory is taken as proof that you actually understood it.

It is not acceptable to share your solutions or give hints to your friends for projects and exercises after you have already discovered the correct idea. You are not helping your friends by doing so. The right thing to do is to not talk about the problem after you have a solution, and anyone struggling with the homework should visit office hours to talk to an instructor or TA. This shows the respect deserved by your friends as well as the people who have put a lot of effort into creating the problems.

In order to deter cheating we also run automatic code comparison programs (such as MOSS). These programs are very good at detecting similarity between code, even code that has been purposefully obfuscated. Such programs can compare a submitted assignment against all other submitted assignments, against all known previous solutions of a problem, etc. The signal-to-noise ratio of such comparisons is usually very distinctive, making it very clear what code is a student’s original creative work and what code is merely transcribed from some other source. Often in previous semesters, however, we have discovered cheating due to the simple fact that the TAs are familiar with many different versions of the solution. Cheating is simply not worth the risk.

One final note: receiving credit for an assignment or exam is not an indication that we did not detect cheating. Because dealing with cheating cases is a lot of work for the TA’s and the instructors, we often delay enforcement until well into the second half of the semester and take action all at once, after we identified a number of cases. This usually leads to unfavorable outcomes for the students involved. Consequences for cheating may be as severe as failing this course and being reported to the Office of the Dean of Student Affairs.

Acknowledgement: This Academic Integrity policy and text has been copied (!) from other CS syllabi, especially 15210.