BAHIR DAR INSTITUTE OF TECHNOLOGY
_computing__ FACULTY Programming CHAIR
Data structure & Algorithms COURSE GUIDE BOOK
1. General Information
Course Title Data structure & Algorithms
Course Code Instructors
Pre requisite C++ Name Addisu Z.
Course type Major Office no Agri. 98
CP/ [Link] Email ethioadz@[Link]
Contact Lecture Tutorial Lab H. Study Consultation hr Thursday 3-5 AM
hours 2 - 3 Lab Instructors /Assistants
Program/Department Year Section Name
Target Group
IT BED 3rd Office no
2. 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 … )
3. Course objective/learning out come
At the end of this course the students will able to
To have a good understanding of algorithm analysis techniques, computational and asymptotic complexity, Big-O, Ω, Θ, and
little-o notations.
To be able to write complexity functions for simple pieces of C++ code, and state their asymptotic complexity.
To be able to describe the different types of linked list, and be able to implement them in C++.
To be able to describe the different types of stacks and queues, and be able to implement them in C++.
To be able to describe the different types of binary trees, and be able to implement them in C++.
To be able to describe the nature and efficiency of different types of sorting algorithms.
To be able to describe what is meant by hashing, hashing functions, and collision resolution in hashing.
4. Course outline with teaching methodology, week and reference
Course Content Teaching Time (in References
Methodology Week)
Chapter1:Introduction to Data Lecture 1-4 PAGE 1-5 (TEXT BOOK 1)
Structures Laboratory
Introduction
Abstract Data Type and
Abstraction
Chapter 2 – Algorithm and Algorithm Lecture 5-8 PAGE 5-40 (TEXT BOOK 1)
Analysis Laboratory
Properties of Algorithm
DS&ALG Page 1
Analysis of Algorithm
Chapter 3: Simple Sorting and Searching Lecture 10-13 PAGE 69-89 (TEXT BOOK 1)
Algorithms Laboratory
Sorting
o Selection Sort PAGE 127-172 (TEXT BOOK 1)
o Bubble Sort
o Insertion Sort
o Pointer Sort
Searching
o Linear/Sequential Searching
Binary Searching
MID EXAM
Chapter 4: Linked Lists Lecture 14-16 PAGE 69-89 (TEXT BOOK 1)
4.1 Review on Pointer, Dynamic Memory Laboratory
allocation and De-allocation
4.2 Singly Linked Lists
4.3 Doubly Linked Lists
4.4 Implementation of Linked Lists
Chapter 5: Stacks and Queues Lecture 16 PAGE 69-89 (TEXT BOOK 1)
Basic Stack Operations Laboratory
Basic Queue Operations
Implementation of Stacks and
queues
Chapter 6: Tree Structures Lecture PAGE 76-89 (TEXT BOOK 1)
Binary Trees and Binary Search Laboratory
Trees
Basic Tree Operations
Traversing in a Binary Tree
General Trees and Their
Implementations
Chapter 7: Graphs Lecture PAGE 112-126 (TEXT BOOK 1)
Introduction Laboratory
Describing graphs
Directed Graphs
Traversing a graph
Final
5. Laboratory /Work shop/ session content and required material
Time (in Laboratory Topic Material or tools
week)
Week 1,2 Refresh C++ Any C++ compiler and lab manual
Week 3-6 Sorting Algorithms Any C++ compiler and lab manual
Week 7-9 Searching Algorithms Any C++ compiler and lab manual
Week 10,11 Stacks and Queues Any C++ compiler and lab manual
Week 12-15 Linked Lists Any C++ compiler and lab manual
Week 16 Tree Structures Any C++ compiler and lab manual
DS&ALG Page 2
6. Assessment type, weight and duration(Minimum 6including Mid-exam and Final-exam)
Assessment type Mark allotted Duration
Lab assessment 15
Assignment 15
Exam 20%
Final Exam 50%
Total 100%
7. Course Policy
All students are expected to abide by the code of conduct of students (article 166 and 166.1.1, of the Senate
Legislation of Bahir Dar University May 20, 2005) throughout this course. Academic dishonesty, including
cheating, fabrication, and plagiarism will not be tolerated and will be reported to concerned bodies for
action.
Class attendance and participation:You are expected to attend class regularly. I will take attendance on
regular days during the semester to ensure that students are coming to class, and if you miss class
repeatedly, your grade will be affected as it has value. If you miss more than 85% lecture and tutorial and
100% for laboratory class attendance you will not sit for final exam.
8. Text and reference book
A. Text Book (you can get the soft copies of the books from the instructor )
1. E. Horowitz, [Link] and Dinesh Mehta. Fundamentals of data structures in C++, W.H Freeman
2. Data Structures and Algorithms in C++ , Michael T. ,Roberto Tamassia and David M. Mount
B. Reference Materials
Power point and full document handout by the Instructor
9. Authorization
a. Prepared instructor’s/s’ Name: Addisu Z. Signature: ________Date: _____________
b. Checked course chair’s Name: _________________Signature: _______ Date: _________
c. Verified chair holder’s Name: _________________ Signature: _________ Date: _________
DS&ALG Page 3