Course Information


The subject matter of this course concerns fundamental algorithms in computer science. The course is structured around key topics including analysis of algorithms, sorting, searching, graph algorithms, string processing, dynamic programming, combinatorial search and NP-completeness.

The goal of this course is to teach student how to develop algorithms in order to solve the complex problems in the most efficient way. The students are expected to develop a foundational understanding and knowledge of key concepts that underly important algorithms in use on computers today. The students will also be expected to gain hand-on experience via a set of programming assignments supplied in the complementary BBM 204 Software Practicum.

Time and Location


Section 1: Monday at 09:00-09:50 in Room D1, Tuesday at 09:00-10:50 in Room D1
Section 2: Monday at 09:00-09:50 in Room D2, Tuesday at 09:00-10:50 in Room D2
Section 3: Monday at 09:00-09:50 in Room D3, Tuesday at 09:00-10:50 in Room D3


Section 1: Friday at 14:00-16:50 in Room D3
Section 2: Friday at 14:00-16:50 in Room D4
Section 3: Friday at 14:00-16:50 in Room D8



Aykut Erdem (Section 1) ·
Erkut Erdem (Section 2) ·
Adnan Özsoy (Section 3) ·

Teaching Assistants


Levent Karacan · | Office Hours: Wednesday, 10:00-12:00, Comp. Vision Lab. (Z03)

Merve Ozdes · | Office Hours: Tuesday, 10:00-12:00, NLP Lab.

Selim Yilmaz · | Office Hours: Tuesday, 13:30-16:00, Info. Sec. Lab. (Z06)


The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other course related communications will be carried out through Piazza. Please enroll it by following the link:

Course Requirements and Grading

Grading for BBM202 will be based on

In BBM204, the grading will be based on


Attendance to lectures is mandatory. A student who do not attend more than 13 hours of lecture will fail BBM202 directly with an F1 grade. You are responsible for all material presented in lecture. Some of the course material might not be covered in the textbook.

All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated.

In short, turning in someone else’s work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else. A student who do not attend more than 3 recitation sessions will fail BBM204 directly with an F1 grade.

Text Book

  • Algorithms, 4th Edition, R. Sedgewick and K. Wayne, Addison-Wesley Professional, 2011

Schedule (Tentative)

Week Date Topic Notes
1 Feb 12 Course Introduction [slides] [4-per-page],
Analysis of Algorithms [slides] [4-per-page]
Reading: SW 1.4
2 Feb 19 Elementary Sorting Algorithms [slides] [4-per-page],
Mergesort [slides] [4-per-page]
Reading: SW 2.1, 2.2
3 Feb 26 Quicksort [slides] [4-per-page],
Heapsort [slides] [4-per-page]
Reading: SW 2.3, 2.4
<PA1> out
4 Mar 5 Elementary Search Algorithms [slides] [4-per-page] ,
Binary Search Trees [slides] [4-per-page]
Reading: SW 3.1, 3.2
5 Mar 12 Balanced Trees [slides] [4-per-page] Reading: SW 3.3
6 Mar 19 1st Midterm Exam PA2 out
7 Mar 26 Hashing, Search Applications [slides] [4-per-page] Reading: SW 3.4, 3.5
8 Apr 2 Undirected Graphs [slides] [4-per-page], Directed Graphs [slides] [4-per-pa ge] Reading: SW 4.1, 4.2
9 Apr 9 Minimum Spanning Trees Reading: SW 4.3
10 Apr 16 Midterm Exam 2 PA3 out
11 Apr 23 Shortest Path Reading: SW 4.4
12 Apr 30 String Sorting Reading: SW 5.1
PA4 out
13 May 7 Substring Search, Regular Expressions Reading: SW 5.3, 5.4
14 May 14 Data Compression Reading: SW 5.5

Previous editions