CS 2150 Syllabus Spring 2012
Course Home Page: http://www.cs.pitt.edu/~kirk/cs2150/
Class Meeting: Monday, Wednesday, 10:00 - 11:15 and Friday 4:00 -
5:15 5313 Sennott Square
Instructor: Kirk Pruhs
Office: 6415 Sennott Square
Phone: 624-8844
Email: kirk@cs.pitt.edu
Office hours: Whenever you
can catch me on Monday, Wednesday, Friday. After class on Mondays and
before class on Fridays should generally be good times.
TA: Daniel Cole
office :
Sennott Square 6506
e-mail : dcc20@cs.pitt.edu
Office hrs : 10-1 Tuesdays and Thursday
Text: Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein. Note that this is the third edition of the text. Although an older edition would probably work reasonably well.
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, and
at least a semester of discrete mathematics. You should also have an
undergraduate algorithms classes comparable to CS 1501 and CS 1510. You
should be able to recognize a valid mathematical proof, and know how to
construct a simple valid proof on your own. You should understand first
order logic.
These are the bare minimum prerequisites. These prerequisites are
really required. I will spend practically no time reviewing the
prerequisites.
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.
Course 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. 40% of the grade will be based on the homework.
Homeworks will be graded on a 3 point scale, with a score of 3 meaning
that the solution was written clearly and was correct in all important
aspects (although there may be minor issues), a score of 1 generally
meaning that there is a substantive error/problem but the right general
direction was being pursed; scores of 2 will be rare. To help students
better appreciate the difficulty of grading/reading poorly written
algorithm design and analysis, they may be asked to grade some
homeworks. 50% of the grade will be based on the final
exam. 10% of the grade will be based on class. Attendance will be
taken, and students will lose 1% for each class that they miss. In
principle, it is possible to miss many classes and get an A, but no one
has ever done this. There is 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.
Missing tests: If you are going to miss a test for unavoidable
reasons you must contact the instructor before the exam.
Homework Policy:
Homework may be done in groups of 2 to 3 students. If you want to do
homework in a group of size not 2 or 3, you need to clear this with the
instructor. 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. Students may
not seek solutions to homework problems from any source external to the
textbook and other students in the course (this includes the www,
students at other universities, other textbooks, academic papers,
etc.), but the students may seek background material not specifically
addressing the solution to the individual problem.The solutions must be
written using LaTeX, one
file per problem. You should use plain, vanilla LaTeX that doesn't
require any external files. You need not give all the low level
details, but should write in enough detail so that another student
could understand your proposed solution. 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." Hard copy of the homework solutions are
due at the start of class.
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.