Originally from Calcutta, India, he studied math and computer science at Colgate University before earning a Ph.D. in computer science from the University of Rochester and doing research for two years at Georgia Tech. He teaches computer science classes about game design, algorithms, the theory of computation, and how programming and problem-solving skills can be applied in the sciences, social sciences, arts, and digital media. He enjoys research in the area of algorithms for Big Data. His research is supported in part by the National Science Foundation (CNS 1217758).