Reading courses correntemente attivi
Advanced Big Data Architectures
Instructor: Diego Reforgiato Recupero
CFU: 3
Prerequisite:
Big Data
Objectives:
The goal of this reading course is to develop an architecture with different big data frameworks able to process/analyze/handle a huge amount of information using cloud computing technologies. Well known use cases might be represented by NFL’s Atlanta Falcons to analyze the movement of players during practice sessions, Nike to develop ecological designs for its products, Delta airlines for customer sentiment analysis, Thomson Reuters uses sentiment analysis gained from Twitter data for its trading platform and Eikon market analysis, Macy’s collects big data about customer preferences and interests based on seasonality, price range, demographics, color, geography and various other characteristics.
Topics (not limited to):
- Apache Spark
- Apache Hadoop
- Apache Storm
- Apache Pig
- Apache Hbase
- Apache Hive
- Apache Cassandra
- Elastic Search
- Mongo DB
Teaching methodology:
The reading course is related to the development of a project agreed with the instructor related to the development of an architecture which will include a set of Big Data technologies that the student would like to explore and learn to solve a specific task. Periodic meetings using Agile approach will be organized and the student will learn how to integrate the different Big Data technologies and the benefits of each of them in the designed architecture for the underlying task.
References:
- https://spark.apache.org/
- https://hadoop.apache.org/
- https://storm.apache.org/
- https://hbase.apache.org/
- https://pig.apache.org/
- https://hive.apache.org/
- https://cassandra.apache.org/
- https://www.elastic.co/
- https://www.mongodb.com/
Assignments:
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (diego.reforgiato@unica.it) on the Teams platform or Skype.
Advanced Blockchain Technologies
Instructors: Michele Marchesi, Roberto Tonelli
CFU: 3
Prerequisite:
PSAB, Progetto e Sviluppo di Applicazioni Blockchain (Design and Development of Blockchain Apps)
Objectives:
Besides more traditional and consolidated blockchains, such as Bitcoin and Ethereum public blockchains, and Hyperledger and Tendermint permissioned ones, there are important new initiatives,collectively called as “blockchain 3.0”, or even “4.0”.
The main objective of this reading course is to give an overview of the most prominent of these blockchains, such as for instance (but not limited to) Polkadot, Cardano, Solana, Algorand. In particular, this reading course will present a comparative analysis of the main new blockchains, from the perspective of related software technology, preferred fields of application, general acceptance and financial value. Then, the course will deal with specific applications of these blockchains in the fields of non-fungible tokens (NFT), decentralized finance, supply chain management, and/or other industrial applications.
Topics:
1. Key features and limitations of existing main blockchains
– Bitcoin, its limited throughput and huge energy consumption
– Ethereum, its issues and evolution to overcome them
2. Blockchain 3.0 initiatives
– Ethereum 2.0
– Polkadot
– Ethereum for permissioned blockchains
3. Other blockchains - possibly:
– Cardano
– Solana
– Algorand
4. Practical application development
– Reasoned choice of a proof-of-concept application and development of a related project
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and/or technical documents, and periodic meetings with the instructor.
References:
[1] Upgrading Ethereum to radical new heights: https://ethereum.org/en/eth2/
[2] Polkadot: https://polkadot.network/
[3] Cardano:https://www.cardano.org/
[4] Algorand: https://www.algorand.com/
[5] Solana: https://solana.com/
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a blockchain application, regarding one of the ones addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructors are available by appointment via email (marchesi@unica.it), on the Teams platform.
Applied Computer Vision for Life Sciences and Security
Instructor: Andrea Loddo
CFU: 3
Prerequisite:
- Image Processing and Analysis
- Computer Vision (optional)
- Deep Learning (optional)
Objectives:
Nowadays, computer vision-based systems are everywhere and adopted for many purposes, from medicine to security and quality control.
Concerning healthcare systems, they collect and provide most medical data in digital form. The availability of medical data enables many artificial intelligence applications. There is a growing interest in the quantitative analysis of clinical images acquired by positron emission tomography, computed tomography, magnetic resonance imaging, or microscopy techniques.
Computer vision applied to video surveillance deals with the real-time acquisition, processing, and management of video from cameras installed in public and private places for multiple purposes, however, related to the concept of security. It can involve the public sphere, fighting crime and preventing offenses, and the private sphere to ensure personal safety and tranquillity. The large category of video surveillance systems includes all the equipment installed in urban contexts (squares, streets, and monuments), in crowded places (stations, subways, airports, stadiums), in banks, in private homes and industrial sites, as well as systems for monitoring traffic (vehicular, air, naval) and those for environmental control (fires, floods, landslides).
Many possible applications of computer vision in agriculture and botany exist, such as detecting pathologies for the preventive identification of diseases on crop plants, optimizing automated irrigation, and recognizing and classifying contamination on seeds, leaves, or plants.
Regardless of the task, however, the increasing amount of available data may lead to a more significant effort to make methods based on computer vision and artificial intelligence useful in real-world applications.
Moreover, this task is even more challenging due to the high variability of data, the availability of various imaging techniques, and the need to consider data from multiple sensors and sources.
After introducing the concept and challenges of image processing, computer vision, and artificial intelligence, the course will address the following critical topics at state the art.
In particular, it aims to provide an overview of recent advances in the field and analyze how these techniques can be employed in the typical image processing workflow, from image acquisition to classification, including retrieval, detection, and classification.
Topics:
- Medical image analysis for the following types of diagnosis:
- neurodegenerative diseases from CT, MRI, PET (Alzheimer's, Parkinson's, multiple sclerosis);
- COVID19 from X-ray, CT, or multiple biomarkers;
- malaria from peripheral blood samples;
- red blood cell diseases or abnormalities from peripheral blood samples;
- leukemia or other white blood cell abnormalities from peripheral blood samples;
- tumors or other pathologies from histological samples;
- macular degeneration, glaucoma, diabetic retinopathy from retinal fundus or optic disc specimens
- Botanical image analysis:
- cataloging plants from leaf images;
- cataloging plants from seed images;
- detection and classification of plant diseases from leaf images;
- detection and classification of plant diseases from fruit images;
- fruit quality estimation;
- classification of the type of fruit.
- Analysis of video surveillance images and videos:
- counting people in a crowd;
- identification of people;
- identification of individuals;
- re-identification of individuals;
- face recognition;
- detection of abnormal behavior.
- Image retrieval:
- Biomedical imaging to retrieve similar sections or samples from a biomarker
- Biomedical imaging to support the diagnosis.
- Open issues and research challenges
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give a seminar, introducing the fundamental topics of the course and the work directions. In the second part, the students will improve their knowledge of the course topics through independent study of scientific papers and periodic meetings with the instructor.
References for each topic (selection):
On medical image analysis topic:
- Andrea Loddo, Sara Buttau, Cecilia Di Ruberto, Deep learning-based pipelines for Alzheimer's disease diagnosis: A comparative study and a novel deep-ensemble method, Computers in Biology and Medicine, 2021, 105032
- Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Detection of red and white blood cells from microscopic blood images using a region proposal approach. Comput. Biol. Medicine 116: 103530 (2020)
- Andrea Loddo, Cecilia Di Ruberto, Michel Kocher, Recent Advances of Malaria Parasites Detection Systems Based on Mathematical Morphology. Sensors 18(2): 513 (2018)
- Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Histological Image Analysis by Invariant Descriptors. ICIAP (1) 2017: 345-356, 2016
- Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, A leucocytes count system from blood smear images - Segmentation and counting of white blood cells based on learning by sampling. Mach. Vis. Appl. 27(8): 1151-1160 (2016)
On botanical image analysis topic:
- Andrea Loddo, Mauro Loddo, Cecilia Di Ruberto, A novel deep learning based approach for seed image classification and retrieval. Comput. Electron. Agric. 187: 106269 (2021)
- Andrea Loddo, Cecilia Di Ruberto, On the Efficacy of Handcrafted and Deep Features for Seed Image Classification. J. Imaging 7(9): 171 (2021)
On analysis of video surveillance images and videos topic:
- Emanuele Ledda, Lorenzo Putzu, Rita Delussu, Andrea Loddo, Giorgio Fumera, How Realistic Should Synthetic Images Be for Training Crowd Counting Models? CAIP (2) 2021: 46-56
On image retrieval:
- Lorenzo Putzu, Andrea Loddo, Cecilia Di Ruberto, Invariant Moments, Textural and Deep Features for Diagnostic MR and CT Image Retrieval. CAIP (1) 2021: 287-297
Assignments:
The exam is composed of an oral test and a project development test. The first one concerns a topic chosen by the student among those covered in the course. The student will also have to design and implement a simple prototype of an application task based on computer vision concerning one of the topics covered in the course. The project can be carried out individually or by a team of students.
Further information:
For further information or any queries, the instructor is available by appointment via e-mail (andrea.loddo@unica.it) on the Teams platform.
Artificial Intelligence Applications for Healthcare – Module 1
Instructor: Silvia Maria Massa
CFU: 3
Prerequisites: Data Mining
Objectives: The healthcare sector is facing numerous challenges, including staff shortages, inefficient patient flows, prolonged hospital stays, and inadequate communication methods. To address these problems, harnessing smart medical devices and artificial intelligence methods to extract significant health information in a real-time modality is a promising approach. However, there are several research problems to be addressed in the pervasive healthcare field. This lecture course will address some key research issues in this field. The course will begin with an introduction to the vision and challenges in pervasive healthcare, providing an overview to the student. It will then focus on the different techniques for querying and analyzing data streams from pervasive healthcare sensors. Finally, possible privacy issues in pervasive healthcare will be examined and potential countermeasures to ensure the security and confidentiality of patient information will be discussed.
Topics:
1. Pervasive healthcare: vision and challenges
2. Stream data mining
3. AI algorithms for pervasive healthcare
4. Privacy in pervasive healthcare
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give seminars of two hours, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Arnrich, Bert, et al. "Pervasive healthcare." Methods of information in medicine 49.01 (2010): 67-73.
[2] Gaber, Mohamed Medhat, et al. "Data stream mining in ubiquitous environments: state?of?the?art and current directions." Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery 4.2 (2014): 116-138.
[3] Motwani, Anand, Piyush Kumar Shukla, and Mahesh Pawar. "Ubiquitous and smart healthcare monitoring frameworks based on machine learning: A comprehensive review." Artificial Intelligence in Medicine (2022): 102431.
[4] Ghosh, Kaushik, et al. "AI in Pervasive Healthcare: A Survey." International Conference on Advances in Data Science and Computing Technologies. Singapore: Springer Nature Singapore, 2022.
[5] Detweiler, C. A., and Koen V. Hindriks. "A survey of values, technologies and contexts in pervasive healthcare." Pervasive and Mobile Computing 27 (2016): 1-13.
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a pervasive sensor-based application, regarding one of the topics addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructor is available by appointment via email (silviam.massa@unica.it), in presence or online.
Artificial Intelligence Applications for Healthcare – Module 2
Instructor: Silvia Maria Massa
CFU: 3
Prerequisites: Artificial Intelligence Applications for Healthcare – Module 1
Objectives: In various application domains of pervasive healthcare, including patient monitoring and home-based health management, it is crucial to continuously monitor vital body parameters and discreetly observe everyday human activities. A widely adopted approach involves the deployment of sensors to capture a range of information, including the user's position, motion, and interactions with objects, alongside the real-time monitoring of physiological indicators. This reading course is designed to delve into the primary methodologies for sensor-based health status recognition, highlighting their strengths and weaknesses. The course will begin with a focus on the technological aspect and provide an overview of the typical structure of sensor-based health status recognition systems. It will also engage in discussions about design considerations. Subsequently, the course will delve into data-driven approaches for recognizing health status, including an exploration of various techniques for extracting features and employing supervised and semi-supervised learning. Additionally, the course will cover knowledge-based methods that rely on ontological models for understanding health status, the environment, and the sensors involved. Lastly, it will examine hybrid approaches that aim to combine the strengths of both knowledge-based and data-driven techniques.
Topics:
1. Technologies and issues.
2. Data-driven health status recognition.
3. Knowledge-based health status recognition.
4. Hybrid health status recognition systems.
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give seminars of two hours, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Pantelopoulos, Alexandros, and Nikolaos G. Bourbakis. "A survey on wearable sensor-based systems for health monitoring and prognosis." IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews) 40.1 (2009): 1-12.
[2] Mshali, Haider, et al. "A survey on health monitoring systems for health smart homes." International Journal of Industrial Ergonomics 66 (2018): 26-56.
[3] Anikwe, Chioma Virginia, et al. "Mobile and wearable sensors for data-driven health monitoring system: State-of-the-art and future prospect." Expert Systems with Applications 202 (2022): 117362.
[4] Liu, Shaofeng, and Pascale Zaraté. "Knowledge based decision support systems: A survey on technologies and application domains." Group Decision and Negotiation. A Process-Oriented View: Joint INFORMS-GDN and EWG-DSS International Conference, GDN 2014, Toulouse, France, June 10-13, 2014. Proceedings. Springer International Publishing, 2014.
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a pervasive sensor-based application, regarding one of the topics addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructor is available by appointment via email (silviam.massa@unica.it), in presence or online.
Cryptocurrencies, smart contracts, and decentralized finance
Instructor: Massimo Bartoletti
CFU: 3
Prerequisites:
Knowledge of basic concepts in cryptography: asymmetric ciphers, cryptographic hash functions, digital signature schemes, authentication protocols, key distribution protocols. Good knowledge of the English language.
Objectives:
Through Bitcoin and other cryptocurrencies, users can perform secure and (almost) anonymous transfers of money without the intermediation of trusted authorities. On the other side, cryptocurrencies can be targeted by cyber-attacks at various levels: from the communication network to the consensus mechanism of the blockchain, to its application logic and economic mechanism. Attacks at the applications level are particularly risky for those blockchain platforms which also provide smart contracts (for instance, vulnerabilities in the implementation of Ethereum smart contracts have allowed attackers to subtract large amounts of money). In this course we study security aspects of cryptocurrencies and smart contracts. In particular, we survey the growing scientific literature on cryptocurrencies in order to understand how attacks can be performed, and which analysis techniques can be developed to counteract them.
Topics:
1. Introduction to cryptocurrencies
- The archetypal blockchain: Bitcoin
- Bitcoin pros and cons
- Alternative blockchain designs: Ethereum, Algorand, Hyperledger Fabric, Cardano, Diem
2. Smart contracs
- Designing smart contracts in Bitcoin
- Designing smart contracts in Ethereum
- Alternative designs of contracts and domain specific languages
3. Security analysis of smart contracts
- Model checking
- Formal verification
4. Decentralized finance
- Non-fungible tokens
- Lending pools
- Automated market makers
- Attacks to the economic mechanism of DeFi applications
5. Open issues and research challenges
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller & Steven Goldfeder. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press (2016).
[2] Joseph Bonneau, Andrew Miller, Jeremy Clark, Arvind Narayanan, Joshua A. Kroll, and Edward W. Felten. 2015. SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies. In: IEEE Security & Privacy (2015)
[3] Nicola Atzei, Massimo Bartoletti, Tiziana Cimoli. A survey of attacks on Ethereum smart contracts. In: Principles of Security and Trust (2017)
[4] Garay, J.A., Kiayias, A., Leonardos, N.: The Bitcoin backbone protocol: Analysis and applications. In: EUROCRYPT (2015)
[5] Luu, L., Chu, D.H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. In: ACM CCS (2016)
[6] Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. 2016. A fistful of Bitcoins: characterizing payments among men with no names. Commun. ACM 59, 4 (2016)
[7] Sam M. Werner, Daniel Perez, Lewis Gudgeon, Ariah Klages-Mundt, Dominik Harz, William J. Knottenbelt: SoK: Decentralized Finance (DeFi). In: CoRR abs/2101.08778 (2021)
[8] Purathani Praitheeshan, Lei Pan, Jiangshan Yu, Joseph Liu, Robin Doss. Security Analysis Methods on Ethereum Smart Contract Vulnerabilities: A Survey. In: CoRR abs/1908.08605 (2019)
[9] Mauro Conti, Sandeep Kumar E, Chhagan Lal, Sushmita Ruj. A Survey on Security and Privacy Issues of Bitcoin. In: IEEE Commun. Surv. Tutorials 20(4): 3416-3452 (2018)
[10] Kushal Babel, Philip Daian, Mahimna Kelkar, Ari Juels. Clockwork Finance: Automated Analysis of Economic Security in Smart Contracts. In: CoRR abs/2109.04347 (2021)
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a tool regarding one of the topics addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructor is available by appointment via email (bart@unica.it), on the Teams platform.
Cybersecurity
Instructor: Massimo Bartoletti
CFU: 3
Prerequisites:
Knowledge of basic concepts in computer science: programming languages, computer networks, web applications, basic cryptography. Good programming skills and good knowledge of the English language.
Objectives:
The course aims at exposing the student to various topics in cybersecurity, focussing on a practical approach based on the resolution of cybersecurity challenges. The needed theoretical background will be provided through online resources.
Topics:
- Reversing: Revolving around the art of reverse-engineering, this category will have you using reversing tools to find out what a certain script or program does to find the flag.
- Misc: Miscellaneous Challenges that don't strictly fit into any other given category. Variety is key here.
- Stego: Revolving around the art of finding or embedding hidden messages in plain-looking objects, the Stego categories will have you use steganographic tools and your detective intuition to search for the hidden flag.
- Crypto: Revolving around cryptographic functions, this category will have you decrypting objects that were locked away with up-to-date cryptological processes.
- Web: Revolving around web-based applications, this category will require you to detect, exploit and search through different vulnerable web applications.
- Forensics: Revolving around data recovery and forensics, this category will require you to nitpick at small details in recovery data batches to try to get to the bottom of what happened.
- OSINT: Revolving around publicly available data farming, this category will teach how to laterally move between search engines' pesky algorithms to try to find the missing piece of the puzzle.
- Pwn: Revolving around binary exploitation and memory corruption, this category will have you creating exploits.
- Mobile: Revolving around multiple types of handheld devices, this category will have you scrolling on social media to like our posts and analyzing the intrinsics of different mobile applications to find the hidden embedded functionalities and flags.
- Hardware: Revolving around penetrating different hardware systems with your software, this category will have you analyzing different attack methodologies for objects we use every single day, even if we know it or not.
- Machine Paths: The machine paths are a set of machines that have specific learning outcomes.
Teaching methodology:
The reading course is provided through an online gamified cybersecurity platform. The platform will propose challenges of various categories and difficulty levels to the students. Working at these challenges will improve their knowledge about cybersecurity and, more broadly, about computer science. Since the number of licenses for the online platforms is limited, if the number of interested students exceeds that of available licenses, the students will be selected by the instructor on a CV best-match basis. All the teaching material is in English.
References:
HackTheBox website: https://www.hackthebox.com/
Assignments:
During the course, the online platform will propose various cybersecurity challenges to the student. The platform will automatically evaluate the solutions proposed by the students. This evaluation will be the basis for the final course marking.
Development of Robotic Applications
Instructor: Diego Reforgiato Recupero
CFU: 3
Prerequisite:
Programming skills
Objectives:
The goal of this reading course is to develop applications (e.g., AI, games, entertainment, computer vision, etc.) on top of existing robotic platforms. NAO and ZORA humanoid robots are two examples available at the human-robot interaction laboratory (http://hri.unica.it) for the reading course. Others might be bought by the instructor depending on the needs or desire of the students.
Topics (not limited to):
- NAO Robot
- Pepper Robot
- Universal Robots
- Turtlebot
- Google Assistant
- Alexa
Teaching methodology:
The reading course is related to the development of a project agreed with the instructor about the development of an application on top of a chosen robotic platform. Periodic meetings using Agile approach will be organized and the student will learn how to integrate the code with the decided robotic platform mastering the functionalities of it. The students will have the opportunity to join the Human Robot Interaction Laboratory (http://hri.unica.it) of the Department of Mathematics and Computer Science of the University of Cagliari where European projects are carried out for potential involvement in certain technical tasks at international level with foreign institutions.
References:
- https://www.softbankrobotics.com/emea/en/nao
- https://www.softbankrobotics.com/emea/en/pepper
- https://www.turtlebot.com/
Assignments:
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (diego.reforgiato@unica.it) on the Teams platform or Skype.
Digital Fabrication
Instructor: Marco Livesu
CFU: 3
Prerequisites: Geometric Algorithms and Spatial Data Structures (Algoritmi e Strutture Dati 2). Good knowledge of the English language.
Objectives:
The course aims to present the student the whole pipeline for digital fabrication, spanning from the design of digital models to be created with some manufacturing hardware, the understanding of the diverse materials, physical and mechanical constraints that each manufacturing hardware imposes, and the process planning pipeline, that is, the set of processes and algorithms that are necessary to turn the digital representation of a 3D shape into a set o machine instructions for a 3D printer or a CNC milling machine.
Topics:
- Fabrication-aware shape decomposition and packing
- Build direction and shape orientation
- Overhangs and temporary support structures tu sustain them
- Slicing
- Machine toolpaths for material deposition/carving
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give seminars to introduce the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
Design, Representations, and Processing for Additive Manufacturing.
M.Attene, M.Livesu, S.Lefebvre, T.Funkhouser, S.Rusinkiewicz, S.Ellero, J.Martìnez, A.H.Bermano.
Morgan & Claypool Publishers, 2018
Computational Fabrication Seminars
https://computational-fabrication.org/
Assignments:
A thirty-minute seminar in which the student will present one topic of the course, contextualizing its positioning within the state of the art and possibly suggesting further to improve the understanding of the subject.
Further information:
The instructor is available by appointment via email (marco.livesu@unica.it) for interactive teaching.
Domain Theory
Instructor: G. Michele Pinna
CFU: 3
Prerequisite:
None
Objectives:
The theoretical understanding of what a program does is the basis for writing correct software. The purpose of this reading course is to present the mathematical base for reasoning about data and programs.
Topics:
1. Domain Theory
– Definitions and constructions
– Semantics of programming languages
2. Data Type as Lattices
– Construction of data types
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give nine seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Plotkin G., Domains, Pisa Notes, available on the web
[2] Abramsky, S. and A. Jung, Domain theory, in: Handbook of Logic in Computer Science, Vol. III, OUP, 1994 pp. 1–168.
[3] Dana S. Scott: Data Types as Lattices. SIAM Journal on Computing 5(3): 522-587 (1976)
Assignments:
An oral test. The oral test regards a topic chosen by the student among the ones addressed in the course.
Further information:
For interactive teaching, the instructor is available by appointment via email (gmpinna@unica.it)
End-User Development – Module 1
Instructor: Lucio Davide Spano
CFU: 3
Prerequisite:
An introductory course on Human-Computer Interaction (e.g., IUM).
Objectives:
End-User Development (EUD) approaches focus on supporting users without programming skills in developing or adapting software applications. EUD can reduce the time and costs needed for customization and increase software quality. This reading course will cover the motivation for EUD, the main concepts applied in tool supporting it, the main features and application field documented in the literature. At the end of the course, the student will gain a general understanding of the research field and its application.
Topics:
- Definition of End User Development
- Psychological issues in End-User Development
- Characterization of End-User Developers
- Guidelines for creating EUD systems
- Applications employing EUD
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
- Lieberman, H., Paternò, F., Wulf, V. (2006). End-User Development. Springer.
- Paternò, F., & Wulf, V. (2017). New Perspectives in End-User Development, Springer.
- Cypher, A., Dontcheva, M., Lau, T., & Nichols, J. (2010). No code required: giving users tools to transform the web. Morgan Kaufmann.
Assignments:
An oral test through a seminar. The oral test regards a topic chosen by the student among the ones addressed in the course.
Further information:
For interactive teaching, the instructor is available by appointment via email (davide.spano@unica.it), on the Teams platform.
End-User Development – Module 2
Instructor: Lucio Davide Spano
CFU: 3
Prerequisite:
End-User Development Module 1
Objectives:
End-User Development (EUD) approaches focus on supporting users without programming skills in developing or adapting software applications. EUD can reduce the time and costs needed for customization and increase software quality. This reading course deepen the student’s knowledge on one of the application fields, such as (but not limited to) business and data management, web applications and mashups, smart objects and environments, games and entertainment, education and teaching, healthcare and wellness, mobile applications, robotics.
Topics:
- EUD in business and Data Management
- EUD in web applications and mashups
- EUD in smart objects and environments
- EUD in games and entertainment
- EUD in education and teaching
- EUD in healthcare and wellness
- EUD in mobile applications
- EUD in robotics.
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give a introductory seminars of two hours, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
- Barricelli, B. R., Cassano, F., Fogli, D., & Piccinno, A. (2019). End-user development, end-user programming and end-user software engineering: A systematic mapping study. Journal of Systems and Software, 149, 101-137.Paternò, F., & Wulf, V. (2017). New Perspectives in End-User Development, Springer.
- F. Cabitza, D. Fogli, R. Lanzilotti, A. Piccinno Rule-based tools for the configuration of ambient intelligence systems: a comparative user study Multimedia Tools Appl., 76 (4) (2017), pp. 5221-5241, 10.1007/s11042-016-3511-2
- G. Desolda, C. Ardito, M. Matera Empowering end users to customize their smart environments: model, composition paradigms, and domain-specific tools ACM Trans. Comput.-Hum. Interact., 24 (2) (2017), pp. 1-52, 10.1145/3057859
- Fogli, D., Lanzilotti, R., & Piccinno, A. (2016). End-User Development Tools for the Smart Home: A Systematic Literature Review. In N. Streitz & P. Markopoulos (Eds.), Distributed, Ambient and Pervasive Interactions: 4th International Conference, DAPI 2016, Held as Part of HCI International 2016, Toronto, ON, Canada, July 17–22, 2016, Proceedings (pp. 69–79). Cham: Springer International Publishing. doi:10.1007/978-3-319-39862-4_7.
Assignments:
A literature review on a topic selected by the student. An oral seminar regarding the literature review.
Further information:
For interactive teaching, the instructor is available by appointment via email (davide.spano@unica.it), on the Teams platform.
Feature Selection for High-Dimensional Data
Instructor: Barbara Pes
CFU: 3
Prerequisite: Data Mining
Objectives:
In the context of high-dimensional data analysis, feature selection aims at reducing the number of variables (features) of the problem at hand, by removing irrelevant and redundant information as well as noisy factors, and thus facilitating the extraction of valuable knowledge on the domain of interest. The objective of this reading course is to provide a comprehensive overview of best practices and research issues in the field of feature selection. First, the basic concepts of high-dimensional data analysis will be introduced. Then, the course will provide a review of the main feature selection approaches proposed in the literature, with a discussion of how to apply them in different real-world scenarios. Finally, open issues and research challenges in the field will be outlined.
Topics:
- Introduction to high-dimensionality
- Foundations of feature selection
- Review of feature selection methods
- Filter, wrapper and embedded approaches
- Hybrid and ensemble approaches
- Robustness of feature selection algorithms
- Application of feature selection to real problems
- Open issues and research challenges in the field
Teaching methodology:
In the first part of the course, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course and providing information on the course materials (textbooks and scientific papers). Next, the students will improve their knowledge of the course topics by means of independent study and periodic meetings with the instructor.
References:
- Bolón-Canedo V., Sánchez Maroño N., Alonso-Betanzos A., Feature Selection for High-Dimensional Data, Springer, 2015.
- Ian H. Witten, Eibe Frank, Mark A. Hall, Christopher J. Pal, DATA MINING: Practical Machine Learning Tools and Techniques, Morgan Kaufmann, 2016.
- A selection of papers from the feature selection literature.
Assignments:
The assessment for this course includes:
- an oral test on the course topics;
- a project work involving the application of feature selection to a real-world case study.
The project can be done either individually or by a team of students.
Further information:
For assistance and interactive teaching, the instructor is available on the Teams platform.
Geometry Processing
Instructor: Riccardo Scateni
CFU: 3
Prerequisites:
Geometric Algorithms and Spatial Data Structures (Algoritmi e Strutture Dati 2). Good knowledge of the English language.
Objectives:
The course treats the representation of digital geometric objects. The focus is on manipulating objects represented using their surfaces and will not treat the volumetric representations. It will, thus, deal with the surface representation using functions (implicit representations) or data structures for meshes (explicit representation). The problem of parameterization of the surface, in whole or in part, will be treated in deep detail. The study will lead to understanding how a digital object can be modified by deforming its shape or changing its representation.
Topics:
Surface Representations; Mesh Data Structures; Parameterization; Remeshing; Simplification & Approximation; Deformation.
Teaching methodology:
There will be two parts making the reading course. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the student will improve their knowledge of the course topics utilizing independent study of scientific papers and periodic meetings with the instructor.
References:
Mario Botsch, Leif Kobbelt, Mark Pauly, Pierre Alliez, Bruno Lévy. “Polygon Mesh Processing.” A K Peters, 2010.
Assignments:
A thirty-minute seminar in which the student will explain one topic of the course framing it in the state-of-the-art, suggesting further reading for deepening the understanding of the subject.
Further information:
The instructor is available by appointment via email (riccardo@unica.it) for interactive teaching on the Teams platform.
Pervasive Computing – Module 1
Instructor: Daniele Riboni
CFU: 3
Prerequisites:
Advanced Data Management and Data Mining
Objectives:
The miniaturization of sensing and communication devices and their integration in everyday objects is turning the pervasive computing vision into reality. Nonetheless, there are several research issues to be addressed to fully realize the potential of pervasive computing. This reading course will address some key research issue in this field. After an introduction to the vision and challenges of pervasive computing, the course will address context awareness, which is a key requirement for seamlessly adapting pervasive services to the current situation of users. Then, the course will review different methods to query and mine streams of data coming from pervasive sensors. Finally, the course will discuss privacy issues in pervasive computing and possible countermeasures.
Topics:
1. Pervasive computing: vision and challenges
– Pervasive vs Mobile vs Distributed
– Scenarios and requirements
2. Context-awareness
– Object-role, spatial, and ontology-based context models
– Handling uncertainty
– Hybrid context models
3. Stream data mining
– Theoretical foundations: data-based techniques, task-based techniques
– Mining techniques: clustering, classification, frequency counting, time series analysis
4. Privacy in pervasive computing
– Pervasive computing applications, privacy threats, and requirements
– Privacy preserving approaches: access control, obfuscation, anonymity, privacy-preserving data mining
– Open issues and research challenges
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Mahadev Satyanarayanan. Pervasive computing: vision and challenges. IEEE Personal Commun. 8(4): 10-17 (2001)
[2] Maria R. Ebling, Roy Want. Satya Revisits “Pervasive Computing: Vision and Challenges”. IEEE Pervasive Computing 16(3): 20-23 (2017)
[3] Claudio Bettini, Oliver Brdiczka, Karen Henricksen, Jadwiga Indulska, Daniela Nicklas, Anand Ranganathan, Daniele Riboni. A survey of context modelling and reasoning techniques. Pervasive and Mobile Computing 6(2): 161-180 (2010)
[4] Mohamed Medhat Gaber, Arkady B. Zaslavsky, Shonali Krishnaswamy. Mining data streams: a review. SIGMOD Record 34(2): 18-26 (2005)
[5] Claudio Bettini, Daniele Riboni. Privacy protection in pervasive systems: State of the art and technical challenges. Pervasive and Mobile Computing 17: 159-174 (2015)
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a pervasive sensor-based application, regarding one of the topics addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructor is available by appointment via email (riboni@unica.it), on the Teams platform.
Pervasive Computing – Module 2
Instructor: Daniele Riboni
CFU: 3
Prerequisites:
Pervasive Computing - Module 1
Objectives:
In several application domains of pervasive computing, including healthcare and home automation, it is important to unobtrusively monitor everyday human activities. A popular approach consists in the use of sensors to capture position, motion, interaction with objects, and contextual information. This reading course addresses the main approaches to sensor-based activity recognition, highlighting their strong and weak points. Starting from a technological point of view, the course will introduce the general structure of sensor-based activity recognition systems and discuss design issues. Data-driven activity recognition approaches will be addressed, reviewing different methods for feature extraction, supervised learning, and semi-supervised learning. The course will also discuss knowledge-based approaches based on ontological models of activities, environment, and sensors. Finally, hybrid approaches will be considered, which try to take the best of the two worlds by coupling knowledge-based and data-driven techniques.
Topics:
1. Technologies and issues.
– General structure of sensor-based activity recognition systems.
– Design issues: selection of attributes and sensors, obtrusiveness, accuracy, energy consumption, processing, flexibility.
2. Data-driven activity recognition.
– Data-driven methods: feature extraction, supervised learning, semi-supervised learning.
– Evaluation of data-driven systems.
– Research challenges.
3. Knowledge-based activity recognition.
– Knowledge-based vs data-driven activity recognition.
– Formal ontologies for human behavior recognition.
– Evaluation of knowledge-based systems.
4. Hybrid activity recognition systems.
– Hybrid statistical-ontological reasoning for activity recognition.
– Unsupervised recognition of interleaved activities through ontological and probabilistic reasoning.
– Sensor-based activity recognition through Web mining and computer vision.
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
[1] Oscar D. Lara, Miguel A. Labrador. A Survey on Human Activity Recognition using Wearable Sensors. IEEE Communications Surveys and Tutorials 15(3): 1192-1209 (2013)
[2] Natalia Díaz Rodríguez, Manuel P. Cuéllar, Johan Lilius, Miguel Delgado Calvo-Flores. A survey on ontologies for human behavior recognition. ACM Comput. Surv. 46(4): 43:1-43:33 (2013)
[3] Daniele Riboni, Claudio Bettini. COSAR: hybrid reasoning for context-aware activity recognition. Personal and Ubiquitous Computing 15(3): 271-289 (2011)
[4] Daniele Riboni, Timo Sztyler, Gabriele Civitarese, Heiner Stuckenschmidt. Unsupervised recognition of interleaved activities of daily living through ontological and probabilistic reasoning. UbiComp 2016: 1-12
[5] Daniele Riboni, Marta Murtas. Web Mining & Computer Vision: New Partners for Object-Based Activity Recognition. WETICE 2017: 158-163
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple activity recognition method and will carry on experiments using an existing dataset. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructor is available by appointment via email (riboni@unica.it), on the Teams platform.
Petri Nets
Instructor: G. Michele Pinna
CFU: 3
Prerequisite:
None
Objectives:
Petri net is one among several mathematical modeling formalisms for the description of distributed and concurrent systems. It is a class of discrete event dynamic system. Like industry standards such as UML activity diagrams, Business Process Model and Notation and EPCs, Petri nets offer a graphical notation for stepwise processes that include choice, iteration, and concurrent execution. Unlike these standards, Petri nets have an exact mathematical definition of their execution semantics, with a well-developed mathematical theory for process analysis.
Topics:
1. Petri Nets
– Definitions and constructions
– Categorical approach
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give nine seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and periodic meetings with the instructor.
References:
- Petri, Carl Adam; Reisig, Wolfgang (2008). Petri net. Scholarpedia. 3 (4): 6477. doi:10.4249/scholarpedia.6477.
- Desel, Jörg; Juhás, Gabriel (2001). What Is a Petri Net? Informal Answers for the Informed Reader. In Ehrig, Hartmut; et al. Unifying Petri Nets. LNCS. 2128. Springerlink.com. pp. 1–25. Retrieved 2014-05-14.
- Esparza, Javier; Nielsen, Mogens (1995) [1994]. Decidability issues for Petri nets – a survey. Bulletin of the EATCS (Revised ed.).
- Murata, Tadao (April 1989). Petri Nets: Properties, Analysis and Applications. Proceedings of the IEEE. 77 (4): 541–558. doi:10.1109/5.24143. Retrieved 2014-10-13.
- Reisig, Wolfgang (2013), Understanding Petri Nets – Modeling Techniques, Analysis Methods, Case Studies. Springer, ISBN 978-3-642-33277-7
Assignments:
An oral test. The oral test regards a topic chosen by the student among the ones addressed in the course.
Further information:
For interactive teaching, the instructor is available by appointment via email (gmpinna@unica.it)
Processi stocastici applicati
Docente: Massimo Cannas – massimo.cannas@unica.it
Tipologia: Triennale e Magistrale
CFU: 3+3
Prerequisiti:
Modulo I → Calcolo delle Probabilità
Modulo II → Modulo I
Obiettivi:
fornire una panoramica dei principali modelli probabilistici dinamici, con particolare attenzione alla loro simulazione in ambiente R. Per ogni modello verranno presentate alcune applicazioni notevoli.
Programma:
Modulo I
- Introduzione: il gioco di Laplace-De Moivre e la rovina del giocatore
- Catene di Markov discrete (probabilità e tempi di ingresso/ritorno, distribuzioni stazionarie e comportamento asintotico)
- Metodi computazionali: metodo montecarlo e algoritmo di Metropolis-Hastings
Modulo II
- Processo di Poisson
- Introduzione alle catene di Markov continue
Testi di riferimento:
- Privault, N. Understanding Markov Chains, 2nd Edition (2018), Springer Undergraduate Mathematics Series
- Karlin, S. Taylor, H. An introduction to Stochastic Modeling, 3rd Edition (1998), The Academic Press
Modalità didattiche:
Per ogni anno accademico il reading course si articola come segue:
- Nella prima parte il docente terrà delle lezioni frontali di introduzione agli argomenti del corso (6 ore per anno accademico);
- nella seconda parte gli studenti perfezioneranno la loro conoscenza dei contenuti del corso, incontrando il docente periodicamente per chiarimenti (30 ore per anno accademico).
Modalità di verifica:
La verifica della preparazione avviene oralmente attraverso lo svolgimento di esercizi/codici R o Python che verranno assegnati durante il corso. È prevista inoltre la presentazione di un argomento di interesse per il quale verranno fornite indicazioni bibliografiche aggiuntive.
Quantum Computing for Computer Scientists
Instructor: Diego Reforgiato Recupero
CFU: 3
Prerequisite:
Programming skills
Objectives:
The course provides a description of what quantum computing is, what qubits and the operators applied on them are. Moreover, it focuses on existing libraries already created for simulation of quantum computer programming or for real execution on IBM Quantum System.
Topics:
- Superposition
- Entanglement and Reversibility
- Qubits
- Operators and Measurement
- Teleportation
- Superdense Coding
- Bell’s Inequality
- Examples of Quantum Circuits for Algorithms implementation
Teaching methodology:
The reading course is related to the study of fundamentals of quantum computing, its programming scheme and its potential. Periodic meetings using Agile approach will be organized to follow the agreed directions with the student.
References:
- Quantum Computing: An Applied Approach. Jack D. Hidary. Springer
- Quantum Computing for Computer Scientists. Noson S. Yanofsky, Mirco A. Mannucci. Cambridge
- Quantum Computer Science – An Introduction. N. David Mermin. Cambridge
- https://www.youtube.com/watch?v=F_Riqjdh2oM&t=2959s
Assignments:
A project development of a quantum circuit using Python libraries to implement certain algorithms. The project can be done either individually or by a team of students. Opportunity to send the algorithm to the IBM Quantum System on IBM Cloud. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (diego.reforgiato@unica.it) on the Teams platform or Skype.
Secure Cyber-Physical Systems - Module 1
Instructors: Livio Pompianu, Salvatore Carta
CFU: 3
Prerequisites:
- Understanding of basic Computer architectures and networks
- Programming languages
- English language
Objectives
Modern cyber-physical systems leverage and integrate cutting-edge technologies such as Artificial Intelligence, Internet of Things, Blockchain, Web, and Cloud Technologies.
This course aims to develop an application that, exploiting one or more of the key-technologies mentioned above, improves the state of the art of cyber-physical systems with a strong emphasis on security. Students will address sector-specific enterprise problems like scalability, edge intelligence, interoperability, data security, and privacy, ensuring robust and secure solutions.
Topics (not limited to):
- Design, Development and Testing of IoT modules:
- Real-time data analytics for decision-making in smart factories
- Fog and Edge computing for low-latency processing in industrial environments
- Predictive maintenance using IoT sensors
- Securing IoT devices and communication channels
- Design, Development and Testing of AI modules:
- Integration of AI for human-machine collaboration and safety monitoring
- Applying machine learning algorithms for predictive analytics
- Ensuring the security and privacy of AI models and data
- Design, Development and Testing of Blockchain modules:
- Implementing cybersecurity measures for protecting industrial systems
- Blockchain-enabled supply chain management and transparency
- Developing secure and tamper-proof industrial transactions
- Design, Development and Testing of Cloud modules:
- Optimization of cloud infrastructure for scalable industrial applications
- Developing cloud-based platforms for remote monitoring and management of industrial assets
- Ensuring data security and compliance in cloud environments
Teaching methodology
Students will explore advanced techniques through a blend of theory and hands-on projects. With a focus on real-world applications in industry, they will tackle sector-specific challenges such as real-time monitoring, process certification, resource optimization, and especially data security and privacy. Practical assignments will be designed to reflect contemporary security challenges in cyber-physical systems.
References
- Zhou, Jun, et al. "Security and privacy for cloud-based IoT: Challenges." IEEE Communications Magazine 55.1 (2017): 26-33.
- Yaacoub, Jean-Paul A., et al. "Cyber-physical systems security: Limitations, issues and future trends." Microprocessors and microsystems 77 (2020): 103201.
- Uddin, Md Ashraf, et al. "A survey on the adoption of blockchain in iot: Challenges and solutions." Blockchain: Research and Applications 2.2 (2021): 100006
- Kayan, Hakan, et al. "Cybersecurity of industrial cyber-physical systems: A review." ACM Computing Surveys (CSUR) 54.11s (2022): 1-35.
- Graf, Mike, Ralf Küsters, and Daniel Rausch. "Accountability in a permissioned blockchain: Formal analysis of hyperledger fabric." 2020 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2020.
- Hyperledger Fabric Tutorials: https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.html
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information
For interactive teaching, the instructors are available by appointment via email (livio.pompianu@unica.it, salvatore@unica.it) and on the Teams platform.
Secure Cyber-Physical Systems - Module 2
Instructors: Livio Pompianu, Salvatore Carta
CFU: 3
Prerequisites:
- Secure Cyber-Physical Systems - Module 1
- Understanding of basic cybersecurity principles
- Advanced programming skills
Objectives
This advanced course aims to deepen the knowledge and skills acquired in Module 1, focusing on advanced security techniques and practices for cyber-physical systems. Students will work on complex enterprise problems, emphasizing resilience, advanced threat detection, secure system architecture, and compliance with industry standards. The course will also cover the integration of advanced security protocols and the development of secure-by-design systems.
Topics (not limited to):
- Advanced Security in IoT Modules
- Developing secure communication protocols for IoT devices
- Advanced threat detection and mitigation strategies for IoT environments
- Implementing zero-trust architectures in IoT networks
- Advanced Security in AI Modules:
- Secure deployment of AI models in critical applications
- Protecting AI systems from adversarial attacks
- Ensuring data integrity and confidentiality in AI-driven processes
- Advanced Security in Blockchain Modules:
- Enhancing blockchain security through advanced cryptographic techniques
- Developing secure smart contracts for industrial applications
- Implementing decentralized identity management systems
- Advanced Security in Cloud Modules:
- Designing secure multi-cloud architectures for industrial applications
- Advanced data encryption and key management techniques
- Compliance with regulatory standards and frameworks in cloud environments
Teaching Methodology
Students will explore advanced techniques through a blend of theory and hands-on projects. With a focus on real-world applications in industry, they will tackle sector-specific challenges such as real-time monitoring, process certification, resource optimization, and especially data security and privacy. Practical assignments will be designed to reflect contemporary security challenges in cyber-physical systems.
References
- Zhou, Jun, et al. "Security and privacy for cloud-based IoT: Challenges." IEEE Communications Magazine 55.1 (2017): 26-33.
- Yaacoub, Jean-Paul A., et al. "Cyber-physical systems security: Limitations, issues and future trends." Microprocessors and microsystems 77 (2020): 103201.
- Uddin, Md Ashraf, et al. "A survey on the adoption of blockchain in iot: Challenges and solutions." Blockchain: Research and Applications 2.2 (2021): 100006
- Kayan, Hakan, et al. "Cybersecurity of industrial cyber-physical systems: A review." ACM Computing Surveys (CSUR) 54.11s (2022): 1-35.
- Graf, Mike, Ralf Küsters, and Daniel Rausch. "Accountability in a permissioned blockchain: Formal analysis of hyperledger fabric." 2020 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2020.
- Hyperledger Fabric Tutorials: https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.html
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information
For interactive teaching, the instructors are available by appointment via email (livio.pompianu@unica.it, salvatore@unica.it) and on the Teams platform.
Solidity Patterns and Applications
Instructors: Michele Marchesi, Roberto Tonelli
CFU: 3
Prerequisite:
PSAB, Progetto e Sviluppo di Applicazioni Blockchain (Design and Development of Blockchain Apps)
Objectives:
The Ethereum blockchain, and its main language Solidity are becoming one of the de-facto standards for smart contract development. After the introduction to these technologies taught in PSAB course, this reading course will address some more advanced research issue in this field. After an introduction to the challenges of blockchain computing and dApp development, the course will address how to develop Solidity programs following security and gas-saving patterns. Then, the course will deal with novel applications of Ethereum in the fields of supply chain management, energy saving, document certifications, non-fungible tokens (NFT), and/or decentralized finance.
Topics:
1. Ethereum security
– Known attacks
– Security patterns
2. Ethereum gas consumption
– Known limitations
– Gas-saving patterns
3. Software engineering for dApp development
– The ABCDE methodology
– Libraries for client-side development
– Open issues and research challenges
4. Practical application development
– Reasoned choice of a proof-of-concept application and development of a related project
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give three seminars of two hours each, introducing the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by means of independent study of scientific papers and/or technical documents, and periodic meetings with the instructor.
References:
[1] Solidity documentation: https://docs.soliditylang.org/.
[2] L. Marchesi, M. Marchesi, R. Tonelli. ABCDE--agile block chain DApp engineering. Blockchain: Research and Applications 1(1-2), (2020). DOI: https://doi.org/10.1016/j.bcra.2020.100002
[3] L. Marchesi, M. Marchesi, L. Pompianu, R. Tonelli. Security checklists for Ethereum smart contract development: patterns and best practices. Online at: https://arxiv.org/pdf/2008.04761 (2020).
[4] L. Marchesi, M. Marchesi, G. Destefanis, G. Barabino and D. Tigano. Design Patterns for Gas Optimization in Ethereum. 2020 IEEE International Workshop on Blockchain Oriented Software Engineering (IWBOSE), pp. 9-15 (2020). doi: 10.1109/IWBOSE50093.2020.9050163.
[5] F Schär. Decentralized finance: On blockchain-and smart contract-based financial markets. FRB of St. Louis Review (2021). Online at: https://papers.ssrn.com/sol3/Delivery.cfm/RePEc_fip_fedlrv_91428.pdf?abstractid=3843844&mirid=1
Assignments:
An oral test and a project development test. The oral test regards a topic chosen by the student among the ones addressed in the course. The student will also design and implement a simple prototype of a Solidity application, regarding one of the topics addressed in the course. The project can be done either individually or by a team of students.
Further information:
For interactive teaching, the instructors are available by appointment via email (marchesi@unica.it), on the Teams platform.
Advanced Data Visualization
Instructor
Gianmarco Cherchi
CFU
3
Prerequisites
The student should know the basics of visualizing data with the most common visualization idioms. If possible, but not mandatory, the student should have passed the Data Visualization exam (Bachelor's degree). Otherwise, the student will learn the basis of the discipline autonomously during this course.
Objectives
We live in an era in which we daily produce and consume vast amounts of data. Regardless of how they are generated or what they represent, we always run into the same problem: visualizing the data. Understanding the dataset, knowing the task we want to facilitate with the visualization, and figuring out the most appropriate visualization idioms are not always trivial problems. Bar or pie charts often are not the best choice. In this course, the student will explore advanced visualization techniques for graphically representing complex datasets. We will address the most recent and modern visualization techniques by analyzing and studying the most recent scientific progress in this field.
Topics
- Data Visualization hints
- Data and Dataset
- Advanced idioms for visualizing complex data
- Open challenges
Teaching methodology
The reading course is divided into two parts. In the first part, the instructor will give seminars to introduce the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by studying scientific papers autonomously and having periodic meetings with the instructor.
References
- T. Munzner: Visualization Analysis and Design
- S. Murray: Interactive Data Visualization for the web
- Other books and papers provided by the teacher during the course.
Assignments
At the end of the course, the student will prepare a 45-minute seminar on a topic covered during the course, previously coordinated with the instructor. This will be followed by a Q&A of about 15 minutes. Depending on the covered topic, the seminar can be replaced or integrated with a project involving implementing visualization idioms with web technologies.
Further infomation
You can get more information by contacting the teacher at g.cherchi@unica.it
AI methods for Digital Transformation - Module 1 (foundational)
Instructors
Alessandro Sebastian Podda, Salvatore Carta
CFU
3
Prerequisites
- Understanding of basic statistics
- Programming languages
- English language
Objectives
This project-based course aims to equip students with proficiency in the foundational AI techniques, focusing on convolutional networks, recurrent networks, and LSTMs, on digital transformation domains including healthcare, tourism, finance, and industry. Students will solve sector-specific problems like consumer behavior prediction, financial forecasting, medical diagnosis and fraud detection. By course end, students will develop foundational Artificial Intelligence solutions for real-world challenges in diverse sectors.
Topics
- Artificial Intelligence Methods for Smart Cities
- Object Detection and Tracking in Smart Environments
- Anomaly and Event Detection in Industry
- Time Series Forecasting for Financial Risk Stratification
- Medical diagnosis
- Knowledge Extraction
- Semantic Enrichment of Cultural Data
Teaching methodology
Students will explore foundational Artificial Intelligence techniques through a blend of hands-on projects. With a focus on real-world applications in healthcare, tourism, finance, and industry, they'll tackle sector-specific challenges such as medical diagnosis and consumer behavior prediction, in the context of digital transformation.
References
n.a.
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further infomation
For interactive teaching, the instructors are available by appointment via email ({sebastianpodda|salvatore}@unica.it) on the Teams platform.
AI methods for Digital Transformation - Module 2 (advanced)
Instructors
Alessandro Sebastian Podda, Salvatore Carta
CFU
3
Prerequisites
- Statistics (basic notions)
- Python programming
- English language
- Module 1 of this reading course
Objectives
This project-based course aims to equip students with proficiency in the advanced AI techniques, focusing on tranformers, autoencoders, LLM and – more in general – Generative AI methods, on digital transformation domains that include healthcare, tourism, finance, and industry. For example, students may solve sector-specific problems like consumer behavior prediction, financial forecasting, fraud detection, medical diagnosis. By course end, students will develop advanced Generative AI solutions for real-world challenges in diverse sectors.
Topics
- Artificial Intelligence Methods for Smart Cities
- Object Detection and Tracking in Smart Environments
- Anomaly and Event Detection in Industry
- Time Series Forecasting for Financial Risk Stratification
- Medical diagnosis
- Knowledge Extraction
- Semantic Enrichment of Cultural Data
Teaching methodology
Students will explore advanced Artificial Intelligence techniques (like LLMs) through a blend of hands-on projects. With a focus on real-world applications in healthcare, tourism, finance, and industry, they'll tackle sector-specific challenges related to the digital transformation context.
References
n.a.
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further infomation
For interactive teaching, the instructors are available by appointment via email ({sebastianpodda|salvatore}@unica.it) on the Teams platform.
Artificial Intelligence in Pharmacology
Instructor: Ludovico Boratto
CFU: 3
Prerequisite
Background on Machine Learning and/or Deep Learning
Objectives
The goal of this reading course is to apply Machine Learning and Deep Learning techniques to a big sample of patients with specific pathologies (e.g., ADHD, Substance Use Disorder, Bipolar Disorder, etc.) to validate the effectiveness of a model in predicting treatment response to a given drug. Examples of architectures include Recurrent Neural Networks (RNNs) and Long Short-Term Memory Networks (LSTMs) which are well-suited in processing sequential and time-series data, which is crucial when considering the progression of symptoms and treatment responses over time. In alternative, Graph Neural Networks (GNNs) might be utilized to explore the complex interdependencies and interactions between different symptoms and comorbidities. By representing symptoms and comorbid conditions as nodes in a graph, GNNs can capture the intricate patterns that might influence the treatment response. This reading course is a collaboration with the Pharmacology Section at the University of Pisa, which will provide the datasets, research questions, and domain-specific knowledge to complete the course (i.e., no background in Pharmacology is needed, only technical skills will be required).
Topics (not limited to)
- Recurrent Neural Networks
- Long Short-Term Memory Networks
- Graph Neural Networks
- (The choice of the model will be evaluated based on the task at end, the characteristics of the data, the skills of the student(s), and the recent advances in the literature)
Teaching methodology
The reading course is related to the development of a project agreed with the instructor related to the development of an architecture which will include a set of Machine Learning/Artificial Intelligence technologies that the student would like to explore and learn to solve a specific task. Periodic meetings using Agile approach will be organized and the student will learn how to integrate the different technologies and the benefits of each of them in the designed architecture for the underlying task.
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (ludovico.boratto@unica.it), or on the Teams platform.
Explainable Applied Artificial Intelligence
Instructor: Ludovico Boratto
CFU: 3
Prerequisite
Background on Machine Learning and/or Deep Learning
Objectives
The goal of this reading course is to study explainable models to support the decision-making in applied domains, such as education, health, and agriculture. Examples of Artificial Intelligence models include recommender systems based on knowledge graphs that, by exploiting Reinforcement Learning, suggest content of interest to the users, explaining why something was suggested to them. Examples of applications include the suggestion of (i) online courses to support fair and transparent learning, (ii) environmentally sustainable and healthy recipes, and (iii) sustainable farming choices to reduce costs and pollution in precision agriculture. The instructor will provide references to the models, pointers to the datasets, and research questions; no domain-specific knowledge in the application fields is needed, only technical skills will be required.
References
Topics (not limited to)
- Trustworthy and Explainable AI
- Reinforcement Learning
- Knowledge Graphs
- (The choice of the models will be evaluated based on the task at end, the characteristics of the data, the skills of the student(s), and the recent advances in the literature)
Teaching methodology
The reading course is related to the development of a project agreed with the instructor related to the development of an architecture which will include a set of Machine Learning/Artificial Intelligence technologies that the student would like to explore and learn to solve a specific task. Periodic meetings using Agile approach will be organized and the student will learn how to integrate the different technologies and the benefits of each of them in the designed architecture for the underlying task.
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (ludovico.boratto@unica.it), or on the Teams platform.
Interactive proof assistants
Instructor
Massimo Bartoletti
CFU
3
Prerequisites
Basic knowledge of propositional and predicate logics and of functional programming (e.g., in Ocaml).
Objectives
The goal of this reading course is to introduce students to interactive proof assistants - powerful tools that automate routine aspects of constructing formal proofs while relying on human input for more complex reasoning. Widely used proof assistants, such as Coq, Lean4, Isabelle, Agda, Twelf, ACL2, and PVS, have been instrumental in developing rigorous, formally verified proofs in both mathematics and computer science. Throughout this course, students will engage with hands-on tutorials, gaining practical experience in using these systems to build and verify their own proofs.
Topics
- Functional Programming Basics
- Proofs by Induction
- Working with Structured Data and Lists
- Polymorphism and Higher-Order Functions
- Proof Tactics
- Tautologies in classical and intuitionistic logic
- Inductively Defined Propositions
- Total and Partial Maps
- The Curry-Howard Correspondence
- Induction Principles
- Properties of Relations
- Simple Imperative Programs
Teaching methodology
The reading course starts with a general introduction to the topic of interactive proof assistants. After that, the students will independently study the assigned teaching material on Coq or Lean4 and work at the proposed exercises. Periodic meetings with the instructor will be arranged in order to check the progress.
References
- Software Foundations Volume 1 - Logical Foundations: https://softwarefoundations.cis.upenn.edu/lf-current/index.html
- Learning Lean4: https://leanprover-community.github.io/learn.html
Assignments
The teaching material includes several exercises in increasing order of difficulty.
Applied Computer Vision for Life Sciences and Security - Part 1
Instructor: Andrea Loddo
CFU: 3
Prerequisite:
Image Processing and Analysis
Computer Vision (optional)
Deep Learning (optional)
Objectives:
Nowadays, computer vision-based systems are everywhere and adopted for many purposes, from medicine to security and quality control.
Concerning healthcare systems, they collect and provide most medical data in digital form. The availability of medical data enables many artificial intelligence applications. There is a growing interest in the quantitative analysis of clinical images acquired by positron emission tomography, computed tomography, magnetic resonance imaging, or microscopy techniques.
Computer vision applied to video surveillance deals with the real-time acquisition, processing, and management of video from cameras installed in public and private places for multiple purposes, however, related to the concept of security. It can involve the public sphere, fighting crime and preventing offenses, and the private sphere to ensure personal safety and tranquility. The large category of video surveillance systems includes all the equipment installed in urban contexts (squares, streets, and monuments), in crowded places (stations, subways, airports, stadiums), in banks, in private homes and industrial sites, as well as systems for monitoring traffic (vehicular, air, naval) and those for environmental control (fires, floods, landslides).
Many possible applications of computer vision in agriculture and botany exist, such as detecting pathologies for the preventive identification of diseases on crop plants, optimizing automated irrigation, and recognizing and classifying contamination on seeds, leaves, or plants.
Regardless of the task, however, the increasing amount of available data may lead to a more significant effort to make methods based on computer vision and artificial intelligence useful in real-world applications.
Moreover, this task is even more challenging due to the high variability of data, the availability of various imaging techniques, and the need to consider data from multiple sensors and sources.
After introducing the concept and challenges of image processing, computer vision, and artificial intelligence, the course will address the following critical topics at state of the art.
In particular, it aims to provide an overview of recent advances in the field and analyze how these techniques can be employed in the typical image processing workflow, from image acquisition to classification, including retrieval, detection, and classification on a topic of interest of the student, even with the most advanced.
Topics:
1. Medical image analysis for the following types of diagnosis:
a. Neurodegenerative diseases from CT, MRI, PET (Alzheimer's, Parkinson's, multiple sclerosis);
b. COVID19 from X-ray, CT, or multiple biomarkers;
c. Malaria from peripheral blood samples;
d. Red blood cell diseases or abnormalities from peripheral blood samples;
e. Leukemia or other white blood cell abnormalities from peripheral blood samples;
f. Tumors or other pathologies from histological samples;
g. Macular degeneration, glaucoma, diabetic retinopathy from retinal fundus or optic disc specimens
2. Botanical image analysis:
a. Cataloging plants from leaf images;
b. Cataloging plants from seed images;
c. Detection and classification of plant diseases from leaf images;
d. Detection and classification of plant diseases from fruit images;
e. Fruit quality estimation;
f. Classification of the type of fruit.
3. Analysis of video surveillance images and videos:
a. Counting people in a crowd;
b. Identification of people;
c. Identification of individuals;
d. Re-identification of individuals;
e. Face recognition;
f. Detection of abnormal behavior.
4. Fake news detection:
a. News articles classification as real or fake with both text and images;
b. Deepfake detection.
5. Image retrieval:
a. Biomedical imaging to retrieve similar sections or samples from a biomarker;
b. Biomedical imaging to support the diagnosis.
6. Open issues and research challenges.
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give a seminar, introducing the fundamental topics of the course and the work directions. In the second part, the students will improve their knowledge of the course topics through independent study of scientific papers and periodic meetings with the instructor.
References for each topic (selection):
On medical image analysis topic:
Andrea Loddo, Sara Buttau, Cecilia Di Ruberto, Deep learning-based pipelines for Alzheimer's disease diagnosis: A comparative study and a novel deep-ensemble method, Computers in Biology and Medicine, 2021, 105032
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Detection of red and white blood cells from microscopic blood images using a region proposal approach. Comput. Biol. Medicine 116: 103530 (2020)
Andrea Loddo, Cecilia Di Ruberto, Michel Kocher, Recent Advances of Malaria Parasites Detection Systems Based on Mathematical Morphology. Sensors 18(2): 513 (2018)
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Histological Image Analysis by Invariant Descriptors. ICIAP (1) 2017: 345-356, 2016
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, A leucocytes count system from blood smear images - Segmentation and counting of white blood cells based on learning by sampling. Mach. Vis. Appl. 27(8): 1151-1160 (2016)
On botanical image analysis topic:
Andrea Loddo, Mauro Loddo, Cecilia Di Ruberto, A novel deep learning based approach for seed image classification and retrieval. Comput. Electron. Agric. 187: 106269 (2021)
Andrea Loddo, Cecilia Di Ruberto, On the Efficacy of Handcrafted and Deep Features for Seed Image Classification. J. Imaging 7(9): 171 (2021)
On analysis of video surveillance images and videos topic:
Emanuele Ledda, Lorenzo Putzu, Rita Delussu, Andrea Loddo, Giorgio Fumera, How Realistic Should Synthetic Images Be for Training Crowd Counting Models? CAIP (2) 2021: 46-56
Delussu, R., Putzu, L. & Fumera, G. Synthetic Data for Video Surveillance Applications of Computer Vision: A Review. Int J Comput Vis (2024)
On fake news detection:
Luca Zedda, Alessandra Perniciano, Andrea Loddo, Cecilia Di Ruberto, Manuela Sanguinetti, Maurizio Atzori: Snarci at SemEval-2024 Task 4: Themis Model for Binary Classification of Memes. SemEval@NAACL 2024: 853-858
On image retrieval:
Lorenzo Putzu, Andrea Loddo, Cecilia Di Ruberto, Invariant Moments, Textural and Deep Features for Diagnostic MR and CT Image Retrieval. CAIP (1) 2021: 287-297
Assignments:
The exam is composed of two parts: an oral test and a project development test. The first one concerns a topic chosen by the student and agreed with the teacher among those covered in the course. At the end of the first part, the student will present, in a 30 minutes seminar, the contents of the course and the chosen topic, and he/she will answer any questions in a Q&A of about 10 minutes. The student will also have to design and implement a simple prototype of an application task based on computer vision concerning the chosen topic. The project can be carried out individually or by a team of students.
Further information:
For further information or any queries, the instructor is available by appointment via e-mail (andrea.loddo@unica.it) or on the Teams platform (andrea.loddo).
Applied Computer Vision for Life Sciences and Security - Part 2
Instructor: Andrea Loddo
CFU: 3
Prerequisite:
Applied Computer Vision for Life Sciences and Security - Part 1
Objectives:
Writing code (or extending existing codebases) to deal with a specific topic (ideally faced in the part 1 of the reading course, but not mandatory).
Topics:
1. Medical image analysis for the following types of diagnosis:
a. Neurodegenerative diseases from CT, MRI, PET (Alzheimer's, Parkinson's, multiple sclerosis);
b. COVID19 from X-ray, CT, or multiple biomarkers;
c. Malaria from peripheral blood samples;
d. Red blood cell diseases or abnormalities from peripheral blood samples;
e. Leukemia or other white blood cell abnormalities from peripheral blood samples;
f. Tumors or other pathologies from histological samples;
g. Macular degeneration, glaucoma, diabetic retinopathy from retinal fundus or optic disc specimens
2. Botanical image analysis:
a. Cataloging plants from leaf images;
b. Cataloging plants from seed images;
c. Detection and classification of plant diseases from leaf images;
d. Detection and classification of plant diseases from fruit images;
e. Fruit quality estimation;
f. Classification of the type of fruit.
3. Analysis of video surveillance images and videos:
a. Counting people in a crowd;
b. Identification of people;
c. Identification of individuals;
d. Re-identification of individuals;
e. Face recognition;
f. Detection of abnormal behavior.
4. Fake news detection:
a. News articles classification as real or fake with both text and images;
b. Deepfake detection.
5. Image retrieval:
a. Biomedical imaging to retrieve similar sections or samples from a biomarker;
b. Biomedical imaging to support the diagnosis.
6. Open issues and research challenges.
Teaching methodology:
The reading course is divided into two parts. In the first part, the instructor will give a seminar, introducing the fundamental topics of the course and the work directions. In the second part, the students will improve their knowledge of the course topics through independent study of scientific papers and periodic meetings with the instructor.
References for each topic (selection):
On medical image analysis topic:
Andrea Loddo, Sara Buttau, Cecilia Di Ruberto, Deep learning-based pipelines for Alzheimer's disease diagnosis: A comparative study and a novel deep-ensemble method, Computers in Biology and Medicine, 2021, 105032
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Detection of red and white blood cells from microscopic blood images using a region proposal approach. Comput. Biol. Medicine 116: 103530 (2020)
Andrea Loddo, Cecilia Di Ruberto, Michel Kocher, Recent Advances of Malaria Parasites Detection Systems Based on Mathematical Morphology. Sensors 18(2): 513 (2018)
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Histological Image Analysis by Invariant Descriptors. ICIAP (1) 2017: 345-356, 2016
Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, A leucocytes count system from blood smear images - Segmentation and counting of white blood cells based on learning by sampling. Mach. Vis. Appl. 27(8): 1151-1160 (2016)
On botanical image analysis topic:
Andrea Loddo, Mauro Loddo, Cecilia Di Ruberto, A novel deep learning based approach for seed image classification and retrieval. Comput. Electron. Agric. 187: 106269 (2021)
Andrea Loddo, Cecilia Di Ruberto, On the Efficacy of Handcrafted and Deep Features for Seed Image Classification. J. Imaging 7(9): 171 (2021)
On analysis of video surveillance images and videos topic:
Emanuele Ledda, Lorenzo Putzu, Rita Delussu, Andrea Loddo, Giorgio Fumera, How Realistic Should Synthetic Images Be for Training Crowd Counting Models? CAIP (2) 2021: 46-56
Delussu, R., Putzu, L. & Fumera, G. Synthetic Data for Video Surveillance Applications of Computer Vision: A Review. Int J Comput Vis (2024)
On fake news detection:
Luca Zedda, Alessandra Perniciano, Andrea Loddo, Cecilia Di Ruberto, Manuela Sanguinetti, Maurizio Atzori: Snarci at SemEval-2024 Task 4: Themis Model for Binary Classification of Memes. SemEval@NAACL 2024: 853-858
On image retrieval:
Lorenzo Putzu, Andrea Loddo, Cecilia Di Ruberto, Invariant Moments, Textural and Deep Features for Diagnostic MR and CT Image Retrieval. CAIP (1) 2021: 287-297
Assignments:
The exam is a project development test. The student will design and implement a simple prototype of an application task based on computer vision concerning one of the topics covered in the course. It can be a major development of the prototype developed in the first part of the reading course or a brand new solution to address the chosen topic. The project can be carried out individually or by a team of students.
Further information:
For further information or any queries, the instructor is available by appointment via e-mail (andrea.loddo@unica.it) or on the Teams platform (andrea.loddo).
SMT Solvers
Instructor
Massimo Bartoletti
CFU
3
Prerequisites
Basic knowledge of propositional and predicate logics and of the Python programming language.
Objectives
The goal of this reading course is to introduce students to SMT (Satisfiability Modulo Theories) solvers, such as Z3, which are powerful tools used for automatically determining the satisfiability of logical formulas with respect to various underlying theories (e.g., arithmetic, predicate logics, etc.). SMT solvers play a crucial role in formal verification, program analysis, and automated reasoning, where they are used to verify the correctness of software and hardware systems. In this reading course, students will explore the underlying concepts of SMT solving through hands-on tutorials, gaining practical experience in formulating problems and using solvers like Z3 to solve them.
Topics
- Introduction to SMT Solvers
- Introduction to Z3 and the z3py Python interface
- Propositional Logic and SAT Solving
- Basic examples for SAT solving: logical puzzles with propositional logic
- Predicate Logic in Z3
- Logical puzzles with predicate logic
- More SMT theories: arithmetic, bit-vectors, arrays
- Solving constraints over integers and reals
- Using SMT solvers for model checking
- Case studies in formal verification, program synthesis, and symbolic execution
Teaching methodology
The reading course starts with a general introduction to the topic of SMT solvers. After that, the students will independently study the assigned teaching material on Z3 and z3py and work at the proposed exercises. Periodic meetings with the instructor will be arranged in order to check the progress.
References
- L. de Moura and N. Bjørner, Satisfiability Modulo Theories: Introduction and Applications, Communications of the ACM 54(9), 2011
- Z3 API in Python: https://ericpony.github.io/z3py-tutorial/guide-examples.htm
- N. Bjørner, L. de Moura, L. N., and C. Wintersteiger, Programming Z3, https://theory.stanford.edu/~nikolaj/programmingz3.html
Assignments
The teaching material includes several exercises in increasing order of difficulty.
User Modeling
Instructor: Ludovico Boratto
CFU: 3
Prerequisite
Background on Machine Learning and/or Deep Learning
Objectives
User Modeling, also known as User Profiling, is the process of acquiring, extracting, and representing personal characteristics of a user in order to build accurate user models. A User Model, also known as a User Profile, is a structured representation of an individual's personal information, preferences, needs, and behaviors used to personalize interactions with the system. The goal of this reading course is to apply state-of-the-art user modeling techniques, based on Deep Learning (e.g., Graph Neural Networks), and evaluate them from a given perspective. Examples of perspectives can be the discrimination of users belonging to protected categories (e.g., based on their gender or race), privacy issues, explainability capabilities, or the compliance to recent regulations (e.g., EU’s Digital Services Act and AI Act).
References
- User Modeling and User Profiling: A Comprehensive Survey
- Leveraging Graph Neural Networks for User Profiling: Recent Advances and Open Challenges
Topics (not limited to)
- Trustworthy and Explainable AI
- Graph Neural Networks
- (The choice of the models and perspectives will be evaluated based on the task at end, the characteristics of the data, the skills of the student(s), and the recent advances in the literature)
Teaching methodology
The reading course is related to the development of a project agreed with the instructor related to the development of an architecture which will include a set of Machine Learning/Artificial Intelligence technologies that the student would like to explore and learn to solve a specific task. Periodic meetings using Agile approach will be organized and the student will learn how to integrate the different technologies and the benefits of each of them in the designed architecture for the underlying task.
Assignments
A project development test. The project can be done either individually or by a team of students. The source code and a description of the project will have to be delivered.
Further information:
For interactive teaching, the instructor is available by appointment via email (ludovico.boratto@unica.it), or on the Teams platform.
Volumetric meshes in Computer Graphics
Instructor
Gianmarco Cherchi
CFU
3
Prerequisites
The student should know the basics of a surface mesh data structure and its main characteristics. If possible, but not mandatory, the student should have passed Graphics Algorithms (master's degree) or Videogame Design (bachelor's degree).
Objectives
In the Computer Graphics world, three-dimensional representations of real-life objects (3D models) are the essential ingredient of every algorithm. 3D models often consist of a discretized representation of their surface, represented by triangles or quadrilaterals. However, some algorithms, such as those dealing with physics simulations, need to work on the internal volume of the models. In these cases, volumetric meshes are required, i.e., representations of the internal volume of 3D models through polyhedra (typically tetrahedra and/or hexahedron). In this course, we will study algorithms related to generating, optimizing, and using volumetric meshes in the different fields of Computer Graphics. We will focus on the theoretical fundamentals to understand the strengths and weaknesses of the two main families of volumetric meshes, and then, we will get to the heart of the main categories of algorithms that use them.
Topics
- Computer Graphics hints
- Tetrahedral meshes
- Hexahedral meshes
- Volumetric meshes in different fields of Computer Graphics
- Open challenges
Teaching methodology
The reading course is divided into two parts. In the first part, the instructor will give seminars to introduce the fundamental topics of the course. In the second part, the students will improve their knowledge of the course topics by studying scientific papers autonomously and having periodic meetings with the instructor.
References
- N. Pietroni et al.: Hex-Mesh Generation and Processing: A survey
- F. Zoccheddu et al.: HexBox, Interactive Box Modeling of Hexahedral Meshes
- G. Cherchi et al.: VOLMAP: a Large Scale Benchmark for Volume Mappings to Simple Base Domains
- Y. Hu et al.:sTetrahedral Meshing in the Wild
- Other books and papers provided by the teacher during the course.
Assignments
At the end of the course, the student will prepare a 45-minute seminar on a topic covered during the course, previously coordinated with the instructor. This will be followed by a Q&A of about 15 minutes. Depending on the covered topic, the seminar can be replaced or integrated with a project involving implementing algorithms on volumetric meshes.
Further infomation
You can get more information by contacting the teacher at g.cherchi@unica.it