Skip to main content

BIM 222 - Algorithm Analysis

Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate

ECTS: 6 T+P+L: 2+0+1 Compulsory
Coordinator: Dr. Öğr. Üyesi Cem TURAN
Prerequisites: BIM 227 - Data Structures

Course Objective

The aim of this course is to provide students with fundamental knowledge and skills in designing algorithms, evaluating their accuracy, and analyzing their efficiency. The course covers key topics such as time and memory complexity, asymptotic notation, search and sort algorithms, recursive algorithms, greedy algorithms, divide and conquer, dynamic programming, and graph algorithms, enabling students to select, compare, and evaluate algorithms suitable for different problems.

Course Content

The concept of algorithms and algorithm analysis, asymptotic representations (Big-O, Θ, Ω), time and space complexity analysis, examination of sorting algorithms and their complexities, search algorithms and best-mean-worst-case analyses, time complexity of binary tree-based algorithms, graph representations and graph-based algorithms (BFS, DFS, shortest path and minimum spanning tree algorithms), greedy algorithm approach and its applications.

Course Learning Outcomes

  1. It implements graph-based algorithms.
  2. It describes the greedy algorithm approach.
  3. It defines the concepts of algorithm and algorithm analysis.
  4. It calculates the time complexity of algorithms.
  5. It calculates the domain/space complexity of algorithms.
  6. It analyzes the time complexity of sorting algorithms.
  7. It calculates the best, average, and worst-case complexities of search algorithms.
  8. It calculates the best, average, and worst-case complexities of search algorithms.

Core Area Distribution

(46) Mathematics and Statistics%40 (48) Computing%60

Teaching Methods

ExpressionQuestion-AnswerPresentationGuided PracticeSelf studyProblem Solving

Assessment & Evaluation

Performance Assignment ( Lab / Workshop / Field Work / Seminar / Presentation / Completion Study / ThesisTesting (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)15345
Out of Class Study Period15460
Midterm122
Quiz000
Assignment248
Practice10220
Final122

Course Schedule

WeekSubjectPreparation
1Introduction to Algorithm AnalysisLecture notes
2Analysis of AlgorithmsLecture notes
3Algorithm Analysis (Resolving Recursive Relationships)Lecture notes
4Generative functions, methods of division and dominationlecture notes
5Sort and analyzelecture notes
6The smallest k number + dynamic programming methodlecture notes
7Dynamic programminglecture notes
8Midterm examMidterm exam
9Longest Common Subsequence (Dynamic programming)lecture notes
10Greedy Algorithmslecture notes
11Greedy Algorithmslecture notes
12Greedy Algorithms (Huffman Coding)lecture notes
13Backtracking Algorithms, Branch and Bound Algorithms, and basic definitions of graphicslecture notes
14Display and navigate graphs + Topological Sorting and Strongly Connected Componentslecture notes
15Finding Shortest Paths in Graph+ Find the shortest path between two vertices+ Finding tree spanning a minimumLectures notes
16Final ExamFinal Exam