Design of Algorithms
COURSE DESCRIPTION 
Course Description In this course, we will review the fundamentals in the design and rigorous analysis of algorithms oriented toward the solution of data science problems. The first part of the course is devoted to reviewing elementary data structures and algorithm paradigms, with the focus then turning to algorithms on graphs, matching problems, searching problems, applications to data mining and on computational geometry.
Prerequisites Basic knowledge of discrete mathematics and linear algebra (vector spaces, bases, dimensions, matrices, linear transformations, determinants, kernels). At least one introductory programming course (control structures, conditionals, variables, functions). 
COURSE GOALS 
On completion of the course, students will be able to:

COURSE CONTENT 
Course Content
Bibliography
Support Sessions 2 hours a week with a teaching assistant. Grading Two midterm exams (10% each), homework assignments (40%), final exam (20%), integrative project (20%). 