CMP6138 Analysis of AlgorithmsBahçeşehir UniversityDegree Programs INFORMATION TECHNOLOGIES (TURKISH, NONTHESIS)General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Master TR-NQF-HE: Level 7 QF-EHEA: Second Cycle EQF-LLL: Level 7

Course Introduction and Application Information

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.

Basic information

Language of instruction: English
Type of course: Departmental Elective
Course Level:
Mode of Delivery: Face to face
Course Coordinator : Dr. Öğr. Üyesi 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.

Learning Outcomes

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.

Course Content

Complexity of functions, sorting algorithms, recurrences, trees, heaps and priority queues, graph algorithms, dynamic programming, special techniques.

Weekly Detailed Course Contents

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

Evaluation System

Semester Requirements Number of Activities Level of Contribution
Project 1 % 35
Midterms 1 % 25
Final 1 % 40
Total % 100
Total % 100

ECTS / Workload Table

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

Contribution of Learning Outcomes to Programme Outcomes

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
Program Outcomes Level of Contribution