Software project posted (see Homeworks section below). Deadline: 4 days before your chosen exam session.
No class on Tuesday April 11: we give back two hours to Prof. Massini
As data sets grow to Terabyte and Petabyte scales, traditional models and paradigms of sequential computation become obsolete. The course will focus on fundamental algorithmic and programming issues posed by big-data computing, tackling some major data mining problems on a variety of computational models used for managing massive information structures. We will study how algorithm design techniques and technological aspects of modern computing platforms interact and adapt to each other. The emphasis will be on:
MapReduce as a programming model for distributed data mining on large clusters of computers
Data streaming techniques for mining on-the-fly huge and rapidly changing streams of data
External memory algorithms for processing data stored on slow secondary memories
The lectures will follow an experimental and problem-driven approach. The goal for the class is to be broad and to touch upon a variety of techniques, introducing standard practices as well as cutting-edge research topics in this area.
Hands-on programming sessions will be held to guide the students on the use of good programming practices and advanced programming frameworks, such as Hadoop. Students will learn the proper settings in which to use each paradigm, the advantages and disadvantages of each model, how to design/analyze algorithms and to write efficient code in different big data settings.
Knowledge of big data processing frameworks (part of the Hadoop ecosystem)
Knowledge of advanced computational models, focusing on data streaming, MapReduce-style parallelism, external memory
Ability to write efficient code taking into account architectural features of modern computing platforms (including distributed systems)
Familiarity with data mining problems and techniques
Ability to study advanced research topics in big data systems and algorithmics for massive data
Performance analysis skills using back-of-the-envelope calculations, mathematical and experimental tools
Lectures and readings
Readings, notes, slides, papers, code... are posted here after each lecture.
There are no required textbooks for this class: many lessons explore cutting-edge topics and there is no unique book covering all of them systematically.
Some resources that we will use along the way are: