Syllabus
At-a-glance
NOTE: All students must read the policies on this syllabus and fill out this form by the end of week 1 (Fri Jan 17).
- Time: Tuesdays and Thursdays 9:30AM - 10:50AM Eastern Time
- Location: Baker Hall A36 (in person)
- Content week-by-week and deadlines on Calendar
- Course numbers: 15-322 (for undergrads), 15-622 (for grads)
- Instructors: Chris Donahue, Tom Cortina
- Contact icm-csd@cmu.edu or on Piazza, class-related emails to other addresses will be ignored
- Office hours on Calendar
- Course designer, Nyquist developer: Roger Dannenberg
- TAs: Ben Stoler, Irmak Bukey, Wayne Chi, Tianyue Ruby Sun
- Contact all TAs through Piazza
- Important resources
- Piazza for discussion and announcements
- Google Calendar for important dates, office hours schedule and locations.
- Google Drive folder for slides and recordings (won’t be posted until exam review)
- ATutor for assignment submission
- Order textbook (chapter PDFs)
- NyquistIDE (see installation instructions under resources)
- Audacity
Textbooks
The textbook for the course is Introduction to Computer Music (3rd Edition) by Roger B. Dannenberg and can purchased from Amazon in both ebook and physical formats. You may also access PDFs of individual chapters here.
You will also likely need to refer to the Nyquist Reference Manual (PDF, HTML) at times for help related to Nyquist, the programming language for the course. The first half (up to the chapter “Nyquist Functions”) is intended to be introductory and explanatory, so please use this to supplement the text for additional information about Nyquist.
Optional textbooks
The following texts are completely optional but may be helpful as supplementary material:
- Algorithmic Composition by Mary Simoni and Roger B. Dannenberg. Link to electronic version in CMU library.
- The Computer Music Tutorial by Curtis Roads. Link to electronic version in CMU library. Broader in scope than this course.
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. Details of this project will be posted before the first exam.
Grading
The general grading breakdown is as follows:
15322 Students:
- (42%) Projects 1-6 (7% each). (See below for grading policies for late days.)
- (15%) Project 7 (this project cannot be handed in late)
- (15%) Final Exam
- (10%) Exam 1
- (10%) Exam 2
- (8%) On-line exercises. The online exercises will allow you to test your understanding of the key concepts as you proceed through the course.
- (0%) Project 0 does not count towards your grade, but is used to practice handin procedure and peer grading.
15622 Students:
- (30%) Projects 1-6 (5% each). (See below for grading policies for late days.)
- (12%) Project 7 (this project cannot be handed in late)
- (15%) 15622 additional project (details posted by early Feburary)
- (15%) Final Exam
- (10%) Exam 1
- (10%) Exam 2
- (8%) On-line exercises. The online exercises will allow you to test your understanding of the key concepts as you proceed through the course.
- (0%) Project 0 does not count towards your grade, but is used to practice handin procedure and peer grading.
Additionally, attendance is required and will factor into your grade, but please do not come to class if you are sick. If you are sick, please message us on Piazza and we will excuse you - see our detailed attendance policy for more information.
Generally, if your final weighted score ends up at 90% or higher, you are going to get an A in the class. If your weighted score ends up at 80% or higher, you are guaranteed at least a B. A weighted score of 70% or higher is guaranteed at least a C. And so on. For graduate students, we may add a + or – to the grade if it is near the top or bottom of any grade range.
Grading policies
Throughout the semester you will have 3 grace days for late delivery of Projects where no penalty is given, after which your grade will be reduced for late delivery of work based on the number of days late. At most one grace day can be used on any project from Projects 1-6 (Project 7 and the 15622 Project do not allow grace days since they must be handed in on time). Projects 1-6 can be submitted up to 6 days late, with a late penalty that increases with the number of days late.
Grades will be determined through a combination of autograding and peer/TA grading. 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. Peer grading cannot be submitted past the deadline posted for peer grading.
Submitting empty or trivial (“Cool!”) written feedback on peer grading may also result in a loss of points.
For additional details of the project grading policy see this page.
Attendance policy and class recordings
You are expected to be present for each lecture. During each class, there may be some form of activity that must be done at that time to be counted as in attendance. Not all classes will have this activity necessarily. You can miss 4 of these activities without penalty. After this, each missed class will reduce the maximum score attainable in the class by 3%. Example: if you miss 9 of these activities, your ceiling for the course is 85%. If your overall score was a 91, it would be lowered to 85, whereas if your overall score was an 83, it would still be an 83.
Lectures will be recorded but will not be posted until exam review later in the semester. Hence, come to lecture!
If you are sick or otherwise cannot attend due to health reasons, please do not come to lecture. Instead, send the TAs or instructors a private message on Piazza with the subject [Absence due to illness]
and we will provide you with the recording. You will not be penalized for an absence if you message us briefly explaining that you had a health issue and could not attend. More than several instances of missed classes due to illness will prompt us to notify Student Support Resources to check on your well-being.
Besides lectures and exams, there will be one additional attendance requirement, when we will hold a Computer Music Concert featuring some of the best work from the final class project assignment in 15322/15622. A separate attendance score will be factored in to your project grade for this final assignment. This concert will be held on or near the last day of the semester before the final exam period. There will be several sessions so that we can find a session that won’t conflict with your other classes and obligations.
Accommodations for Students with Disabilities
If you have a disability and have an accommodations letter from the Disability Resources office, we encourage you to discuss your accommodations and needs with us as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, we encourage you to contact them at access@andrew.cmu.edu.
ChatGPT and other LLM-based Tools
If you so desire, you may use ChatGPT, GitHub Copilot, and other LLM-based tools in your course projects for a small number of allow-listed use cases. Allowed use cases include (see examples below):
- “Interactive reference manual”: Asking questions about code examples
- “Bulk text manipulation”: Automatically perform painstaking text manipulation tasks
All other use cases are prohibited at this time. In particular, you are explicitly prohibited from using LLM-based tools to generate code to fulfill high-level project requirements (see example below). If you use LLM tools, you are also required to submit a simple disclosure statement (llm.txt
) in your project zip file (see example below). If we determine you have used an LLM tool without disclosure or in a manner that does not conform with the above allowed use cases, you will receive a 0 and could receive an academic integrity violation! If you have any doubts about if your use of LLM tools is appropriate, just don’t use them.
Note that ChatGPT knows very little about Nyquist and tends to hallucinate incorrect information quite a bit. Hence, your mileage using it may vary.
Example disclosure (llm.txt
)
I used ChatGPT to help with this assignment in the following ways:
- Allowed use case #1: Used it to look up information about the “build-harmonic” function from a code example
- Allowed use case #1: Used it to help me understand the meaning of the “#t” symbol in Nyquist
- Allowed use case #2: Asked it to incorporate a list of harmonic amplitudes [1.0, 0.5, 0.25, etc.] into Nyquist syntax
Example prompt for allowed use case #1 (interactive reference manual for Nyquist)
In the following code in the SAL variant of the Nyquist programming language, what do the “build-harmonic” and “quote” functions do at a high level?
define function mkwave()
begin
with wave = 1.0 / 2 * build-harmonic(1, 2048) +
1.0 / 4 * build-harmonic(2, 2048) +
1.0 / 8 * build-harmonic(3, 2048) +
1.0 / 16 * build-harmonic(4, 2048)
set *mytable* = list(wave, hz-to-step(1.0), #t)
end
if ! boundp(quote(*mkwave*)) then
begin
exec mkwave()
set *mkwave* = #t
end
Example prompt for allowed use case #2 (bulk text manipulation)
Write out a musical score for “Twinkle Twinkle Little Star” in the following syntax, where the numerical attributes of each note encode onset time and duration:
variable *ascore* =
{{0 1 {note pitch: c2 vel: 50}}
{1 0.3 {note pitch: d2 vel: 70}}}
Example of highly inappropriate use (copying in project requirements to generate code)
Write me code in the Nyquist programming language that satisfies the following requirements:
Your first task is to define a new instrument, also in the file `instr.sal``, that multiplies the output of a table-lookup oscillator by an envelope. The instrument should consist of a table created as shown in the lectures using the build-harmonic function and containing at least 8 harmonics, an oscillator (use osc), and an envelope.
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 sound and 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/project must be entirely your own creative work and may not be derived from the work of others, whether a published or unpublished source, the world wide web, another student, other textbooks, materials from another course (including prior semesters of this course), or any other person or program (including AI based code- and text-generation programs, except as noted above). 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. And you are obligated not to share your assignment answers with students in class (including subsequent semesters of this course). Posting assignment solutions on a website for others to view, both publicly or by subscription, is also a violation of academic integrity in this class.
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 a whiteboard/blackboard, physical or virtual, 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 FIVE hours to lapse after any discussion and erasing 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. If you find that you are struggling to keep up due to personal issues, contact an instructor; we may be able to help with a short extension to lower the stress and help you recover.
In order to deter cheating on assignments, we also run automatic code comparison programs. 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 and, in the end, it does you no good. Start each assignment early, ask for help before the TAs get overloaded, and you won’t get yourself into time crunches at the last minute.
Receiving credit for an assignment is not an indication that we did not detect cheating. We understand the seriousness of receiving a charge of a violation of academic integrity so we review patterns of submissions very carefully before submitting a charge. Cheating on examinations can result in an immediate charge. A charge usually leads to unfavorable outcomes for the students involved. Consequences for cheating may be as severe as failing this course, and all students charged with cheating are reported to the Office of Community Standards and Integrity for further review by the University for additional sanctions.
Wellness
Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress. All of us benefit from support during times of struggle. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is almost always helpful.
If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:
- CaPS: 412-268-2922
- Re:solve Crisis Network: 888-796-8226
- If the situation is life threatening, call the police
- On campus: CMU Police: 412-268-2323
- Off campus: 911
If you have questions or concerns about this or your coursework, please let us know.
Diversity, Equity and Inclusion
We must treat every individual with respect. We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at CMU, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.
Each of us is responsible for creating a safer, more inclusive environment.
Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. Therefore, the university encourages anyone who experiences or observes unfair or hostile treatment on the basis of identity to speak out for justice and support, within the moment of the incident or after the incident has passed. Anyone can share these experiences using the following resources:
- Center for Student Diversity and Inclusion: csdi@andrew.cmu.edu, (412) 268-2150
- Report-It online anonymous reporting platform: http://reportit.net username: tartans password: plaid
All reports will be documented and deliberated to determine if there should be any following actions. Regardless of incident type, the university will use all shared experiences to transform our campus climate to be more equitable and just.