CS 2150 Syllabus Spring 2008



Course Home Page: http://www.cs.pitt.edu/$\sim$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.