Syllabus Application
CS 301
Algorithms
Faculty
Faculty of Engineering and Natural Sciences
Semester
Spring 2025-2026
Course
CS 301 -
Algorithms
Time/Place
Time
Week Day
Place
Date
16:40-17:30
Wed
FENS-G077
Feb 16-May 22, 2026
14:40-16:30
Fri
FENS-G077
Feb 16-May 22, 2026
Level of course
Undergraduate
Course Credits
SU Credit:3, ECTS:6, Basic:1, Engineering:5
Prerequisites
( MATH 204 and CS 300)
Corequisites
CS 301R
Course Type
Lecture
Instructor(s) Information
Hüsnü Yenigün
- Email: yenigun@sabanciuniv.edu
Course Information
Catalog Course Description
This course will cover algorithms for a variety of problems, as well as general algorithm design and analysis techniques such as divide-and-conquer, dynamic programming, and greedy algorithms. Specific topics include algorithm analysis, recurrences and asymptotic analysis, searching, sorting, order-statistics, shortest path problems, and network-flows. An introduction to the computational complexity classes (such as P, NP, NP- hard, NP-complete, PSPACE) together with approximation algorithms and the performance evaluation of algorithm implementations in practice are also covered in the course.
Course Learning Outcomes:
| 1. | The students are expected to be able to analyse algorithms' resource usage by using asymptotic analysis and asymptotic notations. |
|---|---|
| 2. | The students are expected to be able identify the algorithm design technique used by a given algorithm such as divide-and-conquer, dynamic programming, greedy, etc.). |
| 3. | The students are expected to be able to use these algorithm design techniques to develop new algorithms for simple computational problems. |
| 4. | The students are expected to be aware of some common computational problems and some known algorithms for these problems. |
| 5. | The students are expected to know that there are limits of algorithmic approaches to the computational problems. |
| 6. | The students are expected to be able to design tests to analyse the correctness and the performance of practical implementations of algorithms. |
Course Objective
To prepare students 1) to analyze an algorithm's performance by asymptotic analysis methods, 2) to understand the role of data structures and programming paradigms on the performance of algorithms, and 3) to design efficient algorithms taking into account these important factors.
-
Course Materials
Resources:
TEXTBOOK:
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Lecture slides will be provided.
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Lecture slides will be provided.