You can submit homework in groups of at most two, so each group will have a single submission.
The homework will have a programming component in addition to paper and pencil homework. All assignments will be released via Canvas, and you have to submit both written and programming assignments via Gradescope. Gradescope will prompt you to label your pages when you submit. Please do so carefully; this is considered a required part of the upload process. Please also tag the other members of your group if you are submitting as such.
For writing up your solutions, we recommend using LaTeX. Overleaf is an online LaTeX collaborating platform that requires no installation. It also has a good introduction to LaTeX user guide. Handwritten answers or PDF files that cannot be opened will not be graded and will not receive any credit. Handwritten answers or PDF files that cannot be opened will not be graded and will not receive any credit.
Please bear in mind that the main goal of the homework is not to test your knowledge, but simply to provide you feedback about your understanding of the course material, which you can use to predict your exam performance and where you need to improve. So, it's in your best interest to make an honest effort on the homework.
While we encourage studying together, you have to write solutions for homework problems in your own group. Submitting someone else's solution (even from previous years) with minor changes or asking for solutions on online forums will be considered academic dishonesty. The same holds for using LLMs and submitting its output. For a detailed description of what is allowed and not allowed for the homework, please refer to this chart.
Assignments are due at 11:59PM (unless otherwise stated) on Gradescope. Assignments submitted between 12:00AM and 12:29AM on Gradescope will be accepted, but penalized with a 10% deduction of the final grade.
There will be no credit for late submissions of homework, regardless of reason, including STINFs. Given our drop policy for homework, you have sufficient buffer to make up even if you miss a deadline.
All homework will be released and due on Mondays. Below is each homework, its release and due date, and its covered topic(s).
HW1 9/2 - 9/9 Running Time, Prerequisites
HW2 9/9 - 9/16 Basic Graph Algorithms
HW3 9/16 - 9/23 Shortest Paths
HW4 9/30 - 10/7 Minimum Spanning Trees
HW5 10/7 - 10/21 Greedy Algorithms
HW6 10/21 - 10/28 Divide & Conquer
HW7 10/28 - 11/11 Dynamic Programming and Hashing
HW8 11/11 - 11/18 Flows and Cuts
HW9 11/18 - 12/03 NP-Completeness and Reductions