81609 - Languages, Compilers and Computational Models

PDF, ADOC.

Learning outcomes

At the end of the course the student knows:

  • foundational aspects of logics, automata, regular expressions and grammars

  • techniques for the design and implementation, via compilers, of programming languages

  • languages, models and techniques for the description and property verification of concurrent and distributed software systems.

Course contents

Automata and formal languages:

  • finite state automata

  • regular expressions and their relationship with finite state automata

  • context free grammars

  • pushdown automata and their relationship with context free grammars

  • Turing machines

  • recursive and recursively enumerable languages and their relationship with Turing machines

Basic logic:

  • propositional logic

  • predicate logic

Compilers:

  • lexical analyzers

  • syntactic analyzers

  • static program checking

  • code generation

Computational models:

  • transition systems for the modeling of system behavior

  • temporal logics for property specification and verification

  • concurrent finite state processes with synchronization and interleaving

  • Petri nets

Rea

81610 - Machine Learning

PDF, ADOC.

Learning outcomes

Providing the student with the concepts necessary: - to understand and apply machine learning approaches; - implement classification, regression and clustering algorithms to solve problems in different applicative fields; use neural networks and other deep learning techniques.

Course contents

Artificial Intelligence and Machine Learning

Supervided and Unsupervised Learning

Classification and Regression

Classifiers: Bayes, k-Nearest Neighbor, Support Vector Machines, Multiclassifiers

Clustering (K-means, EM) and Dimensionality Reduction (PCA, DA)

Neural Networks (NN)

Introduction to Deep Learning

Convolutional Neural Networks (CNN)

Recurrent Neural Networks (RNN)

Reinforcement Learning (RL)

58260 - Distributed Systems

PDF, ADOC.

Learning outcomes

At the end of the course, students got acquainted with the fundamental issues of distributed systems, the computational models capturing their essence, and the technologies currently helping facing them in the most systematic and effective way. In particular, students become familiar with the fittest solutions, technologies, architectures, and methodologies to design distributed systems, and is capable of

devising out the most critical aspects of distributed systems coming from physical distribution

determining the most proper methodological approaches

selecting the fittest technologies for implementing the solutions detected

Course contents

Case Studies

CAP Theorem

Distributed Consensus

Distributed Ledger Technology: Blockchain as Middleware

General Issues of Distributed Systems

Roots of Distributed Systems: Space, Time & Computation

Goals & Issues of Distributed Systems

Sorts of Distributed Systems

Modelling Distributed Systems: (a) Process Algebra, (b) Software & System Architectures

Features of Distribution

Computing with Time

Computing with Space

Models and Technologies for Distributed Systems

Agents & Multi-Agent Systems

Cloud, Fog, Edge Computing

Web Services

09679 - Data Base Sistems

PDF, ADOC.

Learning outcomes

The student

  • has a in depth knowledge about managing, organizing and planning an Information System. these organizational and managerial competences are complemental to the technical ones in the database area;

  • knows the techniques for analyze and classify software modules in the information system contex;

  • carries out feasibility studies and Business Process Reengineering project;

  • carries out database integration and master data projects;

  • acquires practical skills on the previous topics through interactive business cases and seminars.

Course contents

Introduction to Information Systems

IS classification

Il portafoglio applicativo aziendale

CIMsystems

ERP systems

CRMsystems

Seminar: Sage - ERP

Methods for IS design

Resources and processes

IS planning

Business Process Reengineering

Feasibility study

Risk analysis

cost-Benefit Analysis

Architectural analysis of IS

Scope statement

ICT project management

Database integration and Master Data Management

69867 - Web Services and Applications

PDF, ADOC.

Learning outcomes

At the end of the course, the student is able to develop, by using advanced programming techniques: web sites based on client side and server side web technologies, front-ends based on apps and rich internet applications and back-ends based on web services, asynchronous notifications and workflows.

Course contents

Comparisons among different Web architectures and different solution stacks.

Web Browser and Web Server: how they work and the supported technologies.

MVC and MVVM patterns applied to the Web context.

JavaScript and the "JavaScript everywhere" paradigm

MEAN solution stack and related ones (MERN and MEVN), illustrating MongoDB, ExpressJS, NodeJS.

Javascript frameworks: VueJS, Angular, React.

Superset languages in the Web: TypeScript, SASS and SCSS.

HCI methodologies and principles applied to Web user interfaces: design and evaluation; responsive design principles.

93470 - Cybersecurity

PDF, ADOC.

Learning outcomes

At the end of the course, the student knows the basic principles of computer security and he/she is able to identify the main problems of computer and network security. He/she gets to understand and explain the main protocols and mechanisms used for securing communications and data transfer. He/she is able to perform a critical evaluation of the security of a computing infrastructure and to suggest the best countermeasures to mitigate the vulnerabilities, reduce the risk and increase the resilience to attacks. He/she is also capable of contributing to the design of systems that are secure by design and understanding the basic problems of computer forensics. Finally, he/she is able to design and contribute to the enhancement of the security of devices exposed to the Internet.

Course contents

Computer and network security basics. Threats, risks, attacks, and assets. Security functional requirements.

Small introduction to cryptography. Symmetric Encryption. Public-Key Encryption. Digital Signatures and Key Management.

User authentication and authentication-related problems.

Access control.

Malicious software.

Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) attacks.

Intrusion Detection Systems (IDS).

Design and implementation of Firewalls.

Security aspects in design and implementation of software.

Security management and risk assessment. Management. Risk analysis and evaluation. Design and implementation of security policies. Social engineering and human-in-the loop. Auditing.

Basic computer forensics and anti-computer forensics techniques.

Hardening of computing devices.

81932 - Big Data

PDF, ADOC.

Learning outcomes

At the end of the course, the student:- Knows the applications of Big Data technologies and the respective challenges - Knows the available hardware and software architectures to handle Big Data - Knows the techniques to store the data, the programming languages and paradigms generally adopted in this kind of systems - Knows the design methodologies for the different kinds of applications in the area of Big Data - Acquires practical expertise in using the different technologies through laboratory and projects. In particular, the main technologies used in practical exercises will be NoSQL databases and the Hadoop platform: Hive, Spark, Tez, Dremel, Giraph, Storm, Mahout, and Open R

Course contents

Requirements

A prior knowledge of relational databases, Java and Scala programming languages, and Unix-like systems is required to attend the course. Attendance of Business Intelligence and Data Mining courses is encouraged.

Classes and teaching material are in English. A good comprehension of English is thus required to use the material and interact during class. Exam can be given in Italian.

Modules

The course is split into two modules.

The first module (20 hours) is mostly theoretical and it is shared with the Master’s Degree in Digital Transformation Management (corresponding to Module 1 of Big Data and Cloud Platforms).

The second module (30 hours) is mostly practical and it is exclusive to the Master’s Degree in Computer Science and Engineering.

Course Contents

  1. Introduction to the course and to Big Data: what they are and how to use them

  2. Cluster computing to handle Big Data

Hardware and software architectures

The Apache Hadoop framework and its modules (HDFS, YARN)

Hadoop-specific data structures (Apache Parquet)

  1. The MapReduce paradigm: basic principles, limitations, design of algorithms

  2. The Apache Spark system

Architecture, data structures,basic principles

Data partitioning and shuffling

Optimization of the computation

  1. SQL on Big Data with Spark SQL

  2. Data streaming

The architecture to handle data streaming

Approximated algorithms in the streaming context

  1. NoSQL databases

  2. Handling Big Data in the Cloud

Cluster on-premises vs in the cloud

The technological stack in the cloud

Deploy of a real case study on a cloud provider

  1. Designing non-trivial problems under the MapReduce paradigm

30376 - Business Intelligence

PDF, ADOC.

Learning outcomes

After the course, the student is skilled in business intelligence architectures and functionalities. In particular, the student is capable of designing and administrating enterprise data warehouses.

Course contents

Requirements

A prior knowledge and understanding of database systems, relational model, and SQL language is required to attend with profit this course. These notions are normally achieved by giving an exam of Databases or Information Systems.

Fluent spoken and written Italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in Italian.

Course Contents

Business intelligence:

the role of BI in the corporate information system;

the BI pyramid.

Data Warehousing:

architectures;

techniques for data analysis: reporting and OLAP;

lifecycle:

data source analysis;

requirement analysis;

conceptual design;

workload and data volume;

logical design;

design of ETL procedures;

physical design.

40720 - Data Mining

PDF, ADOC.

72529 - Smart City and Mobile Technologies

PDF, ADOC.

Learning outcomes

Today Smart City is an area of research and application with

huge potential for growth and involves a variety of relevant

aspects: the role of government for strategic planning and

development of a nation, the construction of social and

relationship capital, technologies like factors facilitating

innovation, the new positioning of citizens and their

associations.

At the end of the course the student will have the basic

knowledge - in terms of technologies, methods and tools - for

design and development of software applications to assist the

implementation of innovative services in the context of digital

cities, with particular reference to mobile technologies and embedded systems. A further

objective of the course is the presentation of some lines of

scientific research in the field of ICT for Smart City which will,

in the near future, triggering processes of technological

innovation in various applications of interest.

Course contents

The course wants to be in the context of Smart Sustainable City,

as a priority, as the basis for the learning of techniques for the

realization of innovative services, with particular reference to

mobile technologies and embedded systems. Crucial role in smart services can

be attributed to the development and dissemination of sensors of

various kinds, in a scenario known as the IoT (Internet of Things),

as well as crucial is the innovation in the field of embedded

systems, and in particular of Video Content Analysis technology,

and the availability of

efficient cloud computing architectures and distributed information

systems for the management of Big Data.

Main

contents of the course

The foundation for the realization of innovative

services in contexts Smart City

·

Sensing technologies

·

Embedded systems and applications (eg, environmental

monitoring, video surveillance, smart building, indoor and outdoor localization, home automation,

machine vision)

·

Design methodologies and development environments

for applications (with particular focus on mobile devices as clients)

·

Cloud Computing and Big Data

There will also be seminars on aspects of interest

for Smart City.

The course is supported by guided exercises in

laboratory.

Readings/Bibliography

29443 - Computer Vision

PDF, ADOC.

Learning outcomes

The course aims at providing the notions and tools necessary for the design and implementation of automatic systems able to analyze digital images for object detection and recognition. In particular, the course focuses mainly on the techniques for feature extraction from digital images and the application of these techniques to typical problems in computer vision such as segmentation, localization, classification and similarity searches. Both traditional approaches as well as deep-learning based solutions will be analyzed, with examples in real-life applications.

Course contents

Basic techniques for digital image processing and filtering

Feature extraction

Color features:

  • color histograms and similarity metrics;

  • color moments

Texture features:

  • gray-level co-occurrence matrix and related measures (enthropy, contrast, homogeneity, etc..);

  • Gabor filters: filter banks;

  • Haar features: integral image and efficient feature extraction;

  • Local Binary Pattern;

Shape features:

  • Object countour extraction and one-dimensional shape representations;

  • Shape descriptors, Fourier descriptors;

  • Invariant moments.

Handcrafted features vs Representation learning

Image stitching, 2D image registration and Visual SLAM

Keypoints and local descriptors:

  • Keypoint detection: Harris corner detector;

  • Scale invariant detectors: Harris Laplace, Laplacian of Gaussian, Difference of Gaussian;

  • Keypoints and descriptors: SIFT, SURF, BRIEF, Histogram of Oriented Gradients.

  • Ransac algorithm for feature matching.

  • Application to robotics: Visual SLAM (Simultaneous Localization and Mapping)

Semantic segmentation in digital images

Color-based segmentation techniques, Mean Shift algorithm;

Deep learning based techniques with applications in satellite and medical images analysis.

Recognition “in the wild”

Object detection/classification

  • Color, texture and shape features for content-based image retrieval;

  • Bag of visual Words;

  • Feature-based Rigid Template matching and applications to object detection and recognition (e.g. grocery products)

  • Hough Transform;

  • Deep learning techniques for object detection and recognition (e.g. pedestrian and road sign recognition, object recognition for robotic vision, face detection and recognition).

Video surveillance and video analysis

Basic techniques for frame subtraction and background modeling

Approaches for object/person tracking and crowd analysis;

Human activity detection and recognition.

Readin

91411 - Intelligent Robotic Systems

PDF, ADOC.

Learning outcomes

At the end of the course, students have acquired knowledge and competencies for designing a system composed of one or more robots (here, we call "robot" an autonomous system which exists in the physical world, can sense its environment and can act on it to achieve some goals). In particular, students know the main models, methods, architectures and tools for programming robots equipped with nontrivial computational and cognitive capabilities.

Course contents

Introduction to robotics

Notions of robot and its behavior in a physical environment

Main issues in intelligent robotic systems design

Complex dynamical systems: basic definitions and concepts propaedeutic to robotic topics (notions of phase and state space, trajectory, attractor, bifurcation, phase transition, chaos)

Main methods and approaches for programming robotic systems. Part 1: Deliberative control

Informed search algorithms. A* and its variants for path planning problems

Robot planning: main definitions and principles

STRIPS and its extensions

Nonlinear planning

Navigation problems and main solution approaches

Main methods and approaches for programming robotic systems. Part 2: Behavior-based robotics

The Subsumption Architecture

Artificial Evolution and Artificial Life

Automatic design of robot programs

Further discussions on embodiment: sensory-motor coordination, niches, morphological computation

Fuzzy logic and fuzzy systems

Behavior trees

Experimental evaluation and parameter tuning of control software for robots: practical guidelines

Robot learning

Associative learning

Reinforcement learning

Value-based learning and intrinsic motivation

Lab activities

Experiments with robotic simulators with the aim of experiencing with the various kinds of control and testing the knowledge acquired.

93669 - Intelligent Systems Engineering

PDF, ADOC.

Learning outcomes

At the end of the course, students get acquainted with the fundamental issues of intelligent systems, the most relevant computational models and technologies, and the most effective methods. In particular, students become familiar with the fittest solutions, languages, technologies, architectures, and methodologies to design intelligent systems, and are capable of

  • devising the problems requiring artificial intelligence techniques for their solution;

  • determining the most proper conceptual and methodological approaches;

  • selecting and integrating the fittest technologies for implementing the solutions detected.

Course contents

  • Intelligence and autonomy in software and artificial systems

Artificial intelligence: short history, main concepts and techniques

The many diverse meanings of autonomy in artificial and software systems

  • Agents, multi-agent systems, and the engineering of intelligent systems

Agent meta-models, models, and main technologies

Agent-oriented software engineering

  • AI meets autonomy: Intelligent agents

Logic & computation

Automated reasoning & planning

Reasoning agents

  • Symbolic vs. sub-symbolic AI

Machine learning meets intelligent agents

eXplainable Artificial Intelligence

Readin

95638 - Operational Analytics

PDF, ADOC.

Learning outcomes

Operational analytics, a specific type of business analytics, is focused on the analysis of business processes to the end of creating competitive advantage by means of operational data analysis and of the application of analytical algorithms. The course concentrates on the algorithmic side, specifically presenting predictive analytical techniques, forecasting future data on the basis of available time series, and prescriptive analytical techniques, defining optimized usage of available resources. Real world cases will be studied and used as testbed for self-developed systems.

Course contents

The course is part of a data science curriculum and provides some tools to predict short/medium term management data (predictive analytics) and to optimize processes for allocating scarce resources based on predicted data (prescriptive analytics). Elements of predictive analytics and heuristic optimization will be presented and integrated.

For the predictive part, the course proposes methodologies and techniques to analyze, model and predict univariate, with hints to multivariate, time series.

It will be shown, compatibly with the available time, that forecast data can be elements of mathematical models of management processes in which to optimize the allocation of scarce resources.

The proposed tools are meant to be used in real business application cases, actual case studies will be shown compatibly with time, and/or demanded to final projects.

The scientific contents are relative to the knowledge needed to develop an operational analytics module on data obtained from a business information system. In particular, I will introduce:

  • brief recap of stochastic models, random variables. probability distributions

  • predictive models: statistical (ARMA, ARIMA, SARIMA), neural (MLP, LSTM, maybe SVR if time permits) and machine learning / decision tree models (ensemble, random forest, boosting)

  • performance indicators, descriptive statistics, statistical significance tests.

  • introductory integer programming models

  • hints to meta/math-heuristic solving techniques

The technological contents will be functional to the practical implementation of the mentioned module, which will be done standalone in python, although other environments and architectures are acceptable.

A full solution will be set up in the classroom and completed independently by each student, and may constitute the project for the exam.

Rea

73435 - Project Management

PDF, ADOC.

Learning outcomes

Al termine del corso lo studente:

  • conosce i principi base del Project Management e ha padronanza degli approcci riscontrabili nel settore della produzione di software, partendo da quelli più tradizionali fino agli approcci iterativi e adattivi tipici delle metodologie "agile";

  • conosce qualche strumento di supporto alla gestione di progetti e ha approfondito alcuni aspetti pratici anche con esercitazioni di laboratorio;

  • è in grado di partecipare e/o gestire un progetto di sviluppo software.

Course contents

Introduction to project management.

Definition of project, program, portfolio.

Definition of scope, quality, resources and their interrelationship.

Definition of project management.

Definition of processes and knowledge areas involved in project management according to the Project Management Body of Knowledge (PMBOK).

Management of integration, scope, time, cost, quality, human resources, communications, risk, procurement, and stakeholders.

The life cycle of a project and its management: traditional, incremental, iterative, and adaptive.

Scoping process group.

Planning process group.

Launching/executing process group.

Monitoring and controlling process group

Closing process group.

Exercises.

Seminars.

42500 - Semantic Web

PDF, ADOC.

Learning outcomes

To gain understanding of technologies and models to web information representation and reasoning, in particular, relating to ontology and semantic skills.

Course contents

This course is aimed at providing both a solid conceptual framework on the theme of knowledge representation in the Web of Data, and the basis for the development and use of Knowledge Graphs by means of the most popular tools in computer science and shared standards, highlighting problems of interest and analysing some specific issues. The growth of Web contents imposes the study of theories, methodologies and techniques for their conceptualisation. The aim of this course is to provide students with an understanding of the formal assumptions, languages and technologies that enable the creation of applications, as well as specific skills in the use and development of information systems for the semantic management of knowledge. In particular, the following topics will be addressed:

KG in the Web of Data (Semantic Web, Linked Open Data)

Semantic technologies (RDF, RDFS, logical inference, RDFa, microformats)

Querying RDF (DBPedia KG, SPARQL)

Knowledge representation using ontologies (OWL)

KG applications (ontologies, KG programming, visualisation and analytics)

Advanced KG applications (KG embeddings, KG completion, KG mappings and alignment, semantic search)

72521 - Internet Routing and Trasport: Protocols and Performance

PDF, ADOC.

90074 - Smart Vehicular Systems

PDF, ADOC.

Learning outcomes

Students taking this class: - Will An extended knowledge of challenges and opportunites in the area of vehicular communications including V2V and V2I. The class material will include real world examples and deployments. - Will understand impact of mobility and propagation on Vehicular Systems performances - Will learn vehicular application scenarios and their evolution - Will learn how design and model for connected/autonomous vehicular systems.

Course contents

Autonomous and connected vehicles are changing automotive as we know it today. Computer Scientists and Engineers are at the center of this revolution. They are the ones behind the innovation and feature-design for  50% of features in any car in the market. This trend is accelerating with the market introduction of  connected cars, electric cars,  autonomous vehicles and Advanced Driver Assistance Systems (ADAS).

This course serves as an introduction to these exciting topics and to foster the curiosity for the open scientific challenges that are now being discussed by a global community of researchers.

Requirements:

Computer network fundamentals and basic data communication theory,

Network programming (i.e. Sockets) and

Introductory knowledge of: distributed systems, event-driven programming, Linux OS and RTOS

Course Description:

This course provides a survey of vehicular computing paradigms, algorithms and systems with the goal of understanding the impact of mobility, propagation, computation and protocol tradeoffs in the connected vehicles scenarios.

The course covers fundamental and advanced principles of Vehicular Networks by studying the protocols and algorithms used in vehicular systems and applications and their expected evolution. Topics include: Intermittent Networks, Mobility and Propagation Challenges, Vehicular edge and fog paradigms (V2X/C-V2X), beyond IP communications, multi-homed connected vehicles, In-vehicle networking, introduction to privacy in vehicular systems, analysis of specific verticals and possible evolutions.

Reading

93668 - 3D Image Analysis and Computer Vision Systems

PDF, ADOC.

Learning outcomes

The objective of this Course is to form an engineer able to design computer vision systems working in the real world, even in real time, for industrial, scientific and play purposes. The systems exploit automatic analysis of 3D image sequences in a number of application fields including machine vision, automotive, automatic quality control, zero-defect analysis, predictive maintenance, security, medical and biomedical imaging, aerospace imaging, precision agriculture, cultural heritage. At the end of the Course, students are able to apply the acquired skills:

To apply computer vision in critical multidisciplinary fields, including medical imaging

To use cameras to perform high-accuracy 3D measurements

To realize augmented and mixed reality applications

To use vision sensors in IoT applications

To perform 3D scene reconstruction from moving aerial or terrestrial vehicle

To perform 3D scanning, also for 3D printing

To perform 3D defect analysis in industry

To design real time computer vision systems on parallel/distributed architectures

Course contents

  • Computer vision: examples of systems and applications

  • From sensor to image: basics of optics

  • Real time image sequence and video analysis

  • Semantic extraction of multi-dimensional features

  • Perspective: a 2D projection of the real world

  • From perspective to 3D: camera calibration, stereoscopy, triangulation

  • From motion to 3D: the cloud points

  • Cloud points and 3D geometric object representation

  • Principles of real time processing (high throughput)

  • Effective GPU programming

Case studies: the ongoing projects

91250 - Deep Learning

PDF, ADOC.

Learning outcomes

The course aims at providing advanced skills (both theoretical and practical) on machine learning and, in particular, on deep learning.

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

in-depth train and optimize deep learning approaches;

choose and customize the most appropriate techniques to be used in real application scenarios;

use advanced deep learning techniques.

Course contents

Introduction to deep learning

Linear algebra, calculus and automatic differentiation

Artificial neural networks

Backpropagation

Optimization algorithms

Convolutional Neural Networks (CNN)

Recurrent Neural Networks (RNN)

Transformers

AutoEncoders (AE)

Generative models

Reinforcement Learning (RL)

Natural Language Processing (NLP) (a practical example)

93667 - Laboratory of Network Programmability and Automation

PDF, ADOC.

Learning outcomes

The student will learn the modern network programming and automation methodologies and the

related enabling technologies. The student will learn how to use a platform for virtual network

programming and automation in a cloud computing environment and a control plane for software

defined networks. Moreover the student will learn how to use specific data models for the design

and for the programming of network services, according to the current standards.

Course contents

Network Virtualization and cloud computing

Network virtualization: Linux namespaces, virtual bridges and virtual switches

Virtual networking in cloud computing: examples with Docker and OpenStack

Software Defined Networking

SDN architecture

The OpenFlow protocol

Examples of SDN programming with OpenFlow

Network Function Virtualization

The ETSI NFV-MANO architecture and standards

An example of orchestration platform: OpenSource Mano (OSM)

Implementation of network service descriptors with OSM

Programming the data plane

The P4 language

Example of programming switches behavior with P4