Computational notebooks create narratives that consolidate text, executable code, and visualizations in a single document. They are widely used in data science (e.g., Jupyter Notebook or Google Colab), enabling data scientists to accurately document and execute the steps of their analyses in an exploratory and iterative manner. Prototyping Internet of Things (IoT) systems is also complex because of IoT's heterogeneous and interconnected nature. Indeed, IoT system prototyping spans across multiple development and execution environments; and developers, besides focusing on the code, must configure various devices.

To ascertain if and how computational notebooks' capabilities might be helpful the IoT scenario, this thesis aims to identify and implement the features that an IoT-tailored notebook should offer to help IoT developers build and share a computational narrative around the prototyping of IoT systems.

The following steps are planned:

  1. Feature’s refining. Stemming from the literature and from experts’ opinions, consolidate a set of features that have already been proposed. During this refining phase, new features can be added, and existing features can be either modified or removed, if necessary.

  2. Design and implement a tool following the most significant requirements emerging from the previous step. The implementation can either build upon the Jupyter system architecture and user interface, or on a part of it.

  3. Evaluate, through a user study, the tool's usability. In addition, assess to what extent it effectively supports IoT prototyping and helps developers better understand the setup and coding steps they should follow.


Gianluca Brezzo

Thesis Details

Fulvio Corno, Luigi De Russis, Juan Pablo Sáenz
Master Degree in Computer Engineering