2021-2022 Fall Semester



Course Info











204 Data Structures (3+1)






Prof. Dr. Aybars UĞUR  (;



Course Place



Teams and EGE Ders Platforms & B4 Classroom


Course Time



Tuesday, 13:30-16:00 Teams [13:00-15:00; 15:15-17:15 in B4]





Res. Asst. Ammar KARCIOĞLU

Res. Asst. Ahmet GÜRBÜZ

Res. Asst. Beste KAYSI

Res. Asst. Sezercan TANIŞMAN















B7, Sinan YILMAZ Lab., EGE Lab.

Session 1 : Thursday, 14:00

Session 2 : Thursday, 15:00

Session 3 : Thursday, 16:00



Aims and Objectives


The objective of the course is to give detailed information about Data Structures concepts and to give ability to use suitable data structures efficiently for solving problems.


To introduce abstract concepts for data organization and manipulation, to show how these concepts are useful in problem solving and how the abstractions can be made concrete by using a programming language.



Learning Outcomes



1)   To recognize the basic concepts, structures and commands in an object oriented and new programming language. To define the solutions in an object-oriented programming language.

2)   To produce different, efficient and quick solutions to the problems.

3)   Organizing data in computer programs for different forms and structures. Designing data structures efficiently in software development. Writing efficient algorithms by choosing suitable data structures.

4)   To use data structures provided by the software development environments.

5)   To write computer programs independently, to prepare projects and to present as project reports in written form.

6)   To contribute the problem solutions in group studies.

7)   To use data structures concepts in state-of-the-art problems.






Algorithms, Programming, Discrete Mathematics






Stack, Queues, Lists, Recursion, Trees (Binary Trees, Balanced Trees, Heaps, Huffman Encoding Tree), Comparison of Algorithms, Sorting and Search, Graphs (Representation, Traversals, Shortest Path, Minimum Spanning Tree, …)






Lafore, R., "Data Structures & Algorithms in Java", 2nd Edition, SAMS Publishing, 2003, 776p.













Reference Books










In Turkish

C && Java ile Veri Yapılarına Giriş, Olcay Taner YILDIZ, Boğaziçi Üniversitesi Yayınevi, 2013.

Algoritma Geliştirme ve Veri Yapıları, Dr. Rıfat ÇÖLKESEN, Papatya Yayıncılık, 2011.


In English

Goodrich, M.T., Tamassia, R., "Data Structures and Algorithms in Java 6th Edition", Wiley, 2014.

Drozdek, A., “Data Structures and Algorithms in Java 4th Edition", Cengage Learning Asia, 2013.

Weiss, M.A., “Data Structures and Problem Solving Using Java (Fourth Edition)”, Addison-Wesley, 2010.



·       Her Yönüyle C# 7.0, Volkan Aktaş, 1. Baskı, Kodlab, 2017.

·       C# 4.0 Herkes İçin, Herbert Schildt, Alfa Yayınları, 2011.

·       Visual C# .NET 2.0, Nihat Demirli, Yüksel İnan, Palme Yayınevi, 2008.




·       Java ile Programlama ve Veri Yapıları, Bülent Çobanoğlu, Pusula Yayıncılık, 2008.

·       Java ve Yazılım Tasarımı (Altuğ B. Altıntaş):

·       Thinking in Java, 3rd Edition (Bruce Eckel) 


·       Other Related Books:







Project 1

% 10

Project 2

% 10

Midterm Exam

% 20


Project 3

% 20

Project 4

% 15

Final Exam

% 25