This course will provide students the fundamentals of the data structures. Beside the theoretical knowledge on the basic data structures, the students will gain practical experience by designing/analyzing/implementing them and solving some computational problems through the use of them. Programming will be based on C++.
Prerequisite(s)
CSE 2002 Programming II
Corequisite(s)
Special Requisite(s)
Knowledge & experience in an OOP language. Knowledge of fundamental OO concepts such as class, instance, interface, polymorphism, encapsulation, and inheritance
Assis. Prof. Dr. Levent CUHACI : Wednesday, 11:00-12:00
Teaching Methods and Techniques
28 hours of lecture including exams.
28 hours of lab including quizzes, demonstrations, and discussion.
Principle Sources
D. S. Malik (2013). C++ Programming: Program Design Including Data Structures, International Edition, 6th Edition (International Edition), Cengage Learning.
Other Sources
Adam DROZDEK (2013). Data Structures and Algorithms in C++,4th edition (International Edition), Cengage Learning.
Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, Fourth Edition. ISBN-13: 9780132847377
Course Schedules
Week
Contents
Learning Methods
1. Week
Complexity Analysis
lecture and lab
2. Week
Linked Lists
lecture and lab
3. Week
Doubly Circular Linked List
lecture and lab
4. Week
Stack & Queue
lecture and lab
5. Week
Searching and Sorting Algorithms I
lecture and lab
6. Week
Searching and Sorting Algorithms II
lecture and lab
7. Week
Binary Tree
lecture and lab
8. Week
Feast of Ramadan
-
9. Week
Midterm
classroom exam
10. Week
STL Library
lecture and lab
11. Week
Priority Queue (Heap)
lecture and lab
12. Week
Hashing
lecture and lab
13. Week
Graphs I (Graph Representation & Traversals)
lecture and lab
14. Week
Graphs II (Shortest Path) & Spanning Trees
lecture and lab
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
35
Lab Exam
1
15
Final Exam
1
50
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
I can use priority queue in my programs, and explain in which way it differs from the queue.
LO-2
I can explain concepts of asymptotic and computational compexity.
LO-3
I can design a program using linked lists.
LO-4
I can explain the difference between stack and queue data structures.
LO-5
Considering the big-oh notation of sorting algorithms, I can explain the most efficient one.
LO-6
I can explain the traversal methods of binary trees.
LO-7
I can use graph shortest path algorithms in my programs.