UniCa Informatica Teaching Elective activities

Elective activities

Reading courses correntemente attivi

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:

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.

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.

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:

  1. Medical image analysis for the following types of diagnosis:
    1. neurodegenerative diseases from CT, MRI, PET (Alzheimer's, Parkinson's, multiple sclerosis);
    2. COVID19 from X-ray, CT, or multiple biomarkers;
    3. malaria from peripheral blood samples;
    4. red blood cell diseases or abnormalities from peripheral blood samples;
    5. leukemia or other white blood cell abnormalities from peripheral blood samples;
    6. tumors or other pathologies from histological samples;
    7. macular degeneration, glaucoma, diabetic retinopathy from retinal fundus or optic disc specimens
  2. Botanical image analysis:
    1. cataloging plants from leaf images;
    2. cataloging plants from seed images;
    3. detection and classification of plant diseases from leaf images;
    4. detection and classification of plant diseases from fruit images;
    5. fruit quality estimation;
    6. classification of the type of fruit.
  3. Analysis of video surveillance images and videos:
    1. counting people in a crowd;
    2. identification of people;
    3. identification of individuals;
    4. re-identification of individuals;
    5. face recognition;
    6. detection of abnormal behavior.
  4. Image retrieval:
    1. Biomedical imaging to retrieve similar sections or samples from a biomarker
    2. Biomedical imaging to support the diagnosis.
  5. 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:

  1. 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
  2. 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)
  3. Andrea Loddo, Cecilia Di Ruberto, Michel Kocher, Recent Advances of Malaria Parasites Detection Systems Based on Mathematical Morphology. Sensors 18(2): 513 (2018)
  4. Cecilia Di Ruberto, Andrea Loddo, Lorenzo Putzu, Histological Image Analysis by Invariant Descriptors. ICIAP (1) 2017: 345-356, 2016
  5. 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:

  1. 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)
  2. 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:

  1. 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:

  1. 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.

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.

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:

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.

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)

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.

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.

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.

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.

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.

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.

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:

  1. Petri, Carl Adam; Reisig, Wolfgang (2008). Petri net. Scholarpedia. 3 (4): 6477. doi:10.4249/scholarpedia.6477.
  2. 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.
  3. Esparza, Javier; Nielsen, Mogens (1995) [1994]. Decidability issues for Petri nets – a survey. Bulletin of the EATCS (Revised ed.).
  4. 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.
  5. 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)

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.

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.

Instructor: Gianmarco Cherchi

CFU: 3

Prerequisite: 

Geometric Algorithms and Spatial Data Structures (ex Algoritmi e Strutture Dati 2)

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, the algorithms related to the generation, optimization, and use of volumetric meshes in the different fields of Computer Graphics will be studied and addressed. We will focus on the theoretical bases 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:

  1. Computer Graphics hints
  2. Tetrahedral meshes
  3. Hexahedral meshes
  4. Volumetric meshes in different fields of Computer Graphics
  5. 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 means of independent study of scientific papers and periodic meetings with the instructor.

References:

[1] T. Schneider, Y. Hu, X. Gao, J. Dumas, D. Zorin, D. Panozzo: A Large-Scale Comparison of Tetrahedral and Hexahedral Elements for Finite Element Analysis

[2] S. J. Owen: A Survey of Unstructured Mesh Generation Technology

[3] S.W. Cheng, T. K. Dey, Jonathan Richard Shewchuk: Delauney Mesh Generation

[4] Y. Lu, R. Gadh, T.J. Tautges: Feature based hex meshing methodology: feature recognition and volume decomposition

[5] T. Blacker: Meeting the Challenge for Automated Conformal Hexahedral Meshing

[6] H. SI: TetGen, a Delaunay-Based Quality Tetrahedral Mesh Generator

[7] Y. Hu, Q. Zhou, X. Gao, A. Jacobson, D. Zorin, D. Panozzo: Tetrahedral Meshing in the Wild

[8] Other books and papers provided by the teacher during the course.

Assignments: 

The student studies the given material and agrees with the teacher on a particular field to elaborate on. At the end of the course, the student will present, in a 45 minutes seminar, the contents of the course and the chosen topic, and she/he will answer any questions in a Q&A of about 15 minutes.

Further information:

For interactive teaching, the instructor is available by appointment via email (g.cherchi@unica.it).

Instructor: Gianmarco Cherchi

CFU: 3

Prerequisite: 

Geometric Algorithms and Spatial Data Structures (ex Algoritmi e Strutture Dati 2) and Volumetric Meshes in Computer Graphics – Module 1 (reading course)

Objectives: 

Writing code to create and manage volumetric meshes (of tetrahedra and hexahedra) requires specific skills, both in theory and programming languages. This course will address techniques and hints to use in code development of algorithms working on volumetric meshes.

Topics:

  1. Computer Graphics hints
  2. C++ in a nutshell
  3. The Cinolib library for volumetric meshes
  4. The Py3DViewer for volumetric meshes
  5. Hexalab to visualize hexahedral meshes

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:

[1] M. Livesu: Cinolib: a generic programming header only C++ library for processing polygonal and polyhedral meshes

[2] G. Cherchi, G. L. Frongia, L. Pitzalis: The Py3DViewer Project: A Python Library for fast Prototyping in Geometry Processing [3] S.W. Cheng, T. K. Dey, Jonathan Richard Shewchuk: Delauney Mesh Generation

[3] M. Bracci, M. Tarini, N. Pietroni, M. Livesu, P. Cignoni: HexaLab.net: an online viewer for hexahedral meshes

[4] Other books and papers provided by the teacher during the course.

Assignments: 

A project development test. The student will design and implement a simple prototype of an application involving volumetric meshes, 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 (g.cherchi@unica.it).

Questionnaire and social

Share on: