Chi, per lavoro, si occupa di sviluppo software, e magari avrà una giovane figlia o un giovane figlio che si stia appassionando all'uso del computer, potrà porsi una domanda che sta diventando sempre più frequente anche su Internet: quale linguaggio di programmazione è più indicato per un bambino, al fine di iniziare a programmare? La domanda è più che lecita, ed esistono sia linguaggi, che framework leggermente più estesi che permettono di apprendere più agevolmente la programmazione, facilitando lo sviluppo di quello che viene generalmente chiamato computational thinking (o "pensiero computazionale"). Molti di questi linguaggi sono nati espressamente con l'obiettivo di facilitare l'apprendimento ai più piccoli, e spesso sono spin off di progetti di ricerca mirati ad integrare il gioco all'interno della programmazione, spesso sfruttando paradigmi visuali piuttosto che l'uso esclusivo di codice testuale.
In questo articolo di approfondimento, forniremo una panoramica dei principali linguaggi (ed i relativi framework a contorno) per facilitare l'apprendimento dei principi di programmazione ai più piccoli.
Scratch
Il primo linguaggio di programmazione che prendiamo in considerazione è quello supportato da Scratch
primitiva di programmazione
if
for
while
manipolazione di variabili
Nato come spin-off di un progetto di ricerca del Massachusett Institute of Technology (MIT), Scratch è oggi utilizzato anche in molti istituti scolastici, in Italia e all'estero. Per approfondire l'uso di questo framework, rimandiamo alla guida a Scratch di HTML.it
App Inventor
Mentre Scratch permette di realizzare sostanzialmente applicazioni per ambienti desktop, App Inventor applicazioni mobile Android
Originariamente pensato per facilitare la creazione di semplici applicazioni per Android a chi avesse skill di programmazione molto basilari, App Inventor si è presto rivelato molto utile anche per lo sviluppo del computational thinking nei più piccoli. Come si vede dalla figura precedente, la grafica dell'interfaccia è molto semplice ed intuitiva, basata anch'essa sul drag-and-drop di blocchi funzionali (sfruttando un linguaggio di programmazione visuale chiamato Blockly
Per approfondire l'uso di App Inventor, rimandiamo al nostro tutorial su HTML.it
Alice
Sulla falsa riga dei precedenti ambienti di sviluppo si posiziona anche Alice Java
Uno dei vantaggi di Alice è la vasta documentazione a corredo del software, il tutto liberamente accessibile e scaricabile tramite il sito web ufficiale del progetto
Soluzioni per la robotica
Parallelamente alle soluzioni viste fin qui, esistono diversi framework che permettono di programmare in modo relativamente semplice applicazioni destinate alla robotica. Il primo esempio che menzioniamo che CoderZ, che ancora una volta sfrutta la programmazione visuale a blocchi, ma questa volta per definire ed assemblare una serie di comportamenti da associare a semplici robot. Il sito ufficiale del progetto include diversi video dimostrativi, che esemplificano meglio di ogni altra cosa lo scopo e l'ambito di applicazione di questa soluzione.
Molto simile a CoderZ è anche l'ambiente di programmazione Coreographe di Aldebaran, per lo sviluppo di applicazioni per il robot NAO. Anche in questo caso si fa uso di una serie di blocchi funzionali personalizzabili, la cui combinazione è facilitata dalla possibilità di effettuare drag and drop. Sebbene sia possibile "complicare" ulteriormente le cose mediante l'integrazione di script in Python, l'uso di base di Coreographe è estremamente semplice, come dimostrato dal video seguente.
Infine, vale la pena menzionare anche la suite di programmazione a corredo dei prodotti della serie LEGO Mindstorms, che combinano mattoncini programmabili con motori elettrici, sensori, ingranaggi e parti pneumatiche per costruire robot e altri sistemi automatici e/o interattivi. Anche questi software, uniti all'applicazione molto pratica e coinvolgente, permettono di facilitare l'apprendimento della programmazione tramite il gioco.
Swift Playgrounds
L'ultima applicazione che ci sentiamo di segnalare è Swift Playgrounds, disponibile sull'App Store di Apple e pensata per insegnare la programmazione direttamente sfruttando un iPad. In sostanza essa permette di scrivere codice in linguaggio Swift, seguendo una serie di lezioni interattive per imparare la programmazione di app mobile per iOS.
Oltre alle lezioni, Swift Playgrounds include anche diversi template integrati, che permettono agli aspiranti sviluppatori di realizzare applicazioni personalizzate, mettendo all'opera la loro creatività.
Il video seguente riassume il funzionamento di questa applicazione.