CSC310H Algorithms and Data Structures
[3–0, 3 cr.]
This course presents the fundamental computing algorithms and data structures, with emphasis on design and analysis. Topics include the asymptotic analysis of upper and average complexity bounds, the best, the average, and the worst, case behaviors. Recurrence relations, sets, hashing and hash tables, trees and binary trees (properties, tree traversal algorithms), heaps, priority queues, and graphs (representation, depth-and breadth-first traversals and applications, shortest-path algorithms, transitive closure, network flows, topological sort). The course also covers the sorting algorithms and performance analysis which include mergesort, quicksort and heapsort. As well, the course details the fundamental algorithmic strategies (divide and-conquer approach, greedy, dynamic programming, and backtracking) and provides an introduction to NP-completeness theory.
Prerequisites: CSC 245 Objects and Data Abstraction and MTH207 Discrete Structures I