Skip to main content

YAM 322 - Advanced Algorithms

Faculty of Engineering and Natural Sciences · Software Engineering (English) · Undergraduate

ECTS: 5 T+P+L: 3+0+0 Departmental Elective
Coordinator: Dr. Öğr. Üyesi ARTRIM KJAMILJI

Course Objective

The main aim of this course is to design and analysis of algorithms, cover several advanced topics.

Course Content

The development of a sound theoretical understanding of advanced algorithms and practical problem-solving skills using them. Advanced algorithm topics are chosen from Trees, Graphs, Dynamic Programming, Linear Programming, Max Flow / Min Cut, Approximation Algorithms.

Course Learning Outcomes

  1. Develop a sound theoretical understanding of advanced algorithms and practical problem-solving skills using them.
  2. Develop a basic knowledge of a wide range of advanced algorithm design techniques including dynamic programming, linear programming, approximation algorithms, and Max Flow algorithms.
  3. Learn basic advanced algorithm analysis skills for analyzing the approximation ratio of approximation algorithms.
  4. Gain a good understanding of a wide range of advanced algorithmic problems, their relations, variants, and application to real-world problems.
  5. Use a suitable analysis method for any given algorithm.
  6. To be able prove correctness and running-time bounds.
  7. Design new algorithms for variations of problems studied in class.

Core Area Distribution

(46) Mathematics and Statistics%40 (48) Computing%30 (52) Engineering and Engineering Trades%30

Teaching Methods

ExpressionQuestion-AnswerDiscussionExercise and PracticeBrain StormingProblem Solving

Assessment & Evaluation

HomeworkTesting (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)14342
Out of Class Study Period14342
Midterm11616
Quiz000
Assignment21020
Practice000
Final12121

Course Schedule

WeekSubjectPreparation
1Introduction and motivation for the advanced algorithmsLecture Notes
2Asymptotic Notation and analysisLecture Notes
3Divide and Conquer Paradigm. RecurrencesLecture Notes
4Solving RecurrencesLecture Notes
5Comparison based sorting. Quicksort. Sorting in linear timeLecture Notes
6Binary search treesLecture Notes
7Red-Black treesLecture Notes
8Midterm ExamMidterm Exam
9Augmenting data structuresLecture Notes
10Dynamic programmingLecture Notes
11Greedy algorithmsLecture Notes
12Amortized AnalysisLecture Notes
13Graph algorithms. Network flowsLecture Notes
14Sorting NetworksLecture Notes
15NP-CompletenessLecture Notes
16Final ExamLecture Notes