Scuole FAES Milano: da alcuni anni il creative coding e la robotica sono materia di studio dalla seconda Elementare (Primaria)

Appena il 5% dei laureati che escono dalle università italiane hanno competenze digitali e imprenditoriali concrete che li rendono pronti al futuro, e 3 responsabili delle risorse umane su 4 ammettono di non riuscire a trovare risorse adeguatamente formate dal punto di vista tecnologico. Ad affermarlo è una ricerca resa nota in dicembre da University2Business, società del Gruppo Digital360: una fetta ancora troppo grande dei giovani italiani è inconsapevole di quanto il digitale stia trasformando la cultura aziendale, i processi e i modelli di business, un gap che il sistema scolastico non sta affatto colmando.

Ma c’è chi va in controtendenza: alle Scuole FAES di Milano da alcuni anni il creative coding e la robotica sono materia di studio curricolare fin dalla seconda classe Elementare, o Primaria che dir si voglia. Il FAES è un’associazione nata nel 1974 per promuovere la collaborazione educativa tra scuola e famiglia che a Milano gestisce scuole paritarie dall’asilo nido ai licei (classico, scientifico e delle scienze umane), tutte rigorosamente bilingui italiano-inglese e incentrare su uno specifico modello didattico che vede, tra l’altro, la centralità delle soft skills – cioè le abilità trasversali, umane, relazionali e sociali, tanto ricercate dalle aziende – considerate al pari di qualsiasi altra materia di studio. All’interno delle soft skills rivestono un ruolo prioritario proprio il creative coding e la robotica, che solo alle Scuole FAES di Milano – che oggi contano circa 1000 studenti, con un trend di crescita del 37% – si apprendono a partire dai 7 anni.

Ma in cosa consiste esattamente il coding? “Non certo a fare uscire dalle nostre scuole dei programmatori – spiega Sam Guinea, collaboratore del FAES responsabile del progetto -. Noi intendiamo potenziare già nei bambini il pensiero computazionale facendo riferimento al linguaggio informatico (con coding si intendono le istruzioni operative che si danno a un pc, o a un robot), ma ciò è importante indipendentemente dalla carriera professionale che si sceglierà un giorno, perché ha a che vedere in generale con il problem solving. In estrema sintesi, un problema complesso va analizzato in maniera critica e scomposto in problemi più piccoli in modo da individuare cosa sia fondamentale e cosa no, e quali di questi sotto-problemi siano già stati in qualche modo risolti, da noi o da altri, in modo da adattare e riutilizzare la soluzione. Esponendo i ragazzi al creative coding si insegna loro il valore della sperimentazione e del “fallimento”, che è parte integrante e naturale del processo, e a non arrendersi se all’inizio la soluzione proposta non funziona. Un secondo obiettivo non meno importante è rendere i ragazzi consapevoli della crescente pervasività dell’informatica nella società, in modo che sappiano leggere e capire il mondo che li circonda”.

Tutto questo in un contesto ludico: dalla seconda classe della scuola primaria vengono svolti laboratori settimanali di un’ora utilizzando il programma Scratch, che nasce con l’intento di aiutare i bambini a imparare a programmare attraverso il gioco e la creatività; si tratta di un linguaggio grafico semplice con cui realizzare storie animate, piccoli giochi, progetti di scienze, tutorial di trigonometria, biglietti di auguri animati. I piccoli imparano a risolvere i problemi attraverso la creazione di semplici algoritmi, ovvero attraverso la combinazione di un numero determinato e finito di passi elementari. Questo aiuta a sviluppare in loro un processo di “progettazione”, sperimentando, “leggendo” soluzioni pre-esistenti e a riadattandole al proprio problema, trovando gli errori quando le cose non vanno, in genere ragionando.

Nelle classi 4 e 5 i bambini vengono sollecitati a raccontare storie all’interno di videogiochi, inventandone i personaggi e facendoli muovere, parlare, interagire. Le ore sono condivise con la docente di arte, che seleziona materiale visivo idoneo a supportare le storie e lo digitalizza.

Nelle classi della Secondaria di primo grado, invece, le lezioni di coding vedono l’affiancamento del docente di educazione tecnica: attraverso linguaggi adatti a sviluppatori alle prime armi, come Scratch prima e Python poi, gli studenti arrivano a progettare e a realizzare interamente semplici videogiochi, affrontando logiche algoritmiche più complicate rispetto a quelle viste negli anni precedenti, e si confrontano con la robotica e la sensoristica.

Questo approccio, ovviamente reso maggiormente complesso e adeguato mano a mano che si cresce con l’età, viene poi proposto anche agli studenti dei Licei Faes, per i quali è stata inserita una specifica materia denominata “Digital”. I corsi di potenziamento digitale si concentrano sull’insegnamento delle proprietà fondamentali dall’algoritmica e consistono in un mix di lezioni tradizionali e di didattica progettuale da svolgere in laboratorio: gli studenti dovranno infatti essere in grado di realizzare semplici progetti di artigianato digitale che coinvolgano elementi di informatica, di robotica e di circuiti elettrici.

Sono due i corsi di potenziamento digitale previsti. Uno riguarda i Raspberry Pi, veri personal computer dalle dimensioni leggermente più grandi di una carta di credito che sono sempre più utilizzati nella realizzazione di progetti di Internet of Things: gli studenti dovranno imparare alcuni semplici elementi di circuiti elettrici per poter includere nei loro progetti dei sensori (ad esempio di luminosità, di temperatura, di prossimità) e degli attuatori (ad esempio motori, strisce led). L’altro invece si concentra sullo sviluppo di progetti di robotica, di cui vengono esplorati alcuni degli algoritmi tradizionali: i robot sono realizzati programmando i LEGO Mindstorm attraverso l’uso di Python e resi in grado di affrontare alcune “sfide”, come uscire in maniera autonoma da un qualsiasi labirinto o realizzare semplici bigliettini su carta in base a un insieme di istruzioni forniti dall’utente.

Come disegnare una linea in Scratch (e creare una funzione linea)

Scratch funziona come un plotter (penso pochi sappiano di cosa si tratti, immaginatelo come un braccio meccanico dedito al disegno) quindi per disegnare dovete dire:

  1. scegli il colore che preferisci
  2. scegli lo spessore del tratto
  3. scegli la tipologia di tratto (default continuo)

Fatte le configurazioni iniziali per poter disegnare dovete dire penna giù e per smettere penna su
Due sono le modalità

  1. semplicissima inizialmente, difficile in un secondo tempo, indicata per i bambini che possono istruire a disegnare come possono muovere un personaggio in un videogiochi o un robot
    posizionati in un punto (di default l’origine) disegna muovendoti di tot punti (che potrebbero essere passi). Posso cambiare orientazione cambiando l’angolazione (di default gira a destra)
  2. semplice se si conosce l’utilizzo degli assi cartesiani e riprende la
    metodologia più utilizzata da tutti i programmi: posizionati nel punto (x1,y1)
    e vai al punto (x2,y2).

Non esiste in scratch una funzione disegna linea, conviene crearla

  1. In Altri Blocchi “Crea un Blocco
  2. chiamalo linea o come preferisci ed introduci 4 variabili x1,y1,x2,y2
  3. le righe di codice fondamentali da inserire sono 4
    vai a x: x1 y: y1
    penna giù
    vai a x: x2 y: y2
    penna su

ora “linea -20 -20 20 20” disegnerà un segmento da (-20.-20) a (20,20)

La scrittura, la stampa, i caratteri e i font: “programmare una parola”

Scrivere a mano è sempre stato il modo più semplice ed economico di scrivere. Incidere o depositare “colori” era il modo per scrivere.
I problemi principali da sempre 3: trasportabilità, riutilizzo e copia.
La famosa tavoletta di cera era riutilizzabile, la “carta” (di papiro, di pelle, di legno o di …) era trasportabile ma spesso cara.
Pochissimi sapevano leggere, meno sapevano scrivere, inoltre realizzare testi in più copie (copiare) spesso non serviva.
Per poter realizzare più copie, col tempo, si è passati dalla scrittura a mano, alla stampa. Inizialmente i caratteri venivano incisi, spesso in legno, delle dimensioni che servivano, con lo stile che serviva.
Per “stampe personali” arrivò la macchina da scrivere. Serviva a scrivere più veloce e in maniera leggibile, poteva fare almeno una copia, grazie alla carta carbone, si potevano “correggere errori” con il bianchetto, si potevano riscrivere porzioni (ad es. solo pagina 2).
Il salto effettuato con l’avvento del digitale non è stato solo la “smaterializzazione” del supporto dove leggere/scrivere/modificare (con lo schermo posso anche decidere di non stampare o stampare dove voglio) ma soprattutto il passaggio dal carattere fisico al carattere digitale.
I caratteri digitali sono raggruppati in font.
I font hanno gradi versatilità incredibile:
i caratteri possono essere utilizzati di qualsiasi grandezza e non solo a video ma anche in stampa e mantenendo la qualità (non sono immagini e se utilizzati grandissimi non si sgranano)
i caratteri possono essere utilizzati di qualsiasi colore e non solo a video ma anche in stampa
possiamo per ogni carattere cambiare il tipo di font e questo vuol dire di ogni carattere cambiare lo stile ma soprattutto consentire semplicemente l’utilizzo di lingue con ideogrammi o caratteri per noi speciali. Possiamo in questo modo comporre frasi multilingue tenendo presente anche che alcune lingue non si scrivono/leggono come la nostra da sinistra a destra e dall’alto in basso.
In tutta questa versatilità bisogna osservare che grassetto e italico (ed anche grassetto+italiaco) non sono delle istruzioni del tipo, usa un tratto più spesso con la font normale o inclina la font normale bensì usa grassetto e usa italico significano, di quella famiglia di font, con il carattere della stessa grandezza, usa l’equivalente font grassetto e l’equivalente font italico.
Ovvero, se volessimo creare un font, dovremmo disegnare quella normale, ma anche quella grassetto, italico e grassetto+italico.
Ora sappiamo molto su la scrittura, la stampa, i caratteri e i font ma se volessimo capire di più non utilizziamo un font, non proviamo a disegnare un font ma proviamo a “programmare una parola”.
Per programmare una parola non intendo un programma moderno del tipo: utilizza il font …, seleziona la grandezza del font, seleziona il colore del font, posizionati e scrivi.
Per programmare una parola intendo, utilizzando le primitive di disegno fornite, programma (fai disegnare dal programma) una parola.
Ovviamente per una tale attività utilizzeremo la programmazione visuale. Io prediligo Scratch ma anche Snap va benissimo.
Problemi:
1) bisogna conoscere gli assi cartesiani
2) bisogna saper disegnare (segmenti) utilizzando i punti sugli assi cartesiani
3) in scratch non esiste la primitiva linea, se si insegna la necessità e come crearla si è riusciti a spiegare il concetto di codice riutilizzabile e come passare i parametri (uno dei principi fondamentali della programmazione)
4) è subito evidente la difficoltà di disegnare curve
5) bisogna inventarsi un font utilizzando linee. La scelta più semplice è utilizzare tutto maiuscolo in una sorta di primitiva font. Per quanto il tutto risulti abbastanza scontato per non incorrere nella complessità (ad esempio la O sarà un rettandolo) emergono delle difficoltà e la necessità di piccole scelte di stile. Ad esempio: come differenziare O da 0? Oppure come fare la gambetta della Q?
6) si dovrà evidenziare che caratteri così costruiti non sono larghi tutti in egual misura
7) il punto 6) implica che non sarà semplice calcolare la larghezza di una parola e di conseguenza sarà molto complesso centrarla a priori rispetto allo spazio assegnato. Non esiste un comando del tipo seleziona tutta la parola e per centrarla muovila a destra o sinistra di un po’.
8) l’importanza di predefinire correttamente sia gli spazi orizzontali (tra due lettere) che verticali (tra due linee). Pensate in questo contesto la complessità di definire tasto “semplice” come il TAB.
9) 6), 7) e 8) fanno capire la complessità della formattazione, dell’impaginare con uno stile e fare in modo che tutto (testo, fotografie, didascalie, …) dinamicamente e senza errori si aggiornino.
Capite come solo la programmazione, come solo cercare di re-inventare tutto da zero ci può far capire come funzionano realmente le cose?
Sicuramente utilizzate tutti i giorni Word. Sicuramente non avete mai percepito la complessità di sviluppare word e la complessità di gestire al meglio il testo e la versatilità dei font.
Tenete sempre presente questo: più l’informatica diventa semplice da utilizzare (front end), più diventa difficile “dietro” (back end).

Mostre d’Arte e Coding: Secessioni Europee

Cosa c’è di più distante nella mente delle persone tra arte e programmazione?
L’arte è considerata creatività allo stato puro.
La programmazione un’attività sterile e rigorosa (chi creerà i videogiochi?).
Ho creato un semplice programma Scratch che può essere la base per un corso per bambini sia sulla parte artistica della mostra sia per una introduzione alla programmazione visuale.
Insegnare a scrivere ad un programma non è proprio una banalità perché richiede la comprensione degli assi cartesiani, la comprensione di come non sia semplice disegnare segmenti ed unirli a formare le lettere e di conseguenza quanto possa essere complesso disegnare curve.
Insegnare che bisogna rallentare il computer perché una persona riesca ad apprezzare il risultato (il computer è velocissimo).
Altri spunti possono emergere perché come si riesce a muovere una matita virtuale si può fa muovere un robot.

Peegar: scheda madre (stile Arduino) programmabile via web (stile Scratch)

Al momento di Peegar c’è solo il video, inoltre essendo dell’University of Tokyo la parte stile Scratch che si vede è in giapponese.
Si presenta come un interessante progetto di scheda madre stile Arduino programmabile via web.
Lo scopo è di avere un oggetto veramente semplice da programmare che incoraggi bambini e genitori ad approcciare la programmazione anche di schede
peegar.com

Impariamo a programmare per conoscere la tecnologia

Venerdì 17 marzo, durante Pi Greco Rovigo, la mattina vi saranno due laboratori con le scuole medie, dal titolo
Impariamo a programmare per conoscere la tecnologia Il gioco del robot-plotter
Dopo una breve introduzione per far capire che dietro ogni oggetto si nasconde e si nasconderà un computer (IoT), emergerà la necessità di comprendere come interagire non solo nella parte visibile (frontend) ma anche in quella nascosta (programmazione).
Tramite il semplice gioco del robot-plotter impareremo cosa significa programmare e realizzeremo il nostro primo programma visuale (snap o scratch) scrivendo MUVIG.
https://scratch.mit.edu/projects/127972360/

Un metodo per costruire quadrati magici dispari con Scratch

Un semplice metodo per costruire quadrati magici dispari è quello della diagonale.
Si introducono i numeri nella griglia a partire dall’uno in sequenza, in diagonale (in alto a destra), se il numero cade fuori dalla griglia lo si riporta all’inizio della sponda opposta (bisogna immaginare che la griglia sia fatta come un cilindro dove i due lati opposti sono uniti). Se il numero è un multiplo del numero della griglia il successivo si mette sotto (ad es per un quadrato 3×3 arrivati al 6, il 7 si metterà sotto).

Il coding nelle scuole elementari italiane: NTT DATA – Coding nelle scuole

Da mercoledì 26 ottobre 2016 prenderanno ufficialmente il via le attività dell’iniziativa “NTT DATA – Coding nelle scuole” per l’anno scolastico 2016/17 che, vedrà i suoi professionisti in campo nelle scuole primarie di Cosenza, Milano, Torino e Roma, tra la fine di questo mese e il mese di novembre, per le prime lezioni frontali di coding, a titolo gratuito per gli istituti scolastici aderenti, e progettate su misura per l’apprendimento da parte dei più piccoli.

Dopo l’annuale appuntamento della “Europe code week”, tenutosi dal 15 al 23 ottobre, NTT DATA Italia ha deciso di espandere il proprio impegno nell’ambito della formazione per i giovani del Belpaese, attraverso un progetto pensato per riuscire ad avvicinare sempre di più i bambini al mondo del pensiero computazionale e della programmazione.

“Fin dalla fase di preparazione e impostazione del lavoro con il corpo docenti, ci siamo accorti quanto il coding sia sempre più necessario e importante per il sistema formativo del nostro paese. Così abbiamo pensato a veri e propri corsi strutturati, grazie ai quali vorremmo che i bambini non solo usassero, ma proprio creassero, i loro primi software. E abbiamo pensato ai videogiochi come prima forma di esercizio, perché sono di sicuro la tipologia di applicazioni più vicina all’immaginario dei bambini. Il nostro obiettivo primario rimane la diffusione del pensiero computazionale come modalità di ragionamento che possa aiutare i futuri giovani in ogni tipo di lavoro o situazione di vita in futuro” commenta Paolo Zanotti, Head of Marketing & Communication di NTT DATA Italia.

Il pensiero computazionale e il coding, infatti, sono due elementi di fondamentale importanza per tutti i futuri cittadini, in quanto aiutano a sviluppare competenze logiche e capacità di problem solving in modo creativo ed efficiente. Saper utilizzare questi linguaggi, inoltre, aiuta a formalizzare un problema in semplici passi finiti, e non ambigui, componendo così un algoritmo.

Un sistema, questo, che si sta sviluppando in tutto il mondo e al quale NTT DATA Italia ha voluto dedicare una grande iniziativa per sensibilizzare ancora di più gli alunni italiani sul tema dell’insegnamento di principi base dell’ambiente IT, come lo sviluppo di un software. Nel corso dell’anno scolastico 2016/17, così, presso le scuole primarie aderenti al progetto, saranno messi a disposizione a titolo completamente gratuito hardware e formatori, per 40 ore mensili, con i primi 25 incontri programmati tra ottobre e novembre.

L’intento sarà quello di far scoprire ai bambini, in forma di gioco, cosa sta alla base della logica del problem solving, attraverso l’utilizzo del software Scratch che li renderà protagonisti attivi della tecnologia e non semplici fruitori: Scratch è il più popolare ambiente di programmazione visuale sviluppato presso il MIT della Boston University per permettere a chiunque di usare la programmazione per esprimere la propria creatività e condividere le proprie idee sotto forma di progetti. Il software rende semplice creare storie interattive, animazioni, giochi, musica e arte e condividere le proprie creazioni sul web. In questo modo i ragazzi imparano importanti idee matematiche e computazionali e allo stesso tempo sono invitati a pensare creativamente, a ragionare con sistematicità e a lavorare in collaborazione. La strategia utilizzata dal programma, inoltre, è quella del click and drag, attraverso cui è possibile comporre frammenti di codice in maniera facile e divertente.

“Essere promotori dell’innovazione è da sempre il nostro obiettivo principale” ha concluso Paolo Zanotti, “e poterlo fare condividendo le nostre competenze con i più piccoli ci rende ancora più orgogliosi del nostro lavoro. Per questo crediamo che un progetto come questo sia utile per il nostro paese a tutti i livelli, dai bambini ai genitori, dagli insegnanti ai dirigenti scolastici, per poter avvicinare sempre di più le nuove generazioni all’informatica e alle opportunità offerte dalla logica del problem solving Ci piacerebbe poter inserire la programmazione nei piani didattici delle scuole primarie e contribuire in maniera continuativa al loro svolgimento”.

Sono già numerose le scuole che hanno fatto richiesta di partecipazione al progetto “NTT DATA – Coding nelle scuole” in diverse città d’Italia, e tra i primi istituti scelti per i primi corsi figurano: l’Istituto Scolastico Comprensivo Statale di Pianezza (TO), la Scuola primaria Nino Costa, il I° Circolo Didattico di Castrovillari (CS), l’Istituto Comprensivo Lessona di Venaria (TO), l’Istituto Comprensivo Statale Gullo Cosenza IV (CS), l’Istituto Comprensivo Pacinotti: Scuola primaria De Filippo, l’ICS Monte Grappa di Bussero (MI), l’Istituto Comprensivo Tommaso Cornelio Rovito (CS), l’Istituto Comprensivo Statale Taverna di Montalto Uffugo (CS), l’Istituto Comprensivo Morosini-Manara: Scuola primaria Morosini di Milano, l’Istituto Comprensivo Cosenza III “Via Negroni”, l’istituto comprensivo statale “Bianchi-Scigliano” di Scigliano (CS), l’Istituto Comprensivo Capponi di Milano e la Scuola Primaria di Trenta (CS).