Laboratory on Algorithms for Big Data

Code 588AA
Credits 6

Learning outcomes

The course consists of a first part of lectures describing advanced algorithms and data structures (3 CFU), and a laboratory in the second part (3 CFU) in which the students will deploy these techniques to develop a software project. The students will select their projects among a set of proposals by major IT companies which are challenging from an algorithmic perspective. These companies will also contribute to identify/construct significant datasets that will help in testing the proposed algorithmic solutions.

The course will provide the opportunity of:
● facing with difficult algorithmic problems of practical interest involving big data;
● evaluating the impact of efficient algorithmic solutions in the design of software managing big data;
● implementing advanced software by using powerful and sophisticated libraries;
● getting in touch with some companies for internships, scholarships, or thesis proposals.

Main topics:
● Compressed data structures for integers, texts, and trees.
● Randomized data structures: hashing and sketching
● Graphs: compressed representations, navigation, and analysis
● Geometric data structures (optional)

The exam consists of three parts: Project 70%, Written/oral test 20%, Project presentation 10%.