
Quote: Algorithms lie in the heart of computer science. (Aho, Hopcroft, Ullman, 1974.)
You are required to answer all the "standard problems" (S-problems) in each homework set and turn them in on the due-date. The S-problems give a rough indication of the benchmark standard of the course.
Graduate students have to answer all the G-problems. Graduate students will be graded separately from undergraudates.
The routine problems (R-problems) are provided as practice material and to aid you in understanding the basics of the lectures, definitions, algorithms, proofs, etc. These are for you to try; do not turn these in. If you cannot solve these, then it usually mean you are not following (understanding) the course.
In addition, there will be some advanced problems (A-problems) that are really "extra-credit" problems. Naturally, these are more difficult and should provide more challenges. For A-type problems, I do not expect complete answers, but your reasonable attempts on them. I will not grade attempts on A-questions. Rather, they will be taken into consideration if I have to decide on borderline cases (A-B border, B-C border, etc). There is no deadline for A-problems.
If you discuss with other student(s), you should write down their names as collaborators for that problem. Not doing this could be considered an attempt at plagiarism.
Plagiarism and other anti-intellectual behaviour will not be tolerated.
Discussion and comparison of approaches to problems is encourage after the homework sets are graded. In general, there may be many different ways of solving a given problem. Also, some solutions may be more concise than others. When a simple solution suffice, give a simple solution.
For the A-problems (and to a lesser extend, the R-problems),
you are encouraged to collaborate in study groups on their solution.
If you turn in your attempts on A-problems, you must write down the names
of your collaborators (if any) in the write-up of each problem.
If you obtain a solution with other types of help
(e.g., through library work, some notes, other courses, etc),
please acknowledge your source. In all cases, you should write up
the solution on your own.
Answers to homework should be written at a level suitable for and to address the instructor. In other words, don't put in long explanation for trivial things.
It pays to make your answers more concise and clearer. Try to be as clear, concise and precise as possible in your presentations of the answers. Understandability of the solution is as desirable as correctness. Sloppy answers will be at a disadvantage, i.e. likely to recieve fewer points, even if they are correct. Learn to make appropriate definitions to make your answers more precise and concise.
Solutions does not have to be type-set, as long as your handwriting is neat and readable. Do not waste your time beautifying your answer sheet. If you want to spend more time, you should spend it on improving its clarity, understandability, and other aspects of its technical content.