Please note that all the published material is protected by copyright. It can be used individually for study and research purposes but must not be used for commercial purposes, be that for direct or indirect profit (e.g., it cannot be shared on paid online platforms, on services provided for profit or on sites that earn advertising revenue). It is also forbidden to share copyrighted material on any social media, except for the adoption of Creative Commons licenses.
We draw the students’ attention to a conscious and correct use of the material made available by the academic community, in compliance with the provisions of the University Code of Ethics.

The objectives are formalized for each of the two parts of the course.

Databases

This course will teach the fundamentals of relational theory, SQL language and its relationships with relational algebra, design of data in relational databases by means of the conceptual and logical  design of databases. The course will introduce the students to the basic notions of NoSQL databases, important for the new generation of databases and the management of big data. In the laboratory the students will be able to work with a practical database management system.

Algorithms

In this course students will learn several fundamental principles of algorithm design and how to implement some fundamental data structures (e.g., graphs, arrays, trees, hash tables). This course aims at providing a solid methodological background for the analysis of algorithms in terms of their correctness, complexity (in time and in space), and tractability.