CS 401:
Computer Algorithms I
Fall 2018
SYLLABUS
General Information |
Topics |
Lecture Slides
| Grading
| Homework
General Information
Instructor: Xiaorui Sun.
Office: SEO 1241.
Office hours: Tue 10-12.
Instructional assistants:
Sanket Gaurav
Classroom: SES 138
Time: Tues/Thurs 12:30pm-1:45pm.
Course website (this page): http://www.cs.columbia.edu/~xiaorui/cs401
Textbook: Algorithm Design by Jon Kleinberg and Eva Tardos, Addison-Wesley, 2006.
List of Topics
We will cover almost all of chapters 1-8 of the Kleinberg/Tardos text.
-
Introduction
-
Basics of Algorithm Analysis
-
Graphs
-
Greedy Algorithms
-
Divide and Conquer
-
Dynamic Programming
-
Network Flow
-
NP and Computational Intractability
Lecture Slides
Click
here
to obtain lecture slides.
Grading
-
Homework (40% of grade).
-
Midterm exam (25% of grade). Details TBA.
-
Final exam (35% of grade). Details TBA.
Homework
There will be four homework. The problem sets will be posted
here.
They will be assigned on Mondays, posted here, and due two weeks later.
(Leave your homework in the box labelled CS401 outside my office SEO 1241 no later than 5pm on the due date.)
Homework policy:
-
Most of the problems ask you to either design an efficient algorithm for a specific problem, prove or disprove the correctness of a given algorithm, or to analyze the complexity of a given algorithm. Most of the problems require one or two key ideas. Be concise when writing up the solutions, but make sure to give enough details to clearly present those key ideas. Learn to mathematically reason about algorithms, and learn from the writing style of the textbook how to rigorously and succinctly describe an algorithm. Understandability will be an important factor considered in grading. You are discouraged from writing up long answers which you suspect are incorrect, in the hopes of picking up a point or two. You will get no point by doing this, and will receive a warning for the first violation. Any subsequent violation will be penalized by 10% off the whole set, due to the waste of TA time.
-
You are allowed a total of six late days for the semester.
Each late day is exactly 24 hours; late days
cannot be subdivided -- five minutes late counts as one late day.
Note also that problem sets cannot be subdivided with respect to late days
(i.e. you cannot use 1/6 of a late day on a 6-problem problem set by
handing in one problem one day late).
Late days over and beyond the allotted six late days will be
penalized at a rate of 10% of the initial grade per late day
(with the same system in place;
five minutes late for one problem counts as one late day for the entire set),
thus a problem set which is four days late would receive 60% of the points
that it would have received had it been turned in on time.
No problem sets will be accepted after two weeks have elapsed from
the initial due date. For
any exceptions,
you must have your undergraduate advisor (for undergrads) or your
graduate advisor (for graduate students) contact me.
Some problems
will be challenging; you are advised to start the problem
sets early.
-
The homework submitted must be written by yourself independently, without looking at anybody else's solutions. You may discuss the problems with fellow students taking the class, teaching assistants, and the instructor. If you collaborate, you must acknowledge clearly, at the beginning of each problem, the people you discussed with on that problem. You are expected to fully understand every single step of the solution, and must write up the solutions by yourself independently.
Violation of any portion of this policy will result
in a penalty to be assessed at the instructor's discretion. This may include
receiving a zero grade for the assignment in question AND a failing grade
for the whole course, even for the first infraction.
More generally, students are expected to adhere to the Student Disciplinary policy of the
Computer Science Department; this policy can be found in full
here.
Please contact the instructor with any questions.