CS G713: Advanced Algorithms

Fall 2003

Instructor:  Rajmohan Rajaraman

113 Cullinane Hall                                                                  Work: 617-373-2075
College of Computer Science                                                 Email: rraj@ccs.neu.edu
Northeastern University                                                          Home: 617-232-8298
Boston, MA 02115                                                                  Fax:    617-373-5121


Class meeting times/location:     W 6:00-9:00 PM, 236 FR

Office Hours:    M 4:00-5:00 PM and W 2:00-3:00 PM


Course Description

Textbook

Prerequisites

Grading

Academic Honesty and Integrity

Class Schedule (Includes all handouts)

Administrivia

Tentative Course Schedule
Questionnaire
Books for Reference


Course Description

This course will present advanced techniques for the design and analysis of algorithms.  The course is divided into two parts.  Part I, lectures 1 through 8, will cover fundamental graph algorithms, optimization techniques, and advanced data structures.  Part II, lectures 9 through 13, will cover selected advanced topics including linear programming, number-theoretic algorithms, NP-completeness, and approximation algorithms.  Here is a tentative list of topics that will be covered:

For a slightly more detailed listing of the topics covered, see the tentative schedule.


Required Textbook

T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, MIT Press/McGraw-Hill,  (2nd Edition, 2001) 

The first edition of the textbook will also suffice though I must add that there will be a few topics (approximately 10% of the course content) that are discussed in the second edition and not in the first.  The course will also include material that is not covered in either of the books.  A recent version of the known errors in the first edition may be found here.  


Prerequisites

This is a PhD core course; if you are not a PhD student in the college, then you need to get approval from the instructor. The course will be fast-paced and will cover a number of advanced topics in algorithms over the 13-week period.  A good test to find out whether you are well-prepared for taking this course is to look over material from the following chapters of the textbook: 1-4, 6-7, 10-12, and 22 (in the first edition, chapters 1-5, 7-8, 11-13, and 23).  If you have studied the material in these chapters and are comfortable with it, then you are well-prepared.  Otherwise, you should talk to the instructor before taking the course.  Also it is highly recommended that you review the mathematical background covered in Appendices A, B, and C.1-C.3 (Chapters 3, 5 and Sections 6.1-6.3 of first edition) within the second week of class.


Grading

The course grade will be based on six problem sets (total 30%), a midterm (25%), a final exam (35%), and class participation (10%).


Problem Sets


Problem sets are due at the beginning of class. As a general rule, a problem set turned in late will be penalized 10% for every weekday it is late, and no homework will be accepted beyond 1 week past its due date.    Students may discuss the problem sets with one another, but solutions should be written up separately.  If a key idea is obtained from another person (other than the instructor) or from another book or paper (other than the course textbook), then the source of that idea should be cited.  Solutions should be presented in a clear and concise manner.   Tentative out/due dates for the problem sets are listed in the schedule.


Class Participation

There are three components that make up class participation (10%).


Exams

The midterm will probably be a take-home exam that will be given out on Wednesday, Nov 5.  The final exam will be an in-class exam and will take place during finals week (Dec 17).