This document discusses the objectives and topics of the CS-311 Design and Analysis of Algorithms course. The objectives are to design algorithms using techniques like divide and conquer, develop problem solving skills, and analyze algorithms to compare efficiencies. An algorithm is defined as a sequence of unambiguous instructions to solve a problem. Sorting algorithms like selection sort and merge sort are presented as examples and analyzed based on time complexity. The process of solving a problem with algorithms includes understanding the problem, designing a solution, implementing and testing code, and analyzing performance. Key constructs like sequences, selections, iterations, and recursion are discussed for analyzing time complexity of algorithms.