---+++ ARGOMENTI DI TESI DISPONIBILI (triennali e/o quinquennali) %SMALLEDIT% __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* * *D<nop>SA e programmazione* I ragazzi con D<nop>SA si trovano facilitati nel programmare o no? <!-- * *Estensione di Q<nop>2A per permettere la raccolta di informazioni sulla leggibilità del codice* * vogliamo estendere i plugin che implementano il peer-assessmenti di Q<nop>2A 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 Q<nop>2A e twiki per renderne facile l'aggiornamento indipendentemente dagli altri sistemi installati --> * *Generazione automatica di esercizi Python* * Sistematizzazione degli esercizi già svolti (6 anni * 10 esami * 6 esercizi) in modo che ogni esercizio abbia: * testo, prototipo, unit-tests, soluzioni, discussione dell'analisi, versione inglese * per realizzare questa parte si possono usare anche strumenti generativi (Chatgpt e simili) * oppure parsing dei file esistenti ed estrazione delle parti per costruire il "package" di ciascun esercizio * script di costruzione automatica di un gruppo di esercizi con certi vincoli globali: argomenti, difficoltà minima, punteggio massimo, difficoltà minima per raggiungere 18 * *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 J<nop>SON 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 --> * *Game based learning* (contattate direttamente il prof. Temperini di Ingegneria togliendo NOSPAM marte@diag.uniroma1.it) * 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 * ... --> <!-- * *CUDA/OpenCL*: parallelizzazione in CUDA o <nop>OpenCL di Evorobot* (sistema per la robotica evolutiva) --> * *Origami e 3D* (solo non compilativa) * simulazione di un foglio di carta in 3D e dei suoi movimenti usando Constraint Programming <!-- * *FPGA*: realizzazione in hardware di algoritmi * gli algoritmi possono essere realizzati sulla FPGA come circuiti che possono essere simulati e progettati in Python usando la libreria myHDL * un esempio di algoritmo da realizzare potrebbe essere quello per il bitcoin mining --> <!-- ---++++ Tesi compilative: (che possono essere anche trasformate in tesi di sviluppo) * *Game-based e-learning*: tesi di rassegna delle pubblicazioni e sulle piattaforme di gaming usate nel supporto alla didattica (giochi di ruolo multiplayer, ambienti virtuali, simulazioni) * *Sistemi e-learning adattabili*: tesi di rassegna delle pubblicazioni e delle tecniche per l'e-learning adattivo * *Sistemi di reputazione ed e-learning*: tesi di rassegna delle pubblicazioni e degli algoritmi di reputazione usati nei sistemi e-learning per guidare gli studenti o per consigliare materiale didattico * *wiki-radio*: tesi di rassegna delle pubblicazioni e dei sistemi per la costruzione cooperativa di contenuti audio e testuali, per lo streaming e per la realizzazione di una radio "wiki" (usando anche sistemi di text-to-speech per far "leggere" testi, dialoghi e notiziari) * *Sistemi riconfigurabili basati su FPGA*: tesi di rassegna delle pubblicazioni e dei sistemi di sviluppo usati per trasformare programmi in circuiti riconfigurabili realizzati in FPGA (che sono dei circuiti riconfigurabili) --> ---+++ Tesi completate * *Correzione automatica di esercizi di Architetture degli elaboratori e generazione automatica di spiegazioni degli errori* * esercizi su cache * esercizi su pipeline * esercizi di C<nop>PU con CU rotta * esercizi in cui si modifica la CPU per aggiungere nuove istruzioni o nuovi componenti hardware (FW in fase M<nop>EM o altro) (disponibile) * costruzione di plugin per il simulatore M<nop>ARS per "rompere" la C<nop>PU (disponibile) * *Visualizzazione del codice e della sua esecuzione* * 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) * *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 Ope<nop>nCV 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 Op<nop>enCV 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 1 *Realizzazione di un sistema per questionari a risposta aperta* 1 *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 [[http://mindstorms.lego.com/eng/default.asp][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 è [[http://twiki.dsi.uniroma1.it/%7Eandrea/Tesi][disponibile]] .
This topic: Users/AndreaSterbini
>
ArgomentiDiTesi
Topic revision: r64 - 2024-09-28 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback