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.

### Algorithms (CS 301)

__here__to view.

__here__to view.

Programs\Type | Required | Core Elective | Area Elective |

BA- Political Science | |||

BA-Cultural Studies | |||

BA-Cultural Studies | |||

BA-Economics | |||

BA-Economics | |||

BA-International Studies | |||

BA-International Studies | |||

BA-Management | |||

BA-Management | |||

BA-Political Sci.&Inter.Relat. | |||

BA-Political Sci.&Inter.Relat. | |||

BA-Social & Political Sciences | |||

BA-Visual Arts&Visual Com.Des. | |||

BA-Visual Arts&Visual Com.Des. | |||

BS-Biological Sci.&Bioeng. | * | ||

BS-Computer Science & Eng. | * | ||

BS-Computer Science & Eng. | * | ||

BS-Electronics Engineering | * | ||

BS-Electronics Engineering | * | ||

BS-Industrial Engineering | * | ||

BS-Manufacturing Systems Eng. | * | ||

BS-Materials Sci. & Nano Eng. | * | ||

BS-Materials Science & Eng. | * | ||

BS-Mechatronics | * | ||

BS-Mechatronics | * | ||

BS-Microelectronics | |||

BS-Molecular Bio.Gen.&Bioeng | * | ||

BS-Telecommunications | * |

### CONTENT

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

### Update Date:

### ASSESSMENT METHODS and CRITERIA

Percentage (%) | |

Final | 30 |

Midterm | 30 |

Assignment | 20 |

Group Project | 20 |

### RECOMENDED or REQUIRED READINGS

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