ARGOMENTI DI TESI DISPONIBILI (triennali e/o quinquennali)

ATTENZIONE: le mie tesi hanno una durata minima di 5 mesi e durata non fissata (terminano quando gli obiettivi sono raggiunti)

  • Strumenti di supporto alla dislessia
    • DSA e programmazione I ragazzi con DSA si trovano facilitati nel programmare o no? (assegnata)

  • Estensione di Q2A per permettere la raccolta di informazioni sulla leggibilità del codice
    • vogliamo estendere i plugin che implementano il peer-assessmenti di Q2A in modo che gli studenti alla fine possano giudicare la leggibilità del codice consegnato dai peer
    • i dati raccolti potranno essere analizzati e confrontati sia rispetto alle capacità dei peer che rispetto alla evoluzione delle capacità di compresndione durante lo svolgimento del corso
    • inoltre vogliamo dockerizzare Q2A e twiki per renderne facile l'aggiornamento indipendentemente dagli altri sistemi installati

  • Correzione automatica di esercizi di Architetture degli elaboratori e generazione automatica di spiegazioni degli errori (assegnata)
    • esercizi su cache
    • esercizi su pipeline
    • esercizi di CPU con CU rotta
    • esercizi in cui si modifica la CPU per aggiungere nuove istruzioni o nuovi componenti hardware (FW in fase MEM o altro) (disponibile)
    • costruzione di plugin per il simulatore MARS per "rompere" la CPU (disponibile)

  • Correzione automatica di esercizi Python e generazione automatica di spiegazioni degli errori
    • Raccolta di esercizi Python con correzione automatica e studio dei tipi di errori fatti negli esercizi consegnati in sede d'esame
      • Correzione automatica per confronto con implementazione di riferimento
      • per definire i controlli e generare i test useremo le librerie icontract e hypothesis
    • Altri argomenti disponibili:
      • Eserciziario con suggerimenti di analisi dei problemi a livello crescente di dettaglio (un po' come i suggerimenti nei giochi di avventure, che non devono spoilerare troppo)
        • si parte dagli esercizi d'esame già raccolti (una 80ina) più eventuali altri esercizi degli esami successivi
        • per lo stesso problema si realizzano implementazioni che seguono stili diversi di realizzazione (procedurale, funzionale, oop, dichiarativo ....)
        • per ciascuno stile di realizzazione si costruisce una sequenza di suggerimenti che vanno da un livello molto vago per non spoilerare l'analisi del problema, al livello di dettaglio più preciso
        • il tutto viene gestito tramite strutture JSON che rappresentano dichiarativamente i suggerimenti e i loro legami
      • Diagnosi degli errori tramite modifica automatica (fuzzying?) del codice di riferimento e confronto dei risultati
      • Concolic testing e generazione automatica di casi di test
        • con l'uso di sistemi di elaborazione simbolica del codice, è possibile trovare automaticamente dei casi di test che evidenziano errori o il discostamento da una implementazione di riferimento.

  • Linguaggi visuali a blocchi (tipo Scratch)
    • Realizzazione di un sistema web-based per il linguaggio Prolog

  • Visualizzazione del codice e della sua esecuzione (completata)
    • Collaborazione per la realizzazione della mostra del codice http://codexpo.org
      • realizzando visualizzazioni multimediali innovative della esecuzione del codice
      • realizzando visualizzazioni fisiche del codice (p.es. un mobile che mostra la ricorsione)
    • altre tesi possono essere realizzate su questo filone

  • Game based learning (in collaborazione col prof. Temperini)
    • realizzazione di giochi didattici in Unity o HTML5

  • Estrazione di personaggi da romanzi (tesi magistrale o triennale)
    • NOTA: devo trovare nuovi argomenti relativi a questo filone, già ci si è lavorato sopra parecchio
    • con una collega di Letteratura Comparata vogliamo estrarre dai testi di romanzi l'elenco dei personaggi, sia nominati (p.es. "Lady Catherine de Burgh") che non-nominati (p.es "il figlio del cuoco del re") dal testo, assieme ad una serie di informazioni demografiche sul personaggio (genere, lavoro, parentele, nobile/plebeo ...). Il problema non è facile ed implica dover imparare ad usare strumenti per il Natural Language Processing (NLP) in Inglese. (il progetto si dedicherà anche al Francese e all'Italiano). Si lavora in Python e le due librerie da usare sono Spacy e Stanza. Un paio di tesi sono iniziate per l'Italiano ed il Tedesco con l'obiettivo di allineare testi con traduzioni diverse gestendo inoltre:
      • nomignoli dei personaggi (Lizzy per Elizabeth, Tony per Antonio, ...)
      • titoli onorifici (Mr., Master, Lady, ....)
    • Altre possibili tesi:
      • (completata) reimplementazione in Python + Spacy + Stanza del sistema Book-NLP e Litbank del prof. Bamman + altri lavori su Character alias recognition
      • ...

  • Origami e 3D (solo non compilativa)
    • simulazione di un foglio di carta in 3D e dei suoi movimenti usando Constraint Programming

Tesi completate

  • Generazione di reti di studenti virtuali per apprendere un modello di rete bayesiana del peer-assessment (completata)
    • Con un collega stiamo sviluppando un generatore di peer-assessment, dai comportamenti virtuali degli studenti simulati possiamo apprendere i parametri di una rete bayesiana che modella gli studenti
    • la tesi deve:
      • migrare a Python3 + la più recente versione di Bayesnet il mio codice Openanswer di modellazione bayesiana della classe
      • generare migliaia di classi virtuali con parametri e comportamenti diversi
      • apprendere i parametri della rete bayesiana dai dati generati
      • applicare il modello ottenuto ad altri dati generati per calcolare la precision e recall del modello

  • Strumenti di supporto alla dislessia
    • è stata svolta una tesi in cui si visualizzano (un player) degli esercizi di traduzione di Latino (e in futuro altri linguaggi) con particolari accorgimenti per aiutare i ragazzi dislessici. La visualizzazione dei diversi tipi di esercizi si basa su una struttura dati che contiene tutte le meta-informazioni relative all'esercizio, ovvero, casi, generi, declinazioni, coniugazioni, significati numero eccetera.
    • Altre possibili nuove tesi su questo filone potrebbero essere dedicate a:
      • (completata) realizzare esercizi di Latino più avanzati e con nuove visualizzazioni
      • (completata) realizzazione di un editor di esercizi che permette di costruire facilmente la struttura dati necessaria al Player.
      • (completata) realizzare un server per permettere al docente di far svolgere alla classe esercizi con livello di difficoltà/aiuto personalizzato per ciascuno studente
      • generalizzare il player per un altro linguaggio (greco, inglese, francese)

  • Simulazione di Origami: tesi di rassegna delle pubblicazioni e dei sistemi di simulazione che potrebbero essere usati per la simulazione di un foglio di carta piegato, e quindi per la piegatura "virtuale" di origami (ad esempio usando il simulatore fisico ODE)
  • Robotica
    • Robotica con Lego Mindstorms EV3
      • navigazione landmark-based in ambiente semplificato (foglietti colorati incollati per terra) ed in ambiente reale con fotografie omnivision
      • navigazione e mapping con telecamera (vSLAM)
    • costruzione e movimento di un braccio robotico con manipolazione di oggetti semplici e loro riconoscimento con telecamera
      • usando la libreria OpenCV per riconoscere gli oggetti e realizzando un planner del movimento
      • la gestione della cinematica inversa può essere affrontata usando le mappe autoorganizzanti di Kohonen
  • Strumenti di supporto alla dislessia
    • riconoscimento automatico degli errori di lettura tramite speech recognition su testi fissi
  • Realizzazione di una applicazione di aiuto alla trascrizione di manoscritti
    • in collaborazione con l'università di Friburgo
    • la scansione del manoscritto viene visualizzata
    • usando la libreria OpenCV o altre librerie di riconoscimento di immagini vengono cercati pezzi di immagini simili (le lettere)
    • con il supporto di un vocabolario vengono proposte possibili interpretazioni delle parole presenti
    • il trascrittore supervisiona le proposte e aiuta il sistema segnalandogli lettere e parole che ha riconosciuto e che possono essere usate per far apprendere al sistema nuovi simboli da cercare e riconoscere

  • Musica
    • Realizzazione di una app Android che riconosce le note suonate da un musicista e reagisce in modo divertente (assegnata)
      • obiettivo: rendere divertente lo studio di esercizi musicali

  • Dislessia
    • raccolta dati e loro analisi per la definizione di un indice di leggibilità specifico per i dislessici (italiani) (assegnata)
      • in collaborazione con la prof. Roberta Penge

  • Peer assessment
    • modellazione bayesiana della correzione tra pari (assegnata)
      • basandosi sulla libreria SMILE che è possibile programmare in Python

  • Supporto alla didattica
    1. analisi Bayesiana della correzione cooperativa di domande a risposta aperta e supporto alla correzione
    2. Realizzazione di un sistema per questionari a risposta aperta
    3. Generazione automatica di esercizi di Programmazione
  • Robotica
    • (Evorobot è un programma di Stefano Nolfi per l'evoluzione di robot intelligenti)
    • Simulatore di NXT estensione di un semplice simulatore per
      • renderlo più preciso/veloce
      • permettere il controllo di robot reali
      • (forse) visualizzazione 3D e/o simulazione corretta della fisica usando ODF

    • Evoluzione della capacità di colpire un bersaglio lanciando proiettili di peso variabile (assegnata)
      • usando una libreria per la simulazione di fisica (ODE o altro) ed una libreria per la simulazione di reti neurali ed eventualmente una libreria per gestire algoritmi genetici
      • obiettivo far evolvere la definizione della rete neurale di controllo (inizialmente i soli pesi) di un braccio simulato che lancia pesi diversi verso un bersaglio, premiando gli esemplari che colpiscono più vicino al bersaglio. Tra gli input della rete non è presente il peso del proiettile ma solo variabili propriocettive (p.es. posizione e velocità del braccio o forza impiegata) e posizione del bersaglio (inizialmente in 2D, poi in 3D)
      • estensione: colpire un oggetto in movimento

  • drPython (Qualità e leggibilità del codice Python) (completata)
    • Per il corso di Fondamenti di Programmazione vorrei cercare di costruire un analizzatore della qualità del codice Python, raccogliendo tutta una serie di feature analizzando il codice:
      • uso di notazione funzionale (map, lambda functions)
      • uso di argomenti con valori di default mutabili
      • annotazione di tipi e correttezza statica del programma
      • intricatezza del codice
      • uso di identificatori facili da capire sia per le variabili che per le funzioni
      • uso di ricorsione
      • uso di eccezioni
      • docstring per funzioni/metodi e file
      • commenti nel codice
      • corrispondenza tra una descrizione testuale dell'algoritmo e: 1) le specifiche dell'esercizio 2) l'implementazione
      • .... e molte altre La tesi deve per prima cosa individuare quali librerie già permettono di estrarre le feature e poi implementare quello che manca. Una volta estratte le feature vorrei analizzare il corpus di esercizi realizzati in questi anni dagli studenti e imparare quali programmi sono più leggibili e quindi quali feature sono più importanti
    • Altro argomento: sito web per la libreria drPython con log delle informazioni ricavate (completata)

  • Daniele Pensiero: Informatizzazione della raccolta dati per la definizione di un indice di leggibilità specifico per i dislessici (italiani)* (voto 110 e lode)
  • Stefano Ciavarella: Trasformazione e layout di testi per la fruizione facilitata per persone affette da Dislessia
  • Fabio Ticconi: Realizzazione ed evoluzione di un sistema di Visione Attiva
  • Matteo Pallocca: Evoluzione di formiche su Evorobot
  • Enzo Simone: Parallelizzazione di Evorobot su GPU
  • Marco Cortina: Parallelizzazione di Evorobot su BOINC
  • Leonardo Parisi: Realizzazione di un sistema a 3DOF per il controllo e la produzione di filmati time-lapse
  • Yuri Campilii: Soluzione di puzzle logici (ad esempio il Kakuro) con GNU-Prolog e il sistema di puzzles di Simon Tatham (triennale - voto 102)
  • Giuseppe Morlino: Esperimenti di Robotica Evoluzionistica (v.o. - voto 110 e lode)
  • Emanuele Cimò: Realizzazione di un robot equilibrista controllato da Wiimote (triennale - voto 105)
  • Giovanni Colombi: Esperimenti di Robotica Evoluzionistica con omnicam e e-puck (triennale - voto 106)
  • Elio Chiapperini: Esperimenti di Robotica Evoluzionistica con comunicazione IR e e-puck (triennale - voto 101)
  • Alessandro Leopardi: Realizzazione di interfaccia hardware tra telecamera e Lego Mindstorm NXT (v.o.)
  • Maurizio Mariani: Estensione di sistema per la costruzione di corsi personalizzati per permettere la specifica dei prerequisiti e postrequisiti delle componenti didattiche sotto forma di Learning Objectives (triennale - voto 107)
  • Vito Modena: Ottimizzazione del sistema e-learning ADA (applicazione php/mysql) (triennale - voto 110)
  • Valentina Buffone: "Simulatore di NXT" estensione di un semplice simulatore per il NXT (triennale - voto 102)
  • Francesco Fontana: Realizzazione di librerie Java ME per interazione con telecamera bluetooth e Lego Mindstorm NXT (triennale)
  • Simone Marinelli: "Sistema di Analisi della leggibilità del software in C e Java" (triennale - voto 106)
  • Massimo Pezzulli: "Esperienze di robotica behaviourale, gerarchica e ibrida" (v.o. - voto 104)
  • Giacomo Piperno: implementazione di un Lego Segway con Lego Mindstorms (triennale - voto 110 e lode)
  • Marzia Mastrogiacomo: "Trasformazione Sintattica del Codice: Ottimizzazione del Content-manager Twiki" (v.o. - voto 106)
  • Stefano Malagigi: Wiki Radio: una streaming radio che legge le notizie dal web e genera la voce con Festival (triennale - voto 110 e lode)
  • Pietro Longo: Correzione automatica di esercizi di programmazione (v.o. - voto 110 e lode)
  • Albino Aiello: Correzione automatica di esercizi di Architetture 1 (triennale - voto 101)
  • Maurizio Di Pietro: Simulazione di Origami in Java 3D (triennale)
  • Luca Giuliani: Un editor di esercizi per didattica a distanza (v.o.)

Il software sviluppato in alcune delle tesi è disponibile .

Edit | Attach | Watch | Print version | History: r63 < r62 < r61 < r60 < r59 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r63 - 2022-03-24 - AndreaSterbini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback