Diogene-CT

Piattaforma di Animazione del Codice

Introduzione

L'educazione alle discipline STEM si concentra sulla costruzione di competenze utili a padroneggiare tecnologia, scienza e logica. Di certo, il modo migliore per integrare tecnologia e logica è la programmazione.

Diogene-CT è un innovativo ambiente di visualizzazione del codice sviluppato da Svelto! che si distingue per l’adozione di un nuovo paradigma chiamato ACME (Animazione del Codice con Metafore Evolute). Utilizzando Diogene-CT, in altre parole, si ha la possibilità di visualizzare, per l’insegnamento della programmazione sia nelle scuole superiori che nei primi anni di università, metafore visive coerenti sia per la programmazione procedurale che per quella orientata agli oggetti.

Descrizione

L'approccio innovativo di Diogene-CT può essere riassunto nei seguenti punti:

  • sviluppa un insieme di metafore per introdurre i concetti di programmazione. Adottando le metafore, è possibile lavorare con gli studenti per facilitare il loro approccio alla programmazione, ridurre il loro carico cognitivo e l'effetto scatola nera associato al codice sorgente;
  • la metodologia si basa su due metafore diverse ma correlate. La prima e fondamentale è incentrata sui principali costrutti della programmazione procedurale; la seconda e più avanzata è costruita intorno ai principi della programmazione orientata agli oggetti;
  • ha un set di strumenti eseguibili: i blocchi di base del set di strumenti sono rappresentati da azioni di animazione e programmi di animazione. Le metafore sono tradotte in una libreria di azioni di animazione riportate su una scena;
  • permette di passare, senza soluzione di continuità, da una metafora all'altra. Questa possibilità consente agli studenti di comprendere meglio gli aspetti operativi della programmazione, riducendo allo stesso tempo il loro sovraccarico cognitivo;
  • l'animazione può essere eseguita sia in modalità offline che online. In modalità offline l'insegnante sviluppa del codice poi, selezionato uno scenario d'uso, usa l'animatore Diogene-CT per dare vita all'esecuzione. Molto più impegnativa è la modalità online, in cui l'animatore Diogene-CT viene fornito in codice Java e viene data la possibilità allo studente di eseguire il codice e interagire con esso direttamente in fase di animazione.
  • Diogene-CT, oltre alle caratteristiche appena descritte, ha tre diversi elementi che ne fanno la differenza: la Metafora del braccio meccanico per la programmazione procedurale, la Metafora della comunità dei robot per la programmazione orientata agli oggetti e la gamification.

La metafora del braccio meccanico per la programmazione procedurale

Per insegnare i concetti di base di qualsiasi linguaggio di programmazione, come variabili, assegnazioni, strutture di controllo e così via, abbiamo sviluppato una metafora per l'esecuzione di istruzioni di codice basate sull'uso di bracci meccanici.

In questa metafora:

  • La RAM è rappresentata come un grande foglio di calcolo le cui celle possono essere nominate e possono memorizzare valori (per rappresentare le variabili);
  • L'ALU è rappresentata come una calcolatrice in grado di eseguire i tipici calcoli richiesti dall'algebra numerica e booleana;
  • L'ingresso e l'uscita standard sono rappresentati rispettivamente da tubi collegati alla tastiera e allo schermo della console. Le animazioni mostrano flussi di caratteri che scorrono attraverso questi tubi quando vengono attivati;
  • Il braccio meccanico rappresenta un contesto di esecuzione, tipicamente una funzione, ed è responsabile dell'animazione delle operazioni effettuate dal processore o dalla macchina virtuale, come ad esempio: (a) cambiare il contenuto del foglio di calcolo della memoria; (b) azionare la calcolatrice per eseguire i calcoli; (c) attivare i tubi alla console o dalla tastiera;
  • Infine, per chiarire l'importanza del flusso di controllo e il ruolo delle strutture di controllo, il simbolo del lecca-lecca indica in ogni momento dell'animazione il numero dell'istruzione che il braccio meccanico deve eseguire.

Ogni istruzione provoca una serie di azioni da parte del braccio meccanico nell'animazione. Gli studenti possono vedere tutti gli stati intermedi dell'animazione del programma e questo elimina l'effetto 'scatola nera' associato all'esecuzione tradizionale del codice da parte della macchina, rendendolo più trasparente per gli studenti.

La metafora della comunità di robot per la programmazione orientata agli oggetti

Diogene-CT utilizza la metafora di una comunità di robot cooperanti, in cui ogni robot è un componente (classe di oggetti) per illustrare i concetti tipici della programmazione orientata agli oggetti. Riferimento, messaggio, metodo, pacchetto, binding ecc. saranno spiegati in termini di questa metafora. Ad esempio: un riferimento ad un oggetto è un telecomando per l'oggetto; un messaggio tra oggetti è un messaggio scambiato tra robot, ecc.

La metafora della comunità di robot è strettamente collegata alle caratteristiche della programmazione orientata agli oggetti; Per spiegarne i concetti, utilizza elementi del mondo reale. Inoltre sfrutta la metafora del braccio meccanico per far si che si possa avere una visione più dettagliata della programmazione procedurale, e una visione ad alto livello della programmazione ad oggetti.

Gamification

L'ultima importante caratteristica dell’approccio basato sulla metafora è l’utilizzo della gamification, cioè la tecnica di soluzione dei problemi attraverso i giochi, molto efficace nella programmazione. Nell'approccio Diogene-CT, l'obiettivo del gioco è quello di scrivere un programma per computer in grado di risolvere un problema, ad esempio un problema matematico o una semplice simulazione di un fenomeno scientifico.

Il gioco consiste nel progettare lo stato target della scena, cioè quello in cui tutti i risultati sono stati calcolati, e chiedere agli studenti di realizzare fisicamente l'animazione vera e propria - sia procedurale che orientata agli oggetti. Gli studenti possono lavorare singolarmente o in gruppo: nell’ultimo caso ognuno di loro è responsabile dell'esecuzione delle azioni di un elemento della scena.