I have drafted a very preliminary document to provide some guidelines about bachelor and master thesis. You can find it here: https://docs.google.com/document/d/1WNGiEYMJ3bi17p7EzWkX9RVjFFmBqNtf3wpw9At6v6k. Feel free also to make comment and suggestion to improve this document.
A list of possible topics follows. Note that some topics might be performed in collaboration with enterprises (so as a stage that is almost mandatory for the bachelor in CS), while others cannot.
- Event-driven architecture to manage IIoT data (with Zamperla and Secura Factors)
- Debugging Python notebook processing data (no enterprise involved)
- CyberSecurity of robotic systems
- Extensions of LiSA (Library for Static Analysis) (no enterprise involved)
- … just propose your idea!
If you might be interested in some of these projects, just book an half-an-hour slot of my calendar through Calendly to discuss it!
Event-driven architecture to manage IIoT data (with Zamperla and Secura Factors)
Industrial machines produce tons of data. In our particular case, machines (such as rollercosters) at amusements parks are equipped with hundreds of sensors. Those might give important insights to detect anomalies and predict faults. Therefore, collecting such data, moving it to a DB in the cloud and performing different types of (ML) analyses might have an important impact.
The goal of this project is to develop an event-driven architecture (based on RabbitMQ queues) in order to obtain a scalable IT system that download all the data from the different machines, and uploads it to a DB. This project is in collaboration with Zamperla and Secura Factors.
Debugging Python notebook processing data
Nowadays Python became one of the de-facto standard programming languages adopted to read, clean, process and visualize data. Data scientists are not usually expert developers, and they often have a statistical or economical background. Therefore, developing tools and approaches to help them to develop more effective and robust Python data processing scripts is an extremely challenging and interesting topic. Common libraries adopted in such context are numpy, pandas, matplotlib and seaborn. The second module of the course of the course “Introduction to Coding and Data Management” I teach in the bachelor in Digital Management (Moodle space of both modules) provides a reasonable introduction to this world.
The main goal of this project is to (i) explore how data scientists use Python, (ii) develop some analyses in LiSA to provide useful feedback to data scientists, (iii) plug these analysis in common user interfaces for data scientists (e.g., Anaconda notebook and PyCharm), and (iv) perform an experimental assessments of these analysis.
The topic is quite open to contributions by both bachelor students (interested in object-oriented programming and software engineering, especially for the parts about exploration and user interfaces) and master students (interested in the topics of the “Software correctness, security, and reliability” course, especially for the parts about analyses and their experimentation) in Computer Science.
External collaborations: Caterina Urban (INRIA Paris)
Funding: Ca’ Foscari IRIDE project funding some visits from Paris to Venice, and viceversa
CyberSecurity of robotic systems
In recent years, we observed a growth of cybersecurity threats, especially due to the ubiquitous of connected and autonomous devices commonly defined as Internet of Things (IoT) and Industrial IoT (IIoT). Considering the sensitive nature of this information there’s a widespread suspicion concerning the way in which these information flows into the infrastructures. Additionally, with the increase of smart cities and connected environments, this critically is going to enlarge.
To address those problems we can distinguish between two lines of research that we explore in parallel, either studying the security and hardening solutions for the devices or focusing on the communication infrastructures.
In this project, we focus on the data-centric analysis of the infrastructure. Its easy to understand the importance of supporting the key property of computer security: Confidentiality, Integrity, Authenticity, Non-reputation, Availability. However, since we are working with IoT devices the way in which these properties are enforced is not trivial. In fact, we need to consider the intrinsic limitations of the devices, either from the power consumption point of view and the actual computational power available. Additionally, since we want to design solutions that could be applied to a wider scope of devices and developers we need to provide mechanisms with a good tradeoff between security and usability.
This topic is quite wide and open to both bachelor and master students interested in cybersecurity, software engineering, robotic systems, and static analysis. In addition, we recently created Secura Factors, a Ca’ Foscari spin-off focused on the industrialization and commercialization of the results of this project.
Funding: RIR (Reti innovative regionali) VIR2EM project, StartCup Veneto 2020 (see this news)
Extensions of LiSA (Library for Static Analysis)
The Software and System Verification group at UniVE is currently developing LiSA, a Java library that aims to ease the creation and implementation of static analyzers based on the Abstract Interpretation theory. Such analyzer is designed to be easily extended to other domains, programming languages, and properties of interests. Therefore, I am highly interested in any thesis that is focused towards the formalization and implementation of novel extensions of such analyzer. Possible thesis topics range from developing a parser to translate a programming language (e.g., Java, Python or JavaScript) to LiSA Abstract Syntax Tree (suitable for a bachelor theses), to the formalization and/or implementation of well known complex domains (suitable for master theses – a prerequisite in this case would be to have attended the course on “Software correctness, security, and reliability“).
… propose your own idea!
I guess that since you have been studying Computer Science for many years by now you might be interested in developing an information system to support some activities (in which probably you are an expert, or at least a user). I am quite open to supervise also this type of thesis if it contains enough technical work and details that are deep and interesting for a bachelor or master thesis. Just let’s discuss the details and see if this is feasible!