INFORMATION TECHNOLOGIES (ENGLISH, NON-THESIS) | |||||
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 : | Assist. 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) | Uses basic Software Engineering knowledge and competencies. | |
2) | Applies the software development ability that is necessary for software engineering applications. | |
3) | Uses data structures and applies information about algorithm development. | |
4) | Develops system programs on operating systems. | |
5) | Defines computer organization, design and architectures. | |
6) | Creates the structure of computer networks and network security. | |
7) | Uses business intelligence, data mining and data analysis tools, applies techniques about them. | |
8) | Develops database applications and WEB based programs. | |
9) | Defines, analyzes, designs and manages information technologies projects. | |
10) | Uses and develops technology-based environments and tools in education. | |
11) | Detects, identifies and solves information technology needs of the business environment. | |
12) | Uses the capabilities of information technologies within the rules of professional responsibility and ethics. |