Course Schedule
Course Rules
Course Goals
Learn techniques to solve problems
efficiently. These techniques are: greedy methods,
divide and conquer, dynamic programming, backtracking, and
branch and bound.
Apply the techniques to design
efficient algorithms for problems
from several fields of study.
The performance of the resulting algorithms will be investigated
theoretically and empirically.
News
Discussion sessions begin on Wednesday April 1, 2009
(9:00 - 9:50 GIRV 2123).
It is very important that you attend all the Discussion Sessions.
It is very important that you attend all the Discussion Sessions.
Topics covered so far:
Tentative list of topics to be covered (unordered):
Introduction (O, Omega, and Theta notation )
Greedy Methods
Definitions
Container Loading
The Printer Scheduling Problem
Bin Packing
Single Source Shortest Paths
Min Cost Spanning Trees (Kruskal, Prim and Sollin)
Huffman Codes
Divide and Conquer
Finding the Counterfeit Coin
Merge sort
Multiplying long integers
Basic Theorem For Solving Recurrence Relations
Proof of Theorem
Applications of Basic Theorem
Fast Matrix Multiplication
Triangular Matrix Multiplication
Selecting the kth Smallest Element
Closest Pair in 2D
Convex Hull
Dynamic Programming
Family Vacation
All Pairs Shortest Paths
Matrix Prod Chains
Parallel Matrix Prod Chains
Triangulating a Convex Polygon
Image Compression (if time permits)
NP-complete Problems
Other
Backtracking
Branch and Bound
Games (Tic-Tac-Toe), Chess and Alpha-Beta Pruning
Maximum Matching in Bipartite Graphs (if time permits)
Bipartite Graph Covers (if time permits)
Applications of DFS and BFS (if time permits)
Under Construction DO NOT CLICK HERE
Total number of visitors to this page, since 3/1/2009,
is
.