BMT-210 DATA STRUCTURE AND ALGORITHMS
Assoc. Prof. Dr. Adem Tekerek
Course Overview
Data structures and algorithms course is a fundamental topic in computer science and focus on improving the data processing and problem-solving abilities of computers. Data structures define the ways data elements are organized, stored, and accessed. Algorithms, on the other hand, refer to a systematic sequence of steps to solve a certain problem or perform a certain task. This course aims to teach students to understand different data structures and to perform operations on data structures using various algorithms. These fundamental issues are critical to efficiency and performance in the software development process. Data Structure nad Algorithms course aims to introduce abstract concepts for data organization and manipulation, to show how these concepts are useful in problem solving and how abstractions can be made concrete using a programming language.
Course Time and Place
Gazi University, Technology Faculty, Computer Engineering Department
1. Schedule Time :Tuesday 08:30 - 13:20 - Course Place : Computer Laboratory 6
2. Schedule Time :Wednesday 08:30 - 13:20 - Course Place : Computer Laboratory 6
Teknology Faculty Dursun Önkuzu Building
Course Reseach Asistances
Res. Asist. Duygu Büşra Çelik (busraduygucelik@gazi.edu.tr) Laboratory Time: 11:30 - 13:20 - Computer Laboratory 6
Res. Asist. Oğuzhan Sezer (oguzhansezer@gazi.edu.tr) Laboratory Time: 11:30 - 13:20 - Computer Laboratory 5
Course Syllabus
Introduction to Data Structures and Algorithms [PDF][Code][Lab]
Algorithm Analysis and Complexity Theory [PDF][Code][Lab]
Arrays [PDF][Code][Lab]
Stacks [PDF][Code][Lab]
Queue [PDF][Code][Lab]
Trees [PDF][Code][Lab]
Midterm Exam
Binary Trees and Recursive Functions [PDF][Code][Lab]
Heap Data Structure [PDF][Code][Lab]
Hash Structure [PDF][Code][Lab]
Searching & Sorting Algortihms [PDF][Code][Lab]
Graph Structure [PDF][Code][Lab]
Graph Algorithms: Shortest Path, Critical Path Problem [PDF][Code][Lab]
Graph Algorithms: Minimum Spanning Tree, Maximum Flow [PDF][Code][Lab]
Graph Algorithms : Huffman Tree [PDF][Code][Lab]
Quizes
Quiz 1
Quiz 2
Reading Materials
Course Note Mark Allen Weiss, Data Structures and Algorithm Analysis in C++ (3rd ed.), Addison Wesley, 2006.
M. T. Goodrich, R. Tamassia and D. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, 2004 Mark Allen Weiss, Data Structures and Problem Solving Using C++, 2nd ed., Addison Wesley 2000
Sartaj Sahni, Data Structures, Algorithms, and Applications in C++, McGraw Hill, 1998.
H.M. Deitel, P.J. Deitel, How To Program C++ and Java by Prentice-Hall, 2001.
The C++ Tutorial: http://www.learncpp.com/
Setup DEV C++
You can download the https://www.jetbrains.com/clion/
You can download the DEV C++ from the https://sourceforge.net/projects/orwelldevcpp/ link install on your computer.
Course Evaluation and Grading:
Midterm Exam (30%)
Final Exam (40%)
Laboratory (30%)
Assoc. Prof. Dr. Adem Tekerek
He is a full-time associate professor at Technology Faculty in Computer Engineering Department with expertise on pedagogy, artificial intelligence, software development, information security, environmental protection trainings, sustainability, energy savings, training the trainers. He has been working as academic person since 2009. He graduated from Technical Education Faculty, Computer Systems Education Department in 2007. He graduated from MSc program of Informatics Institute in 2010. His master thesis is about Institutional Content Management Systems. He graduated from PhD program of Informatics Institute in 2016. His PhD thesis is about Implementation of a real time web-based intrusion prevention aimed web application firewall algorithms. He published papers on about 45 computer sciences. His research area is artificial intelligence, machine learning, deep learning, data mining and their applications especially on information security. He took part in the development of many software and information system infrastructure projects in the Information Technologies, where he worked until 2020. In 2018, he did postdoctoral research for 3 months at Hacettepe University, Department of Information Security. After 2020, he started working as a faculty member at Gazi University, Faculty of Technology, Department of Computer Engineering. He has been giving undergraduate and graduate courses, conducting master's and doctorate thesis and a great number of papers, research projects in computer science area. He works as a field editor in many international journals. He serves as an organizing committee member and scientific committee member in many international conferences. He has finished and has been working on many EU funded projects. He has coordinated many international projects and international conferences. He is experienced in developing real-time artificial intelligence applications, developing rich educational content, developing education and training platforms, and developing information systems infrastructures.