Algorithms (CS 301)

2021 Fall
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
3
6.00 / 6.00 ECTS (for students admitted in the 2013-14 Academic Year or following years)
Hüsnü Yenigün -yenigun@sabanciuniv.edu,
English
Undergraduate
CS300 MATH204
Formal lecture,Recitation
Interactive
Click here to view.

CONTENT

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; algorithms for fundamental graph problems, such as depth-first search,connected components,topological sort,shortest paths.

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.

LEARNING OUTCOME

The students are expected to be able to analyse algorithms' resource usage by using asymptotic analysis and asymptotic notations.
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.).


The students are expected to be able to use these algorithm design techniques to develop new algorithms for simple computational problems.
The students are expected to be aware of some common computational problems and some known algorithms for these problems.
The students are expected to know that there are limits of algorithmic approaches to the computational problems.
The students are expected to be able to design tests to analyse the correctness and the performance of practical implementations of algorithms.

ASSESSMENT METHODS and CRITERIA

  Percentage (%)
Final 45
Midterm 30
Assignment 25

RECOMENDED or REQUIRED READINGS

Textbook

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Introduction to Algorithms", The MIT Press