• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,232
On Slideshare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. University of Cagliari Faculty of Mathematics, Physics and Natural Sciences Master of Science in Information Technology An Interactive Environmentfor the Didactical Manipulation of Programs Supervisor CandidateRiccardo Scateni Pier Giuliano Nioi ExaminerAndrea Casanova Academic Year 2011-2012
  • 2. Obiettivi •Creazione di un ambiente interattivo a supporto dellinsegnamento •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
  • 4. Motivazioni 4/17
  • 5. Motivazioni 5/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
  • 11. Infrastruttura 11/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
  • 13. Dettagli implementativi 13/17
  • 14. Dettagli implementativi 14/17
  • 15. 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
  • 16. Grazie per l’attenzione. 17/17