Algorithms (CS 301)

2025 Fall
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
3
6
Esra Erdem esraerdem@sabanciuniv.edu,
Click here to view.
English
Undergraduate
CS300 MATH204
Formal lecture,Recitation
Interactive,Project based learning
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, 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.

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 OUTCOMES

  • 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.

PROGRAMME OUTCOMES


1. Understand the world, their country, their society, as well as themselves and have awareness of ethical problems, social rights, values and responsibility to the self and to others. 1

2. Understand different disciplines from natural and social sciences to mathematics and art, and develop interdisciplinary approaches in thinking and practice. 1

3. Think critically, follow innovations and developments in science and technology, demonstrate personal and organizational entrepreneurship and engage in life-long learning in various subjects; have the ability to continue to educate him/herself. 3

4. Communicate effectively in Turkish and English by oral, written, graphical and technological means. 1

5. Take individual and team responsibility, function effectively and respectively as an individual and a member or a leader of a team; and have the skills to work effectively in multi-disciplinary teams. 2


1. Possess sufficient knowledge of mathematics, science, fundamental engineering, computational methods and program-specific engineering topics; use theoretical and applied knowledge of these areas in complex engineering problems. 5

2. Identify, define, formulate and solve complex engineering problems while considering the UN Sustainable Development Goals; choose and apply suitable analysis, design, estimation/prediction and modeling methods for this purpose. 5

3. Develop, choose and use modern techniques and tools that are needed for analysis and solution of complex problems faced in engineering applications; use information technologies effectively. 5

4. Have the ability to design a complex system, process, instrument or a product under realistic constraints and conditions, with the goal of fulfilling creative current and future requirements. 5

5. Use research methods, including conducting literature reviews, designing experiments, performing experiments, collecting data, analyzing results, and interpreting results, to investigate complex engineering problems or discipline-specific research topics. 4

6. Possess knowledge of business practices such as project management, risk management, change management, and economic feasibility analysis; awareness on entrepreneurship and innovation. 1

7. Possess knowledge of impact of engineering solutions on society, health and safety, the economy, sustainability, and the environment within the framework of the UN Sustainable Development Goals; awareness on legal outcomes of engineering solutions; awareness of acting impartially and inclusively without any form of discrimination; act in accordance with ethical principles, possessing knowledge of professional and ethical responsibilities. 1

8. Communicate effectively, both orally and in writing, on technical subjects, considering the diverse characteristics of the target audience (such as education, language, and profession). 5

ASSESSMENT METHODS and CRITERIA

  Percentage (%)
Final 40
Midterm 40
Assignment 10
Group Project 10

RECOMENDED or REQUIRED READINGS

Textbook

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