|CISC5835, Algorithms for Big Data,
Overview: The first part this course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. We study the general techniques for algorithm design (e.g., divide-and-conquer, dynamic programming, graph algorithms), as well as specific algorithms for specific problems (e.g., sorting, searching, polynomial and matrix calculations). Issues of intractability, i.e., a discussion of the classes P (problems solvable in polynomial time) and NP (problems for which a conjectured solution can checked in polynomial time), issues of NP-completeness and the famous open problem of whether P=NP or not are introduced in the course. The second part of class covers specialized algorithms for handling big data, including algorithms that operate in a single pass of the data, algorithms for streaming data, and massively parallel algorithms.
Prerequisites: CISC2200, and CISC2100/CISC2110 or equivalent
Instructor: Xiaolan Zhang
Lecture: Tuesday 5:30-7:45pm