Introduction to algorithms (principles involved in designing, analyzing, and implementing algorithms). Basic data structures (lists, sets, maps, stacks, queues). Graphs and graph search. Decision algorithms (greedy methods and approximation algorithms). Sorting, divide-and-conquer, and recursive algorithms. Trees, heaps, and priority queues. Hashing and hash tables. Algorithmic analysis: big-O complexity. Numerical methods as examples of algorithms and big-O analysis (matrix inversion, matrix decomposition, solving linear system of equations).
47.2 (Fall), 51.2 (Winter), 98.4 (Full Year)