BBZ202 Algorithm Design and Analysis

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

Information

Code BBZ202
Name Algorithm Design and Analysis
Term 2024-2025 Academic Year
Semester 4. Semester
Duration (T+A) 3-0 (T-A) (17 Week)
ECTS 6 ECTS
National Credit 3 National Credit
Teaching Language Türkçe
Level Belirsiz
Type Normal
Label FE Field Education Courses C Compulsory
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Öğr. Gör.Dr. HAVVA ESİN ÜNAL
Course Instructor Öğr. Gör.Dr. YOLDAŞ ERDOĞAN (A Group) (Ins. in Charge)


Course Goal / Objective

This course aims to teach basic algorithms for solving scientific and computational classical problems, to analyze algorithms from various aspects such as running time, memory usage, energy usage, to have knowledge about algorithm time complexity and to introduce mathematical methods and tools used in algorithm analysis.

Course Content

Introduction to algorithms, asymptotic notations, algorithm efficiency, best, worst and average time complexity analysis, recursive functions and solution methods, substitution method, sorting and searching algorithms, shortest path finding, parallel algorithms, decompose solve methods, reduce solve methods, swap solve methods, graph algorithms, DFS, BFS, Introduction to dynamic programming and greedy algorithms, complexity classes, P, NP, NP-Complete.

Course Precondition

None

Resources

• Introduction to the Design and Analysis of Algorithms, Anany V. Levitin, Pearson Higher Education, 2007. • Introduction to Algorithms, T.H. Cormen, C.H. Leiserson, R.L. Rivest, C. Stein, McGrawHill, 2007.

Notes



Course Learning Outcomes

Order Course Learning Outcomes
LO01 Defining and modeling data structures using algorithms;
LO02 Using mathematical models and creating algorithms to solve equations;
LO03 Ability to analyze and critically evaluate data-based materials;
LO04 Will have the ability to foresee the effects of policy changes related to the field under research.


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. 4
PLO02 Bilgi - Kuramsal, Olgusal Learn essential computer topics such as software development, programming languages, and database management 4
PLO03 Bilgi - Kuramsal, Olgusal Understand advanced computer fields like data science, artificial intelligence, and machine learning. 3
PLO04 Bilgi - Kuramsal, Olgusal Acquire knowledge of topics like computer networks, cybersecurity, and database design. 2
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 3
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. 3
PLO09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Strengthen teamwork and communication skills. 2
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. 2
PLO12 Yetkinlikler - İletişim ve Sosyal Yetkinlik Enhance the ability to solve complex problems 2


Week Plan

Week Topic Preparation Methods
1 Introduction to algorithms, discrete mathematics, data structures, asymptotic notations, algorithm efficiency Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
2 Best, worst and average time complexity analyses Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Alıştırma ve Uygulama
3 Brute Force and Algorithms: Selection Sort, Bubble Sort Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
4 Domain Complexity Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
5 Divide and Conquer and its Algorithms: Recursive Algorithms, Merge Sort, Quick Sort Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
6 Decrease and Conquer and its Algorithms: Insertion Sort Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
7 Dynamic Programming - Divide and Conquer: Fibonacci Series, Binomial Constants Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
8 Mid-Term Exam Preparation to exam Ölçme Yöntemleri:
Yazılı Sınav
9 Dynamic Programming: Longest Substring Problem, Matrix Multiplication Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
10 Dynamic Programming: Shortest Path Problem, Knapsack Problem Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
11 Greedy Approach: Knapsack Problem, Shortest Path Problem Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
12 Greedy Approach: Prim, Kruskal Algorithms Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
13 Transform and Conquer: Mod Value Calculation Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
14 Transform and Conquer: Binary Trees, Balance and AVL Trees, Heap Sort Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
15 Theory of Computation: Towers of Hanoi, Complexity and Computability Theory, NP-Complete, P, NP-Hard Problems Reading the related chapter in lecture note Öğretim Yöntemleri:
Anlatım, Alıştırma ve Uygulama
16 Term Exams Preparation to exam Ölçme Yöntemleri:
Yazılı Sınav
17 Term Exams Preparation to exam Ö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 3 42
Out of Class Study (Preliminary Work, Practice) 14 5 70
Assesment Related Works
Homeworks, Projects, Others 0 0 0
Mid-term Exams (Written, Oral, etc.) 1 14 14
Final Exam 1 24 24
Total Workload (Hour) 150
Total Workload / 25 (h) 6,00
ECTS 6 ECTS

Update Time: 21.02.2025 06:59