Algorithms and Data Structures

Overview
The course has two broad inter-related components - Data Structures and Algorithms. Data structures part basically deals with Abstract Data Types (ADT) and their implementations. We will be primarily interested in different implementations of various ADT’s and their efficiency. In the process, we will learn about various data structures and efficient schemes to implement these data structures. In the Algorithms part we will talk about some basic algorithm design techniques like Divide-and-Conquer, Greedy Scheme and Dynamic Programming, and determination of computational complexity. We will also study graph algorithms, including graph traversals (depth-first search and breadth-first search), connectivity, shortest paths, and minimum spanning trees. Tentatively, the course will cover the following topics. Prerequisites: 2.0 GPA; grade of C- or better in CS 1410 (or equivalent).