Course Credits: 3 Units
Prerequisites: CMSC 21, CMSC 57
This course will tackle all about different abstract data types (ADT) and how to implement them using different data structures (such as arrays, lists, trees, etc.). First, we will learn about Linear ADTs where the data follows a certain order. Examples of these are stacks, queues, deques, vectors, linked lists, sequences, and iterators. Next, if there are Linear then there are Non-Linear ADTs where the flow is not straightfoward. Some examples are maps, dictionaries, hash tables, skip lists, binary trees, priority queues, heaps, and binary search trees. Finally, we will tackle some algorithms for pattern matching, sorting searching, selection, and graph applications. We will also be introduced to algorithm analysis, which allows us to compare the performances of different implementations of ADTs.
After completion of the course, the student should be able to:
UNIT 1. Introduction to Data Stuctures and Algorithm Analysis
UNIT 2. Linear ADTs
UNIT 3. Non-Linear ADTs
UNIT 4. Algorithms