The main goal of these policies is two-fold:
- 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.
There will be one in class midterm and a final during the finals period.
There will also be a collection of in class quizzes. We also plan to have works some will
require oral presentation and other that are strictly written.
|Homework ||25% |
|Quizzes ||15% |
|Midterm ||25% ||Final exam ||35%
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.
- All homeworks are due at the beginning of lecture or recitation. See due dates.
- We will not accept late submission. However, each
individual student has a single 48 hours pass. This pass can be used to extend
the deadline for one homework by 48 hours.
- 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.
- You are required to type your solutions (preferably using
- A 30% bonus will be assessed to the entire homework for
each solution used in the posted solutions.
Submission in LaTeX is required for consideration.
- You can earn more than 100% on most
problem sets. A score higher than 100% is bonus.
- If you
use any reference or webpage, you must cite it.
Algorithms is a pivotal course in computer science undergrad studies.
The course's goal is to give you the basic principles in analyzing and designing of algorithms. It is
not an easy course (not that other courses taught in CMU are easy!). It will require a significant
amount of work on your part to follow what is taught in class. This is why we give weekly homework
assignments. They are designed to give you a better understanding of the material taught in class.
We stress that the homework is meant for you. We devote a fairly large amount of time for designing,
writing, grading and explaining the homework, so that you can test yourselves and see how well
you understand and implement the course's material.
Types of Homework
Each week you'll get a new assignment, alternating between
mini-homeworks (one week assignment)
and regular assignments (two weeks assignment). Minis are fairly straight-forward.
They should not pose much of a problem
if you listen in class. Regular HW are somewhat more tricky. We want you to sit and thoroughly
think the problems and the principles shown in class. As mentioned, we expect you to show us
understanding of the material by implementing it. Note: even though the regular HW aren't trivial,
that is not say they are particularly hard.
Solving the Homework
Ideally, this is how you should approach the homework.
- 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
- 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
- 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.
Lateness and Absence
Make-ups for the exams and the final must be arranged at least one week
in advance, barring extreme situations.
Make sure to document any health problems you might have.
We will assume that you understand the issues and
do not need an explanation here.
Finally, feel free to contact any member of the course staff to clarify