Homework Assignments:
We will provide 10 programming assignments during the course. You are required to submit the following 6 programming assignments, each worth 10% of your grade:
0. Introduction to Music Representation due 7/5, Self-Grades due 7/9.
Probability & Discrete Fourier Transform due 7/5, Self-Grades due 7/9.
Spectrograms, Short-Time Fourier Transform, and Griffin-Lim due 7/12, Self-Grades due 7/16.
Markov & Lempel Ziv due 7/12, Self-Grades due 7/16.
Autoencoder De-noising due 7/19, Self-Grades due 7/23.
RNN MIDI Generation due 7/19, Self-Grades due 7/23.
It is recommended to use the UCSD Datahub for Jupyter Notebook programming environments (datahub.ucsd.edu), but it's also perfectly acceptable to use Google Colab or your own local setup.
All due dates are for 11:59 PM Pacific Time.
The above six required assignments are 60% of the grade.
For the remaining 40% of the grade, you can choose to complete 4 additional assignments or a final project.
Option 1: Assignments
Choose 4 out of these 5 assignments. Each assignment will be worth 10% of the grade.
Due date: 8/1, with self-grading due on 8/4.
(Digital Signal Processing) Speech Formants & LPC
("Shallow" Learning) VMO Audio
("Deep" Learning) CNN-RNN Genre Classification
("Deep" Learning) GAN pix2pix & chroma
("Deep" Learning) Transformer (GPT) for Music Generation
For this one, you can choose to do either the PyTorch version or the TensorFlow/Keras version.
Option 2: Final Project (click here for more details)
Project Proposal (10%) due 7/22
Presentation (15%) due 7/29 recorded + a live Q&A session on 7/30 during Girish's Wed OH
Report (15%) due 8/2
To get an idea of projects done in previous quarters, see this folder.
Self-Grading Instructions
The point of homework in this class is for you to learn the material. To help you in doing this, each student must evaluate their own homework (in addition to being graded by course TAs). It is mandatory to complete self-grading to receive credit for an assignment.
Here is how it works:
After the HW deadline, the solutions will be posted online on Canvas. You will then be expected to read the solutions and enter your own scores and comments for every part of every problem in the homework on a simple coarse scale shared on the form below.
Self-Grading Form <- click here
After filling out the form above, you will upload a corrected version of your assignment to Gradescope.
If you made any mistakes in your initial HW submission, use the posted solutions to help you correct your submission (e.g., fixing bugs in code).
If you think you solved the HW perfectly, you can just resubmit your original work. However, we encourage you to critically evaluate your work and try to improve the quality of your work as much as possible. You will realize that many of the HW problems don't have a unique "correct" answer.
If you lose points on your initial submission, you can earn up to 5 points back on your initial submission if your corrected version successfully corrects the mistakes you initially made. For example, if you scored an 85% on the initial submission and you submitted a good corrected version after the deadline, your score can potentially be bumped up to 90%.
If you have any questions, please ask on Piazza.