--- title: Proposte di tesi breaks: false tags: uniurb --- # Proposte di tesi ## Tesi sperimentali 1. Mappatura formale tra linguaggio AIML (Artificial Intelligence Markup Language) ed una macchina a stati Bottery (e viceversa). * *Tecnologie:* nessuna. Eventualmente, per l'implementazione opzionale di un traduttore, qualsiasi linguaggio di programmazione. * *Dettagli:* il linguaggio AIML è un linguaggio derivato da XML che permette di esprimere il comportamento di un agente conversazionale (che risponde a input testuale da parte di un utente). Il linguaggio, definito nel 2001, è molto semplice e limitato, ma presenta una espressività sufficiente per modellare dei comportamenti abbastanza funzionali (specie su argomenti limitati). [Bottery](https://github.com/google/bottery) è una libreria di prototipazione di agenti conversazionali che si basa su una macchina a stati finiti, una memoria, e una serie di comportamenti che descrivono le risposte dell'agente ed il suo movimento all'interno degli stati. Bottery è stata recentemente adattato a moderne piattaforme di messagistica all'interno di una precedente tesi. La tesi consiste nella individuazione di un sistema per convertire automaticamente una "intelligenza" in AIML in un modello equivalente (cioè, che risponde alla stessa maniera) per Bottery; e viceversa. *Se* questa mappatura è possibile, si procederà all'implementazione di un semplice programma che converta un file AIML in un file JSON per Bottery (e viceversa). 1. Implementazione di connettori per piattaforma [Worth One Minute](https://wom.social) (WOM) per la creazione ed il consumo di voucher. * *Tecnologie:* NodeJS, Go o eventualmente altre. * *Dettagli:* la piattaforma WOM permette a chiunque svolga del lavoro socialmente utile (tramite sistemi riconosciuti) di raccogliere dei *voucher* anonimi. I voucher vengono raccolti tramite una specifica app mobile e possono essere spesi presso degli esercizi commerciali associati alla piattaforma o ad altre terze parti che intendono premiare il lavoro svolto dagli utenti. Per permettere alla piattaforma di attrarre utenti (per la creazione di voucher e per il consumo di voucher) è necessario predisporre dei "connettori" software, che permettono ad eventuali software di back-end di terze parti di interagire con la piattaforma. La tesi consiste nella progettazione, l'implementazione e la pubblicazione online di una serie di connettori (sia per la creazione che per il consumo di voucher) per una varietà di linguaggi e piattaforme software, da determinare in base alle preferenze del tesista assieme al relatore. 1. Implementazione di un interprete AIML (Artificial Intelligence Markup Language) per .NET Standard. * *Tecnologie:* a scelta, C# o F#. * *Dettagli:* il linguaggio AIML è un linguaggio derivato da XML che permette di esprimere il comportamento di un agente conversazionale (che risponde a input testuale da parte di un utente). Il linguaggio, definito nel 2001, è molto semplice e limitato, ma presenta una espressività sufficiente per modellare dei comportamenti abbastanza funzionali (specie su argomenti limitati). Esistono diversi *interpreti* del linguaggio AIML (Pandorabots, Program-O) che espongono un'interfaccia conversazionale (una chat) sulla base di uno o più file XML di input. La tesi consiste nella progettazione dell'architettura software e nell'implementazione di un interprete AIML per piattaforma .NET Standard, che punti particolarmente alla portabilità, alla mancanza di dipendenze (assenza di database o altri sistemi di *storage* esterni) e alle prestazioni del sistema. 1. Re-implementazione di [Tracery](https://github.com/galaxykate/tracery) (libreria di espansione del testo sulla base di semplici grammatiche) e [Bottery](https://github.com/google/bottery) (sistema ad agente per la gestione di conversazioni testuali) per .NET Standard. * *Tecnologie:* .NET (C#/F#). * *Dettagli:* [Tracery](https://github.com/galaxykate/tracery) è una libreria Javascript per l'espansione di testi basati su un semplice linguaggio di specifica, sviluppato da Kate Compton. È adottato da diversi generatori di testo sia nel campo videoludico che per la creazione di chatbot. [Bottery](https://github.com/google/bottery) è una libreria di prototipazione di agenti conversazionali che si basa su una macchina a stati finiti, una memoria, e una serie di comportamenti che descrivono le risposte dell'agente ed il suo movimento all'interno degli stati. Entrambi i sistemi sono sviluppati in Javascript e sono poco flessibili da integrare in altri progetti. La tesi consiste nella re-ingegnerizzazione dei due sistemi e la loro implementazione come librerie per .NET Standard. 1. Re-implementazione di SmartRoadSense in Flutter * *Tecnologie:* Flutter, Dart. * *Dettagli:* [SmartRoadSense](https://smartroadsense.it/) è un servizio di raccolta dati ed aggregazione che permette di monitorare lo stato del manto stradale. A tal fine si sfrutta un'applicazione mobile che sfrutta GPS e accelerometro del dispositivo su cui è installata. L'applicazione è al momento realizzata in C#/.NET con Xamarin, ma il sistema di elaborazione dati è stato recentemente portato in linguaggio Dart. * La tesi consiste nella progettazione, implementazione, test ed eventuale pubblicazione di una re-implementazione dell'app per Android/iOS, con le medesime funzioni dell'app originale, ma sfruttando il framework Google Flutter. 1. Implementazione di un lettore di narrativa interattiva dinamica con il supporto a [Tracery](https://github.com/galaxykate/tracery) per l'espansione del testo. * *Tecnologie:* Possibilmente C#/.NET se combinata con la tesi precedente di reimplementazione, tecnologie Web. * *Dettagli:* Realizzare un lettore di librogame/narrative interattiva con un moderno stack Web SPA (Angular o simili), con il supporto ad un formato di interscambio standard di libri e l'integrazione con Tracery per la generazione dinamica del testo. 1. Implementazione di un'applicazione mobile per la gestione di personaggi di un gioco di ruolo. * *Tecnologie:* Flutter. * *Dettagli:* I giochi di ruolo pen 'n paper (tabletop role-playing games) richiedono un numero di supporti cartacei per essere giocati al tavolo. A causa della pandemia da CoViD-19, buona parte del gioco si è trasferito su piattaforme di comunicazione e videoconferenza (Discord e simili), con la necessità sempre più forte di avere strumenti digitali per il supporto al gioco. La tesi si concentra sulla progettazione e la realizzazione di una Web app che permetta ad un giocatore di caricare i propri dati di gioco, visualizzarli comodamente e di interagire con essi con alcuni strumenti di supporto al gioco immediati da usare sia in contesti remoti che in presenza. ### Machine learning 1. Implementazione di un classificatore basato su Artifical Neural Network. * *Tecnologie:* Python, TensorFlow, SKLearn, Keras, Google Colab. * *Dettagli:* la tesi si colloca nell'ambito di un progetto più ampio il cui scopo è quello di fornire ai gestori di locali pubblici con sedute fisse uno strumento che li renda in grado di massimizzare il numero di persone che il locale può ospitare rispettando i vincoli sul distanziamento fisico fra persone non appartenenti allo stesso gruppo (o nucleo familiare). Lo scopo della tesi è quello di sviluppare un classificatore che riconosca il tipo di rappresentazione delle sedute in una planimetria fornendo un'indicazione di similarità con le diverse categorie disponibili. L'obiettivo è quello di selezionare correttamente il modello di ANN da utilizzare nella fase successiva della computazione quando verrà effettuata la _object recognition_ e verranno riconosciute tutte le sedute. 1. Creazione di un dataset annotato per il training di ANN per la *object detection* di sedute in planimetrie di spazi pubblici con sedute fisse (seating layout/chart). * *Tecnologie:* da definire, probabile sviluppo app web. * *Dettagli:* Per la costruzione di un dataset annotato è necessario sviluppare un tool che permetta ad un operatore di individuare/disegnare i bounding box (bb) di ogni seduta rappresentata in un immagine in scala di grigio e che rispetti la scala di grandezze originali dello spazio reale modellato. I bb sono per lo più tutti della stessa dimensione (o ricadono in alcune categorie). Possono essere ruotati in maniera differente. Il tool prende in **input**: un file contenente un'immagine in scala di grigio, un file contente le annotazioni sui bb associate (CSV, JSON, altro?). Questo file può eventualmente essere non presente o vuoto. Il tool produce in **output**: la stessa immagine con i bb di ogni seduta colorati, un file con le annotazioni per ogni bb. ## Tesi compilative 1. Panoramica sulle più recenti tecniche di Machine Learning. 1. Panoramica di Kubernetes e altri sistemi di *container-orchestration*. ## Tesi in fase di definizione 🤔 * Uso di libreria [SPTAG](https://github.com/Microsoft/SPTAG) per *approximate nearest neighborhood search*. --- # Tesi attive 1. Strumenti per gruppi virtuali di runner (virtual running groups). * *Tesista:* Giulia Bondi Mazzoni. --- # Tesi completate * Utilizzo di Google TensorFlow per il riconoscimento di luoghi geografici su base fotografica. * _Tesista:_ Andrea Mancini. * Aggiornamento del tema per Wordpress del sito Web del [CdL di Informatica Applicata](http://informatica.uniurb.it/) con moderne tecniche per Web *responsive* basate su *Flexbox* e *CSS Grid*. * *Tecnologie:* HTML, CSS (Flexbox e CSS Grid), PHP. * *Tesista:* Damian Ariel Dominella. * Studio di Google DialogFlow, IBM Watson e altri sistemi di Natural Language Processing. Definizione di standard per la definizione delle specifiche di un linguaggio a blocchi per interfacce conversazionali. * _Tecnologie:_ Python, Javascript, Google Blockly. * _Tesista:_ Paolo Paolini. * Implementazione di un connettore per piattaforma WOM per Python per integrazione con piattaforma di crowdsensing SmartRoadSense. * _Tesista:_ Giacomo Frasca. * Implementazione di un sistema di gestione remota per soluzioni IoT che gestiscano gli accessi ad uno spazio privato. * *Tecnologie:* NFC, Raspberry Pi, sviluppo mobile (Android/iOS nativo, Xamarin.Forms oppure Flutter). * *Dettagli:* progettazione ed implementazione di un sistema IoT/domotico che gestisca l'accesso ad uno spazio privato (ufficio, stanza, etc.). Il sistema, che andrà implementato su un dispositivo Raspberry Pi, dovrà interagire con un modulo esterno che rilevi gli utenti ai quali è concesso l'accesso allo spazio, identificandoli tramite tecnologia NFC (eventualmente interagendo con un'applicazione mobile per Android/iOS). Il dispositivo dovrà quindi far scattare la serratura dello spazio privato e registrare l'accesso tramite un back-end in *Cloud*. * *Tesista:* Davide Farinelli. * Oggetti interattivi: riconoscimento parti del corpo e applicazione di decorazioni in realtà aumentata tramite ML e OpenCV. * *Tecnologie:* Python, Prototipazione su Raspberry Pi, ecc. * *Dettagli:* la tesi consiste nella progettazione ed implementazione di un sistema automatico che, a partire da uno stream video, identifichi parti del corpo per determinare la sagoma (o le sagome) di persone visibili ed effettui in maniera automatica lo scontornamento del corpo. Il video così trattato va alterato con appositi filtri di immagine e decorato con strumenti di realtà aumentata, in modo da generare un video di output modificato (l'applicazione finale non sarà dissimile nel comportamento dai popolari filtri *Instagram* o *Snapchat*). L'applicazione finale va prototipata su PC e poi realizzata sfruttando un Raspberry Pi. * *Tesista:* Andrea Pasero. * Implementazione di un "libro gioco" tramite interfaccia conversazionale testuale e vocale (ad esempio Bot Telegram o Google DialogFlow). * *Tecnologie:* piattaforma di messagistica con supporto per Bot (Facebook/Telegram), piattaforme per interfacce vocali (Google DialogFlow/Alexa). * *Dettagli:* i "libri gioco" (o "LibroGame") sono libri dinamici in cui il lettore prende parte attiva della storia, decidendo di volta in volta le azioni che il protagonista intraprende. La storia è strutturata in "snodi", ognuno dei quali conduce ad un altro punto della storia. Alcuni di questi libri prevedono anche una componente casuale in cui i risultati delle azioni del protagonista dipendono dal tiro di dadi o altri meccanismi. Le interfacce conversazionali, sia in forma testuale che in forma vocale, possono essere sfruttate per la realizzazione di storie interattive (eventualmente anche più complesse di quelle testuali). La tesi di laurea consiste nella realizzazione di un modello per rappresentare un "libro gioco", un sistema di gioco e di un prototipo con una (o più) interfacce conversazionali. * *Tesista:* Matteo Di Lorenzi. * Sistema per premiare la partecipazione ad eventi in presenza tramite Piattaforma WOM. * *Tesista:* Giorgia Giuseppetti. 1. LinkedCV, gestione profili e curriculum per **CodeMOOC**. * *Tesista:* Andrea Catani. 1. Piattaforma per delivery di "Mistery Box" con comunicazione in tempo reale tra cliente, back-end e corriere. * *Tecnologie:* Web Socket, Socket.io. * *Tesista:* Alessandro Serafini. 1. Sistema di interscambio/rappresentazione formale di un "librogioco" (vedi tesi in corso sotto) e implementazione di un lettore tramite Discord. * *Tecnologie:* JSON e JSON Schema, qualsiasi linguaggio di programmazione. * *Dettagli:* i "libri gioco" (o "LibroGame") sono libri dinamici in cui il lettore prende parte attiva della storia, decidendo di volta in volta le azioni che il protagonista intraprende. La storia è strutturata in "snodi", ognuno dei quali conduce ad un altro punto della storia. Alcuni di questi libri prevedono anche una componente casuale in cui i risultati delle azioni del protagonista dipendono dal tiro di dadi o altri meccanismi. La tesi prevede la specifica di un formato di interscambio (basato su JSON) e la definizione di una specifica (secondo JSON Schema) che serva per definire in maniera generica dei libri gioco e permetta quindi l'implementazione di un interprete e di un editor generico. * *Tesista:* Alessandro Bernardi. 1. Strumenti interattivi per l'insegnamento del coding tramite Caccia al Tesoro (Code Hunting Game). * *Tecnologie:* Web API e Flutter. * *Tesista:* Luca Panariello. 1. Panoramica sulle più recenti tecniche di Multiple Object Recognition (basate su Artificial Neural Network). _(Compilativa.)_ * *Tesista:* Andrea Pachavroski. 1. Implementazione di un bot Discord per l'assistenza al gioco di ruolo. * *Tecnologie:* piattaforma di messagistica con supporto per Bot (Discord), qualsiasi linguaggio per back-end. * *Dettagli:* i giochi di ruolo (GdR) sono giochi "carta e penna" che si svolgono tramite la narrazione di gruppo al tavolo di gioco da parte di un gruppo di persone. Lo svolgimento del gioco è solitamente coadiuvata da un elemento meccanico, di solito il lancio di dadi. Vista la recente situazione sanitaria, buona parte del gioco di ruolo si è spostato su piattaforma online, come ad esempio Discord. La piattaforma supporta l'uso di bot testuali, che possono gestire gli elementi più meccanici del gioco. La tesi ha come obiettivo la realizzazione di un bot per la gestione di prove e altre meccaniche di gioco, prendendo come caso d'uso un gioco di ruolo specifico. * *Tesista:* Cosimo Luca Quattrone. 1. Intelligenza artificiale e cognitiva per il Video Processing, un caso d'uso: Sony BRAVIA XR. * *Tesista:* Chiara Battista. 1. Implementazione di un editor di "libri gioco". * *Tecnologie:* Web o piattaforme per lo sviluppo desktop (Flutter, .NET, altro). * *Dettagli:* i "libri gioco" (o "librogame") sono libri dinamici in cui il lettore prende parte attiva della storia, decidendo di volta in volta le azioni che il protagonista intraprende. La storia è strutturata in "snodi", ognuno dei quali conduce ad un altro punto della storia. Alcuni di questi libri prevedono anche una componente casuale in cui i risultati delle azioni del protagonista dipendono dal tiro di dadi o altri meccanismi. La tesi di laurea consiste nell'estensione dei lavori di tesi precedenti (vedi sotto), realizzando un editor di librogame basato sulla specifica JSON Schema definita nella tesi di Bernardi. * *Tesista:* Elvi Bllano. 1. Rifacimento degli algoritmi e dell'applicazione mobile *SmartRoadSense* per Dart/Flutter. * *Tesista:* Alessio Basili. 1. Implementazione di mappe scalabili interattive per la visualizzazione, il filtraggio e la classificazione di artefatti geografici (segmenti stradali per [SmartRoadSense](http://www.smartroadsense.it)). * *Tecnologie:* NodeJS. * *Dettagli*: SmartRoadSense è un sistema di crowd-sensing che permette a volontari di raccogliere dati sulla qualità del manto stradale utilizzando un semplice smartphone. I dati raccolti vengono aggregati e visualizzati sul sito Web (vedi [mappa della qualità stradale](http://www.smartroadsense.it/data/map/)). La mappa Web al momento visualizza (in maniera semplificata) i dati aggregati con dei semplici punti sui dati stradali di *OpenStreetMap*. La tesi consiste nel realizzare un sistema più complesso per la visualizzazione dei dati, che permetta all'utente di esplorare più dimensioni dei dati che al momento non risultano visibili (qualità del manto stradale, numero medio di passeggeri, velocità media, qualità del dato, freschezza del dato, etc.) e/o permetta visualizzazione più avanzate (aggregazione dei punti, *heatmap*, visualizzazioni tridimensionali, etc.). * *Tesista:* Nicolò Santini. 1. Implementazione di un front-end Web per la generazione e gestione di pagamenti per la piattaforma [Worth One Minute](https://wom.social). * *Tecnologie:* _Angular_. * *Dettagli:* La piattaforma WOM permette a chiunque svolga del lavoro socialmente utile (tramite sistemi riconosciuti) di raccogliere dei *voucher* anonimi. I voucher vengono raccolti tramite una specifica app mobile e possono essere spesi presso degli esercizi commerciali associati alla piattaforma o ad altre terze parti che intendono premiare il lavoro svolto dagli utenti. Al momento, la raccolta di voucher tramite dei pagamenti avviene tramite un'applicazione mobile (Android e iOS). Nell'ottica di rendere la piattaforma più facile da utilizzare, in questo progetto di tesi si andrebbe a progettare ed implementare un'applicazione Web (eventualmente PWA) per la gestione dei pagamenti. Lo sviluppo dell'integrazione con la piattaforma WOM richiederà la gestione dei protocolli crittografici previsti dalla piattaforma e la gestione sicura delle informazioni. * *Tesista:* Oscar Gabellini. 1. Implementazione di un "libro gioco" tramite interfaccia conversazionale testuale (ad esempio Bot Telegram). * *Tecnologie:* piattaforma di messagistica con supporto per Bot (Telegram), qualsiasi linguaggio per back-end. * *Dettagli:* i "libri gioco" (o "librogame") sono libri dinamici in cui il lettore prende parte attiva della storia, decidendo di volta in volta le azioni che il protagonista intraprende. La storia è strutturata in "snodi", ognuno dei quali conduce ad un altro punto della storia. Alcuni di questi libri prevedono anche una componente casuale in cui i risultati delle azioni del protagonista dipendono dal tiro di dadi o altri meccanismi. La tesi di laurea consiste nell'estensione del lavoro prodotto dalla tesi di Di Lorenzi e quella di Bernardi (vedi sotto), realizzando un lettore di LibroGame per interfaccia testuale tramite piattaforma di messaggistica. * *Tesista:* Riccardo Agostini. 1. Definizione di un modello di rappresentazione di un "libro gioco" che permetta la codifica di storie a bivi interattive e implementazione di un lettore. * *Dettagli:* definizione di un linguaggio intermedio, espresso in formato JSON, che permetta di esprimere un documento di narrativa interattiva con (alcuni) costrutti di programmazione, che permettano di codificare anche comportamenti complessi. * *Tesista:* Alberto Facondini.