Analysis of Algorithms
Course Information
Instructor
- Name:
Prof. Cliff Stein
- Office:
340 Mudd Hall
- Phone:
854-5238
- E-mail:
cliff@ieor.columbia.edu
- Office Hours:
M 2:30-4:00, Th 2:00-3:00 and by appointment
Teaching Assistants
- Name:
Justin Cranshaw
- Office:
CS-TA room, 122a Mudd
- E-mail:
jbc2111@columbia.edu
- Office Hours:
M 12-1, T 5:45-7:45 and by appointment
Name:
Justin Sarma
Office:
CS-TA room, 122a Mudd
E-mail:
jns2111@columbia.edu
Office Hours:
W 3:00-5:00 and by appointment
Name:
Alex Sherman
Office:
511 CS Building
E-mail:
asherman@cs.columbia.edu
Office Hours:
M 5:00-7:00 and by appointment
Course
- Meets:
MW 1:10-2:25
- Room:
535 Mudd
Prerequisites
- COMS 3139 and COMS 3203 or equivalents.
Text
- Required:
Introduction to Algorithms, Thomas Cormen, Charles
Leiserson, Ronald Rivest, and Clifford Stein, 2nd edition
(5th printing is the latest, but any printing of the 2nd edition is fine)
Getting Help
You can get help in the course by
- visiting the professor or TAs in their office hours
- emailing the professors or TAs
- posting to the course bulletin board on courseworks.
Bulletin board
We have set up a course bulletin board on course works. We encourage you to
post questions about homework there. The course staff will monitor the board
regularly. Please check the board before asking a question. Also, feel free to
answer another student's question, being mindful not to post the solution to
a homework problem.
Homework
Assignments
There will be bi-weekly written assignments, generally available on
the web by Wednesday afternoon and due two weeks later,
in class.
Some of the exercises
will be routine, but others will be more challenging. I do not
expect you to solve all of the homework problems, but I hope that you
will benefit from working on the more difficult ones. A few hints
on the homework assignments:
- Start early: Difficult problems are not typically
solved in one sitting. Start early and let the ideas come to you
over the course of a few days.
- Be rigorous: Each problem has a (sometimes unwritten)
requirement that you prove your algorithm correct and
analyze its running time. To obtain full credit for a
problem, it is necessary to fulfill this requirement.
- Be concise: Express your algorithms at the proper
level of detail. Give enough details to clearly present your
solution, but not so many that the main ideas are obscured. English
is the best way to express an algorithm; revert to pseudocode only
if necessary.
Grading
- We will employ a somewhat unusual grading scheme. Each homework
assignment will have n problems, and each problem will
be worth 10 points. You will be required to attempt any
m problems. (The parameters n and m
will vary from assignment to assignment.)
These m problems will be graded
in the usual manner: you will receive full or partial credit out
of 10 points. You may also choose to attempt the remaining
n-m problems. These problems will be graded as follows.
Say that you would have received a score of j points
if this problem had been graded normally. If j is less than
6, then you will receive zero out of zero points, as if
you had not attempted the problem. Otherwise, you will receive
2j out of 2j points. Note that attempting extra
problems can only help you. Your grade on an assignment
will be reported by two numbers: the points you obtain and the
points you effectively attempt. Your homework grade at the
end of the term will be calculated as the sum of the points you obtained
divided by the sum of the points you effectively attempted.
- The purpose of this policy is threefold:
- It is designed so as not to penalize you for skipping some
problems.
- It is designed to encourage you to attempt all of the problems.
- It is designed specifically to discourage you from writing up long
answers which you suspect are incorrect, in the hopes of picking up a
point or two.
Undergraduates and Graduate students
This class has both undergraduate and graduate students in it.
While the same set of homework problems will be assigned to both
groups, the requirements will be different. Typically, the
undergraduate students will be required to do fewer problems, although
this may vary from week to week. In addition, the requirements for
exams may differ.
Late Homework
will generally not be accepted. Two weeks should be sufficient time
to complete an assignment.
Exceptions will be made only for
exceptional extenuating circumstances (e.g. serious illness,
family crisis).
Homework Policy
The main goal of the homework assignments is education, not evaluation.
We must also be mindful of rules regarding academic honesty and
plagarism. To facilitate these goals, we will use the following policy.
- All work submitted for credit must be your own.
- You may discuss the homework problems with your classmates,
the teaching assistant(s), and Professor Stein. For each problem,
you must acknowledge
the people with whom you discussed your work, and you must
independently write up your own solutions. Any written
sources used (apart from the text)
must also be acknowledged; however, you may not consult
any solutions from previous years' assignments whether they are
student or faculty generated.
- If you do choose to copy another student's work, or to copy from
some other source, please state this in writing on your homework assignment.
- Please ask if you have any questions about this policy.
Violations will be treated harshly. This means that if you violate
the policy, even once, your grade on homework for the entire semester
will be 0. Note that allowing someone else to copy your solution is
just as serious as copying someone else's solution.
Exams
- There will be one take-home midterm, and an in-class final
exam. The exams must be done entirely by yourselves. The midterm may
be followed up by an oral defense of the work.
Grading
- Homeworks: 30%
- Midterm : 35%
- Final: 35%
Students with Disabilites
I encourage students with disabilities, including invisible disabilities
such as chronic diseases and learning disabilities, to discuss with
me any appropriate accommodations that I might make on their
behalf.
Switch to: