presentazione
TRANSCRIPT
![Page 1: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/1.jpg)
An Interactive Environmentfor the Didactical Manipulation
of Programs
University of CagliariFaculty of Mathematics, Physics and Natural SciencesMaster of Science in Information Technology
Academic Year 2011-2012
Candidate
Pier Giuliano Nioi
Supervisor
Riccardo Scateni
Examiner
Andrea Casanova
![Page 2: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/2.jpg)
2/17
Obiettivi
•Creazione di un ambiente interattivo a supporto dell'insegnamento
•Riduzione del carico cognitivo attualmente richiesto
•Faciliti la comprensione dei concetti fondamentali della programmazione
![Page 3: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/3.jpg)
3/17
Motivazioni
•Tool attuali non pensati per i principianti
•Impongono processi non interattivi
•Poco o nulla trasparenti nelle meccaniche
![Page 4: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/4.jpg)
4/17
Motivazioni
![Page 5: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/5.jpg)
5/17
Motivazioni
![Page 6: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/6.jpg)
6/17
Motivazioni
•Chi inizia a programmare è alle prese con:oNuovi concetti da capireoEsprimere concetti in codiceoMantenere la sintassi correttaoDedurre comportamento algoritmi
•Strumenti debugging complessi, aumenterebbero il carico cognitivo
![Page 7: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/7.jpg)
7/17
Soluzione
•Ambiente interattivo con funzionalità di:oEditing codice semplificatooVisualizzazione comportamento programmaoPromozione modifiche e sperimentazione
•Unione di componenti free & open source
![Page 8: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/8.jpg)
8/17
Editor
•Visuale
•Metafora dei blocchi
•Completa assenza errori di sintassi
•Rappresentazione astratta convertibile in codice reale
![Page 9: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/9.jpg)
9/17
Visualizzatore
•Permette oAnalisi del codice step-by-stepoVisualizzazione stato heap e stackoVisualizzazione costruzione del risultatooRapida individuazione errori semantici e di runtime
![Page 10: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/10.jpg)
10/17
Infrastruttura
•FrontendoEditoroVisualizzatore
•BackendoGeneratore traccia esecuzione
•Interazione tra le partioFeedback loop
![Page 11: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/11.jpg)
11/17
Infrastruttura
![Page 12: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/12.jpg)
12/17
Dettagli implementativi
•Web app on the cloudoAccessibile con un comune browsero Indipendente dalla piattaformao Installabile anche in localeoPossibilità condivisione programmi
•Tecnologie usateoFrontend in HTML5 + jQuery MobileoBackend in Google App Engine + PythonoComunicazione con Ajax + JSON
![Page 13: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/13.jpg)
13/17
Dettagli implementativi
![Page 14: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/14.jpg)
14/17
Dettagli implementativi
![Page 15: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/15.jpg)
15/17
![Page 16: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/16.jpg)
16/17
Conclusioni
•Realizzato ambiente interattivooRiduce carico cognitivo in vari modioVisualizza le meccaniche necessarieoFacilita l’apprendimento dei principiantioPromuove sperimentazione
•Live coding e debugging
•In futuro…o Integrazione in Eclipse tramite pluginoEstensione ad altri linguaggi comuni
![Page 17: Presentazione](https://reader035.vdocuments.us/reader035/viewer/2022081404/558b20b5d8b42a806d8b471d/html5/thumbnails/17.jpg)
17/17
Grazie per l’attenzione.