CSC 141 -- Fall 1999

 

Instructor: Michalis Faloutsos

Office: A-213 Bourns Hall.
Email: to be announced.
Office Hours: After the class Mo-We: 6-7.

General Information:

Mon-We-Fri: 5:10 - 6:00  Watkins 1101

Textbook:

Introduction to Algorithms,  by Cormen, Leiserson, Rivest

Note/Warning:

The exact reading material will be defined and presented in the
class and may diverge from the textbook. Students should
pay attention to what is covered by attending the classes or
referring to the class notes of other students.

Prerequisites:

CSC 14 or former CSC 140-A, MATH-009, MATH-112.
Ability to program in C++.
 

Grading Scheme:

3-4 Assignments 50%
Midterm         20%
Final           30%

Reg-evaluation of assignments/test should be done within the first
week after they are returned. There will be a 10% penalty per day
for late assighments.

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.

Material to be covered:

Overview: graph algorithms, dynamic programming, 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.

Fundamental topics from the book.

  1. Recursive programs and Recursion (parts of ch. 4)
  2. Elementary Graph Algorithms (ch. 23)
  3. Minimum Spanning Trees (ch. 24)
  4. Single-Source Shortest Paths (ch. 25)
  5. All-pairs Shortest Paths (ch. 26)
  6. Dynamic Programming (ch. 16)
  7. Greedy Algorithms (ch. 17)
  8. NP-completeness (ch. 36)
Optional topics from the book (may or may not be discussed).
  1. String Matching (ch. 34)
  2. Maximum Flow (ch. 27)
Optional topics.
  1. The Steiner tree problem
  2. Desinging object-oriented programs