Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Linguaggi di programmazione per bambini: i migliori per iniziare

I principali linguaggi di programmazione (ed i relativi ambienti di sviluppo a corredo) per facilitare l'apprendimento della programmazione ai più piccoli.
I principali linguaggi di programmazione (ed i relativi ambienti di sviluppo a corredo) per facilitare l'apprendimento della programmazione ai più piccoli.
Link copiato negli appunti

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

Figura 1. Logo di Scratch (click per ingrandire)


Logo di Scratch

Il primo linguaggio di programmazione che prendiamo in considerazione è quello supportato da Scratch, un ambiente di programmazione gratuito ed accessibile tramite web che sfrutta un paradigma visuale a blocchi. In sostanza, realizzare un programma con Scratch significa mettere insieme diversi blocchi funzionali, interconnessi tra loro, ognuno dei quali corrisponde ad una specifica primitiva di programmazione. Esistono blocchi corrispondenti ai vari costrutti condizionali ed iterativi (spesso implementati come if, for e while), così come meccanismi che permettono la manipolazione di variabili, nonché blocchi funzionalmente più complessi che integrano diversi aspetti (e che potrebbero essere paragonati alle funzioni delle varie librerie standard).

Figura 2. Esempio di sviluppo di un semplice programma con Scratch (click per ingrandire)


Esempio di sviluppo di un semplice programma con Scratch

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, in costante aggiornamento.

App Inventor

Figura 3. Logo di App Inventor (click per ingrandire)



Mentre Scratch permette di realizzare sostanzialmente applicazioni per ambienti desktop, App Inventor è un ambiente di programmazione concettualmente simile, pensato per consentire la realizzazione semplificata di applicazioni mobile, in grado di essere eseguite su dispositivi Android. Creato da Google (ma ora anch'esso di proprietà dell'MIT)

Figura 4. Interfaccia di App Inventor (click per ingrandire)


Interfaccia di App Inventor

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), in maniera del tutto analoga a quanto già discusso per Scratch.

Per approfondire l'uso di App Inventor, rimandiamo al nostro tutorial su HTML.it.

Alice

Figura 5. Logo di Alice (click per ingrandire)


Logo di Alice

Sulla falsa riga dei precedenti ambienti di sviluppo si posiziona anche Alice, sviluppato e supportato da un altro grande istituto di ricerca statunitense, la Carnegie Mellon University. Scritto in Java, anch'esso permette di utilizzare e combinare blocchi funzionali per realizzare applicazioni più complesse, ed eventualmente anche visuali.

Figura 6. Interfaccia di Alice (click per ingrandire)


Interfaccia di Alice

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, che fornisce (tra le altre cose) anche una serie di esempi, video e brevi guide.

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.

Ti consigliamo anche