Introduction: Binary Search, Order of growth of functions, Analysis of correctness and running times of algorithms.
The Sorting problem: Insertion sort, Merge sort, Quick sort, lower bound for sorting in the comparison model, sorting in linear time.
Abstract Data Types and Data Structures: stack and queue, priority queue and heap implementation, binary search trees and 2-3 trees, disjoint sets.
Algorithmic Techniques: divide an conquer paradgim, greedy algorithms, dynamic programming.
Graph algorithms: representations of graphs, searching on graphs (in particular, breadth first search), minimum spanning tree, network flow.