This feature allows you to view your educational path, if you enrolled in previous years

Curriculum(s) for 2025 - Engineering in Computer Science and Artificial Intelligence (33515)

Single curriculum

1st year

LessonSemesterCFUSSDLanguage
10599896 | Dependable distributed systems 1st9ING-INF/05ENG

Educational objectives

GENERAL OBJECTIVES
The main objective of the course is to provide the basic knowledge for the design and development of a distributed system that is able to satisfy the main dependability requirements (e.g., reliability, service availability, data integrity, information confidentiality etc.).

SPECIFIC OBJECTIVES

- Knowledge and understanding
Distributed systems are the basis of any modern IT application. Therefore it must be designed and developed taking into account the main non-functional requirements needed to guarantee a certain pre-defined degree of Quality-of-Service despite the presence of faults, malfunctions and intrusions into the system.
The course has the main objective of providing students with a clear characterization of concurrency in a distributed system considering the characteristics of such a system such as faults, variable latency in communications and the absence of a global clock.
Subsequently, the main system models and the basic abstractions for communication and synchronization will be analyzed, the basic primitives for the construction of a middleware will be introduced, the basic concepts of a peer-to-peer system will be provided with some examples of real systems like distributed ledgers and blockchains. Finally, basic techniques for the analysis of dependability (analytical models and simulation models) will be introduced to allow students to evaluate the designed system and its ability to satisfy the levels of dependability and quality of service imposed by the system specifications.

- Apply knowledge and understanding
The student will be able to design systems and algorithms compliant with different system models ranging from synchronous, asynchronous and partially synchronous ones, understanding impossibility and performance limitations.
He/She will also have the ability to abstract real systems and platforms into abstract models that are easier to deal with.
Finally, the student will be able to carry out a dependability analysis of the system and to carry out a comparative analysis between different solutions.

- Critical and judgment skills
The student will be able to evaluate and compare different solutions for the design and development of distributed systems and applications. He/She will also be able to evaluate the appropriate trade-offs in consideration of the various aspects that characterize the specific environment in which the application will go into operation.

- Communication skills
The student will acquire the specific domain terminology.

- Learning ability
The student will learn basic techniques and methodologies for the design and development of distributed systems and applications.

10600393 | Cybersecurity1st9ING-INF/05ENG

Educational objectives

General Objectives

1. Provide a comprehensive vision of cybersecurity, understood as a technical and cultural discipline, essential in contemporary digital society.
2. Train aware professionals, capable of critically evaluating the security of systems, applications and IT infrastructures, even in real and complex contexts.
3. Cultivate a security-oriented design mindset, raising awareness of the need to integrate protection, privacy, authenticity and resilience from the early stages of technology development.
4. Promote autonomy in study and research, providing conceptual and methodological tools to explore advanced or emerging topics in the field of cybersecurity.

Specific objectives

1. Understand the fundamentals of cybersecurity, with particular attention to:
• Symmetric and asymmetric encryption
• Message integrity and authentication
• Digital signatures and their standards ( PAdES , CAdES , XAdES , JAdES )

2. Study real security protocols and systems, including:
• HTTPS, IPsec, TLS/SSL, SSH
• Authentication via password, biometrics, Kerberos, X.509 certificates
• E-mail security
• Methodologies and techniques for network security

3. Analyze threats and attack models, developing:
• Ability to identify vulnerabilities
• Understanding of attack and defense techniques
• Identify common attack patterns to web applications

4. Learn more about the use of secure random number generators, which are essential to cryptography and protocols.

5. Apply theory to practice, through:
• Homework and exercises
• Projects and theses (for interested students)

6. Develop critical thinking about the security of modern digital technologies.

- Knowledge and understanding
At the end of the course, the student will have acquired a solid knowledge of the fundamental principles of computer security, with particular reference to theoretical models and practical tools to guarantee confidentiality, integrity, authentication and availability of information. In particular, you will be able to:
• understand the functioning and limitations of the main cryptographic algorithms, both symmetric and asymmetric;
• recognize and evaluate security threats in communication systems and network protocols;
• analyze the authentication mechanisms, identity management and digital signatures, also in light of the relevant international standards;
• understand security architectures at different levels of the protocol stack , including HTTPS, TLS, IPsec , SSH, and Kerberos.

Understanding will be supported by both real-world examples and application activities and critical discussions, in order to foster a systemic and up-to-date vision of the topic.

- Applying knowledge and understanding:
The student will be able to effectively apply the concepts and tools acquired to analyze, design and evaluate security solutions in the IT field. In particular, you will be able to:
• identify vulnerabilities in communication protocols and computer systems;
• select and implement cryptographic techniques appropriate to specific application contexts;
• configure and evaluate authentication protocols, identity management systems and public key infrastructures (PKI);
• analyze real attack and defense scenarios, formulating security mitigation and improvement strategies;
• understand and use standards and tools for digital signature and data protection in transit and at storage.

Application skills will be developed through hands-on exercises, case study analysis, and guided discussions on known vulnerabilities and incidents.

- Making judgements:
At the end of the course, the student will have developed the ability to critically analyze cybersecurity problems, independently evaluating possible solutions in light of technical, regulatory and ethical constraints. In particular, you will be able to:
• reflect on the implications of adopting (or failing to adopt) security measures in digital systems;
• compare security approaches and technologies, evaluating their effectiveness, scalability and sustainability;
• make reasoned judgments on secure system designs and architectures, taking into account real and multidisciplinary contexts;
• recognize the limitations of existing technologies and the need for continuous updating in a rapidly evolving sector.

The course stimulates critical thinking through case study analysis, discussions of real incidents, and reflections on ethics and responsibility in designing safe systems.

- Communication skills:
The student will acquire the ability to communicate clearly, precisely and appropriately contents, problems and solutions related to cyber security, both to specialist and non-specialist interlocutors. In particular, you will be able to:
• describe and motivate the adoption of security technologies and protocols with accurate technical language;
• explain cybersecurity risks, countermeasures and implications in an understandable way, even to non-technical stakeholders (e.g. in corporate, legal or institutional settings);
• actively participate in critical discussions on cases of attack and defense, including in collaborative or interdisciplinary contexts;
• write short technical reports and clear documentation on configurations, analyses and laboratory results.

The course fosters these skills through oral exercises, group discussions, writing papers and interaction with popular and scientific materials.

- Learning skills:
At the end of the course, the student will have developed solid autonomous and continuous learning skills, essential for updating in a field, such as cybersecurity, in constant technological and regulatory evolution. In particular, you will be able to:
• find and critically understand technical documentation, scientific articles and international standards on cybersecurity;
• independently explore advanced or emerging topics (e.g. new vulnerabilities, post-quantum protocols, privacy regulations);
• apply flexible study strategies to address the heterogeneity of sources (manuals, specifications, white papers, codes of conduct);
• approach research or development projects in safety with method and a critical spirit, even in an academic or professional context.

The course encourages independent learning through open-ended assignments, suggested readings, access to online resources, and a problem-solving approach.

1022858 | MACHINE LEARNING1st6ING-INF/05ENG

Educational objectives

Obiettivi generali.

Obiettivo del corso è la presentazione di un ampio spettro di metodi e algoritmi per il Machine Learning, l'analisi delle loro proprietà, i criteri di convergenza e l’applicabilità. Il corso presenterà anche esempi di applicazioni di successo in diversi scenari applicativi. Il principale risultato atteso è l'acquisizione della capacità di risolvere problemi di apprendimento attraverso una corretta formulazione, una scelta appropriata dell'approccio risolutivo e l’analisi sperimentale.

Obiettivi specifici.

Conoscenza e capacità di comprensione:
Fornire una panoramica completa dei principali metodi e algoritmi di apprendimento automatico per problemi di classificazione, regressione e apprendimento non supervisionato. Tutti i problemi sono definiti formalmente e ne vengono fornite le basi teoriche, così come i dettagli tecnici e implementativi, per comprendere le soluzioni proposte.

Capacità di applicare conoscenza e comprensione:
Risolvere problemi specifici di apprendimento automatico a partire da dati di addestramento, attraverso l’applicazione corretta dei metodi e degli algoritmi studiati. Lo sviluppo di piccoli progetti da svolgere a casa consente agli studenti di applicare le conoscenze acquisite.

Autonomia di giudizio:
Capacità di valutare le prestazioni di un sistema di apprendimento automatico utilizzando metriche e metodologie di valutazione adeguate.

Abilità comunicative:
Capacità di redigere una relazione tecnica descrivendo la soluzione adottata, dimostrando così competenze nella comunicazione dei risultati ottenuti dall’applicazione delle conoscenze acquisite alla risoluzione di un problema specifico. Esporsi a esempi di comunicazione tramite la discussione dei risultati ottenuti in casi pratici. Lavorando in gruppo ai progetti da svolgere a casa, gli studenti apprenderanno come comunicare efficacemente a livello tecnico.

Capacità di apprendimento:
Acquisendo il vocabolario di base e i fondamenti del Machine Learning, gli studenti svilupperanno le competenze necessarie per accedere autonomamente alla letteratura specialistica e apprendere nuovi approcci e tecniche, utili per la realizzazione dei progetti individuali. Più in generale, il corso fornisce le basi necessarie ad affrontare con successo argomenti più avanzati di Machine Learning, come il Deep Learning e il Natural Language Processing (NLP), tipicamente proposti in corsi accademici avanzati.

10600392 | Artificial Intelligence1st6ING-INF/05ENG

Educational objectives

General objectives.
The course aims to introduce the fundamentals of Artificial Intelligence, with a particular emphasis on automated reasoning and sequential decision making.
Students will become familiar with the main formalisms and approaches for knowledge representation and reasoning, in both static and dynamic contexts.
They will also learn the basics of decision making approaches for deterministic, non-deterministic, adversarial, and stochastic domains.

Specific objectives.

Knowledge and understanding:
Students will be introduced to the basics of Knowledge Representation for static and dynamic systems through formal approaches: propositional and first-order logic, situation calculus, MDPs. The fundamental logical tasks (evaluation, satisfiability, validity, logical implication) will be studied and basic solution techniques (DPLL, tableau method) will be learnt.
The goal is to understand the importance of the formal model and of domain-independent approaches as fundamental tools to automatically solve problems.
Students will learn how to model a Planning domain through the PDDL language and how to solve planning problems in deterministic, non-deterministic, adversarial, and stochastic scenarios. Essential forward state-space search techniques will be introduced: uninformed search, heuristic search, best-first search, A* search, AND-OR search.
For stochastic scenarios, Policy Evaluation and Policy Iteration will be learnt.

Applying knowledge and understanding:
Students will learn how to abstract and model real-world scenarios as static or dynamic domains in a rigorous way, as well as to identify and formalize real-world problems. They will also be able to apply the techniques acquired during the course to solve the modelled problems.
By understanding how to formally model and solve problems, students will become able to design and implement simple reasoning systems for a variety of real-world scenarios and related problems.

Making judgements:
Students will be able to evaluate the appropriateness and quality of a representation formalism with respect to various classes of problems and to select the most suitable solution technique.

Communication:
The course will provide students with the basic notions and vocabulary to effectively interact with their pairs and experts in the area. Oral communication skills are stimulated through the interaction during class, while writing skills are developed through the analysis of exercises and answers to the open questions included in the final test.

Lifelong learning skills:
The course will provide students with the essential tools needed to access the specialised literature. In this way, they can autonomously strengthen and broaden their competencies. In addition to such learning capabilities, students will also acquire advanced modelling and general problem solving skills.

AAF2141 | Laboratory of advanced programming1st3ENG

Educational objectives

General outcomes.
The course offers an introduction to various software development technologies, including distributed ones, which can potentially be used in other courses of the training programme. Furthermore, modern agile software development methodologies and techniques are applied through the development of a group project.

Specific outcomes.
Knowledge and understanding:
Programming Web Services in Java and Python. Programming distributed systems with blocking and non-blocking calls. SCRUM and agile methods. Virtualization and dockerization.

Applying knowledge and understanding:
Be able to design an application made up of different components and microservices.

Making judgements:
Be able to evaluate the quality of an application also in terms of different architectural and distribution choices.

Communication skills:
The project activities and the presentation of the project in pitch mode and with a working demo allow the student to be able to communicate/share the requirements of a medium complexity software application, as well as the design choices and the design and development methodologies of this application .

Learning skills:
In addition to the classic learning skills provided by the study of the teaching material, the methods of carrying out the course, in particular the project activities, stimulate the student to independently study some topics presented in the course, to work in groups, and to concrete application of the notions and techniques learned during the course.

10620852 | USER-DRIVEN SOFTWARE ENGINEERING2nd6ING-INF/05ENG

Educational objectives

The course examines the process of software development and presents the methodologies, the quality standards, the metrics, and the techniques commonly used for
estimating, planning, and testing of professional software applications. In order to properly interpret the measures used in the context of software quality assurance, the course presents the basic notions of the theory of measurement and of the analysis of variance.

At the end of the course a student will be able to:
- select a model for the development of a software application;
- estimate the software cost ;
- plan the development and test activities;
- select the metrics for the software quality assurance;
- evaluate the statistical significance of experiments based on numerical sampling.

1022797 | Data Management2nd6ING-INF/05ENG

Educational objectives

General objectives:

The goal of the course is the investigation on the basic concepts of Data Management systems, emphasizing both the relational model and various NoSQL models. Several major
issues related to the theory and the design of relational data management systems are covered, including concurrency control, recovery, file and index organizations, query processing, OLAP and OLTP. A good knowledge of the fundamentals of Programming Structures, Programming Languages, and Databases (SQL, relational data model,
Entity-Relationship data model, conceptual and logical database design) is required.

Knowledge and understanding:
The student will have a good knowledge on how a Data Management System, even a NoSL one, works, how it is structured, and how it is designed. Also, the student will acquire knowledge of the architecture of a database management system and of its main modules (transaction manager, recovery manager, query evaluator). The student will also acquire a good understanding of how to design the physical organization of relations (files and indices), and how the query optimizer of a Data Management system works.

Applying knowledge and understanding:
The students will be able to design her/his own Data Management system, including the concurrence control module, the recovery module, the access file method, and the query optimizer.

Making judgements:
The student will be able to evaluate various kinds of Data Management systems, including NoSQL ones, and will be able to choose the right technique for concurrency, recovery, and query processing in specific application contexts.

Communication skills:
The students will acquire a good knowledge on how to illustrate the algorithms and the techniques at the basis of a modern Data Manager.

Learning skills:
The student will be able to understand any new architecture and approach to Data Management that will become popular in the future.

1044417 | ALGORITHM DESIGN2nd6ING-INF/05ENG

Educational objectives

The objective of the course is introduce the fundamental concepts of
algorithms design for polynomial time and hard computational problems. The
course will present the basic concepts of algorithm design for

network flow and matching problems. General techniques such as greedy and
dynamic programming will be applied to problems like shortest paths, spanning
tree, knapsack, scheduling. Approximation algorithms will be presented for hard
computational problems like TSP, vertex cover, set cover, sat, scheduling.
Special emphasis will be given to methods based on Linear Programming and
randomized algorithms. Finally, the course will introduce the major
computational problems in game theory.

Elective course2nd6ENG

Educational objectives

Among other training activities are provided 12 credits are chosen by the student.

THREE-DIMENSIONAL MODELING
THREE-DIMENSIONAL MODELING

2nd year

LessonSemesterCFUSSDLanguage
AAF2536 | Advanced Topics in Computer Science and Artificial Intelligence1st3ENG

Educational objectives

The course offers students the opportunity to deepen their knowledge through a series of seminars on research topics in the field of Computer Science and Artificial Intelligence.
The course includes the study of advanced topics, also explored through scientific articles related to the latest developments in the field, as well as in-class contributions from researchers and scholars in the subject.

Elective course1st6ENG

Educational objectives

Among other training activities are provided 12 credits are chosen by the student.

AAF1028 | Final exam2nd30ENG

Educational objectives

The student will present and discuss the results of a technical activity, producing a written thesis supervised by a professor and showing the ability to master the methodologies of Computer Science Engineering and/or their application.

THREE-DIMENSIONAL MODELING
THREE-DIMENSIONAL MODELING

Optional groups

The student must acquire 12 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1038133 | Formal Methods1st1st6ING-INF/05ENG

Educational objectives

General outcomes:

The objective of the course is to study the most important quality of software: correctness. Such a study concerns bot the static aspects (data) and the dynamic aspects (processes) of software, considering both how to conceptualize and model such aspects and how to verify them. The main tools used for such study are various forms of logic: first-order logic and description logics for the static aspects, Hoare Logic and dynamic and temporal logics of programs for the dynamic aspects. After a successful completion of the course, the student will have acquired techniques and methods to model and verify programs, both wrt data and processes.

Specific outcomes:

Knowledge and understanding:
Learn the fundamentals of formal methods. The use of strict and formal specifications and their verification. Founding principles of logic in computer science logic and formal verification of data and processes.

Applying knowledge and understanding:
Being able to apply the acquired knowledge to perform analysis of the correctness of programs through rigorous and formal methods, both in relation to aspects relating to data and processes.

Making judgements:
Being able to evaluate the rigor of a given argument of correctness of the programs. Being able to choose the conceptual tools provided by logic and formal methods for the verification of both static and dynamic properties.

Communication:
The group activities in the classroom as well as group projects make the students able to communicate / share the acquired knowledge and to compare himself with others on the topics of the course.

Lifelong learning skills:
In addition to the competences provided by the study of the teaching material, the course teaches the students to deepen their knowledge of some of topics presented in the course, while working in a group, and concretely apply the concepts and techniques learned to specific case studies.

10606829 | Internet-of-Things Algorithms and Services1st2nd6ING-INF/05ENG

Educational objectives

General Objectives.
The course is mainly addressed to Computer Engineers and Computer Scientists and aims at providing the basic skills to design, implement and test a pervasive system, namely a system that allows users to access services of interest always and everywhere. We will discuss the technologies, protocols, functionalities and algorithms to realise a pervasive system capable to provide specific services (e.g. services for mobile users, services for the IoT etc.) subject to the constraints and challenges of the wireless links and the limited resources of the devices connected to form the pervasive system (e.g. energy constraints, mobility, noise, limited CPU power, limited bandwidth, etc.)

10612389 | Computational complexity1st2nd6ING-INF/05ENG

Educational objectives

General outcomes-
The course focuses on: (1) a modern approach to the study of computational complexity, (2) the acquisition of the notion of algorithmic computations under limited computational resources; (3) classification of mathematical problems according to the computational resources and sufficient and necessary to algorithmically solve them. One of the aims of the course is to introduce to foundational problems such as P vs NP and similar problems for other classes. The main focus of the course is the study of intractability and the acquisition of the mathematical tools to show that certain problems cannot be solved using limited computational resources.

Specific outcomes.
Knowledge and understanding:
Classification of mathematical problems according to the computational resources necessary to solve them efficiently: running time; memory space; randomness, non-determinismi, parallelism. Mathematical proof techniques for the solution of intractability problems.

Applying knowledge and understanding:
Give the students the ability of problem solving for computational problems mainly under two aspects: (1) Thinking and describing at a high level the solution of a computational problem showing the main ideas to solve it and the reasons and the effectiveness of these ideas towards the solution of the problema; (2) Being able to write and describe correctly at a detailed mathematical level solutions of problems described at a high level.

Making judgements:
Ability of evaluating quality and correctness of the solutions to problems of computational nature.

Communication skills:
Ability to describe and communicate problems of computational nature and their mathematical solution in various settings: (1) short presentations under 30 minutes; (2) longer and detailed blackboard presentations between one and two hours; (3) scientific writings of a report with the mathematical solution of a problem.

Learning skills:
The course stimulates the students to autonomously learn some of its topics; especially the lab activities encourages working in groups and applying the ideas and techniques learned.

10620853 | GENERATIVE ARTIFICIAL INTELLIGENCE1st2nd6ING-INF/05ENG

Educational objectives

General Objectives
At the end of the course, students will have a solid understanding and practical ability in the field of Generative AI, essential for tackling and solving complex problems in generative artificial intelligence.

Specific Objectives
Knowledge and Understanding:
Acquire an in-depth understanding of the principles behind image and text generation.
Learn the structures and mechanisms of generative models based on diffusion techniques and autoregressive techniques.

Critical Thinking and Judgment Skills:
Critically evaluate the performance of generative AI models and how they are used in real-world scenarios.
Analyze the challenges related to robustness in generative AI models and develop effective solutions.

Communication Skills:
Present and discuss the results of generative AI projects, demonstrating proficiency in the use of advanced tools such as Diffusion Models and Transformers.

Learning Skills:
Experiment with emerging technologies in the field of deep learning, such as LLMs, Vision LMs, Diffusion Models, Flow-based Models, etc.
Apply theoretical knowledge in practical projects to tackle real-world problems.

1052057 | Visual Analytics2nd1st6ING-INF/05ENG

Educational objectives

The goal of the course is to provide an introduction to the currently used Information Visualization and Visual Analytics techniques. In particular, the course will analyze the methodologies for displaying purely numerical data (tables, diagrams) and representation techniques (mapping of attributes of the represented dataset in visual attributes), providing the practical skills to implement them in d3.js and integrate them with algorithmic solutions. Then, dimensionality reduction techniques will be introduced, with particular attention to PCA, MDS and t-SNE, presenting practical solutions in Python. Finally, the problem of presenting the described techniques will be introduced, acquiring skills on how to overcome limits of space and time in the visualizations, and providing indications on the main interaction techniques.

1038138 | Data Mining2nd1st6ING-INF/05ENG

Educational objectives

Ciao Adriano,

eccoli qui, in Inglese e Italiano:

**************************************

Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di
collezioni di dati appartenenti a spazi euclidei o meno, possibilmente di elevata dimensionalità.
Conoscenza e comprensione delle tecniche elementari.
Conoscenza e comprensione dei principali problemi metodologici e di analisi posti dalla
dimensione crescente dei dati.
Conoscenza delle principali tecniche di soluzione e dei principali strumenti
a disposizione per implementarle.
Comprensione degli aspetti teorici e fondazionali delle principali tecniche per
l'analisi di collezioni di dati di grandi dimensioni
Capacità di tradurre le nozioni acquisite in programmi per la soluzione di problemi
specifici.
Conoscenza delle principali tecniche di valutazione e loro applicazione a scenari specifici.

Obiettivi specifici:
Capacità di:
- individuare le tecniche più adatte a un problema di analisi di dati, in particolare ad elevata dimensionalità;
- implementare la soluzione proposta, individuando gli strumenti più adatti a
raggiungere lo scopo tra quelli disponibili;
- progettare e realizzari scenari sperimentali per valutare le soluzioni proposte
in condizioni realistiche;
Conoscenza e comprensione:
- conoscenza dei principali scenari applicativi;
- conoscenza delle principali tecniche di analisi;
- comprensione dei presupposti teorici e metodologici alla base delle tecniche principali
- conoscenza e comprensione delle principali tecniche e indici di valutazione
delle prestazioni
Applicare conoscenza e comprensione:
- essere in grado di tradurre esigenze applicative in problemi concreti di analisi
dei dati;
- essere in grado di identificare gli aspetti del problema, se presenti, che potrebbero rendere
la dimensione (o dimensionalità) dei dati un fattore critico;
- essere in grado di individuare le tecniche e gli strumenti più adatti alla soluzione dei
problemi concreti di cui sopra;
- essere in grado di stimare a priori, almeno qualitativamente, la scalabilità delle
soluzioni proposte;
Capacità critiche e di giudizio:
Essere in grado di valutare, anche sperimentalmente, l'efficacia, l'efficienza e la scalabilità
delle soluzioni proposte
Capacità comunicative:
Essere in grado di descrivere in modo efficace le specifiche di un
problema e di comunicare ad altri le scelte adottate e le motivazioni sottostanti a
tali scelte.
Capacità di apprendimento:
Il corso consentirà lo sviluppo di capacità di approfondimento autonomo
su argomenti del corso o ad essi correlati. Metterà lo studente nelle condizioni
di individuare e consultare in modo critico manuali avanzati o letteratura scientifica
per affrontare scenari nuovi oppure per applicare tecniche alternative a scenari noti.

INGLESE

General objectives:
Knowledge of main application scenarios in (possibly high-dimensional) data analysis.
Knowledge and understanding of basic techniques.
Knowledge and understanding of main algorithms and approaches to analyze high dimensional
data. Knowledge of main tools to implement them.
Understanding of theoretical foundations underlying main techniques of analysis
Ability to implement the aforementioned algorithms, approaches and techniques and to
apply them to specific problems and scenarios.
Knowledge of main evaluation techniques and their application to practical scenarios.

Specific objectives:
Ability to:
- identify the most suitable techniques to address a data analysis problem, especially when
data dimensionality is a concern;
- implement the proposed solution, identifying the most appropriate design and
implementation tools, among available ones;
- Design and implement experiments to evaluate proposed solutions in realistic settings;

Knowledge and understanding:
- knowledge of main application scenarios;
- knowledge of main techniques of analysis;
- understanding of methodological and theoretical foundations of main analysis techniques;
- knowledge and understanding of main evalutation techniques and corresponding
performance indices

Apply knowledge and understanding:
- being able to translate application needs into specific data analysis
problems;
- being able to identify aspects of the problem for which data dimensionality
might play a critical role;
- being able to identify the most suitable techniques and tools to address the
aforementioned problems;
- being able to estimate in advance, at least qualitatively, the degree of scalability
of proposed solutions;

Critical and judgment skills:
Being able to evaluate, also experimentally, the effectiveness and efficiency of
proposed solutions

Communication skills:
Being able to effectively describe the requirements of a problem and
provide to third parties the relative specifications, design choices and
the reasons underlying these choices.

Learning ability:
The course will facilitate the development of skills for the independent
study of topics related to the course. It will also allow students to identify
and critically examine material contained in andvanced manuals and/or scientific
literature, allowing them to face new application scenarios and/or apply alternative
techniques to known ones.

1041706 | Knowledge Representation and Semantic Technologies2nd1st6ING-INF/05ENG

Educational objectives

General objectives:

To know the main languages of the current semantic technologies, in particular, the families of class-based and rule-based knowledge representaton formalisms, and the main reasoning techniques for such formalisms. To know the standard semantic technologies based on the above knowledge representation formalisms, in particular the RDF language and the OWL language, with the goal of designing and managing an ontological knowledge base. To know the basic elements of the representation of actions and reasoning about actions.

Specific objectives:

Knowledge and understanding:
Description Logics (the main class-based knoeledge representation formalisms) and the main rule-based languages, in particular Datalog and some of its extensions. The main Web standards for semantic technologies, in particular the RDF, SPARQL and OWL languages.

Applying knowledge and understanding:
To be able to design a knowledge base, choosing the most appropriate formalism and technologies for the given application context.

Making judgements:
To be able to evaluate the main semantic aspects of a knowledge base and of a knowledge-based application. To be able to choose the best available technology for processing a knowledge base.

Communication skills:
The practical activities and the exercises allow the student to be able to communicate and share the requirements of an application requiring the construction and management of a knowledge base and/or the usage of the standard semantic technologies.

Learning skills:
Besides the classical learning skills provided by the theoretical study of the teaching materials, the practical activities stimulate the student to autonomously deepen her/his knowledge about some of the course topics, to teamwork, and to the practical application of the notions and techniques learned during the course.

1044408 | LARGE-SCALE DATA MANAGEMENT2nd1st6ING-INF/05ENG

Educational objectives

General goals:
The goal of the course is to make students familiar with the basic concepts of managing information systems at large scale. Two specific topics will be investigated in detail, namely information models for Big Data Management, and information integration. Both topics are extremely relevant in the data-driven society, where virtually all information
systems of reasonably sized organisations need to both manage large data sets, and to interact with several data sources.

Specific goals:
To study the data models used in Big Data Management, especially NoSQL data models, including column-based, key-vale, and document data models, and to get familiar with the notions and the techniques for information integration.

Knowledge and understanding:
After the course the student will have a good knowledge on the differences and similarities between the relational model and the various classes of NoSQL data models. Moreover, the students will understand the theoretical issues in data integration and exchange, and will have a good knowledge about the various architectures of information integration systems.

Apply knowledge and understanding:
The students will be able to design her/his own Big Data repository using one of the data models adopted in practice, to choose an appropriate architecture for information integration, and to build and maintain an information integration systems structured according to the chosen architecture.

Critical and judgment skills:
The student will be able to evaluate the requirement for a Big Data Management system, and will be able to choose the right data model and infrastructure to choose. Analogously, the student will be able to understand the requirement for a specific information integration system, and choose the appropriate approaches and techniques for designing a high-quality solution.

Communication skills:
The students will acquire a good knowledge on how to illustrate the results of a design process, both in the context of Big Data Management, and in the context of information integration systems.

Learning ability:
The student will be able to understand any new architecture and approach to Big Data Management and to Information Integration that will become popular in the future

10600447 | Malware analysis2nd1st6ING-INF/05ENG

Educational objectives

General Outcomes.
The current scenarios related to cyber security show us the increasingly pervasive presence of malicious software used to perpetrate cyber attacks. The course aims to provide students with the knowledge, methods, and basic tools to analyze, identify, categorize, and understand the behavior of malicious software. The course will adopt a practical approach, with a significant component of application to real cases.

Specific Outcomes.
Knowledge and understanding:
Knowledge of distinctive characteristics and functionalities of malicious software.

Applying knowledge and understanding:
Ability to statically and dynamically analyze an instance of potentially malicious untrusted software. Applied ability to identify and evaluate different functionalities of an instance of untrusted software through reverse-engineering methods and tools.

Making judgments:
Ability to interpret the results of analysis and reverse engineering activities of untrusted software as a potentially malicious sample.

Communication skills:
Being able to present the results of technical analysis in the form of a report in the spirit of what professionals in the field do.

Learning skills:
The course's methods encourage students to independently delve deeper into the methodologies presented in the theoretical and practical classes on each topic. They will apply them to complex instances of software that employ a variety of techniques and functionalities.

10620854 | MOBILE, EDGE AND CLOUD COMPUTING2nd1st6ING-INF/05ENG

Educational objectives

General objectives.
The "Mobile Edge and Cloud Computing" course delves into the integration of mobile computing, edge computing and cloud computing, focusing on architectural and software aspects for the development of modern, scalable, and adaptive distributed systems. The course includes the development of mobile applications that leverage features such as sensors in mobile devices and integrate modern Machine Learning libraries and cloud services. Additionally, the course covers techniques for load balancing, offloading, and resource optimization, as well as workload management in distributed scenarios.

Specific Objectives.

Knowledge and understanding:
The course aims to provide students with the necessary knowledge to understand:
(i) the specific characteristics of mobile apps compared to desktop apps;
(ii) the main design patterns for mobile applications;
(iii) the key security issues related to mobile application development;
(iv) the use of major cloud backend services and the edge/fog computing paradigm;
(v) the methodologies for designing and developing simple backend services deployed on cloud or edge platforms;
(vi) the classification of cloud service models.

Ability to apply knowledge and understanding:
Students will be able to design, develop, and test native applications for the Android operating system that interact with cloud services, using official tools for development, testing, and design. They will also be able to design, develop, and test simple backend services deployed on cloud or edge platforms to support mobile applications.

Autonomy of judgment:
Based on the skills acquired, the student must be able to evaluate the advantages of the disadvantages of the technologies with which it is possible to develop apps (native, hybrid and web based applications), evaluate / choose in an optimal and critical way the cloud support functionalities for the operation of mobile applications; to judge the feasibility, complexity and implications of new possible applications, also indicated by third parties. In addition, it must be able to update itself based on possible future technologies related to mobile apps or cloud services.

Communication skills:
The student must be able to motivate the technological, methodological and architectural choices to other people in the sector, as well as to present, even to inexperienced people, the operation and characteristics of possible new applications

Learning ability:
To stimulate the ability to learn, practical exercises will be carried out on the various topics covered and will be required to critically use information available for specific problems on various discussion platforms (eg Stack Overflow, official sites, blogs, etc.)

1052222 | Planning and Reasoning2nd1st6ING-INF/05ENG

Educational objectives

This course introduces the main ideas of automated planning and mechanism for
formal logic reasoning within the field of artificial intelligence. The aim of
the sources is to prepare the student so that they can use the existing systems
for automated planning and understand their inner workings, which is
fundamental to adapt them to cope with issues arising from specific problems.
Furthermore, the student will understand the theoretical bases of the uses of
formal logics in artificial intelligence.

10596250 | Digital entrepreneurship2nd2nd6ING-INF/05ENG

Educational objectives

General objectives:

The main goal of the course is to provide students with a predominantly technological background the main tools for designing a digital entrepreneurial activity

Specific objectives

The course provides students with the main complementary skills to develop a digital entrepreneurship project and it is made of four main sections:
1) Training aimed at acquiring lean methodologies and techniques for designing. The training will be inspired by the concepts of design thinking with the aim of clarifying and evaluating the technical feasibility of the project, sustainability in terms of business and the ability to satisfy the needs of a user (i.e. desireability)
2) How to present the project. The pitch
3) Best-practices. Successful experiences presented by entrepreneurs and / or researchers
4) Project activities in which students will test the skills acquired in the course in the design of a digital business activity.

Knowledge and understanding:

At the end of the course the student will know the main techniques, processes and methodologies to limit the risks associated with starting a digital entrepreneurship project.

Apply knowledge and understanding:

The course is characterized by an experimental "learn by doing" approach inspired by modern theories of design thinking. The skills acquired will be demonstrated in the realization of the final project.

Critical and judgment skills:

Critical and judgmental skills will be mainly developed through the project activity and the permanent discussion within the group, between the project groups and with the instructors. The lean approach will force students to perform a continuous critical exercise with the aim of better understanding the strengths and weaknesses of the proposed solution.

Communication skills:

Students will be able to present the achieved results through the presentation of a Pitch in a concise but effective way

Learning ability:

The course aims to change the mentality of the students so that the need to deal with the outside world in a structured way, not simply focusing on technological aspects, becomes a custom capable of projecting them with greater awareness in entrepreneurial activities.

10616532 | Economics and computation2nd2nd6ING-INF/05ENG

Educational objectives

General outcomes:
The course will present a broad survey of topics at the interface of computer
science, data science, and economics, emphasizing efficiency, robustness, and application to emerging online markets. It will introduce the principles of algorithmic game theory and mechanism design, algorithmic market design, as well as machine learning in games and markets. It will demonstrate applications to case studies in Web search and advertising, network economics, Data, cryptocurrency, and AI markets.

Specific outcomes:
Knowledge and understanding:
The algorithmic and mathematical economics principles underlying the design and the operation of efficient and robust online markets. The application of these principles in concrete examples of online markets.

Applying knowledge and understanding:
Being able to design and analyze algorithms for concrete online market applications with respect to the requirements of efficiency and robustness.

Making judgements:
Being able to evaluate the quality of an algorithm for online market applications, discriminating the modeling aspects from those related to algorithmic and system implementation.

Communication skills:
Ability to communicate and share the modeling choices and system requirements, as well as the results of the analysis of the efficiency of online market algorithms.

Learning skills:
The course stimulates the students to acquire learning skills at the crossroads of computer science, economics, and digital market applications, including the different languages used in these fields.

10616533 | Graph mining and applications2nd2nd6ING-INF/05ENG

Educational objectives

The course will present models and algorithms for the analysis of graphs as with applications on various areas. The goal at the end of the course, is for student to know algorithms and frameworks that can allow them to analyze large graph data.

The student must acquire 12 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
10616534 | Information technologies for smart manufacturing1st1st6ING-INF/05ENG

Educational objectives

General Objectives.
- Understanding of the main application scenarios relevant to Smart Manufacturing technologies
- Familiarity with the technologies utilized in Smart Manufacturing including those for: (a) Low-level programming of machinery, (b) Data transmission over industrial networks, (c) Development of Artificial Intelligence solutions (Computer Vision, Symbolic Artificial Intelligence, Machine and Deep Learning);
- Ability to design and develop practical solutions in the field of Smart Manufacturing;
- Understanding the integration of smart manufacturing systems into the modern Big Data Continuum;
- Understanding the technological stack used in the industrial field and the necessity of integrating it into higher-level solutions.

Specific objectives:
Ability to:
- Identify the most suitable techniques for developing a Smart Manufacturing solution that meets an industrial need;
- implement the proposed solution, identifying the most appropriate design and implementation tools, among available ones;
- Design and implement experiments to evaluate proposed solutions in realistic settings;

Knowledge and understanding:
- knowledge of main application scenarios;
- knowledge of main techniques of analysis;
- understanding of methodological and theoretical foundations of main analysis techniques;
- knowledge and understanding of main evalutation techniques and corresponding performance indices.

Apply knowledge and understanding:
- Being able to translate application requirements into concrete Smart Manufacturing problems;
- being able to identify the most suitable techniques and tools to address the aforementioned problems;
- being able to estimate in advance, at least qualitatively, the degree of scalability of proposed solutions.

Critical and judgment skills:
Being able to evaluate, also experimentally, the effectiveness and efficiency of proposed solutions.

Communication skills:
Being able to effectively describe the requirements of a problem and provide to third parties the relative specifications, design choices and the reasons underlying these choices.

Learning ability:
The course will facilitate the development of skills for the independent study of topics related to the course. It will also allow students to identify and critically examine material contained in advanced manuals and/or scientific literature, allowing them to face new application scenarios and/or apply alternative techniques to known ones.

1027171 | NETWORK INFRASTRUCTURES1st1st6ING-INF/03ENG

Educational objectives

General Objectives
The "Network Infrastructures" course provides an in-depth overview of the main architectures, protocols, and technologies of modern network infrastructures, with a particular focus on broadband access networks, optical transport networks, and next-generation wireless solutions. Students will gain a detailed understanding of the fundamental technologies and protocols for configuring and managing telecommunications networks, covering both theoretical and practical aspects. The course includes hands-on exercises on network configurations using advanced simulation tools, developing essential operational skills in the telecommunications sector. Additionally, key network security solutions and Quality of Service (QoS) support mechanisms will be analyzed, preparing students to understand and address emerging challenges in network infrastructures.

Specific Objectives
Knowledge and understanding: Students will acquire a deep understanding of network architectures, access technologies (xDSL, PON, LTE, 5G), transport protocols (OTN, MPLS), and routing mechanisms.

Applying knowledge and understanding: Students will be able to configure, analyze, and troubleshoot IP networks using simulation tools such as Kathara.

Autonomy of judgment: Students will develop the ability to critically evaluate different network technologies and select optimal solutions based on security, performance, and scalability requirements.

Communication skills: Students will be able to present network technology concepts clearly in both technical and general contexts.

Learning skills: The course will provide methodological foundations to keep up with the continuous evolution of network technologies and independently explore new solutions and emerging standards in the telecommunications sector.

1023235 | Robotics I1st1st6ING-INF/04ENG

Educational objectives

General objectives
The course provides basic tools for the control of robotic systems: kinematic analysis, trajectory planning, programming of motion tasks for robot manipulators in industrial and service environments.

Specific objectives

Knowledge and understanding:
Students will learn how actuation units and sensing components of robots operate, the basic methods for the kinematic modeling, analysis and control of robot manipulators, as well as the main algorithms for trajectory planning.

Apply knowledge and understanding:
Students will be able to analyze the kinematic structures of industrial robots and to design algorithms and modules for planning and controlling robot trajectories.

Critical and judgment skills:
Students will be able to characterize the functionality of a robotic system with reference to a given industrial or service task, analyzing the complexity of the solution, its performance, and the possible weaknesses.

Communication skills:
The course will allow students to be able to present the main problems and the technical solutions related to the use and application of robotic systems.

Learning ability:
The course aims at developing autonomous learning abilities in the students, oriented to the analysis and solution of problems in the use of robots.

1022870 | NEURAL NETWORKS1st1st6ING-IND/31ENG

Educational objectives

General objectives:
The course is intended as a broad overview to neural networks, as used today in a number of applicative fields. It provides a strong theoretical and practical understanding of how neural networks and modern deep networks are designed and implemented, highlighting the most common components, ideas, and current limitations.

Specific objectives:
From a theoretical point of view, we will review the general paradigm of building differentiable models that can be optimized end-to-end with gradient descent from data. We will then overview essential components to design architectures able to work on images (convolutive layers), sequences (recurrent layers), and sets (transformer layers). The last part of the course will then focus on a selection of important research topics, including graph neural networks, continual learning, and generative models.

Knowledge and understanding:
At the end of the course, the student will have a broad understanding of how deep networks work in practice, with the capability of implementing new components from scratch, re-using existing models, or designing new architectures for problems beyond the overview of the course.

Critical and judgment skills:
The student is expected to be able to analyze a new problem requiring machine learning, and design the appropriate neural network based solution to tackle it, understanding both its strengths and its drawbacks.

Communication skills:
The course will foster communication skills in terms of being able to describe (in both a technical and non-technical way) the mathematics underlying the models, as long as writing clear and understandable code for its implementation.

Learning ability:
Beyond the topics of the course, the student will be able to autonomously study new topics on the research frontier, and navigate the current scientific literature and software panorama.

1044398 | INTERACTIVE GRAPHICS1st2nd6ING-INF/05ENG

Educational objectives

Knowledge and understanding:

Have the student acquire the basics of 3D graphic programming with particular emphasis on animation and interactive visualization techniques. In particular the topics covered include: Fundamentals of computer graphics, interactive rendering and animation, graphics pipeline, transformations, visualizations, rasterization, lighting and shading, texture-mapping, animation techniques based on keyframes, physical simulations, particle systems and animation of characters. An introduction to computing on specialized graphics hardware (GPGU) will also be provided.

Applying knowledge and understanding:

To make the student familiar with the mathematical techniques underlying 3D graphics, as well as the ability to program complex and interactive environments in 3D graphics using the OpenGL library or one of its variants

Making judgements:

Deep understanding of the operation of a 3D graphics system in its hardware and software components. Knowledge of the HTML5 standard and the Javascript language, application of the WebGL library and some higher level libraries. Understanding of the problems of efficiency and visual quality of 3D graphics applications

Communication skills:

Development of interactive applications on the web in 3D graphics.

Learning skills:

Ability to understand the technical complexities in the realization of interactive applications in 3D graphics. Ability to critically analyze the solutions on the market and analyze strengths and weaknesses.

1052229 | Computer Vision1st2nd6ING-INF/05ENG

Educational objectives

GENERAL OBJECTIVES
The course aims to introduce the student to the fundamental concepts of artificial vision and to the construction of autonomous systems of interpretation and reconstruction of a scene through images and video. The course deals with basic elements of projective and epipolar geometry, methods for 3D vision and vision based on multiple views, and methods for metric reconstruction and image and video interpretation methods. Furthermore the course illustrates the main techniques for the recognition and segmentation of images and videos based on machine learning.

SPECIFIC OBJECTIVES

Knowledge and Understanding.
The course stimulates students' curiosity towards new methodologies for the analysis and generation of images and video. The student learns new concepts that allow him to acquire a basic knowledge of computational vision.

Apply Knowledge and Understanding.
Students deepen and learn programming languages ??to apply the acquired knowledge. In particular they deepen the Python language and learn Tensorflow. The latter offers students the possibility of programming deep learning applications. They use this brand new technology to make a project to recognize specific elements in images and videos.

Critical and Judgment skills.
The student acquires the ability to distinguish between what he can achieve with the tools he/she has learned, such as generating images or recognizing objects using deep learning techniques, and what is actually required for the realization of an automatic vision system. In this way she/he is able to elaborate a critical judgment on the vision systems available to the state of art and to assess what can actually be achieved and what requires further progress in research.

Communication skills.
The realization of the project, as part of the exam program, requires the student to work and give a contribution within a small work group. This together with the solution of exercises in the classroom, and to the discussions on the most interesting topics it stimulates the student's communication skills.

Learning ability.
In addition to the classic learning skills provided by the theoretical study of the teaching material, the course development methods, in particular the project activities, stimulate the student to the self-study of some topics presented in the course, to group work, and to the application concrete knowledge and techniques learned during the course.

10606830 | Internet-of-Things Networks and Protocols1st2nd6INF/01ENG

Educational objectives

The course will make students aware of the challenges behind the design, implementation and field use of Wireless system, sensing systems and the Internet of Things. The course will present both the theoretical foundations and practical aspects you need to know to develop such systems. Hands on lab experiences are associated to the course.

Part 1, Wireless networks

Fundamentals of wireless systems

Fundamental of ad hoc and cellular networks

Part 2, Internet of Things Core

Internet of Thigs applications, architectures, enabling technologies and protocols

Part 3, Emerging Technological Trends in Internet of Things

Zero power sensing systems: Wake Up Radio, energy harvesting, ...

ML based system optimization

Cyber physical systems for the Blue Economy

Part 4, From technologies to Applications

Internet of Things for smart planet and smart cities: practical examples of how to put the pieces together to implement real systems

Part 5 (Lab): Simulating, implementing and testing novel ideas on wireless networked systems and IoT systems

Performance evaluation of Internet of Things systems: How to model, what to model

Network simulators for Internet of Things

How to move from an idea to a validated idea to a solution

Lab: The course provides some lectures on C++ tailored to what needed to program simulators on Internet of Things systems.

For students with limited background on C/C++, recording of classes on C++ from previous courses will be shared so that you can get the needed background

10606936 | Programmable networks1st2nd6ING-INF/03ENG

Educational objectives

General Objectives.
The course aims to provide students with an overview of network programmability, introducing the main architectures and enabling technologies. Through frontal teaching and practical exercises, students will be able to configure network devices, design and implement network management automation applications, develop control applications, and define new packet processing logics.

Specific Objectives.
Knowledge and understanding:
Understanding of the main architectures supporting programmable networks, including the functions performed by different logical blocks.

Application of knowledge and understanding:
Ability to design and develop network control applications, network automation, and packet processing pipelines.

Critical and judgmental abilities:
Ability to critically analyze the cost/benefit relationship regarding the use of centralized control architectures, reactive or proactive approaches, physical or virtualized network functions.

Communicative skills:
Through group activities carried out in the classroom and the completion of the exam project, students will acquire the ability to illustrate the logic of operation of the various developed network functions, as well as explain how these can integrate with various architectural elements.

Learning abilities:
The course provides students with a structured and systematic vision of the various points of programmability in a network infrastructure, as well as commonly used architectures. This knowledge will enable students to easily understand the role of network programmability even in application scenarios not covered in the course.

1052058 | Laboratory of Network Design and Configuration1st2nd6ING-INF/03ITA

Educational objectives

GENERAL
The aim of the course is to provide a practical approach about the management of IP networks. The course will allow students to critically evaluate the main network protocols studied in previous courses (IP addressing, routing protocols, Ethernet, etc…) and it will describe advanced network solutions (NAT, Virtual LAN, Access Control List, etc…). A network emulator will be used to configure an IP network like in a real scenario, so that to implement the protocols studied; moreover, specific troubleshooting procedures will be described and tested.

SPECIFIC
• Knowledge and understanding: to know the main network protocols used in an IP network.
• Applying knowledge and understanding: to configure an IP network by means of a network emulator providing a configuration interface for IP routers and Ethernet switches.
• Making judgements: to carry out network design solutions as a function of specific network requirements.
• Communication skills: (none).
• Learning skills: ability to continue successive studies concerning with advanced networking.

1047220 | BIOINFORMATICS1st2nd6ING-INF/06ENG

Educational objectives

General outcomes:
The course will focus on statistical and unsupervised data mining methods for medicine. Students will acquire basic biological knowledge, knowledge of major biological databases and data analysis tools, bioinformatics skills and familiarity with omics data analysis.

Specific outcomes:
Knowledge and understanding:
Students become familiar with basic biological concepts, R programming applied to bioinformatics, the analysis of gene expression data using statistical and unsupervised methods for the investigation of complex diseases.

Applying knowledge and understanding:
Students will be able to perform a standard bioinformatic analysis by applying the statistical techniques acquired during the course to identify modulated molecules potentially characterizing a disease phenotype.

Making judgements:
Students will be able to evaluate the quality of the performed data analysis, characterizing the results through the investigation tools presented during the course and seeking for literature-based evidence of the obtained results.

Communication skills:
The course includes practical sessions and a final project activity that will allow the student to be able to understand, present and adequately discuss the results obtained from a basic bioinformatics data analysis carried out on real case studies, as well as communicate and justify the methodological and parameter choices used to accomplish this analysis.

Learning skills
The course includes theoretical lessons that will allow the student to develop the usual learning skills from the theoretical study of the teaching material, and practical sessions, in particular project activities on real case studies of molecular data analysis relating to various pathologies, thus stimulating the student both to independently study some of the topics presented in the course and to concretely apply the notions and techniques learned during the course.

10600453 | Project management1st2nd6ING-IND/35ENG

Educational objectives

GENERAL OBJECTIVES
The course clarifies and transfers to students the founding principles, the scope and the fundamental tools
and methodologies of Project Management (PM). Starting from the concept of integrated management of projects, all the main methods for managing the performance variables of quality, time and cost will be proposed. In line with the main standard processes of Project Management, the internationally standardized Project Management terminology will be used. At the end of the course the student will be able to plan a project starting from the objectives of quality, time and cost defined by internal or external customers of a company. She/he will also be able to critically analyze an ongoing or closed project proposing both organizational and managerial improvements and both the use of correct Project Management methodologies.

SPECIFIC OBJECTIVES
KNOWLEDGE AND UNDERSTANDING. The course will allow an in-depth comprehension of the fundamental concepts and tools of Project Management in the main application contexts: new product/service development, business process reengineering and management of engineering-to-order jobs . The students will learn to recognize and to master the best practices of Project Management and to apply them in real contexts.

CAPABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING. Through this course students will be able to plan a project starting from the objectives of quality, time and cost requested by the internal or external client, to manage the project execution phase through a proper monitoring of the activities, and to assess project benefits in line with the expectations of the main stakeholders. They will also be able to critically analyze a project in progress or finished proposing both organizational and management improvements and the use of correct Project Management methodologies.

MAKING AUTONOMOUS JUDGEMENTS. After the course, students will be able to choose, for a given project, the best methodology through a deep understanding of the requirements and constraints of the business context; moreover they will develop the ability to critically analyze a project.

COMMUNICATE SKILLS. At the end of the course the students will be able to illustrate the concepts of Project Management using the standard international terminology, to organize information and project data according to a format and a standardized reporting process comprehensible to professionals, and to present in depth all the aspects of a project to an audience of specialists and non-specialists.

LEARNING SKILLS. The student will develop the capability to autonomously study, the capability of teamworking and the critical understanding and evaluation of projects and of different Project Management methodologies.

10616549 | Advanced cryptography1st2nd6INF/01ENG

Educational objectives

General Objectives
Traditional cryptographic tools are insufficient for data protection
in emerging scenarios. The objectives of this course consist of
presenting several modern cryptographic tools and techniques along
with their applications to realize the principle of "security and
privacy by design" in the Cyberspace. This course provides both
theoretical and practical expertise.

Specific Objectives
The course will illustrate the power of advanced signature schemes,
advanced encryption schemes, verifiable random functions,
privacy-preserving proof systems and cryptographic puzzles. A
particular focus will be given to concrete applications like e-voting,
e-auction, privacy-preserving contact tracing, digital cash, anonymous
cryptocurrencies, identity wallet, secure messaging, fighting
misinformation, GDPR compliance (right to be forgotten and data
minimization principles), practical libraries and tools for advanced
cryptography.

Knowledge and Understanding:
-) Knowledge of the security properties of advanced cryptographic tools.
-) Knowledge of the main hardness assumptions, on which the security
of advanced cryptographic tools is based.
-) Knowledge of the cryptographic schemes currently used in real life.
-) Understanding of their (practical and theoretical) properties.

Applying knowledge and understanding:
-) How to select and combine together the right advanced cryptographic
tools for a given application.
-) How to analyze the security and efficiency of a system based on
advanced cryptographic tools.

Critiquing and judgmental skills:
The students will be able to judge whether a system is secure or not
according to a realistic threat model.

Communication Skills:
The students will learn how to illustrate the resilience of a digital
system to concrete attacks.

Ability of learning:
The students will obtain the necessary background for a deeper study
of the subjects.

10616576 | Innovation Management1st2nd6ING-IND/35ITA

Educational objectives

GENERAL OBJECTIVES
The course aims to provide students with a basic understanding of concepts and tools relevant to Innovation Management. Specifically, the course aims to help students understand: the forms, models, and sources of innovation; standard conflicts and the definition of dominant design; market entry timing choices; innovation protection mechanisms; the process of developing a new product; the integration of environmental sustainability into marketing strategy and new product development. Furthermore, through the analysis of a series of case studies, the course aims to develop students' critical analysis skills, enabling them to interpret and explain business behavior and outcomes within the context of technological innovation strategies in light of the concepts learned during the course.

SPECIFIC OBJECTIVES
KNOWLEDGE AND UNDERSTANDING. The course will enable students to acquire knowledge and understanding of the main concepts and fundamental tools of Innovation Management. Students will learn to recognize and master best practices and success factors of Innovation Management and apply them in real-world contexts.

APPLICATIVE SKILLS. Thanks to the course, students will be able to critically evaluate an enterprise's technological innovation strategies, as well as classify products based on their environmental impact.

JUDGMENT AUTONOMY. The course will empower students to choose, given the main environmental forces, the characteristics of the enterprise and innovation, the best technological innovation strategies. Additionally, students will develop the ability to critically analyze innovation management.

COMMUNICATION SKILLS. By the end of the course, students will be able to illustrate concepts of innovation management using internationally established terminology and models, organize information and data in a format and reporting process understandable to professionals.

LEARNING ABILITY. Students will develop independent study skills and critical understanding and evaluation of marketing and technological innovation strategies and related tools

10606827 | Reinforcement Learning2nd1st6ING-INF/05ENG

Educational objectives

General Objectives.
The Reinforcement Learning (RL) course aims to introduce students to fundamental and advanced techniques of RL, a significant area within artificial intelligence and machine learning. Students will gain skills to design and implement algorithms that enable systems to learn and improve autonomously through experience, optimizing their decisions in real-time.

Specific Objectives.
Students will explore key concepts of RL such as decision policies, Markov Decision Processes, Q-learning, and deep reinforcement learning. They will learn to:
Model complex problems using the RL approach.
Develop and implement algorithms like Q-learning and Deep Q-Networks (DQN).
Apply RL techniques in real-world scenarios like robotics, gaming, etc.

Knowledge and Understanding:
In-depth knowledge of basic and advanced RL algorithms.
Understanding of reward-based learning models and their practical applications.
Ability to interpret the results of RL algorithms and evaluate their effectiveness in various contexts.

Applying Knowledge and Understanding:
Use software frameworks like TensorFlow or PyTorch to implement and test RL algorithms.
Analyze current research case studies and projects to understand real-world RL applications.
Develop functional prototypes using RL to solve specific problems.

Autonomy of Judgment:
Students will develop the ability to critically assess RL algorithms, considering their applicability, efficiency, and potential biases. They will also be able to select the most appropriate algorithm for a given problem.

Communication Skills:
Students will learn to effectively communicate RL concepts, algorithm design decisions, and outcomes to both technical and non-technical audiences using a variety of communication media.

Next Study Abilities:
This course will prepare students to pursue advanced studies and research in RL, providing the necessary foundation to tackle open problems and innovate in the field. Students will be encouraged to actively contribute to the scientific community through publications, conferences, and collaborations.

1052218 | Probabilistic Robotics2nd1st6ING-INF/05ENG

Educational objectives

General Objectives:
Acquiring knowledge on the basic tools for probabilistic state estimation in robotics.
Being able to apply these tools to real study cases and to implement working solutions.
Evaluate the quality of a state estimator.

Specific Objectives:

Knowledge and Understanding:
- how to manipulate probability distributions, in particular Gaussians
- the basics of filtering (hisrogram filters, Gaussian filters, particle filters)
- the generic model for a stationary non-linear or linear
- Dense and Sparse formulation of minimization algorithms (Gauss-Newton, Levenberg Marquardt)
- The problem of Data Association, and typical tools to approach it (RANSAC, Heuristics)
- Typical study cases of estimation problems in robotics (Calibration, Localization, Mapping and SLAM)

Applying Knowledge and Understanding:
- Being able to model a problem and to adapt the tools to its solution.
- Develop a functioning estimator.

Making Judgements:
- Being able to analyze the pros and contra of different solutions to the same problem.
- Spot the tools applicable to solve all subtasks in the design of an estimator.
These abilities are supported by the Project to be developed as a part of the exam.
The course interleaves theory and practice. During the practicals the students are asked to
complete code snippets provided by the teacher and to run their programs on real study cases.

Communication Skills:
- Acquire a common language to describe estimators and a development methodology
that supports interaction between developers by defining a standard set of goals.

Learning Skills:
The student will possess the abilities and the skills to approach general estimation problems.
The examples in the domain of navigation provided during the course serve as study cases.
The indivudal topics learned (Gaussian Manipulation, Filtering Designs, Minimization)
are useful instruments to approach a far more general class of problems

10589744 | Process Management and Mining2nd1st6ING-INF/05ENG

Educational objectives

General Objectives.
Major advances in technology have resulted in the widespread implementation of information systems into businesses and organizations. This course introduces languages, principles and methods of process modeling, analysis and innovation as critical factors to the overall success of a business.

The course centers around the role of conceptual (sometimes referred as business) process modeling as a means to understand and capture the workflows of interest in information systems of various kind. Students will learn the elements of process models and their precise meaning using the Business Process Model and Notation (BPMN) international standard.

The course will cover processes within organizations (process orchestrations) and also interacting processes involving several organizations (process choreographies), and will look at techniques to analyze and improve such processes from a formal perspective.

The course will also provide a basic knowledge and understanding of how to design, test and implement information systems for executable processes.

Finally, the course will present methods and tools to properly use process mining techniques, which enable to discover process models (whose structure is unknown at the outset) starting from the logs recording the concrete events executed by the real workflows.

Specific Objectives.
Knowledge and understanding:
At the end of the course, the students:
- learn the main methods to carry out a BPM (Business Process Management) project;
- are able to model a process with the BPMN standard;
- are able to implement and execute a process through a real information system;
- understand process mining algorithms and techniques.

Applying knowledge and understanding:
The students will be able to use suitable methodological and technological solutions for
(i) modeling a process in BPMN;
(ii) analysing it with quantitative techniques;
(iii) executing and monitoring it with an information system.

Making judgements:
The student acquires autonomy of judgment in proposing the most suitable approach to carry out a BPM project.

Communication:
The project activities and the lectures of the course allow the students to develop the proper abilities to communicate/share the design choices and development methods for realizing any step of the business process life-cycle.

Lifelong learning skills:
In addition to the traditional learning skills provided by studying the teaching material, the project activities stimulate the student to deepen her knowledge of the BPM topic, to improve the teamwork, and to the concrete application of the concepts and techniques investigated during the course.

1055061 | Security Governance2nd1st6ING-INF/05ENG

Educational objectives

General Objectives.
The main objective of the course is to provide an introduction to all issues relating to cybersecurity management, the main security processes and the value of the measurability of the security level.

Specific Objectives.
Knowledge and understanding:
The student will learn how building up a security governance environment is a vertical problem with respect to the organisation and that its management impacts different enterprise's levels.
Aspects related to laws, regulations and both international and national standards will be analysed. It will then be discussed how, from a methodological point of view, these aspects are transposed and implemented through the definition of appropriate frameworks for cybersecurity management.

Apply knowledge and understanding.
Another fundamental aspect of the course is to provide students with methodologies and tools to let them able to face open problems with respect to the analysis, verification and certification of cybersecurity.

Critical and judgment skills:
The student will acquire the necessary tools to analyse, evaluate and compare different situations and design the appropriate countermeasures to improve the security status of the considered enterprise.

Communication skills:
The student will learn the domain specific language.

Learning ability:
The student will be able to adopt and re-apply all the methods discussed during the course

1054962 | Secure Computation2nd2nd6INF/01ENG

Educational objectives

General Objectives
The goal of the course is to provide an overview of the most advanced cryptographic techniques and their applications.

Specific Objectives
The students will learn the concept of secure computation, which allows a network of mutually distrustful players, each holding a secret input, to run an interactive protocol in order to evaluate a function on their joint inputs in a secure way, i.e. without revealing anything more than what the output of the function might reveal. Secure computation is an abstraction of several important applications, including electronic voting, digital auctions, cryptocurrencies, zero knowledge, and more.

Knowledge and Understanding
-) Knowledge of advanced cryptographic tools, including zero knowledge, digital commitments, and fully homomorphic encryption.
-) Knowledge of the foundations of secure computation, i.e. how to define security of interactive protocols.
-) Understanding of the working principles behind distributed ledgers and cryptocurrencies.

Applying knowledge and understanding:
-) How to analyze the security of interactive protocols.
-) How to design secure interactive protocols.
-) How to program a secure smart contract.

Autonomy of Judgment
The students will be able to judge the security of advanced cryptographic applications.

Communication Skills
How to describe the security of interactive protocols for electronic voting, cryptocurrencies, or general-purpose computation.

Next Study Abilities
The students interested in research will learn what are the main open challenges in the area, and will obtain the necessary background for a deeper study of the subjects.

10606869 | Multilingual natural language processing2nd2nd6INF/01ENG

Educational objectives

General Objectives
The goal of the course is to provide an overview of state-of-the-art natural language processing techniques and their applications.

Specific Objectives
Students will learn the principles of automatic language processing, understanding how machines can interpret, generate and respond to human language. This includes topics such as word representation, word and sense embeddings, neural architectures for NLP, machine translation, and more general text generation.

Knowledge and Understanding
-) Knowledge of neural network architectures, such as recurrent neural networks and Transformers, used for natural language processing.
-) Knowledge of supervised and unsupervised learning methods in NLP.-) Knowledge of lexical and phrasal computational semantics techniques.
-) Understanding of language models for interpreting and generating text.

Applying knowledge and understanding:
-) How to develop models for understanding language
-) How to develop models for generating language
-) How to use neural architectures for NLPAutonomy of Judgment.

Autonomy of Judgment
Students will be able to evaluate the effectiveness of NLP techniques in different applications.

Communication Skills
Students will be able to explain the principles and techniques of natural language processing.

Next Study Abilities
Students interested in research will discover what are the main open challenges in the area of NLP, obtaining the necessary foundation for more in-depth studies in the field.