CIS 5030 Algorithms for Big Data

Short Description

This 1.0 credit unit course focuses on algorithmic techniques needed for processing large amounts of data. A traditional course in algorithm design teaches foundational principles (divide-and-conquer, dynamic programming, graph algorithms) that are primarily suited for solving computational problems in polynomial time. What happens when traditional techniques meet modern scales, and “polynomial”-time is too slow? This course will set the mathematical and algorithmic foundations for processing large amounts of data. The key will be to incorporate randomness and approximation and to develop the algorithmic techniques needed to keep up with ever-increasing scales. The successful student will leave the class with a theoretical computer science perspective on problems and models for massive data. They will gain knowledge of various algorithmic techniques and reasoning tools to design algorithms using randomness and approximation. They will furthermore learn the fundamental limits of these techniques. This aligns with the Computer Science program objective to produce graduates with the ability to successfully apply analytical, and problem-solving skills, and to reason about computational approaches for algorithmic problems with modern scales.

Portfolio Building Course

No

Pre-Requisites

CIT 5920; Suggested: An undergraduate algorithms course (like CIS 1210 or equivalent course), or comfort with models of computation, asymptotic complexity, and basic probability.

Content

This 1.0 credit unit course focuses on algorithmic techniques needed for processing large amounts of data. A traditional course in algorithm design teaches foundational principles (divide-and-conquer, dynamic programming, graph algorithms) that are primarily suited for solving computational problems in polynomial time. What happens when traditional techniques meet modern scales, and “polynomial”-time is too slow? This course will set the mathematical and algorithmic foundations for processing large amounts of data. The key will be to incorporate randomness and approximation and to develop the algorithmic techniques needed to keep up with ever-increasing scales.

The successful student will leave the class with a theoretical computer science perspective on problems and models for massive data. They will gain knowledge of various algorithmic techniques and reasoning tools to design algorithms using randomness and approximation. They will furthermore learn the fundamental limits of these techniques. This aligns with the Computer Science program objective to produce graduates with the ability to successfully apply analytical, and problem-solving skills, and to reason about computational approaches for algorithmic problems with modern scales.

Course Creators
  • Anindya De
  • Erik Waingarten