91248 - Fundamentals of Artificial Intelligence and Knowledge Representation

Learning outcomes

At the end of the course, the student knows the main knowledge representation techniques and reasoning methods that underlie artificial intelligence problem solving. The student is able to develop simple solvers for artificial intelligence systems.

Course contents

The course introduces the fundamental principles and methods used in Artificial Intelligence to solve problems, with a special focus on the search in the state space, planning, knowledge representation and reasoning, and on the methods for dealing with uncertain knowledge. The course will include hands-on labs and seminars on selected topics.

Prerequisites: user-level knowledge of a high-level programming language, in order to successfully understand case studies and applications presented during the lessons.

Part I (Module 1)

Module 1

Introduction to Artificial Intelligence: historical perspective, main application fields, introduction to knowledge-based systems and architectural organization.

Problem-solving in AI: representation through the notion of state, forward e backward reasoning, solving as a search and search strategies. Games. Constraint satisfaction problems.

Local Search methods, meta heuristics, solving through decomposition, constraint relaxation, branch-and-bound techniques

Introduction to Planning, Linear planning, partial order planning, graph-based methods (GraphPlan), Scheduling.

Part II (Modules 2, 3):

Module 2

Introduction to knowledge representation and reasoning

Representing Terminological Knowledge: semantic networks, description logics, foundation of ontologies

Representing actions, situations, and events.

Rule-based systems: Prolog and extensions, meta-interpreters, DCG, planning in prolog, Prolog for temporal reasoning with the Event Calculus, LPAD.

Forward chaining and RETE, Drools.

Module 3

Uncertainty

Probabilistic Reasoning

91255 - Statistical and Mathematical Methods for Artificial Intelligence

Learning outcomes

At the end of the course, the student masters the basic mathematical and statistical methods needed to acquire skills in artificial intelligence foundations, theories and applications.

Course contents

1.Elements of linear algebra.

vectorial calculus, linear mappings, normed spaces, orthogonal projections.

matrix calculus, matrix norms, special matrices.

Singular Values Decomposition, Principal Component Analysis.

Eigenvalues and eigenvectors.

Laboratory exercises in Matlab or Phyton.

  1. Elements of multivariate analysis

Gradient, Jacobian, Hessian. Taylor theorem.

Convex functions and sets.

  1. Multivariate optimization

Linear least squares.

Extrema of multivariate functions. Optimality conditions.

Descent methods. Gradient type methods and Newton type methods.

Regularization.

Basis concepts of stochastic optimization.

Laboratory exercises in Matlab or Phyton.

  1. Elements of probability and statistics.

Probability and Bayes theorem.

Random variables. Continuous and discrete distributions of random variables. Normal and Poisson distributions.

Independent and dependent variables. Covariance and correlation.

Estimates: Maximum Likelihood and Maximum a Posteriori estimates.

Cross entropy and Kullback-Leibler divergence.

Laboratory exercises in   Phyton.

Readings

91247 - Cognition and Neuroscience

Learning outcomes

At the end of the course, the student knows state-of-art human and animal research that uses neuroscience techniques to understand the cognitive and emotional aspects of the human mind and behavior. The student is able to critically read experimental and theoretical studies of cognitive and affective neuroscience, to evaluate their methods and results, explain their significance, and apply such notions in the study and development of artificial intelligence systems.

Course contents

How do neurons in the brain give rise to mind – to our abilities to sense and perceive the world, to act and think about it, to learn and remember it? This course will provide an accessible but highly challenging survey of the empirical evidence, theories and methods in cognitive neuroscience exploring how cognition is instantiated in neural activity. Drawing on a wide variety of investigative tools available to cognitive neuroscience, the course explores the neural mechanisms underlying complex cognitive processes.

At the end of the course the student is be able to:

get in-depth understanding of the neural substrates and functional mechanisms of mental processes;

get knowledge of the-state-of-the-art methodologies and novel approaches of current research in Cognitive Neuroscience;

critically review and discuss the theoretical and empirical contributions of the current literature, understand and analyze the methods employed, interpret their results and critically assess their conclusions;

exercise the ability to engage in creative thinking leading to formulations of new hypotheses and planning of their empirical testing.

The course is divided into two teaching modules, which will cover the following topics:

Module 1 (4 CFU):

What is cognitive neuroscience?

From single neurons to neural networks and systems

Signal transmission within and between neurons

introduction to animal reinforcement learning (RL): Pavlovian/prediction learning and instrumental/control learning

Mechanisms of RL 1: contiguity, contingency & surprise

Mechanisms of RL 2: the reward prediction error hypothesis of dopamine neurons

From reinforcement learning to decision-making

Module 2 (2 CFU):

Reinforcement learning (RL): from cognitive neuroscience to artificial intelligence

Previous knowledge required:

Prerequisite involves high-school knowledge of the biology of the Central Nervous System.

In addition, it is highly recommended to attend to online video lectures on Neuroscience Core concepts, freely available at the Society for Neuroscience website: https://www.brainfacts.org/core-concepts

91762 - Combinatorial Decision Making and Optimization

Learning outcomes

At the end of the course, the student has an understanding of the most popular methods in operations research and artificial intelligence for modeling and solving complex combinatorial optimization problems such as constraint programming, integer linear programming, SAT and SMT.

Course contents

Prerequisites

Problem solving in artificial intelligence (covered by 91248 - Fundamentals of Artificial Intelligence and Knowledge Representation), logic for computer science and basic notions of algorithms and programming preferably in Python (covered by 91251 - Languages and Algorithms for Artificial Intelligence), basic algebra and analysis.

Course topics

The first half of the course (Module 1) will introduce the fundamental concepts in Constraint Programming (CP) and Boolean Satisfiability (SAT), which are two general-purpose approaches in Artificial Intelligence (AI) to combinatorial decision making and optimization. The topics include:

Introduction to combinatorial decision making and optimization

Modelling in CP

Constraint propagation and global constraints

Constructive tree search and propagation, branching heuristics, randomization and search restarts, Large Neighbourhood Search (LNS)

The SAT problem and encoding in SAT

Basic solving techniques (resolution, unit propagation, DPLL algorithm)

Conflict-driven clause learning algorithms

SAT encodings

The second half of the course (Module 2) will introduce the fundamentals of Satisfiability Modulo Theory (SMT), which is a generalization of SAT. The last part of the module will be about essential Operations Research results from Linear Programming (LP) and in particular Integer Linear Programming (ILP), by prioritizing the width of the covered area over the depth of the introduction. The topics include:

Satisfiability Modulo Theories (SMT)

Eager vs lazy SMT encoding, the DPLL(T) algorithm

SMT theory solvers and combinations of theories

Linear Programming (LP)

Simplex algorithm and duality

Integer Linear Programming (ILP)

Extensions and hybrid methods

The course will also host invited lectures by pioneer researchers in the field in order to provide a broader perspective on the AI-based approaches to combinatorial decision making and optimization.

91254 - Image Processing and Computer Vision

Learning outcomes

At the end of the course, the student masters the basic algorithms, tools and systems for the management, processing and analysis of digital images. The student is able to design and develop simple systems oriented to real-world computer vision applications such as those requiring segmentation and classification of objects in digital images.

Course contents

Introduction: basic definitions related to computer vision. An overview across major application domains.

Image formation and acquisition: geometry of image formation; lenses; field of view and depth of field; image sampling and quantization.

Spatial filtering: linear shift-invariant operators; mean and Gaussian filtering; median filtering; bilateral filtering.

Edge detection: image gradient; non-maxima suppression; Laplacian of Gaussian; Canny edge detector.

Local invariant features: detectors and descriptors; Harris Corners; scale-invariant features; SIFT features.

Instance detection: pattern matching; shape-based matching; Hough transform.

Camera calibration: Intrinsic and extrinsic camera parameters; projective coordinates and perspective projection matrix; Zhang’s algorithm; image warping and homographies between cameras.

Image classification: the case for and implication of data-driven computer vision; datasets; linear classifier as template matching; cross-entropy loss; gradient descent and stochastic gradient descent.

Image representations: Bag of Visual Words; representation learning for images; convolutional layers; pooling; batch normalization.

Successful CNNs: LeNet5; AlexNet; ZFNet; VGG; Inception v1 and v3; ResNet.

Regularization and training recipes: bias/variance; learning rate schedulers; weight decay; label smoothing; dropout; data augmentations; FixRes; cutout; mix-up; cut-mix; pytorch case study.

The theory is complemented by lab sessions. Lab sessions cover selected topics such as spatial filtering, camera calibration, local invariant features, image classification and transfer learning.

91258 - Natural Language Processing

Learning outcomes

At the end of the course, the student masters the basic algorithms, tools and systems for the management, processing and analysis of natural language. The student is able to design and develop simple systems oriented to real-world natural language processing applications such as those requiring segmentation and classification of elements of text.

Course contents

Topics

Introduction to NLP

Elements of computational linguistics

Basic text processing

Language modeling with n-grams

Text classification using linear models

Vector semantics and embeddings

Neural language modeling

RNNs for sequence processing

Contextual word embeddings, attention and transformers

Large language models

Basics of information retrieval

Elements of speech processing

NLP libraries and tools

NLP applications

Prerequisites

The course is intended for 2nd-year students of the Masters' Degree in Artificial Intelligence, who have a solid background in foundational subjects and technological tools for tackling modern Natural Language Processing. There are no formal prerequisites in terms of exams taken, but students are expected to be familiar with machine learning and deep learning concepts, methodologies and tools, fundamentals of AI & KR, statistical and mathematical methods for AI, and the Python programming language.

91257 - Ethics in Artificial Intelligence

Learning outcomes

At the end of the course, the student understands the main ethical aspects related to the creation and use of artificial intelligence systems. The student is able to reason critically about the main machine ethics issues connected with the moral behavior of AI systems endowed with autonomous decision capabilities and is able to evaluate the impact of the ethical and legal aspects connected with AI systems.

Course contents

The course aims to provide a thorough overview of the many ethical and social issues raised by information and communication technologies (ICTs), with particular attention to Artificial Intelligence and its impact on society and individuals.

Students will learn about the most compelling social and ethical challenges posed by ICTs and how to approach them in a critical way. Conceptual analysis will be supported by discussion of practical case studies.

Erasmus students follow the same programme of regular students.

Course Contents:

Introduction to Ethics

Information technologies, purposeful behavior and intelligence;

Singularity and Superintelligence;

Artificial Agency, Free Will, Consciousness;

Artificial Agents and Responsibility;

Machine Ethics;

AI Ethics and Roboethics;

Machine Learning, Big Data and the issues of Bias and Discrimination;

Anthropomorphism, Human-Computer/Robot Interaction (HCI, HRI), and Human Dignity; AI and Trust;

Human in the loop, Security, and Accountability;

AI Explainability and Transparency;

Assessing AI use cases. Socio-Technical Scenarios

Assessing AI use cases. Ethical tensions, Trade offs.

Possible use cases:

Military robots and Autonomous Weapon Systems;

Self-driving cars;

Expert systems: COMPAS, Watson;

Aviation and Air Traffic Management;

Machine artistic creativity (TheNextRembrandt, Obvious Art, Shimon);

AI Ethics in Healthcare

Legal relevance of AI Ethics

Ethical Business

AI and privacy

Modelling of legal and ethical norms and reasoning (with exercises)

91259 - Architecture and Platforms for Artificial Intelligence

Learning outcomes

At the end of the course, the student has a deep understanding of the requirements of machine-learning workloads for computing systems, has an understanding of the main architectures for accelerating machine learning workloads and heterogeneous architectures for embedded machine learning, and of the most popular platforms made available by cloud providers to specifically support machine/deep learning applications.

Course contents

Module 1:

Introduction to parallel programming.

Parallel programming patterns: embarassingly parallel, decomposition, master/worker, scan, reduce, …​

Shared-Memory programming with OpenMP.

OpenMP programming model: the “omp parallel” construct, scoping constructs, other work-sharing constructs.

GPU programming with CUDA.

Module 2:

From ML to DNNs - a computational perspective

Introduction to key computational kernels (dot-product, matrix multiply…​)

Inference vs training - workload analysis characterization

The NN computational zoo: DNNs, CNNs, RNNs, GNNs, Attention-based Networks

Running ML workloads on programmable processors

recap of processor instruction set architecture (ISA) with focus on data processing

improving processor ISAs for ML: RISC-V and ARM use cases

fundamentals of parallel processor architecture and parallelization of ML workloads

Algorithmic optimizations for ML

Key bottlenecks taxonomy of optimization techniques

Algorithmic techniques: Strassen, Winograd, FFT

Topology optimization: efficient NN models - depthwise convolutions, inverse bottleneck, introduction to Neural Architectural Search

Re

91261 - Artificial Intelligence in Industry

Learning outcomes

At the end of the course, the student has a deep knowledge of industrial applications that benefit from the use of machine learning, optimization and simulation. The student has a domain-specific knowledge of practical use cases discussed in collaboration with industrial experts in a variety of domains such as manufacturing, automotive and multi-media.

Course contents

The course is primarily delivered as a series of simplified industrial use cases. The goal is provide examples of challenges that typically arise when solving industrial use cases, and to develop critical thinking and problem solving skils.

Use cases may cover topics such as:

Anomaly detection

Remaining Useful Life (RUL) estimation

RUL based maintenance policies

Resource management planning

Recommendation systems with fairness constraints

Power network management problems

Epidemic control

Production planning

The course will emphasize the ability to view problems in their entirety and adapt to their peculiarities. This will frequently require to combine heterogeneous solution techniques, using integration schemes both simple and advanced.

The employed method will include:

Mathematical modeling of industrial problems

Predictive and diagnostic models for time series

Combinatorial Optimization

Integration methods for Probabilistic Models and Machine Learning

Integration methods for constraints and Machine Learning

Integration methods for combinatorial optimization and Machine Learning

The course will include seminars on real-world use cases, from industry experts.

The course contents may (and typically will) be subject to changes, so as to adapt to some degree to the interests and characteristics of the attending students.

B2133 - BIG DATA ANALYTICS AND TEXT MINING

Learning outcomes

At the end of the course, the student understands how corpora and big data sets can be analyzed to derive strategic knowledge and data-driven decisions. The student is able to address the main data and text analytics tasks such as data selection, transformation, analysis and interpretation, moreover is able to leverage deep learning pipelines and advanced solutions for text mining and natural language understanding downstream goals.

Course contents

Module 1 - Text Mining and Large Language Models (Prof. Gianluca Moro)

The module focuses on the following state-of-the-art deep learning advancements to cope with challenging and highly business demanded natural language processing and understanding tasks with core open source technologies:

Neural Language Modeling Foundations

Transformer Architecture, Pre-Training and Fine-Tuning Techniques, Decoding Strategies, Evaluation (Natural Language Generation Metrics, LLM-as-a-judge).

Large Language Models

Scaling Laws, Prompting vs Fine-Tuning, Instruction Fine-Tuning, Preference Alignment, Efficient Attention Mechanisms (e.g., BigBird, Performer, Key-Value Caching, Multi-Query Attention)

Compression and Quantization Methods (GPTQ, AWQ, GGUF), Parameter-Efficient Fine-Tuning (e.g., LoRA, QLoRA, GaLoRE, Prompt Tuning), Mixture-of-Experts, Vision-Language Models.

Knowledge-Enhanced Natural Language Processing. Retrieval-Augmented Generation (Chunking Strategies, Architectures) and VectorDBs, Agents and Tool Calling (Large Action Models - LAM), Graph Neural Networks, Graph Injection into Language Models for Trustworthiness.

Labs on real-world case studies and in enterprise settings with core technologies Python, Pytorch, HuggingFace, LlamaIndex:

 — Prompting vs Full Fine-Tuning vs Parameter-Efficient Fine-Tuning for Dialogue Summarization; Foundational Multimodal Large Language Models for Visual Question Answering.

 — Efficient, Retrieval-Augmented Conversational Agents for Qustion-Answering in the Legal Domain.

 — Graph Learning, Embedding and Injection into Language Models for Semantics-Aware Lay Summarization; GraphRAG and Structured Query Generation to Interact with DBMS and Knowledge Graphs in Multi-Source Question Answering;

 — Graph Verbalization into Large Language Model Prompts for Medical Question Answering.

The module introduces also new published SOTA results in top-tier AI conferences, we also achieved on some of these topics.

Module 2 - Big Data Analytics (Prof. Stefano Lodi)

Data Mining in Big Data Environments

Maps and reductions in parallel programming. The MapReduce programming model.

The Hadoop implementation of MapReduce.

The Python API to the Spark system and examples of parallel programs.

The Machine Learning

Library (MLlib) of Spark.

91266 - Machine Learning for Computer Vision

Learning outcomes

At the end of the course, the student masters the most popular modern machine-learning approaches to computer-vision tasks, with particular reference to specialized deep-learning architectures. The student has both a theoretical understanding and the necessary practical skills required to develop state-of-the-art image and video analysis systems for real-world applications.

Course contents

The course is held in the first semester, from September to December.

Topics:

Advanced CNNs: : ResNeXt and grouped convolutions, MobileNets, EfficientNet and RegNet.

Attention and vision Transformers. Transformers and atttention. Image classification architectures based on Transformers.

Object detection. Introduction to ensemble learning via boosting. The Viola-Jones detector and its applications. Specialized NN architectures for object detection. Two-stages, one-stage, and anchor-free detectors. Feature Pyramid Networks. Imbalanced learning and the focal loss. DEtection TRansformer (DETR). Hands-on session on object detection.

Semantic/instance/panoptic segmentation. Ensemble learning via bagging and random forests. The algorithm behind the Kinect body part segmentation. Transposed and dilated convolutions. Fully Convolutional Networks, U-net, DeepLab.  Instance segmentation and Mask R-CNN.

Depth estimation from monocular images: photometric loss and Monodepth.

Metric and representation learning. Deep metric learning and its applications to face recognition/identification and beyond. Contrastive and triplet loss, ArcFace, NT-Xent loss, CLIP. Unsupervised representation learning. Hands-on session on metric learning.

Image generation with GANs and diffusion models: metrics for generative tasks. Generative Adversarial Networks and Denoising diffusion probabilistic models. Stable diffusion and text-guided image generation. Hands-on session on textual inversion.

Prerequisites:

Basic knowledge of computer vision and image processing: image formation, image digitization, camera modelling and calibration, basic image manipulation and processing, local image features.

Basic knowledge of PyTorch: a good intro is available at https://pytorch.org/tutorials/beginner/basics/intro.html

Basic knowledge of machine learning: supervised versus unsupervised learning, classification versus regression, underfitting and overfitting, regularization; data split in training, validation and test sets; hyper-parameters and cross-validation.

If you attended Computer Vision and Image Processing (either thought by Prof. Lisanti and me or by Prof. Di Stefano), you already fulfill these prerequisites. If you didn’t, you can find on Virtuale slides and lab sessions.

Readin

91260 - ARTIFICIAL INTELLIGENCE AND ROBOTICS

Learning outcomes

At the end of the course, the student has the skills required for designing a system composed of one or multiple robotic agents. In particular, the student has a knowledge of the most popular models, methods, architectures, and tools for programming robotic agents endowed with significant computational and cognitive capabilities.

Course contents

The course will cover several topics in robotics. For each topic, we will first introduce it, and then discuss how it can be addressed using AI techniques, and what are the gains and challenges in doing so.

Here are the topics addressed, and the corresponding AI solutions that will be explored:

Basic concepts, methods and tools in robotics

State estimation, and how to address it using reasoning under uncertainty (Bayesian approaches, fuzzy sets, Dempster-Shafer theory)

Motion control, and how to address it using rule-based logical systems (fuzzy logic control)

Action planning, and how to address it using AI planning systems (hierarchical HTN planning)

Human-robot interaction, and how to address it using knowledge representation systems (semantic maps)

Putting it all together, using cognitive robotic architectures

Outlook: socio-ethical issues, and the research frontier

81683 - Internet of Things

Learning outcomes

At the end of the course, the student understands the architectures and methodologies at the basis of the Internet of Things (IoT) following a data centric approach. The student has a deep understanding of network protocols, integration of mobile and pervasive end-devices, middleware platforms for M2M-based IoT systems, edge/distributed/gateway computing principles, new services, service platforms and innovative application scenarios.

Course contents

The classes will be in English. The class will introduce the enabling technologies, protocols, software architectures and applications for the development of the emerging Internet of Things (IoT) paradigm. After a short introduction to pervasive computing and the emerging fields of applications (e.g. Industry 4.0, domotics, intelligent transportation systems, wearable devices, etc.) the class will provide a exhaustive illustration of the enabling components of IoT systems. These will include wireless communications among end-devices and towards infrastructures, data processing, languages for the development of applications and prototypes (Arduino, STM32 Nucleo, etc.). Specifically, the components of typical IoT system will be illustrated by following a data-oriented approach: from data generation on behalf of sensors to data transmission in WSAN, WPAN, WLAN, up to cloud streaming and storages, and including the data processing and integration in complex software systems.

A short summary of the course contents includes:

Introduction to IoT systems: definitions, applications, enabling technologies

IoT components: from sensors to gateway.

Sensors and actuators, sketchy illustration of design principles of electronic circuit boards, sensing and data acquisition policies.

Wireless communication and coding technologies for IoT

Machine-to-machine (M2M) communication among devices: wireless technologies for WPAN (BLE, IEEE 802.15.4, Z-Wave, etc.), WLAN and WSAN (LoRA, Dash7, Spirit, etc.)

Network architectures and routing (6LoWPAN, RPL)

Microcontrollers and System on Chip (SoC) prototypes’ programming (e.g. Arduino, STM32 Nucleo, ESP8266, etc.)

IoT components: from gateway to cloud.

Data acquisition protocols: XMPP, CoAP, MQTT, AMQP, WebSocket, etc.

Architectures for data storage and processing: cloud/fog/edge computing

IoT platforms: AWS IoT, Watson IoT, ThingSpeak, etc.

IoT & Big-data

IoT components: from cloud to applications.

Web of Things and Semantic Web 3.0 Standard for M2M and IoT

Machine learning principles (classification, clustering, regression, anomaly detection, etc.) and applications for sensor data analysis.

Frameworks for integrated development of IoT applications: AllJoyn, Google Thing, Apple HomeKit, etc.

IoT Open Issues and bottlenecks.

Privacy and Security management;

Energy efficiency for end-devices and power saving techniques;

Scalability.

91265 - Knowledge Engineering

Learning outcomes

At the end of the course, the student knows some (semi-)automated methods for joint interpretation of data and content as sources of knowledge. The student masters the basics of knowledge extraction, engineering, and linking, making data suitable to machine querying and automated reasoning, typically on decentralized platforms such as the Web.

Course contents

Knowledge graphs and ontologies

Semantic Web standards: OWL, RDF, SPARQL

Ontology Design methodologies and ontology design patterns

Reasoning methods, neuro-symbolic reasoning

Large Language Models and Knowledge Engineering: applications and research challenges

Knowledge extraction use cases: text and music

91264 - User Experience Design

Learning outcomes

At the end of the course, the student is able to design, implement and evaluate the quality of the interaction with software systems with respect to the dimensions of practicality, experience, affection, meaning and value that they may have on the target audience. The student is able to focus the functional analysis of the software on the characteristics and needs of the target audience, to drive the development process so as to guarantee a constant connection between the technical and implementation features and the expectation of the audience, and to evaluate whether and according to which metrics a software system satisfies these expectations.

Course contents

Teaching will be mostly in English (some explanations will be repeated in Italian if needed and when asked). The exam will be allowed in both Italian and English. The course content is divided in distinct parts:

Background The evolution of the discipline from Human Computer Interaction to User Experience Design. A description of its scope: the human, the computer, and their interaction.

Usability analysis and design A systematic discussion of the techniques and standards for the management of the process of user experience design, with particular attention to the phases of usability analysis (with and without the participation of users) and the user- and goal-oriented usability design methodologies.

Guidelines, patterns and methods for usability design A discussion, with historical aspects, of the framework on which the concrete aspects of usability design is based. we will also give strong attention to the problem of usability for web applications and mobile apps.

Applications of User Experience Design to complex systems (e.g. AI Systems): short module reserved to students in Artificial Intelligence, optional for the other students.

91252 - LABORATORY OF BUSINESS PLAN

Learning outcomes

At the end of the course, the student is able to account for and compare different theories that describe the starting up and organization of innovative ventures and understands the information and the analyses needed to perform a feasibility analysis and write a draft business plan for an innovative venture. The student is able to collect and analyze relevant information for that purpose, and to communicate a feasibility analysis/business plan orally and in writing.

Course contents

The course focuses on the development of entrepreneurial behaviours in a variety of settings. In particular, it presents the fundamentals of developing an effective business plan, teaching the basic principles of developing plans for the sales, marketing, product or service operations, financials and management of a new venture. It assumes some prior knowledge of the subject area and will equip students with much of the knowledge required to launch and manage a high potential new venture.

91279 - Project Work in Architectures and Platforms for Artificial Intelligence

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Architectures And Platforms For Artificial Intelligence in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

This course involves the design, development and analysis of a substantial software artifact for a parallel platform of choice (typically C/OpenMP or CUDA/C, although it will be possible to investigate other languages). The software can consist of either the parallelization of some existing program, or the development of a new program to solve some problem. In both cases the topic must be discussed and agreed upon with the instructor.

The technologies that will be used include:

Shared-Memory programming with C/OpenMP: basic costeructs, work-sharing costructs, scoping directives

GPU programming with CUDA/C: CUDA architecture and memory hierarchy, CUDA/C programming costructs, threads and thread blocks, efficiency considerations

Other technologies for parallel programming could also be considered

91276 - Project Work in Combinatorial Optimization

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Combinatorial Optimization in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

This teaching activity is about developing a project in combinatorial optimization, following the course 91762 - Combinatorial Decision Making and Optimization. Upon request, the teaching stuff can offer suggestions and help in defining the topic and objective of the project work. The student is, however, encouraged to take the initiative by reviewing the relevant literature and proposing a project work, for instance, about:

hybridization with machine learning;

a challenging application;

a research topic;

a literature survey on a research topic.

The proposal has to be approved by the teaching stuff before the student starts working on the project. Working as a group is a possibility depending on the project complexity.

91270 - Project Work in Fundamentals of Artificial Intelligence and Knowledge Representation

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Fundamentals of Artificial Intelligence and Knowledge Representation in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

To be discussed with the professor

91277 - Project Work in Image Processing and Computer Vision

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Image Processing And Computer Vision in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

See "91254 - Image Processing and Computer Vision"

91286 - Project Work in Internet of Things

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Internet Of Things in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

The course is based on a set of project proposals focusing the Internet of things class topics, which can be selected by candidates (also proposed by candidates). The project proposal must be agreed with the teacher and formally assigned to each single candidate.

The project realization will lead to a platform, system or software, possibly mutually integrated, for the realization of IoT applications, research and development objectives.

91275 - Project Work in Languages and Algorithms for Artificial Intelligence

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Languages and algorithms for Artificial Intelligence in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

The contents of the project will be agreed with the teacher in charge of the course.

B3155 - PROJECT WORK IN MACHINE LEARNING AND DATA MINING

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Machine Learning in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

The professor assigns a dataset and a mining task to be developed on it, or the students proposes a dataset that can be accepted by the professor. For the assignment of the dataset do the following:

visit the Kaggle [https://www.kaggle.com/] website;

choose three competitions of your interest, either active or closed; the dataset should be fairly complex, in other words, avoid very small datasets with a few hundred elements and a handful of columns

send and email to the teacher with the subject "[Project work] Kaggle competitions choice" and containing the link to the three competition of your interest

wait for the answer and, when the competition is assigned, do as specified on the "Assessment methods section below"

As an alternative, if you are interested to a specific project related to machine learning, prepare a short description of your idea and ask for an appointment.

93103 - Project Work in Multimedia Data Management M

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Multimedia data management M in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

A scientific paper is usually considered as the base for the development of a new multimedia data management algorithm and/or infrastructure and/or service.

91278 - Project Work in Natural Language Processing

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Natural Language Processing in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

This teaching activity is about developing a project in natural language processing or natural language understanding, following the course 91258 - Natural Language Processing. Upon request, the teaching staff can offer suggestions and help in defining the topic and objective of the project work. The student is, however, encouraged to take the initiative by reviewing the relevant literature and proposing a project work, for instance, about:

exploring a foundational aspect;

exploring NLP methods for low-resource languages or languages other than English;

working on a challenging application;

working on a research topic;

preparing a literature survey on a research topic;

significantly expanding a project developed within the NLP course.

The proposal has to be approved by the teaching staff before the student starts working on the project. Working as a group is encouraged.

Particularly innovative projects may receive extra support aimed to a possible submission of the work to a relevant scientific event.

81799 - Project Management and Soft Skills M

Learning outcomes

At the end of the course, the student is able to acquire the necessary skills to be a successful engineer, with a particular focus on non-technical (also known as soft) skills such as inductive/deductive/analytical/design reasoning, communication skills and employability. The student is able to use the basic tools of project management, including Gantt and Pert diagrams, work package breakdown, project cost estimation, and relevant aspects.

Course contents

The syllabus is reported below. More information on the course approach can be found on www.robertoverdone.org.

I.Introduction (approx 3 hours).

II. A Pragmatic Approach to Project Management (approx 9 hours).

  • Projects, Roles, WBS

  • Gantt and PERT Diagrams

  • Cost Assessment

  • Submitting a Project Proposal

III. Soft Skills and Aptitudes (approx 12 hours).

  • Introduction to Cognitive Processes

  • Soft Skills at Time of Industry 4.0

  • Success and Talent

  • Aptitudes

  • Team Work

  • Leadership

  • Learning Styles

IV. Communication Skills (approx 9 hours).

  • Fundamentals of Human Communication

  • Persuasion

  • Inter-Personal Communication

  • Presentation Skills

Additionally, the course will include a Madness session where all students will introduce themselves in one minute, a CV contest, and, possibly, one or two seminars from professionals.

91285 - Project Work in User Experience Design

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in User Experience Design in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

The module is a follow-up of the main course in Usability and User Experience Design specifically meant for students in Artificial Intelligence and discusses the following topics:

Understand that (artificial) intelligence is not just about learning and reasoning, but also about communicating (e.g. explaining to humans).

Understand what is the state-of-the-art of eXplainable AI (XAI) and how to design user-centred explanatorY AI (YAI).

We will define a common glossary on the meaning of explanation, explainability and interpretability in this context, discuss the importance of explainable and explanatory software in modern society, mentioning the recent EU’s “Right to Explanation”and works toward a user-centred explanatory software compliant with the GDPR

Read

91259 - Architecture and Platforms for Artificial Intelligence

Learning outcomes

At the end of the course, the student has a deep understanding of the requirements of machine-learning workloads for computing systems, has an understanding of the main architectures for accelerating machine learning workloads and heterogeneous architectures for embedded machine learning, and of the most popular platforms made available by cloud providers to specifically support machine/deep learning applications.

Course contents

Module 1:

Introduction to parallel programming.

Parallel programming patterns: embarassingly parallel, decomposition, master/worker, scan, reduce, …​

Shared-Memory programming with OpenMP.

OpenMP programming model: the “omp parallel” construct, scoping constructs, other work-sharing constructs.

GPU programming with CUDA.

Module 2:

From ML to DNNs - a computational perspective

Introduction to key computational kernels (dot-product, matrix multiply…​)

Inference vs training - workload analysis characterization

The NN computational zoo: DNNs, CNNs, RNNs, GNNs, Attention-based Networks

Running ML workloads on programmable processors

recap of processor instruction set architecture (ISA) with focus on data processing

improving processor ISAs for ML: RISC-V and ARM use cases

fundamentals of parallel processor architecture and parallelization of ML workloads

Algorithmic optimizations for ML

Key bottlenecks taxonomy of optimization techniques

Algorithmic techniques: Strassen, Winograd, FFT

Topology optimization: efficient NN models - depthwise convolutions, inverse bottleneck, introduction to Neural Architectural Search

Re

91261 - Artificial Intelligence in Industry

Learning outcomes

At the end of the course, the student has a deep knowledge of industrial applications that benefit from the use of machine learning, optimization and simulation. The student has a domain-specific knowledge of practical use cases discussed in collaboration with industrial experts in a variety of domains such as manufacturing, automotive and multi-media.

Course contents

The course is primarily delivered as a series of simplified industrial use cases. The goal is provide examples of challenges that typically arise when solving industrial use cases, and to develop critical thinking and problem solving skils.

Use cases may cover topics such as:

Anomaly detection

Remaining Useful Life (RUL) estimation

RUL based maintenance policies

Resource management planning

Recommendation systems with fairness constraints

Power network management problems

Epidemic control

Production planning

The course will emphasize the ability to view problems in their entirety and adapt to their peculiarities. This will frequently require to combine heterogeneous solution techniques, using integration schemes both simple and advanced.

The employed method will include:

Mathematical modeling of industrial problems

Predictive and diagnostic models for time series

Combinatorial Optimization

Integration methods for Probabilistic Models and Machine Learning

Integration methods for constraints and Machine Learning

Integration methods for combinatorial optimization and Machine Learning

The course will include seminars on real-world use cases, from industry experts.

The course contents may (and typically will) be subject to changes, so as to adapt to some degree to the interests and characteristics of the attending students.

B2133 - BIG DATA ANALYTICS AND TEXT MINING

Learning outcomes

At the end of the course, the student understands how corpora and big data sets can be analyzed to derive strategic knowledge and data-driven decisions. The student is able to address the main data and text analytics tasks such as data selection, transformation, analysis and interpretation, moreover is able to leverage deep learning pipelines and advanced solutions for text mining and natural language understanding downstream goals.

Course contents

Module 1 - Text Mining and Large Language Models (Prof. Gianluca Moro)

The module focuses on the following state-of-the-art deep learning advancements to cope with challenging and highly business demanded natural language processing and understanding tasks with core open source technologies:

Neural Language Modeling Foundations

Transformer Architecture, Pre-Training and Fine-Tuning Techniques, Decoding Strategies, Evaluation (Natural Language Generation Metrics, LLM-as-a-judge).

Large Language Models

Scaling Laws, Prompting vs Fine-Tuning, Instruction Fine-Tuning, Preference Alignment, Efficient Attention Mechanisms (e.g., BigBird, Performer, Key-Value Caching, Multi-Query Attention)

Compression and Quantization Methods (GPTQ, AWQ, GGUF), Parameter-Efficient Fine-Tuning (e.g., LoRA, QLoRA, GaLoRE, Prompt Tuning), Mixture-of-Experts, Vision-Language Models.

Knowledge-Enhanced Natural Language Processing. Retrieval-Augmented Generation (Chunking Strategies, Architectures) and VectorDBs, Agents and Tool Calling (Large Action Models - LAM), Graph Neural Networks, Graph Injection into Language Models for Trustworthiness.

Labs on real-world case studies and in enterprise settings with core technologies Python, Pytorch, HuggingFace, LlamaIndex:

 — Prompting vs Full Fine-Tuning vs Parameter-Efficient Fine-Tuning for Dialogue Summarization; Foundational Multimodal Large Language Models for Visual Question Answering.

 — Efficient, Retrieval-Augmented Conversational Agents for Qustion-Answering in the Legal Domain.

 — Graph Learning, Embedding and Injection into Language Models for Semantics-Aware Lay Summarization; GraphRAG and Structured Query Generation to Interact with DBMS and Knowledge Graphs in Multi-Source Question Answering;

 — Graph Verbalization into Large Language Model Prompts for Medical Question Answering.

The module introduces also new published SOTA results in top-tier AI conferences, we also achieved on some of these topics.

Module 2 - Big Data Analytics (Prof. Stefano Lodi)

Data Mining in Big Data Environments

Maps and reductions in parallel programming. The MapReduce programming model.

The Hadoop implementation of MapReduce.

The Python API to the Spark system and examples of parallel programs.

The Machine Learning

Library (MLlib) of Spark.

90748 - Blockchain and Cryptocurrencies

Learning outcomes

At the end of the course, the student knows the relevant themes related to blockchain technologies, cryptocurrencies, smart contracts and novel applications that can be built over the blockchain. The student is able to develop simple smart contracts that can be deployed on a blockchain.

Course contents

Note
Prof. Stefano Ferretti will be actually teaching the course.

Bitcoin and novel cryptocurrencies gathered momentum in the last months. More and more investors look with interest at these technologies, while others label them as a dangerous speculative bubble. The truth is that the blockchain, and the alternative implementations of a distributed ledger, represent very interesting technologies, that can be exploited to build novel distributed applications. The underlying building blocks are related to many concepts and research areas of computer science in general. This course will illustrate the main principles and conceptual foundations of the blockchain and the Bitcoin network.

Program

Introduction to peer-to-peer sysystems

Overlay topologies and decentralization

Introduction to Crypto and Cryptocurrencies

The blockchain: how to achieve decentralization

Transactions and transaction scripting languages

Mining

Attacks to the blockchain

Anonymity

Smart contracts

93467 - CRYPTOGRAPHY

Learning outcomes

At the end of the course, the student knows the basics of modern cryptography and some techniques for the analysis of security protocols. He or she can verify the absence of security bugs on simple protocols.

Course contents

This course deals with some fundamental notions on modern cryptography and some techniques for the formal verification of cryptographic protocols. In addition to many new concepts, we discuss some cryptographic techniques already seen in previous courses, studying the most interesting properties . The main emphasis of this course is on the theoretical aspects of cryptography: it attempts to give a clear and accurate account on security, in order to give students the tools to assess (and not just to use) cryptographic techniques . In other words, we focus a lot on the "why" maybe putting the "how" behind the scenes. More specifically, we seek to answer questions such as the following: when a cryptographic technique can be consider safe? Is it possible to formally prove that a cryptographic technique is secure ? Is it possible to analyze the security of a cryptographic protocol in an automatic or semi-automatic way?

Topics covered include perfect security, pseudorandomness, public and private key ciphers, and the symbolic model.

93470 - CYBERSECURITY

Learning outcomes

The student will learn: historical perspective and motivations for cyber-security, principles of data security, principles of software security, component and connection security, network security.

Course contents

Cyber scenario

Cybersecurity goals: information security and service availability

Analysis of cyber threats

(Too many) vulnerability issues

A top-down approach to cybersecurity

Cyber risk management

Qualitative and quantitative evaluation

Strategies, policies and technologies

Assessment and validation

Legal constraints you need to know

Modern approaches: Machine Learning for cybersecurity, Zero Trust, Deception

Competences and jobs related to cybersecurity

91266 - Machine Learning for Computer Vision

Learning outcomes

At the end of the course, the student masters the most popular modern machine-learning approaches to computer-vision tasks, with particular reference to specialized deep-learning architectures. The student has both a theoretical understanding and the necessary practical skills required to develop state-of-the-art image and video analysis systems for real-world applications.

Course contents

The course is held in the first semester, from September to December.

Topics:

Advanced CNNs: : ResNeXt and grouped convolutions, MobileNets, EfficientNet and RegNet.

Attention and vision Transformers. Transformers and atttention. Image classification architectures based on Transformers.

Object detection. Introduction to ensemble learning via boosting. The Viola-Jones detector and its applications. Specialized NN architectures for object detection. Two-stages, one-stage, and anchor-free detectors. Feature Pyramid Networks. Imbalanced learning and the focal loss. DEtection TRansformer (DETR). Hands-on session on object detection.

Semantic/instance/panoptic segmentation. Ensemble learning via bagging and random forests. The algorithm behind the Kinect body part segmentation. Transposed and dilated convolutions. Fully Convolutional Networks, U-net, DeepLab.  Instance segmentation and Mask R-CNN.

Depth estimation from monocular images: photometric loss and Monodepth.

Metric and representation learning. Deep metric learning and its applications to face recognition/identification and beyond. Contrastive and triplet loss, ArcFace, NT-Xent loss, CLIP. Unsupervised representation learning. Hands-on session on metric learning.

Image generation with GANs and diffusion models: metrics for generative tasks. Generative Adversarial Networks and Denoising diffusion probabilistic models. Stable diffusion and text-guided image generation. Hands-on session on textual inversion.

Prerequisites:

Basic knowledge of computer vision and image processing: image formation, image digitization, camera modelling and calibration, basic image manipulation and processing, local image features.

Basic knowledge of PyTorch: a good intro is available at https://pytorch.org/tutorials/beginner/basics/intro.html

Basic knowledge of machine learning: supervised versus unsupervised learning, classification versus regression, underfitting and overfitting, regularization; data split in training, validation and test sets; hyper-parameters and cross-validation.

If you attended Computer Vision and Image Processing (either thought by Prof. Lisanti and me or by Prof. Di Stefano), you already fulfill these prerequisites. If you didn’t, you can find on Virtuale slides and lab sessions.

Readin

90730 - SOCIAL NETWORK ANALYSIS

Learning outcomes

At the end of the course, students gain knowledge on the Web as a socio-technical system involving specific processes, entities, and behaviours, using interdisciplinary methods that blend computer science, sociology, ethnography, economics, linguistics, etc. The students are able to analyse the Web phenomena similarly to typical objects from natural sciences, distinguishing between data and applications, agents from computationally generated profiles, and addressing the characteristics of networks of entities emerging from the informationl, physical, social, and conceptual spaces constituting the Web.

Course contents

The programme is the same for both attending and non-attending students:

Introduction to Network Analysis, gentle introduction to the field of network analysis and its usages in other fields of research (e.g., computer science, forensics, archeology, literature, history, science of religion, etc.).

Research Design and How to Read a (Network Analysis) Research Paper: introduction to the scientific publication process, elements of research papers (on network analysis), research design, analysis of research papers.

Mathematics of Networks: networks and their representation, types of networks, graph representations, paths and components, adjacency matrices and matrix representations, ways and modes, operations on Matrices.

Data Collection and Data Management: network questions, data collection and reliability, data formats and transformation, algorithms and software for network analysis and visualisation.

Measures and Metrics, Nodes: kinds of measures, multi-category nominal scales, ordinal and scalar measures, centrality, degree and other kinds of centrality (e.g. Google’s PageRank), hubs and authorities, closeness and betweenness centrality, groups of nodes (cliques, cores, components and k-components), clustering and clustering coefficients, reciprocity and similarity, structural and other types of equivalence, homophily and types of assortative mixing.

Testing Hypotheses: the role of hypotheses in the scientific method, testing hypotheses in network analysis, permutation tests, dyadic hypotheses.

Measures and Metrics, Networks: small-world effects, degree distribution, power laws and scale-free networks, visualisation and properties of power-law distributions, local-clustering coefficient, cohesion, reciprocity, transitivity and the clustering coefficient, triad census, centralisation and core-periphery indices, centrality, random graphs, means on edges and degree, degree distribution, giant and small component(s), locally tree-like networks.

Network Visualisation: the importance of network visualisation, graph-layout algorithms, embedding node attributes, node filtering, visualising ego networks, embedding tie characteristics, tie strengths, visualising network change.

Handling Large Networks: reducing the size of the problem, eliminating edges, pruning nodes, divide and conquer, aggregation, sampling, small-world and scale-free networks.

Students with specific learning disorders (SLD) or temporary/permanent disabilities should contact the appropriate University office (https://site.unibo.it/studenti-con-disabilita-e-dsa/en) immediately and agree with the teacher the most effective strategies for attending the lectures and preparing for the exam.

91260 - ARTIFICIAL INTELLIGENCE AND ROBOTICS

Learning outcomes

At the end of the course, the student has the skills required for designing a system composed of one or multiple robotic agents. In particular, the student has a knowledge of the most popular models, methods, architectures, and tools for programming robotic agents endowed with significant computational and cognitive capabilities.

Course contents

The course will cover several topics in robotics. For each topic, we will first introduce it, and then discuss how it can be addressed using AI techniques, and what are the gains and challenges in doing so.

Here are the topics addressed, and the corresponding AI solutions that will be explored:

Basic concepts, methods and tools in robotics

State estimation, and how to address it using reasoning under uncertainty (Bayesian approaches, fuzzy sets, Dempster-Shafer theory)

Motion control, and how to address it using rule-based logical systems (fuzzy logic control)

Action planning, and how to address it using AI planning systems (hierarchical HTN planning)

Human-robot interaction, and how to address it using knowledge representation systems (semantic maps)

Putting it all together, using cognitive robotic architectures

Outlook: socio-ethical issues, and the research frontier

92858 - Autonomous and Adaptive Systems M

Learning outcomes

At the end of this course student will have a solid understanding of the state of the art and the key conceptual and practical aspects of the design, implementation and evaluation of intelligent machines and autonomous systems that learn by interacting with their environment. The course also takes into consideration ethical, societal and philosophical aspects related to these technologies.

Course contents

Introduction to the design of adaptive and autonomous systems: intelligent agents and intelligent machines, automatic vs autonomous decision-making.

Introduction to Reinforcement Learning (RL): multi-armed bandits, Montecarlo methods, tabular methods, approximation function methods, and policy-based methods.

Applications of RL to games, classic control theory problems and robotics.

Introduction to algorithmic game theory for multi-agent learning systems: cooperation and coordination, social dilemmas, and Multi-Agent Reinforcement Learning.

Bio-inspired adaptive systems.

Intelligent machines that create: Generative Learning and AI creativity.

The "brave new world": agentic AI systems, design of agents based on foundational models, training using Reinforcement Learning from human-feedback (RLHF) and Direct Preference Optimization (DPO).

Open problems and the future: safety, value alignment, super-intelligence, controllability, and self-awareness.

Ethical and philosophical implications of AI and autonomous systems.

The course will include labs in which we will discuss implementation oriented aspects of the techniques and methodologies presented during the course.

92995 - DISTRIBUTED AUTONOMOUS SYSTEMS M

Learning outcomes

The course focuses on the design of control, optimization and learning methods and software tools for teams of autonomous systems. These systems consist of cooperative agents, as intelligent robots, autonomous vehicles and decision systems, that aim at performing complex tasks according to a federated and distributed computing paradigm. At the end of the course students will know how to design selected distributed control, optimization and learning algorithms to solve complex tasks involving teams of autonomous systems. To bridge the gap between theory and application, laboratory activities will allow students to design software tools for the studied algorithms and apply them to a number of application domains, including, e.g., planning,guidance and optimal control of cooperative autonomous vehicles and intelligent robots as well as machine learning and data analytics for decision systems.

Course contents

Introduction to Distributed Autonomous Systems

New paradigms and applications domains of autonomous systems: decision systems for data analytics (e.g., recommender systems and localization), sensor networks, cooperative robotics, cooperative mobility, smart energy systems. Introduction to distributed systems: centralized versus distributed computing, key properties and main goals for distributed systems.

Modeling of distributed systems

Models of distributed systems. Graph theory as a tool to model communication among network agents. Preliminaries on graph theory and examples. Distributed algorithms and distributed control laws. Introduction to Python programming with a focus on distributed computing and cooperative robotics via Robotic Operating System 2.

Basic distributed algorithms

Averaging protocols and linear consensus algorithms for multi-agent systems. Complex tasks (e.g., autonomous formation control, containment in leader-follower networks) based on linear consensus algorithms. Practical Python implementation of averaging and distributed control laws on case study examples from decision and control networks.

Introduction to distributed optimization

Optimization basics. Main problem set-ups and examples from estimation, machine learning, decision making, and control in cyber-physical networks.

Distributed decision making via consensus optimization

Consensus optimization algorithms based on averaging. Distributed gradient and gradient tracking methods. Practical Python implementation on case studies from federated and distributed machine learning, e.g., logistic regression, support vector machine, training of neural networks for classification.

Cooperative robotics via distributed optimization

Aggregative optimization. Constraint-coupled optimization algorithms based on decomposition schemes. Hierarchical robotic control architectures. Practical Python implementation on case study examples from formation control, collision avoidance, surveillance and task allocation in cooperative robotics. ROS 2 toolboxes for cooperative robotics.

81683 - Internet of Things

Learning outcomes

At the end of the course, the student understands the architectures and methodologies at the basis of the Internet of Things (IoT) following a data centric approach. The student has a deep understanding of network protocols, integration of mobile and pervasive end-devices, middleware platforms for M2M-based IoT systems, edge/distributed/gateway computing principles, new services, service platforms and innovative application scenarios.

Course contents

The classes will be in English. The class will introduce the enabling technologies, protocols, software architectures and applications for the development of the emerging Internet of Things (IoT) paradigm. After a short introduction to pervasive computing and the emerging fields of applications (e.g. Industry 4.0, domotics, intelligent transportation systems, wearable devices, etc.) the class will provide a exhaustive illustration of the enabling components of IoT systems. These will include wireless communications among end-devices and towards infrastructures, data processing, languages for the development of applications and prototypes (Arduino, STM32 Nucleo, etc.). Specifically, the components of typical IoT system will be illustrated by following a data-oriented approach: from data generation on behalf of sensors to data transmission in WSAN, WPAN, WLAN, up to cloud streaming and storages, and including the data processing and integration in complex software systems.

A short summary of the course contents includes:

Introduction to IoT systems: definitions, applications, enabling technologies

IoT components: from sensors to gateway.

Sensors and actuators, sketchy illustration of design principles of electronic circuit boards, sensing and data acquisition policies.

Wireless communication and coding technologies for IoT

Machine-to-machine (M2M) communication among devices: wireless technologies for WPAN (BLE, IEEE 802.15.4, Z-Wave, etc.), WLAN and WSAN (LoRA, Dash7, Spirit, etc.)

Network architectures and routing (6LoWPAN, RPL)

Microcontrollers and System on Chip (SoC) prototypes’ programming (e.g. Arduino, STM32 Nucleo, ESP8266, etc.)

IoT components: from gateway to cloud.

Data acquisition protocols: XMPP, CoAP, MQTT, AMQP, WebSocket, etc.

Architectures for data storage and processing: cloud/fog/edge computing

IoT platforms: AWS IoT, Watson IoT, ThingSpeak, etc.

IoT & Big-data

IoT components: from cloud to applications.

Web of Things and Semantic Web 3.0 Standard for M2M and IoT

Machine learning principles (classification, clustering, regression, anomaly detection, etc.) and applications for sensor data analysis.

Frameworks for integrated development of IoT applications: AllJoyn, Google Thing, Apple HomeKit, etc.

IoT Open Issues and bottlenecks.

Privacy and Security management;

Energy efficiency for end-devices and power saving techniques;

Scalability.

91265 - Knowledge Engineering

Learning outcomes

At the end of the course, the student knows some (semi-)automated methods for joint interpretation of data and content as sources of knowledge. The student masters the basics of knowledge extraction, engineering, and linking, making data suitable to machine querying and automated reasoning, typically on decentralized platforms such as the Web.

Course contents

Knowledge graphs and ontologies

Semantic Web standards: OWL, RDF, SPARQL

Ontology Design methodologies and ontology design patterns

Reasoning methods, neuro-symbolic reasoning

Large Language Models and Knowledge Engineering: applications and research challenges

Knowledge extraction use cases: text and music

77933 - Multimedia Data Management M

Learning outcomes

At the end of the course, the student has the knowledge and skills required for an effective and efficient management of multimedia (MM) data, with particular attention to the problems of MM data representation, MM data retrieval models, and interaction paradigms between the user and the MM system both for purposes of data presentation and exploration. The student understands the architecture of traditional and advanced MM systems and services, search engines, social networks and recommendation systems.

Course contents

Basics on Multimedia Data Management

Multimedia data and content representations

MM data and applications

MM data coding

MM data content representation

How to find MM data of interest

Description models for complex MM objects

Similarity measures for MM data content

MM Data Base Management Systems

Efficient algorithms for MM data retrieval

MM query formulation paradigms

Sequential retrieval of MM data

Index-based retrieval of MM data

Automatic techniques for MM data semantic annotations

Browsing MM data collections

MM data presentation

User interfaces

Visualization paradigms

Dimensionality reduction techniques

Result accuracy, use cases and real applications

Quality of the results and relevance feedback techniques

Use cases and demos of some applications

Multimedia Data on the Web

Web search engines

Graph-based data: semantic Web and social networks

Web recommender systems

N.B. For students of the second cycle degree programmes (LM) in Artificial intelligence and Computer Science, the "Efficient algorithms for MM data retrieval" part of the program is not required.

81799 - Project Management and Soft Skills M

Learning outcomes

At the end of the course, the student is able to acquire the necessary skills to be a successful engineer, with a particular focus on non-technical (also known as soft) skills such as inductive/deductive/analytical/design reasoning, communication skills and employability. The student is able to use the basic tools of project management, including Gantt and Pert diagrams, work package breakdown, project cost estimation, and relevant aspects.

Course contents

The syllabus is reported below. More information on the course approach can be found on www.robertoverdone.org.

I.Introduction (approx 3 hours).

II. A Pragmatic Approach to Project Management (approx 9 hours).

  • Projects, Roles, WBS

  • Gantt and PERT Diagrams

  • Cost Assessment

  • Submitting a Project Proposal

III. Soft Skills and Aptitudes (approx 12 hours).

  • Introduction to Cognitive Processes

  • Soft Skills at Time of Industry 4.0

  • Success and Talent

  • Aptitudes

  • Team Work

  • Leadership

  • Learning Styles

IV. Communication Skills (approx 9 hours).

  • Fundamentals of Human Communication

  • Persuasion

  • Inter-Personal Communication

  • Presentation Skills

Additionally, the course will include a Madness session where all students will introduce themselves in one minute, a CV contest, and, possibly, one or two seminars from professionals.

97431 - SCALABLE AND RELIABLE SERVICES M

Learning outcomes

Digital services have to meet various requirements in terms of performance, scalability and reliability. We analyze the whole lifecycle of high quality services, from design to deployment, testing and operation. In each phase, we aim to provide the students with the ability to gather and analyze data, to identify sources of outages and critical dependencies, and to avoid bottlenecks and single points of failure. Finally, we expect students to be prepared to evaluate and discuss alternatives and justify investment in support of business services.

Course contents

Introduction

Cloud services

Cloud provider architectures

High-quality services: performance, scalability, reliability (and security)

Lifecycle of high-quality services

Part 1: Architectures for scalable and reliable services

Sources of outages and critical dependencies

Bottlenecks and single points of failure

Design: maturity assessment, architectural principles for reliability and scalability, AKF scale cube model

Migration to cloud

Critical data management: Strategy, Governance, Management

Implementation alternatives on cloud platforms and multi-clouds

Part 2: Service deployment

Secure and robust software production

Secure and robust DevOps

Labs on cloud platforms

Part 3: Tests

Benchmarking

Performance testing

Stress testing

Part 4: Scalable and reliable organizations

Roles and responsibilities

Leaders and managers

Putting all together

Capacity planning

Understanding and managing complexity

Managing changes

Part 5: Issues, incident and crises

Performance monitoring

Warning signs in operation

Incidents management

Crisis management

91264 - User Experience Design

Learning outcomes

At the end of the course, the student is able to design, implement and evaluate the quality of the interaction with software systems with respect to the dimensions of practicality, experience, affection, meaning and value that they may have on the target audience. The student is able to focus the functional analysis of the software on the characteristics and needs of the target audience, to drive the development process so as to guarantee a constant connection between the technical and implementation features and the expectation of the audience, and to evaluate whether and according to which metrics a software system satisfies these expectations.

Course contents

Teaching will be mostly in English (some explanations will be repeated in Italian if needed and when asked). The exam will be allowed in both Italian and English. The course content is divided in distinct parts:

Background The evolution of the discipline from Human Computer Interaction to User Experience Design. A description of its scope: the human, the computer, and their interaction.

Usability analysis and design A systematic discussion of the techniques and standards for the management of the process of user experience design, with particular attention to the phases of usability analysis (with and without the participation of users) and the user- and goal-oriented usability design methodologies.

Guidelines, patterns and methods for usability design A discussion, with historical aspects, of the framework on which the concrete aspects of usability design is based. we will also give strong attention to the problem of usability for web applications and mobile apps.

Applications of User Experience Design to complex systems (e.g. AI Systems): short module reserved to students in Artificial Intelligence, optional for the other students.