BBZ203 Data Structures

6 ECTS - 3-1 Duration (T+A)- 3. Semester- 3 National Credit

Information

Code BBZ203
Name Data Structures
Term 2024-2025 Academic Year
Semester 3. Semester
Duration (T+A) 3-1 (T-A) (17 Week)
ECTS 6 ECTS
National Credit 3 National Credit
Teaching Language Türkçe
Level Belirsiz
Type Normal
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Öğr. Gör.Dr. YOLDAŞ ERDOĞAN
Course Instructor
1


Course Goal / Objective

The aim of this course is to teach students the concept of Data Structures, which forms the basis of design and analysis in computer science. This course introduces some data structures and algorithms that may be encountered in practice. In the course, algorithm efficiency is emphasized by analyzing the running times of algorithms programmatically. For applications and programming, one of the programming languages taught in department courses is used.

Course Content

Algorithm analysis, linear data structures, trees, hashing, priority queues, sorting, graph algorithms and listings.

Course Precondition

Being able to use a programming language with basic computer and algorithm knowledge.

Resources

It will be announced in class.

Notes

It will be announced in class.


Course Learning Outcomes

Order Course Learning Outcomes
LO01 Will be able to analyze algorithms by having knowledge about their working techniques.
LO02 In solving search problems that involve data addition and deletion, the student will be able to choose the more advantageous one among array and linked list structures and hashing techniques.
LO03 Will be able to develop computer programs that will operate at a cost of O (log n) per search, insertion and deletion operations by using appropriate tree structures.
LO04 For efficient applications that need sorting, one will be able to choose the right sorting algorithm.
LO05 Will be able to describe the usage areas of various data structures.
LO06 Will be able to explain the operations required to maintain common data structures.
LO07 Will be able to design solutions to simple computational problems using graph algorithms.


Relation with Program Learning Outcome

Order Type Program Learning Outcomes Level
PLO01 Bilgi - Kuramsal, Olgusal Gain comprehensive knowledge of fundamental concepts, algorithms, and data structures in Computer Science. 2
PLO02 Bilgi - Kuramsal, Olgusal Learn essential computer topics such as software development, programming languages, and database management 2
PLO03 Bilgi - Kuramsal, Olgusal Understand advanced computer fields like data science, artificial intelligence, and machine learning. 2
PLO04 Bilgi - Kuramsal, Olgusal Acquire knowledge of topics like computer networks, cybersecurity, and database design.
PLO05 Beceriler - Bilişsel, Uygulamalı Develop skills in designing, implementing, and analyzing algorithms 4
PLO06 Beceriler - Bilişsel, Uygulamalı Gain proficiency in using various programming languages effectively
PLO07 Beceriler - Bilişsel, Uygulamalı Learn skills in data analysis, database management, and processing large datasets.
PLO08 Beceriler - Bilişsel, Uygulamalı Acquire practical experience through working on software development projects.
PLO09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Strengthen teamwork and communication skills.
PLO10 Yetkinlikler - Alana Özgü Yetkinlik Foster a mindset open to technological innovations.
PLO11 Yetkinlikler - Öğrenme Yetkinliği Encourage the capacity for continuous learning and self-improvement.
PLO12 Yetkinlikler - İletişim ve Sosyal Yetkinlik Enhance the ability to solve complex problems 2


Week Plan

Week Topic Preparation Methods
1 Mathematical Repetition and Recursion Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
2 Algorithm Analysis (basic algorithm concepts, modeling runtimes, Big-O notation, calculation of runtimes) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
3 Algorithm Analysis and Linear Data Structures (Linked Lists) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
4 Linear Data Structures (Linked Lists, Stacks, Stack Implementations) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
5 Linear Data Structures (Queues) and Trees (Binary Trees) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
6 Trees (Binary Search Trees) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
7 Trees (AVL Trees) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
8 Mid-Term Exam Ölçme Yöntemleri:
Yazılı Sınav
9 Mixed Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
10 Priority Queues: Binary Stacks Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
11 Sorting (Insert Sort, Shell Sort, Heap Sort) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
12 Sort (Merge sort, Quick Sort) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
13 Graph Algorithms (Definitions, Representations, Topological Sorting) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
14 Graph Algorithms (Shortest Path Algorithms) Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
15 Lesson review Reading lecture notes and doing exercises Öğretim Yöntemleri:
Anlatım
16 Term Exams Ölçme Yöntemleri:
Yazılı Sınav
17 Term Exams Ölçme Yöntemleri:
Yazılı Sınav


Student Workload - ECTS

Works Number Time (Hour) Workload (Hour)
Course Related Works
Class Time (Exam weeks are excluded) 14 2 28
Out of Class Study (Preliminary Work, Practice) 14 4 56
Assesment Related Works
Homeworks, Projects, Others 6 10 60
Mid-term Exams (Written, Oral, etc.) 1 3 3
Final Exam 1 3 3
Total Workload (Hour) 150
Total Workload / 25 (h) 6,00
ECTS 6 ECTS

Update Time: 13.05.2024 02:00