CS 3158: Design and Analysis of Algorithms
Summer 1999
Homework & Solutions
Course Organization
General Description:
Basic techniques for designing and analyzing
algorithms for sorting and searching problems, graph problems, string matching
etc. Introduction to NP-Completeness.
-
Prerequisites:
-
A discrete mathematics course such as Math 3012 and background in data
structures. Background in constructing proofs equivalent to CS 1155.
-
Instructor
-
H. Venkateswaran
236 College
of Computing, 894-3658
email: venkat@cc
Office hours:
MW 2pm-3pm and by arrangement.
-
Teaching Assistant:
-
Kehe Hou
153 College
of Computing, 894-1155
email: khhou@cc
Office Hours:
Tue&Thu 1.30-3pm.
-
Text:
-
Cormen, Leiserson and Rivest, Introduction to Algorithms
-
Grading:
-
5 homework assignments 30%, 2 quizzes 10%, 1 midterm examination 25%, and
1 final examination 35%.
-
Policy
-
No late homeworks.
-
Material to be covered:
-
Introduction (computational problems, models of computation, order notation,
recurrences).
-
Divide and Conquer: Strassen's matrix multiplication, merge sort.
-
Sorting: quick sort, heap sort, merge sort, lower bound for comparison
sorting, counting sort.
-
Medians and order statistics: linear time selection algorithm.
-
Dynamic programming: matrix-chain multiplication.
-
Greedy algorithms: Huffman encoding.
-
Algorithms for elementary graph problems: graph traversal techniques and
their applications (breadth-first search, depth-first search), minimum
spanning trees (Kruskal's and Prim's algorithms), shortest paths (Dijkstra's
algorithm), Warshall's algorithm for transitive closure.
-
String matching.
-
NP-Completeness: basic notions.
TENTATIVE Schedule of Assignments
NOTE: This is a tentative schedule of assignments. Any changes
to the schedule will be announced in class.
-
Friday, June 25:
-
Homework 1 handed out.
-
Friday, July 2:
-
Homework 1 due, Homework 2 handed out.
-
Friday, July 9:
-
Quiz 1, Homework 2 due.
-
Monday, July 12:
-
Mid-term Examination.
-
Friday, July 16:
-
Drop deadline, Homework 3 handed out.
-
Friday, July 23:
-
Homework 3 due; Homework 4 handed out.
-
Friday, July 30:
-
Quiz 2, Homework 4 due, Homework 5 handed out.
-
Friday, August 6:
-
Last day of classes, Homework 5 due.
-
Tuesday, August 10:
-
Final examination from 8.00 - 10:50 am.
Revised Schedule of Assignments
NOTE: This is a tentative schedule of assignments. Any changes to
the schedule will be announced in class.
-
Friday, June 25:
-
Homework 1 handed out.
-
Friday, July 2:
-
Homework 1 due, Homework 2 handed out.
-
Wednesday, July 7:
-
Quiz 1.
-
Friday, July 9:
-
Homework 2 due.
-
Monday, July 12:
-
Mid-term Examination.
-
Friday, July 16:
-
Drop deadline, Homework 3 handed out.
-
Friday, July 23:
-
Homework 3 due; Homework 4 handed out.
-
Friday, July 30:
-
Quiz 2, Homework 4 due, Homework 5 handed out.
-
Friday, August 6:
-
Last day of classes, Homework 5 due.
-
Tuesday, August 10:
Final examination from 8.00 - 10:50 am.
Note from TA
It is very important
to make your writings as clear as possible. Unintelligible handwritings
may not get credits.
Last Modified: Jun 23, 1999