Submitting Homeworks


Due date Type Topic
1 January 26 Theory (Solution) Modeling, Distributions
2 February 2 Programming Linear Regression, Nearest Neighbor
3 February 9 Theory (Solution) AB Testing, K Nearest Neighbor Regression
4 February 16 Programming Kernel Density Estimation, Kernel Regression
5 February 23 Theory (Solution) Exponential Family
6 March 9 Programming Perceptrons
7 March 24 Theory (Solution) Quantile Regression, Minimum Enclosing Ball
8 March 30 Programming Stochastic Gradient Descent
9 April 20 Theory (Solution) Inference on Mixture Models
10 April 20 Programming Gaussian Mixture Model
11 April 27 Theory (Solution) Kalman Filter, Recommender Systems


We are going to use Autolab for the homework and project this semester. You don't need to submit by email. You will be able to see the course on this website once we enroll all of you into Autolab (including people on waitlist). It is pretty handy to use in general but we will do a short demo in the first recitation.

For theoretical homeworks, please submit a PDF file. It can be generated by LaTeX, MS word, or even by scanned handwriting. Since this will be manually graded so please make sure that we can clearly recognize what you write.

For programming homeworks, please submit a tarball containing all the code required. We will give you some templates for each programming assignment and you have to keep the same format when you submit it. Typically you only need to implement something in some designated files. We only accept Octave (Matlab) code. Other programming languages will not pass the autograder.

For windows users, you can create and extract tar files using 7zip. For Mac and Linux users, you can can use the terminal to do this more efficiently:

Compressing files
# compress files
tar -cvf foo.tar foo
# extract files
tar -xvf foo.tar
# check documentation for tar in linux
man tar

Using Autolab

Debugging with print statement in Autolab is not allowed. Actually you can only see the feedback from us. E.g. disp('A’) will not show anything) Also, only submit the files we required and do not change file names. Extra files will be ignored automatically. For instance, if you write a function in a file you created, the file will be ignored automatically and the function call from main program will fail.

There might be ways to break Autolab and get hidden information. However, please do not try that. If you find out a system bug, please send us an email or make a private post on Piazza. Any attempts for breaking Autolab will be penalized seriously.


Octave is an open-source version of Matlab. However, it has less functions implemented, and is usually slower than Matlab. You have to make sure that your code works in Octave if you are using Matlab on your laptop. If you get a timeout on Autolab in the future, try to implement your code in a more efficient way. For instance, vectorization is much faster than explicit for loops.

For people not familiar with Matlab/Octave, you should start learning it ASAP. Here's the full documentation. CMU provides free Matlab. Some tutorials:


Contact Jin Sun with homework related issues after making a post on Piazza.