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 |