Addis Ababa University
College of Natural Sciences
Department of Computer Science
Addis Ababa, Ethiopia
2023/24-Semester I
COURSE OUTLINE
Course Title: Data Structures and Algorithm Analysis
Course Code: Cosc3111
Credit Hours: 3
ECTS: 5
Prerequisite(s): CoSc2111
Course objective:
Upon completion of the course students should be able to:
On completion of this course students should be able to:
To introduce the most common data structures like stack, queue, linked list
To give alternate methods of data organization and representation
To enable students use the concepts related to Data Structures and Algorithms to solve real
world problems
To practice Recursion, Sorting, and searching on the different data structures
To implement the data structures with a chosen programming language
Course Description:
This course focuses on the study of data structures, algorithms and program efficiency. Topics include:
analysis of time and space requirements of algorithms; program efficiency improving techniques, abstract
data types such as linked lists, stacks, queues, trees (traversal, implementations); simple searching
algorithms (linear search, binary search, ... ), simple sorting algorithms (bubble sort, insertion sort,
selection sort, ... ), advanced sorting algorithms (merge sort, quick sort, heap sort ...)
Course content:
1. Introduction to Data Structures
1.1. Introduction
1.2. Abstract Data Type and Abstraction
2. Algorithm and Algorithm analysis
2.1. Analysis
2.2. Properties of Algorithm
2.3. Analysis of Algorithm
3. Simple Sorting and Searching Algorithms
3.1. Sorting
3.1.1. Selection Sort
3.1.2.Bubble Sort
3.1.3.Insertion Sort
3.1.4.Pointer Sort
3.2. Searching
3.2.1.Linear/Sequential
Searching
Addis Ababa University
College of Natural Sciences
Department of Computer Science
Addis Ababa, Ethiopia
2023/24-Semester I
COURSE OUTLINE
3.3. 3.2.2.Binary Searching
4. Linked Lists
4.1. Review on Pointer, Dynamic Memory allocation and De-allocation
4.2. Singly Linked Lists
4.3. Doubly Linked Lists
5. Stacks and Queues
5.1. Basic Stack Operations
5.2. Basic Queue Operations
5.3. Implementation of Stacks and queues
6. Tree Structures
6.1. Binary Trees and Binary Search Trees
6.2. Basic Tree Operations
6.3. Traversing in a Binary Tree
6.4. General Trees and Their Implementations
7. Graphs
7.1. Introduction
7.2. Describing graphs
7.3. Directed Graphs
7.4. Traversing a graph
8. Advanced Sorting and Searching
8.1. Sorting
8.1.1 Heap Sort
8.1.2.Quick Sort
8.1.3.Merge Sort
8.1.4.Shell Sort
8.2. Advanced Searching
8.2.1.Hashing
Teaching & Learning Methods: Lectures, Individual and group Assignments
Assessment/Evaluation & Grading System:
Continuous Assessment --------------------------60%
Final Exam -----------------------------------------40%
Text books & References:
Robert Lafore, “Data Structures and Algorithms in JAVA, 2nd Ed.”, Sams Publishing
Jean Paul Tremblay, Paul G. Soreson, “An Introduction to Data Structures with
Applications”, Mc. Graw Hill Computer Science Series
E. Horowitz, S.Sahni and Dinesh Mehta. Fundamentals of data structures in C++, W.H
Freeman and Company (1995)
Sanjay Pahuja, A practical approach to data structures and algorithms, New age
International publishers, 2008