Submitting Homeworks

Introduction to Machine Learning - 10-701/15-781

Latest homework

To see the latest homework announcement, go here.

To submit the homework, use the buttons next to each question in the HW announcement post. For example, to submit an answer to Q1, click “Answer Q1”, type in your answer, and click “Post”. Please only use buttons labeled “Answer Q<n>” for some value of <n>.

Then click “My posts&drafts” to check that your post shows up as you intended it. Your submission will look to the TAs exactly as it appears to you in “My posts&drafts”. So, e.g., if the text in your image is too small to be readable there, it will be too small for the TAs to grade as well.


In order to use the server, you will need to accept the invitation that we emailed to you. Check your account, and let us know if you can't find your invitation.

Public vs. private

The server is for both handins and discussion. You can make either public or private posts. Homework submissions are private by default, while discussion posts are public by default.

Please don't just post your homework for everyone to see. Homework posted as a discussion post won't be graded, and it can ruin other students’ efforts to think about the homework on their own.

If you have accidentally posted your homework publicly, please immediately delete the post and start again.

How to tell if you did it right

If you see a green dotted border on the left of your post preview, you are making a post that is visible to the course staff only, and everything is probably OK. If you do not see such a border on your HW submission, you are about to make a public post. Do not click post; instead, go back and read the instructions above.

While you are composing your post, the tag #submission will appear in a bubble at the top right of the compose box, along with other tags indicating which question you are answering. So, checking for this bubble is also a good idea.

After you have posted your solution, you can click “My posts&drafts” to look at it. If there is a green dotted border on the left of your post, it is private. If the words “submission” and “hw1q1” (or the appropriate other question number) appear in the info box at the top right of the post, it is a homework submission. If either of these things is not true, there is a problem, and your post will not be graded. If your post shows with a yellow background in “My posts&drafts”, it's marked as a draft, and it will also not be graded.

There are two possible reasons your post might be marked as a draft. First, if you forgot to click “Post”, the server shows you its latest saved draft. (It autosaves every minute or so.) Second, if you failed to follow the instructions above, the course staff will set your post back to draft status so that it doesn't show up for everyone else.

To post a draft post, you can click its “Edit” button, fix any problems, and then click “Post”. If you skip the middle step (“fix problems”), the course staff will set it back to draft status.


You can include inline images at the end of your post by clicking “Inline images”. Each file is limited to 950k due to restrictions in App Engine; this limit should be enough for the kind of images you'll need to submit, but you might need to resize high-res bitmap images to fit under the limit. You can add multiple images to each submission by selecting multiple files in the file picker dialog and/or by clicking “Inline Images” multiple times.

Handwritten work

If you're inlining images of handwritten work, a few pointers and caveats. First, the images will come out looking best if you limit yourself to about 10 words per line in a single column of text. (That's about what's in a typical column of a conference paper.)

Second, you can get the images by scanning your work with one of the copiers in Wean or GHC. These copiers will email you PDFs; you'll need to crop out the appropriate area of the PDF and save in an image format like PNG. (Most PDF previewing tools will let you do this easily.)

Third, if all else fails, it should also work to snap a picture of your work with a cell phone. In this case, make sure that the image comes out OK before submitting it. It helps to take the photo in a well-lit room against a dark background, and to use a pen that makes a heavy line. You will probably also need to reduce the resolution and crop the picture before submitting, since cell phones typically take pictures at a way higher resolution than we need. (See the file size limit above.)

To be clear, the “snap a picture of your handwritten solutions with your cell phone” route is intended to be a backup, not the first choice. It's easy to get bad images this way: e.g., using too light a pen or pencil, working in a room with poor lighting, putting too many words per line or failing to crop tightly so that the text comes out too small, or accidentally rotating an image. The copiers will tend to make better images of line art, since they're designed for this purpose, so if you have access to them they are the better route.


A number of people have asked about using LaTeX for homeworks. LaTeX is a great way to prepare solutions, and it can make beautiful images to submit if you are careful. Here's what to watch out for:

  • First, if you like LaTeX mainly for the equations, try just using the submission system rather than going through LaTeX at all. That is, make sure you're using \( \) and \[ \] as equation delimiters, then paste the text directly into the compose box – the result should look nice so long as you aren't using formatting outside of the equations.

  • If you want to use the full power of LaTeX, the main things to worry about are: (a) getting a reasonable column width and margins, (b) dealing with multi-page submissions, and (c) converting output to an image format for upload. All of these are easy to accomplish.

  • For column width and margins: the best way to do this is the LaTeX geometry package. An example is:


Unpacking, the first line sets LaTeX to use a single-column format (here, “article”). Second line: include the geometry package. Third line: include all of your other packages. Fourth line: specify the desired margins and paper width. The settings above (paper width 4 inches and margin 0.1 in) look pretty good in my testing, but you can play with them to get your document to look as good as possible.

  • To avoid multiple pages: you can also use the geometry package to set the paper height, so that you get everything on a single page. E.g.:


If your submission is extremely long you might run up against the file size limits, in which case you can split into a few pages.

  • You need to convert from PDF to a format that the server understands. For converting formats: I've used both (choose “Save as…” and pick the desired format, e.g., PNG or JPEG) and ImageMagick (“man convert” on a Unix-y system).

You can see the result of the above hints by putting “latex” into the filter box on the server.