72935 - Operations Research M
Learning outcomes
Mathematical models, linear programming, simplex algorithm, duality. Integer linear programming, cutting planes, branch-and-bound. Complexity. Dynamic programming. Discrete simulation.
Course contents
Course contents
Prerequisites:
It is required that the student understands spoken Italian in order to follow the lectures.
MODULE 1 (Mathematical Optimization): Silvano Martello
-
The scientific method: systems, models, methodologies
-
Mathematical Programming
2.1 Optimization problems
2.2 Convex sets and functions
2.3 Convex programming
-
Linear programming
3.1 General, canonical and standard forms
3.2 Bases e basic solutions
3.3 Convex polytopes
-
Simplex algorithm
4.1 Moving among basic solutions
4.2 Tableau and pivoting
4.3 Optimality criterion
4.4 Simplex algorithm
4.5 Two-phase method
4.6 Geometrical aspects
-
Duality
5.1 Dual of a linear programming problem
5.2 Duality properties
5.3 Farkas' lemma
5.4 Complementary slackness
5.5 Dual simplex algorithm
5.6 Sensitivity analysis
-
Integer linear programming
6.1 Unimodularity
6.2 Cutting-plane algorithms and Gomory cuts
6.3 Branch-and-bound algorithm
6.4 Exploration strategies
6.5 0-1 knapsack problem
6.6 Branch-and-cut algorithms
6.7 Software and freeware
-
Complexity theory
7.1 Recognition version
7.2 P and NP classes
7.3 NP-complete problems
7.4 Dynamic programming
7.5 Strong NP-completeness
MODULE 2 (Discrete Simulation): Andrea Lodi
Introduction to discrete simulation
Static and dynamic description of a system
Temporary and permanent entities
Events and event notices.
Exercises on modeling realistic systems.
72937 - Computer Architecture M
Learning outcomes
Focus is on quantitative aspects of computer architecture.
Expected outcome is understanding of:
instruction level parallelism and latency tolerance
memory hierarchy
Uniform Memory Access (UMA) architectures
protection and task management
architecture impact on power and performance at processor and system level
Within the course the student will practice abstraction as the most effective method to handle the complexity of modern computer architectures. The final test verifies the ability to apply methods and concepts offered by the course.
Course contents
Processor Architecture:
Instruction set architecture for multitasking protected systems (Intel IA32 architecture)
Instruction level parallelism; dependencies; hazards; hazards avoidance
superscalar architectures; superpipelining and underpipelining; non blocking architectures; out of order execution (Tomasulo approach); speculative execution;
Introduction to simultaneous multithreading, logical processors, multicore architectures and virtualisation
Memory Hierarchy
Goals, reference model and performance parameters
memory hierarchy in the Intel IA32 architecture: segmentation, virtual memory, main memory and caches
address mapping, write policies, replacement policies; implementation techniques and performance analysis
the MESI protocol for memory coherence in shared memory multiprocessor architecture (UMA architectures)
System Architecture
Interleaved memory access in multibyte data bus systems
Uniform Memory Access (UMA) architectures, and introduction to NUMA multicore based architectures
Bus hierarchy and bus protocols
Multimaster systems with DMA based I/O: hardware/software power/performance perspective
72940 - Computational Models And Languages M
Learning outcomes
At the end of this course unit, conceived according to a multi-paradigm and multi-language constructive approach, the student has a deep knowledge on the fundamental concepts of programming languages and related computational models, knows the foundations of computability, knows and is able to apply the basic interpreter and compiler techniques, and possesses the basic concepts of functional programming and is able to apply such concepts in typical practical situations.
More precisely, the student will know the main formal methods for language definition in terms of syntax and semantics, for both programming languages and specification languages, and will be able to apply the main techniques for language evaluation and recognition for interpreters and compilers, including the use of the most common tools. Students will also be able to define reasonably simple languages understanding their properties, implementing the corresponding interpreters, and evaluating the pros and cons of different choices/computational paradigms in application design.
Course contents
The course aims to provide a rational view over the fundamental concepts of programming languages, relating them to the different computational models and to the problem of language translation and recognition: solid foundations are coupled to a strong experimental approach.
Contents:
Computability and Turing machine (5hrs)
Formal description of programming languages: grammars and Chomsky classification. Relationship between grammars and language interpreters/translators: lexical analysis, top-down and bottom-up techniques for the syntactical analysis of regular languages and context-free languages. Overview on methods for the formal description of the semantic aspects of a language. (18hrs)
Structure and organisation of interpreters/compilers, and their run-time support: examples in Java. Parser generator tools. (14hrs)
Introduction to Model-Driven approaches: the Xtext case. (3 hrs)
Iterative vs. recursive computational models, tail recursion optimisation, basic concepts of functional programming, closures, models for function evaluation, intro to the basics of Lambda calculus (9hrs)
Javascript as an example of (dynamic) functional language with a prototype-based object model (6hrs)
Scala and Kotlin as notable examples of blended programming languages on the Java platform. (9hrs)
72943 - Digital Systems M
Learning outcomes
The corse provides an introduction to modern software methodologies for the design of embedded systems. Application contexts and projects are mostly concerned with image processing and deep-learning networks applied to computer vision problems.
Course contents
Architectures and programming models for high-performance computing with a focus on computer vision and artifical intelligence.
1: Introduction to high-performance computing
Parallel computing principles
Architectures for high-performance computing: CPU multi-core, GPU, sistemi embedded
2: SIMD and Multi-threading
Introduction to SIMD
Multi-threading principles
3: CUDA and GPU Programming
Architecture of a GPU and CUDA programming model
CUDA and Python integration
4: Reconfigurable systems
FPGA (Field Programmable Gate Array)
5: Emerging technologies
72945 - Real-Time Systems M
Learning outcomes
The course aims to provide a rational view of the main issues involved in the design of real-time systems, emphasizing peculiar principles, implementation strategies, supporting environments and performance evaluation methods.
Course contents
An introduction to real-time systems: peculiar features and typical application domains. Hard vs. soft real-time tasks. Temporal parameters and reference models for periodic, sporadic and aperiodic tasks. Real-time scheduling approaches: the clock-driven approach and the priority-driven approach. Algorithms for scheduling hard real-time periodic/sporadic tasks: RM, DM, EDF and LSTF. Server-based strategies for optimizing the response time of soft real-time aperiodic tasks: polling server, deferrable server, priority exchange server, sporadic server, constant utilization server, total bandwidth server. Shared resources access protocols: priority inheritance protocol, priority-ceiling protocol, immediate priority-ceiling protocol, stack resource policy. Pre-run-time schedulability analysis of systems that schedule tasks using static or dynamic priorities: processor-utilization analysis, response-time analysis, processor-demand analysis. Exemplification of theoretical and methodological issues with reference to design patterns typical of the industrial automation application domain.
72947 - Operating Systems M
Learning outcomes
Knowledges of main design aspects concerning the organization of concurrent systems. Models for sincronization and communication between processes/threads. Methods for analysis and synthesis of concurrent systems.
Course contents
1.System protection and security
models, policies and mechanisms
multilevel security
Reference Monitor and trusted systems
2.Virtualization
hardware virtualization: goals and solutions
virtual machine monitor implementation
Case study analysis: xen hypervisor
Virtualization and cloud computing
3.Concurrent programming
preliminaries
non sequential processes.
forms of interaction between concurrent processes
architectures and languages for concurrent programming
4.Shared memory model
mutual exclusion
semaphores
monitors
conditions
Use of concurrent languages in the shared memory model. The pthread library for concurrent programming.
5.Message passing model
preliminaries
channels and communication primitives
communication primitives
guarded commands
Rendez-vous and RPC
Use of concurrent languages in the message passing model: go, ada.
6.Shared memory kernel
Implementation of thread management/synchronization in a mono-processor kernel
Implementation of thread management/synchronization in a multi-processor kernel: SMP, loosely-coupled kernels.
-
Distributed Systems
distributed programming: centralized and decentralized algorithms.Scalability, fault tolerance.
algorithms for the synchronization of distributed processes: logical clocks, distributed mutual exclusion, election algorithms.
-
Parallel Programming
Parallel architectures, HPC systems.
Architetture per il calcolo parallelo. Sistemi HPC.
Parallel programming models: shared memory and distributed memory.
Parallel software development: MPI and OpenMP libraries.
Outlines on CUDA programming.
72938 - Foundations Of Artificial Intelligence T
Learning outcomes
Introduction to main principles and methods in Artificial
Intelligence. Artificial Intelligence based methodologies and
techniques for solving problems with particular emphasis on
knowledge-based systems and computational logic techniques. Desing
and implementation of some practical systems based on procedural
and declarative programming languages.
Course contents
The course introduces the student to the principles and methods
used to solve Artificial Intelligence methods, with a particular
attention to knowledge-based systems and computational logic
approaches. In particular, the Prolog programming language is
introduced as a tool for implementing Artificial Intelligence
systems. Moreover, seminars on specific Artificial Intelligence
topics are planned. This course is preparatory for the course of
Intelligent Systems.
Prerequisites: attending the course requires a medium
knowledge of a high level programming language, in order to
successfully understand case studies and applications presented
during the lessons. Regarding the course contents, no prerequisites
are required: the student will be gradually introduced to the
fundamental notions of the Artificial Intelligence, and no
assumption about previous knowledge is made.
Contents:
Introduction to Artificial Intelligence: brief history of AI,
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 (informed and non). Games, constraint satisfaction
problems, and planning problems.
Knowledge Representation: First Order
Predicate Logic, Production Rules Systems, Knowledge-based systems,
Some hints about formal ontologies.
Languages for Artficial Intelligence. Prolog: from logic to
logic programming, Prolog programs as solvers, desing and
development of simple Prolog programs, few notes about
meta-predicates and meta-interpreters.
84531 - Infrastructures For Cloud Computing and Big Data M
Learning outcomes
The class tends to enhance the capacity of orientating in the process of defining the strategies for a distributed system and applying them in different related applications.
The students face the principles and the main problems of distributed large systems and are exposed to some standard and widely solutions, by following the class and via individual work. At the end, students are expected to be able to know the properties of most diffused middleware and the evolutions one can expect from that technology, by mastering the properties for designing a real application: most well spread strategies are presented and discussed.
Course contents
The course covers several topics central in modern global data and processing infrastructures, such as Data Centers, MultiCloud Systems, Federation of resources, etc. typically supporting Industry 5.0 and Smart city applications, via the following basic concepts:
Advanced models for large distributed & cloud systems, from C/S to message exchange. Particular importance is given to the distinction and the implications of the two models,
Replication, group and many-to-many communication, and systems for QoS
Middleware for development and management of large distributed & cloud systems
Cloud internal support and architectures: new semantics and trend derived from the Internet evolutions
Infrastructures for global data storage and processing
Specific modern systems for big data processing and scalable global supports
All above issues are basic topics on which students must be aware of and very competent of, obtained by deep reflections and personal considerations.
The class explores the following topics:
Advanced models for large distributed & cloud systems
Class Starting: general information and presentation of the Class (use cases)
Goals, Basics, and Models: classifications, C/S vs. Message exchange, service and cloud models, parallelization models
Middleware & Cloud Models: definitions, categories, basic organization, and patterns for large distributed and cloud systems, Cloud internals design.
Replication, group and many-to-many communication, and systems for QoS
Different consistency degrees and impact on service properties (BASE and CAP)
Replication: models, strategies and protocols
Communication and groups: models, protocols and algorithms
Systems and protocols for QoS
Multicast and MOM middleware
Middleware for large distributed & cloud systems
CORBA: middleware and operating environment
MOM: examples of very thin environments
OpenStack: an example of a widely-diffused cloud IaaS
Novel infrastructures for global data storage and processing
Global data storage: solutions for non-traditional NoSQL data memorization (Cassandra and MongoDB)
Global data processing: batching and streaming based big data processing (Map-Reduce, Spark, and Storm and S4)
Main properties for effective design projects
72939 - Software Systems Engineering M
Learning outcomes
Detailed knowledge about languages, models and technologies for the analysis, the development, the documentation, the deployment and the maintenance of (distributed) software systems.
Course contents
At the end of the course, the student:
is able to set-up cooperative software production processes, based on agile (SCRUM) development that exploit also executable models exprressed using custom meta-models;
is able to design and develop software systems with related testing plans, in an incremental and evolutive way, by starting from the problem and from the application domain rather than from the implementation technology, also by using executable models of requirement and problem analysis;
is able to critically evaluate the continuos evolution of software technologies, both as regars the computational aspects and the software development process, by operationally acquiring knowledge on languages, methodologies and tools such as Kotlin, Gradle, SCRUM, SpringBoot, DevOps, Docker, etc.
is able to understand the role of the different styles of software architectures (layers, client-server, pipeline, microkernel, service-based, event-driven, space-based, microservices) and how to select the most appropriate architectural style for each different sub-system;
is able to face the analysis, the design and development of distributed, heterogeneous proactive-reactive applications (together with related development platforms and run-time supports) with particular reference to computational models based on message-passing and event-driven paradigms;
is able to realize message-based interactions among distributed software components by using high-level logical models and implementations based on different protocols (TCP, UDP, HTTP, CoAP, MQTT);
is able to understand how it is possible to design and build software development environments able to automatic code generation (Sofware Factories in ecosystems like Eclipse and IntelliJ) based on Model Driven Software Development (MDSD) and on Domain Specific Languages (DSL), by considering also AI Generated Code technologies;
is able to develop application able to combine high-level aspects (with particular reference to AI) with low-level aspects related to Internet of Things (IOT) devices, in the context of both virtual and real environments, built by using low-cost computers like RaspberryPi and Arduino;
is able to apply the concepts, the devices and the tools developed in the course for the design and development of a final application that exploits one or more IOT devices - in particular Differental Drive Robots (DDR) with sensors - that can operate in relatively autonomous way in different virtual or real enviroments, without modifying the software that does express the business logic of the problem.
72942 - Information Security M
Learning outcomes
Knowledge and engineering skills related to the design, development and deployment of algorithms and protocols for securing systems and networks.
Course contents
The aim of the course is to provide an in-depth study of the models, systems and mechanisms for securing processing systems with both a theoretical and a practical focus.
Suggested background: to gain more from the course it is important to have clear the concepts and tools provided by the computer networks, operating systems and computer security laboratory courses.
The course contents are divided into three macro-areas:
-
Modern cryptography applied
Insights and pitfalls in using PRNG, stream ciphers and block ciphers, cryptographically secure hash functions, asymmetric ciphers
Examples of attacks based on the incorrect use of ciphers and correct methods of use
Examples of cryptographic applications in some scenarios (wireless networks, cloud, IoT, ..)
Symmetric and asymmetric cryptographic key management models and systems (Key distribution center, PKI, PGP)
-
Authentication Models and Systems
Recalls on authentication systems and principles of designing secure authentication protocols
Single Sign-on authentication models with related examples of protocols / systems (Kerberos, …)
Federated authentication models with relative examples of protocols / systems (Oauth, OpenID, SAML, ..)
-
Blockchain technologies
Principles of operation
Hints of operation of the Bitcoin and Ethereum platforms
72957 - Design Activity joined to Computer Architecture M
Learning outcomes
Apply the knowledge acquired in the Computer Architecture M course to independently carry out an in-depth activity on a topic agreed with the lecturer in charge of the course.
Course contents
Projects on sustainable and low-carbon Computing Architectures.
RISC-V based computing architecture projects for edge/HPC/AI and low-level software layers (Linux, Device Drivers, Compilers).
Projects on performance modelling and benchmarking of computer architectures for AI and High-Performance Computing.
72975 - Software Systems Engineering Project Work M
Learning outcomes
In this module we apply the abilities achieved in the course - INGEGNERIA DEI SISTEMI SOFTWARE LM for the devolpment of some specific argument or project
Course contents
Development of a software project
72980 - Project Work For Computational Models And Languages M
Learning outcomes
The aim of this activity is to apply the knowledge, metholodologies and tools learned in the main module to a practical project, either proposed by the student and validated by the teacher, or proposed by the teacher ad accepted by the student.
Course contents
The project can deal with any aspect in the Languages and Computational Models area, including the development of multi-paradigm applications or the contribution to research activity in the area. The activity must state explicitly the initial requirements, provide an in-depth analysys of the problem, discuss the project and the architecture of the proposed solution (including the evaluation of possible alternatives and the motivation(s) for choosing the specific one), up to the implementation choices, testing methodologies and techniques. A final comprehensive demo is expected and adequately evaluated.
72998 - Project Work For Information Security M
Learning outcomes
Apply the knowledge acquired in the Information Security M course to independently carry out an in-depth activity on a topic agreed with the lecturer in charge of the course.
Course contents
The contents of the project activity concern topics related to the field of IT security including security of mobile systems, IoT systems, blockchain and cloud / edge
73000 - Project Work For Digital Systems M
Learning outcomes
Project development with platform and software tools introduced in Digital System M
Course contents
Development and implementation of a project concerned with the corse topics
97261 - ATTIVITA' PROGETTUALE DI TECNOLOGIE E SISTEMI PER LA GESTIONE DI DATABASES E BIG DATA M
Learning outcomes
Autonomous exploitation of knowledge obtained in the course "Technology and systems for the management of Databases and Big Data M" in a technological application on a theme in agreement with the teacher.
Course contents
The project can deal with any practical application about the contents presented in the course "Technology and Systems for the Management of Databases and Big Data M. In general, the project can be also about any topic that can be referred to the field of data management. In general, the subject of the activity must have a practical flavor, i.e. the activity must focus on the practical application of principles, methods and techniques acquired within the course. The subject of the project activity must be discussed and agreed upon with the teacher before the starting of the activity itself.
72968 - Project Work For Foundations Of Artificial Intelligence M
Learning outcomes
The aim of this activity is to apply the knowledge and tools
acquired in the associated course of "Fondamenti di Intelligenza
Artificiale M"/"Fundamentals of Artificial Intelligence M" to a
practical project. The topic of the project is proposed by the
student and must be agreed with the teacher.
Course contents
The project can deal with any practical application about the
contents presented in the course "Fondamenti di Intelligenza
Artificiale M"/"Fundamentals of Artificial Intelligence M". In
general, the project can be also about any topic that can be
referred to the AI. In general, the subject of the activity must
have a practical flavour, i.e. the activity must focus on the
practical application of principles, methods and techniques
acquired within the course. The subject of the project activity
must be discussed and agreed upon with the teacher before the
starting of the activity itself.
72994 - Project Work For Operations Research
Learning outcomes
Application of the methodologies acquired in the course "Operations Research M" to the development of an autonomous activity on a theme agreed with the teacher.
Course contents
Implementation and experimental testing of algorithms for combinatorial optimization problems and for real-life applications.
73004 - Real Time Systems Design Activities M
Learning outcomes
Apply the knowledge acquired in the Real-Time Systems M course for the autonomous development of an in-depth activity on a topic agreed with the lecturer.
Course contents
Typical, although not exclusive, topics related to this activity are:
1) development and implementation of algorithms for scheduling hard/soft real-time tasks in a single- or multi-processor platform;
2) design and implementation of the infrastructure necessary to support the application of sophisticated access protocols to shared resources;
3) development of suitable tools for a priori verification of the schedulability of real-time applications comprising an arbitrary number of tasks and shared resources.
The experimental evaluation of the performance actually achievable with the developed prototype solution represents an essential aspect of the design activity.
84533 - Project Work on Infrastructures for Cloud Computing and Big Data M
Learning outcomes
The project is assigned on an individual base, with a negotiation with the student to identify an area at the state of the art within the field of large middleware systems. At the end of the project, the students have acquired a deep knowledge of the area and also capacity in understanding the global solution strategies. They have to apply the notions and skills acquired in the related class toward a design of a typical (limited) system with some predefined requirements and specific significant technology. The entire execution life cycle is stressed and some performance tests must be pursued.
Course contents
The choice of the topics to organize the project around is part of the final evaluation, the same as the technical report given in at the end and the presentation of it (slides for project presentation).
The areas to be chosen can be (other areas can be negotiated):
Middleware and service management
Cloud Computing
Scalable global Computing
Federated Data Centers
Multicloud
Serverless comnputing and FaaS
IoT Cloud
Sustainable Infrastructures for Smart Environments
Smart city Infrastructures
Industry 5.0
Some more detailed examples:
Observability of Serverless computing
Serverless computing represents a novel Cloud Paradigm fostering a loss of control of computational resources for customers that can then focus on developing business logic. In this context, observability frameworks seek evolution in order to provide needed insights to customers to develop, deploy and optimize their services while leaving orchestration and management duties to cloud providers.
Event Mesh
The ever-increasing reliance on IT services of many businesses and realities shaping our society is rapidly increasing the number of IT services deployed opening many challenges for their orchestration and integration. Event mesh architectures aim to relieve this complexity by providing built-in security, observability, and management mechanisms of services deployed and asynchronous, uncoupled, and reliable communication among them.
Data Management and Data Mesh
The increasing pervasivity of devices and services continuously producing data, such as IoT and mobile devices, is opening many new possibilities and enabling a rapid evolution of our society. However, the intrinsic distribution of these data rises major challenges in data management including data ownership management, data availability, and data resiliency. In this context, the Data Mesh approach proposes both technical and organizational solutions supporting data management in highly distributed and heterogeneous scenarios.
29206 - Innovation and Project Management M
Learning outcomes
Students will learn the key concepts and techniques concerning the strategic management of innovation and the effective management of new product development processess. Students will also learn the key methods and techniques concerning project management
Course contents
PREREQUISITES:
The understandings of the main concepts and techniques of general management represents an important prerequisite for the course (in particular for what concerns the techniques for the financial valuation of investments). The course will be held in Italian, however foreign students (i.e. Erasmus students) could complete the project work and give the final exam in English
MAIN TOPICS:
Strategic management of innovation
Innovation development projects: characteristics and specificities
Forms and models of innovation
Technological discontinuities and sector dynamics: analysis of technological trends
The diffusion curves of innovations in the market
Intellectual property management in innovation projects
The development of the innovative project plan
The project plan
Industry analysis
Understanding of customer needs and Design Thinking
Approaches for data searches
Business model
The management of innovative projects
Project management: definitions and key principles
The life cycle of projects
The organizational structures for project management
The role of the project manager and the project team
The start of the project
The stakeholders of the project
Project planning: purpose management and WBS
Project planning: time management
Plan, assign and control project resources
Project risk management
Project monitoring and control
Agile Project Management and SCRUM
72971 - Innovation And Project Management Project Work M
Learning outcomes
Apply the knowledge acquired in the course of "Gestione dell’innovazione e dei progetti LM" to carry out autonomously an in-depth activity on a topic agreed with the teacher in charge of the course.
Course contents
1.- New product development projects: key concepts.
-
– Idea generation: internal and external sources
-
– Idea selection and evaluation: key techniques.
-
– New product development: key decisions and best practices.
-
– Testing, validation and commercial launch of new products
-
– Project management: Concepts and techniques.
Readings
78098 - Project Work On Network Optimization M
Learning outcomes
Application of the methodologies acquired in the course "Network Optimization M" to the development of an autonomous activity on a theme agreed with the teacher.
Course contents
Implementation and experimental testing of algorithms for network optimization problems.
73002 - Distributed System Design Activities M
Learning outcomes
To apply the skills, competences,and abilities deriving
from the course "Distributed Systems M" in order to autonomously
complete a design/implementation project activity related to a
specifictopic previously agreed with the teacher and then
investigated in-depth, from both the analysis and project-oriented
points of view.
During and after course it will be possible to decide the
project topic by contacting the teacher via email:
The results of the project (code + documentation) should be
provided to the teacher at least 5 days before the oral
examination.
Course contents
See the syllabus and topic coverage of the course
"Distributed Systems M", and also you can refer to the web pages of the previous academic year:
R
91948 - Project Work on Algorithms for Combinatorial Optimization Problems M
Learning outcomes
At the end of the project work, the students are able to apply the techniques acquired in the Algorithms for combinatorial optimization problems m course to implement effective algorithms for determining the optimal solution of a Combinatorial Optimization problem, and to analyze the corresponding computational performance.
Course contents
Design and implementation of an exact algorithm for a combinatorial optimization problem.
78917 - Project Work On Computer Vision and Image Processing M
Learning outcomes
At the end of the project work the students are able to apply the principles, methods and skills acquired in the Computer Vision and Image Processing course to design a software system aimed at addressing a specific use case dealing with a typical application scenario.
Course contents
See "73302- Computer Vision and Image Processing M"
97432 - PROJECT WORK ON CYBERSECURITY M
Learning outcomes
At the end of the course, the student is able to apply the knowledge acquired in the Cybersecurity M course to carry out independently an in-depth activity on a topic agreed with the lecturer.
Course contents
Project work on cybersecurity
94464 - PROJECT WORK ON DIAGNOSIS AND CONTROL M
Learning outcomes
At the end of the course, students :
are aware of state-of-the-art embedded systems used in several industry segments
know the main architectures, design methodologies and tools for embedded systems
are able to design hardware and software embedded systems in some representative case studies
Course contents
See Diagnosis and Control M
78919 - Project Work On Intelligent Systems M
Learning outcomes
At the end of the project work the students are able to apply the notions and skills acquired in the intelligent system course to design tools for solving real life applications.
Course contents
To be discussed with the professor
78913 - Project Work On Mobile Systems M
Learning outcomes
The project work is assigned on an individual base, with a negotiation with the student to identify a field at the state of the art within the large area of efficient (e.g., battery-efficient) mobile middleware and mobile applications. At the end of the project, the students have acquired a deep knowledge of the selected field and also effective capabilities of fully understanding the related global solution strategies. They have to apply the notions and skills acquired in the related lectures toward the design, prototyping, testing, and performance evaluation of a typically limited solution exemplifying the selected field and exploiting specific significant enabling technologies.
Course contents
See the syllabus and topic coverage of the course "Mobile Systems M" on the Web site at Virtuale @UNIBO, which will be populated during the lecturing period.
As a reference to the previous academic years, please consider also the material about the course structure and its possible project activities at the dedicated Web site for the 2022 edition:
78909 - Project Work On Multimedia Data Management M
Learning outcomes
The project activity aims to apply the notions and skills acquired during the course by developing a project. The project consists in the resolution of a problem concerning the management of multimedia data. The topic of the project can be proposed either by the teacher and the student.
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.
97433 - PROJECT WORK ON SCALABLE AND RELIABLE SERVICES M
Learning outcomes
At the end of the course, the student is able to apply the knowledge acquired in the Scalable and reliable services M course to carry out independently an in-depth activity on a topic agreed with the lecturer.
Course contents
Project work on cloud platforms
73302 - Computer Vision And Image Processing M
Learning outcomes
At the end of the course the students know the basic principles of computer vision and image processing algorithms. Thereby, they are able to understand and apply a variety of algorithms and operators aimed at either extracting relevant semantic information from digital images or improving image quality. They also understand the diverse challenges and design choices characterizing the main applications and acquire familiarity with software tools widely adopted in these scenarios.
Course contents
Introduction – Basic definitions related to image processing and computer vision. An overview across major application domains.
Image Formation and Acquisition – Geometry of image formation. Pinhole camera and perspective projection. Geometry of stereopsis. Using lenses. Field of view and depth of field. Projective coordinates and perspective projection matrix. Camera calibration: intrinsic and extrinsic parameters, lens distortion. Camera calibration based on planar targets and homography estimation (Zhang’s algorithm). Image rectification and stereo calibration. Basic notions on image sensing, sampling and quantization.
Image Filtering –Convolution and correlation. Mean and Gaussian filtering. Median Filtering. Bilateral filtering. Non-local means.
Image Segmentation and Blob Analysis – Gray-level Histogram. Binarization by global thresholding. Automatic threshold estimation. Spatially adaptive binarization. Colour-based segmentation. Binary Morphology Operators. Connected components labeling and blob analysis.
Local Features – Edge features and image gradient, Smooth derivatives (Sobel), Canny edge detector. Keypoint detectors and descriptors. Harris Corners. Scale invariant features. SIFT features. Efficient feature matching by kd-trees.
Instance Detection – Pattern matching by SSD, SAD, NCC and ZNCC. Shape-based mathing. Hough Transform for analystic shapes, Generalized Hough Transform. Object detection by local invariant features: Hough-based voting, least-squares similarity estimation.
Deep Learning for Computer Vision – Review of machine learning basics. Image Classification. Linear Classifiers and Fully Connected Neural Networks. Convolutional Neural Networks (CNN). Successful CNN architectures for image classification: AlexNet, VGG, Inception, ResNet. Transfer Learning. CNN for Object Detection: R-CNN, Feature Pyramid Network (FPN), Faster R-CNN, YOLO.
Readings/Bib
B5793 - CYBERSECURITY M
Learning outcomes
In a digital world, every activity is vulnerable to cyber attacks. At the end of the course the students are able to know and evaluate the most dangerous cyber threats to the society and to specific organizations and industries. Moreover, they are expected to be able to design and build secure systems by adopting modern defensive strategies and technologies that are discussed in class and experimented in lab.
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
35166 - Diagnosis And Control M
Learning outcomes
The course aims to give a systematic overview of the main available methodologies and of the technical norms that should be used to rationally overcome problems due to faults and malfunctioning affecting modern automatic systems. Fault diagnosis and fault tolerant control methodologies as well as the functional safety tools, norms and standards that regulate safety-critical systems design are topics of the course. At the end of the course students are able to design algorithms for fault detection, to design fault tolerant schemes, and have an overview of safety norms in industrial settings.
Course contents
Introduction:
-
Basic concepts;
-
Nomenclature.
Reliability and Availability:
-
Main definitions and concepts;
-
Basics of non-state space methods;
-
Basics of state space methods;
Safety:
-
Safety critical systems;
-
The IEC61508 standard;
-
Safety life cycle;
-
Fault Analysis techniques (HAZOP, FMEA, FTA)
-
Layer of Protection Analysis (LOPA);
-
SIL levels;
Redundancy for Fault Tolerance:
-
Static and Dynamic redundancy;
-
Architectures and performance;
-
Analytic redundancy.
Basics of some application domains:
-
Automatic machines;
-
Automotive.
Model Based Fault Diagnosis;
-
Basics on Fault Detection and Isolation (FDI) and links with
previous Sections.
-
Signal-based methods
(useful for Model-based ones as well; SHT: LRT, GLRT, SPRT
\Chi^2)
-
Parity equations (I/O and SS models, Deterministic/Stochastic)
-
Unknown Input Observers (UIO).
REMARK: Contents are under review
Rea
B2125 - MACHINE LEARNING AND DATA MINING M
Learning outcomes
At the end of the course the student knows and understands: - the motivation and the components of the Data Mining process; - the general concepts, technologies and methodologies of Data Warehouse, OLAP and Data Lake, as enabling factors of the Data Mining process; - the principles and the most relevant use cases of a wide set of Machine Learning algorithms which are used to extract relevant and actionable information from large amounts of data. At the end of the course the student is able to: - design the main steps of a Data Mining process - choose the Machine Learning methods best suited for the process - evaluate the quality of the result in order to support strategic and operational decisions.
Course contents
Part 1 - Data Mining
Introduction to the Data Mining Process
Architectures of systems with data mining components
Enterprise Data Warehouse
Data Lake
Case studies
Part 2 - Machine Learning
What is Machine Learning: some history and motivating examples
Theory of learning
Supervised vs unsupervised learning
Classification and regression
Model Selection, validation and presentation of results
Regression
Classification with linear discrimination, decision trees, Bayesian inference, Support Vector Machines, k-nearest neighbors, logistic regression, random forests, adaboost
Ensemble learning, boosting, bagging
Association rules and the Apriori algorithm
Clustering/segmentation with k-means, dbscan, Expectation Maximization, hierarchical methods, kernel methods
Analysis of case studies
CRISP-DM methodology
Pre-requisites
Fundamentals of programming
Fundamentals of calculus and linear algebra
Fundamentals of statistics and probabilities
Useful some general notion on Data Base Management Systems
73025 - Distributed Systems M
Learning outcomes
This graduate course aims at providing students with deep
advanced know-how about the methodologies, models, tools, and
mechanisms for the design, implementation, and runtime
evaluation/validation of enterprise applications deployed over
wide-scale distributed systems.
Previous course requirements: no one (but some contents from the
BSc courses of Computer Networks T and Web Technologies T will be
useful in some classes)
The learning outcomes of the course will include:
architecture modeling principles for
distributed enterprise applications:
requirements and design principles
Design, development, and implementation of distributed
applications based on Application Servers
(e.g., JBoss) and components (e.g.,
Enterprise Java Beans)
management of complex and articulated
container-based distributed systems, also
via lightweight models and
technologies (e.g., via Spring) and via
advanced persistency solutions (e.g., via the JPA and Hibernate
technologies)
design, development, and implementation
of distributed support systems for runtime monitoring
and control (properties such as scalability,
fault-tolerance, reliability, …; e.g., via the JMX
technology)
design, development, and implementation of highly scalable
distributed applications for high-end clusters, by specifically
considering the clustering support available in JBoss
(full configuration); some introductory notions of online
stream processing over big data
Course contents
The course will aim at deeply and thoroughly facing the
following topics:
-
methodologies and architectural models for the
design, implementation, and deployment of enterprise-level
distributed applications
-
component-based model evolution and component
integration into distributed architectures (typically 3-tier and
Web-integrated)
-
Application Servers (e.g., JBoss) and
middleware/frameworks for the runtime support of enterprise-level
distributed applications
-
differentiated naming services and their integration,
especially in enterprise-level deployment environments; examples
related to Java Naming and Directory Interface
(JNDI)
- from the
starting Enterprise Java Beans model (EJB1.0) to the current
widespread adoption of EJB 3.0 (motivations and evolution
guidelines)
o Persistency
o Interactions with data
o Session-oriented and
message-oriented components
o Interceptors
o Transactions
o Examples and exercises
(integrated with the JBoss application server)
-
messaging systems, e.g., Java Messaging System (JMS)
and rapid overview of Enterprise Service Bus and Java Business
Integration
- towards
effective and efficient enterprise models with lightweight
containers: the Spring example
o Spring and inversion of
control
o Spring and aspect-oriented
programming
o transaction management
-
persistency: evolution of persistency support models
in the development of enterprise applications. The examples of
JPA and Hibernate.
o transparent
persistency
o mapping and query
support
o metadata support
o performance
-
monitoring, control, and runtime management of
application servers and of distributed support frameworks in
general: the JMX example
o efficiency/effectiveness
and performance evaluation
o scalability
o fault-tolerance
o reliability
-
clustering and proprietary mechanisms/solutions for
clustering in JBoss
- directions of evolution towards asynchronous models and technologies for high scalability of enterprise servers
o Framework node.js and asynch event management
o Function as a Service (FaaS) and supporting frameworks
-
introductory notions about
high-performance online stream processing of big data
over clustered distributed systems
-
several case
studies (also provided via seminars via external companies,
added to the regular classes schedule)
The course will be associated with a set of practical lab
exercises, in which the students will be solicited to perform
guided exercise activities but in an autonomous way and in their
free time. These activities will be necessary to complete the study
of the course and to reach the desired skills; texts and solutions
of these ees will be made available at the official course Web
site.
The set of proposed lab exercises will include:
- 1 exercise about EJB in the WildFly application
server
-
1 exercise about messaging and Java Business Integration (JBI)
- 1 exercise about Spring
- 1 exercise about JMX
-
1 exercise about clustering in WildFly
Readings/Bibliography
All the teachning material (presentation slides, discussed
exercises with solutions, exercise proposals, project examples and
proposals) used during the classes will be avai
92990 - System Theory and Advanced Control M
Learning outcomes
The course will provide students with the fundamental tools for the analysis and control of multivariable dynamic systems and their structural properties. Basic tools of system theory will be introduced, such as possible representation of dynamic linear systems, structural properties (stability, observability, controllability), special normal forms, Kalman decomposition, and others. The course will also address some aspects of modern multivariable control schemes starting from optimal control (in the deterministic setting), adaptive and robust control, also presenting basic aspects of nonlinear control systems.
At the end of the course students master all the basic principles of system theory by studying in a systematic way properties of multivariable dynamic systems, and have a good knowledge of modern control tools for multivariable systems.
Course contents
-
Dynamic systems representation
-
Stability of linear systems
-
Reachability and controllability
-
Observability and reconstructability
-
Robust and Adaptive Control
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.
78778 - Intelligent Systems M
Learning outcomes
At the end of the course the students are able to use the main AI techniques to develop tools for solving real life applications.
The students are able to understand and apply a wide range of techniques such as constraint programming, symbolic and sub-symbolic machine learning techniques, planning and swarm intelligence.
Course contents
Module 1:
PLANNING
Non-linear planning
Conditional planning
Graph-based planning
Planning for robotics
OPTIMIZATION
Constraint Programming and Global constraints
Search strategies
Applications
SWARM INTELLIGENCE
Ant colony
Bee Colony
Particle Swarm Optimization
Module 2:
MACHINE LEARNING
(symbolic and sub-symbolic approaches)
Decision trees - random forests
Neural networks
Bayesian approaches
Inductive logic programming
DEEP LEARNING
Re
78779 - Mobile Systems M
Learning outcomes
At the end of the course the students are able to effectively develop and dynamically manage the runtime provisioning of mobile services. This requires acquiring expertise and theoretical skills, as well as design/implementation abilities, related to models and solutions for mobile systems, for mobile services provided on top of them, and for support systems (middleware) needed for their effective runtime execution.
Course contents
The course intends to provide students with methodology, modeling, design, and implementation skills/expertise related to the development, deployment, and runtime evaluation of mobile systems, of mobile services, and of middleware supports for the effective management of those services at provisioning time.
Constraints on previous knowledge: nothing (but the contents of the courses "Computer Networks T", "Web Technologies T" and, only very partially, "Infrastructures for Cloud Computing and Big Data M" could be useful and valuable in a few parts of the course)
Course contents
-
Introduction to wireless communication systems: propagation models; fading models; rapid introductory overview of main types of wireless communication technologies
o IEEE 802.11: general features; from CSMA/CD over Ethernet to CSMA/CA; hidden and exposed terminal issues; MACA; configurations for infrastructured and ad-hoc modes;
o IEEE 802.16;
o IEEE 802.20;
o IEEE 802.11 for municipal meshes;
o Wi-Fi Direct.
o Cellular networks and handoff: GSM architecture; handoff with common MSC; handoff with differentiated MSCs; handoff classification
o Bluetooth: protocol stack; different possible topologies; discovery service; scatternet and multi-hop communications; software stack for Bluetooth Java programming
o Rapid overview of ZigBee: features, architecture, possible topologies
-
Mobile Ad Hoc Network (MANET): definition and application domains; routing in MANET, reactive/proactive/geographic/hybrid routing; Dynamic Source Routing (DSR); Ad-hoc On Demand Distance Vector (AODV); Greedy Perimeter Stateless Routing (GPSR); rapid overview on clustering solutions; LEACH, HEED, REDMAN
-
Mobility and handoff management: introduction and definitions
-
Location update and location search. Mobile IP: features, architecture, protocol, issues. Hierarchical Mobile IPv6 (HMIPv6). Split connection and I-TCP
-
Positioning systems: motivations; taxonomy (physical/symbolic, centralized/distributed, absolute/relative, accuracy, precision, cost, and limitations). Base techniques: lateration, time difference of arrival, angulation, scene analysis, proximity
o Positioning systems for ad-hoc networks
o Positioning systems with additional hardware. GPS: features, limitations, differential GPS. Active Badge, AHLoS
o Positioning systems with no additional hardware: based on Bluetooth, PlaceLab, RADAR, Ekahau, Sensor Fusion, Universal Location Framework, JSR-179
-
Development platforms for mobile systems (smart phone): overview, general concepts, definitions; concise comparison of J2ME, .NET CF, FlashLite, Android.
-
Android: introduction; architecture; OS kernel layer; power management and wakelock; native libraries; Dalvik VM; application framework; core applications; application model; activity lifecycle; intents and intent filters; threading model; examples and exercises. Description of the proposed exercise on Android
-
Rapid overview on iOS: architecture; multi-tasking model; simple programming examples; native/Web applications for iOS (introductory overview of HTML5); unlocking and jailbreaking
-
Mobile middleware: definitions, motivations, advantages. Relevance of determining principles and patterns. Internet principles: end-to-end and robustness principles. Web principles. SOA principles. Mobile computing principles. Cross-layering principle. Architectural patterns, general and specific for mobile computing.
-
Internet of Things (IoT) platforms: definitions and reference architectues, primary state-of-the-art platforms in the market, mobile and industrial IoT, research directions under current investigation, use cases of industrial applications
-
Discovery services: definition, taxonomy, auto-configuration, discovery, access to resources/services
o Jini, with description of proposed exercise
o Service location Protocol (SLP)
o UPnP: architecture, description files, bridging possibilities, examples and exercises. Description of proposed exercise on UPnP
-
Session management in converged 4G networks: Session Initiation Protocol (SIP), main features, scalability limitations. Session management in IP Multimedia Sub-system (IMS): architecture, functional entities, protocol examples, limitations in terms of monitoring, load-balancing, and scalability
-
Messaging support in mobile systems: motivations; principles and architecture; protocols for message exchange; locator
o JMS: features, architecture, messaging models, reliability and quality, examples
o CORBA Messaging (AMI and TII)
o Rapid overview on XMPP, Web Services, and RESTful Web Services
-
Event management and pub/sub model: possible topologies for event routers. Propagation of interests and subscriptions. Routing decisions
o Examples of distributed event systems: OMG DDS (partitions and quality levels); Java model for distributed events; General Event Notification Architecture (GENA); RSS/Atom; SIP Event Framework; Web Services Eventing & Notification
-
Data synchronization in mobile systems: pessimistic/optimistic approaches; versioning; detection; reconciliation
o SyncML: representation protocol; synchronization protocol; examples
-
Edge/Fog Computing: efficient integration of sensor-edge-cloud; distributed control and intelligence; offloading; proactive approaches and mobility prediction
o ETSI Mobile Edge Computing: emerging standard specifications; deployment approaches in 5G; orchestration and ETSI MANO
-
Selection of primary application domains (4 examples, from vehicular ad hoc applications to federated social spontaneous networks),also to suggest/solicit some possible project activities to associate with the course
-
Several case studies (also presented within company seminars, in addition to the regular lectures hours)
The course will be associated with a set of practical lab exercises, where the students will have the opportunity of completing their preparation through guided and simplified projects, to be solved autonomously. These lab activities will be necessary for the full achievement of the desired abilities and course objectives; texts and solutions of proposed exercises will be available at the Course Web site. The proposed set of exercises is described in the Teaching Methods section.
78096 - Multimedia Data Management M
Learning outcomes
The course aims to provide the knowledge and skills necessary for the 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). We first consider architectures of traditional ("standalone") MM systems; then, we concentrate on more complex MM services, by primarily focusing on 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.
B5796 - 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
91717 - Algorithms for Combinatorial Optimization Problems M
Learning outcomes
At the end of the course, the students are able to analyze the computational complexity and to define the Mixed Integer Linear Programming (MILP) models of the Combinatorial Optimization problems. The students are able to obtain tight relaxations of the MILP models, and to design exact enumerative algorithms (based on the branch-and-bound, branch-and-cut and branch-and-price approaches) for determining the optimal solution of the Combinatorial Optimization problems.
Course contents
The main goals of the Course are the definition of the mathematical models and the design of the most effective exact algorithms for the solution of NP-Hard Combinatorial Optimization problems. The experimental evaluation of the proposed models and algorithms will be also analyzed.
The program of the Course consists of the following topics:
-
Classification of the optimization problems.
-
Definition of the Mathematical Models, and analysis of the computational complexity of important combinatorial optimization problems.
-
Exact algorithms for the solution of NP_Hard problems. "Branch-and-Bound" algorithms: decision trees, relaxation techniques. Exact algorithms for the effective solution of the Knapsack Problems, the Asymmetric Travelling Salesman Problem, and the Set Covering Problem.
-
"Branch-and-Cut" algorithms: addition of valid constraints for the strengthening of the relaxed problems, separation procedures for the solution of models with a large number of constraints. Exact algorithms for the effective solution of the Asymmetric Travelling Salesman Problem.
-
"Branch-and-Price" algorithms: column generation procedures for the solution of models with a large number of decisional variables. Exact algorithms for the effective solution of the Bin Packing Problem and of the Vertex Coloring Problem.
-
Experimental evaluation of the computational performance of the proposed models and algorithms.
Basic knowledge of Computer Science and Operations Research courses are required.
73030 - Network Optimization M
Learning outcomes
The course introduces the student to graph and network problems and to the main algorithmic techniqes in this area. At the end of the course the student has the ability to model industrial problems that can be described through graphs and networks, and has competence on the main methods for their solution.
Course contents
Prerequisites:
It is required that the student has followed the course Operations Research M or an equivalent course on Operations Research.
Contents:
-
Fundamentals from Operations Research M
-
Graphs and networks theory
2.1 Introduction
2.2 Terminology
-
Basic problems on graphs
3.1 Shortest spanning tree
3.2 Shortest path problems
3.3 CPM method for project management0
-
Flows in networks
4.1 Maximum flow problems
4.2 Minimum cost flow problems
4.3 Mathematical models for graph and network problems
4.4 Unimodularity conditions
4.5 Matching and assignment problems
-
Optimal circuits
5.1 Hamiltonian circuits
5.2 Traveling salesman problem
5.3 Vehicle routing problems
-
Relaxations
6.1 Surrogate relaxation
6.2 Lagrangian relaxation and Lagrangian decomposition
6.3 Subgradient optimization
6.4 Reduction techniques
-
Approximation and heuristic algorithms
7.1 Greedy algorithms
7.2 Worst-case performance
7.3 Local search
7.4 Metaheuristic algorithms
75493 - Protocols And Architectures For Space Networks M
Learning outcomes
At the end of the course the students know the foundamentals of architecture and protocols for sapce networking. In particular, they gain a deep knowledge of DTN architecture and Bundle Protocol, as defined by RFC4838 and RFC 5050, when applied to space communications (GEO & LEO satellites, Interplanetary Internet). They are also able to set up testbeds and cary out experiments with the two most important DTN BP implementations, DTN2 and ION.
Course contents
Challenged networks
Definition of “challenged networks”. Challenges: long delays, significant losses, intermittent connectivity, network partitioning. Examples: Interplanetary Internet, satelllite networks (GEO and LEO), emergency networks, underwater networks, communications in areas not covered by ordinary TLC networks (extreme environemnts), tactical networks, etc.
The DTN architecture
Description of the DTN architecture (RFC 4838).
The Bundle Protocol
Description of the Bundle Protocol (RFC 5050 and 9171). Lab activities: use of Unibo-BP, DTN2 and ION (NASA JPL) bundle protocol implementations.
Application of the DTN architecture to the satellite networks
Characteristics of satellite networks based on Geostationary (GEO) and Low Earth Orbit (LEO) constallations. Lab activities: example of application of the DTN architecture to GEO and LEO systems.
Application of the DTN architecture to Interplanetary Internet
Characteristics of Interplanetary networks. The LTP protocol. Lab activities: examples of application of the DTN architecture to IPN systems.
Re
72953 - Principles Of Computer Graphics M
Learning outcomes
Knowledge of basic and advanced techniques for geometry processing and computer graphics, with particular reference to modeling and realistic rendering of 3D scenes on the computer.
Course contents
Introduction to two- and three-dimensional computer graphics. The graphics pipeline: modelling and rendering. Fundamentals of input and display devices, 3D scanning, 3D printing. Scan conversion of geometric primitives, two- and three-dimensional transformations and clipping, windowing techniques, three-dimensional viewing and perspective. Basic algorithms for CG clipping, scan-conversion, hidden surface removal, ray tracing. Illumination and color models, local and global shading models, and real-time rendering methods. Polygonal meshes, parametric curves and surfaces, splines and NURBS , subdivision curves and surfaces. Surface reconstructions from 3D data set. Virtual/Augmented Reality. Digital Animation techniques. OpenGL/GLSL, and 3-D modeling tools. Emphasis is on the development of practical skills in using software Blender, graphics libraries and tools. Programming using C/C++ and OpenGL/GLSL for GPU shader.