CS 2150 Syllabus Spring 2008
Course Home Page: http://www.cs.pitt.edu/
kirk/cs2150/
Class Meeting: Monday, Wednesday, Friday 2:30-3:45 5313 Sennott Square
Instructor: Kirk Pruhs
Office: 6415 Sennott Square
Phone: 624-8844
Email: kirk@cs.pitt.edu
Office hours: After class on Monday, Wednesday, Friday
TA: Christine Chung
office : 6804
Sennott Square
e-mail :
chung@cs.pitt.edu
Office hrs : To be announced
Text: Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein. Note that this is the second edition of the text.
Prerequisites: Enough mathematics to be admitted to the CS grad program.
This includes: 3 semester of calculus, 1 semester linear algebra,
1 semester of probability/statistics that uses calculus,
at least a semester of discrete mathematics.
You should also have an undergraduate algorithms class comparable
to CS 1501. You must be able to recognize
a valid mathematical proof, and
know how to construct a simple valid proof on your own.
These are the bare minimum prerequisites. These prerequisites are really
required.
I will spend practically no time reviewing the prerequisites.
Consider yourself forewarned.
Goals of the Course: In approximate order of importance:
(1) learn how to think algorithmically, (2) learn how
to be your own adversary
(3) learn a little about the research process
(4) learn how to think on many
levels at the same time, especially on the program and algorithm
levels, (5)
learn widely applicable algorithms design and analysis techniques, and
(6) learn some of the more commonly used algorithms.
We will concentrate more on understanding the basics at a
reasonably mature level
rather than on more advanced material.
This is NOT a survey class of useful algorithms, nor will we
discuss many lower level implementation issues. The
class is targeted toward PhD/professional computer scientists. The goal is to
prepare all students to be able to read and understand reasonably sophisticated
algorithms papers, and to prepare some students to be able to design and analyze new algorithms
on their own.
My goal is to get as many people to the A level
as possible (see below).
Grading: The grades will be based on a final exam, on written
homework, and on class participation. There will be
homework due almost every day. Half of the grade will be based on the homework,
and half of the grade will be based on the final exam. Class participation
will be used to decide borderline grades.
I will subjectively set the grading scale at the end of the semester.
This should go without saying, but, grades are based on performance,
not on a student's self-report of time and/or effort spent, the students current
GPA, etc. The grades are objective in the following sense:
To get a grade of A, a student must demonstrate that he/she
understands the material and can apply the techniques in nontrivial
ways. He/She is qualified to grade/TA an algorithms course.
He/She can with high probability of being able to solve
a random problem from the text.
To get a grade of B, a student must demonstrate that he/she
understands the material and can apply the techniques in straight
forward ways.
I have no set numbers of A's, B's etc. I strongly suggest you cooperate with each other to understand the material; This is in everyone's best interests. My experience is that individual students grades are positively, not negatively, correlated.
Appeal process for tests:
Like the NFL, I use a "pay-to-play"
review system. If you believe that
your solution for a problem on an exam is "essentially fully correct"
you may ask for a re-grade. The solution in question
will be then given to an independent grader. If the independent
grader believes that the the solution is "essentially fully correct"
then full credit will be given for the solution.
If the independent
grader believes that the the solution is not "essentially fully correct"
then five points will be deducted from the student's exam score.
No appeals are allowed for additional partial credit;
Partial credit is too subjective.
The decision of the second grader is final.
Appeals will not be accepted earlier than 1 class after the
exams were returned, and will not be accepted later than
2 classes after the exams were returned.
Of course any clerical errors can be corrected.
Missing tests: If you are going to miss a test for unavoidable
reasons you must contact me before the exam.
Homework Policy: Students will be assigned to groups of 3 to 5 students. Students will be expected to work on the problems with their group. Although students may collaborate with students in other groups. The group should submit one solution per problem. The solutions must be written using LaTeX. You need not give all the low level details, but should write in enough detail so that another student could understand your proposed solution. Figures may be hand drawn. Each homework solution should be written on a separate sheet of paper. At the end of each problem write-up you must state who you worked with on the problem. The write up should start with a statement of what will be given in the solution, e.g. "We give an O(n log n) time algorithm for the problem of finding the median." Homework solutions will be grade by the TA. To receive significant credit, not only must the solution be correct, but it must be clearly written. Partial credit will be hard to come by on homeworks. Hard copy of solutions are due at the start of class on the day that they are due. No late assignments will be accepted.
Each student should keep write-ups from their group in a personal notebook. Solutions will not be provided for the homework. Tests will in large part be based on the homework. It is very important that you do the homework, you learn by doing, not by watching others do.
Prelim Policy: The prelim will be the final exam. To pass the prelim you need to obtain a grade of at least B+ on the final exam.