Course Name: Data Structures and Algorithms
Course Code: CIR 203
Credit Units 3
Pre-requisite: CIR 104 Object Oriented Programming I
Purpose of the Course: This course unit is designed to focuses on implementation and
mathematical analysis of fundamental data structures and Algorithms. Covers storage allocation
and memory management techniques.
Expected Learning Outcomes
On completion of this module the students will be able to:
1. Describe the representation of numeric and character data.
2. Describe common applications for each data structure in the topic list.
3. Implement the user-defined data structures in a high-level language.
4. Write programs that use each of the following data structures: arrays, strings, linked lists,
stacks, queues, and hash tables.
Course Content
Week Topic
1 Introduction to Data structures: why do we study data structures and
algorithms
2 Complexity of algorithms: worst case, average case, and amortized
complexity;
3 Elementary data structures: Lists, stacks, queues, implementation,
garbage collection;
4 Algorithm analysis; Algorithm Design Paradigms; Greedy
algorithms, Dynamic programming, Divide-and-conquer;
4 Sorting: Advanced sorting methods and their analysis
Searching: Binary search, merge sort,
5 Binary search trees, AVL trees, Red-Black trees,
Splay trees, Skip-lists, B-Trees; Priority queues;
6 Graphs: Shortest path algorithms, minimal spanning tree algorithms,
depth-first and breadth –first search;
7 Dictionaries; Hash tables,
8 , lower bound on complexity, order statistics.
Mode of delivery
Lectures, directed reading, Group/class discussions, practical exercises and assignments
Instructional Material and/or Equipment
Audi visual equipment, Computers, writing boards, writing materials, projectors etc
Course Assessment Type Weighting (%)
Examination 70
Continuous Assessment 30
Total 100
Staff Performance
Lecturer evaluation forms completed by students
Core Reading Material for the course
1. M.T. Goodrich, R. Tamassia & D. Mount, Data structures & Algorithms in C++ 2nd ed.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein ,
Introduction to Algorithms
3. Baldwin and Scragg, Algorithms and Data Structures: The Science of Computing.
Charles River Media,2004.ISBN: 1-58450-250-9
4. Mark Allen Weiss, Data Structures and Algorithms.