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.