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

Curriculum(s) for 2026 - Applied Computer Science and Artificial Intelligence (33502)

Single curriculum
Lesson [SSD] [Language] YearSemesterCFU
10630324 | CALCULUS [MATH-03/A] [ENG]1st1st12

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

UNIT 1 [MATH-03/A] [ENG]1st1st6

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

UNIT 2 [MATH-03/A] [ENG]1st1st6

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

10631060 | Computer Architecture [INFO-01/A] [ENG]1st1st12

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

Unit 1 [INFO-01/A] [ENG]1st1st6

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

Unit 2 [INFO-01/A] [ENG]1st1st6

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

10627226 | Linear Algebra [MATH-02/A] [ENG]1st1st6

Educational objectives

Educational goals
Learning the fundamental concepts of linear algebra and the main techniques of matrix computation. Vector spaces, subspaces, bases and dimension. Linear systems and matrices. Determinants, rank and invertibility. Linear maps and their matrix representation. Eigenvalues, eigenvectors and diagonalization. Inner products, orthogonality and projections.

Knowledge and understanding
Knowledge of the fundamental concepts of linear algebra. Understanding the role of vectors, matrices and linear maps in the formulation and solution of mathematical problems. Ability to interpret and use the main algebraic and geometric properties of vector spaces.

Apply knowledge and understanding
Ability to solve linear systems and compute ranks, determinants, bases, dimensions, eigenvalues and eigenvectors. Ability to apply linear algebra techniques to problems in geometry, mathematical modelling and the analysis of linear systems.

Making judgements
Ability to choose the most appropriate tools to address a linear algebra problem and to assess the correctness of the procedures and results obtained.

Communication skills
Ability to clearly present definitions, theoretical results and computational procedures related to linear algebra.

Learning skills
Ability to learn and apply further mathematical tools starting from the concepts and techniques learned during the course.

10630468 | PROGRAMMING [INFO-01/A] [ENG]1st1st12

Educational objectives

General objectives:
This course will introduce students to very basic algorithm design and analysis. They will learn various established algorithms for solving fundamental problems, such as sorting or searching, together with the simplest tools to analyze them.

Knowledge and understanding
At the end of the course, students will be familiar with the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, major sorting algorithms, and the most basic implementations of the dictionaries.
Apply knowledge and understanding:
At the end of the course, students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms based on the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity.

Critical and judgmental skills
Students will be able to analyze the quality of an algorithm and related data structures, both from the effective resolution of the problem and from the time complexity point of view.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified both through the written tests and during the oral examination. Students will be able to express an algorithmic idea rigorously at a high level, in pseudocode.

Learning ability
The acquired knowledge will allow students to face the study of other algorithmic design methodologies and more advanced data structures within a master's degree course.

UNIT 1 [INFO-01/A] [ENG]1st1st6

Educational objectives

General objectives:
This course will introduce students to very basic algorithm design and analysis. They will learn various established algorithms for solving fundamental problems, such as sorting or searching, together with the simplest tools to analyze them.

Knowledge and understanding
At the end of the course, students will be familiar with the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, major sorting algorithms, and the most basic implementations of the dictionaries.
Apply knowledge and understanding:
At the end of the course, students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms based on the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity.

Critical and judgmental skills
Students will be able to analyze the quality of an algorithm and related data structures, both from the effective resolution of the problem and from the time complexity point of view.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified both through the written tests and during the oral examination. Students will be able to express an algorithmic idea rigorously at a high level, in pseudocode.

Learning ability
The acquired knowledge will allow students to face the study of other algorithmic design methodologies and more advanced data structures within a master's degree course.

UNIT 2 [INFO-01/A] [ENG]1st1st6

Educational objectives

General objectives:
This course will introduce students to very basic algorithm design and analysis. They will learn various established algorithms for solving fundamental problems, such as sorting or searching, together with the simplest tools to analyze them.

Knowledge and understanding
At the end of the course, students will be familiar with the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, major sorting algorithms, and the most basic implementations of the dictionaries.
Apply knowledge and understanding:
At the end of the course, students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms based on the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity.

Critical and judgmental skills
Students will be able to analyze the quality of an algorithm and related data structures, both from the effective resolution of the problem and from the time complexity point of view.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified both through the written tests and during the oral examination. Students will be able to express an algorithmic idea rigorously at a high level, in pseudocode.

Learning ability
The acquired knowledge will allow students to face the study of other algorithmic design methodologies and more advanced data structures within a master's degree course.

10629563 | ALGORITHMS [INFO-01/A] [ENG]1st2nd6

Educational objectives

Educational goals

The course provides students with the theoretical and practical foundations of algorithm design and analysis. It covers the main algorithmic design paradigms, including greedy algorithms, divide-and-conquer techniques, and graph algorithms, while introducing computational complexity and computational tractability. By the end of the course, students will be able to analyse the correctness and efficiency of algorithms, compare alternative solution strategies, and design algorithmic solutions for medium-complexity computational problems.

Knowledge and understanding

Students acquire a solid understanding of the main algorithm design paradigms, fundamental data structures, and classical algorithms for optimisation, coding, scheduling, and shortest-path problems. They understand methods for analysing computational complexity and the principles underlying algorithm correctness.

Applying knowledge and understanding

Students are able to model computational problems, identify the most appropriate algorithmic strategy, design correct and efficient algorithms, analyse their time and space complexity, and compare alternative solutions according to their performance.

Making judgements

Students develop the ability to critically evaluate algorithms and data structures by identifying their strengths, limitations, and applicability. They are able to justify their design choices by considering correctness, efficiency, and problem constraints.

Communication skills

Students acquire the ability to describe algorithms and prove their correctness using appropriate technical language, pseudocode, and mathematical notation. They are also able to present clearly the design process and the complexity analysis of the proposed solutions.

Learning skills

Students develop independent learning skills that enable them to study new algorithms, design techniques, and theoretical results autonomously, applying the acquired knowledge critically to computational problems beyond those explicitly covered during the course.

10630324 | CALCULUS [MATH-03/A] [ENG]1st2nd12

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

UNIT 1 [MATH-03/A] [ENG]1st2nd6

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

UNIT 2 [MATH-03/A] [ENG]1st2nd6

Educational objectives

Educational goals
The course aims to provide the foundations of differential and integral calculus for functions of one real variable, developing the ability to understand, analyze, and solve fundamental mathematical problems. Students acquire theoretical and practical tools useful for further studies in mathematical analysis and related scientific disciplines.

Knowledge and understanding
Students acquire an understanding of the fundamental concepts of mathematical analysis, including real and rational numbers, limits, derivatives, integrals, sequences, and series. They develop the ability to understand definitions, theorems, and key properties of differential and integral calculus.

Applying knowledge and understanding
Students are able to apply theoretical knowledge to solve standard problems in differential and integral calculus, sequences, and series. They can use learned methods and techniques to analyze functions and solve basic exercises.

Making judgements
Students develop the ability to assess the correctness of procedures and results, choose appropriate solution methods, and reflect on the logical structure of mathematical arguments.

Communication skills
Students acquire the ability to express mathematical concepts and results clearly, rigorously, and in a structured way, using correct notation and appropriate scientific language in both written and oral communication.

Learning skills
Students develop a solid foundation for further studies in mathematics and scientific disciplines, gaining autonomy in learning and the ability to explore more advanced mathematical tools.

10631060 | Computer Architecture [INFO-01/A] [ENG]1st2nd12

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

Unit 1 [INFO-01/A] [ENG]1st2nd6

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

Unit 2 [INFO-01/A] [ENG]1st2nd6

Educational objectives

Educational goals: The course aims to provide the foundational skills regarding modern computer architecture and low-level programming. The goal is to guide students through the understanding of data coding, Boolean algebra, and logic circuits, leading up to the detailed analysis of a microprocessor (MIPS architecture) and software development in assembly language, establishing the methodological foundations for studying operating systems.

Knowledge and understanding: By the end of the course, students will know the principles of modern computers (pipelining, caching, branch prediction, multi-processing), binary coding methodologies, Boolean Algebra and logic circuits, microprocessor organization focusing on the MIPS architecture, and the structure and paradigms of assembly programming (data management and recursion).

Applying knowledge and understanding: Students will be able to apply Boolean Algebra to analyze and synthesize combinational and sequential circuits, use the MIPS architecture to evaluate the impact of programming choices on hardware performance, develop assembly programs for algorithms and data structures, and design systems based on registers and interconnected modules.

Making judgements: Students will be able to critically evaluate different circuit design and microprocessor optimization techniques to choose the most efficient solution, independently understanding and assessing software performance issues on specific hardware.

Communication skills: Students will be able to justify and argue with technical rigor the choices made in logic circuit design or assembly program implementation, clearly presenting complex technical topics related to computer architecture.

Learning skills: Students will be able to identify the differences and advantages of various computer design techniques, acquiring the necessary conceptual and methodological foundation to independently study related disciplines such as Operating Systems.

10631810 | Physics [PHYS-01/A] [ENG]1st2nd6

Educational objectives

GENERAL OBJECTIVES

To describe the fundamental laws of physics and their applications to real-world situations.

To develop problem-solving skills by describing physical phenomena using mathematical formulae on one hand and physical intuition on the other.

SPECIFIC OBJECTIVES
Knowledge and understanding

To develop a basic understanding of Newtonian mechanics, fluid physics, thermodynamics, electricity and magnetism.

To know the fundamental concepts of force, torque, work, potential energy, kinetic energy, mechanical energy, power, impulse, linear momentum and angular momentum.

To understand some conservation laws in physics and their importance.

To know the concepts of temperature, heat and entropy applied to simple thermodynamic systems.

To know the concepts of electric field and electric potential, magnetic field and electric currents.

To understand the text of a physics problem.

Application skills

The student will be able to solve a wide range of physics problems by formalising their solution from a mathematical point of view.

The student will also be able to solve physics problems in a coherent way, both from a formal and quantitative point of view, and to evaluate the dominant effects in a physical problem.

The student will be able to apply Newton’s laws to describe the motion of particles, systems of particles and the rotation of rigid bodies.

The student will be able to solve dynamical problems using the concepts of work, kinetic energy, potential energy and mechanical energy.

The student will be able to use the conservation of energy, linear momentum and angular momentum in a variety of situations.

The student will be able to solve simple problems involving fluids at rest and in motion.

The student will be able to solve simple problems involving thermal energy using the first law of thermodynamics.

The student will be able to demonstrate a basic understanding of the concept of entropy and the second law of thermodynamics.

The student will be able to describe electric fields and their associated potentials for stationary charges.

The student will be able to describe magnetic fields generated by steady currents and phenomena involving electromagnetic induction.

Critical and judgment skills

The student will be able to determine whether a relation between physical quantities or a physical law is correct, including from a dimensional analysis point of view.

The student will develop quantitative and analytical reasoning skills required to study, model and understand physics problems.

Communication skills

The student will be able to talk about physics using appropriate terminology.

The student will be able to describe a complex problem by isolating its most relevant aspects.

Learning skills

The student will be able to consult and understand a physics textbook.

10628751 | PROGRAMMING 2 [INFO-01/A] [ENG]1st2nd6

Educational objectives

ciao Pietro
ho ottimizzato anche questi
li ho inseriti se non va bene modifica e ricopio

Obiettivi generali:
Apprendimento delle nozioni fondamentali della programmazione orientata agli oggetti attraverso il linguaggio Java.

Obiettivi specifici:
Nozioni di programmazione orientata agli oggetti: classi e oggetti, incapsulamento, ereditarietà, polimorfismo, binding statico e dinamico, design pattern. Programmazione funzionale. Strumenti e metodologie per lo sviluppo software. Il linguaggio Java.

Conoscenza e capacità di comprensione:
Conoscenza dei costrutti della programmazione orientata agli oggetti, con particolare attenzione al linguaggio Java. Comprensione di programmi Java. Capacità di sviluppare programmi Java di piccole e medie dimensioni.

Capacità di applicare conoscenza e comprensione:
Capacità di applicare metodologie di sviluppo di base per sistemi software di piccole e medie dimensioni. Esperienza nell’utilizzo di strumenti per lo sviluppo di tali sistemi in Java.

Autonomia di giudizio:
Capacità critica nel distinguere istruzioni, costrutti di programmazione e pattern errati o inefficienti da quelli appropriati ed efficienti.

Abilità comunicative:
Presentazione del progetto sviluppato.

Capacità di apprendimento:
Capacità di apprendere e applicare nuove tecniche di programmazione partendo da quelle affrontate durante il corso.

General goals:
Learning fundamental notions of object-oriented programming through the Java language.

Specific goals:
Notions of object-oriented programming: classes and objects, encapsulation, inheritance, polymorphism, static and dynamic binding, design patterns. Functional programming. Tools and methodologies for software development. The Java language.

Knowledge and understanding:
Knowledge of object-oriented programming constructs, with a special focus on Java. Understanding of Java programs. Competence in developing small and medium-sized Java programs.

Applying knowledge and understanding:
Ability to apply basic development methodologies for small and medium-sized software systems. Experience with tools for developing such systems in Java.

Critical and judgment skills:
Ability to distinguish incorrect or inefficient instructions, programming constructs, and patterns from appropriate and efficient ones.

Communication skills:
Presentation of the developed project.

Learning ability:
Ability to learn and apply new programming techniques starting from those covered in the course.

10627517 | Calculus 2 [MATH-03/A] [ENG]2nd1st6
10626593 | Probability [MATH-03/B] [ENG]2nd1st6

Educational objectives

Educational goals
Basic concepts in probability theory. Discrete probability distributions, combinatorics, expectation and variance. Independence and correlation, conditional probability. Random variables, functions of random variables, joint and marginal distributions. Foundations of continuous probability.

Knowledge and understanding
Students are expected to become familiar with the basic concepts of discrete and continuous probability theory.

Applying knowledge and understanding
Students are expected to learn how to apply abstract probability theory to concrete examples.

Making judgements
Ability to evaluate the correctness of a mathematical argument involving probability theory.

Communication skills
Ability to produce rigorous and clear mathematical arguments.

Learning skills
Ability to learn and apply probability theory.

10630245 | Data Management and Analysis [INFO-01/A] [ENG]2nd1st12

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

Unit 1 [INFO-01/A] [ENG]2nd1st6

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

Unit 2 [INFO-01/A] [ENG]2nd1st6

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

10630120 | Systems and Networking [INFO-01/A] [ENG]2nd1st12

Educational objectives

Educational goals

The course provides students with fundamental knowledge of the operation of modern computing systems, from the system software that manages the resources of a single computer to the protocols that enable communication between hosts across the Internet. The course is organized into two integrated parts. The first part is devoted to operating systems and addresses the organization and services of the operating system, process and thread management, CPU scheduling, synchronization and concurrency, memory and virtual memory management, file systems, and the management of I/O and storage devices. The second part is devoted to computer networks and the Internet architecture, with particular emphasis on the TCP/IP protocol stack, the main protocols and mechanisms that enable host-to-host communication, packet forwarding, reliability and congestion control, name resolution, and medium access in local and wireless networks. Modern transport protocols, including QUIC, will also be presented, highlighting their role in the evolution of the Internet architecture. The course also includes practical activities aimed at understanding the behavior of the operating system and at configuring, observing, and analyzing networks and protocols.

Knowledge and understanding

By the end of the course, students will have acquired solid knowledge of the principles underlying operating systems and computer networks. Regarding operating systems, they will understand the role of the operating system as a resource manager and as an interface between hardware and applications, the life cycle of processes and threads, the main CPU scheduling policies, synchronization mechanisms and the classic problems of concurrency (mutual exclusion, semaphores, monitors, deadlock), as well as techniques for physical and virtual memory management, paging, and the organization of file systems and I/O. Regarding networks, students will understand the role of the different layers of the TCP/IP stack, from application-layer protocols to transport, network, and medium access mechanisms. They will understand the operation of fundamental protocols such as IP, TCP, UDP, and DNS, as well as the main routing mechanisms and issues related to reliability, congestion control, fragmentation, addressing, and channel sharing. In addition, they will acquire basic knowledge of wireless networks and the CSMA/CA protocol, and will understand the motivations and main characteristics of modern transport protocols such as QUIC.

Applying knowledge and understanding

Students will be able to analyze the behavior of an operating system, evaluating the effect of different process, memory, and resource management policies on overall system performance. They will be able to reason about concurrency scenarios, identifying and preventing race conditions, deadlocks, and consistency problems, and to compute fundamental quantities such as waiting times, completion times, and CPU utilization. Regarding networks, they will be able to analyze the operation of a TCP/IP network, identifying the role of the different protocols involved in end-to-end communication, interpret communication scenarios, and compute fundamental quantities such as delay, throughput, channel utilization, and transmission window sizes, evaluating the behavior of transport and network protocols under congestion, losses, or bandwidth constraints. They will also be able to configure simple network scenarios, observe packet exchanges, and interpret the results obtained through analysis tools and practical laboratory activities.

Making judgements

The course aims to develop students' ability to critically evaluate the design choices adopted both at the operating system level and at the network architecture level. Students will be able to discuss the advantages and limitations of the main solutions adopted in the management of a computer's resources, such as scheduling policies, synchronization mechanisms, and memory management strategies, and to compare network architectural solutions considering aspects such as scalability, reliability, efficiency, delay, security, mobility, and interoperability. They will also be able to compare traditional and modern protocols, such as TCP and QUIC, understanding the design motivations behind their evolution and evaluating the impact of different choices on the overall performance of the system and the network.

Communication skills

Students will acquire the ability to clearly and rigorously describe the operation of an operating system and of the main Internet protocols, as well as the mechanisms that regulate resource management and communication between devices. They will be able to use appropriate technical language to explain concepts such as process, thread, scheduling, synchronization, deadlock, virtual memory, encapsulation, addressing, routing, flow control, congestion control, name resolution, and medium access. The course also promotes the ability to present and discuss results derived from exercises, protocol analysis, and practical activities.

Learning skills

By the end of the course, students will have developed the skills needed to independently explore advanced topics in the fields of operating systems, computer networks, and the evolution of the Internet. They will be able to read technical documentation, understand system and protocol specifications, interpret experimental results, and update their knowledge with respect to the development of new systems, protocols, architectures, and technologies.

Unit 1 [INFO-01/A] [ENG]2nd1st6

Educational objectives

Educational goals

The course provides students with fundamental knowledge of the operation of modern computing systems, from the system software that manages the resources of a single computer to the protocols that enable communication between hosts across the Internet. The course is organized into two integrated parts. The first part is devoted to operating systems and addresses the organization and services of the operating system, process and thread management, CPU scheduling, synchronization and concurrency, memory and virtual memory management, file systems, and the management of I/O and storage devices. The second part is devoted to computer networks and the Internet architecture, with particular emphasis on the TCP/IP protocol stack, the main protocols and mechanisms that enable host-to-host communication, packet forwarding, reliability and congestion control, name resolution, and medium access in local and wireless networks. Modern transport protocols, including QUIC, will also be presented, highlighting their role in the evolution of the Internet architecture. The course also includes practical activities aimed at understanding the behavior of the operating system and at configuring, observing, and analyzing networks and protocols.

Knowledge and understanding

By the end of the course, students will have acquired solid knowledge of the principles underlying operating systems and computer networks. Regarding operating systems, they will understand the role of the operating system as a resource manager and as an interface between hardware and applications, the life cycle of processes and threads, the main CPU scheduling policies, synchronization mechanisms and the classic problems of concurrency (mutual exclusion, semaphores, monitors, deadlock), as well as techniques for physical and virtual memory management, paging, and the organization of file systems and I/O. Regarding networks, students will understand the role of the different layers of the TCP/IP stack, from application-layer protocols to transport, network, and medium access mechanisms. They will understand the operation of fundamental protocols such as IP, TCP, UDP, and DNS, as well as the main routing mechanisms and issues related to reliability, congestion control, fragmentation, addressing, and channel sharing. In addition, they will acquire basic knowledge of wireless networks and the CSMA/CA protocol, and will understand the motivations and main characteristics of modern transport protocols such as QUIC.

Applying knowledge and understanding

Students will be able to analyze the behavior of an operating system, evaluating the effect of different process, memory, and resource management policies on overall system performance. They will be able to reason about concurrency scenarios, identifying and preventing race conditions, deadlocks, and consistency problems, and to compute fundamental quantities such as waiting times, completion times, and CPU utilization. Regarding networks, they will be able to analyze the operation of a TCP/IP network, identifying the role of the different protocols involved in end-to-end communication, interpret communication scenarios, and compute fundamental quantities such as delay, throughput, channel utilization, and transmission window sizes, evaluating the behavior of transport and network protocols under congestion, losses, or bandwidth constraints. They will also be able to configure simple network scenarios, observe packet exchanges, and interpret the results obtained through analysis tools and practical laboratory activities.

Making judgements

The course aims to develop students' ability to critically evaluate the design choices adopted both at the operating system level and at the network architecture level. Students will be able to discuss the advantages and limitations of the main solutions adopted in the management of a computer's resources, such as scheduling policies, synchronization mechanisms, and memory management strategies, and to compare network architectural solutions considering aspects such as scalability, reliability, efficiency, delay, security, mobility, and interoperability. They will also be able to compare traditional and modern protocols, such as TCP and QUIC, understanding the design motivations behind their evolution and evaluating the impact of different choices on the overall performance of the system and the network.

Communication skills

Students will acquire the ability to clearly and rigorously describe the operation of an operating system and of the main Internet protocols, as well as the mechanisms that regulate resource management and communication between devices. They will be able to use appropriate technical language to explain concepts such as process, thread, scheduling, synchronization, deadlock, virtual memory, encapsulation, addressing, routing, flow control, congestion control, name resolution, and medium access. The course also promotes the ability to present and discuss results derived from exercises, protocol analysis, and practical activities.

Learning skills

By the end of the course, students will have developed the skills needed to independently explore advanced topics in the fields of operating systems, computer networks, and the evolution of the Internet. They will be able to read technical documentation, understand system and protocol specifications, interpret experimental results, and update their knowledge with respect to the development of new systems, protocols, architectures, and technologies.

Unit 2 [INFO-01/A] [ENG]2nd1st6

Educational objectives

Educational goals

The course provides students with fundamental knowledge of the operation of modern computing systems, from the system software that manages the resources of a single computer to the protocols that enable communication between hosts across the Internet. The course is organized into two integrated parts. The first part is devoted to operating systems and addresses the organization and services of the operating system, process and thread management, CPU scheduling, synchronization and concurrency, memory and virtual memory management, file systems, and the management of I/O and storage devices. The second part is devoted to computer networks and the Internet architecture, with particular emphasis on the TCP/IP protocol stack, the main protocols and mechanisms that enable host-to-host communication, packet forwarding, reliability and congestion control, name resolution, and medium access in local and wireless networks. Modern transport protocols, including QUIC, will also be presented, highlighting their role in the evolution of the Internet architecture. The course also includes practical activities aimed at understanding the behavior of the operating system and at configuring, observing, and analyzing networks and protocols.

Knowledge and understanding

By the end of the course, students will have acquired solid knowledge of the principles underlying operating systems and computer networks. Regarding operating systems, they will understand the role of the operating system as a resource manager and as an interface between hardware and applications, the life cycle of processes and threads, the main CPU scheduling policies, synchronization mechanisms and the classic problems of concurrency (mutual exclusion, semaphores, monitors, deadlock), as well as techniques for physical and virtual memory management, paging, and the organization of file systems and I/O. Regarding networks, students will understand the role of the different layers of the TCP/IP stack, from application-layer protocols to transport, network, and medium access mechanisms. They will understand the operation of fundamental protocols such as IP, TCP, UDP, and DNS, as well as the main routing mechanisms and issues related to reliability, congestion control, fragmentation, addressing, and channel sharing. In addition, they will acquire basic knowledge of wireless networks and the CSMA/CA protocol, and will understand the motivations and main characteristics of modern transport protocols such as QUIC.

Applying knowledge and understanding

Students will be able to analyze the behavior of an operating system, evaluating the effect of different process, memory, and resource management policies on overall system performance. They will be able to reason about concurrency scenarios, identifying and preventing race conditions, deadlocks, and consistency problems, and to compute fundamental quantities such as waiting times, completion times, and CPU utilization. Regarding networks, they will be able to analyze the operation of a TCP/IP network, identifying the role of the different protocols involved in end-to-end communication, interpret communication scenarios, and compute fundamental quantities such as delay, throughput, channel utilization, and transmission window sizes, evaluating the behavior of transport and network protocols under congestion, losses, or bandwidth constraints. They will also be able to configure simple network scenarios, observe packet exchanges, and interpret the results obtained through analysis tools and practical laboratory activities.

Making judgements

The course aims to develop students' ability to critically evaluate the design choices adopted both at the operating system level and at the network architecture level. Students will be able to discuss the advantages and limitations of the main solutions adopted in the management of a computer's resources, such as scheduling policies, synchronization mechanisms, and memory management strategies, and to compare network architectural solutions considering aspects such as scalability, reliability, efficiency, delay, security, mobility, and interoperability. They will also be able to compare traditional and modern protocols, such as TCP and QUIC, understanding the design motivations behind their evolution and evaluating the impact of different choices on the overall performance of the system and the network.

Communication skills

Students will acquire the ability to clearly and rigorously describe the operation of an operating system and of the main Internet protocols, as well as the mechanisms that regulate resource management and communication between devices. They will be able to use appropriate technical language to explain concepts such as process, thread, scheduling, synchronization, deadlock, virtual memory, encapsulation, addressing, routing, flow control, congestion control, name resolution, and medium access. The course also promotes the ability to present and discuss results derived from exercises, protocol analysis, and practical activities.

Learning skills

By the end of the course, students will have developed the skills needed to independently explore advanced topics in the fields of operating systems, computer networks, and the evolution of the Internet. They will be able to read technical documentation, understand system and protocol specifications, interpret experimental results, and update their knowledge with respect to the development of new systems, protocols, architectures, and technologies.

10630506 | Artificial Intelligence and Machine Learning [INFO-01/A] [ENG]2nd2nd12

Educational objectives

Educational goals
The fundamentals of Artificial Intelligence and Machine Learning. Formal logic and automated reasoning, tree- and graph-search (A*), reinforcement learning. Supervised and unsupervised models, foundations of Deep Learning.

Knowledge and understanding
Knowledge of formal logic (propositional and first-order), search heuristics, the A* algorithm, and reinforcement learning. Understanding of supervised and unsupervised Machine Learning models and of Deep Learning tools (computational graphs and backpropagation).

Applying knowledge and understanding
Be able to formalize and solve AI problems through search and constraint-satisfaction algorithms, and to design agents and Machine Learning models with standard libraries (NumPy, scikit-learn, PyTorch), training small neural networks on real or synthetic data.

Making judgements
Ability to select the most effective AI technique for the context, evaluate algorithms and heuristics, analyze model performance (accuracy, precision/recall, ROC curves) while diagnosing overfitting, and balance exploration and exploitation in Reinforcement Learning.

Communication skills
Ability to communicate design choices with logical rigor, formalizing problems and discussing solutions with domain experts.

Learning skills
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.

Unit 1 [INFO-01/A] [ENG]2nd2nd6

Educational objectives

Educational goals
The fundamentals of Artificial Intelligence and Machine Learning. Formal logic and automated reasoning, tree- and graph-search (A*), reinforcement learning. Supervised and unsupervised models, foundations of Deep Learning.

Knowledge and understanding
Knowledge of formal logic (propositional and first-order), search heuristics, the A* algorithm, and reinforcement learning. Understanding of supervised and unsupervised Machine Learning models and of Deep Learning tools (computational graphs and backpropagation).

Applying knowledge and understanding
Be able to formalize and solve AI problems through search and constraint-satisfaction algorithms, and to design agents and Machine Learning models with standard libraries (NumPy, scikit-learn, PyTorch), training small neural networks on real or synthetic data.

Making judgements
Ability to select the most effective AI technique for the context, evaluate algorithms and heuristics, analyze model performance (accuracy, precision/recall, ROC curves) while diagnosing overfitting, and balance exploration and exploitation in Reinforcement Learning.

Communication skills
Ability to communicate design choices with logical rigor, formalizing problems and discussing solutions with domain experts.

Learning skills
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.

Unit 2 [INFO-01/A] [ENG]2nd2nd6

Educational objectives

Educational goals
The fundamentals of Artificial Intelligence and Machine Learning. Formal logic and automated reasoning, tree- and graph-search (A*), reinforcement learning. Supervised and unsupervised models, foundations of Deep Learning.

Knowledge and understanding
Knowledge of formal logic (propositional and first-order), search heuristics, the A* algorithm, and reinforcement learning. Understanding of supervised and unsupervised Machine Learning models and of Deep Learning tools (computational graphs and backpropagation).

Applying knowledge and understanding
Be able to formalize and solve AI problems through search and constraint-satisfaction algorithms, and to design agents and Machine Learning models with standard libraries (NumPy, scikit-learn, PyTorch), training small neural networks on real or synthetic data.

Making judgements
Ability to select the most effective AI technique for the context, evaluate algorithms and heuristics, analyze model performance (accuracy, precision/recall, ROC curves) while diagnosing overfitting, and balance exploration and exploitation in Reinforcement Learning.

Communication skills
Ability to communicate design choices with logical rigor, formalizing problems and discussing solutions with domain experts.

Learning skills
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.
Ability to consult the scientific literature and to pursue specialized paths in robotics, computer vision, and NLP.

10626118 | AI Lab: Computer Vision and NLP [INFO-01/A] [ENG]2nd2nd6

Educational objectives

Educational Goals
The course, entitled AI Lab: Computer Vision & NLP and hereinafter referred to simply as AI Lab, aims to provide students with advanced knowledge and practical skills for the design, development, and evaluation of intelligent Artificial Perception systems based on the most recent advances in Artificial Intelligence. Although the course title explicitly refers to Computer Vision and Natural Language Processing (NLP), it should be interpreted from a broader perspective as an advanced Artificial Intelligence laboratory focused on the understanding of images, videos, language, and heterogeneous signals, where Computer Vision, signal processing, Machine Learning, Deep Learning, and state-of-the-art Artificial Intelligence models converge.

The course considers Computer Vision as its core discipline while extending its methodologies and principles to the analysis of heterogeneous information sources such as EEG, Wi-Fi sensing, physiological signals, and data acquired from heterogeneous sensing devices, demonstrating how many Artificial Intelligence paradigms can be transferred across different perceptual domains. In parallel, the course introduces elements of Natural Language Processing, highlighting how images, videos, language, and signals represent complementary forms of information through which intelligent systems can perceive, interpret, and understand the surrounding world. Particular attention is devoted to the main challenges of modern Artificial Perception, including image classification, object detection, semantic and instance segmentation, image registration, tracking, change detection, saliency detection, anomaly detection, action recognition, action anticipation, scene understanding, image captioning, visual reasoning, visual grounding, image retrieval, and other advanced Computer Vision tasks. The course also introduces methodologies for advanced signal analysis and fundamental concepts for the intelligent processing of non-visual data. To address these challenges, the course presents both classical Computer Vision and signal processing techniques as well as the most recent Artificial Intelligence paradigms. Students will be introduced to hand-crafted algorithms, Machine Learning techniques, Deep Learning architectures, and state-of-the-art AI models, including representative examples such as Convolutional Neural Networks (CNNs), Residual Networks (ResNet), U-Net and its variants, Siamese Networks, Teacher–Student architectures, Graph Neural Networks (GNNs), Vision Transformers (ViTs), Foundation Models, Vision-Language Models, and Large Language Models (LLMs). The objective is not merely to learn how these models work, but above all to develop the ability to critically understand their principles, advantages, limitations, and application scenarios.

A fundamental principle of the course is the development of a critical approach to the design of intelligent systems. Students will learn that there is no universally optimal algorithm and that the choice between classical approaches, hand-crafted algorithms, Machine Learning, Deep Learning, and Foundation Models depends on the nature of the problem, the available data, computational constraints, interpretability requirements, performance objectives, and the target application domain. Consequently, the course promotes a problem-driven approach, encouraging students to select the most appropriate methodology rather than relying indiscriminately on a specific technology. The course maintains a strong application-oriented perspective by demonstrating how the presented methodologies can be employed to develop intelligent systems for autonomous robotics, humanoid robots, unmanned aerial vehicles (UAVs), ground rovers, mobile robots, autonomous underwater vehicles (AUVs/UUVs), autonomous vehicles, satellite imagery and remote sensing, Human–Computer Interaction, biometrics, medical applications, environmental monitoring, industrial monitoring, smart cities, security, defense, ambient intelligence, and many other scientific and industrial scenarios in which the automatic perception, interpretation, and understanding of complex environments play a fundamental role. Finally, particular emphasis is placed on developing both scientific and engineering thinking. Rather than simply presenting established techniques, the course aims to train students capable of critically analyzing the international scientific literature, understanding the state of the art, comparing alternative methodologies, designing original solutions, and rigorously evaluating their experimental performance. The ultimate goal is to educate future engineers and researchers capable of developing innovative, scientifically sound, and internationally competitive Artificial Intelligence systems.

Knowledge and Understanding
Upon successful completion of the course, students will have acquired an in-depth understanding of the theoretical and methodological foundations of modern Artificial Perception, learning how images, videos, language, and heterogeneous signals can be processed through advanced Artificial Intelligence techniques to extract meaningful information for understanding humans, environments, and operational contexts. Students will understand the major challenges addressed by modern Computer Vision and advanced signal analysis, acquiring knowledge of image classification, object detection, segmentation, image registration, action recognition, motion analysis, change detection, saliency detection, anomaly detection, visual reasoning, image captioning, scene understanding, and other Artificial Perception problems. They will also understand the theoretical foundations underlying the analysis of EEG, Wi-Fi sensing, and other signals acquired from intelligent sensing systems, recognizing both the similarities and differences between visual and non-visual information processing. Students will acquire a comprehensive understanding of the major families of algorithms employed in modern Artificial Intelligence, including both classical Computer Vision approaches and hand-crafted techniques, as well as Machine Learning, Deep Learning, and state-of-the-art AI models. In particular, they will understand the operating principles of major neural architectures, including CNNs, ResNet, U-Net, Siamese Networks, Teacher–Student architectures, Graph Neural Networks, Vision Transformers, Foundation Models, Vision-Language Models, and Large Language Models, analyzing their strengths, limitations, and primary application domains. Particular attention will be devoted to the critical understanding of different computational paradigms, emphasizing that the selection of the most appropriate solution depends on the characteristics of the problem, data availability, computational complexity, hardware constraints, and application objectives. Students will therefore understand that classical algorithms, hand-crafted approaches, Machine Learning, Deep Learning, and Foundation Models should be regarded as complementary tools rather than universally applicable alternatives. Finally, students will acquire a comprehensive understanding of the principal application domains of modern Artificial Perception, recognizing how the techniques presented throughout the course can be employed in intelligent systems for robotics, unmanned aerial vehicles, autonomous rovers, underwater robots, satellite imagery, Human–Computer Interaction, biometrics, medicine, environmental monitoring, security, defense, smart cities, and many other scenarios in which the automatic perception, interpretation, and understanding of complex data represent key enabling technologies.

Applying Knowledge and Understanding
Upon successful completion of the course, students will be able to design, develop, implement, and evaluate intelligent Artificial Perception systems by critically applying the knowledge acquired to the analysis of images, videos, language, and heterogeneous signals. They will be capable of addressing complex Computer Vision and Artificial Intelligence problems through the design of complete processing pipelines, including data acquisition, preprocessing, data representation, feature extraction, computational paradigm selection, model training, experimental validation, and performance evaluation. Students will learn how to select the most appropriate computational methodology for a given problem, making informed decisions among classical Computer Vision and signal processing techniques, hand-crafted algorithms, Machine Learning approaches, Deep Learning architectures, and state-of-the-art Artificial Intelligence models. They will also be able to justify these choices according to the characteristics of the problem, the availability and quality of data, computational constraints, interpretability requirements, robustness, and application-specific objectives. Students will acquire the ability to design and implement intelligent systems addressing a broad range of Artificial Perception tasks, including image classification, object detection, segmentation, change detection, saliency detection, anomaly detection, tracking, action recognition, scene understanding, image captioning, visual reasoning, image retrieval, and advanced signal analysis. They will also be able to transfer similar methodologies to the analysis of EEG, Wi-Fi sensing, and other heterogeneous sensing modalities, understanding how different forms of information can be processed using common Artificial Intelligence paradigms. Particular emphasis will be placed on the development of intelligent systems for real-world applications, including autonomous robotics, humanoid robots, Unmanned Aerial Vehicles (UAVs), autonomous rovers, underwater robotic systems, satellite imagery and remote sensing, Human–Computer Interaction, biometrics, medicine, security, defense, and environmental and industrial monitoring. Students will therefore develop the ability to transfer the methodologies learned throughout the course to new application domains and emerging research challenges. A substantial part of the final assessment consists of the design and implementation of an original project, carried out individually or in small groups, through which students will demonstrate their ability to transform theoretical concepts into a complete, functional, and scientifically motivated Artificial Intelligence solution. The project also includes the preparation of a scientific-style technical report and a formal presentation of the obtained results, fostering experimental, methodological, and engineering skills that closely resemble those required in modern research and industrial environments.

Making Judgements
The course aims to develop students' ability to critically analyze and scientifically evaluate intelligent Artificial Perception systems. Upon successful completion of the course, students will be able to critically assess Artificial Intelligence algorithms, computational models, and system architectures in terms of accuracy, robustness, generalization capability, interpretability, computational complexity, scalability, and suitability for specific application domains. Students will understand that there is no universally optimal solution and that selecting the most appropriate methodology requires a careful evaluation of the problem itself, the quality and quantity of the available data, technological constraints, computational resources, and application requirements. They will therefore be able to compare different computational paradigms, identify their strengths and limitations, and provide scientifically grounded justifications for their design decisions. Particular emphasis will be devoted to developing the ability to independently consult the international scientific literature, understand the current state of the art, critically analyze scientific publications, and identify potential research directions and methodological improvements over existing approaches. Students will therefore acquire a research-oriented mindset, enabling them to distinguish between established methodologies, emerging paradigms, and experimental solutions while critically evaluating their scientific contribution. The course also promotes critical reflection on the methodological, experimental, and ethical aspects of Artificial Intelligence, addressing topics such as data quality, dataset bias, model robustness, interpretability, experimental reproducibility, system reliability, and the responsible use of Artificial Intelligence technologies across different application domains. These competencies will enable students to evaluate not only the quantitative performance of an intelligent system but also its scientific validity, technological sustainability, and practical applicability. Finally, the course encourages students to formulate original research ideas, identify open scientific challenges, and design innovative Artificial Intelligence solutions based on rigorous scientific reasoning. The overall objective is to cultivate independent, critical, and creative thinking, preparing students for both advanced research activities and high-level industrial innovation.

Communication Skills
Upon successful completion of the course, students will be able to communicate, in a clear, rigorous, and scientifically sound manner, problems, methodologies, computational models, experimental results, and design choices related to Artificial Intelligence-based Artificial Perception systems. They will be capable of describing the complete design process of an intelligent system, from problem formulation and data acquisition to model development, experimental validation, and performance evaluation, critically discussing the motivations behind the adopted solutions, their advantages, limitations, and potential future developments. Students will acquire the ability to present and compare different computational paradigms, explaining when classical Computer Vision and signal processing techniques, hand-crafted algorithms, Machine Learning approaches, Deep Learning architectures, or state-of-the-art Artificial Intelligence models represent the most appropriate solution for a specific problem. They will also be able to justify their design choices according to the characteristics of the problem, the available data, computational constraints, interpretability requirements, and application objectives. Particular attention will be devoted to communicating experimental results using appropriate evaluation metrics, quantitative comparisons with the state of the art, statistical analyses, graphical visualizations, and reproducible experimental protocols. Students will further develop the ability to critically interpret these results, distinguishing between meaningful improvements and variations arising from experimental conditions or methodological differences. These communication skills will be assessed primarily through the presentation and discussion of the project developed during the course. Students will be expected to clearly describe the addressed problem, illustrate the proposed system architecture, justify the adopted methodological choices, critically compare their work with the existing scientific literature, and discuss the obtained results, limitations, and possible future developments. Particular emphasis will also be placed on the preparation of a scientific-style technical report, organized according to the standards commonly adopted in the international Artificial Intelligence research community.

Learning Skills
Upon successful completion of the course, students will have acquired the methodological foundations necessary to independently explore emerging techniques, computational paradigms, and research directions in Artificial Intelligence for Artificial Perception, enabling them to continuously update their knowledge in a rapidly evolving scientific and technological landscape. Students will develop the ability to independently read, understand, and critically analyze scientific papers, technical documentation, and research contributions related to Computer Vision, signal processing, Machine Learning, Deep Learning, Foundation Models, Vision-Language Models, Large Language Models, and, more generally, modern Artificial Intelligence technologies. They will also acquire the capability to transfer established methodologies to new application domains, adapting computational models and algorithms to different sensing modalities and heterogeneous data sources. The course aims not only to provide specific technical knowledge, but also to develop a rigorous scientific methodology for addressing complex research and engineering problems. Students will therefore learn how to formulate Artificial Intelligence problems, identify appropriate data representations, critically select computational paradigms, design rigorous experimental protocols, objectively evaluate obtained results, and compare their solutions against the current state of the art. Particular emphasis will be placed on fostering an innovation-oriented mindset, in which continuous learning represents a fundamental requirement for coping with the rapid evolution of Artificial Intelligence technologies. Students will therefore develop the ability to integrate new algorithms, computational models, and emerging paradigms into their own knowledge framework while maintaining a rigorous, critical, and scientifically grounded approach to problem solving. Upon completion of the course, students will therefore possess the knowledge, methodological skills, and critical thinking necessary to autonomously pursue further education, scientific research, and professional development in Computer Vision, advanced signal analysis, Artificial Perception, and, more broadly, modern Artificial Intelligence.

10630245 | Data Management and Analysis [INFO-01/A] [ENG]2nd2nd12

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

Unit 1 [INFO-01/A] [ENG]2nd2nd6

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

Unit 2 [INFO-01/A] [ENG]2nd2nd6

Educational objectives

Educational Goals
The course provides the fundamental knowledge and tools required for data management, analysis, and interpretation. It introduces the main stages of a data analysis pipeline, from data collection and preprocessing to modeling, visualization, and communication of results. Particular attention is devoted to data mining methodologies, segmentation, clustering, and classification techniques, as well as to the basic concepts of network science. The course also addresses the main ethical and privacy issues associated with the use of digital data.

Knowledge and Understanding
By the end of the course, students will understand the fundamental principles of data analysis, the main data mining techniques, and the basic concepts underlying data representation, management, and visualization. They will understand the role of the different stages of a data analysis pipeline and the foundations of complex network analysis.

Applying Knowledge and Understanding
Students will be able to collect, preprocess, and analyze data from different sources, apply segmentation, clustering, and classification techniques, use software tools for data analysis and visualization, and correctly interpret analytical results. They will also be able to apply basic network science metrics and methods to the analysis of interconnected systems.

Making Judgements
Students will develop the ability to critically assess data quality, select appropriate methodologies for specific analytical tasks, and interpret results in light of the assumptions and limitations of the methods employed. They will also be able to consider ethical and privacy implications associated with data collection and usage.

Communication Skills
Students will be able to effectively communicate quantitative results through appropriate visualizations, technical reports, and oral presentations, using correct terminology suitable for the application context.

Learning Skills
Students will acquire the methodological foundations required to independently explore advanced topics in data analysis, machine learning, and network science, as well as to successfully engage with subsequent coursework and professional applications in data science.

10628637 | Statistics [STAT-01/A] [ENG]2nd2nd6

Educational objectives

Knowledge and understanding
The student will acquire foundational knowledge in descriptive statistics, probability theory, and statistical inference. They will understand the main statistical models — simple and multiple linear regression, logistic regression — and will be able to interpret results rigorously.

Applying knowledge and understanding
The student will be able to apply the learned statistical techniques to the analysis of real data, selecting appropriate summary measures, hypothesis tests, and regression models for the context at hand. They will use R for the practical implementation of the studied methodologies.

Making judgements
The student will develop the ability to critically evaluate the results of a statistical analysis, recognizing the limitations of models, verifying underlying assumptions, and correctly interpreting indices, estimates, and tests in relation to the applied problem.

Communication skills
The student will acquire the ability to present and communicate the results of a statistical analysis clearly and precisely, both in written and oral form, using appropriate technical terminology and adapting the level of detail to the audience.

Learning skills
The student will develop methodological tools that will enable them to independently explore advanced topics in statistics and tackle new data analysis problems, including in interdisciplinary contexts such as computer science and artificial intelligence.

10629654 | Foundations of Computer Science [INFO-01/A] [ENG]3rd1st6

Educational objectives

General goals:
The course introduces the students to some of the most important results in theoretical computer science: from the fundamental results in computability theory of the thirties, through the ones in automata theory of the fifties to the challenging open problem P versus NP, raised in the seventies.

Specific goals:
Students will understand that there are different models of computation and the reason for their different computational power.

The students will become familiar with abstract concepts such as language classes, universal machines, reducibility and they will know that some problems are impossible to solve by computers and that others are difficult to solve, even so difficult to solve that they could be considered unsolvable. They will see today's use of some of these results.

Knowledge and understanding:
By the end of the course the students will get familiar with the basic methods and results of the Theory of Computability and Complexity and they will be able to apply them to evaluate the complexity of problems from various fields. In particular, they will be able to:
prove the equivalence between different characterizations of regular languages
prove the equivalence between different characterizations of context-free languages
explain the concept of nondeterminism
explain the existence of problems without algorithmic solutions or those which are intractable

Applying knowledge and understanding:
By the end of the course the students will be able to:
build finite state automata by a formal or an informal specification of a language
build stack automata by a formal or an informal specification of a language
use reducibility between problems to prove either decidability or undecidability
use polynomial reductions to prove the NP-hardness of problems.

Critical and judgmental skills:
Understand the right level of abstraction to solve problems, choose the more convenient computational model in an applicative context.

Communication skills:
describe problems that are undecidable, not provably intractable or intractable
explain the meaning and the relevance of the question “P=NP?"

Learning ability:
The student will be able to learn other computational models, both really new or variations of the ones seen during the course. She/he will be able to understand new NP-completeness proofs or more generally completeness proofs for any complexity class.

Elective course [N/D] [ENG]3rd2nd12

Educational objectives

The learning outcomes are those associated with the courses chosen by the student from the elective activities available within the Degree Programme.

AAF2604 | Internship [N/D] [ENG]3rd2nd15

Educational objectives

The educational programme is completed by an internship, which may be carried out either at companies and organizations operating in the field of computer science or within the Degree Programme itself. Activities may involve software analysis, design and development, data analysis, artificial intelligence, systems and networks, or the in-depth study of advanced topics. The internship has an indicative duration of three months and involves assigning the student a real-world problem to be addressed through the development of a project.

AAF2608 | Final exam [N/D] [ENG]3rd2nd3

Educational objectives

The training is completed with an internship, which can be carried out externally at companies in the IT sector—typically involving activities such as software analysis, design and development, data analysis, artificial intelligence, systems and networks—or internally, focusing on advanced topics. In both cases, the internship lasts approximately three months and requires the student to work on a real-world problem, to be solved through the development of a project carried out with a professional approach.