CMPC-201 Data Structures and Algorithms
CMPC-201 Data Structures and Algorithms
Course Content:
1. Introduction to Course, Basic Object Orientation concepts, Properties of Algorithm,
Introduction to Algorithm's Performance Analysis and Measurement (Big Oh Notation)
2. ADT, Basic Operations, Reading, Writing, Insertion, Deletion, Merging, Binary Search.
3. Introduction to Sorting types and Techniques, Logical and Algorithmic Implementation
of Bubble, Selection Sort, Insertion, Quick Sort, Merge Sort.
4. The Stack ADT, Expressions, Postfix Notation, Infix to postfix, postfix evaluation,
Applications of stack
5. Introduction to Recursion, Examples of Recursion, Writing Recursive Programs
6. The Queue ADT and Its Applications, Variation of Queue ADT i.e. Circular and Double
Ended Queue
7. Priority Queues, Introduction to Pointers, Linear single Link
8. Linked Stacks and Queues, Linear Doubly Linked list
9. Circular Lists: Implementation of queues and stacks, Doubly Link List
10. Introduction to Trees, Tree Terminology, Logical construction and Representation of
Trees, Introduction to Binary Tree ADT, Mathematical properties, Linked
Implementation of Binary Trees (Insertion, Traversing, Searching and deletion in Binary
Trees)
11. Binary Search Tree, Implementation and Applications of BSTs
12. Heaps and Heaps as Priority Queues, Introduction to Balanced and AVL Trees, Heap
Sort.
13. Hashing, Overflow Handling, Open Addressing, Chaining
14. Introduction to graph and related terminology, Adjacency Matrix representation of graph
and Adjacency list
15. Elementary Graph Operations, DFS, BFS, Spanning Trees
16. Shortest path algorithms: Dijkstra Algorithm, Minimum Cost Spanning Trees.
Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations
Course Assessment:
Sessional Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam
Reference Materials:
1. Data Structures and Algorithms in C++ by Michael T. Goodrich, Roberto Tamassia, and
David Mount (2nd Edition) : ISBN-13: 978-0470383278
2. Data Structures and Algorithms in C++ 4th Edition by Adam Drozdek : ISBN-13: 978-
1133608424
3. Data Structures and Algorithm Analysis in Java (3rd Edition) 3rd Edition by Mark A.
Weiss : ISBN-13: 978-0132576277
4. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
“Introduction to Algorithms”, 2nd Ed, MIT Press, 2001, ISBN 0-07-013151-1
5. Data Structures and Abstractions with Java (5th Edition) (What's New in Computer
Science) 5th Edition by Frank M. Carrano (Author), Timothy M. Henry (Author) : ISBN-
13: 978-0134831695
6. Data Structures & Algorithm Analysis in C++ 4th Edition by Mark A. Weiss : ISBN-
13: 978-0132847377