Nuovi strumenti per il coding

nuovi strumenti per il coding

App Inventor e Scratch for Arduino

CODING

Scratch for Arduino (S4A) e App Inventor sono due strumenti particolarmente adatti per avvicinare gli studenti alle strategie cognitive della Computing Science e per continuare un cammino che li porterà a utilizzare linguaggi di programmazione più professionali.

di Alberto Barbero e Francesco Vaschetto

Il coding è entrato da alcuni anni nel lessico scolastico in molte scuole di ogni ordine e grado. Anche nella classe prima delle Superiori, ove presente la disciplina informatica, si insegna e si pratica il coding in laboratorio attraverso l’utilizzo di svariati strumenti, dalla CS unplugged al linguaggio Scratch, ideale per iniziare, dalla robotica educativa ai linguaggi di programmazione testuali quali Python, C Language o Java. Oltre a questi strumenti, ne esistono altri che possono essere utilizzati con successo per introdurre i concetti della Computational Thinking. App Inventor è un linguaggio a blocchi per lo sviluppo di app per dispositivi mobile Android che permette di ottenere, in modo semplice, applicazioni che utilizzano i sensori disponibili su smartphone e tablet. Fratello maggiore di Scratch, è gestito anch’esso dal MediaLab del MIT di Boston. Anche S4A (Scratch for Arduino) è un linguaggio a blocchi, estensione di Scratch, per programmare il microcontrollore Arduino attraverso l’utilizzo di sensori e attuatori. Con S4A è possibile far interagire il software sviluppato con l’ambiente esterno, introducendo allo stesso tempo concetti di elettronica di base.

Scratch for Arduino

Scratch for Arduino è stato sviluppato dal gruppo Citilab dell’Università di Barcellona ed è un’estensione di Scratch che permette di utilizzare gli sprite per interagire con i sensori e gli attuatori collegati alla scheda Arduino. Arduino è una scheda elettronica che può essere programmata per interagire con il mondo esterno elaborando gli input ricevuti da dispositivi sensori e inviando comandi a dispositivi attuatori; ha il vantaggio di essere economica, di poter essere collegata a computer sui quali sono in esecuzione i sistemi operativi più diffusi (Windows, Linux e Mac OS X) e inoltre l’hardware e il software hanno la caratteristica di essere open source. Arduino può diventare il “cervello” elettronico inserito all’interno di oggetti interattivi che, rilevando lo stato di interruttori e sensori, controllano luci, motori e altri possibili output.

Quando si utilizza Scratch for Arduino, la scheda è collegata a una porta USB attraverso la quale è in comunicazione con l’ambiente S4A. I sensori e gli attuatori possono essere collegati alla scheda Arduino con una breadboard oppure con il Tinker Kit Shield. Il Tinker Kit Shield permette di collegare in modo semplificato sensori e attuatori alla scheda Arduino perché sono montati su piccole schedine che contengono tutti i componenti elettronici necessari per farli funzionare: in questo modo si possono realizzare progetti svincolandosi totalmente dai problemi di natura elettronica che possono sorgere e concentrandosi sull’aspetto della programmazione. I dispositivi sensori e attuatori che appartengono al Tinker Kit comprendono pulsanti, touch button, potenziometri, fotoresistenze, termistori, joystick, led e relè.

La principale differenza di S4A rispetto a Scratch è l’aggiunta nella categoria Movimento di alcuni blocchi che permettono l’interazione con Arduino e che consentono di rilevare un input digitale analogico e di impostare un valore in output digitale, o analogico su un output che prevede la codifica PWM. Per poter utilizzare S4A occorre installare sul PC l’ambiente di programmazione e caricare sulla scheda, attraverso l’IDE di Arduino, il firmware di comunicazione con S4A. Il firmware e l’ambiente di programmazione S4A possono essere liberamente scaricati dal sito S4a.

App Inventor

App Inventor è un linguaggio di programmazione sviluppato all’MIT di Boston, la prestigiosa università statunitense dove è nato anche Scratch, che permette di creare app per dispositivi mobili Android. È un linguaggio a blocchi web-based che gira direttamente nel browser (come è possibile fare con Scratch), collegandosi al sito Appinventor dopo essere entrati con il proprio account Google, richiesto per salvare i progetti realizzati sul web server di App Inventor. L’ambiente di sviluppo è composto da due videate principali, una dedicata alla progettazione grafica dell’aspetto della app e l’altra alla scrittura del codice, che consiste nell’impilare e connettere come in un puzzle blocchi di colore e forma diversa.

Le app sviluppate vengono direttamente memorizzate sul web server di App Inventor senza richiedere ulteriori salvataggi locali. Attraverso una app scaricata sul dispositivo Android, chiamata “MIT AI2 Companion”, disponibile gratuitamente sullo store di Google, è possibile eseguire direttamente sullo smartphone o sul tablet il programma che si sta sviluppando nel browser in App Inventor; il PC e il dispositivo mobile devono condividere la medesima connessione WiFi. In alternativa è possibile eseguire il programma all’interno di un emulatore visibile sullo schermo del PC oppure collegare direttamente lo smartphone o il tablet al PC attraverso il cavo USB. App Inventor è un linguaggio di programmazione guidato dagli eventi; ciò significa che una app, durante la sua esecuzione, attende il verificarsi di eventi esterni, legati alle azioni dell’utente, e interni, legati all’esecuzione della stessa app per lanciare gli script che gestiscono gli eventi verificatisi.

Nella programmazione guidata dagli eventi i componenti di una app sono gli oggetti visibili e non visibili che vengono trascinati nell’area del Visualizzatore in fase di progettazione dell’interfaccia utente. Nell’attuale versione i componenti sono suddivisi in 11 categorie in base alla loro funzionalità. Nel linguaggio a blocchi di App Inventor il codice è ottenuto impilando e connettendo blocchi di colore e forma diversi suddivisi in due categorie: incorporati e associati ai componenti utilizzati nel progetto della app. Le categorie dei blocchi incorporati comprendono quelli che realizzano le strutture della programmazione, le funzioni logiche e matematiche, la gestione delle stringhe, l’applicazione dei colori, le variabili e le procedure.

Per approfondire: la videolezione

 

nuovi strumenti per il coding

 

Alberto Barbero è insegnante, autore per Pearson Linx, coordinatore gruppo Ricerca e Sviluppo dell’associazione Dschola di Torino, collaboratore nella Facoltà di Scienze della Formazione Primaria all’Università di Torino, formatore corsi PAS per il Politecnico di Torino.

Francesco Vaschetto è insegnante, autore per Pearson Linx, formatore corsi PAS e TFA per il Politecnico di Torino, Formatore Dschola, istruttore certificato CISCO.