- Docente: Mauro Mangia
- Credits: 6
- SSD: ING-INF/01
- Language: English
- Moduli: Mauro Mangia (Modulo 1) Francesco Conti (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Advanced Automotive Engineering (cod. 9239)
Also valid for Second cycle degree programme (LM) in Electronic Engineering (cod. 0934)
-
from Sep 19, 2023 to Nov 03, 2023
-
from Nov 07, 2023 to Dec 19, 2023
Learning outcomes
At the end of Module 1, the student has a complete understanding of the basic algorithms used to process large amounts of data and extract useful information, as well as of the software frameworks used for data analytics. In Module 2, the student learns the structure and architecture of high-performance processors and computing systems used data in large-scale contexts such as cloud computing.
Course contents
Algorithms (module 1 – Prof. Mauro Mangia):
- Introduction to Python: packages for data processing and visualization
- Data analytics: linear algebra for machine learning, basic of statistics and signal transformation
- Basics of machine learning: autoregressive models, clustering, classification problem, base of neural networks, autoencoders
- Dimensionality reduction, basis of linear algebra with high dimension
- Streaming algorithms: basic streaming algorithms for feature extraction, streaming approaches for the PCA/PSA problem.
Architectures (module 2 – Prof. Francesco Conti):
- Recap of basic computer architecture: from high-level languages to Instruction Set Architecture; memory hierarchy; in-order processors. Evaluating computers: latency and throughput, memory bandwidth, energy efficiency metrics.
- High-performance cache hierarchy: direct mapping & associative caches. Miss rate and penalty. Write-through and write-back caches.
- High-performance processors: branch prediction, out-of-order execution, speculation (main concepts).
- Vector and SIMD processing.
- Multi-cores: shared-memory and distributed parallel computing.
- Large-scale computing systems: warehouse and streaming computing; brief notes on storage and networking.
Readings/Bibliography
Main suggested reading for module 1:
Outlier Analysis
Charu C. Aggarwal
Springer (2nd edition, 2017)
Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
MIT Press (2016)
Main suggested readings for module 2:
Computer Architecture: a Quantitative Approach
John L. Hennessy, David A. Patterson
Morgan Kaufmann (2017)
The Datacenter as a Computer: Designing Warehouse-Scale Machines
Luiz A. Barroso, U. Holzle, P. Ranganathan
Morgan & Claypool Publishers (3rd edition)
Basic programming skills (Python / C) are mandatory for the course. Students that have not followed a basic computer architecture course are strongly encouraged to read preliminarily:
Computer Organization and Design RISC-V Edition: The Hardware Software Interface
David A. Patterson, John L. Hennessy
Morgan Kaufmann (2017)
Teaching methods
Frontal lectures + laboratory exercises with own laptop.
Assessment methods
Learning is assessed by means of a joint oral exam for the two modules on the topics discussed during the frontal lectures.
Teaching tools
Annotated slides and additional teaching materials available online.
All materials will be shared by means of the official Virtuale site of the course.
Office hours
See the website of Mauro Mangia
See the website of Francesco Conti