>
Course Unit Title Course Unit Code Type of Course Unit Level of Course Unit Year of Study Semester ECTS Credits
Algorithm Design and Analysis BLM591 Elective Master's degree 1 Fall 8

Name of Lecturer(s)

Prof. Dr. Nevcihan DURU
Prof. Dr. Ahmet SAYAR
Associate Prof. Dr. Alev MUTLU

Learning Outcomes of the Course Unit

1) Specify the principles of algorithm design
2) Identify the strategies and criteria for selecting the best alternative for representing data and data structures on computer programming applications
3) Implement some well-known algorithms
4) Analyze the performance of algorithms
5) Identify algorithm design strategies providing appropriate solutions for certain problems
6) Analyze the efficiency of different algorithms for the same problem and classify them according to their complexity
7) Present recent applications and trends/improvements in algorithm designs

Program Competencies-Learning Outcomes Relation

  Program Competencies
1 2 3 4 5 6 7 8 9 10 11
Learning Outcomes
1 No relation No relation Low Middle No relation Low No relation No relation Low No relation No relation
2 No relation No relation Low Middle No relation Low No relation Low Middle No relation No relation
3 No relation No relation No relation Middle No relation High No relation Low No relation No relation No relation
4 No relation No relation Middle Low No relation Middle No relation No relation Low No relation No relation
5 No relation No relation No relation No relation No relation No relation No relation No relation No relation No relation No relation
6 No relation No relation Low Low No relation Middle Low No relation No relation No relation No relation
7 No relation No relation No relation No relation No relation Middle Middle No relation Low No relation No relation

Mode of Delivery

Face to Face

Prerequisites and Co-Requisites

None

Recommended Optional Programme Components

Undergraduate level Data Structure course

Course Contents

This course equips candidates with in-depth knowledge on the design of an algorithm, problems coming from many areas of computer science and engineering to motivate our exploration of algorithm design and analysis techniques, the techniques include divide-and-conquer, dynamic programming, greedy, randomization, amortized analysis and reduction.

Weekly Schedule

1) Introduction to Algorithm design and Analysis
2) Data Structures: Stacks, Queues, Linked Lists
3) Data Structures: Trees, Binary Search Trees, Heaps, Graphs
4) Fundamentals of Algorithm Complexity Analysis
5) Divide and Conquer Method: Mergesort, Quicksort, Quickselect
6) Divide and Conquer Method 2
7) Greedy Method
8) Midterm Examination/Assessment
9) Dynamic Programming: Overall Technique
10) Dynamic Programming: Matrix Chain Problem, All-pairs Shortest Path
11) Applications of Search Algorithms
12) Applications of Sorting Algorithms
13) Graph Traversal Techniques: Tree Traversal and Applications
14) Introduction to the Theory of NP-completeness
15) Recent Applications and Trends in Algorithm Designs
16) Final Examination

Recommended or Required Reading

Planned Learning Activities and Teaching Methods

1) Lecture
2) Discussion
3) Demonstration
4) Group Study
5) Problem Solving


Assessment Methods and Criteria

Contribution of Semester Studies to Course Grade

50%

 

Number

Percentage

Semester Studies

Midterm Examination

1

60%

Project

1

40%

 

Contribution of Final Examination to Course Grade

50%

Total

100%

Language of Instruction

Turkish

Work Placement(s)

Not Required