BİL212

Data Structures

Faculty \ Department
School of Engineering \ Computer Engineering
Course Credit
ECTS Credit
Course Type
Instructional Language
4
8
Compulsory
Turkish
Prerequisites
BİL211
Programs that can take the course
Computer Engineering
Artificial Intelligence Engineering
Course Description
This course covers fundamental data structures, algorithms for manipulating and retrieving information from these data structures and techniques needed for analyzing their efficiency in terms of space and time.
Textbook and / or References
M. T. Goodrich, R. Tamassia, M. H. Goldwasser. Data Structures and Algorithms in Java. Wiley.
Course Objectives
The aim of this course is to teach the students fundamental data structures and algorithms to manipulate these data structures.
Course Outcomes
1. Knows the distinction between an Abstract Data Type (ADT) and its implementation. Specify tradeoffs involved with different implementations of an ADT in terms of time and space.
2. Knows the characteristics of the list, stack and queue data structures and uses them appropriately in applications.
3. Knows the characteristics of priority queues and uses them appropriately in applications.
4. Knows the characteristics of various tree data structures and uses them appropriately in applications.
5. Can implement, debug and test moderate size programs.
Tentative Course Plan
Week 1: Algorithm Analysis
Week 2: Linked lists
Week 3: Recursion
Week 4: Stacks and queues
Week 5: List ADT and iterators
Week 6: Trees, binary trees, tree traversal
Week 7: Priority queues, heaps
Week 8: Map ADT, hash tables
Week 9: Sorted Map ADT, binary search trees
Week 10: Balanced binary serach trees
Week 11: Balanced binary search trees
Week 12: Graphs
Tentative Assesment Methods
• Midterm 35 %
• Final 35 %
• Homeworks 20 %
• Labs 10 %
Program Outcome *
1 2 3 4 5 6 7 8 9 10 11
Course Outcome
1 C, D C
2 C, D C
3 C, D C
4 C, D C
5 C, D B A C