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, graph algorithms, minimum spanning trees, shortest paths, introduction to Nondeterministic Polynomial (NP) completeness and complexity, and other new trends in algorithms and data structures including secure data processing, vulnerability analysis and risk mitigation.
ECE244H1 or equivalent with the permission of the Chair of the AI certificate/minor.