INFORMATION TECHNOLOGIES (ENGLISH, NONTHESIS) | |||||
Master | TR-NQF-HE: Level 7 | QF-EHEA: Second Cycle | EQF-LLL: Level 7 |
Course Code | Course Name | Semester | Theoretical | Practical | Credit | ECTS |
CMP6138 | Analysis of Algorithms | Fall | 3 | 0 | 3 | 6 |
This catalog is for information purposes. Course status is determined by the relevant department at the beginning of semester. |
Language of instruction: | English |
Type of course: | Departmental Elective |
Course Level: | |
Mode of Delivery: | Face to face |
Course Coordinator : | Assoc. Prof. TEVFİK AYTEKİN |
Course Lecturer(s): |
Prof. Dr. NAFİZ ARICA |
Recommended Optional Program Components: | None |
Course Objectives: | Rigorous analysis of the time and space requirements of important algorithms, including worst case, average case, and amortized analysis will be done. Techniques include order-notation, recurrence relations, etc. Analysis of the key data structures: trees, hash tables, balanced tree schemes, priority queues, Fibonacci and binomial heaps will be presented. Algorithmic paradigms such as divide and conquer, dynamic programming will be introduced. Selected advanced algorithms will be explored. |
The students who have succeeded in this course; I. Apply basic algorithm analysis methodology II. Implement and analyze sorting algorithms III. Implement and analyze recurrent algorithms and tree structures IV. Model problems with heaps and queues and analyze runtime characteristics V. Model problems with graphs VI. Optimize problems with dynamic programming VII. Independently choose and investigate new algorithms when needed. |
Complexity of functions, sorting algorithms, recurrences, trees, heaps and priority queues, graph algorithms, dynamic programming, special techniques. |
Week | Subject | Related Preparation |
1) | Introduction | |
2) | Growth of functions | |
3) | Basic Sorting Algorithms | |
4) | Advanced Sorting Algorithms | |
5) | Recurrences | |
6) | Trees 1 | |
7) | Trees 2 | |
8) | Midterm | |
9) | Heaps and Priority Queues | |
10) | Graph Algorithms 1 | |
11) | Graph Algorithms 2 | |
12) | Dynamic Programming | |
13) | Special Techniques | |
14) | Project presentations |
Course Notes / Textbooks: | "Introduction to Algorithms" Thomas H. Cormen, The MIT Press |
References: |
Semester Requirements | Number of Activities | Level of Contribution |
Project | 1 | % 35 |
Midterms | 1 | % 25 |
Final | 1 | % 40 |
Total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 25 | |
PERCENTAGE OF FINAL WORK | % 75 | |
Total | % 100 |
Activities | Number of Activities | Duration (Hours) | Workload |
Course Hours | 14 | 3 | 42 |
Project | 1 | 72 | 72 |
Midterms | 1 | 40 | 40 |
Final | 1 | 40 | 40 |
Total Workload | 194 |
No Effect | 1 Lowest | 2 Low | 3 Average | 4 High | 5 Highest |
Program Outcomes | Level of Contribution | |
1) | Follows the scientific literature in the field of Information Technology, critically analyzes it, and effectively utilizes it in solving complex IT problems. | 3 |
2) | Designs, plans, implements, and manages original projects related to the field of Information Technology. | 3 |
3) | Conducts independent studies in the field of Information Technology, assumes scientific responsibility, and evaluates the findings with a critical perspective. | 3 |
4) | Presents the outcomes of research and projects effectively in written, oral, and visual forms, in accordance with academic and professional standards. | 3 |
5) | Conducts independent research on specialized topics within the field, develops innovative and original ideas, and translates this knowledge into practice and technology. | 3 |
6) | Effectively applies advanced theoretical knowledge and practical skills specific to the field of Information Technology; analyzes and develops current software, hardware, and system solutions. | 3 |
7) | Acts in accordance with professional, scientific, and ethical principles; takes responsibility by considering the societal, environmental, and ethical impacts of IT applications. | 3 |