Homework

There will be seven homework assignments (a.k.a. labs, a.k.a. MPs, a.k.a. programming assignments), about one every other week. Homework will be mostly programming assignments, in python, using GradeScope's autograder tool. Almost all of the code will be written for you --- you'll only have to write one or two lines that actually implement all the math. Generally, those lines will look like equations --- so if you understand the equations, you will do well in the homework, and vice versa. Multiple submissions will be possible.

Philosophy: modern multimedia is all done using nonlinear prediction algorithms, trained using Deep Learning. Training a deep learning algorithm is way, way, way too computationally intensive for an autograder, so we will use two hacks: (1) we'll teach you the linear algorithms, on which the modern nonlinear algorithms are based, and (2) we'll sometimes (not very often, actually) ask you to test pre-trained nonlinear methods. These are the labs currently planned:

1. Lab 1: Spectrograms. Due 9/6.
2. Lab 2: Eigenfaces and DCT. Due 9/20.
3. Lab 3: Image filters and features. Due 10/5.
4. Lab 4: Linear Predictive speech synthesis. Due 10/18.
5. Lab 5: Hidden Markov Model. Due 11/8.
6. Lab 6: Video animation. Due 11/22.
7. Lab 7: LSTM. Due 12/6.

Exams

There will be three exams. Exams will cover the material that's in the labs and lecture sample problems; other material covered in lectures will not appear on the exams. You can bring one page of notes, handwritten, front and back. Bring pencils and erasers. No calculators are permitted.

Cheating

Cheating on a homework assignment will result in a zero for the assignment. Cheating on an exam will result in a zero for the exam. Two instances of cheating, in the same semester, will cause you to fail the course.

These things constitute cheating on a homework , and will result in a zero for the assignment:

• Copying the solutions provided in the ZIP archive, rather than trying to compute them yourself.
• Cutting and pasting from another student.
• Using any package that's not installed in the Gradescope Docker image. So, in particular, you can't use scipy or soundfile, unless the homework assignment specifically permits it. Anyway, the autograder should make these things impossible anyway.
These things DO NOT constitute cheating:
• Using the provided solutions as a reference, and tweaking your code until it exactly matches the provided solutions.
• Talking to other students about their solutions. Even looking at their code is fine. Only cut-and-paste is outlawed.
• Using any function that's available in numpy or the standard python library. For example, one of the functions you're supposed to write is set_hammingwindow. Numpy includes a function, numpy.hamming, that makes this task really easy. Go ahead and use it. Using numpy.hamming is explicitly NOT CHEATING.