Instructor: Michalis Faloutsos
Office: 333 Surge Building
Textbooks:
Note: You are NOT required to get both books.
You can pick either. I would recommend the first one.
Recommended:
Algorithms in C: Part 5 Graph Algorithms
By Robert Sedgewick
Addison Wesley Longman, Inc.; 08/2001; 3RD
Online Price: $34.99
The book does not cover all topics.
Alternative: Introduction to Algorithms, by Cormen, Leiserson, Rivest
I believe either edition is fine, I have the older one (white).
This a more difficult book to read, but it covers more topics.
Note/Warning:
The exact reading material will be defined and presented in the
class and may diverge from the textbooks. Students should
pay attention to what is covered by attending the classes or
referring to the class notes of other students.
Although not apparent now,
in the long run it will make your life easier.
Prerequisites:
CSC 14, MATH-009, MATH-112.
Ability to program in C++.
Grading Scheme:
3-4 Assignments 30% (but have to have at least 75% to pass)
Midterm 30%
Final 40%
Re-evaluation of assignments/test should be done within the first
week after they are returned. Given the class size, only claims
of significant
difference will be considered.
Late assighments: There will be a 15% penalty per day for late assighments
and
only for the first four days.
Handouts you can consult.
Useful handouts, courtesy of E. Sekerinski, I. Parberry, and M. Ogihara:
in directory in pdf format
introduction,
big-O,
recursion
Handouts for BFS and DFS as presented in class:
BFS,
DFS. Kindly provided by Anil Reddy.
Handouts of the shortest paths algorithms as presented in class:
the algorithms as presented in the class,
auxiliary presentations of shortest paths: Single Source SP in pdf ,
All Pairs SP in pdf.
See: Steiner Tree Problem handout
Maximum Flow: by Michalis, version 1.0:
Maximum Flow and Cuts .
by R. Tamassia:
pdf (70K) and
ps
(ps is 2.1M!)
NP-Completeness:
See: introduction to NP-completeness
Note/Warning on plagiarism:
Assignments should reflect individual work unless otherwise stated.
All references and sources for literature or code should be cited.
Randomly selected students may be asked to explain their assignment
to TAs to ensure that they understand it after it has been handed in.
This is an attempt to protect the honest majority of students.
GRADE POSTING
To facilitate grade dissemination,
you can sign and return the following form that will allow
us to post your grades with
the 4 digts of your SSN number. You are not required to do so, but
it will help you learn your
grades faster. The alternative is to come to the lab hours and ask
your TA to bring a grade
sheet with him/her. Here is the form
Material to be covered:
Overview: graph algorithms, approximation
algorithms, recursion, NP-completeness. There will also be a focus on
object-oriented programming.
The following is a rough outline. Some things may be added or omitted
depending on class interest and needs.
Intended Material Covered by week.
Note: we will not cover the
whole chapter typically plus we may
talk about some things outside
the book. Keep in touch with the class.
Note: [] corresponds to the Sedgwick book, and () corresponds
to the Cormen book.
Week: [-] (ch. 5)
Introduction: proving techniques, recursion,
complexity of algorithms
Week: [ch. 17] (ch. 23)
Trees, Graph representation,
Breadth First Search Depth First Search
Week: [ch. 18] (ch. 24)
Minimum
Spanning Trees
Week: [ch. 20] (ch. 25)
Single-Source Shortest Paths
Week: [ch. 20] (ch. 26)
All Pairs Shortest Paths
Week: [-] (-)
Steiner tree problem and approximation algorithms
(not in the textbooks
See Steiner Tree handout
[ch. 22] (ch. 27)
Maximum Flow: Ford-Fulkerson, Min-Cut-Max-Flow Theorem.
Week: [-] (ch. 36 - but very complicated)
Introduction to NP-completeness
Wrap up.