BIF310 Algorithms and Data Structures
[3–0, 3 cr.]
This course presents 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) are also covered. The course also covers the sorting algorithms and performance analysis which include mergesort, quicksort and heapsort as well as details fundamental algorithmic strategies (divide-and-conquer approach, greedy, dynamic programming, and backtracking). An introduction to NP-completeness theory is provided.
Prerequisites: BIF245 Objects and Data Abstraction and MTH207 Discrete Structures I