Data compression and compressed data structures
Lecturers: Giovanni Manzini (UNIPI – giovanni.manzini@unipi.it)
Schedule: November 22nd, 24th, 27th, 29th, December 4th, 6th, 13th, 15th, 2023, from 9am to 11am, in “sala seminari est”
This course will describe some recent data compression techniques and how they have been used to design data structures that use space asymptotically close to the information theoretic lower bound. Starting with the classical problem of text indexing, we will show how these techniques have been generalized to the succinct representation of trees, regular languages and graphs.
Probabilistic Reasoning in Machine Learning
Lecturers: Daniele Castellana (UNIFI – daniele.castellana@unifi.it), Federico Errica (NEC Laboratories Europe GmbH, Germany – Federico.Errica@neclab.eu)
Schedule: February 19th 2024 from 9 am to 11am, February 20th from 2 pm to 5 pm, February 21st from 9 am to 12 pm, February 22nd from 9 am to 12 pm, February 23rd from 9 am to 11 am, February 27th from 2 pm to 5 pm. All classes will be held in room “sala seminari est”, but on February 23rd (room “D3”).
The objective of the course is to introduce the key concepts of probabilistic reasoning, illustrating their application in the machine learning domain.
Topics:
- Probabilistic Modeling Toolbox
- Latent Variable Models (LVMs)
- Sampling for LVMs
- Variational Inference for LVMs
- Infinite LVMs
- LVMs for structured data
No background in machine learning is required.
Graph transformation: foundations and tools
Lecturers: Arend Rensink (University of Twente, The Netherlands – arend.rensink@utwente.nl)
Schedule: April 8th (SSE), 10th (SSE), 12th (SP), 15th (SSO), 17th (SSO), 19th (SSO), 22th (SSE), 24th (SSO), 2024, from 9am to 11am, in SSE=“sala seminari est” or in SSO=“sala seminari ovest” or in SP =”sala polifunzionale”
Graph transformation is a very widely applicable modelling paradigm, based on an understanding of a given domain in terms of graphs. Graphs can be used to capture very many concepts in an intuitive way, and have been used (within computer science) for modelling syntax, data structures, networks, or entire software architectures, but also (outside computer science) for biological structures, building architecture, social networks, infrastructures and much more. The transformation of these graphs, captured in a rule-based manner, then serves to describe the dynamics in such systems. This gives rise to a state space (in which the states are graphs and the transitions are rule applications) enabling the analysis of the potential behaviour of the modelled system, for instance by reachability analysis, invariant checking or model cheking.
In this course, students learn the foundations of graph transformation and how to apply it in the way described above. The foundations include the formalisation of graphs, the connection to first-order logic, and the embedding in category theory. This is supported by a tool called GROOVE (which stands for “GRaphs for Object-Oriented VErification”) in which students apply everything they have learned.
Provisional outline of classes:
- Theory: Graphs, morphisms and typing – Practice: Getting acquainted with GROOVE
- Theory: Graph gluing and rules – Practice: Solving a simple puzzle
- Theory: Categorical embedding
- Theory: Graph conditions – Practice: Usage scenarios for graph transformation
- Theory: Nested graph conditions – Practice: Programming language semantics
- Theory: Attribute algebras – Practice: Data manipulation in GROOVE
- Theory: Model checking – Practice: Model checking in GROOVE
- Practice: Parameters, control and regular expressions
Assessment will be a choice of: reading and presenting a research paper, or developing a graph transformation model in a given domain (in GROOVE).
Prerequisites are: a basic understanding of mathematical modelling, including first-order logic. Prior knowledge of category theory is not required.
AI Engineering: concepts and research opportunities
Lecturers: Humberto Torres Marques Neto (Pontifical Catholic University of Minas Gerais, Brazil – humberto@pucminas.br)
Schedule: April 10th from 11am to 1pm, April 11th from 9am to 1pm, April 17th from 11am to 1pm, April 18th from 9am to 1pm, May 15th from 9am to 11am, May 16th from 9am to 11am, 2024 – all in “sala seminari est”
When we talk about building software solutions, we are expected to hear those solutions be intelligent and based on artificial intelligence. Many efforts have been made in the last few years to create and validate artificial intelligence algorithms and tools for different domains. However, integrating these intelligent software in complex computational ecosystems is not always trivial. According to the Software Engineering Institute of Carnegie Mellon University – SEI@CMU, AI Engineering proposes combining system engineering, software engineering, computer science, and human-centered design to create AI Systems to be scalable, robust, and secure for running in complex contexts and with a minimum predictability of maintenance and budget. This course will present concepts and discuss research opportunities for some aspects of AI Engineering, like the processes and their ethical issues, requirement engineering, software architecture, software quality, deployment,
maintenance, as well as the usage of AI to code AI Systems. For this course, we expected students to use the discussed concepts and present two seminars using data from some large-scale systems, like online social network data and open government data, in the broad context of an AI System.
Topics of lectures:
- Software Engineering for AI and AI for Software Engineering
- Software Processes for AI Systems
- Ethical Issues in Software Processes
- Software Requirement Engineering for AI Systems
- Software Architecture for AI Systems
- Software Quality and Deployment of AI Systems
- Evolution and Manteinance of AI Systems
- Using AI to Implement AI Systems
Collective Machine Intelligence: Beyond an Agent-Centric View of AI
Lecturers: Antonio Carta (UNIPI – antonio.carta@unipi.it), Andrea Cossu (UNIPI – andrea.cossu@unipi.it), Vincenzo Lomonaco (UNIPI – vincenzo.lomonaco@unipi.it)
Schedule: May 3rd, 7th, 10th, 14th, 17th, 21st, 24th, 28th, 2024, from 4pm to 6pm, in “sala seminari est”
This course aims to explore the emerging field of collective machine intelligence, which studies how multiple artificial agents can interact, cooperate, and learn from each other in complex and dynamic environments. The course will cover the theoretical foundations and practical applications of collective machine intelligence, such as game theory, multi-agent decision making, continual learning, federated learning, swarm intelligence, and complex systems. The course will also showcase some of the current and future challenges and opportunities of collective machine intelligence in various domains, such as social networks, smart cities, robotics, and healthcare. By the end of the course, the students will be able to understand the key concepts and methods of collective machine intelligence, and apply them to design and implement intelligent systems that can leverage the collective wisdom and capabilities of multiple agents.
Big Data Analytics: Marine Data as a Case Study
Lecturers: Gianpaolo Coro (CNR-ISTI – gianpaolo.coro@isti.cnr.it)
Schedule: May 8th and 9th, 2024, from 9am to 1pm and from 2pm to 4pm, and May 10th from 9am to 1pm, in “sala seminari est”
This course will present practical methodologies for marine data analysis and modelling. The course will cover specific classes of problems in marine science and their corresponding solutions, adopting state-of-the-art computer science technologies and methodologies. The explained techniques will include:
- Unsupervised approaches to discover patterns of habitat change and predict fishing patterns: Principal Component Analysis and Maximum Entropy for feature selection; KMeans, XMeans, DBScan, and Local Outlier Factor cluster analysis; Singular Spectrum Analysis for time series forecasting;
- Supervised approaches for species distribution prediction and invasive species monitoring: Feed-Forward Artificial Neural Networks, Support Vector Machines, AquaMaps, Maximum Entropy;
- Data mining techniques to detect hotspots of illegal fishing activity from vessel trajectory data.
These methods will be applied to marine data such as vessel transmitted data, species observation records, and catch and vessel time series that fall into the Big Data category. These data are crucial to safeguard food availability and economic welfare, which are fundamental to human life. For example, predicting the impact of climate change on species habitat distribution contributes to avoiding economic and biodiversity collapse due to sudden ecosystem change. Likewise, monitoring the effect of overfishing and illegal fishing on stocks and biodiversity helps prevent ecosystem and economic collapse.
The explained techniques currently address real use cases of the United Nations (FAO, UNESCO, UNEP, and others) for marine food and ecosystem safety and illustrate the new lines of research in this context. They are also general enough to be applied to Big Data of other domains. The analyzed data have general characteristics of Big Data such as constantly incrementing volume, vast heterogeneity and complexity, and unreliable content. For this reason, the methodologies will be illustrated in the context of the Open Science paradigm, characterized by the repeatability, reproducibility, and cross-domain reuse of all experimental phases.
The course will be interactive and made up of practical exercises. Attendees will use online (the D4Science platform, https://services.d4science.org) and offline (QGIS, Java-based MaxEnt) software to parametrize the models and run the experiments. A final exercise will be proposed as the course exam.
Course schedule:
Day 1 (4h) – Introduction to marine geospatial data and Open Science methodologies
Day 2 (4h) – Data selection techniques and pattern detection
Day 3 (4h) – Supervised modelling of species distributions and invasions
Day 4 (4h) – Data mining techniques for marine geospatial data analysis
Final Exam: A final exercise summarizing key methodologies will be proposed, where students will be asked to estimate the distribution of the giant squid (Architeuthis dux) in the Atlantic Ocean.
Programming Tools and Techniques in the Pervasive Parallelism Era
Lecturers: Marco Danelutto (UNIPI – marco.danelutto@unipi.it), Patrizio Dazzi (UNIPI – patrizio.dazzi@unipi.it)
Schedule: May 13th, 14th, 15th, 16th, 21st, 22nd, 23rd, 2024, from 11 am to 1pm in “sala seminari est”, and May 22nd from 9am to 11am in “sala seminari est”
The course covers techniques and tools (already existing or that are in the process of being moved to mainstream) suitable to support the implementation of efficient parallel/distributed applications targeting small scale parallel systems as well as larger scale parallel and distributed systems, possibly equipped with different kind of accelerators. The course follows a methodological approach to provide a homogeneous overview of classical tools and techniques as well as of new tools and techniques specifically developed for new, emerging architectures and applicative domains. Perspectives in the direction of reconfigurable coprocessors and domain-specific architectures will also be covered.
Pathways to Green ICT
Lecturers: Antonio Brogi (UNIPI), Stefano Forti (UNIPI)
Schedule: The schedule of the first part of the course is: June 10th, 11th, 12th, 13th, from 11 am to 1pm in “sala seminari est”. The second part of the course is planned for the the week of July 8th. (The exact schedule of the second part will be agreed at the end of the first class of June 10th.)
As the world experiences environmental problems due to increasing carbon emissions, national and EU initiatives target the compelling need of our society to achieve sustainability goals. According to recent estimates, ICT systems produce 2% to 6% of the global carbon emissions throughout their lifecycle. On the other hand, ICT can contribute to reducing carbon emissions in other sectors (e.g. agriculture, building management, transportation) through digitalisation.
The course aims at introducing students to the fundamentals of Green ICT, providing them with a toolbox to consider sustainability aspects in their research. The lectures will introduce:
- The concepts of sustainability and the types of environmental impact of the lifecycle of ICT systems (power consumption, carbon emissions, e-waste)
- Methodologies to assess the environmental impact of ICT systems (from production to operation and maintenance to disposal)
- Methodologies to decrease the environmental impact of ICT systems (orthogonality of QoS and environmental goals, hardware selection and PUE reduction, energy-aware programming, green software engineering, energy-aware system deployment)
- Use cases and open research challenges