martedì 11 marzo 2014

Insegnare ai bambini a programmare? Un buon inizio può essere Code.org e simili.





Da sempre sono convinto che la programmazione dovrebbe essere insegnata nelle scuole, a partire già dai 10-11 anni. 

La programmazione è il linguaggio delle cose, di tutta la tecnologia che ci circonda. E allora, perché limitarsi ad usare la tecnologia in modo più o meno consapevole quando anche noi possiamo crearla? Perché non fare in modo che le nostre idee diventino realtà e magari contribuiscano a migliorare il mondo in cui viviamo? E quando parliamo di futuro non possiamo prescindere dalla scuola.


Uhm, bello si, ma è anche realizzabile?
Voglio dire, come si fa a far comprendere a ragazzini di 10-11 anni le basi della programmazione? Non è facile. Ci vogliono prima di tutto altre basi: la logica, la matematica, l'inglese, leggere manuali, seguire forum, smontare e rimontare esempi di codice, seguire un programmatore esperto, andare all'università ecc.

Fino ad un po' di tempo fa la pensavo anche io così ed in effetti quello è stato il mio percorso iniziale (all'incirca), quello e tanta passione, tanta pazienza e parecchie notti insonne.
Ma mi sto ricredendo: forse è possibile far conoscere e magari padroneggiare la programmazione anche ai ragazzini di 10-11 anni.

Si tratta di guardare le cose da un'angolatura diversa, non quella del "vecchio" programmatore abituato alla riga di comando e/o ad un editor "spoglio" di qualsiasi funzione. Parliamo di ragazzini, e i ragazzini, prima di tutto bisogna farli divertire, fargli imparare e fare le cose giocando o almeno facendogli sembrare il percorso formativo un bel gioco ad ostacoli dove vince chi riesce a superarli con le proprie capacità e forze. 

Parole, parole, nient'altro che belle parole. Ni, e ho scritto ni anzichè no solo perché, non avendo la palla di cristallo e la bacchetta magica, non posso prevedere il futuro o modificarlo a mio piacimento.
Il metodo didattico per l'apprendimento della programmazione va completamente rivoluzionato soprattutto se rivolto a studenti di 10-11 anni.
Un esempio per capirci: Cos'è un algoritmo? Guardate il video.



Niente da eccepire. Un approccio didattico sicuramente valido. L'utilizzo di peseudo-codice aiuta a concentrarsi sul problema e non sulla forma del linguaggio. È logico ed invita a "costruire" un percorso in cui vengono man mano inserite le fasi dell'algoritmo. Si potevano usare anche i diagrammi a blocco, anche essi didatticamente validi.
Però, dare in pasto ai ragazzini cose come pseudo-codice, diagrammi a blocchi ecc non è proprio il massimo perché bisogna prima fargli conoscere questi nuovi "strumenti" di ragionamento. E poi, manca soprattutto il gioco, il divertimento. Non ci dimentichiamo che ci stiamo rivolgendo a ragazzini di 10-11 anni.



E allora come fare?
Qui introduciamo la rivoluzione didattica per la programmazione di cui parlavo prima.

Dovrei cominciare a parlarvi di Light-bot, di Blockley, di Scratch, di StarLogo, di Etoys, di CrunchZilla, di Hackety Hack, di Kids Ruby ed altri programmi che insegnano le basi della programmazione sotto forma di gioco interattivo. Ma non lo farò, o meglio non lo farò io.

Questo post ce l'ho in cantiere da diverso tempo. Avrei sempre voluto scrivere qualcosa su come insegnare la programmazione ai bambini, ma ogni volta che provavo a scrivere due righe mi bloccavo.
Devo ammetterlo, non sono in grado di farlo, perché un conto è saper programmare e un conto è invece insegnare a programmare.
Poi, circa un mese fa (passando per il Carnevale della Matematica #69) leggo un articolo di Michele Maffucci:

"Insegnare ai bambini a programmare"


Si, insomma, Michele ha scritto l'articolo che io non sono mai stato in grado di scrivere. Leggetelo che ne vale davvero la pena.



Chiudo segnalando quello che attualmente considero il miglior progetto creato per far avvicinare chiunque al mondo della programmazione: Code.org.
La filosofia didattica è quella del divertimento/costruzione/apprendimento, quella che ho cercato di sostenere in questo articolo, quella che suggerisce anche Michele, quella "adatta" (e forse addirittura necessaria) per i ragazzini che iniziano a 10/11 anni.



4 commenti:

  1. Chi ha avuto per le mani un Commodore 64 spesso si è fatto le ossa come me con le oramai mitologiche "Lezioni di VideoBasic" del gruppo editoriale Jackson. Io ho imparato ad imparare a programmare con quelle, che ovviamente andrebbero aggiornate all'epoca moderna.

    RispondiElimina
    Risposte
    1. Sì, l'importante è che bisogna partire. Tutto il resto viene di conseguenza. Per dire tu l'hai già raccontato? O manca il tempo? Perché credo sarebbe una storia estremamente interessante, mica sei rimasto al Basic con i numeri di linea e GOTO come se piovesse. O no?

      Elimina
    2. Avrai letto la mia lenzuolata su G+... ho dimenticato di aggiungere il mio pallino per la Literate Programming che con Eiffel si sposa abbastanza bene

      Elimina
  2. Molto probabilmente i "vecchi" sistemi di didattica della programmazione sono ancora validi, ma oggi le cose sono un po' cambiate; non si tratta più di poche persone che vogliono imparare a programmare per i più svariati motivi, oggi è diventata un'URGENZA quasi sociale visto che siamo completamente sommersi ed immersi nella tecnologia. Non si tratta di creare dei programmatori che poi faranno quello per mestiere, ma di educare le persone a ragionare da programmatori per non trovarsi sopraffatti dalla tecnologia che gli altri creano per noi. Bisogna passare da "utenti semplici" a "utenti consapevoli" e magari aspirare anche a diventare "utenti partecipi".
    E per fare questo bisogna partire il più presto possibile: 10-11 anni mi sembra l'età giusta, un'età però in cui è difficile far entrare un "mondo complesso" come quello della programmazione se non attraverso il gioco e il divertimento. Ecco quindi che devono cambiare gli approcci d'insegnamento. Bisogna cercare di dare le basi minime della logica della programmazione e poi, crescendo, ognuno potrà decidere se continuare ed approfondire.

    RispondiElimina