15-451: Algorithms, Spring 2014

- Help you understand and use the material of this course in your further life.
- Ensure that people and especially further employers believe you have mastered the skills presented in the class.

Here is the approximate grading standard (subject to change). Historically the average grade in this class is a B. Given the quality of the classes work will may increase or decrease this average.

Homework 30%Quizzes 10%Midterm exam 30%Final exam 30%

- There will be three midterms and the final exam
- Midterms will be offered in the evenings
- Each midterm exam is designed to be doable in 1 hour, however you will be given 1.5 hours
- We will drop the lowest score exam.

- There will a quiz given in recittaion each week.
- You willbe tested on the material from the previous 2-3 lectures.
- They are designed to be easy, assuming you are keeping up with the lectures.
- We will drop the two lowest score quizzes.

- There will be written homeworks and oral presentations.
- All written homeworks must be typeset and submitted electronically.
- Each individual student has four (4) late days that can be used to extend the deadline for one written homework.
- No more than two late days per homework.
- We will drop the lowest score homework (written only).
- You are encouraged to work in groups of 2 or (preferably) 3. The group should be as diverse as possible.
- On all assignments each person should hand-in their own writeup. That is, collaboration should be limited to talking about the problems, so that your writeup is written entirely by you and not copied from your partner. In addition, list all members of your group.
- If you use any reference or webpage, you must cite it.

- Read the material taught in class, and make sure you understand all the definitions, algorithms, theorems and proofs.
- Read the homework. Carefully.
- Spend at least one hour thinking about each problem by yourselves. This is the vital part of
understanding the course's material. You will get stuck, that's ok. When you do, here are
some suggestions to help you get past it.
- Come up with a dummy example, over a small number of item, and try to solve it. This is particularly helpful when you're trying to follow an algorithm, or when devising a counter example.
- Which algorithms / techniques / heuristics taught in class are applicable to the problem at hand? When do they fail and for what reason?
- Reduce the problem to a problem taught in class. Can the problem be represented as a graph? a network? maybe to a less general instance of the problem itself (a graph with negative weight to a graph with unique, non-negative weights)?
- The notion of sub-problem (divide-and-conquer, dynamic programming, induction) is a recurring theme in this class. Try to identify and solve the sub-problems of the problem at hand.

- Only after you gave the problem a serious amount of thinking, try to collaborate, find outside sources or come to the TAs for guidance.
- Write down the solution, by yourselves. Re-read what you've wrote. Make sure the solution is exact, and answers specifically what you've been asked about. It should be clear, but it need not necessarily be long.

Finally, feel free to contact any member of the course staff to clarify these policies.