CS575 -- Fall 2007

Instructor: Patrick H. Madden, pmadden@cs.binghamton.edu
URL for the course: http://www.cs.binghamton.edu/~pmadden/cs575
Tuesday/Thursday 1:15pm-2:40pm in APG014

Teaching Assistant: TBD


Announcements:

 

Requirements:

You must have taken undergraduate courses in algorithms, data structures, have a working knowledge of C, C++, or Java, and also have a solid background in discrete math.
Text for the course: Introduction to Algorithms, 2nd edition, by Cormen, Lieserson, Rivest, and Stein.  The 1st edition is similar, but a number of changes have been made; use this edition at your own risk.

Course Objectives:

This course should familiarize you with advanced algorithms, and the associated data structures; divide-and-conquer, greedy algorithms, graph algorithms, dynamic programming, maximum flow. In addition, we will cover complexity analysis, and the theory of NP-Completeness. It is essential that you have strong programming skills; we will implement many programs during this course, to make sure that things you learn can actually be applied; "book knowledge" is not enough.

Grading:

There will be a simple quiz in the first class period; if you do not score 100% on it, you are STRONGLY encouraged to drop the class and take the undergraduate version of algorithms.

  • 3 Exams; 15% each
  • Final, 25%
  • In-class quizzes, 10% total (percent each depends on how many we wind up doing)
  • Programming assignments: 20% total.

Grading ranges are typically [90-100%]=[A- to A], [80-90%]=[B- to B+], [70-80%]=[C- to C+]. Graduate courses do not have an option below a C-, and I will not be giving incompletes. Algorithms is a required course; it is essential that you master the material in this course.

General Rules:

You are expected to be able to do all of the work on the exams, quizzes, and assignments, on your own. Anyone who is observed cheating (whether providing or accepting assistance) will fail the course.

Assignments: