Credit Hours: [341 Prerequisites: | Programming Fundamentals
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to: Domain | BT Level’
1. Implement various data structures and their algorithms, and | ¢, 23
apply them in implementing simple applications. -
2. Analyze simple algorithms and determine their |, 45
complexities. i
3. Apply the knowledge of data structures to other application | 3
domains. :
Design new daia structures and algorithms to solve] ‘
problems,
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A=
Affective domain
‘Abstract data types, complexity analysis, Big Oh notation, Stacks (linked lists and array
implementations), Recursion and analyzing recursive algorithms, divide and conquer
algorithms, Sorting algorithms (selection, insertion, merge, quick, bubble, heap, shell,
radix, bucket), queue, dequeuer, priority queues (linked and array implementations of
queues), linked list & its various types, sorted linked list, searching an unsorted array,
binary search for sorted arrays, hashing and indexing, open addressing and chaining,
trees and tree traversals, binary search trees, heaps, M-way tress, balanced trees, graphs,
breadth-first and depth-first traversal, topological order, shortest path, adjacency matrix
and adjacency list implementations, memory management and garbage collection.
‘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 Adam Drozdek
2. Data Structures and Algorithm Analysis in Java by Mark A. Weiss
3. Data Structures and Abstractions with Java by Frank M. Carrano & Timothy M.
Henry
4. Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss
5. Java Software Structures: Designing and Using Data Structures by John Lewis and
Joseph Chase
86