Assignments
[Latex Template] [Programming Guidance]
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:
When you write down your solution, it MUST be close-book. This is to make sure you truly understand and can recreate the solutions.
📃 Entrance Exam
There is an entrance exam for this course. There are 4 programming problems, covering several important algorithms you should have learned in prerequisite courses (simple programming, simple sorting, graph algorithms, and some algorithm design ideas). You need to finish them in the first week. Each of them is 1 point in your final grade. The first 3 problems are required, and the last problem is bonus. Ideally you should pass all the 3 required problems. âš We would not recommend anyone getting <= 2 points to take the course.
If you cannot finish them in the first week, then CS 141 can be very challenging for you. Unfortunately, we do not have time to go over the content in CS 10A/B/C, 11, and 111 again. However, given the importance of CS 141, we do provide you the training at our coding club weekly on Saturdays. You can consider to participate our weekly training and take CS141 whenever you feel ready.
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 | Template |
---|---|---|---|
Written I | 09/21 | 10/06 | Template |
Written II | 10/05 | 10/19 | Template |
Written III | 10/19 | 10/31 | Template |
Written IV | 10/31 | 11/16 | Template |
Written V | 11/16 | 11/28 | Template |
Coding Assignments
We will use CodeForces to submit and test codes. You also need to submit a short report to describe your algorithm and specify your submission id. Here is a guideline about using CodeForces.
Assignment | Release Date | Deadline |
---|---|---|
Entrace Exam | 09/21 | 09/30 |
Programming II | 09/29 | 10/12 |
Programming III | 10/13 | 10/25 |
Programming IV | 10/26 | 11/09 |
Programming V | 11/10 | 11/22 |
For all programming assignments, you will submit them on CodeForces. You can find a guidance document here. You still need to submit a short report in your write-up about each of the programming problems. The report does not need to be very long, but should contain:
- CodeForces id and submission id.
- A short description of your algorithm.
- Some analysis of your algorithm (time complexity, correctness, etc.) if needed.
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.