CS473G - Graduate Algorithms - Fall 2007

Homework Instructions and FAQ


In all issues the outline is the last word as far as policy.
The number of "don't know" points will not exceed 10% of the points given to the exam/homework.

If you have any questions or concerns about these course policies, please don't hesitate to ask in lecture, during office hours, on the course newsgroup, or by email.


How to Submit Homework

Over "some number" students are taking CS473g this semester. The graders will have to critically examine some other number pages of homework submissions before the end of semester! We desperately need your help to make sure homeworks are graded and returned quickly.

Logistics

  • Submit your homework to Sariel's office 3306 Siebel Center.

  • Turn in your homework on time. Absolutely no late homeworks will be accepted for any reason. To offset this somewhat draconian measure, we will drop the lowest grade of all the homeworks; this should take care of most unforeseen circumstances.

    In cases of extreme illness or other emergencies, we may forgive homeworks or even exams. This means that your grade will be computed as if the forgiven homework or exam did not exist; your other homeworks or exams will have more weight in your final course grade. In particular, the lowest unforgiven homework grade is dropped. Please see Jeff for details.

  • Each student must submit their own solutions for Homework 0. Starting with Homework 1, groups of up to TWO (2) students can submit a single joint solution for each homework.

Format

Homeworks that do not follow these formatting requirements will automatically receive a grade of zero. This is not a joke.

Form: How to write

Please be nice to the graders! Make it easy for them to understand what you're doing. If your answers are hard to read, the graders will be less sympathetic to your mistakes. If your answers are impossible to read, we'll just ignore them. All this goes for exam problems, too.

Content: What to write

Convince the grader that you understand exactly what you're doing.

  • Answer the right question. No matter how clear and polished your solution is, it's worth absolutely nothing if it doesn't answer the question we asked. Make sure you understand the question before you start thinking about how to answer it. If something is unclear, ask for clarification!

  • Justify all your answers. Unless the problem specifically says otherwise, every homework and exam problem requires a proof. Without a proof, even a perfectly correct answer is worth nothing. In particular, the sentence "It's obvious!" is not a proof—many 'obvious' things are actually false!

  • By default, if a homework or exam problem asks you to give/show/describe/develop an algorithm, you need to do several things to get full credit:

    • If necessary, formally restate the problem in terms of combinatorial objects such as sets, sequences, lists, graphs, or trees. In other words, tell us what the problem is really asking for. This is often the hardest part of designing an algorithm.
    • Describe the most efficient algorithm possible. The more efficient your algorithm, the more points you get. Brute force is usually not worth very much. We will not always tell you what time bound to shoot for; that's part of what you need to learn!
    • Give a concise pseudocode description of your algorithm. But don't regurgitate! And don't turn in source code!
    • Justify the correctness of your algorithm. You usually won't have to do this on exams.
    • Analyze your algorithm's running time. This may be as simple as saying "There are two nested loops from 1 to n, so the running time is O(n2)." On the other hand, it may require setting up and solving a summation and/or a recurrence, in which case you'll also have to prove your answer is correct.

    Some problems may deviate from these default requirements. For example, you may be asked for an algorithm that uses a particular approach, even though another approach may be more efficient. (See the first point in this section.) Some problems may ask you to analyze the space used by your algorithm in addition to the runing time. Exam problems will rarely ask for proofs of correctness.

  • Don't make the reader extrapolate. It is never enough to explain what happens during the first one or two iterations of an algorithm, and then say "and so on". If we can't immediately tell just by looking what happens during the 17th, 42nd, or 31337th iteration, your description is incomplete. Algorithms or proofs that use phrases like "and so on", "etc.", "repeat this for all X", and "..." will get no credit. Those are perfect indications that your algorithm should have used a loop or recursion, or that your proof should have used induction, but didn't.

Grading and regrading

  • Graded homework problems and midterms can be retrieved from the TA office during office hours (or whenever the TAs are around). Under normal circumstances, your graded work should be ready to pick up no more than 10 days after you submit it.

  • Homework solutions will be posted a few days after the submission deadline; exam solutions willbe posted immediately after the exam ends. All posted solutions will include suggested rubrics for grading each problem; if the graders need to amend or otherwise modify these suggested rubrics, final rubrics will be posted when the grade is complete.

  • Homeworks can be regraded by submitting them to any of the TAs; exams can be regraded by submitting them to the instructor. If the graders have made a simple arithmetic mistake, we will fix it immediately. Otherwise, you must also submit a brief written explanation why you think you were graded unfairly. (For example, "My answer to problem 2 is correct; see the posted solutions.") Don't revise or explain your answer; we can only grade what you submitted the first time.
    > If you submit a regrade request, your entire
      homework or exam will then be regraded from scratch.  Yes,
      this means your grade can actually go down. In fact, it would
      probably go down. 
    
    
      

    All regrade requests must be submitted at most two weeks after the homework or exam is returned. Except for arithmetic mistakes, late regrade requests will be ignored.

    We will readily admit, apologize for, and correct our mistake if you have been graded unfairly. However, please remember that "unfairly" means your grade is blatantly incorrect, or that you were graded more harshly than other people in the class, not just that you think the grading standard is too harsh.

    Finally, please remember that each homework point is worth less than 0.1% of your grade. Frivolous regrade requests will be met with the scorn they deserve.


Final course grades

The following is just a sketch of how the final grade computation would be done. The instructor reserves the right to change this algorithm in any way he sees fit when the actual grading is done. In any case, grading would be done in a consistent way and would try to follow the algorithm described below.

Homework and exam grades will be reported on the course web page, using the alias you provide on Homework 0. (We may also use the campus Gradebook program.) For privacy reasons, your alias should not resemble your name or NetID. By providing an alias, you agree to let us list your grades. To comply with both fedaral law and university regulations, we cannot list your grades unless you provide us with an alias on Homework 0.

Final course grades are assigned using the following algorithm. (What do you expect from an algorithms course?)

  1. Drop each student's lowest homework grade.
  2. Compute everyone's raw average, which excludes all extra credit points. Course work is weighted as follows: homework is 30%, each midterm is 20%, and the final is 30%.
  3. Compute everyone's adjusted average, which includes extra credit points, even from the dropped homework. (Extra credit points are not necessarily worth the same as regular points.)
  4. Anyone with an adjusted course average below 30% or an adjusted homework average below 50% automatically gets an F. (These are not the only ways to fail!)
  5. Determine letter grade cutoffs, excluding outliers from steps 4 and 5. The mean is a borderline B-/C+, and each standard deviation is worth one letter grade. (Thus, the A-/A cutoff is 4/3 standard deviations above the mean.)
  6. Compute final letter grades from adjusted averages, except for the outliers from steps 4 and 5.
  7. Adjust grades (only upwards!) at the instructor's whim.

This system ensures that extra credit can only increase your grade, that other people's extra credit does not affect your grade, and that the curve isn't skewed by the handful of geniuses and doofuses in every class. We expect roughly 50% of the students get an A- or better.


Academic integrity

This final section is unfortunately necessary, thanks to the actions of a very small minority of students.

Each student (or homework group) must write their own homework solutions, in their own words, and must properly credit all sources. We strongly encourage students to use any printed, online, or living resource at their disposal to help solve the homework problems, but you must cite your sources. If you use something you found in a book, cite the book. If you use something you found on the web, cite the web page. If you get an idea from someone else, give them credit. This is the same standard of conduct that researchers are expected to follow for formal publications; start following it now. Citing your sources will not lower your homework grade.

Avoiding plagiarism is really very simple: Never present someone else's words or ideas as your own. Repeating ideas from other people, papers, or web pages without proper credit is plagiarism. Verbatim duplication of any source is plagiarism, including official homework solutions from previous semesters of 373/473, even if you properly cite your sources. Turning in a copy of someone else's work as your own, even with their permission, is plagiarism. Allowing other people to copy your work is also a violation of academic integrity. For more information, see the university's Policy on Academic Integrity, especially the section on plagiarism.

Violations of academic integrity will not be tolerated. The default penalty for a first offense is a grade of zero on the homework or exam, plus a 10% penalty on the final course average. The penalty for a second offense, or a particularly egregious first offense, is an F in the course. (These are the department's recommended penalties for cheating offenses.) All cheating cases are reported to the department. Multiple offenses can result in suspension or dismissal from the computer science program or from the university. More than one student has been expelled from the university (in part) because of cheating offenses in CS 473.

Regardless of whether it constitutes plagiarism, or whether you get caught, getting too much help on your homework will hurt your final grade. If you don't learn how to solve algorithmic problems on your own, you perform poorly on the (closed-book, closed-notes) exams, which make up 70% of your final course average.