Syllabus - CS 161 - Design and Analysis of Algorithms
Michael T. Goodrich
http://www.ics.uci.edu/~goodrich/teach/cs161/
Lectures: TTh 11:00-12:20pm, ICS 174
Office hours: MW, 2:00-3:00pm
- Course Description.
Techniques for efficient algorithm design, including divide-and-conquer
and dynamic programming, and time and space analysis of algorithms.
Fast algorithms for problems having applications in networks,
computer games, graphics, and scientific computing, such as sorting,
shortest paths, minimum spanning trees, network flow, and pattern matching.
- Coursework. Coursework will consist of weekly homeworks,
two midterms, and a comprehensive final exam. The overall grade
will be determined 20% from homework, 25% from each midterm, and
30% from the final.
Group work on homeworks is permitted, but each
student must list his or her collaborators in writing for each problem.
If a student turns in a solution without listing
the others who helped produce this solution,
this act will be considered cheating (for it is plagarism).
Late homework assignments will not be accepted.
- Exam policy.
Exam performance must be 100% individual effort; no collaboration
is allowed on exams. Any collaboration or copying on exams
will be considered cheating.
In addition to the procedures of the
ICS
Cheating Policy, students caught cheating on exams will be given a
failing grade in the class.
- Laptop policy.
Open laptop computers are not allowed during lectures.
- Text. The course text, which is required, will be
Algorithm Design,
by Goodrich and Tamassia.
- Add/drop policy.
Drops will be accepted only up to the first midterm.
Once your drop card has been
signed, further coursework from you will not be graded. After the
seventh week of classes, withdrawals will be allowed only by
petition and under documented extenuating circumstances.
Tentative Schedule
- Week 1:
-
Growth of functions.
Amortization.
Data Structures.
Heap sort.
- Week 2:
-
Sorting, comparison trees, and lower bounds. Mergesort.
Quicksort.
Bucket sort.
Selection.
-
Week 3:
-
Fundamental techniques.
The greedy method.
Divide-and-conquer.
-
Week 4:
Midterm I
-
Dynamic programming.
Matrix-chains.
-
Week 5:
-
Knapsack. Longest common subsequence.
Graphs and their representations.
-
Week 6:
-
Graph algorithms. Depth first search.
Breadth-first search.
Topological sort.
-
Week 7:
Midterm II
-
Weighted graph algorithms.
Shortest paths.
-
Week 8:
-
Minimum spanning trees.
Network flow.
-
Week 9:
-
Week 10:
-
Approximation algorithms.
FFT.
Copyright © 2014
Michael T. Goodrich, as to all lectures.
Students are prohibited from selling
(or being paid for taking) notes during this course to or by any
person or commercial firm without the express written permission of the
professor teaching this course.