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.

Syllabus

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