Una delle direzioni migliori per imparare a programmare, particolarmente misconosciuta quanto producente, è lavorare su un computer che non esiste.
Il software può dare vita a un processore immaginario, abbastanza semplice da studiare e sufficientemente complesso per apprendere attraverso l’applicazione. Anche un solo calcolatore reale, non importa quanto vecchio, dispone di potenza di elaborazione sufficiente per fornire processori virtuali a una intera classe.
Gli esempi sono numerosi e presenti in qualsiasi ambito. Per farne un paio, il MIX di Donald Knuth ha formato più generazioni di programmatori e ingegneri del software. MIX è un processore (originalmente) a otto bit con il quale programmare gli algoritmi di soluzione dei problemi della monumentale opera di Knuth The Art of Computer Programming. Al cambio di millennio si è trasformato in MMIX e Knuth così lo propone:
I believe MMIX is the best existing computer for educational purposes, if students want to experience a realistic machine with a minimum of kludgey inelegance.
Matthew Nelson diede vita nel tardo 2000 a Robocode, un’area virtuale in cui si danno battaglia robot programmabili con un linguaggio molto semplice. Il progetto divenne proprietà IBM nel 2001 e oggi, divenuto open source, continua a evolvere.
Riceverà probabilmente attenzione nel prossimo futuro un altro processore virtuale. Si chiama DCPU-16 e sarà programmabile dentro 0x10c, il prossimo gioco di Notch, già autore di Minecraft, altro software con ricadute formative inaspettate. Ancora una volta non si può che richiamare sul tema l’attenzione del mondo della didattica, perlomeno quello impegnato sul fronte digitale.