Design and analysis of algorithms and data structures that are essential to engineers in every aspect of the computer hardware and software industry. Recurrences, asymptotics, summations, trees and graphs. Sorting, search trees and balanced search trees, amortized analysis, hash functions, dynamic programming, greedy algorithms, basic graph algorithms, minimum spanning trees, shortest paths, introduction to NP completeness and new trends in algorithms and data structures.
ECE244H1 or equivalent with the permission of the Chair of the AI certificate/minor.