Students' grades in the class will be based on the class final, one midterm, the initial prerequisites quiz, and homework. The final will count for 43%, the midterm for 25%, the homework for 30%, and the quiz for 2%. There is an important additional constraint: if the homework score is below 45% of the attainable total, then the final grade cannot be better than a C.

The grading will not be done to a curve. Instead, the grading scale will be as follows. If HWP denotes your percentage of points on all homeworks, MTP denotes your percentage on the midterm, FEP your percentage on the final, and QZP your percentage on the quiz, then we calculate p = 2%QZP+30%HWP+25%MTP+43%FEP. Then, if HWP is at least 45%, you get the grade from the table below. If HWP is less than 45%, you get the worse of C and the grade dictated by the table.

p | Grade |

75% | A |

67% | A- |

60% | B+ |

55% | B |

50% | B- |

43% | C+ |

36% | C |

25% | D |

The homeworks will also contain specifically marked "chocolate problems". Solving chocolate problems will not affect your grade in the class. Instead, depending on the difficulty of the problem, there will be corresponding amounts of chocolate offered for solving them. All chocolate problems will be significantly more difficult than regular homework problems, and are meant as a challenge for students who would like to solve something a little more interesting. Some of the chocolate problems may even be open. (It will be noted if that is the case.) To earn the chocolate, you will need to get a significant percentage of the possible points for the problem.

You may solve chocolate problems in teams of up to 3 students; in that case, you split the chocolate among your team. You should submit solutions to chocolate problems separately from your other solutions, as they will be graded by the instructor. Also, if you have strong preferences for what kinds of chocolate you would like (milk, semisweet, bittersweet, nuts/raisins, white, etc.), feel free to note so on your submission.

Homework is assigned roughly every 1-2 weeks from the textbook. Usually, homework either asks you to "give an algorithm", or to give a proof for some fact. When you are asked to give an algorithm, it also means proving your algorithm's correctness, and giving a (brief) analysis of its running time. The latter two are at least as important as the algorithm itself, and failing to include these parts will give you only partial credit.

Solutions to the homeworks will be handed out on paper in class about one week after the submission deadline. We will not make any solutions available in electronic formats. When returning homework, we also post some cumulative statistics about the class performance.

If you think that we deducted points from your solution unfairly, you have two weeks after we return your homework to ask the TA for a regrade. After those two weeks, we will not consider regrade requests. (If you know that you want a regrade and cannot make the TA's office hours for two weeks, you can notify the TA early, and schedule a later meeting.) If during the regrading process, we discover that your score was in fact too high, your score may also get lowered. If the TA's answer is not satisfying, you can contact the instructor. On the other hand, if your complaint is about grading policy rather than any particular decision of a grader, you should contact the instructor directly.

Homework should normally be submitted in class, on paper. If you cannot submit your homework in class, or are submitting late, you have three options: (1) submit it to the instructor in person, (2) submit it to the TA in person, (3) slide it under the instructor's door. No other means of submission are acceptable (unless you have explicit permission from the instructor) - in particular, please do not leave homework in the instructor's mailbox. (In exceptional cases, such as travel, you can contact the instructor to obtain permission to submit electronically.)

Every student in the class has a total of **5** late days of
homework (business days) that can be arbitrarily spread out
among homework assignments without the need to provide a
reason. These are meant as an unbureaucratic way of dealing with
legitimate reasons for late submission. You may use them for
other reasons if you choose, but this does not mean you are
entitled to 5 late days in addition to any legitimate ones.

No solution will ever be accepted more than 5 business days (one week) late. Occasionally, we will set a tighter homework submission deadline, usually so we can return sample solutions in time before an exam. If a submission is late, and the 5 total late days are exceeded, then 20% of the original score on the homework are deducted for each excessive late day.

For counting late days, a solution counts as submitted on a certain day if it was submitted in one of the above three ways by 5pm on that day. Homework submissions after 5pm count as the next day. If a solution is submitted in multiple parts on different days, then the official submission date is that of the last part that was submitted.

- The sixth homework assignment has been posted. It is due on Thursday, 04/28/2011. It cannot be submitted late, as sample solutions will be handed out in class.
- The fifth homework assignment has been posted. It is due on Tuesday, 04/12/2011.
- The fourth homework assignment has been posted. It is due on Thursday, 03/31/2011.
- The third homework assignment has been posted. It is due on Tuesday, 03/01/2011.
The second homework assignment consists of problems 6.6, 6.13, 6.24, 6.27, as well as the chocolate problem below (2 chocolate bars). It is due on Thursday, 02/10/2011. For all problems, give recurrence relations and bottom-up implementations, along with a correctness proof of the recurrence. For problems 6.6 and 6.13, also include a correctness proof by induction of the bottom-up implementation. For problems 6.24 and 6.27 and the chcocolate problem, that is not needed.

Chocolate problem (2 bars): Give a polynomial-time algorithm (not pseudo-polynomial) for the following problem. You have a long highway, with n source nodes s(1), s(2), ..., s(n) (in order), and one sink t, which is after s(n). At each node s(i), there is a person i with a budget b(i). All people want to go to the sink. For each road segment from s(j) to s(j+1), you get to set a (non-negative) price p(j). In order to go to t, a driver has to pay you the sum of all prices p(j) for the road segments j he has to traverse. If his budget is not enough, then he stays home, and you get no money from him. Find a vector of prices for the segments that maximizes your total revenue.

- The first homework assignment has been posted. It is due on Tuesday, 02/01/2011.