Kurdistan Region-Iraq
Catholic university of Erbil
Term: first term COURSE CODE.
Teacher: Asst.Prof.Dr.Raghad Zuhair COURSE TITLE: Data Structure II
Mobile: +9647504189772 CREDIT:
E-mail:
[email protected]::
[email protected]Teacher's academic profile:
was born in Baghdad 1975 .He Received a BSc in Electronic and Communication engineering from college of
Engineering Baghdad university Department of Electronic and Communication Eng. in 1998,MSc in Electronic and
Communication Engineering form department of Electrical engineering Al-Mustansriyha university –Baghdad in 2001
,then he received a PhD degree in communication Engineering from Baghdad university of Technology Department of
Electronics and Electrical engineering in 2005 .He is currently a Assistance Professor in Department of IT-catholic
university in Erbil; His Fields of interest are Network Coding Medical Imaging Swarms, Wireless. He is a supervisor of
many MSc thesis and PhD thesis he was also a member of examination committee of many MSc and PhD theses.
Office Hours: Wednesday 12:5 to 2:30
Course Description:
This course introduces the fundamentals of structuring and manipulating data: sorting, searching,
recursion, lists, stacks, queues, trees, graphs, tables. Introduction to the analysis of algorithms.
Advancement in C++ skills and techniques.
Course Objectives
Understand algorithms, time complexity and space calculating Understand the sorting and searching
fundamentals. Describe and /or define the Abstract Data Types; including lists, stacks, queues, trees,
hash tables and graph. Understand, explain, demonstrate, and evaluate alternate implementations of
examples of the methods associated with Abstract Data Types. Implement and test Abstract Data Types
in generic programs using C++.
Materials
Evaluation Profile
Exam I 25 %
Page 1 of 9
Exam II 25 %
Assignment 10 %
Final 40 %
100%
Exam Schedule Covers Chapters Exam date
Exam I 1-5
Exam II 5-10
Final Exam 12
Assignments
Missed Exams
No exam will be given after the scheduled date/time without appropriate medical
documents. Missed exams will be graded (0) unless prior arrangements are made with the
teacher. Overall passing grades must be attained in all exams to pass the course.
Professionalism:
You should be able to demonstrate a professional attitude and behavior towards your
work, your fellow-students and your teacher: this includes reliability, respect for and
cooperation with colleagues, willingness to work calmly and courteously under difficult
conditions, determination to achieve first-class work while meeting deadlines, respect for
equipment and systems, and constructive response to criticism.
Cheating and Plagiarism:
All forms of cheating, including plagiarism, are a serious offense. The teacher has the
right to assign a grade of "0" on the examination or assignment, or, at the teacher's discretion.
Attendance:
Attendance is mandatory. Students are responsible to ensure that all work, including
assignments, is completed. If, due to some unforeseen event, classes are missed, students must
ensure that they keep current with their work (including assignments).
Student learning outcome:
Students who successfully complete this course will have demonstrated:
• Knowledge and understanding. Have a clear understanding of the Data Abstraction term. Have a good
knowledge of what comprises a correct program in C++. Have knowledge of design guidelines. •
Cognitive skills (thinking and analysis). Be able to design, code, and test C++ programs, which meet
requirements expressed in English. Have knowledge of design guidelines. Be able to write algorithms for
solving problems. Communication skills (personal and academic). Be able to understand the
documentation for, and make use of, the C++ library. Be able to write a C++ program. Be able to design,
code, and test C++ programs, which meet requirements expressed in English. Practical and subject
Page 2 of 9
specific skills (Transferable Skills). write computer programs to solve practical engineering problems
Design efficient computer programs to solve practical engineering problems
Course Reading List and References:
Module references Books
C programming for engineering& Computer Science H.H. Tan.McGraw- hill.1999
C++ :An Introduction to Data Structures by Larry R. Nyhoff. Hardcover. 1999
Algorithms and Data Structures in C++ . By Leendert Ammeraal. 1996.
C++ How to program .By H.M.Deitel & P.J.Deitel. 2 ed , Prentice- hill, 1998.
Data Structures and Algorithms in C++ ,1 ST edition , by Michael T. Godrich, Roberto Tamassia, David M.
Mount Michael T. Goodrich Wiley , 2002.
Course Content
Before each class you are expected to read the chapters that are going to be discussed that day.
Date Topic Details LAB
Week 1 Singly linked list LAB1
Week 2 Doubly linked list LAB2
Week 3 Circular linked list LAB3
Week 4 Priority Queue Implementation LAB4
using Array
Week 5 Queue Implementation using LAB5
Stack
Week 6 Circular Queue LAB6
Week7 Doubly linked list LAB7
Week 8 Circular linked list LAB8
Week 9 Priority Queue Implementation LAB9
using Array
Week 10 Queue Implementation using LAB10
Stack
Week 11 Circular Queue LAB11
Page 3 of 9
Week 12 LAB12
Selection Sort
Merge Sort
Quick Sort
Insertion Sort
Week 13 Binary Tree LAB13
Week 14 Complete Binary Tree LAB14
Complete Binary Tree
level and height of the tree
Skewed Binary Tree
Extended Binary Tree
AVL Tree
Week 15 Graph in Data Structure LAB15
Week 16 Representation of Graphs LAB16
Week 17
Final Exam
FINAL EXAMS
Page 4 of 9
Page 5 of 9
Data Structure Syllabus
Data Structure Introduction
About DSA
What is Data Structure
What is Algorithm
Various Data structures
Various Data structures operations
Array
Array Introduction in Data Structure
Two-dimension Array in Data Structure
Multi-dimensional Array
Linked List
Linked List Introduction
Array and Linked List
Singly linked list
Doubly linked list
Circular linked list
Stack Data Structure
Stack Data Structure Introduction
Stack operations and Implementation
Stack implementation using Linked List
Page 6 of 9
Polish Notation
Postfix Evaluation Algorithm
Infix to Postfix Conversion
Infix to Prefix Conversion
Queue Data Structure
Queue Introduction
Queue Implementation using Structure
Queue Implementation using Array
Queue Implementation using Linked List
Priority Queue Implementation using Array
Queue Implementation using Stack
Circular Queue
Page 7 of 9
Sorting
Bubble Sort
Selection Sort
Merge Sort
Quick Sort
Insertion Sort
Searching
Linear Search
Binary Search
Page 8 of 9
Tree
Tree Introduction
Types of tree
Binary Tree
Complete Binary Tree
level and height of the tree
Skewed Binary Tree
Extended Binary Tree
AVL Tree
Graph
Graph in Data Structure
Representation of Graphs
Page 9 of 9