ICS 2105: DATA STRUCTURES AND ALGORITHMS; YEAR II SEM I:
JAN-APRIL 2025 SEMESTER; 2024/2025 ACADEMIC YEAR
BSC IT DEGREE PROGRAMME
COURSE SYLLABUS
1) Course purpose: This course is designed to teach learners fundamental and
advanced data structures and algorithms used in development of efficient software.
Learners will gain skills on different ways of structuring data and how it impact on
data manipulation and overall efficiency of a computer program.
2) Learning outcomes: Upon successful completion of this course, the student
should be able to demonstrate understanding of fundamental and advanced data
structures, their implementation and applications and the design and analysis of
algorithms.
3) Course description: Introduction to data structures and algorithms:
definitions and uses of data structures and algorithms, role of data structures and
algorithms programming, choice of data structures and algorithms. Elementary data
structures: list, queue, stack, tree, records, arrays; types of list: linear-linked list,
doubly linked list, circular linked list, circular doubly linked list; types of queue:
circular queue; types of trees: AVL tree, red black trees, b-trees; graphs; array based
and pointer-based implementation of data structures, hashing, heap, linear, binary
search algorithms; sorting algorithms; depth-first, breadth, hill-climbing, least-cost
search algorithms using either a structured programming language or an OOP
language such as C++, JAVA, C#
4) Course outline
a) Introduction: Definition of data structures and algorithms, Difference between
algorithm and program, Importance of data structures
b) Array and linked list: Definition, implementation and applications
c) Stack and queue: definition, implementation and applications
d) Infix, prefix and post-fix expressions; Expression trees; conversion of
expressions
e) Recursive algorithms and Searching and sorting algorithms
f) Hashing techniques
g) Tree and graph: Definition, applications and implementation; Types of trees:
binary tree, binary search trees, full binary tree, complete binary tree,
Degenerate tree, AVL tree, red black trees, b-trees, b+ trees, spanning tree,
heap; tree traversal algorithms (in-order, pre-order and post-order traversals ,
types of graph and graph traversal algorithms
h) Depth-first search and breadth first search algorithm
i) Introduction to asymptotic analysis of algorithms; asymptotic notations
1
Note: I have sent the following textbook in your class email account “A practical
Introduction to Data structures and Algorithm Analysis; Third Edition (C++ Version)
by Clifford A. Shaffer”. Please read the following sections/topics
Topic/Section Page number
The need for data structures 4
Cost and benefits 6
ADT and data structures 8
Problems, algorithm and program 17
Algorithm analysis-introduction 57
Best case, worst case and average 63
List 10
Stack 127
Queue 135
Binary trees 159
Internal sorting 243
Searching 327
Graphs 401