In questo articolo:
- Studenti, docenti, famiglie: riguarda tutti
- Il coding comincia bene quando comincia presto
- Programmare per la prima volta su un computer
- Ok, ma quando si programma veramente?
- Chi mi può aiutare concretamente nel coding, oltre a un buon libro?
- Posso migliorare ispirandomi a esempi di programmazione già pronti?
- Quali sono gli ambiti migliori per praticare il coding?
- Dal coding a STEAM
Studenti, docenti, famiglie: riguarda tutti
Il coding oggi bussa alle porte delle scuole dell’infanzia dopo essere entrato nelle classi primarie. Il Ministero dell’istruzione parla di pensiero computazionale e, per quanto all’italiana, si adopera per diffondere la cultura digitale nella scuola. La strada sembra essere obbligata.
L’approccio alla mentalità del programmatore influenza il nostro presente e futuro lavorativo, nonché quello dei nostri figli. Come recita il detto, se non te ne occupi, si occuperà lui di te. I prossimi paragrafi raccontano che cosa sta succedendo e suggeriscono come agire al meglio per ottenere il meglio dal coding. A qualunque livello di partenza.
Il coding comincia bene quando comincia presto
Dire pensiero computazionale è più vasto e profondo che dire programmazione e proprio per questo è naturale, persino necessario, che i bambini più piccoli si avvicinino alla materia senza bisogno di computer.
Un testo come Il mio primo libro di coding lo dimostra e semplifica il lavoro a genitori e insegnanti, con una raccolta di giochi e attività che stimolano il pensiero ordinato e strutturato, indispensabile per arrivare alla programmazione, ma in modo del tutto ludico e leggero.
Troppo per bambini di sei anni? Obiettivo esagerato rispetto alle loro possibilità? Sentiamo l’autrice, Kiki Prottsman:
Quando si parla di coding, i piccoli mi sorprendono di continuo. Ho capito che sono molto più capaci di quanto ritenga la gran parte degli adulti. Sembra inoltre che ricordino meglio le lezioni apprese. Il coding diventa una parte di loro e usano il gergo tecnico nel parlare quotidiano, il che colpisce tutti!
Kiki Prottsman ha fatto seguire a Il mio primo libro di coding un altro testo, come diventare un programmatore, che continua a proporre esperienze di coding computer-free; ma, per chi abbia voglia e possibilità di passare da unplugged a online, le traduce in linguaggio Scratch 3.0.
Programmare per la prima volta su un computer
Sarebbe traumatico passare dal gioco sulla carta alla programmazione vera e propria sullo schermo e fortunatamente esiste un ottimo compromesso: Scratch, sistema di programmazione per bambini messo a punto presso il Massachusetts Institute of Technology.
Con Scratch si gioca ancora, questa volta animando personaggi e oggetti da disegnare in libertà sullo schermo, o fatti da altri (magari da compagni di classe). Serve davvero programmare giocando, se l’obiettivo è ambizioso? Non sarà magari programmazione-giocattolo, che intrattiene ma insegna poco o nulla? Marco Beri e Maurizio Boscaini hanno risposto efficacemente a queste tipiche obiezioni, e pure scritto un libro per aiutare a imparare Scratch.
A chi fosse titubante sulla validità di Scratch, va detto – come scrive Maurizio Boscaini – che il linguaggio è nato più di dieci anni fa e da allora c’è chi lo usa regolarmente a scuola, accumulando esperienza e giudizi ben fondati. Il suo Imparare a programmare con Scratch è aggiornato alla versione 3.0 e mostra bene quanto possa essere utile e divertente per i ragazzi (e non solo) avvicinarsi alla programmazione attraverso Scratch.
Ok, ma quando si programma veramente?
Può darsi che, dopo averci provato sulla carta e dopo avere provato ad avvicinarsi al pensiero computazionale con Scratch, sia nata una passione o comunque il desiderio di approfondire più seriamente la materia.
Dai dodici-tredici anni in su, c’è l’imbarazzo della scelta. Praticamente tutti i linguaggi di programmazione più diffusi si prestano al coding per un verso o per l’altro ed è facile perdersi nella confusione dell’offerta. Come scegliere? Ecco alcune strade collaudate e amichevoli a sufficienza da meritare considerazione.
- Python brilla per concisione e chiarezza e ha una comunità di utilizzatori sterminata. È il primo passo per applicare quello che con Scratch non è proprio possibile. E una buona guida iniziale è sufficiente per aprire strade promettenti.
- PHP è molto usato nella programmazione web e per questo è molto gettonato da chi comincia; curare una propria pagina web dinamica è un inizio stimolante ed è facile sia fare progressi che metterli in pratica e lo dimostra sempre Maurizio Boscaini nel suo Imparare a programmare con PHP. Del resto, come ci insegna Tom Butler:
Uno dei vantaggi di PHP è la facilità di approccio e la possibilità di arrivare rapidamente a qualcosa che funziona.
- HTML5 è una scelta facile da sottovalutare. Eppure è molto più che un semplice linguaggio di marcatura del testo per mostrare grassetti e corsivi sul web. Gabriele Gigliotti, coadiuvato dalle vignette geniali di Stefano Tartarotti, mostra in Imparare a programmare con HTML e CSS come le capacità espressive di HTML5, anche in termini assai vicini alla programmazione tradizionale, siamo infinite a partire da un nucleo di comandi facilmente comprensibile e alla portata di chiunque.
Chi mi può aiutare concretamente con il coding, oltre a un buon libro?
Senza Internet non esisterebbe la programmazione come la conosciamo oggi, altro che il coding. Cercare risposte in Rete è importante e produttivo. Contemporaneamente, in ogni città di una certa dimensione oramai si tengono eventi di coding, dove incontrare nuovi amici e chiedere di persona a chi ne sa. Poi esistono esperienze che possono accelerare molto un apprendimento, come quelle dei campi estivi e dei siti che insegnano a programmare giocando.
Un esempio di campo estivo è CampusLaCamilla, dove ogni anno si organizzano ritrovi divisi per età: il pomeriggio si vive all’aria aperta e al mattino si provano esperienze come imparare Java attraverso Minecraft (Java è un altro linguaggio di programmazione molto noto, mentre Minecraft è un gioco dove si può costruire qualunque cosa, dalle città del Trono di Spade a calcolatori virtuali, impilando blocchi di costruzione. Insieme formano un ottimo punto di partenza per programmare divertendosi).
Siti come CodeCombat possono invece fornire gli stimoli giusti per progredire nella programmazione là dove non abbiamo a disposizione persone vere o eventi nella nostra scuola di riferimento. In CodeCombat sviluppiamo le capacità di programmare in JavaScript per pilotare un piccolo esercito di creature fantasy, che si confronta con intelligenze artificiali e altri giocatori. Le persone normali imparano; i più bravi disputano tornei con premi importanti in denaro, sotto l’occhio attento delle aziende che reclutano i programmatori più bravi. Lo slogan di uno dei tornei?
Scrivi codice, schiaccia i nemici, fatti assumere.
Posso migliorare ispirandomi a esempi di programmazione già pronti?
Certamente, anzi! Studiare, smontare, modificare un programma già fatto è un metodo di apprendimento validissimo. Tanto Internet che i libri in tema coding brulicano di esempi a tutti i livelli, per qualunque ammontare di tempo disponibile.
Per esempio, è possibile scoprire rapidamente e con profitto il mondo della cifratura dei dati, mentre si impara a trattare JavaScript: lo insegnano Maurizio Boscaini e Massimiliano Masetti in Imparare a programmare con JavaScript.
Dentro Imparare a programmare con PHP si trova anche una sezione che insegna ad applicare filtri alle immagini per trasformarle a piacere, quasi come per magia, mediante semplici istruzioni in PHP.
Quali sono gli ambiti migliori per praticare il coding?
Risposta un po’ banale ma sincera: dovunque funzioni. Se un ambiente ispira fiducia ed è abitato da persone valide, è un buon ambiente.
A scuola può capitare di tutto, iniziative molto valide come resistenze di vecchio stampo da parte dei professori. Si tratta di un ambiente vitale per il futuro dei ragazzi ed è giusto stare sempre molto attenti a come viene applicato il coding: Andrea C. Granata ci ammonisce che imparare a programmare non è tutto, anzi. Inoltre, a scuola si trovano eccellenze e punte di diamante, ma nel complesso i progressi sono più lenti di quanto sarebbe il caso di attendersi.
La soluzione è tenere gli occhi bene aperti ed esercitare il più possibile il pensiero critico su quello che vediamo e sentiamo. Tenendoci aggiornati: per esempio, sappiamo quello che cercano i piccoli a livello di interattività. Se il coding che seguiamo ne tiene conto, è un buon coding.
Dal coding a STEAM
Ricordiamoci, infine, che lo spazio del pensiero computazionale è molto più ampio di quello della programmazione. Non a caso si usa l’acronimo STEAM (Science, Technology, Engineering, Arts, Mathematics) per connotare le discipline che è producente fare incontrare ai bambini il prima possibile.
Del resto il coding incontra facilmente la manipolazione di oggetti fisici, sempre in modo divertente e giocoso. Magari capovolgendo lo stereotipo e mettendo al primo posto l’hardware, prima di arrivare alla programmazione e spalancando un mondo di scienze non strettamente informatiche.
Può anche darsi, infatti, che ai più piccoli la programmazione interessi poco o per nulla. Se invece mostrassero da subito una passione per l’ingegneria oppure una aspirazione a diventare scienziato? Libri ludici e interattivi, pieni di esperienze e progetti semplici e coinvolgenti, possono svelare talenti in attesa di sbocciare. Le esperienze sono semplici come costruire muri con zollette di zucchero o provare le reazioni chimiche che puliscono una vecchia moneta.
Viva il coding e viva STEAM dunque, ma sempre con l’attenzione rivolta prima verso la crescita dei ragazzi piuttosto che ai risultati. Non siamo fatti per la specializzazione ossessiva e lo ha riassunto bene l’autore di fantascienza Robert Heinlein, in modo certamente provocatorio ma efficace:
Un essere umano deve essere in grado di cambiare un pannolino, pianificare un’invasione, macellare un maiale, guidare una nave, progettare un edificio, scrivere un sonetto, tenere la contabilità, costruire un muro, aggiustare un osso rotto, confortare i moribondi, prendere ordini, dare ordini, collaborare, agire da solo, risolvere equazioni, analizzare un problema nuovo, raccogliere il letame, programmare un computer, cucinare un pasto saporito, battersi con efficienza, morire valorosamente. La specializzazione va bene per gli insetti.