The Master’s Degree in Computer Engineering is organized in 3 flexible curricula covering various aspects of modern information processing systems and representing the scientific excellence of the Department of Information Engineering.
Each curriculum follows a similar structure:
- Mandatory Subjects: all the students enrolled in the curriculum must take these courses;
- Elective Subjects: students have to choose one or more of the courses in this set, according to the detailed rules defined in the study plan of each curriculum;
- Other Choices: these are the suggested courses to complete the curriculum with the 12 ECTS of free choices of a student. Students may take these courses but they can also choose other courses among the elective or mandatory subjects of their curriculum or other curricula of Computer Engineering, or even from the wider catalogue offered by the Department of Information Engineering and University of Padua (subject to approval and to the detailed rules defined in the study plan of each curriculum);
- English or Italian: students have to certify their ability in English or Italian (for foreign students);
- Internship or Research Training: students may conduct an internship in a company or a research training with a research group of the Department;
- Final Project: this is the final thesis work; it can be either a stand-alone project or it can be joined with the Internship/Research Training.
Artificial intelligence
The AI curriculum focuses on algorithms, architectures, and technologies to design and develop intelligent computational systems by covering core areas in generative artificial intelligence, machine learning, deep learning, reinforcement learning, natural language processing, computer vision, and probabilistic reasoning.
The AI curriculum is part of the AI@DEI Master’s Cross-Program Track
Mandatory subjects
In this course you will be introduced to the theory of computation, a branch of computer science which investigates the fundamental capabilities and limitations of computers. You will learn to model computation through abstract concepts such as formal languages, automata and grammars, and to answer basic questions regarding structural and computational properties of problems.
Students will gain foundational knowledge about artificial intelligence for the solution of difficult problems. Topics include: intelligent agents; advanced search strategies; automated planning; reasoning and learning in probabilistic graphical models; causal inference.
What does it mean to learn from data? And how can a machine do it? The course answers such questions, presenting the fundamentals and basic principles of supervised/unsupervised learning. Topics include: learning a model; uniform convergence; bias-complexity tradeoff; vapnik–chervonenkis (VC) dimension; linear models; gradient descent and stochastic gradient descent; model selection and validation; regularization and feature selection; support vector machines; decision trees and random forests; boosting; clustering. The course includes hands-on experience with real data.
Students will gain foundational knowledge of deep learning algorithms, the new generation Artificial Neural Networks (ANN), which boosted the field of machine learning. The course provides students with a solid theoretical background and hands-on skills to understand and develop deep networks. A variety of architectures will be presented and topics include: Feedforward Neural Networks (FFNN); backpropagation; automatic differentiation; overfitting in NNs and regularization techniques; advanced optimization techniques (ADAM,…); convolutional neural networks (CNN); recurrent neural networks (RNN); transformers and self-attention.
Modern applications are more computationally demanding than ever. This course covers the design and analysis of parallel algorithms that can fully leverage the resources of modern computing hardware. You will also learn to implement these algorithms on a variety of computing platforms, including multicore processors and GPUs, with a focus on the joint optimization of algorithms and their implementation.
The course lets the students build a thorough competence about image acquisition, processing and high-level understanding, to extract relevant information from visual data. It starts from low-level image processing and moves towards higher-level algorithms and systems, including deep learning-based systems for higher level tasks. Image formation and camera calibration are also part of the program. The course offers a solid theoretical background and stimulates the students to develop computer vision systems to face challenging real world applications, thanks to one laboratory lecture per week that will focus on C++ programming based on OpenCV library.
The course introduces reinforcement learning, a machine learning paradigm in which an agent learns to make decisions by interacting with an environment and receiving feedback in the form of rewards or penalties Topics include: k-armed bandits; exploration vs. exploitation trade-off; markov decision processes (MDPs) and bellman equations; dynamic programming (DP); Monte Carlo methods; temporal difference (TD) learning; value function approximation; policy gradient methods; deep reinforcement learning.Students will acquire comprehensive knowledge on how to program intelligent agents (i.e., vision systems, mobile robots, and industrial robots) for collaborative tasks like navigation and manipulation in a Industry 4.0 scenario.
In this course you will be introduced to the field of natural language processing, a branch of artificial intelligence which deals with the analysis of natural language texts. You will learn to develop and train statistical and neural network models that are capable of understanding, summarising, translating and extracting information from large amounts of text documents.
Elective subjects (study plan rules may apply)
This course provides a comprehensive introduction to the design, implementation, and evaluation of recommender systems. Topics include: personalization and information filtering; content-based and collaborative filtering methods; matrix factorization and latent factor models; neighborhood-based approaches; and hybrid recommender architectures. Advanced techniques such as deep learning for recommendation, sequence-aware and session-based models, graph-based methods, and context-aware recommendations are also covered. The course also addresses evaluation methodologies (offline metrics, online A/B testing) as well as ethical aspects such as bias, fairness, diversity, and transparency.
Computational creativity, music, multimedia, and interaction are at the core of ICT-driven innovation in the cultural and creative industries.
This course analyzes the entire sound and music communication chain through computational approaches. Students learn how to model, process, and interpret multimedia and affective information using advanced methodologies. The course adopts a multidisciplinary perspective, integrating signal processing, artificial intelligence, human–computer interaction, and media technologies to understand and design intelligent multimedia systems.
This course studies the design of autonomous AI systems (agents) that plan, reason, and interact with tools and environments to accomplish complex information access tasks.
The course introduces Large Language Models (LLMs), APIs, and prompt engineering, and then focuses on advanced information access techniques including neural search, adaptive querying, and Retrieval-Augmented Generation (RAG). Students explore chunking strategies, fine-tuning, and orchestration methods for integrating retrieval into agentic workflows. The course covers neurosymbolic AI, combining generative models with knowledge graphs. Students learn how to build and enrich knowledge bases, and how to use structured knowledge for grounding, validation, and explainable AI.
We also study methods to assess the effectiveness of search and retrieval strategies in RAG architectures, as well as the effectiveness and efficiency of using LLMs to access, interpret, and validate data and information. Hands-on activities emphasize the practical integration of agents with APIs, databases, and real-world information sources.
With the prevalence of network data collected in several domains, ranging from biology to social networks, learning from networks has become an essential task in many applications. The course introduces both basic and advanced algorithms to learn from networked data. Topics include efficient algorithms for network analytics and computing network features, finding patterns in networks, as well as supervised (e.g., graph neural networks) and unsupervised (e.g., clustering) machine learning techniques for networks Students will learn common and advanced techniques for analyzing large networks.
In this course you will be introduced to the field of natural language processinRobots may be considered intelligent if they are provided with a software architecture to perceive the surrounding environment and to deliberate, learn and achieve complex goals based on this information. This course provides the theoretical and practical foundations for mastering the perception-action loop in embodied agents operating in real-world environments.
Students will acquire comprehensive knowledge on how to program intelligent agents (i.e., mobile robots, industrial robots, and assistive robots) capable of autonomous behavior in dynamic, unstructured settings. Topics span the full pipeline of autonomous robotics, from sensory processing and decision-making to learning, navigation, and manipulation. A particular focus is placed on human-robot collaboration in the context of Industry 5.0, where robots and humans work side by side as partners rather than as isolated systems.g, a branch of artificial intelligence which deals with the analysis of natural language texts. You will learn to develop and train statistical and neural network models that are capable of understanding, summarising, translating and extracting information from large amounts of text documents.
Other choices (study plan rules may apply)
This course is an introduction to Mathematical Optimization theory and algorithms. It mainly covers Linear Programming, Integer Linear Programming, and Graph Theory. Recent solution techniques (such as the branch-and-cut algorithm) are covered. Applications to relevant practical problems are also discussed.
Quality has a key role in all the living phases of software as well as industrial products: from the initial idea, through the definition of the user experience and needs, during the design and development stages, in the management of customer relationships, and beyond its life where circular economy needs arise.
The course follows a flipped classroom approach; and by a number of case-studies in depth considered during the lessons provides the audience the tools, approaches and methods an ICT manager or designer is needed to daily use during his professional career.
The course aims at developing attitudes and skills toward Innovation and Entrepreneurship: management of Innovation skills and new venture creation skills.
Contents: Opportunity identification, Feasibility analysis, Market analysis, Concept generation, Intellectual Property Rights, Financials of companies, Business Plan, Fundraising.
The course uses Neural Network circuits as an application example to describe the design flow of a VLSI digital integrated circuit. Through HDL languages, the student is guided first in the synthesis of small digital circuits and then addresses all major aspects of synthesis of algorithms described at a high level first in RTL models and later in standard cell netlists. The realization of a complete layout is also addressed. The course includes a number of teaching labs using dedicated CAD tools.
The goal of this course is to introduce the design of modern machine learning systems, that is, systems that can support the next generation of learning applications. Throughout the course, the students will learn about the design rationale behind the state-of-the-art machine learning frameworks and advanced system techniques to scale, reduce memory, and exploit compute resources.
Artificial intelligence is increasingly shaping decisions in healthcare, finance, public services, and everyday life, making ethical and responsible development a critical priority. Through practical case studies and hands-on activities—such as auditing datasets for social biases and discriminatory patterns, drafting ethical impact assessments, and implementing computational techniques to detect and mitigate these risks—students will apply responsible AI principles to real-world scenarios. Participants will learn methodologies and tools aimed at improving the design, evaluation, and governance of AI systems, making them more trustworthy, compliant with regulations, and aligned with human values and societal well-being
In this course, a specific NP-hard optimization problem (e.g., the Travelling Salesman Problem) is studied and solved using alternative state-of-the-art methods. Both exact (branch-and-cut based on commercial Mixed-Integer solvers such as IBM ILOG CPLEX) and heuristic algorithms are described, fully implemented in C/C++, and tested on a set of instances taken from the literature. Homeworks are assigned every week and discussed the next week with all students.
Others (study plan rules may apply)
Micro-credentials AI4BIO – AI for Bioengineering
Micro-credentials AI4CSE – AI for Control Systems Engineering
Micro-credentials AI4ICT – AI for ICT for Internet and Multimedia
Intelligent Robotics (iROB)
The iROB curriculum addresses the design and development of autonomous robotic systems endowed with reasoning and intelligent behaviour. Core areas include robot perception, motion planning, and decision-making, with emphasis on systems capable of operating in complex, dynamic environments and interacting safely and effectively with humans. Students acquire advanced competencies in the algorithms and computational methods that underpin modern autonomous systems — spanning computer vision, machine learning, human-robot interaction, and autonomous robots — preparing them to contribute to both applied research and the engineering of next-generation robotic platforms.
Mandatory subjects
Students will gain foundational knowledge about artificial intelligence for the solution of difficult problems. Topics include: intelligent agents; advanced search strategies; automated planning; reasoning and learning in probabilistic graphical models; causal inference.
What does it mean to learn from data? And how can a machine do it? The course answers such questions, presenting the fundamentals and basic principles of supervised/unsupervised learning. Topics include: learning a model; uniform convergence; bias-complexity tradeoff; vapnik–chervonenkis (VC) dimension; linear models; gradient descent and stochastic gradient descent; model selection and validation; regularization and feature selection; support vector machines; decision trees and random forests; boosting; clustering. The course includes hands-on experience with real data.
The course lets the students build a thorough competence about image acquisition, processing and high-level understanding, to extract relevant information from visual data. It starts from low-level image processing and moves towards higher-level algorithms and systems, including deep learning-based systems for higher level tasks. Image formation and camera calibration are also part of the program. The course offers a solid theoretical background and stimulates the students to develop computer vision systems to face challenging real world applications, thanks to one laboratory lecture per weeks that will focus on C++ programming based on OpenCV library.
The course introduces reinforcement learning, a machine learning paradigm in which an agent learns to make decisions by interacting with an environment and receiving feedback in the form of rewards or penalties Topics include: k-armed bandits; exploration vs. exploitation trade-off; markov decision processes (MDPs) and bellman equations; dynamic programming (DP); Monte Carlo methods; temporal difference (TD) learning; value function approximation; policy gradient methods; deep reinforcement learning.
Robots may be considered intelligent if they are provided with a software architecture to perceive the surrounding environment and to deliberate, learn and achieve complex goals based on this information. This course provides the theoretical and practical foundations for mastering the perception-action loop in embodied agents operating in real-world environments.
Students will acquire comprehensive knowledge on how to program intelligent agents (i.e., mobile robots, industrial robots, and assistive robots) capable of autonomous behavior in dynamic, unstructured settings. Topics span the full pipeline of autonomous robotics, from sensory processing and decision-making to learning, navigation, and manipulation. A particular focus is placed on human-robot collaboration in the context of Industry 5.0, where robots and humans work side by side as partners rather than as isolated systems. Hands-on laboratory sessions are a core part of the course. You will program a mobile robot manipulator to navigate an unknown environment and interact with objects, gaining practical experience with ROS 2 (Robot Operating System 2) — the industry-standard framework for modern robotics development.
The course will provide the student with the ability to develop robotics applications in the industrial sector. Models that define complex mechanical systems, equipped with open kinematic chain (manipulating robots), used in industrial robotics applications, will be studied and simulated. The problems of choosing the main components and optimizing the layout of robotic work cells will be addressed, learning to use the typical commands of the programming languages of industrial robots.
The growing popularity of 3D sensors is opening new trends in 3D modelling, reconstruction, motion estimation and object recognition. This course will focus on 3D data processing ranging from sensors and algorithms for reconstruction to the recognition and visualisation of 3D data, applied to different domains with a special attention to robotics and augmented reality.
Elective subjects (study plan rules may apply)
In this course you will be introduced to the theory of computation, a branch of computer science which investigates the fundamental capabilities and limitations of computers. You will learn to model computation through abstract concepts such as formal languages, automata and grammars, and to answer basic questions regarding structural and computational properties of problems.
Architecture and components of industrial automation systems: controllers, communication networks, sensors/actuators and supervisory systems. Controllers: architecture, operation and programming; description of programming languages compliant with the international standard IEC 61131-3; examples of implementation of automation tasks; data exchange with sensors/actuators. Communication networks for automation: architecture and protocols; connection with sensors/actuators and with supervisory systems.
Students will gain foundational knowledge of deep learning algorithms, the new generation Artificial Neural Networks (ANN), which boosted the field of machine learning. The course provides students with a solid theoretical background and hands-on skills to understand and develop deep networks. A variety of architectures will be presented and topics include: Feedforward Neural Networks (FFNN); backpropagation; automatic differentiation; overfitting in NNs and regularization techniques; advanced optimization techniques (ADAM,…); convolutional neural networks (CNN); recurrent neural networks (RNN); transformers and self-attention.
The course provides the main mathematical competencies in the field of robotics. The main topics addressed in the course are basic concepts of robotics (kinematic and dynamic models), illustration of advanced control schemes for position and force control of robot manipulators (robust control, adaptive control, learning control, impedance control)
In this course you will be introduced to the field of natural language processing, a branch of artificial intelligence which deals with the analysis of natural language texts. You will learn to develop and train statistical and neural network models that are capable of understanding, summarising, translating and extracting information from large amounts of text documents.
Students will gain foundational knowledge of brain–machine interface (BMI) systems, a rapidly advancing field that enables direct communication between the brain and external devices. The course provides students with a solid theoretical background and hands-on skills to analyze, process, and decode neurophysiological signals, with a particular focus on electroencephalography (EEG). A variety of methodologies and system components will be presented and topics include: fundamentals of neural signal acquisition; EEG preprocessing; feature extraction techniques; machine learning methods for neural decoding; system integration for BMI applications; and the development of BMI systems for the control of robotic devices.
The course Human-Robot Interaction (HRI) aims at studying and practically developing integrated solutions of Robotics and AI for HRI applications. More specifically, the course will provide an overview of recent methods and techniques for: Human-Machine Interfacing; Physical, Cognitive and Social Interactions in Robotics; Shared control paradigms and adjustable autonomy; Shared Human-Robot Knowledge Representation and Reasoning; from Imitation Learning to Adaptation by Interaction. The main outcome of the course will be a team project implementing a practical use case in Human-Robot Interaction.
Other choices (study plan rules may apply)
Quality has a key role in all the living phases of software as well as industrial products: from the initial idea, through the definition of the user experience and needs, during the design and development stages, in the management of customer relationships, and beyond its life where circular economy needs arise.
The course follows a flipped classroom approach; and by a number of case-studies in depth considered during the lessons provides the audience the tools, approaches and methods an ict manager or designer is needed to daily use during his professional career.
The course aims at developing attitudes and skills toward Innovation and Entrepreneurship: management of Innovation skills and new venture creation skills.
Contents: Opportunity identification, Feasibility analysis, Market analysis, Concept generation, Intellectual Property Rights, Financials of companies, Business Plan, Fundraising.
Game theory is the science of analyzing multi-objective multi-agent problems (i.e., “games”). This involves the games we usually play for fun in our everyday life, but in a more serious context is applied to resource competition, distributed management, efficient allocation over multi-user systems and/or communication networks. This course teaches all the basic concepts, as well as some advanced ones, of game theory. Also, it applies them to scenarios of interest for ICT.
The main models and methodologies for Distributed Systems design and deployment are fully presented together with some modern applications. Topics span from architectures and services to deal with heterogeneity, scalability, fault tolerance, security and dependability, to Transactional Systems and High-Throughput and Data-Intensive Computing.
In this course, a specific NP-hard optimization problem (e.g., the Travelling Salesman Problem) is studied and solved using alternative state-of-the-art methods. Both exact (branch-and-cut based on commercial Mixed-Integer solvers such as IBM ILOG CPLEX) and heuristic algorithms are described, fully implemented in C/C++, and tested on a set of instances taken from the literature. Homeworks are assigned every week and discussed the next week with all students.
Others (study plan rules may apply)
Intelligent Data Engineering and Algorithms (IDEA)
The IDEA curriculum focuses on algorithms, architectures, and systems for compute-intensive applications and big-data analysis, for solving complex computational problems in life and physical sciences, and for managing permanent data as well as processing, linking, searching, and recommending information at Web scale.
On top of a set of mandatory courses, the IDEA curriculum is organized around two sets of electives courses, arranged in packages, as shown in the figure below:
- 24 ECTS with suggested “Data Package” or “Computing Package”
- 21 ECTS with suggest “Bioinformatics Package”, “High-Performance Computing and Multimedia Package”, or “Networking Package”
Overall, the combination above packages give raise to 6 main profiles and even more nuances and customisations are possible by mixing courses from different packages.
Mandatory subjects
This course is an introduction to Mathematical Optimization theory and algorithms, covering Linear Programming, Integer Linear Programming, and Graph Theory. Recent solution techniques (such as the branch-and-cut algorithm) are also described and briefly illustrated in a selection of graph-theory problems of interest in industrial applications.
What does it mean to learn from data? And how can a machine do it? The course answers such questions, presenting the fundamentals and basic principles of supervised/unsupervised learning. Topics include regression, classification, linear models, neural networks, and deep learning. The course includes hands-on experience with real data.
This course provides a comprehensive introduction to modern web application development, covering both backend and frontend technologies. On the backend, students learn server-side development using frameworks such as node.js, Spring, and Django, with focus on RESTful API design, database integration, authentication and authorization, and scalable system architecture. On the frontend, the course focuses on building responsive and dynamic user interfaces using frameworks such as React, and covering component-based design, state management, and performance optimization. Students will gain experience with modern development workflows, including package management and build automation using npm and related tools. Overall, the course provides students with all the means needed to design scalable, maintainable, and modular web applications.
Mastering advanced algorithmic techniques is a skill central to both compute-intensive applications and big data analysis, where the quest for efficiency is of paramount importance. The course spans topics such as computational intractability (complexity classes, NP-completeness, reduction techniques); approximation algorithms for intractable combinatorial problems; number-theoretic algorithms and cryptographic applications of intractability; and randomized techniques, with applications to graph and data analytics.
Elective subjects (study plan rules may apply)
DATA PACKAGE
This course provides a comprehensive introduction to the design, implementation, and evaluation of recommender systems. Topics include: personalization and information filtering; content-based and collaborative filtering methods; matrix factorization and latent factor models; neighborhood-based approaches; and hybrid recommender architectures. Advanced techniques such as deep learning for recommendation, sequence-aware and session-based models, graph-based methods, and context-aware recommendations are also covered. The course also addresses evaluation methodologies (offline metrics, online A/B testing) as well as ethical aspects such as bias, fairness, diversity, and transparency.
The course lays the foundations of information retrieval and teaches how to design and develop systems for searching, retrieving, and ranking information at Web scale. Core topics include: text processing; indexing structures (inverted indexes); boolean and vector space models; probabilistic retrieval models, e.g., BM25; language models; neural retrieval models, both interaction-based (cross-encoders) and representation-based (bi-encoders). The course also addresses evaluation methodologies and evaluation measures (precision, recall, MAP, NDCG). Students will engage in the development of a real-world application.
This course focuses on knowledge representation and modeling using ontologies and graph data technologies. Students learn how to design and encode ontological models, manage RDF knowledge graphs, and query them using SPARQL for complex multi-hop reasoning. The course covers logical inference, data validation with SHACL, and regular path queries from both theoretical and practical perspectives. It also explores the integration of ontologies in the context of Generative AI and examines industrial applications of databases for knowledge graph construction, updating, and quality estimation.
The course teaches how to design and develop systems for searching, retrieving, and ranking information at Web scale. Students will learn the theoretical and technical foundations of information retrieval, focusing on reference applications like search engines, recommender systems, and social media. Students will engage in the development of a real-world application, by using advanced retrieval models, semantic search, learning-to-rank, neural and online learning techniques.
This course studies the design of autonomous AI systems (agents) that plan, reason, and interact with tools and environments to accomplish complex information access tasks.
The course introduces Large Language Models (LLMs), APIs, and prompt engineering, and then focuses on advanced information access techniques including neural search, adaptive querying, and Retrieval-Augmented Generation (RAG). Students explore chunking strategies, fine-tuning, and orchestration methods for integrating retrieval into agentic workflows. The course covers neurosymbolic AI, combining generative models with knowledge graphs. Students learn how to build and enrich knowledge bases, and how to use structured knowledge for grounding, validation, and explainable AI.
We also study methods to assess the effectiveness of search and retrieval strategies in RAG architectures, as well as the effectiveness and efficiency of using LLMs to access, interpret, and validate data and information. Hands-on activities emphasize the practical integration of agents with APIs, databases, and real-world information sources.
COMPUTING PACKAGE
In this course you will be introduced to the theory of computation, a branch of computer science which investigates the fundamental capabilities and limitations of computers. You will learn to model computation through abstract concepts such as formal languages, automata and grammars, and to answer basic questions regarding structural and computational properties of problems.
An impressive amount of digital data is continuously produced in a wide spectrum of contexts. These data contain valuable information, whose extraction, however, poses several challenges from a computational point of view, and requires a paradigm shift with respect to traditional computing. The course will teach you fundamental methodologies and algorithmic tools for the effective and efficient mining of massive datasets, and will allow you to do practical experience with state-of-the-art programming frameworks such as Apache Spark.
Students will gain foundational knowledge of deep learning algorithms, the new generation Artificial Neural Networks (ANN), which boosted the field of machine learning. The course provides students with a solid theoretical background and hands-on skills to understand and develop deep networks. A variety of architectures will be presented and topics include: Feedforward Neural Networks (FFNN); backpropagation; automatic differentiation; overfitting in NNs and regularization techniques; advanced optimization techniques (ADAM,…); convolutional neural networks (CNN); recurrent neural networks (RNN); transformers and self-attention.
With the prevalence of network data collected in several domains, ranging from biology to social networks, learning from networks has become an essential task in many applications. The course introduces both basic and advanced algorithms to learn from networked data. Topics include efficient algorithms for network analytics and computing network features, and finding patterns in networks, as well as supervised (e.g., graph neural networks) and unsupervised (e.g., clustering) machine learning techniques for networks. Students will learn common and advanced techniques for analyzing large networks.
In this course, a specific NP-hard optimization problem (e.g., the Travelling Salesman Problem) is studied and solved using alternative state-of-the-art methods. Both exact (branch-and-cut based on commercial Mixed-Integer solvers such as IBM ILOG CPLEX) and heuristic algorithms are described, fully implemented in C/C++, and tested on a set of instances taken from the literature.
BIOINFORMATICS PACKAGE
Bioinformatics is the study and development of computational methods to analyse large collections of biological data, such as genomic sequences, to understand complex biological systems. The course will focus on computer science aspects of computational molecular biology like genomes alignment, pattern discovery and the analysis of sequencing data.
Computational genomics is an interdisciplinary field that develops methods for understanding biology, in particular when the data sets are large and complex, such as molecular data including DNA and RNA sequence and expression data.
In this course you will learn methodologies for statistical analysis and data mining of high-throughput genomic data and how to apply these methodologies to real data using algorithms and software tools.
The course focuses on algorithms, data structures, and AI-based data analysis, on long, noisy, massive textual and numerical sequences. This kind of data is typical of genomic and health domains, but it is also common in many other application fields (e.g. text indexing, anomaly detection, forecast…), thus the learned skills can be leveraged to drive value from data in diverse contexts. The course covers compression techniques and compressed data structures, sketching algorithms, time series analysis, encoding schemes and application of AI to specific biological domains (e.g. environmental genomics). Previous knowledge in biology is not required, the focus is on bridging conceptual understanding of algorithms with their practical application in developing cutting-edge data analysis pipelines and their usage on real data through hands-on experience.
HIGH-PERFORMANCE COMPUTING AND MULTIMEDIA PACKAGE
Modern applications are more computationally demanding than ever. This course covers the design and analysis of parallel algorithms that can fully leverage the resources of modern computing hardware. You will also learn to implement these algorithms on a variety of computing platforms, including multicore processors, clusters of distributed machines, and GPUs, with a focus on the joint optimization of algorithms and their implementation.
In this course you will be introduced to the field of natural language processing, a branch of artificial intelligence which deals with the analysis of natural language texts. You will learn to develop and train statistical and neural network models that are capable of understanding, summarising, translating and extracting information from large amounts of text documents.
Computational creativity, music, multimedia, and interaction are at the core of ICT-driven innovation in the cultural and creative industries.
This course analyzes the entire sound and music communication chain through computational approaches. Students learn how to model, process, and interpret multimedia and affective information using advanced methodologies. The course adopts a multidisciplinary perspective, integrating signal processing, artificial intelligence, human–computer interaction, and media technologies to understand and design intelligent multimedia systems.
NETWORKING PACKAGE
The course is conceived as a protocol engineering pathway focused on formal modeling, systematic derivation, and experimental validation of communication mechanisms. Technical specifications (RFCs and standardization documents) are treated as texts from which semantic structures are extracted: data formats, finite state machines, relationships among architectural layers, assumptions about the channel, and timing behaviors. Students are guided in transforming these descriptions into executable models, with explicit identification of correctness invariants, liveness conditions, and non-admissible states.
The user-space implementation of protocols across different layers of the stack constitutes the methodological tool through which dependencies among abstractions, the separation between control plane and data plane, memory and processing time management as a carefully considered resource, and distributed synchronization through message exchange are made observable. The emergent behavior of protocols is analyzed through interoperability and performance experiments on real traffic in order to compare specification and implementation, evaluate the effects of timing policies, and characterize recovery mechanisms.
The growing dependence of modern society from information systems makes security a critical aspect of computer engineering. In this course we will adopt a hands-on approach to grasp the fundamentals of security in software, network, web and mobile security. We will analyze attack techniques and study available countermeasures.
Nowadays, computer engineers are expected to effectively manage architectural patterns and paradigms for designing complex software systems on modern platforms. Course topics include Service-Oriented Architecture (SOA), microservices and related patterns, virtual machines and containers, and tools for composition and orchestration. The course also covers cloud computing principles, serverless architectures, Infrastructure as Code, and DevOps practices, providing foundational knowledge for building scalable and resilient systems.
Other choices (study plan rules may apply)
Quality has a key role in all the living phases of software as well as industrial products: from the initial idea, through the definition of the user experience and needs, during the design and development stages, in the management of customer relationships, and beyond its life where circular economy needs arise.
The course follows a flipped classroom approach; and by a number of case-studies in depth considered during the lessons provides the audience the tools, approaches and methods an ict manager or designer is needed to daily use during his professional career.
Statistical inference, that is the ability to infer general conclusions based on data, is crucial in data analysis. The course is an introduction to statistical thinking and provides the foundational and standard tools for statistical inference, covering topics such as statistical hypothesis testing and commonly used statistical tests.
Modern Information access systems, such as databases, search engines, and recommender systems, operate over unprecedented amounts of private information, posing significant risks to users’ privacy. This course introduces the main frameworks developed to protect data privacy without compromising effectiveness, including k-anonymity and differential privacy, with a focus on the unique challenges presented by information access systems.
The analysis of text is essential to transform unstructured, multilingual documents into actionable knowledge. The course combines flipped classroom elements with hands-on activities inspired by international evaluation challenges, guiding students in the design of end-to-end natural language understanding applications. Topics include multilingual resource management, term extraction, ontology building, text categorization, named entity recognition, entity linking, and relation extraction, applied to tasks such as sentiment analysis, text classification, information extraction, and question answering, comparing rule-based and machine learning-based approaches.
Game theory is the science of analyzing multi-objective multi-agent problems (i.e., “games”). This involves the games we usually play for fun in our everyday life, but in a more serious context is applied to resource competition, distributed management, efficient allocation over multi-user systems and/or communication networks. This course teaches all the basic concepts, as well as some advanced ones, of game theory. Also, it applies them to scenarios of interest for ICT.
The main models and methodologies for Distributed Systems design and deployment are fully presented together with some modern applications. Topics span from architectures and services to deal with heterogeneity, scalability, fault tolerance, security and dependability.
In this course, a specific NP-hard optimization problem (e.g., the Travelling Salesman Problem) is studied and solved using alternative state-of-the-art methods. Both exact (branch-and-cut based on commercial Mixed-Integer solvers such as IBM ILOG CPLEX) and heuristic algorithms are described, fully implemented in C/C++, and tested on a set of instances taken from the literature. Homeworks are assigned every week and discussed the next week with all students.
In modern communication systems, securing against malicious behavior is a primary issue, and must be part of the design since the beginning, rather than a patch added as a belated measure. The class introduces fundamental notions and tools in information security, with a focus on the solutions, attacks, and countermeasures that can be deployed at the different layers in modern communication networks. The students will be asked to apply their acquired knowledge to practical use cases, industrial standards, and experimental scenarios.
This is a theoretical course providing knowledge of the main mathematical tools and modeling techniques for the study of telecommunication networks and networking protocols. It covers the theoretical basics of Markov chains, renewal processes, queueing theory and traffic models, with applications to the analysis of networking protocols.


