Ricerca
Mi interesso di
- strumenti per la didattica collaborativa e LMS adattivi via Web
- modellazione del peer-assessment con reti Bayesiane
- algoritmi su grafi
- algoritmi paralleli
- Java, Prolog, Smalltalk, Linux
- Origami
- Constraint Programming
- Robotica
Didattica
Quest'anno insegno
- nel primo semestre
- nel secondo semestre
Mi trovate
- Orario di ricevimento: a lezione oppure in ufficio il
*martedì dalle 14.30 alle 17* venerdì dalle 14 alle 18 (fino a fine maggio)
- Ufficio: Via Salaria 113, terzo piano, stanza 314B
- Telefono: 06-4991-8538
- Email: sterbini@diNOSPAM.uniroma1.it (togliete NOSPAM !!!)
Progetti Europei
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
- analisi Bayesiana della correzione cooperativa di domande a risposta aperta e supporto alla correzione
- Realizzazione di un sistema per questionari a risposta aperta
- 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 .
Sostengo
Sostengo alcune organizzazioni
One Laptop Per Child
Sono riuscito a ottenere un laptop del progetto OLPC ... è fichissimo!!!
- E' una Fedora 7 su hardware Geode a 600Mhz circa.
- con 256M di ram e 1GB di flash.
- WiFi, webcam, mike e speakers, 3 porte usb e una Compact Flash per espandere lo spazio "disco"
Sposto su una pagina separata i miei esperimenti con l' OLPC e Lejos.
Links interessanti
Una nota su RaiOt
C'e' chi non sopporta la libertà d'opinione degli altri al punto da usare la censura.
Per questo avevo scaricato su twiki i filmati delle trasmissioni di RaiOt e della Guzzanti per renderli disponibili.
Come reazione si è cominciato ad usare twiki a sproposito contro il simbolo della Pace e la sinistra in genere.
Per evitare polemiche linko i siti originali.
Links
Se volete imparare a programmare come si deve cominciate da
Libri che mi sono piaciuti troppo
- Little Brother di Cory Doctorow ASSOLUTAMENTE DA LEGGERE!!! (ma anche gli altri suoi libri)
- La serie di Discworld di Terry Pratchett
- Guida galattica per autostoppisti di Douglas N. Adams
- Il Signore degli Anelli di J. R. Tolkien
- The Bastard Operator From Hell di Simon Travaglia
- Tanta fantascienza
-- AndreaSterbini - 10 Oct 2000
|
| |
|