ADVANCED COMPUTER ARCHITECTURES
1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file
Main goal of the course is that the student understands all the major concepts used in modern microprocessors by the end of the semester. The course will cover the different forms of parallelism found in applications…
Scheda dell'insegnamento
Obiettivi formativi
Main goal of the course is that the student understands all the major concepts used in modern microprocessors by the end of the semester.
The course will cover the different forms of parallelism found in applications (instruction-level, data-level, thread-level, gate-level) and how these can be exploited with various architectural features. It will cover pipelining, superscalar, speculative and out-of-order execution, vector machines, VLIW machines, multithreading, graphics processing units, multicore and parallel homogeneous and heterogeneous architectures. Final goal is to show how the software interacts with the hardware to provide performance and how trends in technology, application and economics have driven and drive continuing changes in the field.
Expected learning outcomes
DdD 1 (Knowledge and understanding): Students will learn how to:
Understand and analyze the most advanced microprocessors and computer architectures
Evaluate and compare the performance of computer architectures
Understand the most advanced techniques to optimize the memory hierarchy
Manage the parallelism at instruction-level, thread-level, multi-processor level
Understand the mechanisms of streaming and vector processing widely used in modern GP-GPUs.
DdD 2 (Applying knowledge and understanding): Given specific problems and project cases, students will be capable to:
Analyze and compare specific architectural choices of a computer system
Evaluate the performance of computer architectures by applying appropriate metrics
Exploit the parallelism at several levels from instructions to threads to cores to vectors
DdD 3 (Making judgments): Given specific problems and project cases, students will be capable to analyze the performance goals and compare autonomously different computer architecture choices in terms of performance metrics
DdD4 (Communication skills): Students will learn how to present in a technical text and how to discuss in front of their colleagues the benefits and drawbacks of advanced computer architecture techniques.
DdD 5 (Learning skills): Students will be capable to learn autonomously the most advanced research techniques related to state-of-the-art microprocessor and parallel computer architectures
Programma
Main lectures topics:
Review of basic computer architecture: the RISC approach and pipelining, the memory hierarchy
Basic performance evaluation metrics of computer architectures
Techniques for performance optimization: processor and memory
Instruction level parallelism: static and dynamic scheduling; superscalar architectures: principles and problems; VLIW (Very Long Instruction Word) architectures, examples of architecture families
Thread-level parallelism
Multiprocessors and multicore systems: taxonomy, topologies, communication management, memory management, cache coherency protocols, example of architectures
Stream processors and vector processors; Graphic Processors, GP-GPUs, heterogeneous architectures
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale facoltativa (a scelta dello studente) o condizionata (a scelta del docente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
NOTE: The course IS in ENGLISH, which means that the exam HAS TO BE PASSED in English, e.g. you HAVE to WRITE IN ENGLISH during the written test.
The final examination may be taken in one of the following ways:
Way 1. WRITTEN EXAM (closed book, no notes or usage of laptop/mobile, etc. allowed) consisting of:
1.1 The solution of some design problems based on the practical application of the course concepts and techniques -- Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.
1.2 Questions on the course concepts and techniques - Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.
WAY 2. PROJECT-BASED EVALUATION (valid only for the 1st session after the course):
2.1 (1/3 of the final grade) Evaluated through the course via short written tests - Expected learning outcomes 1, 2, 3, 4
2.2 (2/3 of the final grade) Evaluated, via a project assignment, done in team up to 2 members, demonstrating the mastering of the course concepts and techniques. During the final project presentation, each team will be asked to answer some questions on ACA topics, not only related to the project. - Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.
Testi di riferimento
John Hennessy, David Patterson, Computer Architecture, A Quantitative Approach, Editore: Morgan Kaufmann, Fifth or Sixth Edition
Note: Additional information in slides and papers available through the course website.
Codice insegnamento 088949
ADVANCED METHODS FOR SCIENTIFIC COMPUTING
1° anno · 1° semestre · 5 CFU · MATH-05/A · 0 file
MAIN OBJECTIVES This course introduces advanced tools for scientific computing and their efficient implementation on HPC architectures. Programming techniques, mainly based on the C++ programming language, will be…
Scheda dell'insegnamento
Obiettivi formativi
MAIN OBJECTIVES
This course introduces advanced tools for scientific computing and their efficient implementation on HPC architectures. Programming techniques, mainly based on the C++ programming language, will be applied to a set of selected numerical problems. This course encourages a learn-by-doing attitude by organizing students into groups that will implement and test the proposed numerical algorithm.
The student will learn to design, program, and test software code for scientific computing applications, emphasizing parallel implementation. The course consists of a mix of lectures and hands-on sessions on the computer, where students (organized in groups) implement software for scientific computing under the instructor's guidance, test it, and present the results.
COMPLEMENTARY OBJECTIVE
The complementary aim of the course is to foster problem-solving skills and teamwork.
The expected learning outcomes are:
Knowledge and understanding:
Learn and understand some computing environments and programming tools instrumental to the development of scientific codes;
Learn and understand their practical implementation in a computer algorithm also in the context of parallel computing;
Applying knowledge and understanding:
Apply the acquired techniques to practical problems;
Motivate the choice of the adopted methods and tools;
Making judgment:
Choose the appropriate code design for a specific objective
Develop critical thinking by comparing different alternatives for the solution of a given numerical problem;
Communication skills:
Collaborate in working groups;
Present results;
Ability to learn:
The students will elaborate on the material provided during lectures and laboratory sessions to choose the appropriate numerical algorithm and programming paradigms and implement them in a working code. This activity will strengthen their capability of autonomous learning.
Programma
The following topics will be covered in the course:
A n overview of computing tools:
An overview of the C++ language, focusing on its functional components;
Message passing paradigm: parallel programming using MPI, with examples;
Shared memory paradigm: parallel programming with openMP, with examples;
Main libraries for scientific computing.
The development of numerical software: some examples of topical numerical methods will be selected, explained, and solved by the students under the guidance of the instructors. Possible examples include:
Solving non-linear systems of equations;
Dynamical systems;
Multidimensional numerical quadrature;
Methods for numerical optimization.
Labs sessions. During lab sessions, the students, possibly organized in groups, will implement the techniques and examples presented at the lecture in a software environment that will be provided.
Modalità d'esame
Prova scritta facoltativa (a scelta dello studente), senza prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i condizionato (a scelta del docente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam consists of a written test, possibly followed by an oral examination to clarify the student's answers. The written test includes the development of small computer codes. At the student's request, the written exam may be replaced by a project on a topic agreed with the instructor.
The written exam takes place in the computer room. The exam covers all the theoretical and practical arguments considered during lectures and lab sessions.
The exam includes the implementation and programming of numerical algorithms.
We assess:
1) The capability of the student to apply the knowledge and techniques acquired during the course (Descriptors 1 and 2);
2) The quality of the numerical code developed, both in terms of appropriateness and correctness. clarity, and efficiency, by applying the techniques acquired in the course. (Descriptors 2 and 3);
3) In the case of a project, the originality of the software design, its usability, extendability, and efficacy for the target problem (Descriptors 2 and 3) as well as the autonomy in organising the work (Descriptor 5);
4) The eventual oral examination consists of a discussion on the written elaboration (Descriptor 4).
Testi di riferimento
O Klein, Modern C++ Programming Techniques for Scientific Computing, https://conan.iwr.uni-heidelberg.de/data/people/oklein/pdf/klein_modern_cpp.pdf
Peter S. Pacheco, M. Malensek, An Introduction to Parallel Programming (2nd Edition), Editore: Morgan Kaufmann-Elsevier, Anno edizione: 2022, ISBN: 9780128046050 www.elsevier.com/books-and-journals/book-companion/9780128046050
Bjorn Andrist and Victor Sehr, C++ High Performance: Master the art of optimizing the functioning of your C++ code, Editore: packt, ISBN: 9781839216541 https://www.packtpub.com/en-us/product/c-high-performance-9781839216541?srsltid=AfmBOooBrNoJD0vF1USe33SKvRxz5r_Sc3pTpnlJpT_FRVdd0uy-S1dC
Johan Hoffman, Methods in Computational Science, Editore: SIAM, Anno edizione: 2021, ISBN: 9781611976724
Alfio Quarteroni, Riccardo Sacco, Fausto Saleri, Numerical Mathematics, Editore: Springer, Anno edizione: 2017
Notes prepared by the instructors on weBeep site https://webeep.polimi.it/
Codice insegnamento 058166
APPLIED STATISTICS
1° anno · 2° semestre · 5 CFU · STAT-01/A · 0 file
1. Introduzione all'apprendimento statistico. Il tradeoff tra bias e varianza. 2. La maledizione della dimensionalità e la riduzione della dimensionalità. Analisi delle componenti principali. 3. Classificazione non…
Scheda dell'insegnamento
Programma
1. Introduzione all'apprendimento statistico. Il tradeoff tra bias e varianza.
2. La maledizione della dimensionalità e la riduzione della dimensionalità. Analisi delle componenti principali.
3. Classificazione non supervisionata. Clustering gerarchico, clustering K-means.
4. Modelli lineari. Regressione lineare semplice e multipla. Adattamento del modello attraverso i minimi quadrati ordinari e la massima verosimiglianza, valutazione
dell'accuratezza delle stime dei coefficienti, valutazione dell'accuratezza del modello, intervalli di previsione. Predittori qualitativi e interazioni. Selezione del modello e
regolarizzazione: metodi di shrinkage (ridge regression e lasso), metodi di riduzione della dimensionalità.
5. Classificazione supervisionata. Regressione logistica e stima di massima verosimiglianza. Analisi discriminante lineare e quadratica.
6. Metodi di campionamento. Cross-validation e bootstrap.
7. Metodi basati sugli alberi. Alberi di classificazione e regressione. Bagging, random forests, boosting.
Codice insegnamento 062102
COMPUTING INFRASTRUCTURES
1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file
Modern large-scale datacenters require the seamless integration of different components - applications, computation nodes, storage devices, and networks - into one computing infrastructure. The course covers the basics…
Scheda dell'insegnamento
Obiettivi formativi
Modern large-scale datacenters require the seamless integration of different components - applications, computation nodes, storage devices, and networks - into one computing infrastructure. The course covers the basics of current datacenters architectures, ranging from the analysis of the single components to the global infrastructure. The focus is on the foundations required to understand the design of computing infrastructures that are scalable, available, secure and flexible at the same time. Virtualization, container-based technology, cloud computing and storage systems are analyzed in depth to show how they can be used to support challenging tasks such as machine-learning applications and high-performance computing.
Knowledge and understanding (DD1):
- The student will acquire knowledge about the Computing Infrastructure field. In particular, the students will learn the essential elements that are part of a scalable data center and the basic concepts of reliability, performance evaluations, virtualization, and cloud computing.
Applying knowledge and understanding (DD2): - The student will be able to understand the design choices done within a large-scale computing infrastructure.
- The student will be able to design both computational and storage components of a data center, to satisfy specific service-level requirements
- The student will be able to apply performance and reliability analysis to the data center and to other complex systems, even outside the computer engineering domain
Making judgements (DD3): - The student will be able to explore alternative solutions within a data center, in terms of computing architectures and service models.
- The student will be able to analyze and discuss the trade-offs between reliability, performance, and costs of different hardware and software technologies within a data center.
Communication skills (DD4): - The student will be able to use the data center terminology appropriately.
- The student will be able to illustrate the characteristics and functionality of a data center infrastructure and related service models.
Learning skills (DD5): - The student will develop learning skills necessary to autonomously extend performance and reliability analysis to other types of components in a data center, and to autonomously understand novel technologies within computing infrastructures together with their impact.
Programma
Hardware infrastructure of datacenters:
- Basic components, Rack structure, Cooling
- Hard Disk Drive and Solid State Disks
- RAID architectures
- Hardware Accelerators
Software infrastructure of datacenters: - Virtualization: basic concepts, technologies, hypervisors and containers
- Computing Architecture: Cloud, Edge and Fog Computing
- Infrastructure-, platform- and software-as-a-service
Methods: - Scalability and performance of datacenters: definitions, fundamental laws, queuing network theory basics
- Reliability and availability of datacenters: definitions, fundamental laws, reliability block diagrams
Exercises to apply the knowledge in simple examples or to more complicated scenarios will be used especially considering the parts related to reliability, storage system design, and performance analysis.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The evaluation consists of a written exam on the topics covered in the course. The exam will include both theoretical questions and numerical problems.
More in detail the written exam includes:
- Close-ended questions on course topics to verify the capacity to recognize the basic concept behind the design of a large-scale computing infrastructure; (DD1, DD2)
- Open-ended theoretical questions on course topics to verify the capacity to describe the key concepts related to the design of a large-scale computing infrastructure; (DD1, DD2, DD3, DD4, DD5)
- Numerical problem resolutions regarding analysis and design of data center and data center components, virtualization, storage systems, dependability, and performance modeling. (DD1, DD2, DD3)
An oral test could be requested by the lecturer to deepen specific questions of the written test and further verify the capacity of the student to describe the key concepts related to the design of a large-scale computing infrastructure and develop links between the various topics of the course (DD1, DD2, DD3, DD4, DD5)
Testi di riferimento
Course Web Site webeep.polimi.it
Luiz André Barroso and Urs Hölzle, The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines
Edward D. Lazowska, John Zahorjan,G. Scott Graham, Kenneth C. Sevcik, Quantitative System Performance: Computer System Analysis Using Queueing Network Models
Note: (Open Access Book) (chapters 1-4)
James Smith and Ravi Nair, "Virtual Machines" Versatile Platforms for Systems and Processes
Caesar Wu and Rajkumar Buyya, Cloud Data Centers and Cost Modeling
Codice insegnamento 095898
Insegnamenti a scelta dal Gruppo MATH-PHYS-TLC
1° anno · 0 file
NUMERICAL LINEAR ALGEBRA
1° anno · 1° semestre · 5 CFU · MATH-05/A · 0 file
The goal of this course is to introduce numerical linear algebra solvers for scientific computing and their implementation on HPC architectures. The course emphasises the importance of numerical approximations for…
Scheda dell'insegnamento
Obiettivi formativi
The goal of this course is to introduce numerical linear algebra solvers for scientific computing and their implementation on HPC architectures. The course emphasises the importance of numerical approximations for solving large linear systems and analysing the properties of large, potentially sparse, matrices. These tasks are crucial to overall efficiency and are the most resource-intensive steps in complex numerical simulations, large-dataset analysis, and Machine Learning applications. The course covers algorithms for large-scale computing, their practical implementation, and their analysis in terms of computational and communication complexities. For algebraic linear systems stemming from the numerical approximation of differential problems, the course will also address how the choice of the numerical technique depends on factors such as the specific differential problem, the numerical discretisation method, and the HPC environment.
Extensive computer lab sessions will be carried out using the C programming language on significant test cases. Additionally, the course aims to train students to use programming languages for algorithm development and numerical computations, enabling them to critically apply advanced simulation tools.
Throughout the course, students are stimulated to:
- Develop specialised knowledge of numerical linear algebra for large-scale scientific computing problems (Dublin Descriptor 1).
- Analyse, implement, and apply numerical algorithms effectively (Dublin Descriptor 1, Dublin Descriptor 2).
- Select the most appropriate technique and critically use advanced simulation tools by motivating the choices made (Dublin Descriptor 3, Dublin Descriptor 4, Dublin Descriptor 5).
According to the Dublin descriptors, the expected learning outcomes are the following.
DD1. Knowledge and understading.
- Develop knowledge and understanding of the main Numerical Linear Algebra algorithms, as well as evaluate their properties.
DD2. Ability to apply knowledge and understading. - Construct and analyse the main Numerical Linear Algebra algorithms.
- Understand and master the theoretical properties of numerical algorithms for solving algebraic problems.
- Write and interpret algorithms;
- Develop implementation skills and numerical verification abilities:
DD3. Autonomy of judgment, DD4. Communication skills, DD5. Learning ability. - Choose the most appropriate numerical scheme for solving a given problem;
- Critically interpret of the numerical results in the light of the theory;
- Motivate the choice of the adopted methods and tools;
- Integrate knowledge for problem-solving, collaborate effectively in teams, communicate the results.
Programma
The topics that will be covered in the course are listed below. The methods presented during the lectures will be numerically investigated during the Computer Lab sessions.
Lectures will cover the following topics:
Iterative methods for large linear systems: Sparse matrix storage formats; Krylov subspace iterative methods (CG, GMRES, BiCG, BiCGstab,....); HPC programming and implementation of iterative solvers; Domain decomposition preconditioners: non-overlapping and overlapping techniques; (Algebraic) multigrid/multilevel methods.
Direct methods for sparse linear systems: Graph reordering and fill-in; Graph partitioning and parallelisation; The multifrontal method.
Numerical algorithms for Machine Learning: Least square approximations; Numerical techniques for QR factorisation; (L)-BFGS (hints).
Numerical approximation of eigenvalues: Lanczos methods; Numerical algorithms based on approximate factorisations.
Computer Labs. The Computer Lab sessions are based on the parallel software library LIS (Library of Iterative Solvers for linear systems, https://www.ssisc.org/lis/index.en.html). A quick overview of HPC linear algebra libraries such as Eigen, MUMPS, and LAPACK will also be covered.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale facoltativa (a scelta dello studente)
Valutazione continua obbligatoria
The exam includes a written test and a coursework challenge, with an optional oral test available.
- The written test, which accounts for 80% of the final grade, takes place in the computer lab. It covers all theoretical and practical topics discussed in lectures and lab sessions, including theoretical concepts and the implementation and programming of numerical algorithms.
- A coursework challenge, which accounts for 20% of the final grade. Students work in small groups on an assigned task and actively participate in a summative assessment and evaluation process.
- The optional oral consists of a discussion on course topics and the written elaborate.
Assessment. The assessment covers:
-The student's ability to apply the subject-specific knowledge and techniques acquired during the course (Descriptors 1 and 2). - The student's ability to choose the most appropriate numerical algorithms and critically interpret the results (Descriptors 2 and 3).
- In coursework challenges, the students' ability to integrate knowledge for problem-solving, collaborate effectively in teams, and communicate results (Descriptors 3, 4, and 5).
The lecturer reserves the right to require an oral examination after the written examination to assess and verify students' knowledge and competencies.
Testi di riferimento
N. Trefethen, D. Bau, Numerical Linear Algebra, Editore: SIAM, Anno edizione: 2022
Y. Saad, Iterative Methods for Sparse Linear Systems, Anno edizione: 2003
Codice insegnamento 058167
NUMERICAL METHODS FOR PARTIAL DIFFERENTIAL EQUATIONS
1° anno · 1° semestre · 5 CFU · MATH-05/A · 0 file
The course aims to introduce numerical methods for the solution of partial differential equations (PDEs), with focus on the finite element method and the use of the computer for the numerical solution. The course…
Scheda dell'insegnamento
Programma
The course aims to introduce numerical methods for the solution of partial differential equations (PDEs), with focus on the finite element method and the use of the computer for the numerical solution. The course covers the numerical approximation of elliptic and parabolic PDEs by considering their variational formulation, Galerkin and finite element approximations
in 1D/2D/3D, the theorical properties and practical use of the methods, algorithmic aspects, and interpretation of the numerical results. Advanced topics include the approximation of saddle-point PDEs, nonlinear and multiphysics differential problems, domain decomposition methods exploiting the properties of the PDEs, introduction to parallel computing for the finite element method. Hands-on computer lab sessions feature the extensive use of the deal.II software library, a C++ open source finite element library, and ParaView for the visualization of numerical solution and scientific computing data.
The course will allow students to: develop knowledge and understanding of the finite element method and numerical methods for PDEs; apply the numerical methods to the solution of PDEs; choose the most appropriate numerical method; implement algorithms; develop solvers to compute the numerical solutions; and critically interpret the numerical results.
Codice insegnamento 058168
PARALLEL COMPUTING
1° anno · 1° semestre · 5 CFU · IINF-05/A · 0 file
This course aims to provide an understanding of the fundamental principles involved in designing modern parallel computing systems and teach parallel programming techniques. An innovative teaching activity (1 CFU),…
Scheda dell'insegnamento
Obiettivi formativi
This course aims to provide an understanding of the fundamental principles involved in designing modern parallel computing systems and teach parallel programming techniques. An innovative teaching activity (1 CFU), Blended Learning & Flipped Classroom, is planned for some of the topics covered by the course.
The expected learning outcomes of the course are expressed according to the Dublin Descriptors, as detailed below.
Knowledge and understanding (DdD1)
Students will learn how to:
- develop advanced parallel algorithms by analyzing their complexity and by exploiting existing parallel patterns, tools, and languages for parallel programming;
- design and analyze a parallel algorithm by understanding parallel computing architectures.
Applying knowledge and understanding(DdD2)
Given specific problems, students will be able to: - understand complex problem descriptions;
- design algorithms and analyze their complexity starting from the parallel computing architecture;
- design and implement parallel algorithms;
- profile and fine-tune the performance of complex programs.
- understand where the pitfall and issues may come in parallel programming.
Making judgments (DdD3)
Given a relatively complex problem, students will be able to: - define the relevant data sets required to judge the quality of the proposed solution;
- understand if the obtained performance is in line with the expected complexity;
- understand if the proposed solution scales well or not;
- understand where previous approaches are relevant or not for a given problem.
Learning skills (DdD5)
Students will learn to: - present their work discussing the pros and cons of the proposed solution.
- present the existing state-of-the-art showing where it could be improved or where it is inconsistent;
Lifelong learning skills
Students will understand how a complex parallel algorithm has to be analyzed, designed, and assessed.
They will play with real problems, understanding where pitfalls may come when you move from a theoretical formulation down to an actual implementation considering existing tools and architectures.
Programma
Main lectures topics:
- Motivations for parallel chips, processor basics: why parallelism?
- Multicore processors, SIMD processors, Memory models.
- GPU architectures
- Heterogenous parallel processing & Accelerators
- Parallel programming abstractions: PRAM model.
- Parallel programming basics: multithreading, data parallelism, shared memory space, memory consistency, synchronization.
- Tools and languages for parallel programming: Posix threads, OpenMP, Message Passing Interface, and CUDA.
- Parallel programming performance analysis and optimization.
- Data and computation parallel patterns: map, reduce, scan, gather, scatter, etc.
- Domain-specific programming languages: Halide.
Innovative Learning
The innovative learning activities in the course will be provided by the following active-classroom forms: - Selected topics covered in a flipped-classroom form
- Blended-classroom exercise sessions (after an example explained by the teacher, students solve exercises and present and discuss results)
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
The assessment of the students is organized according to the schedule provided by the School's Academic Calendar.
The evaluation is based on a written exam focused on:
- The solution of some problems based on the practical application of the course concepts and techniques;
- Open answers to some questions on the course concepts and techniques.
After each written test, the teacher can complement the assessment procedure with an oral examination.
Continuous assessment will be implemented through two intermediate tests: one as a mid-term test and one at the end of the semester. All students are admitted to the second test, regardless of the outcome of the first one. The results achieved will be valid until the end of the academic year or until a student requests to repeat the given part. Each intermediate test contributed to the final grade with 16 points. The exam is considered passed if, in both parts, the students get a grade not less than 7, and the sum of the two grades is greater or equal to 18. 30 cum laude is awarded if students have a total grade greater than 30.
If either the first or the second test has a grade less than 7 or the total is less than 18, the student has to take the written test on one of the following dates according to the schedule provided by the School's Academic Calendar. The student may use one of the valid partial results on the next exam dates. In this case, a customized written exam version will be provided to the student for the parts not yet valid.
Participation in innovative learning classroom activities will be assessed and will contribute to the final evaluation grade. In particular, in the case of valid grades, some questions of the written exam could be skipped.
The written examination assesses knowledge and understanding of the course foundations (DdD1), the ability to apply algorithms, parallel programming techniques and performance-analysis methods to specific problems (DdD2), and the ability to compare alternative solutions and judge their correctness, efficiency and scalability (DdD3). Open-answer questions, the oral examination when applicable, and the presentation and discussion of active-learning activities assess communication skills (DdD4). Exercises involving unfamiliar problems and the independent transfer of methods to new algorithms and architectures assess learning skills (DdD5).
Testi di riferimento
John L. Hennessy and David A. Patterson, Computer Architecture, Sixth Edition: A Quantitative Approach, Editore: Morgan Kaufmann, Anno edizione: 2017
Michael McCool, James Reinders, Arch Robison, Structured Parallel Programming: Patterns for Efficient Computation, Editore: Morgan Kaufmann, Anno edizione: 2012, ISBN: 0124159931 http://parallelbook.com/
Peter Pacheco, An Introduction to Parallel Programming, Editore: Publisher: Morgan Kaufmann; 1 edition, Anno edizione: 2011, ISBN: 978-0123742605
Jason Sanders, CUDA by Example: An Introduction to General-Purpose GPU Programming. 1st Edition., Editore: Addison-Wesley, Anno edizione: 2010
David Kirk and Wen-mei Hwu, Programming Massively Parallel Processors, Second Edition: A Hands-on Approach. 2nd Edition, Editore: Morgan Kauffmann, Anno edizione: 2012
parallel programming online material https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Additional material is available on the WeBeep platform of Politecnico di Milano https://webeep.polimi.it/login/index.php
Note: access restricted to course participants
Codice insegnamento 058165
QUANTUM COMPUTING
1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file
Provide a basic understanding of the principles of quantum computing. Provide the notions required to understand if solving a problem may profit from quantum computing. Enable a hands-on experience on existing quantum…
Scheda dell'insegnamento
Programma
Provide a basic understanding of the principles of quantum computing. Provide the notions required to understand if solving a problem may profit from quantum computing. Enable a hands-on experience on existing quantum computer simulators, to allow further experimentation by the candidate.
Codice insegnamento 059432
QUANTUM PHYSICS
1° anno · 1° semestre · 5 CFU · PHYS-03/A · 0 file
The course: Offers an introduction to quantum phenomena; Provides an algebraic frame for their description; Introduces the statistical approach necessary to evaluate the output of measurements performed on quantum…
Scheda dell'insegnamento
Obiettivi formativi
The course:
- Offers an introduction to quantum phenomena;
- Provides an algebraic frame for their description;
- Introduces the statistical approach necessary to evaluate the output of measurements performed on quantum systems;
- Describes the basic properties of simple composite quantum systems (qbits).
Pedagogical objectives are:
Knowledge and understanding (DD1): the students will learn how to describe simple quantum systems and apply the statistical approach necessary to determine the outcome of a measurement.
Apply knowledge and understanding (DD2): the students will be able to apply the acquired knowledge to determine the time evolution of quantum systems and to interpret quantum phenomena.
Making Judgements (DD3): given a specific problem and project cases, the students will have the ability to understand and formally describe the phenomena that intervene to determine a particular quantum behaviour.
Lifelong learning skills (DD5): the students will understand how to describe simple quantum systems that might be exploited for applications in advanced quantum computing.
Programma
Quantum states.
Introduction to quantum phenomena. Measurements: intrinsic uncertainties. Probability and probability density. Quantum states. Observables. " Proper" states and superposition states.
Observables and operators.
Hilbert space of quantum states. Dirac notation: ket and bra. Hermitian operators: eigenstates and eigenvalues. Generalized statistical interpretation. Commutators. Heisenberg uncertainty principle. Operators with discrete spectrum: matrix representation of operators and observables. Continuous spectrum. Complete basis sets. Position representation and wave function. Momentum representation and wave function in momentum space.
Time evolution
Schrödinger equation. Energy representation and stationary states. Ehrenfest theorem and classical limit. Quantum harmonic oscillator. Creation and annihilation operators.
Transformations.
Unitary transformations. Space translation and rotations. Quantization of angular momentum. Rising and lowering operators. Electron spin, spinors and spin operators. Pauli matrices.
Composite systems.
Identical particles. Pauli exclusion principle for Fermions. Singlet and triplet states. Two level systems: qubits. Entanglement. Einstein-Podolsky-Rosen gedanken experiment. Bell’s inequality.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale obbligatoria
Witten and oral evaluation aimed to probe the student preparation with respect to the pedagocical objectives outlined above:
Knowledge and understanding (DD1): Upon successful completion of the exam, the student will be able to describe simple quantum systems and apply the statistical approach necessary to determine the outcome of a measurement.
Apply knowledge and understanding (DD2): Upon successful completion of the exam, the student will be able to analyze specific problems and project cases, understand the underlying phenomena, and formally describe the mechanisms responsible for particular quantum behaviors.
Making Judgements (DD3): Upon successful completion of the exam, the student, given a specific problem and project cases, will be abile to understand and formally describe the phenomena that intervene to determine a particular quantum behaviour.
Lifelong learning skills (DD5): Upon successful completion of the exam, the student will retain the capability of understanding of simple quantum systems independently.
Testi di riferimento
Arjun Berera, Luigi Del Debbio, Quantum Mechanics, Editore: Cambridge University Press, Anno edizione: 2022, ISBN: 9781108423335
Note: Reference textbook
Franco Ciccacci, Fondamenti di fisica atomica e quantistica, Editore: EDISES Edizioni, Anno edizione: 2019, ISBN: 9788833190679
Note: Contains an in-depth historical introduction with the description of the experimental evidences that led to the crisis of Classical Physics and to the formulation of Quantum Mechanics. It also provides a wide survey of relevant experiments for the development of Quantum Physics
J. J. Sakurai, Jim Napolitano, Modern Quantum Mechanics, Editore: Cambridge University Press, Anno edizione: 2020, ISBN: 9781108473224
Note: High-level textbook for the in-depth study of Quantum Physics. One of the internationally acknowledged references for Quantum Physics.
Arjun Berera, Luigi Del Debbio, Quantum Mechanics, Editore: Cambridge University Press, Anno edizione: 2022, ISBN: 9781108423335
Codice insegnamento 058169
SOFTWARE ENGINEERING FOR HPC
1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file
The parallel and distributed nature of High-Performance Computing (HPC) applications enormously complicate the job of developers, who must guarantee not only performance but also correctness, reliability, and…
Scheda dell'insegnamento
Obiettivi formativi
The parallel and distributed nature of High-Performance Computing (HPC) applications enormously complicate the job of developers, who must guarantee not only performance but also correctness, reliability, and maintainability of their software.
The goal of this course is to introduce students to software engineering methodologies and techniques to organize the development and operation of HPC applications to address this complexity.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
- Identify and analyze the main functional and non-functional characteristics of parallel and distributed software
- Identify design styles
- Distinguish between different approaches to verification and validation
Applying knowledge and understanding
Given specific project cases, students will be able to: - Identify, analyze and comment on specific design choices
- Assess the quality of design choices
- Apply verification and validation approaches to verify software qualities
- Setup a continuous delivery pipeline
- Deploy software on a HPC cluster
Making judgements
Given a relatively complex problem, students will be able to: - Define the design of a HPC software system using proper styles and patterns
- Automate the testing and delivery processes associated to HPC software
Communication
Students will learn how to communicate the design of an HPC system through its precise modeling
Lifelong learning skills
Students will learn how to manage important steps of a realistic HPC project
Programma
Software engineering: objectives and issues, software life cycles and main phases.
HPC: relevant software categories and qualities.
Software requirements: brief overview.
Software design: modelling approaches, architectural styles and patterns with a focus on approaches for data intensive systems and for quantum-based optimization systems.
Architectural assessment of software qualities and tactics to improve them.
Techniques for software verification.
Configuration management and collaboration workflows.
Continuous integration and continuous deployment.
Software containers.
HPC schedulers and operation of software on HPC clusters.
Modalità d'esame
Prova scritta facoltativa (a scelta dello studente), senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The assessment will be based on practical project activities that can be partially replaced by a written exam.
The practical activities will be developed in groups and will concern:
- A simple requirement analysis and software design assignment
- The setup of a tool pipeline automating software testing, deployment, and operation on a HPC cluster.
These two activities will assign up to 8 points each and are mandatory.
Students can complete the exam in two alternative ways:
Complete project: starting from the results of the requirement analysis and design assignment, students can focus on the development and verification of a software prototype.
Written test: the test is covering the aspects described in the table below and is open book.
Both the complete project and the written test assign up to 16 points.
The practical activities and the complete project will be assigned during the course with precise deadlines that will be provided in class. The written test is expected to be taken in the exam sessions according to the calendar defined by the school.
The scores obtained in all activities will be summed to obtain the final score. The exam will be passed with a score greater or equal to 18. The laude will be assigned if the score is greater or equal to 31.
The following table provides a detailed overview of the elements that will be considered in the various assessment activities.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems: Software modelling problems;
exercises focusing on verification activities and on the application of strategies to improve some software qualities
1, 2
Practical activities
Requirement analysis and software design;
Setup of a tool pipeline automating software testing, deployment, and operation;
Complete implementation and verification of the design solution.
2, 3, 4, 5
Codice insegnamento 058170
ARTIFICIAL NEURAL NETWORKS AND DEEP LEARNING
2° anno · 1° semestre · 5 CFU · IINF-05/A · 0 file
Nowadays, deep neural networks can outperform traditional hand-crafted algorithms, achieving human-level performance on many complex tasks, such as natural language processing, text modeling, gene expression modeling,…
Scheda dell'insegnamento
Obiettivi formativi
Nowadays, deep neural networks can outperform traditional hand-crafted algorithms, achieving human-level performance on many complex tasks, such as natural language processing, text modeling, gene expression modeling, and image recognition. The course provides a broad introduction to neural networks (NNs), ranging from traditional feedforward (FFNNs) and recurrent (RNNs) to the most successful deep learning models, such as convolutional neural networks (CNNs) and long short-term memory (LSTM).
The course's primary goal is to provide students with the theoretical background and practical skills to understand and use NN, and to become familiar with Deep Learning for solving complex engineering problems.
This goal is pursued in the course by
Presenting major theoretical results underpinning NN (e.g., universal approximation, vanishing/exploding gradient, etc.)
Describing the most important algorithms for NN training (e.g., backpropagation, adaptive gradient algorithms, etc.)
Illustrating the best practices on how to successfully train and use these models (e.g., dropout, data augmentation, etc.)
Providing an overview of the most successful Deep Learning architectures (e.g., convolutional networks, autoencoders for embedding, long-short term memories for sequence-to-sequence learning, etc.)
Providing an overview of the most successful applications with particular emphasis on models for solving visual recognition tasks.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn:
· What are neural networks and the fundamental methods and techniques used for neural networks training
· What are the fundamental architectures used in deep learning, such as convolutional neural networks and long-short term memories, and when to use them
· What are the neural network architectures used in the different visual recognition tasks
· What are the main differences between machine learning and deep learning
Applying knowledge and understanding
Given a specific data analysis problem, the student will be able to:
· Identify which paradigm better describes a given problem
· Identify which technique to start from with the analysis, apply it to model the data and evaluate its outcome
· Implement fundamental deep learning algorithms for image and text analysis autonomously
Making judgments
Given a complex data analysis problem, students will be able to:
· Identify the most relevant model to be applied in the specific problem
· Identify the occurrence of overfitting by the model under analysis
· Iteratively refine the selected model in order to balance performance, computational complexity and overfitting
· Compare and select different models for the problem under analysis
Communication
The student will learn to:
· Discuss in written form the pros and cons of different machine learning techniques for a specific problem
Lifelong learning skills
The student will learn to:
· Face a real-life data analysis problem with a sound and complete methodological approach
· Understand complex machine learning techniques beyond the fundamental ones presented during lectures
· Develop new machine learning pipelines adapting to the specific problem at hand
Programma
Neural networks are mature, flexible, and powerful non-linear data-driven models that have successfully been applied to solve complex tasks in science and engineering. The advent of the deep learning paradigm, i.e., the use of (neural) network to simultaneously learn an optimal data representation and the corresponding model, has further boosted neural networks and the data-driven paradigm. These topics will be described in the course according to the following detailed program:
From the Perceptron to Neural Networks and the Feedforward architecture
Backpropagation and Neural Networks training algorithms, e.g., Adagrad, Adam, etc.
Best practices in neural network training: overfitting and cross-validation, stopping criteria, weight decay, dropout, data resampling, and augmentation.
Image Classification Problem and Neural Networks
Recurrent Neural Networks and other relevant architectures, such as (Sparse) Neural Autoencoders
Theoretical results: Neural Networks as universal approximation tools, vanishing and exploding gradients, etc.
Introduction to the Deep Learning paradigm and its main differences with respect to classical Machine Learning
Convolutional Neural Networks (CNN) architecture
The breakthrough of CNN and its interpretation
CNN training and data-augmentation
Structural learning, Long-Short Term Memories, and their applications to text and speech
Autoencoders and data embedding, word2vec, variational autoencoders
Transfer Learning for pre-trained Deep models
Extended models, including Fully Convolutional CNN, networks for image segmentation (U-net) and object detection (e.g., R-CNN, YOLO )
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The course foresees a written exam and some homework assignments in the form of coding exercises/challenges. The written exam is aimed at verifying the acquisition of theoretical knowledge of the course subject, while the coding exercises aim at acquiring practical experience with the most widely used tools in the field.
The homework assignments contribute between 0 and 10 points to the final grade. The written exam is compulsory and will contribute between 0 and 22 points. The final grade is the sum of the grades for the homework assignments and the written exam.
Homework assignments need to be delivered during the course on fixed dates. The grade obtained on these assignments is valid for the entire academic year and can be combined with the written exam grade from any call in the same academic year.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems
· Computation of simple backpropagation derivation
· Computation of simple sizing problems on CNN architectures
Answer to theoretical questions
· Formal derivation of learning techniques and models
· Comparison of models in terms of complexity, overfitting issues, and applicability in different cases of data analysis
1, 2
1, 2, 3, 4, 5
Assessment of practical homework
Execution of practical homework exercises
· Application of deep learning techniques to small dataset
· Application of model selection and validation techniques on simulated and real datasets
2, 3, 4, 5
Testi di riferimento
Ian Goodfellow, Yoshua Bengio, and Aaron Courville, Deep Learning, Editore: MIT Press, ISBN: 978-0262035613 http://www.deeplearningbook.org/
Codice insegnamento 054307
Insegnamenti a scelta dal Gruppo ICT
2° anno · 0 file
Insegnamenti a scelta dal Gruppo MULTIDISCIPLINARY APPLICATIONS
2° anno · 0 file
SYSTEMS AND METHODS FOR BIG AND UNSTRUCTURED DATA
2° anno · 1° semestre · 5 CFU · IINF-05/A · 0 file
The objective of the course is to address the problems, solutions, methods, and technologies for big data storage and management, with special emphasis on scalability and persistency. The course is structured in three…
Scheda dell'insegnamento
Obiettivi formativi
The objective of the course is to address the problems, solutions, methods, and technologies for big data storage and management, with special emphasis on scalability and persistency. The course is structured in three main parts. The first part covers the main principles and approaches of big data management, spanning issues like scalability, transactionality, and distribution of data. The second part covers the different approaches to unstructured data management, describing data models, query languages, and architectural solutions for non-relational data storage, also known as NoSQL solutions, spanning graph, columnar, documental, key-value, and IR-based databases. The third part discusses the design methodologies for the specification of NoSQL data models.
Students will learn the basic concepts of modern database approaches. They will become able to design, program, and use the different database methods, and they will learn how to select and adopt the best option depending on the business and technical requirements.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
Identify problems that can be addressed with big data storage and processing techniques
apply the basic nosql technologies for real-world problems
Applying knowledge and understanding
Given specific project cases, students will be able to:
Define and implement a big data solution for the problem
Apply it on real datasets
Making judgements
Given specific project cases, students will be able to:
Learn how to decide which data storage and processing solution to apply and how to evaluate this decision
Communication
Students will learn to:
Write a report on a project describing and motivating the decisions taken and the results obtained
Present their work in front of their colleagues and teachers
Lifelong learning skills
Students will learn how to learn and become proficient in new data management solutions
Programma
The course content is organized in three main chapters:
1. Approaches to Big Data management
Big Data problems and dimensions
Data engineering and data science pipeline
Enterprise-scale data management
Scalability and persistency vs. volatility issues
Cross-source data integration problems and architectures
CAP theorem and implications. Non-relational distribution architectures
Evolution of transactional properties: from ACID to BASE. Modern transactional architectures
Data sharding and replication
Cloud-based, scalable data processing and computing
2. Systems and Models for Big and Unstructured Data
Graph databases
Semantic databases
Columnar databases
Document-oriented databases
Key-value databases
IR-based databases
Each category of systems is covered along 5 dimensions: (1) data model (2) (declarative vs. imperative) query languages; (3) data distribution (4) non-functional aspects (5) architectural solutions.
3. Methods for the Design of Applications
Modeling languages and methods for building unstructured data applications
Design methodology within the data engineering pipeline
Schema-less, implicit-schema, and schema-on-read approaches
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
The exam consists of a practical project part (project work) and a written part (written exam, with possible oral discussion if deemed necessary by the instructor). Further contributions to the mark may come from continuous evaluations throughout the course, including in-presence quizzes during lessons and other interactive modalities in class.
The project work consists of solving a realistic big data engineering problem, based on real or realistic dataset publicly accessible via Web API, datasets available online, or provided by the instructors. The project work will be developed in groups throughout the semester.
The written exam is composed of a mix of theoretical questions regarding any of the course subjects, and exercises regarding the technical content and how to apply it in practice (including programming aspects). The theoretical part consists of a mix of questions with open and closed answers. The whole exam is a closed-book evaluation. A minimum score on each part is required. Oral exam may be requested by the instructor in specific cases.
Type of assessment
Description
Dublin descriptor
Written test
Theoretical questions
Exercises focusing on big data storage and processing aspects
1,4
1, 2, 3
Assessment of project artefacts
Assessment of the design and experimental work developed by students in groups
2, 3, 5
Oral presentation
Assessment of the presentation of the work developed by students in groups
Possible oral exam on the topics of the courses, upon request of the teachers
2, 3, 4, 5
Testi di riferimento
Sadalage, Fowler, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Editore: Addison-Wesley, Anno edizione: 2012
Marting Kleppmann, Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Editore: O'Reilly, Anno edizione: 2017, ISBN: 978-1449373320
Marco Brambilla, Emanuele Della Valle, Andrea Tocchetti, et al., Course Notes, Anno edizione: 2021
Codice insegnamento 056901
THESIS AND FINAL EXAM
2° anno · 1° semestre · 20 CFU · 0 file
ADVANCED DEEP LEARNING
2° semestre · 5 CFU · IINF-05/A · 0 file
The Deep Learning (DL) revolution has been pervasive in science and engineering, opening new perspectives in several domains, such as autonomous driving, medical imaging, and human-machine interaction, and achieving…
Scheda dell'insegnamento
Obiettivi formativi
The Deep Learning (DL) revolution has been pervasive in science and engineering, opening new perspectives in several domains, such as autonomous driving, medical imaging, and human-machine interaction, and achieving super-human performance in many complex tasks related to language and visual understanding nowadays.
The Advanced Deep Learning course covers three main directions to provide an advanced ground for engineers aiming at up-to-date deep learning expertise:
Advanced DL architectures, such as Graph Neural Networks, Point Convolutional Networks, and Transformers, have recently introduced a breakthrough in DL research, especially as the backbone of contemporary Large Language Models or Image Generation routines.
Learning non-conventional tasks (image generation with and without text conditioning) and from limited supervision (e.g., unsupervised / self-supervised / zero-shot learning). In particular, we will describe the mainstream models for generating images with Generative Adversarial Networks, Variational Autoencoders, and Diffusion models.
Learning beyond image data, such as graphs and point clouds, departing from the vector/matrix structured data that have characterized traditional machine learning and the onset of deep learning. Extensive applications to Deep Learning for 3D data.
Advanced Deep Learning is intended as an advanced course; therefore, proficiency in neural networks, convolutional neural networks, recurrent neural networks, and basic notions of nonlinear optimization is assumed as a prerequisite for participants. Thus, we expect students to have already taken Master's Level courses on Machine Learning and Artificial Neural Networks.
Dublin Descriptors
Expected learning outcomes
1 Knowledge and understanding
Students will learn:
· What are the recent advances in deep learning
· The architecture and the principle underpinning recent deep learning models
· How to train deep learning models with limited supervision
· How to handle non-conventional data-structures in deep learning
2 Applying knowledge and understanding
Given a specific problem to be solved by a Deep Learning model, the student will be able to:
· Identify which network architecture better fits the solution
· Identify the best training paradigm
· Assess the model performance even in tasks involving non-tensor data
3 Making judgments
Given a complex data analysis problem, students will be able to:
· Identify the most relevant model to be applied in the specific problem
· Iteratively refine the selected model in order to balance performance, computational complexity and overfitting, in particular in case of data scarcity.
4 Communication
The student will learn to:
· Discuss in written form the pros and cons of different machine learning techniques for a specific problem
5 Lifelong learning skills
The student will learn to:
· Face a real-life data analysis problem with a sound and complete methodological approach
· Understand complex machine learning techniques beyond the fundamental ones presented during lectures
· Develop new machine learning pipelines adapting to the specific problem at hand
Programma
Course Introduction: a historical perspective on Deep Learning with key steps in the evolution of learning techniques, deep learning models, and deep models investigation techniques.
Deep Learning in Non-Supervised Settings: Unsupervised DL models (Autoencoders), self-supervised learning practices for pre-training, metric-based and zero-shot Learning, and knowledge distillation. Deep Learning Models for Anomaly Detection and Image Restoration.
The Transformers: The Attention Mechanism and the Transformers (in natural language processing). The Attention mechanism in images and Vision Transformers, Self-supervised Learning for Images, Contrastive Learning / Multimodal Learning (e.g., DINO, CLIP, etc).
Generative AI: Image generation, Variational Autoencoders and Generative Adversarial Networks, Normalizing Flows, Diffusion Models, DALL-E, and text-conditional image generation.
Deep Learning beyond images: from 3D voxelized (conv3D layers) data, scattered points (point clouds), Graph Neural Networks for meshes and graphs. Applications to the medical domain and graph processing.
Investigation Techniques for Deep Learning Models: Explainability Tools for Deep Neural Networks (e.g., saliency maps) and Adversarial Attacks with Countermeasures.
Slides with references to specific papers will be provided. Lectures are accompanied by practical lab sessions, where students can practice using Colab to apply the materials covered during lectures and implement models for specific applications. Software used for the practical part of the course: Python / Pytorch.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The course includes a written exam and one homework assignment in the form of a coding exercise/challenge.
The written exam aims to assess the acquisition of theoretical knowledge about all course subjects (DdD 1,2). It will be conducted in person, with each student using the Safe Exam Browser (SEB) installed on their own laptop. The exam will have to connect to https://remoteexam.polimi.it/ platform.
The homework assignment aims to assess the acquisition of practical experience with the most commonly used tools in the field on a specific deep learning problem that covers one or a few topics from the course (DdD 2,3,4).
The homework topics change every year, and they may cover various parts of the course program. The homework assignment contributes a total of between 0 and 10 points to the final grade. The written exam is compulsory and will contribute between 0 and 22 points. The final grade is the sum of the grades in the homework assignments and the written exam.
The homework assignment must be submitted during the course on a specific date, which will be communicated in advance. The project will also be discussed in person with the teacher; the date of this oral will be communicated in advance. The grade obtained in the homework assignment is valid for the entire academic year and can be combined with the written exam grade received in any of the calls during the same academic year.
Codice insegnamento 063392
ADVANCED MATHEMATICAL MODELS IN FINANCE
2° semestre · 5 CFU · STAT-04/A · 0 file
The course will allow the student to design an asset management strategy; understand equilibrium and no arbitrage pricing techniques; understand mathematical models for risk management. After the course the student…
Scheda dell'insegnamento
Obiettivi formativi
The course will allow the student to
design an asset management strategy;
understand equilibrium and no arbitrage pricing techniques;
understand mathematical models for risk management.
After the course the student will
build the portfolio frontier and define an asset management strategy;
know equilibrium and no arbitrage pricing techniques;
know the main concepts of stochastic calculus, which are essential in quantitative finance;
know how to price and hedge a financial derivative;
know how to solve analytically (if possible) a financial problem (asset management, pricing, hedging), exploiting the developed theoretical competencies;
know how to find proper modeling assumption to describe a financial asset (stock, interest rate, volatility, commodities, etc.);
know how to manage risk of financial derivatives.
Programma
Decisions in a risky environment: Portfolio selection
Portfolio frontier
Asset management: from theory to practice
Capital market models: CAPM & APT
Introduction to stochastic processes
Derivatives evaluation
Basic Interest rate products (Bonds, Repos, FRA, STIR, Swaps)
Option pricing
Numerical techniques: MonteCarlo and Tree (CRR)
Risk management of derivatives
The course includes sessions with examples and applications of the general theory to specific concrete cases, working also on real data.
Modalità d'esame
Prova orale obbligatoria
The exam is based on an oral exam.
Testi di riferimento
Roy E. Bailey, The Economics of Financial Markets, Editore: Cambridge University Press, Anno edizione: 2005, ISBN: 9780521612807
John C. Hull, Options, Futures, and Other Derivatives, Editore: Pearson, Anno edizione: 2009
Teaching notes
Codice insegnamento 055893
APPLIED CFD FOR INDUSTRIAL ENGINEERING
1° semestre · 5 CFU · IIND-07/A · 0 file
The Applied CFD for Industrial Engineering course is structured into modules and delivered with varying credits (CFU) and syllabi depending on the specific track of the degree programme, as outlined below: Code 063387:…
Scheda dell'insegnamento
Obiettivi formativi
The Applied CFD for Industrial Engineering course is structured into modules and delivered with varying credits (CFU) and syllabi depending on the specific track of the degree programme, as outlined below:
Code 063387: CS Energy Engineering – 8 CFU
Code 063388: CS Energy Engineering – Wind Energy track – 5 CFU
Code 063388: CS High Performance Computing – 5 CFU
Code 063389: CS Energy Engineering – Propulsion and Power track – 10 CFU
Obiettivi insegnamento
The course provides an introduction to Computational Fluid Dynamics (CFD) as an engineering tool for the analysis, design, verification, and optimization of industrial products and processes. Particular emphasis is placed on the effective use of commercial CFD software within an engineering workflow and on the development of the skills required to critically assess simulation results and modeling assumptions.
The course combines theoretical lectures with extensive hands-on activities based on the ANSYS Fluent software package. Theoretical lectures introduce the fundamental principles underlying CFD methodologies, including the governing equations of fluid flow and heat transfer, discretization techniques, numerical solution algorithms, and verification and validation procedures. Particular attention is devoted to the modeling of engineering phenomena commonly encountered in energy systems and industrial applications, such as turbulent flows, heat transfer, species transport, and reacting flows.
Turbulence modeling is discussed with reference to Reynolds-Averaged Navier-Stokes (RANS) and Large Eddy Simulation (LES) approaches, highlighting their capabilities, limitations, and fields of application. Heat transfer mechanisms, including conduction, convection, and radiation, are also presented together with the corresponding modeling strategies available in commercial CFD environments.
The practical sessions guide students through the complete CFD analysis workflow, including geometry preparation, mesh generation, model selection, boundary condition definition, solution setup, convergence assessment, post-processing, and interpretation of results. Through the analysis of realistic industrial engineering case studies, students learn how to apply CFD tools to solve problems relevant to energy and thermal systems. Particular emphasis is placed on model selection, identification of sources of uncertainty, assessment of solution accuracy, and comparison with experimental or reference data, fostering a critical and informed use of CFD simulations in engineering practice.
Upon completion of the course, students will be able to autonomously set up, execute, and critically evaluate CFD simulations using a commercial software environment, while understanding the assumptions and limitations underlying the adopted numerical models.
Lectures will help students:
Understand numerical modelling methods for turbulent flows and heat transfer using commercial software
Set up CFD simulations, including boundary conditions and solution techniques
Critically evaluate simulation results
Hand-on session activities will enable students to:
Operate a commercial CFD code
Present and discuss numerical results effectively
Communicate findings through technical reports
Programma
INTRODUCTION (all)
CFD as a tool for supporting product and process development, prototyping, verification and optimization. Applications of the CFD. The CFD cycle project.
PROBLEM ANALYSIS (all)
The evaluation of the physical problem, the definition of the physical model, the development of the mathematical modeling approach, the implementation of the model, the resolution and the evaluation of the results.
DISCRETISATION MANAGING (Code 063387 and Cod. 063389)
The geometrical modeling and discretization of the domain. The importance of the domain discretization using adequate mesh.
PROBLEM SOLVING (all)
The role of the solver. Application of the finite volume method for discretization and solution of Navier-Stokes equations. The numerical methods for solving the system of differential equations.
MODELING APPROACH (all)
The physics of turbulent flows, the turbulence and the turbulent flows. The Reynold stress tensor and the closure problem. The numerical modelling of the turbulent flows (RANS model)
ADVANCE MODELLING APPROACH 1 (Cod. 063387 and Cod. 063388)
Atmospheric boundary layer. Moving reference modeling tools.
ADVANCE MODELLING APPROACH 2 (Cod. 063387)
Heat transfer modeling: conduction, convection and radiation.
ADVANCE MODELLING APPROACH 3 (Cod. 063389)
Combustion modeling: premixed, non-premixed and PDF approach.
PROBLEM POST-PROCESSING AND CYCLING (all)
Results review: qualitative and quantitative assessment, comparison with experimental/literature data, mesh sensitivity analysis, CFD model critique, and GCI evaluation.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, individuale, senza revisioni periodiche, con presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
The assessment consists of two complementary components aimed at evaluating both the theoretical understanding of CFD methodologies and the practical ability to apply commercial CFD tools to engineering problems.
Written Examination (18 pt)
The written exam includes multiple-choice questions and theoretical questions covering the fundamental concepts presented during the course, including fluid flow physics, turbulence modeling, heat transfer, numerical methods, and CFD best practices. The objective is to assess the students' understanding of the theoretical principles underlying CFD simulations and their ability to critically interpret modeling approaches.
CFD Project (12 pt)
Students are required to develop an individual or group project involving the application of ANSYS Fluent to the solution of a relevant engineering problem. The project covers the complete CFD workflow, including problem definition, geometry and mesh preparation, model selection, boundary condition specification, solution setup, post-processing, and critical analysis of results. Students must justify the adopted modeling choices and discuss the accuracy and limitations of the obtained solution.
The final grade is based on the combined evaluation of the written examination and the CFD project
Testi di riferimento
H.K. Versteeg, W. Malalasekera, An Introduction to Computational Fluid Dynamics: The Finite Volume, Editore: PEARSON PRENTICE HALL, Anno edizione: 2007, ISBN: 978-0-13-127498-3
J. Tu, G.H. Yeoh, C. Liu, Y. Tao, Computational Fluid Dynamics: A Practical Approach, Editore: Butterworth-Heinemann, Anno edizione: 2023, ISBN: 978-0323939386
Note: Old version: Third edition (2018)
Codice insegnamento 063388
BASI DI DATI 1
1° semestre · 5 CFU · IINF-05/A · 0 file
Obiettivo della prima parte del corso è introdurre gli aspetti teorici delle basi di dati ed i linguaggi per la gestione e l’interrogazione dei dati in esse contenuti. La seconda parte del corso verte invece sui…
Scheda dell'insegnamento
Obiettivi formativi
Obiettivo della prima parte del corso è introdurre gli aspetti teorici delle basi di dati ed i linguaggi per la gestione e l’interrogazione dei dati in esse contenuti. La seconda parte del corso verte invece sui modelli concettuali, sulle metodologie e sulle tecniche per la progettazione di una base di dati a partire dai suoi requisiti. Superato il corso, lo studente sarà in grado di progettare e realizzare basi di dati di media complessità, e sviluppare applicazione che le utilizzino.
Descrittori di Dublino
Expected learning outcomes
Conoscenza e comprensione
Conoscere gli elementi basilari di un sistema per la gestione dei dati
Comprendere gli elementi sintattici e la semantica di un linguaggio di interrogazione
Conoscere i principali costrutti usati nel linguaggio SQL per definire e interrogare una base di sti relazionale
Comprendere i meccanismi di astrazione tipici della progettazione concettuale e logica dei dati
Capacità di applicare conoscenza e comprensione
Confrontare metodi formali di natura diversa e confrontare il loro potere espressivo
Comporre interrogazioni complesse a partire da interrogazioni semplici
Progettare gli schemi dei dati allo scopo di rappresentare efficacemente uno specifico problema
Autonomia di giudizio
Valutare la correttezza di una interrogazione relativamente ai fabbisogni informativi di un utente
Valutare le qualità di uno schema di dati
Confrontare i benefici e gli svantaggi di diversi progetti concettuali e logici
Capacità di apprendimento
Essere in grado di comprendere e apprendere nuovi paradigmi di accesso alle basi di dati
Essere in grado di confrontare e coniugare le conoscenze e competenze apprese nel contesto della progettazione dei dati con quelle dell’ingegneria del software
Programma
INTRODUZIONE AL CORSO
Il sistema informativo nell'azienda
Caratteristiche dei DBMS
TEORIA RELAZIONALE
Il modello relazionale dei dati, sua definizione (informale e formale) e concetti fondamentali
Algebra relazionale: operazioni unarie e binarie
Interrogazioni in algebra relazionale e loro ottimizzazione
Datalog: definizione, interrogazioni ricorsive, specifica di vincoli di integrità,
LINGUAGGI PER BASI DI DATI
Introduzione a SQL: standardizzazione di SQL, domini SQL, vincoli e semplice definizione di tabelle
SQL come DDL: integrità referenziale, definizione di schemi e loro modifica, cataloghi relazionali
Interrogazioni SQL semplici, interrogazioni con ordinamenti e raggruppamenti, i nterrogazioni SQL complesse
Comandi di modifica e viste in SQL
Aspetti evoluti del DDL (cenni): indici, controllo dell'accesso, viste e controllo dell'accesso, trigger, procedure, transazioni
PROGETTAZIONE DI BASI DI DATI
Fasi della progettazione
Le astrazioni nella progettazione dei dati
Il modello Entità-Relazioni: definizione, associazioni, identificatori e gerarchie, proprietà delle gerarchie
Il ciclo di progettazione: fasi di progettazione, strategie, qualità di un progetto concettuale
Progettazione logica: fasi del progetto logico, eliminazione delle gerarchie, gestione degli identificatori, gestione degli attributi, gestione delle associazioni. Normalizzazione (cenni).
Progettazione fisica (cenni)
Uso di un database commerciale (MySQL o PostgreSQL)
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
L’esame prevede una verifica scritta su tutti gli argomenti dell’insegnamento.
Modalità di verifica
Descrizione
Risultato di apprendimento perseguito
Prova scritta ed eventuale prova orale se richiesta dal docente
Esercizi di tipo progettuale:
· Formulazione di interrogazioni usando i linguaggi formali
· Formulazione di interrogazioni e vincoli di integrità usando SQL
· Progettazione concettuale e logica di una base di dati usando il modello relazionale dei dati
· Domande di carattere teorico sugli argomenti del corso
1,2,3,5
Le modalità e gli appelli di esame saranno comunque in accordo con quanto previsto dalla Scuola di Ingegneria Industriale e dell'Informazione, e riportato sul relativo sito Web.
Testi di riferimento
Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi, Riccardo Torlone, Basi di Dati (6 ed.), Editore: McGraw-Hill, Anno edizione: 2023, ISBN: 978-8838656545
Note: Vanno bene anche le edizioni precedenti del libro. Altri suggerimenti bibliografici possono essere reperiti sui siti dei singoli docenti
D. Braga, M. Brambila, A. Campi, Eserciziario di Basi di Dati, Editore: Esculapio, Anno edizione: 2006, ISBN: 88-7488-139-8
Note: Vanno bene anche altre edizioni dello stesso libro.
Codice insegnamento 085887
BAYESIAN LEARNING AND MONTECARLO SIMULATION
2° semestre · 5 CFU · MATH-03/B · 0 file
The course aims to give an application-oriented introduction to the Bayesian statistical learning. Part of the course is devoted to a practical introduction to Monte Carlo techniques, that are fundamental tools in…
Scheda dell'insegnamento
Obiettivi formativi
The course aims to give an application-oriented introduction to the Bayesian statistical learning. Part of the course is devoted to a practical introduction to Monte Carlo techniques, that are fundamental tools in applied Bayesian statistics and in many other fields.
In Bayesian learning prior hypotheses/beliefs on probabilistic models are updated in the light of data, yielding to posterior beliefs. Bayes' Theorem describes this learning process in a coherent probabilistic language. In this framework, the course offers an operative view of Bayesian statistics, through examples and problems solved with the aid of R software. To this aim, a short introduction to R software and to JAGS is provided.
On successful completion of the course, students will be able to:
DUBLIN DESCRIPTORS EXPECTED LEARNING OUTCOMES
DD 1, knowledge and understanding
learn the appropriate terminology, understand the fundamental principles, tools and models of Bayesian Statistics
DD 2, applying knoledge and understanding
apply methods of statistical analysis to specific problems in engineering; extract significant indicators from data; use statistical software
DD 3, making judgements
analyze and understand the goals, the assumptions and requirements associated with a problem and a model, when using Bayesian tools for dealing with statistical problems from the real world
DD 4, communication
write a document, discuss with colleagues during the project.
DD 5, lifelong learning skills
the laboratory project will allow students to communicate clearly and convincingly the design choices made and work effectively as part of a team
Programma
Principles of Bayesian learning. Quantifying uncertainty using probabilities. Likelihood, prior and posterior distributions: Bayes ’ Theorem for learning from data. Bayesian estimation and hypothesis testing. Posterior mean and variance, maximum a posteriori (MAP) estimate, posterior intervals, prediction, Bayes factor.
Basic models. Bayesian learning for proportions (Bernoulli model- Beta prior). Inference for mean and variance in normal model (Normal Gamma prior). Inference for count data (Poisson model Gamma prior). Generalizations: conjugate priors.
Statistical Computing. Introduction to R software for Bayesian analysis.
Monte Carlo Methods. Why sampling methods are needed: intractable integrals and sums. Monte Carlo integration. Importance sampling. Monte Carlo Markov Chain. Practical examples and implementation in R and JAGS.
More complex models. A selection among these subjects: mixture of normal distributions and clustering (Expectation Maximization, Gibbs sampling), Bayesian linear regression models, classification (naive Bayes). Basics of Bayesian reliability models. Practical examples using JAGS.
Applications to real data. Electrical load forecasting and electricity demand, Bayesian optimization for efficient uncertainty quantification in complex electrical/electronic systems. Example dealing with climate chainging (SDG12).
Modalità d'esame
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam consists in the presentation of a statistical project. As a general rule, the projects will be developed in teams (2/3 persons) and discussed with the teacher during the course. Projects are focused on the statistical analysis of a dataset, using Bayesian tools and models. Data to analyze will be arranged together by the team and the instructor.
Each students’ team must hand over a project report (10-15 pages); the project illustration should be presented using slides on a laptop (about 20 minutes for each team).
The oral presentation of the final project is expected to be around 20/25 minutes. All the students of a group need to present some part of the projects. For the oral presentation slides are encouraged. During and after the presentation the teachers will ask some questions, possibly to a specific student of the group. Questions can be both on the presentation and on some topic of the course.
3 additional points will be given to two calssworks assigned during the course. The homeworks are not demanding to pass the examination.
With reference to Dublin Descriptors (presented above):
- Data analysis and elaboration of the written report ( DD1,DD2,DD3 )
- Oral presentation of the Project ( DD3,DD4,DD5 )
-Questions during the project presentation ( DD1,DD2 )
Testi di riferimento
Jean-Michel Marin, Christian Robert, Bayesian Core: A Practical Approach to Computational Bayesian Statistics, Editore: Springer, Anno edizione: 2007, ISBN: 978-0-387-38983-7
Codice insegnamento 055283
BAYESIAN STATISTICS
1° semestre · 10 CFU · MATH-03/B · 0 file
The goal of the course is to enable students to understand and be familiar with model-based and simulation-based approaches to statistics. In particular, the course focuses on Bayesian learning, its tools and main…
Scheda dell'insegnamento
Obiettivi formativi
The goal of the course is to enable students to understand and be familiar with model-based and simulation-based approaches to statistics. In particular, the course focuses on Bayesian learning, its tools and main classes of models. This will enhance students’ abilities to address the statistical analysis of complex systems for which transversal and multidisciplinary skills are required. The Bayesian approach tells us how to update prior beliefs about parameters and hypotheses of a probabilistic model in the light of data, to yield posterior beliefs. In particular, Bayes' Theorem quantifies the problem of how to learn from data. Bayesian learning hinges on simulation methods, typically MCMC algorithms, to compute the posterior distribution.
The course adopts innovative teaching methods:
a data analysis project, as a part of the student assessment, to enhance specific soft skills such as Making judgements, Communication skills and Ability in learning ( 3 rd, 4 th and 5 th elements of the so-called European “Dublin Descriptors” – DD )
collaborative activities among students, some in small groups, and with continuous assessment of learning. This type of activity is in presence.
This is a 10 ECTS course, course code # 052499. However, there is a version of it (code # 052502, Bayesian Statistics, 8 ECTS). The only difference between the two courses is that the topics of the 8-credits course do not include neither topic 6 nor models for areal and point-referenced data in topic 7 (see the list of topics below).
For the LM program in Mechanical Engineering, there is a 5 ECTS course in Bayesian Statistics. In this case, the topics are only 1-4 from the list below.
On successful completion of the course, students will be able to:
understand the fundamental principles, tools and models of Bayesian Statistics (DD 1 - knowledge and understanding )
model simple engineering problems in terms of statistical problems using the Bayesian approach to update prior belief in the light of new data (DD 2 - Ability in applying knowledge and understanding )
select appropriate Bayesian tools to give statistical answers and use appropriate software ( R packages, JAGS, Stan, Python) for the computation of posterior inference, or to build this software by themselves (DD 2)
operate and communicate the choices made, making independent judgments, when using Bayesian tools for dealing with statistical problems from the real world (DD 3, 4 and 5)
work effectively as part of a team.
Programma
The first part of the course (topic 1) will enable students to understand foundational aspects of Bayesian Statistics (the choice of the prior, for instance), while in the second part (topics 2-7), after the introduction of Markov Chain Monte Carlo techniques for simulation from the posterior, students will be able to use specific statistical models for estimation, prediction or clustering.
1. Basics of Bayesian inference. Likelihood principle, prior and posterior distribution. Bayes' Theorem for dominated models. Posterior summary values. Interpretation of scientific inference via the Bayesian approach. Simple univariate Bayesian models. The three main inferential problem: point estimation, hypothesis testing, interval estimation: comparison between the frequentist and the Bayesian approach. Prior distributions. The choice of a prior distribution, noninformative priors, conjugate priors and their mixtures, semi-conjugate priors. Robustness. Exchangeability and de Finetti's representation theorem for exchangeable sequences. Implications of de Finetti's theorem on the Bayesian approach. Predictive inference. Asymptotic results on the posterior distribution.
2. Simulation methods for Bayesian Statistics. A quick recap on the theory on general state space Markov chains. Markov chain Monte Carlo methods. Gibbs sampler and Metropolis-Hastings algorithms for computing posterior inference. Implementing Markov chain Monte Carlo: software for Markov chain Monte Carlo (BUGS/JAGS from R), assessing convergence and run-length.
3. Goodness-of-fit and model choice. AIC, BIC, DIC, Predictive Bayesian tail probabilities, log-pseudo marginal likelihood (LPML), WAIC; prior and posterior distributions for the model index, maximum a posteriori (MAP) model selection.
4. Bayesian linear models and generalized linear models. Hierarchical linear models with random effects. Parameter estimation and covariate selection.
5. Bayesian survival analysis / reliability with censored data. Regression models: accelerated failure time and proportional hazards models.
6. Bayesian nonparametric models. The Dirichlet process and generalizations. Bayesian nonparametric mixture models, with application to density estimation and clustering.
7. Introduction to models for longitudinal data, time series, spatial data (point-referenced and areal data).
Within the Innovative teaching activity, we include 2 classes (4h + 4 h) in presence, during which students will be required to do exercises for designing and implementing (using Python or R software) algorithms for simulation, supervised by tutors and the teaching assistant. This type of active learning will include continuous assessment of learning.
The oral exam consists in the presentation of the project (in groups), focusing on a statistical problem with data, using Bayesian models, to enhance students’ soft skills such as Making judgements, Communication skills and Ability in learning. There will be intermediate revisions of the projects (this is a group activity), where the groups will discuss with tutors, TA and instructors, in presence. This type of active learning will include continuous assessment of learning.
The list of topics for the course with code # 052502, 8 ECTS, do not include topic 6 nor models for areal and point-referenced data in topic 7.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
The exam consists of two parts: a written exam and a project work (with a final oral presentation). It is compulsory to register for the written exam, which is scheduled twice in January-February, twice in June-July, and one in September.
The final project assessment is the presentation of the work on project, i.e. analyzing a statistical problem with data, using Bayesian tools and models. The projects will be developed in teams. The evaluation of the projects will be based on the revisions (activity in presence - at most two) the teams will undergo during the course and a conclusive presentation. During the conclusive presentation, each students’ team must hand over a project report (10-20 pages).
Participation in presence to the revisions and the final presentation is compulsory for all team members, but for Erasmus students.
If, at the beginning of the semester, the student understands he will not be able to actively participate in the group project during the semester for any reason, the student is allowed to discuss an individual project after passing the written test, instead of the group project. Because the student will not be tested on all the Expected Learning Outcomes (Risultati di apprendimento attesi), the final grading of the individual project cannot be larger than 26/30.
To obtain a positive final mark, the student should pass with a grade greater or equal than 18/30 for both parts of the exam.
Final grading: 40% written exam, 60% project work.
After the exam:
the student will know the fundamental principles, tools and models of Bayesian Statistics (DD1),
he/she will be able to apply the acquired knowledge to statistical problems from the real world (DD2),
making independent judgments, the student will operate and communicate the choices made, when using Bayesian tools to solve statistical problems from the real world (DD3,DD4,DD5).
Testi di riferimento
Rosner, G. L., Laud, P. W., Johnson, W. O., Bayesian Thinking in Biostatistics, Editore: Chapman and Hall/CRC, Anno edizione: 2021
Guglielmi, Lecture Notes
Jackman, S., Bayesian analysis for the Social Sciences, Editore: Wiley, Anno edizione: 2009, ISBN: 978-0-470-01154-6
Andrew Gelman et al., Bayesian Workflow, Editore: Taylor and Francis
Lunn D., Jackson C., Best N., Thomas A., Spiegelhalter D., The BUGS book, Editore: CRC Press, Anno edizione: 2013, ISBN: 978-1-58488-849-9
Hoff, P., A first course in Bayesian Statistical Methods, Editore: Springer, Anno edizione: 2009, ISBN: 978-0-387-92299-7
Mueller, P., Quintana, F., Jara, A., Hanson, T., Bayesian Nonparametric Data Analysis, Editore: Springer, Anno edizione: 2015
Christensen, R., Johnson, W., Branscum, A., Hanson, T.E., Bayesian Ideas and Data Analysis, Editore: CRC Press, Anno edizione: 2011, ISBN: 978-1-4398-0354-7
Codice insegnamento 052499
BIOMOLECULAR MODELLING LABORATORY (a)
1° semestre · 5 CFU · IBIO-01/A · 0 file
The course provides the theoretical and practical foundations of biomolecular modelling, with particular emphasis on molecular dynamics simulations as tools for the study, analysis, and design of biomolecular systems.…
Scheda dell'insegnamento
Obiettivi formativi
The course provides the theoretical and practical foundations of biomolecular modelling, with particular emphasis on molecular dynamics simulations as tools for the study, analysis, and design of biomolecular systems. The course connects molecular-scale structure and dynamics with problems such as protein stability, molecular recognition, protein engineering, biomaterials, nanobiotechnology, drug delivery, and biomedical or biotechnological applications.
Students learn how biomolecular structures are obtained, predicted, represented, simulated, and critically interpreted. The laboratory-based structure of the course allows students to move from theoretical principles to computational practice: selecting molecular models, preparing simulation systems, running simulations, analyzing trajectories, and evaluating the reliability and limitations of the results. Through journal club and group project activities, students develop the ability to use computational modelling in applied research and design workflows, integrating scientific literature, quantitative analysis, and technical communication.
At the end of the course, the student:
Knows and understands the molecular basis of biomolecular structure, dynamics, and interactions, and can explain the theoretical principles of molecular mechanics, force fields, molecular dynamics, enhanced sampling, coarse-grained modelling, and protein design.
Is able to apply biomolecular modelling methods by setting up, running, visualizing, and analyzing molecular simulations of proteins and related biomolecular systems using common computational tools.
Is able to extract and interpret molecular descriptors such as structural stability, flexibility, secondary-structure changes, hydrogen bonds, salt bridges, molecular contacts, diffusion, binding-related interactions, and effects of mutations.
Is able to critically assess the assumptions, approximations, strengths, and limitations of computational models, and to judge whether a modelling strategy is appropriate for a given biomolecular or biomedical question.
Is able to analyze scientific literature, work in a team on a computational project, and communicate modelling methods, results, uncertainty, and conclusions clearly in English.
Programma
Role of biomolecular modelling in the molecular-level understanding, prediction, design, and interpretation of biomolecular systems.
Protein structure and function: amino acids, folding, stability, structure-function relationships, and relevance to protein engineering and biomedical applications.
Experimental and computational biomolecular structures: X-ray crystallography, NMR, cryo-EM, Protein Data Bank, homology modelling, AlphaFold and its limitations.
Molecular mechanics and force fields: bonded and non-bonded interactions, electrostatics, van der Waals interactions, atom types, parametrization, transferability, and empirical approximations.
Molecular dynamics workflow: system preparation, solvation, ions, periodic boundary conditions, energy minimization, equilibration, production simulations, and trajectory generation.
Running MD simulations: Newtonian dynamics, numerical integration, time step selection, thermodynamic ensembles, temperature and pressure control.
Analysis of molecular simulations: RMSD, RMSF, secondary structure, hydrogen bonds, salt bridges, native contacts, molecular interactions, diffusion, self-assembly, and stability indicators.
Advanced modelling approaches: enhanced sampling, steered MD, metadynamics, free-energy concepts, alchemical transformations, mutation and binding free-energy estimates.
Beyond atomistic MD: coarse-grained modelling, MARTINI, Monte Carlo sampling, Rosetta, protein design, and modelling strategies for larger time and length scales.
Practical computational laboratory: molecular visualization, Linux/virtual-machine environment, VMD, MD setup, simulation execution, and trajectory analysis.
Journal club and group project on biomolecular modelling topics with application-oriented relevance.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The final grade is based on the evaluation of both theoretical understanding and practical modelling skills:
Journal club presentation: 10%. Students present and discuss a scientific paper related to biomolecular modelling and its application-oriented relevance.
Group project development and presentation: 30%. Students carry out a computational modelling project, analyze the results, discuss the relevance of the findings, and answer questions.
Final written exam: 60%. The exam includes multiple-choice and open questions on the theoretical and practical contents of the course.
The assessment verifies the student’s ability to understand modelling principles, apply computational workflows, interpret molecular simulation data, evaluate model reliability and limitations, and communicate results in a scientifically sound and application-oriented way.
Codice insegnamento 052381
BIOMOLECULAR MODELLING LABORATORY(a)
1° semestre · 5 CFU · IBIO-01/A · 0 file
CODE TRANSFORMATION AND OPTIMIZATION
2° semestre · 5 CFU · IINF-05/A · 0 file
Code Transformation and Optimization In modern computer science and engineering, code transformation techniques are critical to achieve the combined goals of combining programmer productivity and program execution…
Scheda dell'insegnamento
Obiettivi formativi
Code Transformation and Optimization
In modern computer science and engineering, code transformation techniques are critical to achieve the combined goals of combining programmer productivity and program execution efficiency in terms of time and energy. Yet, it is a skill mastered by few – there are less than 1.5 compiler construction expert for every 1000 software engineers, but almost 2 jobs in compilers for every 100 in software engineering!
The course is designed to provide an overview of code transformation, analysis and optimization techniques needed to effectively produce optimized code.
To compiler and EDA tool engineers, the course provides the basic tools to design and implement compilers and other code transformation and analysis tools, as well as an introduction to the most popular modern compiler framework, LLVM.
To software engineers, the course provides a grounding in system software design and development, as well as insights on the benefits and limitations of automation in software engineering. Moreover, as a compiler is a paramount of complex software systems, it provides a hands-on introduction to the design and implementation process for such systems. Finally, many advanced software engineering techniques such as program slicing are implemented on top of algorithms used in compiler construction.
To computer architects and embedded software engineers, the course provides crucial insights on the power and limits of compiler optimization, as well as to the need any processor architecture has of appropriate compilers.
To all computer science students, the course provides a “behind the scenes” view of the operation of software, and its automated manipulation – understanding compilers means being able to write better, more efficient code.
Dublin Descriptors
Expected Learning Outcomes
Knowledge and understanding
Understand the internal structure of a real-world compiler as a pipeline of passes, including its main components (front-end: parser, lexer; mid-end: optimizers; back-end: code generator, register allocator, instruction scheduler).
Understand the effectiveness and limitations of code analysis and optimization techniques (focusing in particular on loop transformation and data flow analysis)
Understand the main issues related to the linking phase
Applying knowledge and understanding
Be able to construct a full compiler for a toy language, generating assembly code for a RISC architecture.
Get familiarity with the LLVM compiler framework (an industry-grade, open source compiler).
Making judgements
Analyse and understand the effectiveness of specific code analysis and transformation techniques.
Define the architecture of a compiler framework and/or of specific compiler passes within a give infrastructure.
Understand the pitfalls and tradeoffs of compiler development (e.g., ease of debugging vs global performance optimization).
Communication
Develop the ability to communicate complex algorithmic concepts within a short timeframe.
Lifelong learning skills
Learn how to develop in practice a large scale project, understanding the importance of early assessing pitfalls and tradeoffs in development.
Programma
Introduction to Compiler Construction
Why compiling? Compilers vs interpreters
When to compile? JIT, AOT and static compilers
What to compile? Compilation units
Where to compile? Cross-compilation and split compilation
Overview of a compiler framework
Lexical analysis & parsing (review)
Statement and Data Structure Lowering
Optimization: machine independent and machine-dependent
Code Generation
Reading: Compiler Construction
Intermediate Representations
The Abstract Syntax Tree
Basic Blocks and branches
The Control Flow Graph
The Static Single Assignment Form
Reading: Program Dependence Graph
Reading: The LLVM Compiler Framework
Semantic Analysis & Type Checking
Symbol Tables
Type Checking
Runtime Organization
Data Memory layout
Activation Records
Dynamic Memory allocation
Reading: Garbage Collection
Code Generation
Code generation techniques: CISC and RISC processors
Low-level optimization techniques
Reading: Low-level Optimization
Dataflow Optimization
Principles and Fixed Point Computation
Applications
Reaching Definitions
Liveness Analysis
Constant Propagation
Reading: Dataflow Optimizations
Register Allocation
When to allocate registers
Graph Coloring
Linear scanning
Reading: Linear Scan Register Allocation
Parallelization and other optimization techniques
Instruction Scheduling
Loop Optimization (Software Pipelining, Loop Unrolling)
Limits to optimization: the aliasing problem
Reading: Program Optimization
Reading: Alias Analysis
Reading: Cache Optimization
Advanced Topics
Advanced Optimization Techniques: Polyhedral Transformations
The LLVM Compiler Framework
Laboratory
The sessions will be organized as follows:
Recursive descent language parsing
Transforming the Abstract Syntax Tree into a Control Flow Graph
Design and implementation of the symbol table
Function call translation
Liveness analysis
Register allocation (linear scan)
ARM code generation (table-based)
Readings
The papers presented in this bibliography are mostly for those who wish to get deeper insight on a specific topic.
Compiler Construction
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation, by C. Lattner and V. Adve.
Intermediate Representations
The Program Dependence Graph and Its Use in Optimization, by J. Ferrante et al.
The Basic SUIF Programming Guide, by G. Aigner et al.
Alias Analyis
Interprocedural pointer alias analysis, by M. Hind et. al.
Register Allocation
Linear Scan Register Allocation, by M. Poletto and V. Sarkar.
Optimization
Compiler Transformations for High-Performance Computing, by D. Bacon et al.
Cache Optimization
A Retrospective: A Data Locality Optimizing Algorithm, by M. S. Lam.
Garbage Collection
Uniprocessor Garbage Collection Techniques: a complete survey of Garbage Collection by P. Wilson.
Modalità d'esame
Prova orale facoltativa (a scelta dello studente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, con revisioni periodiche, con presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
Assessment
Evaluation is performed through a combination of oral exam and project work.
Type of Assessment
Description
Dublin descriptors
Oral Exam
The oral exam consists of a discussion of the topics covered in the course, including theoretical questions and questions aimed at assessing the ability of the student to connect different topics within the course syllabus.
1,2,3,4,5.
Assessment of laboratorial artefacts
The project work can be taken in groups of one to three students, and in the following two modes:
An independent project activity, consisting in the implementation of an optimization or analysis pass in the LLVM compiler framework (suggested only for students with previous experience in C/C++ programming);
A supervised project activity, consisting in the implementation of a compiler for a toy language targeting the ARM assembly language.
2,3,4,5.
Testi di riferimento
Andrew Appel with Jens Palsberg, Modern compiler implementation in Java, Editore: Cambridge University Press, Anno edizione: 2002
Note: The similar, but earlier, book "Modern compiler implementation in C" by Appel is available online for free download.
Aho, Lam, Sethi, and Ullman, Compilers: principles, techniques and tools, Editore: Prentice-Hall, Anno edizione: 2006
Note: We use only Chapter 11
Codice insegnamento 090957
COMPLESSITÃ NEI SISTEMI E NELLE RETI
1° semestre · 5 CFU · IINF-04/A · 0 file
Il corso ha lo scopo di illustrare metodi e algoritmi per l'analisi di sistemi complessi, vale a dire sistemi composti da un numero elevato di unità tra loro interagenti. Rientrano in questa categoria, a titolo di…
Scheda dell'insegnamento
Obiettivi formativi
Il corso ha lo scopo di illustrare metodi e algoritmi per l'analisi di sistemi complessi, vale a dire sistemi composti da un numero elevato di unità tra loro interagenti. Rientrano in questa categoria, a titolo di esempio, le reti sociali e quelle infrastrutturali per la distribuzione di energia, materia o informazione, le reti di transazioni economico-finanziarie e quelle di interazione biologica (p.e. proteine e processi metabolici), gli ecosistemi e le flotte di agenti (naturali o artificiali) coordinati. Il corso illustra dapprima un insieme di strumenti per l'analisi e la caratterizzazione della struttura delle reti, per poi considerare i fenomeni emergenti dall'interazione di sistemi dinamici attraverso la rete. Ogni argomento sarà trattato sia dal punto di vista teorico che attraverso la discussione di esempi applicativi.
Descrittori di Dublino
Risultati di apprendimento attesi
Conoscenza e comprensione
A seguito del superamento dell’esame lo studente conosce:
I principali problemi, i metodi di analisi, e gli algoritmi fondamentali per l’analisi delle proprietà topologiche di una rete complessa.
I principali problemi, i metodi di analisi, e gli algoritmi fondamentali per l’analisi delle proprietà dinamiche di un insieme di sistemi tra loro interagenti (sistemi complessi).
Capacità di applicare conoscenza e comprensione
Attraverso la teoria, le esercitazioni e i casi applicativi analizzati, e a seguito del superamento dell’esame, lo studente acquisisce la capacità di applicare i metodi e gli algoritmi appresi a casi reali, per quanto di complessità limitata.
Abilità comunicative
A seguito del superamento dell’esame, in particolare della prova integrativa, lo studente è in grado di comunicare in modo chiaro i contenuti di una ricerca scientifica, evidenziando i metodi che sono stati adottati e i risultati ottenuti.
Capacità di apprendimento
A seguito del superamento dell’esame, lo studente acquisisce la capacità di apprendere in maniera autonoma argomenti legati alle tematiche generali affrontate durante il corso.
Programma
Introduzione allo studio della complessità nei sistemi e nelle reti
Reti complesse:
Distanze, diametro, clustering, distribuzione di grado
Modelli di rete: random, scale-free, small-world
Misure di centralità: closeness, betweenness, PageRank
Analisi di comunità e core-periphery
Robustezza infrastrutturale: resilienza e tolleranza ai guasti
Sistemi complessi:
Robustezza infrastrutturale: propagazione di guasti
Processi di diffusione in rete
Reti di sistemi dinamici
Dinamiche collettive: consenso e sincronizzazione
Per ulteriori informazioni si rimanda alle pagine personali del docente ( https://piccardi.faculty.polimi.it/csr.html ), dove sono anche disponibili le slide usate a lezione e vari articoli di approfondimento.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), individuale, senza revisioni periodiche, con presentazione/discussione finale
L'esame consiste in una prova teorica scritta (esercizi + domande teoriche a risposta 'aperta' e 'chiusa') alla quale viene assegnata una valutazione massima di 32 punti. Lo studente non ha la facoltà di richiedere una prova orale, che è invece a discrezione del docente qualora, in casi particolari, voglia verificare l'effettiva preparazione dello studente.
La prova integrativa (progetto) è facoltativa e riservata agli studenti frequentanti (il docente specificherà le modalità di verifica della frequenza): su richiesta, allo studente viene assegnato un articolo scientifico, analizzato il quale dovrà preparare una presentazione orale supportata da slide, della durata di 10/15 minuti, che esporrà in aula. La prova integrativa ha una valutazione massima di 1.5 punti, i quali si sommano al risultato della prova teorica dando luogo al voto finale.
La seguente tabella mostra in dettaglio gli elementi che saranno considerati nella valutazione:
Modalità di verifica
Descrizione
Risultato di apprendimento perseguito (descrittore di Dublino)
· Prova teorica (scritta)
· Domande di carattere teorico a risposta aperta e chiusa sugli argomenti del corso
· Risoluzione di esercizi numerici
· 1,2,4,5
· 1,2
· Prova integrativa (orale)
· Presentazione del contenuto di articolo scientifico assegnato e discussione
· 1,2,4,5
Testi di riferimento
Albert-László Barabási, Network Science, Editore: Cambridge University Press, Anno edizione: 2016, ISBN: 1107076269
M.E.J. Newman, Networks: an Introduction, Editore: Oxford University Press, Anno edizione: 2010, ISBN: 978-0-19-920665-0
A. Pikovsky, M. Rosenblum, J. Kurths, Synchronization - A Universal Concept in Nonlinear Sciences, Editore: Cambridge University Press, Anno edizione: 2001, ISBN: 0-521-59285-2
Codice insegnamento 089194
COMPUTATIONAL BIOMECHANICS LABORATORY (b)
1° semestre · 5 CFU · IBIO-01/A · 0 file
The course introduces to the numerical techniques currently adopted to compute the mechanical response of solids and the fluid dynamics in complex systems. Within the course, the student will practice with numerical…
Scheda dell'insegnamento
Obiettivi formativi
The course introduces to the numerical techniques currently adopted to compute the mechanical response of solids and the fluid dynamics in complex systems. Within the course, the student will practice with numerical solvers aimed at structural and fluid-dynamics analysis. After theoretical and lab-training lectures, the students will work in small groups and apply the acquired knowledge and competences by developing numerical projects in the context of biomedical applications.
Important Note
This is a limited number access course. The mandatory procedure for access request is here:
www.ccsbio.polimi.it/laurea-magistrale/?lang=en#Laboratory_Courses_LAB_courses
Knowledge (DD1): students are expected to acquire notions on continuum mechanics, on numerical techniques to solve partial differential equations. They are also expected to understand the impact of modeling hypotheses and to use their knowledge on real problems.
Competences (DD2): by the end of the course, students are expected to be able to i) formulate and solve complex problems in the field of biomedical engineering, ii) apply engineering methods to the field of biology and biotechnology, use of two software packages that well represent the standard commercial solvers in the field of structural mechanics and fluid dynamics, respectively.
Autonomy and communication abilities: after the course, thanks to the experience of the proposed project, the students are expected to operate autonomous decisions about the definition of modelling strategies and design of devices (DD3) and to communicate the results of their activity in clear and concise manner (DD4).
Programma
The course is organized in two parts, focused on the analysis of structural mechanics through finite element modeling and on computational fluid dynamics through finite volume modeling, respectively. In both parts, students will be introduced to the computational methods implemented in a commercial code with a mix of lectures and tutorials. At the end of each part, students will develop a project working in small teams.
Part one: finite element modeling and structural mechanics
Solid mechanics and introduction to the finite element method: the governing equations of solid mechanics will be overviewed. Their weak form and the corresponding discretization and solution will be introduced. In details, standard displacement-based approach will be introduced together with discretization strategies of governing equations, numerical integration issues and algorithms for solution of linear and nonlinear problems.
Principles of solid mechanics simulations: the commercial package Abaqus will be introduced, the main steps for the problem solution including the boundary conditions, meshing algorithms and solution strategies will be reviewed for linear and nonlinear simulations.
Tutorials: by using Abaqus, students will train in teams on tutorials following a step-by-step guide.
Project: working again in team and using Abaqus, students will have to set and run an analysis to tackle a real-world problem. The problem to be simulated will be exhaustively described in terms of design specifications, but students will have to independently choose how to set their model. At the end of the project, each team will have to produce a report.
Part two: finite volume modeling and fluid dynamics
Introduction to fluid dynamics: the equations governing the conservation of mass, of linear momentum and of energy will be derived and discussed. Their weak form, its discretization and solution will be introduced based on the general scheme of convection-diffusion equations.
Principles of fluid mechanics simulation: lectures will describe:
- how to obtain the linear algebraic form of the field equations
- the iterative methods for algebraic system solution, the upwinding schemes, the pressure-velocity coupling algorithms
- how to check convergence and result accuracy.
Tutorials: the commercial package Ansys-Fluent will be introduced. The team of students will work on tutorials, devoted to introducing progressively more complex features of the software package, including the use of user-defined functions.
Project: working again in team and using Ansys-Fluent, students will have to set and run an analysis to tackle a real world problem. The problem to be simulated will be exhaustively described in terms of design specifications, but students will have to independently choose how to set their model. At the end of the project, each team will have to produce a report.
Important Note
This is a limited number access course. The mandatory procedure for access request is here:
www.ccsbio.polimi.it/laurea-magistrale/?lang=en#Laboratory_Courses_LAB_courses
Modalità d'esame
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
Students will be evaluated at the end of the course on the basis of the two reports (one for solid mechanics FEM group-project and one for CFD finite volumes group-project) produced within the end of the course and of a personal oral examination (presentation&discussion of the projects considering connections with the theoretical aspects of methods) during the exam session. The final mark will be the average of the marks of each report and of the oral examination (note that all three marks must be greater than or equal to 18/30).
Codice insegnamento 052375
COMPUTATIONAL BIOMECHANICS LABORATORY(b)
1° semestre · 5 CFU · IBIO-01/A · 0 file
COMPUTATIONAL STATISTICS
1° semestre · 5 CFU · MATH-05/A · 0 file
This is a course about exploring random systems using computer simulations. Indeed, almost every mathematical model describing systems or phenomena of interest is hampered by uncertainties, although very often…
Scheda dell'insegnamento
Obiettivi formativi
This is a course about exploring random systems using computer simulations. Indeed, almost every mathematical model describing systems or phenomena of interest is hampered by uncertainties, although very often uncertain features or inputs are not accounted for.
The goal of the course is to introduce computational tools aiming at: (i) describing uncertainty sources in general systems, with special emphasis on differential models, and (ii) analyzing the impact of uncertainty on systems ’ outcomes, in terms of both uncertainty propagation from inputs to outputs, and input parameter estimation from noisy observations. A wide range of additional techniques enabling uncertainty quantification for complex problems will also be considered such as, e.g., surrogate models, reduced-order models for differential problems, multi-fidelity and neural network-based strategies, data-driven dynamical systems, thus providing also a general introduction to recent paradigms in scientific machine learning.
Both versions of the course have the following common learning goals:
- At the end of the course students are expected to be able to simulate statistical models - and run with Python - computational experiments aimed at: describing possible sources of uncertainty, quantifying the impact of uncertainty on numerical models, sampling from distributions of quantities of interest involving the simulation of physics-based models, applying Monte Carlo methods and their extensions, performing parameter estimation, building surrogate or reduced-order models by handling neural network-based or GP regression models.
- Leveraging on their engineering forma mentis and on the skills in computational statistics acquired in the course, students are expected to be able to evaluate the practical and statistical significance of the outcome of their numerical simulations, to quantify its uncertainty, and to propose efficient and reliable strategy to reduce computational complexity.
- Students are expected to be able to communicate and transfer the results and interpretations of their computational experiments using effective graphical or analytical means, suitable for the problem at hand and the findings of the analysis.
Moreover, the students of the 8 CFU version of the course are expected to have a basic understanding of further topics related with data assimilation, sensitivity analysis, and data-driven dynamical systems.
Programma
The course is organized in a series of lectures that also include practical lab sessions. Lectures will provide the theoretical background; practical Lab sessions will provide algorithms' implementation and examples of application of the considered methodologies by using Python codes.
Part 1. Monte Carlo methods & Stochastic Simulation
Generating random samples from simple distributions (inversion method, transformations), acceptance-rejection sampling.
Generating random fields. Karhunen-Loève expansion.
Monte Carlo methods
Variance reduction techniques: antithetic variables, importance sampling, control variates, stratification, latin hypercube sampling.
Quasi Monte Carlo methods
Part 2. Surrogate models & Scientific Machine Learning
Dimensionality reduction: singular value decomposition
Gaussian processes & GP regression
Neural Networks (e.g., autoencoders & variational autoencoders)
Projection-based & deep learning-based Reduced Order Models
Data-driven Dynamical Systems: dynamic mode decomposition, sparse identification of nonlinear dynamics, extensions
Part 3. Sensitivity analysis & forward Uncertainty Quantification
Sensitivity analysis of multiple parameters: one-at-a-time, elementary effect methods, variance-based methods. Nonparametric methods.
Uncertainty propagation through Monte Carlo methods. Application to differential models.
Multi-level Monte Carlo and multi-fidelity Monte Carlo methods
Part 4. Data assimilation & inverse Uncertainty Quantification
Statistical inverse problems: a Bayesian setting for parameter estimation.
Monte Carlo Markov Chain methods. Application to differential models.
Data assimilation: Gaussian Filtering (Kalman filters, extensions, particle filters). Application to differential models.
Dynamic Bayesian Networks. Predictive Digital Twins
Modalità d'esame
Prova orale obbligatoria
The oral exam covers the content of both theoretical lectures and practical Lab sessions, according to the sizing (5CFU/8CFU) of the course.
During the exam, students are required to present the detailed solution of two selected assignments (among a list of assignments proposed during the practical Lab sessions), commenting both the numerical results obtained and the computational procedures employed, and to answer to theoretical questions related with the topics of the course.
Assignments will require students to apply, adapt, or extend some of the methods presented during the course to selected case studies. The assignments will be evaluated during the oral examination and must be submitted to the examiners by the deadline communicated during the classes.
Theoretical questions will assess students' knowledge of the methodologies covered throughout the course. During the examination, students will first be required to sketch written answers to the theoretical questions, before presenting and discussing them with the examiners.
In the 5+3CFU form, a n additional assignment has to be carried out, which might also take the form of a critical analysis of a recent scientific paper related to the course's topics.
The course will be based on a selection of chapters of the following books, class notes, and some selected scientific papers provided:
Testi di riferimento
Ralph C Smith, Uncertainty Quantification: Theory, Implementation, and Applications, Editore: SIAM, Anno edizione: 2013
Steven L. Brunton, J. Nathan Kutz, Data-driven Science and Engineering. Machine Learning, Dynamical Systems, and Control, Editore: Cambridge University Press, Anno edizione: 2022
Jochen Voss, An Introduction to Statistical Computing. A Simulation-based Approach, Editore: John Wiley & Sons, Anno edizione: 2014
Andreas Krause, Jonas Hubotter, Probabilistic Artificial Intelligence arXiv:2502.05244
Mark Asch, Marc Bocquet, Maelle Nodet, Data Assimilation. Methods, Algorithms, and Applications, Editore: SIAM, Anno edizione: 2016
Kevin P. Murphy, Probabilistic Machine Learning: An introduction, Editore: MIT Press, Anno edizione: 2022 http://probml.github.io/book1
Codice insegnamento 055701
COMPUTER SECURITY - UIC 587
2° semestre · 5 CFU · IINF-05/A · 0 file
Modern computer systems routinely process high-value information, including financial and personal data, economic transactions, and intellectual property. At the same time, they are increasingly pervasive, continuously…
Scheda dell'insegnamento
Obiettivi formativi
Modern computer systems routinely process high-value information, including financial and personal data, economic transactions, and intellectual property. At the same time, they are increasingly pervasive, continuously available, and interconnected, making information security a major engineering challenge.
Security engineering is the discipline of designing and building secure systems. It is inherently interdisciplinary, combining cryptography, software engineering, network security, and political and social considerations.
This course provides a broad introduction to cybersecurity and to the methods used to design, validate, and ethically test security mechanisms. Lectures examine the main components of computer and information systems, with particular attention to their security subsystems. Students will analyze vulnerabilities, understand how they can be exploited, and learn how to prevent similar design and implementation errors.
Expected learning outcomes
Knowledge and understanding
Students will acquire broad knowledge of fundamental security technologies, their limitations, and common vulnerabilities and exploitation techniques.
Applying knowledge and understanding
Students will be able to identify and assess basic security issues in systems, networks, and applications; evaluate and improve proposed solutions; design high-level solutions to security problems; exploit simple application vulnerabilities in controlled environments; and develop basic patches.
Making judgements
Students will be able to comparatively evaluate security threats, vulnerabilities, mitigation mechanisms, and alternative solutions; reason about trade-offs; and assess risks in realistic scenarios.
Communication
Students will use appropriate terminology to explain security issues and justify security choices clearly.
Lifelong learning skills
Students will be able to update their knowledge independently and apply risk and security assessment principles to complex systems, including non-digital contexts.
Programma
1. Introduction to Information System Security
- Security properties (confidentiality, integrity, and availability), threats, attacker models, and security-engineering methodology.
2. Fundamentals of cryptography - Overview of cryptographic primitives (symmetric and asymmetric ciphers, signature schemes, message authentication codes, cryptographic hashes) and summary of their functionality
3. Authentication, authorization, and access control - Authentication and authorization mechanisms; discretionary (DAC), mandatory (MAC), and role-based (RBAC) access-control models.
4. Application and web security - Software exploitation: buffer overflows (in-depth) and other memory-corruption vulnerabilities (concepts, e.g. format string bugs, Return-Oriented Programming, Return to Lib C), stack protections, and mitigations (*)
- Web application security: major OWASP vulnerability classes, including injection and broken access control, with their exploitation and mitigation (*)
5. Network security - Stateful and stateless packet filtering
- Software-Defined Networking (SDN) and its security implications
6. Malware - The evolution of malware
- Botnets and the underground economy (essential concepts)
- Malware analysis
- Anti-analysis techniques
- Rootkits
- Mobile malware (essential concepts only)
The course follows a strong hands-on approach. Practical exercises are provided for all topics marked with (*) in the syllabus. A virtual hacking lab allows students to practise exploiting and securing computer applications in a controlled environment.
The course complements, rather than replaces, dedicated cryptography courses such as “095947 - CRYPTOGRAPHY AND ARCHITECTURES FOR COMPUTER SECURITY”. The overlap with these courses is minimal.
The course also provides the foundation for the more advanced security courses “056896 - OFFENSIVE AND DEFENSIVE CYBERSECURITY” and “062113 - HUMAN AND PHYSICAL ASPECTS OF SECURITY”.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment consists of a mandatory written test, graded out of 34 points, and, at the instructor’s discretion, a confirmatory oral test.
The written test consists of open questions and exercises that require students to apply theory and reasoning to use cases, code samples, network diagrams, and similar material. Students may answer in English or Italian. A large collection of past exams, many with solutions, is available on WeBeep.
The written test is graded on a 34-point scale. A score below 12 points is a failing grade («riprovato») under the exam regulations, and the student is not admitted to the following exam call. When required, the oral test is confirmatory and is used to verify the written-test result.
Optional homework and challenges, including activities in the virtual hacking lab, are intended solely for practice and self-assessment. They do not contribute additional points to the final grade. The maximum grade, including cum laude, can be obtained from the written test alone.
The written test is closed-book. Students may not consult course materials, notes, or other aids, and electronic devices are prohibited. Using or accessing unauthorized materials or devices, or communicating with other students, results in immediate removal from the exam and exclusion from the following exam call.
Type of assessment
Description
Dublin descriptor
Written test
Exercises requiring the analysis or design of security solutions for proposed use cases, including the exploitation of specific vulnerabilities. Graded out of 34 points; a score below 12 is a failing grade («riprovato») under the exam regulations.
1, 2, 3, 4, 5
Oral test (confirmatory)
Held at the instructor’s discretion to verify and confirm the result of the written test.
1, 2, 3, 4, 5
Testi di riferimento
Dieter Gollmann, Computer Security - 3rd edition, Editore: Wiley, Anno edizione: 2011, ISBN: 978-0-470-74115-3
Note: It is vital that you get the 3rd edition if you choose this book!
William Stallings, Lawrie Brown, Computer Security: Principles and Practice, Editore: Pearson
Ross Anderson, Security Engineering, Editore: Wiley, ISBN: 0-471-38922-6 http://www.cl.cam.ac.uk/~rja14/book.html
The Joy of Cryptography by Mike Rosulek https://joyofcryptography.com/
Note: An introductory cryptography textbook (freely available)
C. Anley, J. Heasman, F. Linder, G. Richarte, The Shellcoder's Handbook, Editore: Wiley
M. Howard, D. LeBlanc, Writing Secure Code, Editore: Microsoft Press
M. Mitchell, J. Oldham, A. Samuel, Advanced Linux Programming
Note: Chapter 10
Codice insegnamento 055633
DISTRIBUTED SYSTEMS
1° semestre · 5 CFU · IINF-05/A · 0 file
The course aims at describing the principles and paradigms that guide the design and development of modern distributed systems. The course identifies the issues to be resolved in developing a distributed system and it…
Scheda dell'insegnamento
Obiettivi formativi
The course aims at describing the principles and paradigms that guide the design and development of modern distributed systems. The course identifies the issues to be resolved in developing a distributed system and it describes the successfull approaches in addressing these issues, in terms of abstract models, algorithms, and case studies.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn the principles and paradigms that guide the design and development of modern distributed systems.
Applying knowledge and understanding
At the end of the course students will be able to identify the critical issues in developing a distributed system and to apply the distributed algorithms they learnt to solve them.
Making judgements
At the end of the course students will be able to evaluate and compare the various alternatives in designing and implementing a distributed system.
Communication
Students will learn how to describe a distributed algorithm and how to present their solution to the typical issues that arise during the design and development of a distributed system.
Learning skills
At the end of the course students will be able to autonomously learn new disributed algorithms and new methodologies and techniques to develop distriuted systems.
Programma
Specific topics addressed during the course:
Principles of concurrent programming for distributed systems
Modelling distributed systems
Basic communication facilities
Naming
Synchronization
Fault tolerance
Consistency and Replication
Security
Simulation
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The written exam includes open-ended questions covering the various topics discussed during the course, alongside numerical and design exercises. During the course, a group project will be assigned; students who wish to improve their written exam score may develop this project and present their work upon completion. Additionally, an oral exam may complement or substitute the written test at the professor's discretion.
The following table provides a detailed overview of the elements that will be considered in the various assessment activities.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems and exercises focusing on design aspects
Theoretical, open questions on the topics addressed during the course
1,2, 3, 4, 5
1, 4, 5
Assessment of laboratorial artefacts
Assessment of the project (optionally) developed by students
2, 3, 4, 5
Oral presentation
Assessment of the presentation of the project (optionally) developed by students and/or oral exam at the teacher's choice.
2, 3, 4, 5
Testi di riferimento
Andrew S. Tanenbaum, Maarten Van Steen, Distributed Systems: Principles and Paradigms (2nd Edition), Editore: Prentice Hall, Anno edizione: 2007
George Coulouris, Jean Dollimore, Tim Kindberg, Distributed Systems: Concepts and Design (4th Edition), Editore: Addison Wesley, Anno edizione: 2005, ISBN: 0321263545
Codice insegnamento 090950
EMBEDDED SYSTEMS
1° semestre · 5 CFU · IINF-05/A · 0 file
The goal of the course is to provide specific competencies and design methodologies needed to realize embedded applications including the choice of the technologies, the management of the design flow and the selection of…
Scheda dell'insegnamento
Obiettivi formativi
The goal of the course is to provide specific competencies and design methodologies needed to realize embedded applications including the choice of the technologies, the management of the design flow and the selection of the toolchain.
Such applications range from Cyber Physical Systems for consumer electronics to industrial and medical devices. In general, any consumer electronics product is an embedded system. Their design requires the coordination of cross competencies to identify the optimal solution under a number of aspects including flexibility, standardization, cost, size, energy and power, performance, etc.
The course aims at creating a valuable bridge to the best industrial practices, providing the competencies on: architectures for component-off-the-shelf and SoC based embedded systems exploiting sensors; communication and interfacing standards popular in the embedded system market, energy aware design of software and hardware including run-time management of the resources.
Hands-on lab sessions will be suggested to the students (participation is optional) to show how to use development boards to interface external sensors and peripherals. Case studies related to real products will be presented to make students aware on the real trade-offs to be considered.
To enhance the knowledge related to the development of software for embedded applications it is suggested to follow also the course Advanced Operating Systems.
At the end of the course, the students will be capable of analyzing an embedded application and moving from the requirements to the realization.
The goal is to become capable of coordinating the use of different skills and technologies in order to identify the best solution under a large variety of aspects such as flexibility, standardization, cost, size, power dissipation and performance, the methodological aspects related to the flow of the design, and so on.
It is expected that, especially during the development of the project, a significant skill in programming embedded systems will be acquired.
Knowledge and understanding (DdD 1)
The student will be able to analyze and understand the main requirements of an embedded application.
The student has a wide knowledge of the main technologies to design an embedded system.
The student has a clear view of the steps needed to realize an embedded application, from several standpoint including project management, cost analysis, selection of the toolset and of the platform for prototyping.
Apply knowledge and understanding ( DdD 2)
The student will be capable of analyzing a Hw/Sw embedded designs considering several performance metrics.
The student is capable to design the Hw/Sw architecture of an embedded systems interfaced with the real world, moving from the requirements to the realization.
The student has the capability to design energy aware systems submitted to cost and timing constraints.
The student, depending on the choice of a project work, will be capable of designing embedded software and/or hardware using market-available technologies.
The student can read technical documentation regarding microcontrollers and sensors used for embedded applications.
Making Judgements ( DdD 3)
Student will be asked to analyze a project work to improve the ability to analyze the functional and extra-functional characteristics of an embedded application, while autonomously looking for the best tradeoff in terms of selection of the Hw/Sw architecture and use of the development tools.
Communication (DdD 4)
Students will learn how to organize a research report, including the search and critical analysis of the state of the art, description of an innovative research idea with its positioning in the gernal scenerario of the pertaining scientific field, and final presentation through the support of slides of the investigation carried out.
Lifelong learning skills ( DdD 5)
The student will become capable of coordinating the use of different skills and technologies in order to identify the best solution under a large variety of aspects such as flexibility, standardization, cost, size, power dissipation and performance, the methodological aspects related to the flow of the design, and so on.
The student will be capable of navigating autonomously in the state of the art and market ready technologies suitable for the design of embedded applications.
Programma
The content of the course starts by systematizing the skills on hardware architectures, communication and basic software used for the realization of embedded systems, with reference to existing standards and to the peculiarities of the system to be designed. It is then shown how to run a design flow leading to an "optimal" solution both in terms of the constraints of traditional project (such as dissipated power or performance), and considering the impact that technological solutions have under the profile of the design flow (e.g., cost or development time).
Introduction and background
General characteristics of an embedded system.
Requirements and constraints for the different application fields.
Trends of the market and of the best design practices.
Development flow for Hw-Sw architectures.
Energy and power optimization.
Hardware platforms for Embedded Systems
Software executors: general purpose, dedicated processors, DSP, Network processors, Microcontrollers, Multi-Many cores and clusters.
Communication architectures: standard buses, Network-on-Chip (NoC), field buses, wireless interfaces, examples.
Hardware executors: characteristics of the application specific IC and related design flow, systems for fast prototyping, reconfigurable and updatable systems, examples of off-the-shelf (PCB-based) designs and wireless sensor networks.
Software architectures for Embedded Systems
Abstraction layers: assembler, library, system software, middleware.
Software development environment and toolchains for the realization of the embedded software
Introduction to the real-time operating systems: general features, scheduler, configuration, dynamic management of the resources, soft real time features, energy optimization and resource management.
Analysis of the embedded software: formalisms and tools for analysis/profiling of the code, energy optimization.
Examples: RT extension of Linux, Android, RTX, operating systems for wireless sensor networks, frameworks for run-time management of resources, Linux Device Drivers model.
Analysis and optimization of Hw/Sw Systems
Analysis of the project constraints and selection of the best implementing architecture with particular emphasis on realization time and cost.
Problems related to the estimation of Power/Thermal/Performance at the different abstraction levels
Optimization of power and performance at the different abstraction levels.
Analysis and modeling of thermal problems with particular attention to the multi-core architectures with NoC-based communication.
Management and planning of embedded systems: models for the development flow, design for resuse and estimation of hw and sw development time and cost, project management.
Case studies
Example of the analysis to be performed during a feasibility study.
Example of real designs at different granularities, from the wireless sensor networks to embedded application exploiting multiprocessor cores, systems with MEMS, software for white goods and automotive, certification.
In each of the use case the set of trade-offs to be considered will be highlighted.
Laboratory
Hands-on lab sessions will be proposed to the students (participation is optional) to show how to use development boards to interface external sensors and peripherals, as well as the development of desk researches on specific topics
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
Altro
The examination follows the official rules of the Politecnico di Milano and more information can be found on the web site of the lecturer.
In general, it is foreseen a mandatory written test with open theoretical questions and possibly some exercises (70% of the total score). In addition to this step, during the course it will be presented a set of possible topics for projects/desk-based researches, whose evaluation will be part of the final score (30%).
The goal is to check the skill of the student to organize the concepts presented during the course and to cooperate with other students to the development of representative case studies, mimicking real-life problems popular in embedded applications.
The written test is linked to the Dublin Descriptors: 1,2,5
The project/desk research is linked to the Dublin Descriptors: 2,3,4,5
Reporting and presentation is linked to the Dublin Descriptors: 1,3,4,5
Testi di riferimento
Slide & Papers
Note: see web site of the lecturer
Fornaciari, William, Soudris, Dimitrios (Eds.), Harnessing Performance Variability in Embedded and High-performance Many/Multi-core Platforms, Editore: Springer, Anno edizione: 2019, ISBN: 978-3-319-91962-1 https://www.springer.com/gp/book/9783319919614
Note: Only some chapter will be considered
Marwedel, Peter, Embedded System DEsign, Editore: Springer, Anno edizione: 2006, ISBN: 978-0-387-30087-0 https://www.springer.com/gp/book/9780387300870
Carlo Brandolese, William Fornaciari, Sistemi embedded -, Editore: Pearson, Anno edizione: 2007, ISBN: 9788871923420
Note: There exists alternative books in english
F.Vahid, T.Givaris, Embedded System Design - A unified Hardware/Software Introduction, Editore: Wiley, Anno edizione: 2002, ISBN: 978-0471386780
Codice insegnamento 056899
FINTECH
2° semestre · 5 CFU · STAT-04/A · 0 file
How can financial institutions turn data into better services, smarter investment tools, and more informed decisions? How do algorithms execute trades in modern markets? And what can blockchain bring to financial…
Scheda dell'insegnamento
Obiettivi formativi
How can financial institutions turn data into better services, smarter investment tools, and more informed decisions? How do algorithms execute trades in modern markets? And what can blockchain bring to financial services?
This course explores Fintech through the business and financial problems it can help solve. It combines essential theoretical foundations with a strong practical focus, connecting machine learning, algorithmic trading, and blockchain to concrete applications.
The course covers three complementary areas:
Machine Learning for Finance and Business (50%) — Learn to translate business questions into data-driven solutions through extensive hands-on work with datasets and Python notebooks. Applications include segmenting banking clients, identifying financial and insurance needs to support personalized recommendations, replicating investment portfolios, and building early warning systems to detect abnormal market conditions. Students explore data, develop and compare models, interpret results, and communicate their business implications.
Algorithmic Trading and Market Microstructure (25%) — Discover how modern financial markets operate and how algorithms support trade execution. Topics include limit order books, liquidity, market making, execution strategies, and price impact, with an emphasis on the practical constraints and trade-offs that shape trading decisions.
Blockchain and Digital Assets (25%) — Understand the foundations of blockchain and examine smart contracts, tokens, cryptoassets, stablecoins, and central bank digital currencies. Explore their potential applications and limitations, including the role of cryptoassets in investment portfolios.
Learning by doing is central to the Machine Learning component: students tackle business cases, experiment with alternative approaches, and present their findings. The emphasis is on developing the judgment to choose appropriate methods, assess their limitations, and connect analytical results to business decisions.
5-CFU version: Students complete the Machine Learning component and choose either Algorithmic Trading or Blockchain, tailoring the course to their interests.
Lectures and coding sessions will allow students to acquire the following competences:
- DD1 Knowledge and understanding
know some advanced concept of stochastic calculus, which are essential in quantitative finance;
know how to choose modeling assumptions to solve a financial problem properly. - DD2 Ability in applying knowledge and understanding
know how to write a code/algorithm to solve a financial problem, exploiting the developed theoretical knowledge. - DD3 Making judgements
find proper modeling assumption to describe a financial asset (like interest rate, volatility, commodities, etc.);
be able to judge the possible financial risks raising from using wrong modeling assumption (like misprice of financial products). - DD4 Communication skills
to be able to express mathematical and financial concepts in a clear and rigorous way.
Programma
Machine Learning for Finance and Business (50%)
Core concepts and methods: supervised and unsupervised learning; clustering, classification, and regression; decision trees, random forests, and neural networks; model evaluation and interpretability; introduction to reinforcement learning and its financial applications.
Hands-on business cases using datasets and Python notebooks:
Customer segmentation: identify client profiles and build data-driven personas to support tailored financial services.
Needs estimation and personalized recommendations: use customer data to identify financial and insurance needs and support next-best-action decisions.
Portfolio replication: use observed returns to construct portfolios that track an investment strategy or index.
Early warning systems: detect abnormal market conditions to support risk monitoring and investment decisions.
Practical activities cover data exploration and preparation, model development and comparison, interpretation of results, and communication of business implications.
Algorithmic Trading and Market Microstructure (25%)
Market participants and trading venues; limit order books and order types; liquidity, bid–ask spreads, and market making; adverse selection; execution algorithms, including TWAP and VWAP; transaction costs and price impact; technological aspects of algorithmic trading. Connections with reinforcement learning for sequential trading and execution decisions.
Blockchain and Digital Assets (25%)
Blockchain foundations: hash functions and Merkle trees, transactions, distributed consensus, and mining. Bitcoin and wallets. Smart contracts, tokens, and initial coin offerings. Stablecoins and central bank digital currencies (CBDCs). Financial characteristics of cryptoassets and their role in portfolio allocation. Business applications and limitations of distributed ledger technologies.
5-CFU version: The Machine Learning component is combined with either Algorithmic Trading or Blockchain.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, senza presentazione/discussione finale
The exam consists of:
a) projects on the ML topics;
b) written theoretical exam.
The objective of projects is to let students work in groups, applying the approaches and principles taught in class. Projects will be assigned through the semester. Project artifacts are expected to be released at fixed deadlines that will be defined by the time the project will be assigned. The evaluation of projects will be based on the produced artifacts (documentation, code, …).
The written theoretical exam is mandatory.
The exam has the goal of checking whether the student has acquired the following skills:
- knowledge of advanced concepts of stochastic calculus, which are essential in quantitative finance;
- knowledge of how to choose modeling assumptions to solve a financial problem properly;
- ability to write a code/algorithm to solve a financial problem, exploiting the developed theoretical knowledgements;
- ability to find proper modeling assumption to describe a financial asset (like interest rate, volatility, commodities, etc.);
- ability to express mathematical and financial concepts in a clear and rigorous way.
Codice insegnamento 059442
FONDAMENTI DI RICERCA OPERATIVA
1° semestre · 5 CFU · MATH-06/A · 0 file
Il corso presenterà alcune metodologie di base della Ricerca Operativa, la disciplina che studia come applicare il metodo scientifico e gli strumenti e i metodi quantitativi alla soluzione dei problemi decisionali. Il…
Scheda dell'insegnamento
Obiettivi formativi
Il corso presenterà alcune metodologie di base della Ricerca Operativa, la disciplina che studia come applicare il metodo scientifico e gli strumenti e i metodi quantitativi alla soluzione dei problemi decisionali. Il corso porrà particolare attenzione agli aspetti modellistici ed algoritmici che emergono nella soluzione di problemi decisionali in ambito ingegneristico.
A seguito del superamento dell'esame lo studente deve:
- conoscere le principali tipologie di variabili decisionali, vincoli e funzione obiettivo usati nella programmazione lineare
- conoscere le proprietà fondamentali della programmazione lineare e della dualità
- conoscere alcuni metodi di soluzione di problemi di programmazione lineare e le loro proprietà
- conoscere i problemi su grafo trattati nel corso, le loro proprietà e i relativi algoritmi di risoluzione
- conoscere alcune metodologie (tagli di Gomory e branch and bound) per la soluzione di problemi di programmazione lineare a variabili intere
- conoscere i principi di base della complessità computazionale
- essere in grado di riconoscere le decisioni, i vincoli e l'obiettivo che descrivono un problema decisionale e di rappresentarli con un modello di programmazione lineare
- essere in grado di applicare i metodi di soluzione per problemi di programmazione lineare a piccoli esempi
- essere in grado di riconoscere i diversi problemi su grafo e di individuare e applicare l'algoritmo più adatto alla loro soluzione
- essere in grado di applicare i metodi studiati per la programmazione lineare a variabili intere (tagli di Gomory e branch and bound) a piccoli esempi
- essere in grado di applicare le conoscenze teoriche acquisite per rispondere a semplici quesiti
Programma
1. Introduzione: Problemi decisionali, esempi e caratteristiche. Tipologia dei modelli di ottimizzazione (programmazione matematica). Modelli di programmazione lineare e lineare intera: variabili, vincoli e funzione obiettivo.
2. Programmazione lineare: Forme equivalenti, aspetti geometrici e algebrici. Proprietà fondamentali della programmazione lineare. Teoria della dualità: dualità debole e forte, condizioni degli scarti complementari. Condizioni di ottimalità. L'algoritmo del simplesso per problemi in programmazione lineare.
3. Problemi di ottimizzazione su grafi e reti. Problema dell'albero di supporto di costo minimo, algoritmi di soluzione. Problema dei cammini minimi: algoritmi di soluzione. Problema del flusso di valore massimo: algoritmo di Ford-Fulkerson, teorema del flusso massimo e taglio minimo.
4. Programmazione lineare intera: Metodi di risoluzione esatti. Metodo dei piani di taglio con tagli di Gomory. Metodo di Branch & Bound e tecniche per ottenere le stime dell'ottimo. Cenni sulla teoria della complessità computazionale.
Attività di laboratorio
Si prevede lo svolgimento di esercitazioni in Laboratorio di Informatica con l'introduzione di software per la modellizzazione e la risoluzione dei problemi di programmazione matematica.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
La prova scritta include:
- esercizi sulla risoluzione di problemi allo scopo di verificare la capacità di applicare correttamente i metodi studiati;
- domande di carattere teorico sugli argomenti del corso allo scopo di verificare la conoscenza delle proprietà e dei principi studiati.
Possono venire proposti quesiti brevi fruibili solo durante l'erogazione del corso.
Testi di riferimento
appunti del docente (disponibili sulla pagina Beep del corso)
F. S. Hillier, G. J. Lieberman, Ricerca Operativa: Fondamenti, Editore: McGraw-Hill
R.Tadei, F.Della Croce, Elementi di Ricerca Operativa, Editore: Esculapio
Codice insegnamento 083220
FOUNDATIONS OF OPERATIONS RESEARCH
1° semestre · 5 CFU · MATH-06/A · 0 file
Operations Research (O.R.) is the branch of applied mathematics dealing with quantitative methods to analyze and solve complex real-world decision-making problems. The course covers some of the fundamental concepts and…
Scheda dell'insegnamento
Obiettivi formativi
Operations Research (O.R.) is the branch of applied mathematics dealing with quantitative methods to analyze and solve complex real-world decision-making problems. The course covers some of the fundamental concepts and methods of O.R. pertaining to graph optimization, linear programming and integer linear programming. The emphasis is on optimization models and efficient algorithms with a wide range of important applications in engineering and management.
Knowledge and understanding (DdD 1)
The students will learn:
- the mathematical language of optimization models and some important classes of models
- the main properties and algorithms (including the worst case complexity) of/for the following graph optimization problems: minimum cost spanning tree, shortest path and maximum flow
- the critical path method for project scheduling
- the geometrical and algebraic aspects of Linear Programming (LP), and an LP algorithm
- the main properties of LP duality, including weak/strong duality and the complementary slackness optimality conditions
- the economical interpretation of the dual of some LP problems
- the main characteristics of Integer Linear Programming (ILP) problems
- the cutting plane method with fractional Gomory cuts
- the Branch-and-Bound method for ILP and other combinatorial optimization problems.
Applying knowledge and understanding (DdD 2)
The students will be able to: - build optimization models starting from the decision problem descriptions, solve them using a modelling language based on Python and a state-of-the-art solver, and interpret the output
- identify an appropriate graph optimization algorithm to tackle a given decision problem and apply it to small examples
- apply the LP method to textbook examples
- construct the dual of LP problems in explicit and parametric form
- apply the studied ILP methods (Branch-and-Bound method, cutting plane method with fractional Gomory cuts) to small examples
- leverage on the acquired theoretical and algorithmic knowledge to answer simple questions.
Learning skills (DdD 3, DdD 5)
The students will learn how to tackle complex decision-making problems with a solid mathematical and algorithmic approach, which can be adapted and extended to deal with a variety of real-world problems.
Programma
1. Introduction
Decision-making problems. Main steps of an O.R. study. Different types of optimization (mathematical programming) problems. Optimization models (decision variables, objective function, constraints) and modeling techniques.
2. Graph and network optimization
Optimum spanning trees. Shortest path problems: algorithms for the main variants (including Dynamic programming for acyclic graphs). Application to project scheduling: critial path method and Gantt diagrams. Maximum flows: Ford-Fulkerson algorithm and maximum flow-minimum cut theorem. Minimum cost flows, matching in bipartite graphs. An example of NP-hard network optimization problems: the Traveling salesman problem.
3. Linear Programming (LP)
LP models. Geometric aspects (vertices of the feasible region) and algebraic aspects (basic feasible solutions). Fundamental properties of linear programming. The Simplex method. LP duality theory: pair of dual problems, weak and strong duality, complementary slackness conditions. Economic interpretation. Sensitivity analysis. Special cases: assignment and transportation problems.
4. Integer Linear Programming (ILP)
ILP models for, among others, transportation, routing, scheduling and location problems. Formulations and linear programming relaxation. Exact methods: Branch-and-Bound algorithm, cutting plane method with fractional Gomory cuts.
Time permitting we will review some basics of computational complexity (recognition problems, classes P and NP, polynomial-time reductions, NP-complete and NP-hard problems) and introduce basic heuristic algorithms (greedy and local search).
A couple of topics will be assigned for independent study (e.g. LP sensitivity analysis) prior to sessions devoted to exercises or computer laboratory activities. There will be computer lab meetings and computer lab assignments.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
A written exam which covers all the material presented in the lectures, the sessions devoted to the exercises, and the computer laboratory sessions and assignments. The first part of the written exam will be closed book and the last part will be open book. A few points will be assigned based on some formative assesments during the semester, further details will be provided at the beginning of the course.
The exam consists of several questions aimed at evaluating the level of (applying) knowledge and understanding of the main concepts, models, results and methods covered in the course as specified in the expected learning outcomes. In particular, it includes modeling questions, the solution of numerical problems using appropriate algorithms, and theoretical questions related to the main concepts, methods and results. (DdD 1, DdD 2, DdD3)
Testi di riferimento
All the course information and material will be available on WeBeep.
F. Hillier, G.J. Lieberman, Introduction to Operations Research, Editore: McGraw-Hill, Anno edizione: 2021
Note: 11th Edition
R.K. Ahuja, T.L. Magnanti, J.B. Orlin, Network flows. Theory, algorithms and applications, Editore: Prentice Hall, Anno edizione: 1993
D. Bertsimas, J. Tsitsiklis, Introduction to Linear Optimization, Editore: Athena Scientific, Anno edizione: 1997
M. Fischetti, Introduction to Mathematical Optimization, Anno edizione: 2019
Codice insegnamento 088983
HIGH PERFORMANCE SCIENTIFIC COMPUTING IN AEROSPACE
1° semestre · 10 CFU · IIND-01/D · 0 file
The HPC for Aerospace course offers students a comprehensive understanding of high-performance computing (HPC) and its applications in aerospace, focusing on the development, optimization, and implementation of…
Scheda dell'insegnamento
Programma
The HPC for Aerospace course offers students a comprehensive understanding of high-performance computing (HPC) and its applications in aerospace, focusing on the development, optimization, and implementation of software such as Computational Fluid Dynamics (CFD). It emphasizes hands-on experience with advanced programming for both in-house tools and OpenFOAM, an open-source C++ CFD platform, while integrating theoretical instruction on HPC hardware and software. Students will explore advanced computational techniques, including exascale computing, accelerator technologies, parallel computing, load balancing, and performance optimization, to enhance aerospace simulations. The course also includes interdisciplinary team projects and seminars by industry experts, preparing students to tackle modern, complex aerospace engineering challenges through HPC.
Codice insegnamento 059435
HIGH PERFORMANCE SIMULATION LAB FOR MECHANICAL ENGINEERING
1° semestre · 10 CFU · IIND-02/A · 0 file
The second module of this course complements the first one providing the students with skills and tools useful for solving Solid Mechanics problems on HPC platforms. The focus is on understanding challenges and…
Scheda dell'insegnamento
Obiettivi formativi
The second module of this course complements the first one providing the students with skills and tools useful for solving Solid Mechanics problems on HPC platforms.
The focus is on understanding challenges and peculiarities of full scal engineering simulations in the field of stress analysis and explicit dynamics.
The students will learn how a full scale engineering simulation is build from various interacting subdomains.
The expected learning outcomes are the following.
Knowledge and understanding:
Learn the basics of non-linear structural mechanics: material models, kinematics, equilibrium.
Learn and understand how to deploy a full scale simulation on an HPC platform.
Applying knowledge and understanding (same as first module):
Apply the acquired techniques to practical problems;
Motivate the choice of the adopted methods and tools;
Making judgment (same as first module):
Choose the appropriate choice of a numerical model
Develop critical thinking by comparing different alternatives for the solution of a given numerical problem;
Communication skills (same as first module):
Collaborate in working groups;
Ability to learn (same as first module):
The students will elaborate on the material provided during lectures and laboratory sessions to develop their own project, with the supervision of the instructors. This activity will strengthen their capability of autonomous learning.
The students will present their project at the end of the course. This activity will enhance their communication skills.
Programma
Review of Non-Linear Solid Mechanics
Finite displacement kinematics, finite strain metrics.
Stress tensor.
Non-linear material models.
Equation of motion and equilibrium.
Linearized theory of elasticity.
Review of FEA and numerical solution of Solid Mechanics problems
FEA architecture.
Eigenvalue Problems and steady state dynamics.
Explicit Dynamics.
Deployment of FEA on HPC architecture
TDB, based on available HW/SW resources and students interests.
Modalità d'esame
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
The exam consists of discussing a project selected during the course and developed in conjunction with Module 1, allowing students to demonstrate their knowledge and understanding of high-performance simulation in mechanical engineering.
The project, agreed upon with the teachers, is evaluated in two steps:
Written part: submission of a report describing activities, methods, and results, assessing the students’ ability to apply knowledge and understanding and to make judgments on the validity and performance of their simulation approaches.
Oral part: presentation and discussion of the project outcomes, evaluating communication skills and ability to learn through reflection on results and feedback integration.
Testi di riferimento
O.C. Zienkiewich, R.L. Taylor, The finite element method, Volume 1: The Basis, Editore: Butterworth-Heinemann, Anno edizione: 2000, ISBN: 9780750650496 https://opac.biblio.polimi.it/SebinaOpac/resource/1-the-basis/PMI01183060?locale=eng
O. C. Zienkeiwicz, R. L. Taylor., The finite element method, Volume 2: Solid Mechanics, Editore: Butterworth Heinemann, Anno edizione: 2005, ISBN: 9780750663212 https://opac.biblio.polimi.it/SebinaOpac/resource/2-solid-and-structural-mechanics/PMI01186855?locale=eng
O. C. Zienkiewicz, R. L. Taylor, The finite element method, Volume 3: Fluid dynamics, Editore: Butterworth Heinemann, Anno edizione: 2000, ISBN: 9780750650502 https://opac.biblio.polimi.it/SebinaOpac/resource/3-fluid-dynamics/PMI00178072?locale=eng
Codice insegnamento 059441
HPC APPLICATIONS FOR SUSTAINABLE USE OF SUBSURFACE ENERGY RESOURCES
1° semestre · 10 CFU · CEAR-01/A · 0 file
MACHINE LEARNING
2° semestre · 5 CFU · IINF-05/A · 0 file
Machine learning deals with the problem of building programs that learn from experience. While artificial intelligence focuses on the representation of knowledge and the algorithms for reasoning about such knowledge,…
Scheda dell'insegnamento
Obiettivi formativi
Machine learning deals with the problem of building programs that learn from experience. While artificial intelligence focuses on the representation of knowledge and the algorithms for reasoning about such knowledge, machine learning deals with the problem of extracting knowledge from experience gathered solving problems to be used to solve unseen instances of similar problems.
This course provides the theoretical and methodological foundation of machine learning methods and algorithms that are used in several application areas, including, Data Mining, Robotics, Autonomous Agents, Bioinformatics, Recommender Systems, Social Networks, etc.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
Model supervised learning and reinforcement learning problems
Train their models
Select the model complexity
Evaluate the performance of their models
Applying knowledge and understanding
Given specific project cases, students will be able to:
Model the learning problem
Select the most appropriate learning technique
Tune the hyperparameters of the studied techniques
Assess the performance of the learned model.
Making judgements
At the end of this course, students will be able to:
Correctly assess the performance of the proposed solutions
Be aware of fairness issues involved in the training of machine learning methods
Lifelong learning skills
Students will learn the trade-off between bias and variance and hot to manage it by selecting the proper complexity of the learning model
Students will learn to develop algorithms to solve relevant learning problems.
Programma
Introduction (1 class)
Basic concepts.
Learning theory. (4 classes)
Bias/variance tradeoff. Union and Chernoff/Hoeffding bounds.
VC dimension. Worst case (online) learning.
Practical advice on how to use learning algorithms.
Supervised learning. (8 classes)
Supervised learning setup. LMS.
Logistic regression. Perceptron. Exponential family.
Kernel methods: Radial Basis Networks, Gaussian Processes, and Support Vector Machines.
Model selection and feature selection.
Ensemble methods: Bagging, boosting.
Evaluating and debugging learning algorithms.
Reinforcement learning and control. (6 classes)
MDPs. Bellman equations.
Value iteration and policy iteration.
TD, SARSA, Q-learning.
Value function approximation.
Policy search. Reinforce. POMDPs.
Multi-Armed Bandit.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment will be based on a written exam at the end of the course, where both theoretical competence and modeling skills will be tested.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems: exercises on supervised learning and reinforcement learning problems
Solution of modeling problems: exercises where the student needs to properly model the machine learning problem and choosing the most appropriate solution technique
Theoretical questions with open answers.
1,2
1,2,3,5
1,2,5
Testi di riferimento
Christopher M. Bishop, Pattern Recognition and Machine Learning, Editore: Springer-Verlag Berlin, Heidelberg, Anno edizione: 2006, ISBN: 0387310738 https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/
Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, Editore: MIT Press, Cambridge, MA, Anno edizione: 2018, ISBN: 0262039249 http://incompleteideas.net/book/the-book-2nd.html
Murphy, K. P., Probabilistic Machine Learning: An introduction, Editore: MIT Press, Anno edizione: 2022 https://probml.github.io/pml-book/book1.html
Deisenroth, A. Aldo Faisal, and Cheng Soon Ong, Mathematics for Machine Learning, Editore: Cambridge University Press, Anno edizione: 2020 https://mml-book.com/
Codice insegnamento 097683
MATHEMATICAL MODELS AND METHODS FOR IMAGE PROCESSING
2° semestre · 5 CFU · IINF-05/A · 0 file
The primary goal of this laboratory course is to let the students design, implement and practice algorithms based on simple mathematical models from linear algebra and convex optimization, and solve challenging inverse…
Scheda dell'insegnamento
Obiettivi formativi
The primary goal of this laboratory course is to let the students design, implement and practice algorithms based on simple mathematical models from linear algebra and convex optimization, and solve challenging inverse problems in image processing (denoising, deblurring, inpainting, anomaly detection).
Teaching Organization
The course consists of traditional classes and computer-laboratory hours. During the laboratory hours, students will be guided in implementing simplified versions of the presented algorithms on their laptops. A set of homeworks will be provided to students for consolidating their understanding. Imaging problems, including denoising, inpainting, and anomaly detection, will be considered as running examples through the computer labs. Python will be the homework programming language, and students will be invited to work on their own laptops.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn:
· How to formulate relevant restoration problems in imaging.. How basic notions of linear algebra are used in widely used image models.. The modeling assumptions underpinning the mainstream image processing algorithms.. A large number of very general optimization algorithms solving image restoration problems.
Applying knowledge and understanding
Given a specific imaging problem, the student will be able to:
· Describe with a formal notation the image formation / degradation process.
· Apply transform-domain paradigm in image processing.
· Implement fundamental algorithms.. Implement a solution, possibly leveraging on core functions presented during lecture. Assess algorithm performance
Making judgments
Given an imaging problem, students will be able to:
· Formulate an effective modeling assumption for a specific imaging problem at hand
· Identify the viable approaches to solve the problem and then the best algorithms among those presented in the course
· Discuss the pros and cons of different algorithms and approaches. Identify limitations of selected algorithms
Communication
The student will learn to:. Describe the major steps underpinning transform-domain and optimization algorithms presented during lectures. Present an algorithmic solution with mathematical rigour
Lifelong learning skills
The student will learn to:
· Face real-life imaging problems with a mathematical modeling and algorithmic approach.
· Implement algorithms that cover fundamental blocks in image processing pipelines.. Develop practical skills to apply simple mathematical models and algorithms in image processing.. Consolidate their linear algebra and optimization background to be applied in other domains.
Programma
The course topics include:
Image models based on orthonormal bases (DCT), data-driven bases (PCA)
Image models based on sparsity and redundancy:
Away from an Orthonormal Basis, representations with respect to a redundant set of generators.
Sparse coding with ℓ^0 (OMP) or ℓ^1 norm (convex optimization ISTA, IRLS, LASSO), extended models (Group LASSO)
Dictionaries yielding sparse representations and dictionary learning (KSVD, MOD)
Applications of sparse models to image denoising, inpainting, and anomaly detection.
Polynomial Models: Local Polynomial Approximation and Intersection-of-Confidence Interval Rule and applications to image denoising
Non-Local Self-Similarity models for image denoising (NLMS, BM3D).
Robust fitting methods (RANSAC, LMEDS).
Multi-model fitting: Sequential Ransac and Hough transform.
Detailed Syllabus
Linear Algebra and Image Models: patch-based modeling & denoising via DCT thresholding.
Introduction to Inverse Problems for Images: Denoising and Spatial Aggregation, Noise estimation, Wiener Filtering
Data-driven basis and PCA Denoising
Away from an Orthonormal Basis, a redundant set of generators:
Solution of Linear Systems and Tikhonov regularization
Sparsity as a regularization prior
Sparse coding in ell0 sense, Greedy algorithms: MP and all the variants (Thresholding, Weak-MP, MP, OMP, LS-OMP)
Sparse coding and ell1 (convex optimization):
Gradient descent
Basis Pursuit Denoising (BPDN): proximal mapping (ISTA), FISTA, IRLS.
Connections between BPDN and LASSO.
Learning Dictionary yielding Sparse Representations by block coordinate descent: M ethod of Optimal Directions (MOD), KSVD.
Extended Sparse models:
Structured sparsity: Joint sparsity, group sparsity,
Elastic Net
Image Processing Applications using Dictionaries: denoising, inpainting, anomaly detection.
Local Polynomial models for images:
Local Polynomial approximation (LPA)
LPA + adaptive scale selection (LPA-ICI)
Applications of LPA -ICI to Image Denoising
Self-similarity models for Images:
Non-local Means
BM3D
Robust Fitting methods in image analysis
Fitting a single model: M-estimators, RANSAC, LMEDS, MSAC
Multimodel Fitting: Sequential Ransac, Hough Transform
Modalità d'esame
Prova orale obbligatoria
The final assessment will be based on an oral exam in which students will be invited to illustrate the course materials (theory and algorithms).
Most lectures come with an assignment where students need to fill in Python Notebooks, which are fundamental for understanding the course materials. To access the oral exam, it is mandatory to submit the assignments by the day the exam is scheduled in the online system. Assignments will be assessed on a pass/fail basis. The oral exam includes questions on the algorithms implemented in the assignments.
Type of assessment
Description
Dublin descriptor
Oral exam
Students are requested to demonstrate proficiency in:
Implementing the algorithms presented during the course
Describe their own codes, with particular emphasis on image modeling and the algorithmic steps
Discuss limitations and possible improvements
Illustrate the modeling assumptions underpinning imaging problems presented in the course
Addressing the presented image processing problems with a principled approach.
Govern the most important algorithms presented in the literature, illustrating their rationale and major steps.
1, 2, 3, 4, 5
Testi di riferimento
Lectures Slides and Demo Codes will be provided
Michael Elad,, Sparse and redundant representations: from theory to applications in signal and image processing, Editore: Springer, Anno edizione: 2010, ISBN: 978-1441970107
Codice insegnamento 056935
MOLECULAR MODELING IN PROCESS ENGINEERING
2° semestre · 5 CFU · ICHI-01/B · 0 file
The goal of the course is to teach students how to perform electronic structure simulations, as well as to give some overview of the associated theoretical background. The final aim is to teach how to use these…
Scheda dell'insegnamento
Obiettivi formativi
The goal of the course is to teach students how to perform electronic structure simulations, as well as to give some overview of the associated theoretical background. The final aim is to teach how to use these advanced tools to determine properties, such as structural, thermochemical, molecular and kinetic parameters, that are of interest for process engineering. The necessary electronic structure calculations are nowadays traditionally performed through High Performance Computing facilities.
Lectures will allow the students to:
Learn how to exploit HPC facilities to perform electronic structure calculations (Dublin descriptor 2 -applying knowledge and understanding).
Familiarize with the theory underlying electronic structure calculations (Dublin descriptor 1 -knowledge and understanding).
Learn how to use electronic structure calculations to determine structural, thermodynamic and kinetic data of interest for process engineering (Dublin descriptor 5 -lifelong learning skills).
Learn how to determine molecular structures and kinetic parameters using state of the art simulation software (Dublin descriptor 2 -applying knowledge and understanding).
The practicals will allow students to (Dublin descriptor 2 -applying knowledge and understanding):
Properly set up, execute and analyze molecular simulations on their own notebook and on HPC facilities (l ocal cluster or on CINECA supercomputing facility).
Use modern electronic structure and kinetic software and interpret simulation results.
The software used in the practicals will be installed on the students own computers, and thus will be available also after the end of the class, or it will be accessible from dedicated accounts created on HPC clusters.
Programma
HPC for electronic structure calculations
description and installation of modern and updated suites of programs for the accurate determination of the electronic structure. Queue submission systems and strategies for high throughput calculations. Current trends in software for electronic structure calculations: open source and commercial.
Application of HPC for the determination of molecular properties
electronic structure of atoms and molecules; the molecular bond; Slater determinant; basis sets; molecular orbitals; the Hartree-Fock approximation; post Hartree-Fock models for estimation of electron correlation energy; Density Functional Theory; Multi Reference methods; determination of the molecular structure of molecules; harmonic oscillator (HO) approximation; beyond the HO approximation; estimation of molecular properties (entropy, enthalpy, heat capacity, NMR, IR, rate constants); models for solvation of molecules; estimation of the free energy of solvation.
Quantum Computing
Brief overview of the basic concepts of quantum computing, including qubits, quantum gates, circuits, and current hardware architectures. Introduction to the Qiskit development environment for circuit design and simulation.
Execution of simple Configuration Interaction (CI) calculations on model molecular systems (H ₂, N ₂, CO) using a hybrid classical–quantum approach combining PySCF and Qiskit (throught VQE-type methods).
Quantum chemistry calculations for materials
Overview of computational methods for solid-state materials, with particular emphasis on extending quantum mechanical approaches to periodic systems through periodic boundary conditions. Practical sessions will include selected applications to crystalline materials, such as ionic, molecular, polymeric, and hybrid organic–inorganic frameworks (MOFs). Key concepts—including lattice energy, lattice parameters, and host–guest interactions in porous materials—will also be discussed.
Practicals will be given in parallel to the course. The objective of practicals is to familiarize the students with the main codes currently available on HPC clusters to perform electronic structure calculations.
Modalità d'esame
Progetto/i - Elaborato/i obbligatorio, individuale, senza revisioni periodiche, con presentazione/discussione finale
The exam will consist in a discussion on a report on a set of computer simulations that the student has to perform to prove that he/she is able to use the concepts explained during the lectures and practicals (related to Dublin descriptors 1 and 2). The simulations will concern the determination of properties of interest of molecules, such as minimum energy structures, formation enthalpies and heat capacities, rate constants as a function of temperature and pressure, NMR or IR spectra, related to Dublin descriptors 1, 2 and 5.). The student will be able to perform such calculations either on his own computer or on workstations that will be made available for this purpose (related to Dublin descriptors 2).
Testi di riferimento
F. Jensen, Introduction to Computational Chemistry, Editore: John Wiley & Sons, ISBN: 978-0-470-01187-4
D.A. Mc Quarrie and J.D. Simon, Physical Chemistry, a Molecular Approach, Editore: University Science books, Anno edizione: 1997, ISBN: 978-0-935702-99-6
Codice insegnamento 057983
MOLECULAR MODELING OF MATERIALS
2° semestre · 5 CFU · IMAT-01/A · 0 file
The course aims to provide a general introduction to the computational methods which can be used to model the behaviour of molecular systems and materials. The lectures will introduce the theoretical concepts, first in…
Scheda dell'insegnamento
Obiettivi formativi
The course aims to provide a general introduction to the computational methods which can be used to model the behaviour of molecular systems and materials. The lectures will introduce the theoretical concepts, first in qualitative terms and then in the form of equations and algorithms. The practical hand-on computational sessions will introduce the students to the usage of freely available programs for molecular simulation and visualization. The students will become aware of the meaning of "modelling", "simulation" and "computing", in a way which may be useful also in other, unrelated contexts.
The students will learn some theoretical principles underlying current molecular modelling methods. This will allow them to read an understand the scientific literature emplying these methods. (Dublin descriptor 1: Knowledge and insight).
They will learn how to use some common codes for the calculation and interpretation of the properties of molecules, liquids and materials, and specifically: VMD (visualization), ORCA (quantum chemistry), Tinker and LAMMPS (molecular dynamics and Monte Carlo). They will also learn some basics of scientific data analysis, using Python-based tools: Jupyter notebooks, numpy, scipy, matplotlib. (Dublin descriptor 2: Applying knowledge and insight).
They will be expected to gain some critical understanding of the methods, in order to choose the right method for a specific problem and assess the results of their calculations. (Dublin descriptor 3: Judgement).
The students will be expected to present the results of a computational project, both as a written report and during a subsequent oral discussion. (Dublin descriptor 4: Communication).
Programma
Introduction to molecular modelling: overview of problems and approaches.
Elements of molecular quantum mechanics: Schroedinger equation, Born-Oppenheimer approximation, electronic wavefunctions, independent-particle model, molecular orbital (MO) theory, basis sets. Molecular properties: the electron density and the molecular electrostatic potential. Electron correlation and the bond dissociation problem. Concepts from density functional theory (DFT): Hohenberg-Kohn theorem, Kohn-Sham scheme, exchange-correlation functionals. Semiempirical molecular orbital methods.
Empirical models: force fields for organic and biological molecules, shell model for ionic polarization, the embedded-atom model for metals, empirical "reactive" potentials for semiconductors and carbon-based systems. Coarse-grained models.
Exploring potential energy surfaces: stationary states, energy minimization and saddle point location methods. Conformations of large molecules.
Introduction to simulation methods: elements of statistical mechanics, ensembles and calculation of thermodynamic properties, boundary conditions, treatment of short- and long-range interactions.
Molecular dynamics (MD) simulations: integration algorithms, introduction of constraints. Choice of initial conditions. Controlling temperature and pressure in MD. Analysis of trajectories: pair distribution functions, analysis of molecular conformations, time correlation functions. Evaluation of transport properties. Non-equilibrium methods. Enhanced sampling for "rare" events.
Monte Carlo (MC) simulations: general principles (Markov processes, transition probabilities, detailed balance) and Metropolis Monte Carlo for the NVT ensemble. Generalization to other ensembles. Example: the Ising model.
Application examples:
- calculation of molecular energies, geometries, vibrational spectra, electron densities, interactions, etc.
- structure and properties of solids, liquids, soft materials, interfaces, etc.
Modalità d'esame
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The students will be evaluated on the basis of written reports on the practical modeling problems, followed by an oral examination covering the reports and the theoretical concepts underlying the empoyed methods. Projects can be carried out individually or in groups of two.
The final grade will be based on:
- understanding of the theoretical principles of the chosen computational model(s) (Dublin descriptor 1: knowledge and insight).
- capability to run the numerical simulation codes, extract and analyze the results from them (Dublin descriptor 2: Applying knowledge and insight).
- soundness of the computational method(s) for a specific problem, capability to interpret the results and identify possible problems or limitations (Dublin Descriptor 3: Judgement).
- presentation of the results, both in writing (report) and orally (final discussion) (Dublin Descriptor 4: Communication).
Testi di riferimento
Frank Jensen, Introduction to computational chemistry (3rd. edition), Editore: JohnWiley & Sons, Ltd, Anno edizione: 2017, ISBN: 9781118825990
M. P. Allen and D. J. Tildesley, Computer Simulation of Liquids, 2nd edition, Editore: Oxford University Press, Anno edizione: 2017, ISBN: 9780198803201
Andrew R. Leach, Molecular Modelling: Principles and Applications (2nd ed.), Editore: Prentice Hall, Anno edizione: 2001, ISBN: 0582382106
Peter Atkins, Julio de Paula, ATKINS' PHYSICAL CHEMISTRY, Editore: W. H. Freeman and Company, New York, Anno edizione: 2006, ISBN: 0-7167-8759-8
Codice insegnamento 057901
NETWORK COMPUTING
2° semestre · 5 CFU · IINF-03/A · 0 file
The goal of the course is to teach students the methodologies for understanding, analyzing and designing datacenter networks. Moreover, the course provides the students the instruments for reviewing latest innovations…
Scheda dell'insegnamento
Obiettivi formativi
The goal of the course is to teach students the methodologies for understanding, analyzing and designing datacenter networks. Moreover, the course provides the students the instruments for reviewing latest innovations (from both industry and the research community) in terms of advanced traffic processing at datacenter-scale.
1 - Knowledge and understanding
Students will learn how to:
- Define the basic networking components of datacenter networks
- Define the techniques used to scale datacenter networks
- Analyze complex technologies related to high-speed packet processing
- Identify system components and their relations
2 - Applying knowledge and understanding
Students will be able to: - Dimension specific datacenter network functionalities based on initial requirements
- Evaluate the performance of datacenter networks in different scenarios
- Apply the programming languages learned for advaced packet-processing operations
3 - Making judgements
Students will be able to: - Understand the fundamental trade-off that govern the design of datacenter networks
- Identify how the fundamental systems (and algorithms) limitations impact the design of datacenter networks
- Recognize the design space and its degrees of freedom that can be exploited to define new technologies
4 - Communication
Students will learn to: - Write and describe complex network technologies at different levels of detail, also comparing them with respect to specific aspects
- Apply critical thinking to advanced topics related to datacenter networking and fast packet-processing
5 - Learning skills:
Students will be able to learn autonomously the most advanced techniques related to state-of-the-art systems for datacenter networking
Programma
1. Basics
- Introduction to datacenter networks and their challenges
- Topologies
- Traffic characterization
2. Network programmability - Software-Defined Networking
- OpenFlow
- Switch programmability
3. Data structures for high-speed networking - Ternary Content Addressable Memories
- Hash tables
- Bloom Filters
- Counting Bloom Filters
- Invertible Bloom Filters
- Count-Min Sketches
4. Datacenter Monitoring - Packet mirroring
- Monitoring at scale
- Inband Network Telemetry
- Advanced Netflow
5. Datacenter control - Layer 3 load balancing
- Layer 4 load balancing
- Congestion control
6. End-Host Networking - Programmable NICs
- Kernel networking
- New protocols for fast end-host networking
- Virtual networking
Modalità d'esame
Altro
The assessment will be based on an exam at the end of the course and on an additional project activity.
The exam is based on questions covering the entire course (dublin descriptors 1, 2, 3, 4, 5)
The project activity will provide additional points and it is based on testing/developing packet-processing functions for datacenter-scale networking (dubling descriptors 2, 4, 5)
Testi di riferimento
Meta's Hyperscale Infrastructure: Overview and Insights https://dl.acm.org/doi/full/10.1145/3701296
A Scalable, Commodity Data Center Network Architecture https://dl.acm.org/doi/10.1145/1402946.1402967
OpenFlow: Enabling Innovation in Campus Networks https://dl.acm.org/doi/10.1145/1355734.1355746
Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN https://dl.acm.org/doi/10.1145/2486001.2486011
Data Sketching https://cacm.acm.org/practice/data-sketching/
Packet-Level Telemetry in Large Datacenter Networks https://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p479.pdf
Understanding Host Network Stack Overheads https://dl.acm.org/doi/abs/10.1145/3452296.3472888
Codice insegnamento 058172
NETWORKED SOFTWARE FOR DISTRIBUTED SYSTEMS
1° semestre · 5 CFU · IINF-05/A · 0 file
The primary objective of the course is for students to learn the fundamental abstractions and features of available networked software platforms while gaining concrete practical experience on their use in different…
Scheda dell'insegnamento
Obiettivi formativi
The primary objective of the course is for students to learn the fundamental abstractions and features of available networked software platforms while gaining concrete practical experience on their use in different application scenarios. Specific domains covered in the course are the Internet of Things, Edge Computing, Big Data Analytics, Concurrent Systems, Event-driven Applications, and High-performance Computing. The course promotes a practical approach, as the explanation of system abstractions and features is tightly linked to their practical application. The lecturers adopt a novel teaching methodology that enables students to invest most of their time in in-class lab sessions and hands-on work, with support from the lecturers.
For each software platform covered in the course, the learning activities use a combination of online videos and in-class lab sessions. The online videos introduce abstractions and fundamental features of a given platform. The lab sessions allow students to clarify doubts with the lecturers and experiment with the technology at hand.
By the end of the course, students are expected to be familiar with the primary abstractions and features in the software platforms covered in the course, be able to design and implement complete applications of medium complexity, and be acquainted with the practical issues arising when deploying and running these systems in realistic settings. The Dublin Descriptors applicable to the course follow:
Dublin Descriptor 1 (knowledge and understanding): the lab sessions of the course provide the opportunity to test the students’ understanding while facing the practical issues in deploying and running the systems.
Dublin Descriptor 2 (applying knowledge and understanding): the students apply the learned abstractions and features of each software platform in selected settings, drawing connections between theoretical concepts and experimentation.
Dublin Descriptor 5 (lifelong learning skills): the students are expected to acquire the ability to solve medium-complexity experimental problems on their own, using either the software platforms covered in the course or others that are based on similar abstractions or offer similar features.
Programma
For each of the software platforms we consider, we provide first an introduction to the specific domain, followed by a description of key abstractions and features, intertwined with concrete examples. A different software platform is considered for each of the aforementioned domains:
Internet of Things: ContikiNG
Computing Continuum: Node.js and Node-RED
Big Data Analytics: Apache Spark
Concurrent Systems: Akka
Event-driven Applications: Apache Kafka
High-performance Computing: MPI
Modalità d'esame
Prova orale facoltativa (a scelta dello studente) o condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
Altro
The course adopts two evaluation modes: continuous evaluation or oral examination.
The continuous evaluation (DD2, DD5) is accomplished in student groups. Groups are randomly formed by the lecturers and different for each of the software platforms considered in the course. The goal is to combine the students’ learning with in-class experimental activities that allow the teachers to assess their preparation as learning proceeds throughout the semester. In addition to online videos, in-class Q&A sessions, and lab sessions, dedicated evaluation labs are scheduled throughout the semester. The evaluation labs build on what the students learned and experimented with online videos and regular lab sessions, and are instrumental to check their understanding of a given platform. During an evaluation lab, the student groups are to complete an exercise the lecturer hands out at the beginning of the lab. The work accomplished at the end of an evaluation lab is graded by the lecturers and contributes to determining the final grade, possibly integrated by selected oral discussions. This mode allows students to complete the coursework by the end of the lecture period.
The oral examination (DD2, DD5), differently, seeks to test the individual students’ preparation by verifying the students' understanding of the software platforms discussed in the course in an oral discussion, and may also include questions on selected programming assignments. The oral examinations are individual and scheduled during the exam period after the end of the lecture period.
Groups may start with the continuous evaluation but individual students may possibly switch, at any time during the semester, to the oral examination mode.
Testi di riferimento
Teaching material provided by the lecturer
Codice insegnamento 061723
NONPARAMETRIC STATISTICS
1° semestre · 5 CFU · STAT-01/A · 0 file
Nonparametric Statistics is a course that aims at providing students with statistical and algorithmic tools for the analysis of complex data, i.e., data for which the identification of standard and classical…
Scheda dell'insegnamento
Obiettivi formativi
Nonparametric Statistics is a course that aims at providing students with statistical and algorithmic tools for the analysis of complex data, i.e., data for which the identification of standard and classical probabilistic models is hard or not possible, through a nonparametric approach. The course is organized in theoretical classes and lab sessions and a data analysis team project. Knowledge in probability, statistical inference and multivariate statistics is required.
Lectures and exercises sessions will allow students to acquire the following competences:
Knowledge and understanding.
Having successfully taken the course examination, the students are expected to
- know the principles of nonparametric descriptives, inference, prediction and forecasting;
- know the correct terminology of nonparametric statistics and to be able to correctly argument the theory.
The students’ knowledge and comprehension is expected not be limited to the enunciation of definitions and results and to the solution of standard exercises, but rather to be critical and enabling to distinguish among different situations and to take appropriate choices, justifying the followed procedures.
Ability of applying knowledge and understanding.
Having successfully taken the course examination, the students are expected to - be able to apply the attained knowledge to specific problems of data analysis;
- be able to select the principles which are useful to obtain the solutions to the problems at hand.
Communication skills.
Having successfully taken the course examination, the students are expected to - be able to effectively and efficiently communicate the developed solutions and the corresponding results.
Programma
Part I (Non parametric Multivariate Exploration)
Depth measures
Depth measures for functional data [only for the 8 CFU version]
Part II (Non parametric Inference)
Rank Tests
Permutational Inference (Tests and Confidence Intervals for means, linear regression and Anova)
Booststrap Inference (Tests and Confidence Intervals for means, linear regression and Anova)
Permutation Inference for functional data [only for the 8 CFU version]
Part III (Non parametric Regression)
Nonparametric and Semiparametric Regression (Binning; KNN; Kernel methods; Splines; Spline with differential penalization)
Quantile Regression
Nonparametric and Semiparametric estimation in Survival Analysis (Kaplan-Meier and Nelson-Aalen estimators, Cox model)
Part IV (Nonparametric Forecasting)
Conformal prediction
Conformal prediction for functional data [only for the 8 CFU version]
Modalità d'esame
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The course assessment will consist of a composite individual evaluation (home-work + oral discussion) and a team project for both the 5CFU and 8CFU version of the course.
The composite individual evaluation will consist of two parts: fi rstly, a homework where each student will be required to provide the solution of an execise in terms of code necessary for getting the solution; then, an oral discussion where the student will be required to solve an exercise and to answer some theoretical questions. Failing the rst part will prevent to access the second part of the composite evaluation.
The composite individual evaluation will be scored on a scale from 0 to 30, the maximum evaluation being 32/30.
It will be passed upon obtaining a score larger or equal to 18/30. The exam evaluation will account for the degree of clarity of the exposition and for the correctness of methods and computations. For each question students will be asked to report both the method used and the numerical solution obtained, and to critically discuss the latter one.
The team project will consist of an analysis of a real dataset, to be conducted in teams of 2 to 4 students, using the models and methods introduced in the course. The team projects will be presented during and at the end of the course in an open workshop that will take place after the end of the semester. For the groups whose students are not willing to give the written exam during the winter semester a second date will be available during the summer session.
Each team will receive an evaluation in a scale from 0 to 30. More details about the expected project development will be given in a dedicated lesson.
The final individual grade will be obtained as a weighted average of the grades obtained by the student in the two parts of the evaluation: 2/3 grade of the composite exam + 1/3 grade of the project.
During the exam, the students will have to:
- Demonstrate the degree of knowledge and comprehension of the key aspects of the course, presenting the used methodologies in a clear and exhaustive way;
- Demonstrate their ability to apply the learned notions to solve exercises and real problems, on any of the topics covered in the course.
Testi di riferimento
Regina LiuJ. M. PareliusK. Singh, Multivariate Analysis by Data Depth: Descriptive Statistics, Graphics and Inference, Editore: The Annals of Statistics, Anno edizione: 1999, Fascicolo: 27(3):783-858
Note: A further selection of scientific papers for each topic will be provided by the teachers.
Fortunato Pesarin; Luigi Salmaso, Permutation Tests for Complex Data: Theory, Applications and Software, Editore: John Wiley & Sons, Anno edizione: 2010
Trevor Hastie; Robert Tibshirani; Jerome Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction: Data Mining, Inference, and Prediction, Editore: Springer
Hosmer, D.W., Lemeshow, S., Applied Survival Analysis, Editore: John Wiley & Sons, Anno edizione: 2008
Vladimir Vovk; Alex Gammerman; Glenn Shafer, Algorithmic learning in a random world, Anno edizione: 2005
Codice insegnamento 055703
NUMERICAL ANALYSIS FOR MACHINE LEARNING
1° semestre · 10 CFU · MATH-05/A · 0 file
Numerical methods are ubiquitous in Machine Learning. The aim of this course is twofold: on the one hand, to systematically address the mathematical and numerical background at the heart of machine learning, with…
Scheda dell'insegnamento
Obiettivi formativi
Numerical methods are ubiquitous in Machine Learning. The aim of this course is twofold:
on the one hand, to systematically address the mathematical and numerical background at
the heart of machine learning, with particular attention to applications in Science and
Engineering; on the other hand, to sustain the theoretical analysis with laboratory sessions.
Extensive hands-on sessions are planned.
The course is part of a pilot program on the use of AI tools in teaching.
Knowledge and understanding (Dublin Descriptor 1)
At the end of the course and after successfully passing the exam, the student will learn how to know, understand and be able to implement numerical methods for machine learning.
Applying knowledge and understanding (Dublin Descriptor 2)
At the end of the course and after successfully passing the exam, the student will be able to:
- Construct and analyze numerical algorithms for Machine Learning.
- Understand and master the theoretical properties of numerical algorithms for solving Machine Learning Problems.
- Write and interpret algorithms;
- Develop implementation skills and numerical verification abilities.
Autonomy of judgment (Dublin Descriptor 3), Communication skills (Dublin Descriptor 4) and Learning ability (Dublin Descriptor 5).
At the end of the course and after successfully passing the exam, the student will be able to: - choose the most appropriate numerical scheme for solving a given problem;
- critically reason and interpret the results;
- model and numerically simulate problems stemming from applications in Science and
Engineering.
Programma
1. Numerical Linear Algebra Tools
Singular value decomposition, principal components and best low rank matrix.
Eigenvalues. Least square methods. QR factorization.
Toeplitz matrices and shift invariant filters. Convolution.
Randomized SVD
2. Automatic differentiation
Wenger list, Direct Acyclic Graphs, Forward mode of AD
Dual numbers
Backward mode of AD
3. Numerical Optimization and Training of Neural Networks
Loss functions.
Stochastic gradient methods, accelerated gradient methods, coordinate descent methods.
Second order methods: Newton and Inexact Newton Methods.
4. Approximation properties of Neural Networks
Stone-Weierstrass theorem and universality results for shallow neural networks
Approximation theory of deep neural networks: error bounds, optimality
properties and regularity classes (e.g, Sobolev, Besov).
5. Sparse hints to Artificial Intelligence/Machine Learning applications.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale facoltativa (a scelta dello studente)
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
The exam consists of a written test, an oral colloquium and a project. The written test takes place in
the computer room and it covers all the theoretical and practical arguments
considered during the lectures and lab sessions. The problems mainly focus on definition,
application of important lemmas and theorems, and important examples. Light calculations
may be needed. The exam is open book. The maximum grade of the written test is
28/30. To get a grade > 28, students are required to take an oral exam. The assessment of the
oral exam will be based on subject knowledge matters and quality of the oral delivery.
Exam (written and oral). It covers:
- The student's ability to apply the subject-specific knowledge and techniques acquired during the course (Descriptors 1 and 2).
- The student's ability to choose the most appropriate numerical algorithms and critically interpret the results (Descriptors 2 and 3).
Project. It covers: - The students' ability to integrate knowledge for problem-solving, collaborate effectively in teams, and communicate results (Descriptors 3, 4, and 5).
Testi di riferimento
G. Strang, Linear Algebra and Learning from Data, Editore: Wellesley-Cambridge Press, Anno edizione: 2019, ISBN: 978-0692196380
J. Nocedal, S. J. Wright, Numerical Optimization, Editore: Springer Nature, Anno edizione: 2006, ISBN: 978-0387303031
A. Griewank, A. Walther, Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, Editore: SIAM, Anno edizione: 2008, ISBN: 978-0898716597
I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, Editore: Mit Press, Anno edizione: 2017, ISBN: 978-0262035613 http://www.deeplearningbook.org/
O. Calin, Deep Learning Architectures: A Mathematical Approach, Editore: Springer Nature, Anno edizione: 2020, ISBN: 978-3-030-36723-7
Codice insegnamento 055697
PERFORMANCE EVALUATION AND APPLICATIONS
1° semestre · 5 CFU · IINF-05/A · 0 file
The course addresses the problem of capacity planning of computer infrastructures. The topics considered are: performance modelling concepts and techniques, workload and traffic characterization, simulation of users…
Scheda dell'insegnamento
Programma
The course addresses the problem of capacity planning of computer infrastructures. The topics considered are: performance modelling concepts and techniques, workload and traffic characterization, simulation of users behavior, measurement techniques and tools for end-to-end response time of web applications.
Codice insegnamento 056897
PHOTONIC COMPUTING
2° semestre · 5 CFU · IINF-02/A · 0 file
The course “Photonic Computing” explores the potential of photonic technologies as an alternative and complement to conventional digital electronic solutions. Students are introduced to photonic integrated circuits and…
Scheda dell'insegnamento
Obiettivi formativi
The course “Photonic Computing” explores the potential of photonic technologies as an alternative and complement to conventional digital electronic solutions. Students are introduced to photonic integrated circuits and free-space optical systems, progressing from fundamental building blocks to complex and programmable architectures.
The course examines a broad range of computing applications, including photonic implementations of matrix operations and linear transformations, analog photonic processors, neuromorphic photonic circuits, and architectures for artificial intelligence and machine learning. It also addresses the role of photonics in enabling high-speed, energy-efficient interconnects for distributed computing systems, with examples spanning intra- and inter-data-center communications.
A comprehensive overview of state-of-the-art technologies is provided, along with selected case studies and a forward-looking discussion on the role of photonics in the future of high-performance computing (HPC) as outlined in current technology roadmaps.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will
know the main advantages/current limitations of photonic analog computing versus digital electronic computing;
comprehend the physical mechanisms that can be used to perform mathematical operations in the optical domain;
know the state-of-the-art of photonic technologies and devices that are used in computing applications and in distributed systems;
know the basic criteria and design rules of simple photonic processors
Applying knowledge and understanding
Students will be able to
map linear algebra operations into a photonic hardware
design simple photonic circuits that perform computational operations on optical signals
design of a fiber optic link for distributed computing systems
Making judgments
Students will be able to
· compare the performance of different photonic circuits implementing specific mathematical operations
· identify the most suitable photonic architecture to solve computational problems
Lifelong learning skills
Students will be able to apply the acquired knowledge to different and more complex computational problems, and autonomously conceptualize and design new photonic computing architectures and interconnections
Programma
Motivation & perspectives. Energy, bandwidth & latency bottlenecks of current digital electronics technologies for high performances computing (energy/bit metrics, I/Os density, memory wall, beyond-Moore scalability and sustainability). Photonics in datacentes and AI infrastructures. Analog vs digital processing. Advantages of photonic technologies for high performance computing.
Fundamentals of optics: Representation of optical signals in time and frequency domain; basics on electromagnetic waves in free space and waveguiding structures; optical fibers and integrated waveguides: technology and characteristic parameters (attenuation, group delay, chromatic dispersion, polarization). Temporal coherence and orthogonality of waves; principles of optical interference.
Implementation of matrix algebra in photonics. Sum and multiplication in the optical domain. Photonic building blocks for computing (waveguides, power splitters/combiners, phase shifters). Transmission matrix representation. Mach-Zehnder interferometer (MZI) as a 2x2 coherent adder. MZI architectures for coherent vector matrix multiplication. Mapping unitary and non-unitary operators on MZI meshes. MZI architectures (diagonal, triangular, rectangular). Singular value decomposition (SVD). Fidelity. Photonic Discrete Fourier transform (DFT).Microring resonators (MRR). MRR architectures for non coherent vector matrix multiplication. Broadcast and weight. Control strategies for MRR and MZI based architectures, technologies and programmability. Free space solutions: metasurfaces, spatial light modulators (SLM) and multiplane light converters (MPLC).
Linear operators and photonic analog processors: Analog implementation of differential/integral operators. Photonic temporal differentiator and integrator: frequency and time domain response, performance and limits. Photonic solvers of first-order and higher order ordinary differential equation (ODE). Hilber transform. Recursive programmable photonic circuits. Programmable optical solvers of systems of differential/integral equaltions. Analog matrix inversion.
Optical Neural Networks (ONN): implementation of photonic neurons, architectures of optical neural networks (ONN). Integrated ONN (coherent/non coherent) and free space ONN. Nonlinear activation functions in photonics. Electronic vs photonic neuronal functions.
Photonics for distributed computing. Optical interconnections for intra- and inter-datacenter communications. Design of a fiber optic link, power budget and time rise budget. Switches in datacenters: requirements and characteristics. Optical switches: 2D and 3D topologies, techologies (MZI, MRR, MEMs), performance, port-count scalability. Optical vs electrical switches
Case studies:
Coherent Photonic Adder for Communication and Sensing
All-optical calculation of orthongonal channels of arbitrary transmission system (optical SVD)
Mathematical coprocessors (analog matrix inversion)
Photonics circuits and architectures for AI and machine learning.
Students will have the opportunity to visit to the Photonic Devices Lab (https://photonics.deib.polimi.it/) and see live experiments of photonic chips that perform computational operations in real time (2 hours)
During the course two seminars will be held (remotely) by professors from international research groups carrying out pioneering research in the field of photonic computing (2 hours).
Modalità d'esame
Prova scritta obbligatoria, con prove in itinere
Prova orale facoltativa (a scelta dello studente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam consists of two tests structured as follows:
- written test (open book) on the topics covered in the first part of the course (Fundamentals of optics, Implementation of matrix algebra in photonics). On this part of the course there is also a mid-term written test.
- oral test on the topics covered in the second part of the course (Linear operators and photonic analog processors, Optical Neural Networks, Photonics for distributed computing ) or alternatively a thematic study (project) which can be carried out in pairs (2 students) on selected topics agreed with the teacher.
Type of assessment
Description
Dublin descriptor
Written test
· numerical exercises focusing on photonic devices and circuits for computing
1, 2, 3
Oral test
· oral exam on the second part of the course;
· assessment of the thematic study (project) through an oral presentation
1, 2, 3, 4, 5
Passing the written test is not a prerequisite for the oral test. Students who have not passed the mid-term written exam can still take the oral test and recover the written test in a subsequent date of the same session.
Testi di riferimento
Course slides (Ed. 2025) https://webeep.polimi.it/
Note: Available on the course's WeBeep website.
Mahdi Nikdast, Sudeep Pasricha, Gabriela Nicolescu, Ashkan Seyedi, Di Liang, Silicon Photonics for High-Performance Computing and Beyond, Editore: CRC Press, Anno edizione: 2024, ISBN: 9781032122441
José Capmany, Daniel Pérez, Programmable Integrated Photonics, Editore: Oxford University Press, Anno edizione: 2020, ISBN: 0198844409
Paul R. Prucnal, Bhavin J. Shastri, Neuromorphic Photonics, Editore: CRC Press, Anno edizione: 2017, ISBN: 9781315370590
Codice insegnamento 062131
QUANTUM CIRCUITS AND DEVICES
1° semestre · 5 CFU · IINF-01/A · 0 file
The course ‘Quantum circuits and devices’ offers an overview of quantum hardware technology including qubits, quantum gates and full quantum processors. From the initial conceptualization of Richard Feynman in 1982,…
Scheda dell'insegnamento
Obiettivi formativi
The course ‘Quantum circuits and devices’ offers an overview of quantum hardware technology including qubits, quantum gates and full quantum processors. From the initial conceptualization of Richard Feynman in 1982, quantum computing has emerged in the last twenty years thanks to remarkable progress on both algorithms and qubit technology. Quantum computing can speed up the solution of hard problems, which are non-tractable by conventional computers, in various topics, such as cryptography, machine learning and the simulation of chemical molecules. Such a ‘quantum advantage’ has stimulated strong investments in research from major industries to explore the feasibility and the scaling of quantum computers. The course ‘Quantum circuits and devices’ will illustrate the state of the art of this ongoing technological race, addressing the main concepts, the opportunities and the challenges of quantum computing and providing the basic tools for understanding and designing quantum circuits.
Knowledge and understanding (Dublin Descriptor #1)
At the end of the course the students are expected to:
possess a good understanding of quantum computing in terms of basic concepts and main algorithms
possess a good understanding of qubits in terms of wavefunction, physical structure and operation including initialization, read and quantum gates
possess a basic knowledge of the main hardware implementation of qubits
possess a basic knowledge of quantum computer system architecture
Applying knowledge and understanding (Dublin Descriptor #2)
At the end of the course the students are expected to:
be able to analyze a quantum computer algorithm and architecture
be able to analyze a qubit structure and operation
be able to design an analogue control circuit for a qubit operation
Making judgements (Dublin Descriptor #3)
At the end of the course the students are expected to:
evaluate the most appropriate qubit technology for a set of application requirements
evaluate the most appropriate frequency and timing of operations for a given qubit technology
Programma
The course is organized in four phases. First, the basic principle of quantum computing will be explained. Then, the hardware implementation of quantum computing will be shown with reference to the two main quantum technologies, namely (i) the superconducting qubits and (ii) the spin qubits. Finally, the design, synthesis and operation of full quantum circuits will be described, including initialization, processing, read and quantum error correction. The following provides a detailed breakdown of the course topics:
Introduction (8 hours)
Qubits. Bloch sphere for representing the qubit state. Single qubit and multiple qubits. Superposition and entanglement. Relaxation and dephasing times. Quantum gates: NOT, Pauli, Hadamard, CNOT, CPHASE and SWAP. Universal gates and no-cloning theorem. Two-level systems: Hamiltonian, time evolution and Rabi oscillations. Avoided crossing. Quantum circuits: initialization, control, coupling and readout. DiVincenzo criteria for quantum circuits.
Semiconductor spin qubits (8 hours)
Quantum dots and donor impurities. Electron spin, Larmor precession, Zeeman effect and electrical tuning of the spin splitting. Spin-charge conversion for initialization and readout. Quantum point contacts and single-electron transistors for spin-charge conversion. Coulomb blockade. Electron spin resonance (ESR) and Rabi oscillations. Microwave transmission lines. Quantum gates for single and two qubits. Dephasing effects and silicon isotopic purification. Design/simulation tools. Technology state of the art and hardware demonstrators.
Superconducting qubits (8 hours)
Superconductivity: Bardeen-Cooper-Schrieffer (BCS) theory, Cooper-pair, superconductive energy gap. Flux quantization, Cooper pair box, superconducting quantum-interference device (SQUID). LC quantum oscillators. Circuit quantum electrodynamics. Josephson junction, effective inductance and Josephson relationships. Phase qubit, flux qubit, charge qubit and transmon. Quantum gates for single and two qubits. Superconducting qubit circuits: Initialization, readout and calibration. Flux line, drive line and read resonator. Design/simulation tools and hardware demonstrators.
Hardware quantum circuits (6 hours)
Quantum circuit design and synthesis: Clifford + T universal gate, summation and multiplication. Quantum fidelity and error correction. Randomized benchmarking and gate set tomography. Status of QC hardware and major developers. Alternative approaches: topological qubits, trapped ion qubits, trapped neutral atoms and adiabatic quantum computing. Cryogenic systems and CMOS electronic control.
Exercises (10 hours)
Numerical exercises will be illustrated on the following topics: quantum gates, quantum algorithms, spin qubits (Coulomb blockade, single electron transistor), superconducting qubits (Josephson junctions, phase/flux/charge qubits, transmons), analog control circuits.
Laboratory (10 hours)
Numerical laboratory sessions will be carried out on the design and simulation of superconducting quantum circuits with IBM’s Qiskit Metal ( https://qiskit.org/metal/ ). Experimental laboratory sessions will also be carried out remotely aimed at understanding the calibration and control of superconducting qubits.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
The assessment will rely on a written exam with problems and questions covering the whole course, including theoretical lectures, exercises and laboratory experiments. The number of problems may vary from 5 to 10, with each answer contributing to the overall score with a specific weight, that will be shown in the text.
Testi di riferimento
Ray LaPierre, Introduction to Quantum Computing, Editore: Springer Nature Switzerland AG, Anno edizione: 2021, ISBN: 978-3-030-69317-6
Daniel D. Stancil and Gregory T. Byrd, Principles of Superconducting Quantum Computers, Editore: Wiley, Anno edizione: 2022, ISBN: 9781119750727
Codice insegnamento 058171
QUANTUM COMMUNICATIONS
2° semestre · 5 CFU · IINF-03/A · 0 file
Aim of the course is to give to the students the knowledge of the principles at the basis of Quantum Communications. The applications of these principles to some relevant examples of quantum communication protocols, like…
Scheda dell'insegnamento
Obiettivi formativi
Aim of the course is to give to the students the knowledge of the principles at the basis of Quantum Communications. The applications of these principles to some relevant examples of quantum communication protocols, like quantum key distribution for secure transmission of information, also exploiting the quantum resource of entanglement (as in quantum teleportation and in quantum repeaters), will be presented.
Dublin descriptor DD1 (knowledge and understanding). Students will learn the basic quantum principles for the understanding of the applications of quantum communications.
Dublin descriptor DD2 (applying knowledge and understanding). Students will be able to analyze and describe quantum circuits for manipulating qubits as combination of quantum gates and representing them by means of the Bloch sphere. Students will acquire the capability of implementing the main quantum communication protocols and to calculate the performance of quantum key distribution systems.
Dublin descriptor DD5 (lifelong learning skills). Students will acquire the tools for comprehending the main aspects of present and future applicative developments in the field of quantum communications.
Programma
Theoretical bases: Quantum states, observables and quantum measurement. Uncertainty principle. Complementary observables. Quantum bits (qubits). Dirac notation. Single-qubit quantum gates. Pauli operators. Measurement of qubits. Bloch sphere representation. Pure and mixed states. Density operator. Von Neumann entropy. Entanglement of qubits. Partial trace. Bell states. Bell inequality. Multiple-qubit gates. CNOT gate. No-cloning theorem. Accessible information and Holevo bound.
Quantum communications protocols: Quantum key distribution (QKD). BB84 protocol. Quantum bit error rate (QBER), secure key rate and security threshold. Trusted nodes. Examples of physical implementation of QKD. Photon-number splitting attack and QKD with decoy states. Entanglement-based QKD. E91 and BBM92 protocols. Superdense coding. Quantum teleportation. Entanglement swapping. Entanglement distillation. Entanglement distribution. Quantum repeaters.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
The examen is written, with open questions and exercises on the topics explained during the lectures. It is possible to use at the examen only a standard calculator and a printed formulario. In detail the examen comprises:
- exercises to be solved numerically, in order to assess the expected learning outcomes related to Dublin descriptors DD1 and DD2;
- questions of theoretical type with open response, in order to assess the expected learning outcomes related to Dublin descriptors DD1, DD2 and DD5.
The maximum score of the examen is 33 and the grade of 30 cum laude is obtained when the score is at least 32.
Testi di riferimento
Reference notes for theory/examples/exercises presented on the blackboard during the lessons https://webeep.polimi.it/login/index.php
M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, Editore: Cambridge University Press, Anno edizione: 2000
Codice insegnamento 052470
QUANTUM OPTICS AND INFORMATION
2° semestre · 5 CFU · PHYS-03/A · 0 file
This course provides an introductory overview on the basic principles of quantum optics, their use to understand the fundamental mechanisms of light-matter interaction and the possibility to exploit these concepts to…
Scheda dell'insegnamento
Obiettivi formativi
This course provides an introductory overview on the basic principles of quantum optics, their use to understand the fundamental mechanisms of light-matter interaction and the possibility to exploit these concepts to manipulate information in a completely new way as in quantum communication and quantum computation protocols. The course is conceived as a starting point for more advanced studies.
Knowledge and understanding (DD1)
Attending the lectures and passing the exam will allow the student to:
- U nderstand the physical basis of quantum optical phenomena;
- Learn the fundamental mechanisms governing light-matter interaction;
- Learn the principles and the main protocols of quantum information.
Apply knowledge and understanding (DD2)
The student will be able to apply the basic knowledge described above to: - explain the operating principles of some prototypal optical devices developed for quantum information;
- deepen the understanding of physical phenomena encountered in other courses with a new perspective;
Communication skills (DD4)
The exam requests the students to communicate clearly what they have learnt, with rigorous argumentation.
Programma
Prelude to Quantum Optics
1. Introduction: theoretical and experimental foundations for the quantization of the electromagnetic field
2. Photodetection statistics: semiclassical model, violation of the semiclassical model by sub-Poissonian light
3. Formalism of quantum mechanics: axioms, bra-ket notation, matrix notation, Schroedinger and Heisenberg pictures
Quantization of the electromagnetic field
4. Quantization of the electromagnetic field: normal modes and normal variables for the classical electromagnetic field, postulate of the Hamiltonian of the field, Fock states and their properties
5. Quasi-classical states of the radiation field: definition and decomposition in the Fock basis, Glauber displacement operator, properties of quasi-classical states
Quantum interferometry
6. Quantum description of the beam splitter and simple notions of quantum interferometry
7. Squeezed states: definition and properties, the homodyne detection technique
Atoms and photons
8. The Jaynes-Cummings model for the interaction of a two-level atom with a quantized field: analysis of the uncoupled Hamiltonian, dressed states of the full Hamiltonian
9. Rabi oscillations induced by n photons, collapse and revival of Rabi oscillations induced by a coherent field
10. Single photon sources: single photon purity, indistinguishability, brightness; qualitative discussion of different types of single-photon sources
Quantum information
11. Single-qubit states and transformations, observables in the qubit space, no-cloning theorem
12. Quantum cryptography: elements of classical cryptography, the BB84 protocol for quantum key distribution
13. Entanglement and Bell states, Bell inequalities, the quantum teleportation protocol
14. Fundamentals of quantum computing: two qubit gates, quantum function evaluation, examples of quantum algorithms (Deutsch, Grover,...)
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The exam is in written form, and typically consists of 3 open questions, each on a different topic. An optional oral exam, requested by the student or by the teacher, may complete the evaluation.
The aim of the exam is to ascertain:
- the understanding of the physical basis of quantum optics and information (DD1);
- the knowledge of the definitions, theorems and general concepts related to quantum optics and quantum information (DD1);
- the capability to present and discuss in writings, both qualitatively and quantitatively, the quantum physical models and protocols relevant for the course, with clear and rigorous argumentations (DD2, DD4).
Testi di riferimento
Chirstopher Gerry and Peter Knight, Introductory quantum optics, Editore: Cambridge University Press, Anno edizione: 2005, ISBN: 978-0-521-52735-4
Serge Haroche, Jean-Michel Raimond, Exploring the Quantum: Atoms, Cavities, and Photons, Editore: Oxford University Press, Anno edizione: 2006, ISBN: 9780198509141
Giuliano Benenti, Giulio Casati, Davide Rossini, Giuliano Strini, Principles of Quantum Computation and Information, Editore: World Scientific, Anno edizione: 2019, ISBN: 9789813279995
Mark Fox, Quantum optics: an introduction, Editore: Oxford University Press, Anno edizione: 2006, ISBN: 978-0-19-856673-1
Codice insegnamento 054862
SCIENTIFIC COMPUTING TOOLS FOR ADVANCED MATHEMATICAL MODELLING
2° semestre · 5 CFU · MATH-05/A · 0 file
The course aims to: strengthen modeling and mathematical-numerical skills to face inter-disciplinary challenges by exploiting a learn-by-doing training model; consolidate the critical sense of identification of an…
Scheda dell'insegnamento
Obiettivi formativi
The course aims to:
strengthen modeling and mathematical-numerical skills to face inter-disciplinary challenges by exploiting a learn-by-doing training model;
consolidate the critical sense of identification of an appropriate modeling approach according to the problem under examination;
to foster teamwork skills and strengthen communication skills;
strengthen the ability to develop simulation scenarios using appropriate software. In this regard, for each assigned problem, a range of possibilities will be offered (Python, Matlab, Octave, C++, and, where possible, specific options in light of the development frameworks most used in the reference industrial world).
Problems will focus on engineering applications from different interdisciplinary fields.
After passing the exam, the student should be able to:
DD1 - Knowledge and understanding:
l earn and understand how to approach real-world engineering problems by applying data analysis and mathematical modeling;
l earn and understand how to exploit available software to build goal-oriented numerical schemes for solving engineering problems;
DD2 - Applying knowledge and understanding:
select an appropriate modeling approach and provide a rigorous m athematical formulat ion of a given problem;
d esign and implement numerical schemes for the approximation of the problem solution;
a nalyze, synthesize and visualize the numerical results;
DD3 - Making judgment:
identify the appropriate modeling approach for a given problem;
select an appropriate implementation strategy and software tool for the numerical approximation of the mathematical model;
assess and compare the performance of different models and methods;
i nterpret and critically analyze the numerical results;
DD4 - Communication skills:
describe an engineering problem, its mathematical form ulation, and its numerical approximatio n;
explain and motivate the modeling and methodological choices;
summarize and present the numerical results;
DD5 - Lifelong learning skills:
approach a generic engineering problem and implement a practical solution based on suitable numerical schemes.
Programma
The course aims at provid ing a systematic approach to solving real-world engineering problems. Students will address the problems assigned during the semester by working in small groups and under the lecturer’s supervision. This collaborative learning supports the strengthening of decision-making, critical thinking, and problem-solving skills.
T he assigned problems will guide the students in deepen ing and strengthen ing the following skills/methodologies:
mathematical formalization of a problem and identification of the appropriate modeling approach;
data analysis: preprocessing techniques, data fitting, noise models, machine learning, and dimensionality reduction techniques;
mathematical modeling and numerical approximation: ordinary and partial differential equations and numerical discretization techniques;
data-model integration: optimization techniques, neural networks, sampling methods, and data-assimilation techniques;
implementation of the proposed solution strategies using open-source P ython or C++ libraries, Matlab/Octave tools, or commonly used options in the industrial world;
visualization, interpretation, and communication of the numerical results.
The final evaluation of the student will result from an oral discussion of the assigned problems. The student will present the identifi ed and implemented approximation strategies and the numerical results. In addition, the final grade will comprise the assessment of the solutions' performance based on the checkpoints established by the lecturer. In the 5 CFUs version of the course, students will focus on a proportional subset of the projects.
Modalità d'esame
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
Valutazione continua obbligatoria
The course assessment focuses on the solutions provided by the student to the proposed real-world engineering problems. During the semester, the student will develop and implement approximation strategies for their solution by working in small groups. Checkpoints will monitor the progress of the student, contributing to the final evaluation.
The student will discuss the assigned problems, the design and implementation of numerical strategies, and the numerical results during an oral exam, which will assess:
the mathematical form ulation of the problems and the identification of appropriate modeling approaches (DD1, DD2 and DD3);
the capability in choosing and adapting suitable numerical methods and relative programming tools (DD1, DD2 and DD3);
the performance of the numerical strategies (DD3);
the ability to explain and motivate the modeling and methodological choices (DD4);
the quality and the originality of the adopted solution strategies (DD5).
Both checkpoints’ assessment and oral exam contribute to the final grade.
Testi di riferimento
Course material at disposal on the webeep website of Politecnico di Milano https://webeep.polimi.it/login/index.php
Brunton, S. L. and Kutz, J. N., Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control (2nd ed.), Editore: Cambridge: Cambridge University Press, Anno edizione: 2022, ISBN: 9781009089517
Quarteroni, A., Numerical Models for Differential Problems, 3rd Edition, Editore: Springer, Series: MS&A, Vol 16, Anno edizione: 2017, ISBN: 978-88-470-5522-3
Codice insegnamento 058173
STREAMING DATA ANALYTICS
1° semestre · 5 CFU · IINF-05/A · 0 file
The course provides the foundational concepts, methods, languages, and systems for ingesting, processing, and analyzing data that flows to enable real-time decisions. The course covers the topics of Streaming Data…
Scheda dell'insegnamento
Obiettivi formativi
The course provides the foundational concepts, methods, languages, and systems for ingesting, processing, and analyzing data that flows to enable real-time decisions. The course covers the topics of Streaming Data Engineering and Streaming Data Science.
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
Identify problems that can be addressed with big data techniques tailored for velocity
apply the stream data analysis technologies for solving real-world problems
Applying knowledge and understanding
Given specific project cases, students will be able to:
Define and implement a streaming data analysis solution for the problem
Apply it on real data streams from smart IoT sensors
Making judgements
Given specific project cases, students will be able to:
Learn how to decide which streaming data analysis solution to apply and how to evaluate this decision
Communication
Students will learn to:
Write a report on a project describing and motivating the decisions taken and the results obtained
Present their work in front of their colleagues and teachers
Lifelong learning skills
Students will learn how to develop a realistic streaming data analysis project in all its phases
Programma
Streaming Data Engineering
This Streaming Data Engineering part of the course covers theoretical and practical aspects of Event-Based Systems (EBS), Data Stream Management Systems (DSMS), and Complex Event Processing (CEP). It uses the Event Processing Language (EPL) to illustrate typical DSMS and CEP operations. This segment equips students with essential skills for real-time data processing and analysis.
Event-Based Systems emphasizes efficient data collection and integration from various sources and redistribution of events to sinks, ensuring high throughput and fault tolerance. In particular, it presents Apache Kafka because it enables handling large-scale data streams, making it essential for robust data pipeline architectures.
Stream ingestion and Event-based Architectures
Apache Kafka as an essential building block of streaming data pipelines
hands-on producer-consumer APIs
Case study: ingesting data for a global retail
The Event Processing Language is a rich language that allows users to specify typical operations present in DSMS and CEP easily. It provides the ability to filter, aggregate, and transform data as it arrives. Moreover it allows identifying meaningful patterns and relationships in real-time data streams, enabling the detection of complex events from simple events.
Filtering, aggregating, and windowing data streams
Joining Data streams
Using the "every" clause and pattern guards to tame the torrent effect *
Hands-on with EPL on case studies in Retail, IoT, and Industry 4.0
Scaling stream processing with Apache Spark Structured Streaming focuses on the real-time processing and analysis of large datasets. Apache Spark's structured streaming capabilities provide scalability, fault tolerance, and high performance, enabling advanced analytics on streaming data.
Efficient DSMS operations
Hard to implement CEP operations
Hands-on practice with Spark Structured Streaming
Streaming Data Science
The Streaming Data Science part of the course covers the theoretical and practical aspects of time Series Analytics, Streaming Machine Learning, and Continuous Learning, equipping students with essential skills for real-time data analysis.
Time Series Analysis (TSA) focuses on developing models to analyze and forecast data points in chronological order. TSA approaches capture temporal dependencies and patterns, such as trends and seasonality, enabling accurate predictions and insights. TSA methods are also adept at handling non-stationarity in data.
Stationarity and Decomposition
Time Series Forecasting baselines
Temporal Dependence and SARIMAX forecasting models
Advanced approaches to Time Series Forecasting
Hands-on with the Statsmodels e Darts Python libraries
Streaming Machine Learning (SML) proposes models able to learn from data streams over-time. These models are incrementally updated as soon new data becomes available, avoiding retraining them from scratch, and adapting to many forms of non-stationarity (a.k.a. Concept Drift).
Learning one sample at a time
Learning in the presence of Concept Drifts
Streaming algorithms for classification and regression
Hands-on with the River Python library
Continual Learning (CL) proposes strategies to address the problem of catastrophic forgetting when learning from a data stream using Deep Learning models. Forgetting happens when the model forgets what it learned before while learning a new concept after a drift. The goal is to achieve a balance between the ability to acquire new knowledge (plasticity) and the ability to remember past knowledge (stability).
CL Scenarios
Stability-plasticity dilemma
Evaluation metrics
CL strategies
Hands-on with the Avalanche Python library
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i condizionato (a scelta del docente), individuale, senza revisioni periodiche, con presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
The exam consists of a theoretical (written exam, with a possible oral discussion if necessary by the instructor) and an optional practical part (project work with oral presentation). Further contributions to the mark may come from optional continuous evaluations along the course using in-presence quizzes during the lessons and other interactive modalities in class (max two marks).
The written exam comprises a mix of theoretical questions regarding any course subjects and exercises regarding the technical content and how to apply it in practice. Students can get up to 30 in the written test. The whole exam is a closed-book evaluation. A minimum score on each part is requested.
The optional practical project requires using one or more of the technologies presented in the lectures. It solves a realistic streaming data analysis problem based on real or realistic datasets publicly available or provided by the teachers. Only students who get at least 27/30 in the written exam can opt for it. The maximum increment for the optional project is three marks.
The final grade is computed as follows: written text result + optional continuous evaluation result + optional practical project result. E.g., written text 27 + optional continuous evaluation 1 + optional practical project 3 = 30L
Type of assessment
Description
Dublin descriptor
Written test / continuous evaluation
Theoretical questions
Exercises focusing on streaming data analysis aspects
1,4
1, 2, 3
Assessment of project artefacts
Assessment of the design and implmenetation of the practical peoject work developed by the student
2, 3, 5
Oral presentation
Assessment of the presentation of the practical peoject developed by the student
2, 3, 4, 5
Testi di riferimento
the event processing language (EPL) https://esper.espertech.com/release-9.0.0/reference-esper/html_single/
Kreps, Jay, I Love logs: Event data, stream processing, and data integration., Editore: O'Reilly Media, Inc., Anno edizione: 2014 https://books.google.it/books?id=gdiYBAAAQBAJ&lpg=PR3&ots=3yOdY3Vi7S&dq=I%20love%20logs&lr&pg=PR3#v=onepage&q=I%20love%20logs&f=false
Spark Structured Streaming https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
George E. P. Box, Gregory C. Reinsel, Gwilym M. Jenkins, Greta M. Ljung, Time Series Analysis: Forecasting and Control, 5th Edition, ISBN: 978-1-118-67502-1 https://www.wiley.com/en-us/Time+Series+Analysis%3A+Forecasting+and+Control%2C+5th+Edition-p-9781118675021
Geoff Holmes, Ricard Gavaldà, Albert Bifet, Bernhard Pfahringer, Machine Learning for Data Streams: With Practical Examples in MOA, Editore: MIT Press, Anno edizione: 2018 https://www.google.it/books/edition/Machine_Learning_for_Data_Streams/0C9ZDwAAQBAJ?hl=en&gbpv=1
Lesort, T., Lomonaco, V., Stoian, A., Maltoni, D., Filliat, D., Rodríguez, N.D., Continual learning for robotics: Definition, framework, learning strategies, opportunities and challenges https://www.sciencedirect.com/science/article/am/pii/S1566253519307377
Codice insegnamento 056895
SYSTEM IDENTIFICATION AND PREDICTION
1° semestre · 5 CFU · IINF-04/A · 0 file
The general goal of the course is to enable students to extract (“learn”) from measured data useful information for automation, systems and control applications. The course covers the fundamentals of data-driven learning…
Scheda dell'insegnamento
Obiettivi formativi
The general goal of the course is to enable students to extract (“learn”) from measured data useful information for automation, systems and control applications. The course covers the fundamentals of data-driven learning of dynamical systems, with a focus on black-box system identification. Both linear and non-linear systems are considered. Prediction and forecasting are emphasized in time-series analysis and modelling as important applications of system identification. Each technique is treated both theoretically and practically through application examples. Examples of AI-based variable estimation are presented.
Dublin descriptor DD1, Knowledge and understanding
- Through theoretical lectures and numerical exercises sessions, students will achieve a compalgorithms for adaptive filtering, identification and control, the Kalman filter with various extensions, subspace algorithms for state-space identification, ainformation from a finite set of observations taken from an unknown system.
DD2, Applying knowledge and understanding - Students will be able to apply the mentioned methods to practical estimation, identification, prediction
DD3, Making judgements - Thanks to the project activity, the student will learn to formulate and solve autonomously a practical identification problem,
DD5, Lifelong learning skills - Students will be able to apply the methodologies learned throughout the course to tackle complex modeling and estimatread current research papers and understand the issues raised by current research in the field.
Programma
The program of the course is as follows.
Discrete-time linear dynamical systems: definition and analysis of model classes for Time Series and Input/Output models (ARMA, ARMAX)
Linear optimal prediction
Black-box identification from measured data-sets of Input/Output models (algorithm, analysis, validation)
Black-box identification from measured data-sets of state-space models
Variable estimation: Kalman Filter and Extended Kalman Filter - Examples of AI-based variable estimation.
Gray-box system-identification
Frequency-domany parametric estimation of models from data
Extension to non-linear dynamical systems AI-techniques
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i condizionato (a scelta del docente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam will be a written test in one of the official available dates. The exam will consist of both theoretical questions and simple (i.e., no computer-aide
In particular, the written exam is designed to assess the following Dublin Descriptors:
DD1 – Knowledge and understanding: students will be asked to demonstrate their understanding of the main problems in data-driven modelinidentification issues.
DD2 – Applying knowledge and understanding: students will be required to select, justify, and apply the most appropriate identification, estim
DD3 – Making judgements: through open-ended questions, students will be evaluated on their ability to critically analyze a given modeling or id
Clarity, rigor of exposition, and proper use of technical terminology will contribute to the final evaluation.
Testi di riferimento
Sergio M. Savaresi, Lecture notes
Sergio Bittanti, Model Identification and Data Analysis, Editore: Wiley, Anno edizione: 2019
M.S. Grewal, A.P. Andrews, Kalman Filtering: Theory and Practice Using MATLAB, Editore: Wiley Online Library, Anno edizione: 2008 http://read.pudn.com/downloads148/ebook/638857/Kalman%20Filtering%20-%20Theory%20and%20Practice%20Using%20MATLAB,%203rd%20Ed.pdf
Note: freely-available online
P. van Overschee, B.L. de Moor, Subspace Identification for Linear Systems: Theory, Implementation, Applications, Editore: Kluwer Academic Publishers ftp://ftp.esat.kuleuven.be/pub/SISTA/ida/reports/96-26a.pdf
L. Ljung, System Identification: theory for the user, Editore: Prentice-Hall
T.S. Soderstrom, P.G. Stoica, System Identification, Editore: Prentice-Hall
Codice insegnamento 054420
THERMAL MANAGEMENT FOR INFORMATION TECHNOLOGIES
2° semestre · 5 CFU · IIND-07/A · 0 file
The course aims to provide a comprehensive understanding of the fundamentals of Thermodynamics and Heat Transfer applied to the energy and thermal design challenges in Information Technologies. Through theoretical…
Scheda dell'insegnamento
Obiettivi formativi
The course aims to provide a comprehensive understanding of the fundamentals of Thermodynamics and Heat Transfer applied to the energy and thermal design challenges in Information Technologies. Through theoretical analysis and practical case studies, students will examine applications such as the cooling of electronic equipment for high-performance computing (HPC) systems and the heating, ventilation, and air conditioning (HVAC) of data centers. Particular attention is then given to the electrical aspects related to energy demand and supply in IT infrastructures, exploring their interaction with thermal management strategies and their impact on overall system efficiency and reliability. The course integrates the formulation of governing equations with suitable computational methods to support the design of energy-efficient and resilient IT environments.
Knowledge and Understanding
Demonstrate a comprehensive understanding of the fundamental concepts of energy, energy sources, and energy transfer mechanisms.
Explain the first and second laws of thermodynamics and their implications for energy conversion efficiency and entropy generation.
Describe the basic mechanisms of heat transfer — conduction, convection, and radiation — and their application to real engineering systems.
Understand the interrelation between thermal and electrical aspects in the energy management of IT systems and data centers.
Applying Knowledge and Understanding
Apply thermodynamic principles to perform energy balance in closed and open systems.
Conduct calculations for the properties of pure substances and mixtures and determine energy variations in different states.
Develop simplified models for steady and transient heat transfer problems and evaluate performance of heat exchangers and cooling systems.
Analyse and model thermal management issues in electronic equipment and data centers, integrating electrical and thermal considerations.
Making Judgements and Communication
Evaluate the efficiency and sustainability of different energy conversion systems.
Identify key factors influencing the reliability and resiliency of energy supply in IT infrastructures.
Communicate technical findings effectively, both in written and oral form, using appropriate scientific and engineering terminology.
Formulate reasoned judgments regarding design choices and energy management strategies in complex systems.
Programma
1. Fundamentals of Energy, Energy Sources, and Energy Needs
Basic concepts: systems, states, equilibrium, reversibility, and irreversibility.
Forms of energy: internal, mechanical, and other categories.
Mechanisms of energy transfer by heat and work, including mechanical, electrical, and magnetic forms.
Overview of global energy challenges and classification of energy resources.
2. The First and Second Laws of Thermodynamics
Energy balances for closed and open systems; mechanisms of energy transfer.
Energy conversion efficiencies and performance limits.
Heat engines, refrigerators, and heat pumps: physical limitations to efficiency.
Entropy, irreversibility, and lost work concepts.
3. Properties of Pure Substances
Heat capacities, phase-change enthalpy.
Energy, enthalpy, and entropy variations for gases, liquids, and solids.
4. Thermal Energy Transport
Fundamentals of heat conduction, convection.
Thermal resistances and transient analyses.
Heat exchangers and their performance analysis.
5. Heat Transfer in Electronic Equipment
Identification of thermal issues in electronic systems.
Modelling approaches for electronic cooling.
Overview of current and emerging thermal management technologies.
6. Energy Management of HPC infrastructures and and Data Centers
Integration of electrical and thermal energy management.
Resilience and reliability of energy supply systems.
Case studies on energy efficiency and optimization in HPC infrastructures and data centers.
Modalità d'esame
Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, senza presentazione/discussione finale
The final grade is determined through a two-fold assessment process designed to evaluate both theoretical mastery and practical competency.
1. Written Examination
The exam consists of a mix of theoretical questions and numerical exercises covering the entire course program.
Knowledge and Understanding: Theoretical questions assess the student’s grasp of fundamental principles in thermodynamics, heat transfer, and energy management. Students must demonstrate the ability to explain complex concepts and physical relationships with structural clarity.
Applying Knowledge and Understanding: Numerical exercises evaluate the capacity to perform quantitative analyses, specifically regarding energy balances and heat transfer processes within IT systems and data center environments.
2. Group Project Work
Students will work in small teams to tackle realistic case studies focused on high-performance computing (HPC) or data center applications.
Making Judgments: The project requires students to formulate and analyze problems independently, choosing appropriate methodologies for energy and thermal management.
Communication Skills: Evaluation is based on the technical accuracy of the solution, the soundness of the chosen methodology, and the clarity and professionalism of the final presentation.
Testi di riferimento
Michael J. Moran, Howard N. Shapiro, Bruce R. Munson e David P. DeWitt, Fundamentals of Engineering Thermodynamics, Editore: Mc Graw Hill, Anno edizione: 2018, ISBN: 978-1-119-39138-8
Material provided by lecturers webeep
Codice insegnamento 063498