ECE1762H: Algorithms and Data Structures

This course covers fundamentals of computer algorithms and data structures. The objective is to give the audience an introduction to combinatorial modeling, algorithms and the underlying analysis. It also aims to present a wide range of fundamental data structures and examine their complexity in terms of space/time. In brief, the course will start with a review of a number of basic combinatorial tools such as recurrences, worst/best/average case analysis, probability, and discrete mathematics (summations, principles of counting, induction). Next, it will present a wide range of fundamental data structures and algorithms along with a detailed analysis of their time/space behavior and real life use. Topics include searching and sorting, dictionary operations, dynamic programming, greedy methods, graph algorithms (shortest paths, maximum flow), parallel algorithms, intro to NP-completeness, approximation algorithms and one advanced topic of choice such as matrix multiplication, FFT or amortized analysis.

0.50
St. George