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.
L'approccio innovativo di Diogene-CT può essere riassunto nei seguenti punti:
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:
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.
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.
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.