Thesis Proposals
These are the steps:
- Understand (1) kind of thesis and (2) topics you are interested in
- Take a look at my research activity (to understand what is my core expertise) and read carefully this page for concrete thesis proposals.
- If you found a proposal that interests you, or would like to discuss variations or other proposals, please contact me via e-mail
- Once we have defined a direction/strategy/tentative project work, let’s discuss how to bootstrap work
Background on Bachelors’/Masters’ Theses or Dissertations
General information about theses can be found here: LaTeX thesis template.
Kinds of thesis:
- Research-oriented – these aim at providing (small) contributions to the state of the art in some target field;
- Ideal for ambitious Master Degree students who seek challenges, can tolerate risks, and can proactively look for innovative solutions (as well as for those who intend to pursue a PhD)
- Software engineering projects – these are works aimed at developing complex software (cf., distributed systems);
- Ideal for both Bachelor and Master students who would like to put into practice what they learnt during the degree course
- Surveys / Systematic Literature Reviews – the works include a comprehensive study of the literature (e.g., on self-* systems, multi-agent systems, collective intelligence) and an original synthesis (e.g., in terms of a taxonomy, learned lessons, challenges and opportunities).
- Ideal for Bachelor students who would like to deepen the study of a specific topic
Notice that these are coarse-grained classifications and that theses might mix portions of all these three types (while formally be overall configured as one of the three types).
General principles about theses:
- Student / Professor relationship. It is key to understand that theses are individual works of the students, who take full responsibility for their work and overall path to the degree. The professor acts as a mentor and guide, and supervises the activity, but the student should not expect that the professor solves tasks for him, copy-checks the work, or notifies the student for the bureaucratic steps.
- First gather knowledge and results, then write. The writing step should be easy once the student has acquired the knowledge and results to be communicated.
- How to write. The general principle is to assume the reader has very limited background on the topic. Each and every technical term should be introduced on first use, and paragraph should provide a clear logical flow (narrative).
Current Active Proposals and Thematic Areas
- Any topic relevant to the Foundations of Macro-programming-based Software Engineering project
- any investigation addressing the question: how to effectively engineer the micro-macro link in collective and multi-party systems?
- Scientific and inter-/multi-/trans-disciplinary topics:
- Investigations on aspects related to “collective intelligence”: how to reliably engineer collective behaviour? how to influence collective behaviour? what can we learn from animal behaviour? See Casadei’s paper Artificial Collective Intelligence Engineering: A Survey of Concepts and Perspectives Unavailable for an overview of the topic.
- Ethic-aware autonomous systems*: autonomous systems should not just focus on functional requirements and user preferences, but also on the broader implications of their actions (cf. social aspects). So: how to model soft/hard ethical requirements? How to deal with conflicting ethics? How to enforce collective ethics in a MAS? How to measure ethical-awareness and -effectiveness?
- Programming languages and frameworks for specific domains:
- Investigations on non-conventional / domain-specific programming paradigms (cf. macro-programming)
- Integration of ScaFi and the ARGoS Robot Simulator
- Knowledge-intensive workflows
- Web platforms for knowledge-intensive workflows
- DSLs for generating universal (web-based, desktop, mobile) knowledge-intensive workflow applications
- Artificial collective intelligence engineering
- Software engineering topics: visualisation
- Software system visualisation, monitoring, and debugging (with links to Model@Runtime)
- Software engineering topics: testing
- Testing solutions for complex adaptive multi-agent systems (connected with scientific themes like emergence)
- Human-machine networks
- Supporting effective collaboration in human-machine networks?
- Innovative applications
Some of these proposals are detailed in the following.
Domain-Specific Language (DSL) Prototyping for Micro-Macro Design
- Type of work: research/project
- Goal: after an initial investigation of the state of the art in DSLs for macro-programming, develop a DSL prototype to investigate (some aspect of) the micro-macro link engineering (e.g., downward causation)
- Requirements: familiarity with the basic notions of DSL and PL design (e.g., APIs, ASTs, advanced language features, typing, compilers)
- References:
Case studies using research-level programming languages
- Type of work: research/project
- Goal: explore the practical expressiveness of research-level programming languages and/or make experiments/extensions for addressing limitations or specific functional/non-functional properties (e.g., adaptivity, reactiveness)
- e.g., multi-agent oriented programming languages (e.g., JaCaMo, SARL, Kiko)
- e.g., context-oriented programming, context-role oriented programming
- References:
- Type of work: research/project
- Goal: consider collective computation models (e.g., cellular automata, aggregate computing) and apply information theoretic measures to analyse the dynamics on examples
- Mainly aimed at: Master Students
- References: please contact the professor
A Framework for Reusable Logical Visualisations of Software Systems
- Type of work: project (+ survey)
- Abstract: Visualising software systems is key for understanding them, enabling debugging, software evolution, and team collaboration. Much of research has focussed on visualising program executions in terms of ‘code’. However, sometimes, more flexible and logical forms of visualisations might be generated for purposes like conceptual comprehension, analysis, and education. Moreover, most of the frameworks are constrained in terms of the kinds of visualisations to be generated. Goal of this project/thesis is to investigate ways to design the generation of visualisations in a flexible, decoupled, and reusable manner. Multiple specific directions and applications can also be envisioned, from multi-level visualisations of collective systems (e.g., crowds) to semi-automatic visualisation of algorithms on different data structures.
- References: as there are some novel ideas not investigate in the literature, please contact the professor
Investigation on autonomic architectures for self-managing systems
- Type of work: project (+ survey)
- Goal: design and implement an autonomic architecture (e.g., following the MAPE-K or AWARE architectural patterns) on an identified case study (e.g., digital twin scenario, IoT/smart city scenario, or swarm robotics scenario)
- References:
*Integration of ScaFi into Multi-Robot Simulators *
- Type of work: software engineering project
- Background:
- ScaFi is a DSL for programming collective adaptive systems (e.g., robot swarms)
- Robot simulators like ARGoS and ROS2 (Robotic OS) support testing control logic in a variety of simulated environments
- Goal: allowing the execution of ScaFi programs to control robots in a robot simulator (e.g., into the ARGoS Robot Simulator or ROS2)
- Requirements: knowledge of C/C++ (since ARGoS is implemented in C++) and Java/Scala (since ScaFi runs on the JVM)
- Mainly aimed at: Master Students
- References:
- Type of work: software engineering project
- Goal: the goal is to support the configurable creation of web-based knowledge-intensive workflow platforms, e.g. according to literature models (cf. SLRs). For instance, suppose you are carrying out a collaborative research project. You and your groupmates need to select a bunch of papers or references to study. Then you need to analyse them, and take notes about them. This process consists of multiple phases: paper gathering, preliminary analysis, paper filtering, detailed analysis, and production of plots. The goal is to build a configurable platform allowing customisation of similar workflows and the flexible integration of plugins/tools therein for analyses etc.
- Requirements: web-based and database technologies
- Mainly aimed at: Bachelor / Master Students
- References: please contact the professor
Need inspiration?
Lectures and scientific articles are great sources for inspiration
Past co-supervised theses
Take a look here for theses (co-)supervised by me in the past.
Some highlights (Master’s Degree):
- “Event-driven simulation and verification of FRASP systems against spatio-temporal properties”, Cesario, 2024
- “A functional-reactive perspective on the Aggregate Computing paradigm”, Dente, 2023
- “A platform for aggregate computing over LoRaWAN network”, Placuzzi, 2020
- “A Reinforcement Learning approach to discriminate unsafe devices in aggregate computing systems”, Volonnino, 2020
- “Towards Aggregate Processes in a Field Calculus-Based Platform”, Foschi, 2018
- “Distributing Aggregate Computations on top of Akka Actors”, Peruzzi, 2018
- “Tecniche e algoritmi di aggregate computing a supporto di contesti di smart mobility”, Berlini, 2017
- “Design and Deployment of an Execution Platform based on Microservices for Aggregate Computing in the Cloud”, Farneti, 2017
Some highlights (Bachelor’s Degree):
“I chose a thesis with your (co-)supervision, Prof. Casadei! How should I proceed?”
- Please contact me through my institutional e-mail
- We will define a flexible plan/schedule: e.g. 1/2-weeks meetings
- I will provide (1) relevant materials as well as (2) practical information