CSE 208 Algorithms
2026 Spring
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:
- Apply the scientific method to analyze the performance of algorithms.
- Implement and optimize advanced sorting and searching algorithms in Java.
- Solve complex problems using graph-processing and string-processing techniques.
- 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.jarlibrary. 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.
Recommended Textbook
- Primary: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne (Addison-Wesley).
- Online Resource: algs4.cs.princeton.edu
Last updated: February 11, 2026