Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
Presentazione
1. University of Cagliari
Faculty of Mathematics, Physics and Natural Sciences
Master of Science in Information Technology
An Interactive Environment
for the Didactical Manipulation
of Programs
Supervisor Candidate
Riccardo Scateni Pier Giuliano Nioi
Examiner
Andrea Casanova
Academic Year 2011-2012
2. Obiettivi
•Creazione di un ambiente interattivo a
supporto dell'insegnamento
•Riduzione del carico cognitivo attualmente
richiesto
•Faciliti la comprensione dei concetti
fondamentali della programmazione
2/17
3. Motivazioni
•Tool attuali non pensati per i principianti
•Impongono processi non interattivi
•Poco o nulla trasparenti nelle meccaniche
3/17
6. Motivazioni
•Chi inizia a programmare è alle prese con:
oNuovi concetti da capire
oEsprimere concetti in codice
oMantenere la sintassi corretta
oDedurre comportamento algoritmi
•Strumenti debugging
complessi, aumenterebbero il carico cognitivo
6/17
7. Soluzione
•Ambiente interattivo con funzionalità di:
oEditing codice semplificato
oVisualizzazione comportamento programma
oPromozione modifiche e sperimentazione
•Unione di componenti free & open source
7/17
8. Editor
•Visuale
•Metafora dei blocchi
•Completa assenza errori di sintassi
•Rappresentazione astratta convertibile in
codice reale
8/17
9. Visualizzatore
•Permette
oAnalisi del codice step-by-step
oVisualizzazione stato heap e stack
oVisualizzazione costruzione del risultato
oRapida individuazione errori semantici e di runtime
9/17
10. Infrastruttura
•Frontend
oEditor
oVisualizzatore
•Backend
oGeneratore traccia esecuzione
•Interazione tra le parti
oFeedback loop
10/17
12. Dettagli implementativi
•Web app on the cloud
oAccessibile con un comune browser
oIndipendente dalla piattaforma
oInstallabile anche in locale
oPossibilità condivisione programmi
•Tecnologie usate
oFrontend in HTML5 + jQuery Mobile
oBackend in Google App Engine + Python
oComunicazione con Ajax + JSON
12/17
16. Conclusioni
•Realizzato ambiente interattivo
oRiduce carico cognitivo in vari modi
oVisualizza le meccaniche necessarie
oFacilita l’apprendimento dei principianti
oPromuove sperimentazione
•Live coding e debugging
•In futuro…
oIntegrazione in Eclipse tramite plugin
oEstensione ad altri linguaggi comuni
16/17