
Learning Objectives 
Knowledge and Comprehension 

 Definition and implementation of several data structures including
stacks, queues, heaps, priority queues, trees, splay trees redblack
trees, binary trees, balanced binary trees, fibonacci heaps, graphs
 Definition and correctness of serveral algorithm types including the
greedy algorithm, backtracking, and branchandbound
 Complexity theory
 Matroid Theory

Application 

 Several problems whose solution benefits from the use of a data structure
that is learned in this course including the Shortest Path problem,
Minimum Cost Network, Biconnected Components, Sorting a list, Integer
Deadline Scheduling, Finding Cliques, Three Coloring a graph.
 Use of complexity theory to estimate worst case and average case
performamce of solutions to the above problems
 Apply matroids to solving problems such as the minimum spanning tree problem

