This document outlines an agenda for a course on analysis and design of algorithms. It discusses several fundamental algorithmic strategies including brute force, branch-and-bound, and heuristics. Brute force is defined as exhaustively checking all possible solutions. Branch-and-bound systematically prunes branches that cannot lead to optimal solutions. Heuristics provide approximate solutions through rules of thumb to guide problem solving. Examples are provided for solving the traveling salesman problem using brute force and branch-and-bound, and the 0/1 knapsack problem using these strategies. Characteristics and application domains of heuristics are also summarized.