The test will be closed-book, except for 2 sheets (8.5"x11") of notes.

For the test, you should:

1) understand the general concept of the dynamic programming, greedy approach, backtracking, and branch-and-bound problem-solving techniques,

2) understand the dynamic programming, greedy approach, backtracking, and branch-and-bound algorithms for problems discussed in class,

3) be able to apply dynamic programming, greedy approach, backtracking, and branch-and-bound techniques to "new" (i.e., not in the text) problems,

**Examples Seen**

Technique |
Problems |

Greedy | Coin-change problem (not optimal) Prim's MST Algorithm Dijkstra's Single-source Shortest Path Traveling-Salesperson (not optimal) Fractional Knapsack Problem |

Divide-and-Conquer | Coin-change problem Binary search Merge sort Traveling-Salesperson 0-1 Knapsack Problem |

Dynamic Programming | Coin-change problem Binomial Coefficient Floyd's Shortest Paths Algorithm Traveling-Salesperson 0-1 Knapsack Problem |

Backtracking | Coin-change problem 0-1 Knapsack Problem Sum-of-Subsets Problem Traveling-Salesperson |

Branch-and-Bound | Coin-change problem (not a good solution) 0-1 Knapsack Problem Traveling-Salesperson |