Please carefully read the Academic Integrity before you start working on the homework assignments.

In short, you can get help from the instructors, TAs, textbooks (or relevant books), the Internet, or discussions with your classmates, but you must cite them fully and completely (i.e., provide citations to the book or website link, acknowledge the other students that had discussions with you). Again, you are NOT allowed to:

  • copy anything from the book or the Internet,
  • read or look at anyone else’s solutions (write-up or code),
  • share your solutions (write-up or code) with any other students, during or after the completion of the course.

When you write down your solution, it MUST be close-book. This is to make sure you truly understand and can recreate the solutions.

Written Assignments

You must use LaTeX to prepare your solution. Here you can find sample code for writing solutions using LaTeX.

In grading, we will reward not only correctness but also clarity and simplicity. To avoid losing points for hard-to-understand solutions, you should make sure your solutions are either self-explanatory or contains good explanations. Please understand that grading your assignments is a lot of work for your TAs and readers, especially determining the correctness and cost bounds for your algorithms. We reserve the right to manually deduct points for solutions that are conceptually correct but does not show a sincere attempt to explain the ideas clearly.

Assignment Release Date Deadline Solution
[HW0] 01/09 01/19 [Solution]
[HW1] 01/09 01/26 [Solution]
[HW2] 01/23 02/07 [Solution]
[HW3] 02/06 02/21 [Solution]
[HW4] 02/20 03/08 [Solution]

Projects

We run automatic code comparison programs on student solutions. 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. Cheating is simply not worth the risk.

You only need to work on one of the two projects. If you work on both and get x and y points, your final grade will be max(x,y) + min(x,y)*0.5.

Project Release Date Mid Report Deadline Final Report Deadline Total Points
[Project 1] 01/23 02/14 02/27 16
[Project 2] 02/14 03/03 03/15 20

Paper Reading and Presentations

This course has an optional paper reading and presentations. The presentations will be in the last two lectures. We provide this list of papers with brief introduction. You can read these papers to enhance your understanding of the course content, and pick topics for the optional course presentations. You can either give an overview talk for the high-level ideas in several papers, focus on one specific paper, or just introduce one algorithm in one paper (but with more depth). Alternatively, you can submit a paper reading which should contains 1000–3000 words, and will be graded by the quality of the writing.

For course presentations, you should prepare a presentation of about 15-18 minutes long with slides, followed by a short discussion. The presentation should discuss the motivation for the problem being solved in the paper, any definitions needed to understand the paper, key technical ideas in the paper, theoretical results and proofs, and experimental results. The presentation should also include any relevant content from related work that would be needed to fully understand the paper being presented. The presenter can also present his or her own thoughts on the paper (perceived strengths and weaknesses, directions for future work, etc.).

You are likely to have insufficient time to cover all details in this paper. Hence, I want you to think this way: if you are your classmate sitting in the classroom, without reading the papers before, what are the key takeaways from these 15 minutes (in about 3-5 sentences), and whether your talk provides sufficient content to support these claims/takeaways. Also, please try your best to make sure that the talk is understandable for the other students (you are not giving the talk to me since I know these papers anyway).

As a reference, The lecture on how to give a clear talk is [here], and this is the [evaluation form] for your course presentation. As a hint, please read the evaluation form when you are preparing the slides, and reverse engineer to cover all the key points.

You need to send me your slides at least 48 hours before their presentation. I will go over their slides with you and give you feedback.