Principles of design, analysis and implementation of efficient algorithms. Case studies from a variety of areas illustrate divide and conquer methods, the greedy approach, branch and bound algorithms and dynamic programming.
This course appears in the pre- or co-requisites for the following course(s):
- CISC 455 - Evolutionary Optimization and Learning
- CISC 462 - Computability and Complexity
- CISC 466 - Algorithms II
- CISC 471 - Computational Biology
- CISC 497 - Social, Ethical and Legal Issues in Computing
- CISC 499 - Advanced Undergraduate Project
- COGS 499 - Advanced Undergraduate Project
- CISC 872 - Parallel Algorithms
- CISC 876 - Computational Complexity
Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 203 and CISC 204 and CISC 235).