Syllabus#

Important

All students must read this syllabus in detail and fill out this onboarding form by Wed Aug 26 at 11:59PM.

Should I take this course?#

Warning

Students with weaker programming and/or mathematical backgrounds may find this course challenging. Musical training alone is not enough to succeed in this course.

A good mechanism for assessing readiness is to peruse the course textbook. You don’t have to understand the content yet, but the programming / mathematical material should not look overly intimidating. Please talk to the instructor if you are concerned.

Introduction to Computer Music teaches the principles of computer music theory and practice from a computer science perspective, in Python. You will complete programming assignments that involve both technical and creative components. You can read more about the course in the About page.

This course is primarily aimed at two different categories of students:

  1. Computer science or ECE students who are interested in understanding how music and audio are processed on a computer

  2. Music technology or fine arts students who are interested in broadening their technical or programming depth

This is not an exhaustive list, nor is it intended to be exclusionary! There are many other students across campus who have taken and suceeded in this course in the past. In general, you can be successful in this course if you:

  1. Are comfortable programming in Python

  2. Are generally comfortable with “college-level” math (trig, complex numbers, some calculus)

  3. Have an interest in music and are okay with venturing into creative territory. Formal training in music is not required but is helpful

Revamped course#

Warning

This is the first time this version of the course has been taught! Expect some (hopefully minor) turbulence at times.

The next time this course is likely to be offered is Spring 2028.

Please ask questions liberally on Piazza or use this feedback form to provide anonymous feedback at any time.

This course has been taught for many years, though this is Fall 2026 iteration represents a completely revamped version. The original version was developed by Professor Roger Dannneberg and involved programming in his Nyquist programming language. The topics we’ll cover in this version of the course are similar, however the teaching language has been changed to Python, which necessitated a full redesign (new assignments, textbook, etc.).

Accordingly, expect some occasional turbulence as we migrate together to the new version of the course. Please provide anonymous feedback at any time. You may also wait choose to wait for a more stable second iteration of the revamped course down the road, though this may not be taught until Spring 2028.

15-322 (undergrad) vs. 15-622 (grad)#

This class is taught simultaneously at the undergraduate and graduate levels. The only differences between the two sections is that (1) 15-622 (graduate) students will be expected to complete a much more ambitious final project, and (2) 15-622 (graduate) students will have a less flexible assignment grading policy.

Grading policy#

The grading weights for this course are as follows:

Assessment

15-322 Weight

15-622 Weight

Assignments (9)

54%, 6% each

45%, 5% each

Exam 1

10%

10%

Exam 2

10%

10%

Final Project

15%

20%

Final Exam

15%

15%

Maximum score

104%

100%

Note

15-322 (undergraduate) students have a maximum weighted score of 104%, with up to 4% “bonus points” possible by receiving full marks on all of the assignments. This is meant to offer some flexibility for assignments in this first iteration of the revamped course. 15-622 (graduate) students do not have this flexibility and have a maximum weighted score of 100%.

Warning

Exams are not guaranteed to be curved, though they may be curved depending on the grade distribution.

These weighted scores will be converted to letter grades as follows. For graduate students, we may add a + or - to the letter grade if it is near the top or bottom of any grade range.

Weighted score

Letter Grade

90-104%

A

80-90%

B

70-80%

C

65-70%

D

<65%

R

AI policy#

Important

You must review and follow the AI policy carefully. Some assignments are autograded with AI usage strictly forbidden, while other assignments are open-ended with AI usage strongly encouraged. Regardless, for all assignments, you are responsible for every line of code you submit.

This redesigned version of Intro to Computer Music aims to confront developing trends in AI. For better or for worse, AI is affecting all aspects of computer science education and practice, and computer music is no exception. AI tools have the potential to expand the sophistication of computer music systems, while simultaneously running the risk of hindering education and the ability of practitioners to realize this expanded potential. Additionally, rapid industry adoption of AI tools suggests the need for a workforce trained to use them. This course’s AI policies are designed to promote effective learning of computer music fundamentals while also giving students experience in using AI tools.

Usage of AI code generation. We confront AI coding trends through a two-pronged approach to programming assignments. Most (5) of the assignments will be autograded with AI usage strictly forbidden. These assignments are designed to equip you with the fundamentals. In contrast, some (4) of the assignments will be open-ended with AI usage strongly encouraged, designed to leverage your understanding of the fundamentals to accomplish something more ambitious with AI. Similarly, your final project will allow the use of AI; you can decide to use it or not, based on your own preferences. Usage of AI is generally forbidden for all assessments where it is not explicitly allowed, e.g., exams. We will try to use the and icons consistently, but if you see neither, the default assumption is .

Usage of AI chat. Here, “AI chat” refers to uses of AI where natural language (not code) is the intended model output. You are forbidden from using AI chat when completing autograded assignments, and you are discouraged from using AI chat in any other context in this course. In particular, there is evidence to suggest that using AI as an “interactive tutor”, e.g., “help me understand filters”, is harmful to learning. Instead, you are strongly encouraged to attend office hours to ask questions about course material and improve your understanding.

Ownership of AI outputs. It is your responsibility to understand and verify correctness of your assignment submissions, regardless of whether the assignment allows AI. Accordingly, for assignments and projects that do allow AI , you are responsible for reviewing all AI outputs and understanding them at a high level.

Access to AI. The open-ended assignments have been scoped with AI usage in mind, and you are strongly encouraged to use AI tools to complete them. The default option is AWS Kiro, which is free up to usage limits for CMU students, and the primary pathway we will support. Another option is GitHub Copilot, also free for students. Alternatively, you may purchase a $20/mo AI subscription from any of the major providers (Claude Pro, Gemini Pro). You are not required to use AI tools to complete open-ended assignments, but the assignment scopes may be prohibitive otherwise. Talk to course staff if you are concerned about your access to AI tools.

Usage of AI music or image generation. Unless otherwise specified in writing, you are forbidden from using AI to directly generate music audio (e.g. Suno), images (e.g. DALL-E), or video (e.g., Seedance) that you use in your assignments. When AI is allowed, you may generate and execute code to accomplish these tasks, e.g., using pyquist to synthesize music, matplotlib to render plots/figures, or ffmpeg to edit video. If you have a specific use case in mind, e.g., using Suno to generate raw musical material to sequence or remix, talk to course staff for approval.

Enforcement of AI policy#

Warning

Failure to comply with the AI policies above will result in a 0 on the corresponding assessment and may result in a formal academic integrity violation charge. We will adopt various measures to enforce our AI policies (see details below).

Violations of AI policy. Failure to comply with AI policies, e.g., using AI on an autograded assignment, or submitting an unreviewed open-ended assignment, will result in a 0 for that assignment. Additionally, the course staff may also formally charge you with an academic integrity violation.

AI Usage Audits. To enforce that you are not using AI on autograded assignments, course staff may conduct an AI Usage Audit (AIUA) at any time in class or during an individual meeting with course staff. In an AIUA, you will be asked basic questions about your autograded submission, such as identifying your own implementation from a list of options, or answering basic high-level questions about your implementation. AIUAs may be written (in class) or oral (in a meeting with course staff). AIUAs will be trivial to pass if you completed your assignment without the use of AI.

Debugging and Reasoning Check. To enforce that you are owning your assignment submissions, we may conduct a Debugging and Reasoning Check (DRC) for both open-ended and autograded assignments. In a DRC, you will be given a critical part of your own code, perhaps with a subtle bug introduced, and asked to reason through a failing test or incorrect output.

Attendance policy and recordings#

Important

Attendance is expected, and limited attendance will impact your grade for the course. If you miss more than 4 in class activities, the maximum score you can achieve in the course will be reduced.

You are expected to be present for each class session. During each class, there may be an in class activity that will be used to collect attendance. You can miss 4 of these activities without penalty. After these 4 allowed absences, each additional absence will reduce your maximum score attainable in the class by 3%, starting from 100% for both sections. For example, if you miss 9 activites, your maximum grade for the course would be \({85\% = (100\% - 3\% \cdot [9 - 4])}\).

Formally, your attendance-adjusted score for the course is as follows, where \(N\) is the number of participation activities missed:

\[\begin{split} \text{Adjusted Score} = \begin{cases} \text{Weighted Score} & \text{if } N \leq 4 \\[4pt] \min\left(\text{Weighted Score},\; 100\% - 3\% \cdot [N - 4]\right) & \text{if } N > 4 \end{cases} \end{split}\]

Important

If you are sick or contagious, do not come to lecture.

Please do not come to class if you are sick, especially if you may be contagious. Instead, post a private message on Piazza with the subject “Absence due to illness”. We will excuse you from attendance activity and provide you with the lecture recording. More than several instances of missed classes due to illness will prompt us to notify Student Support Resources to check on your well-being.

On the off chance you are prohibitively sick on an exam day, reach out to the instructor as soon as possible. We will require a doctor’s note to accommodate in these circumstances.

Note

Lectures are recorded, but those recordings will only be released for review before midterm and final exams.

Late or missing work policy#

Important

Assignments will be accepted up to 5 days late, with a \(10\%\) penalty for each day late. After 5 days, late work will not be accepted. You have 5 grace days to use throughout the semester, one per assignment.

You may turn in assignments late for partial credit, up to 5 days (120 hours) after the deadline. Assignments refers to the 9 homework assignments, not the final project or exam. For each additional 24 hours late, your score will be penalized by 10%.

You have 5 grace days to use throughout the semester, up to one per assignment. Using a grace day allows you to turn in an assignment up to 24 hours late without penalty. These are automatically applied to your first 5 late assignments. Using a grace day does not allow you to turn in an assignment 6 days late.

Formally, if your assignment is \(H\) hours late, and \(G\) is 1 if you have grace days remaining or 0 otherwise, your adjusted assignment score is:

\[\begin{split} \text{Adjusted Score} = \begin{cases} \text{Assignment Score} & \text{if } H \leq 0 \\[4pt] (0.9 + 0.1G) \cdot \text{Assignment Score} & \text{if } 0 < H \leq 24~(1~\text{day}) \\[4pt] (0.8 + 0.1G) \cdot \text{Assignment Score} & \text{if } 24 < H \leq 48~(2~\text{days}) \\[4pt] \dots \\[4pt] (0.5 + 0.1G) \cdot \text{Assignment Score} & \text{if } 96 < H \leq 120~(5~\text{days}) \\[4pt] \text{0} & \text{if } H > 120 \end{cases} \end{split}\]

Warning

Final projects will not be accepted late. Make up exams are not offered except in documented unavoidable emergencies or when allowed by CMU policy.

Academic integrity policy#

Important

Do your own original work as expected in this course. Work by yourself unless otherwise specified, and in a manner consistent with official university policy. Cite any sources you use.

Warning

Failure to uphold academic integrity standards will result in severe penalties to your grade and a formal academic integrity violation charge with CMU.

We enforce a high standard of academic integrity in this course. This is not a “hypothetical” policy, here are concrete examples of academic dishonesty in past years of this course which resulted in charged academic integrity violations:

  • Two students working together to complete programming assignments where working individually was expecting

  • A student submitting lightly edited programming assignments from a friend who took the course previously

  • A student submitting tutorial code found online as part of their project submission without any form of acknowledgement

University policy. All students are expected to be familiar with, and to comply with, official CMU academic integrity policy.

Original work. Any work submitted must be entirely your own creative work and may not be derived from the work of others, whether a published or unpublished source, the web, AI (except where noted above), 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.

Keep your work private. 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.

Using class materials. 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.

Cooperative learning. You may discuss a homework assignment with other students, provided the whiteboard policy is respected: discussion may happen at a whiteboard/blackboard (physical or virtual), scrap paper, etc., but no one may take notes or record what is written, and FIVE hours must lapse after the discussion and erasing before you work on the assignment. Being able to recreate the solution from memory is taken as proof that you actually understood it. Once you have the correct idea, however, sharing solutions or giving hints is not acceptable and does your friends no favors; stop talking about the problem, and redirect anyone still struggling to office hours. This respects both your friends and the course staff who put real effort into creating the problems.

Copying detection. 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.

Consequences. Consequences for academic integrity violations will be severe. Best case, cheating will result in harsh penalties for our course grade. Worst case, CMU’s Office of Community Responsibility may expel repeat offenders. Cheating is simply not worth the risk and, in the end, it does your education 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. If you find that you are struggling to keep up with the course demands, contact course staff. We may be able to help find a manageable plan to get you back on track.

Accommodations#

Note

Accommodations require approval from the Disability Resources office.

We are happy to provide accommodations with approvals from the Disability Resources office. 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.

Contact policy#

The preferred methods for contacting course staff are:

  1. Coming to instructor or TA office hours

  2. Posting a private message on Piazza

  3. Emailing icm-csd@cmu.edu

Other forms of correspondence (e.g., emailing the instructor) may be missed.

Student 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. You are not alone. 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 often 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 about this or your coursework, please let me know. Thank you, and have a great semester.