CSE 208 Algorithms

2026 Spring

Algorithms Course

Course Information

  • Course Title: Algorithms
  • Credit Hours: 5 (3 hours lecture + 2 hours lab per week), 6 ECTS
  • Prerequisites: Basic programming knowledge, Object-Oriented Programming (Java)
  • Instructor: Assoc. Prof. Dr. Levent KARACAN
  • Office Hours: Wednesdays, 13:00 – 14:00
  • Course Page: https://leventkaracan.github.io/courses/CSE208/

Course Description

Building upon the foundations of data structures, this course focuses on the design and rigorous analysis of algorithms. Following the Sedgewick & Wayne “Scientific Method,” students will explore efficient sorting, searching, graph processing, and string manipulation. The course concludes with advanced topics in data compression, reductions, and intractability (P vs NP).

Course Objectives

By the end of this course, students will be able to:

  1. Apply the scientific method to analyze the performance of algorithms.
  2. Implement and optimize advanced sorting and searching algorithms in Java.
  3. Solve complex problems using graph-processing and string-processing techniques.
  4. Understand the theoretical limits of computation through Reductions and NP-Completeness.

Course Schedule

  • Lecture: Wednesdays, 09:00 – 11:45, Classroom 105
  • Lab Sessions: Thursdays, 10:20 – 12:00, Computer Engineering Labs

Lab Sessions: Labs reinforce theoretical analysis with Java implementation. We will use the algs4.jar library. Students will perform empirical performance tests (timing experiments) to validate mathematical models of algorithm growth.

Weekly Schedule (14 Weeks)

Week Lecture Topics Lab / Chapter Focus
1 Course Logistics & Java/algs4 Setup Ch 1.1 Intro
2 Analysis of Algorithms: Scientific Method Ch 1.4 Analysis
3 Advanced Sorting: Mergesort & Quicksort Ch 2.2 - 2.3
4 Priority Queues & Heapsort Ch 2.4
5 Balanced BSTs: Red-Black Trees Ch 3.3
6 Hash Tables (Collision & Performance) Ch 3.4
7 Graph Fundamentals: DFS & BFS Ch 4.1 - 4.2
8 Midterm Exam Week
9 Minimum Spanning Trees & Shortest Paths Ch 4.3 - 4.4
10 String Sorts (LSD, MSD, 3-way Radix) Ch 5.1
11 Tries & Substring Search (KMP, Rabin-Karp) Ch 5.2 - 5.3
12 Regular Expressions & Data Compression Ch 5.4 - 5.5
13 Reductions Ch 6.5
14 Intractability (P vs NP) Ch 6.6

Grading

  • Lab Assignments: 15% (Implementation tasks in Java)
  • Quizzes / Homework: 15%
  • Midterm Exam: 30%
  • Final Exam: 40%

Participation & Lab Attendance

As per department regulations, a minimum of 80% attendance in lab sessions is mandatory. Students are expected to engage in “Active Learning” during lectures.

Academic Integrity & AI Policy

  • Originality: All code submissions must be the student’s own work.
  • AI Policy: While AI tools (ChatGPT, etc.) can be used for conceptual brainstorming, using them to generate code for assignments is strictly forbidden. Students must be able to explain the logic and complexity of any code they submit during lab demonstrations.
  • Plagiarism: Similarity checks will be performed on all code submissions.
  1. Primary: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne (Addison-Wesley).
  2. Online Resource: algs4.cs.princeton.edu

Last updated: February 11, 2026