coding

Sono tra quelli che non hanno mai visto di buon occhio la frenesia da coding e pensiero computazione che prende da tempo la cosiddetta scuola digitale e sostanzialmente per due motivi:

  1. La sopravvalutazione di questi argomenti di studio nel quadro degli obiettivi di apprendimento propri di una buona scuola contemporanea.
  2. La superficialità, che rasenta la banalizzazione, con cui questi argomenti vengono, il più delle volte, affrontati a scuola da insegnanti privi di adeguata competenza.

Su questi problemi si è scritto parecchio, pro e contro, ma mi è stato appena segnalato un contributo che definire fantastico è poco, tanta è la chiarezza che viene fatta su questioni tanto controverse, “Coding, ovvero il delirio computazionale” di Massimo Maria Ghisalberti (http://pragmas.org/)  una persona, ch a giudicare da quanto scrive, conosce bene l’informatica e la programmazione e che dimostra una buona sensibilità didattica.

In buona sostanza, Massimo, dopo aver evidenziato che tali iniziative sono state inventate e sostenute dalle major dell’informatica, afferma che ciò che a scuola viene chiamato “coding” e “pensiero computazionale” nulla ha a che vedere con il coding e il pensiero computazionale, essendo di questi solo un maldestro e mediocre surrogato e che gli obiettivi (di apprendimento) per i quali tali attività vengono proposte non sono affatto raggiunti.
Massimo sostiene, inoltre, che a scuola si operi uno stravolgimento dei due approcci, perché proposti da insegnanti del tutto impreparati a insegnare tematiche tanto complesse: a scuola tutto viene banalizzato.
Su Scratch sostiene che il programma è intrinsecamente povero rispetto agli obiettivi di apprendimento che si propone e che il suo uso porta al mero gioco e non allo sviluppo del pensiero.

In sintesi le questioni trattate da Massimo:

  1. La moda del coding e il nostro accodamento a mode create da altri
  2. Il ruolo delle major del digitale nel promuovere e sostenere coding e computazionale, quindi l’evidente tornaconto economico di queste nel vedere la diffusione a scuola di queste tematiche
  3. L’utilizzo di piattaforme proprietarie, quando si sarebbero potute usare benissimo piattaforme Open
  4. La riproposizione meccanica di metodi e strumenti sviluppati da altri per il cui uso non sono necessarie particolari abilità tecniche  e didattiche, svilendo il lavoro dell’insegnante e rendendolo mero esecutore di didattiche sviluppate altrove
  5. Il “gioco” come paradigma per l’apprendimento, un paradigma che non potenzia i processi di pensiero che si vorrebbero invece potenziare
  6. La pericolosità di insegnare coding e pensiero computazionale con conoscenze approssimative (quelle che inevitabilmente si hanno se non si è tecnici) e scadendo nell’indottrinamento
  7. Scratch adatto solo per apprendimenti inziali, fa giocare e non pensare, è un ambiente limitato e limitante
Fine del post

Qui sotto ripropongo, a mo’ di sottolineature o appunti, alcuni passi del corposo articolo, quelli che, a mio avviso, rendono particolarmente chiari i termini della questione,

 

http://minimalprocedure.pragmas.org/writings/Coding/coding.html

 

Anche noi quindi oggi, forse per sdoganarci dal vecchiume che ci circonda, facciamo del coding.

Bisognerebbe anche ricordare ai nostri politici che le iniziative di cui parlano sono iniziate ben prima del 2013 e non solo in USA ma anche in Europa, noi siamo pedine come al solito.

Continuando nella visita al sito, ci raccontano che ci sono strumenti di elevata qualità didattica e scientifica:  Gli strumenti disponibili sono di elevata qualità didattica e scientifica, progettati e realizzati in modo da renderli utilizzabili in classe da parte di insegnanti di qualunque materia. Non è necessaria alcuna particolare abilità tecnica né alcuna preparazione scientifica. Il materiale didattico può essere fruito con successo da tutti i livelli di scuole. Raccomandiamo soprattutto alle scuole primarie di avvicinare i propri studenti allo sviluppo del pensiero computazionale.

Il contesto di gioco, quello è importante. Ormai se non si insegna in un contesto di gioco i bambini non imparano, non facciamoli sforzare troppo…. I bambini devono esprimersi, cosa sacrosanta, ma forse dovrebbero anche capire che nel loro progresso di crescita sia fisica che mentale la fatica è un processo fondamentale. Capire la fatica che occorre per raggiungere risultati li renderà migliori in futuro, forse.

È in atto un cambiamento epocale non c’è dubbio, in cui esperti di pensiero computazionale finalmente escono dall’ombra e armati di Scratch diffondono algoritmi come piovesse.

 

About Scratch…

Scratch è ed è stato uno strumento molto valido per l’approccio iniziale alla programmazione dei computer, ma non deve essere preso troppo sul serioLa relativa semplicità ne fa uno strumento tale che chiunque può prenderlo in mano ed illudersi di poter imparare il pensiero computazionale, ma soprattutto di poterlo anche insegnare…..

Scratch presenta, a mio avviso, alcuni problemi importanti che non lo rendono adatto se non nelle prime fasi di un avviamento alla programmazione.

I nostri bimbi tendono con Scratch a giocare più che pensare. La dotazione di strumenti di disegno integrati e la notevole libreria di elementi grafici già pronti fa sì che il bambino perda troppo tempo in attività ludiche. Sono abituati a giocare, sono immersi in videogiochi dove il tempo che si impiega è per spostare una figurina da una parte all’altra dello schermo in percorsi preordinati con una interattività praticamente passiva. Con Scratch, se lasciati a sé stessi, spostano il gatto continuamente o ciclano tra i vari sprite nella impossibilità di decidere…..Scratch quindi, fa parte di quegli ambienti preconfezionati ed omnicomprensivi che andrebbero evitati proprio per poter stimolare nel bambino le diverse modalità di utilizzo del mezzo informatico. La cosa che oserei dire buffa, è come in una organizzazione fondata da precursori del pensiero funzionale e della intelligenza artificiale si insista su un ambiente limitato e limitante in scatola chiusa.
Scratch fornisce una gratificazione immediata ed è nascosto, il codice in cui è scritto è nascosto e non facilmente ispezionabile. Scratch stimola il copia ed incolla insieme a quella che amo definire il programming by example. La programmazione per esempi, l’assemblaggio del codice scritto da altri nei vari e diffusi tutorial.
L’approccio meramente visuale e compositivo, porta a distorsioni della comprensione del problema. Questo è causato anche da un linguaggio limitato che obbliga, per risolvere anche semplici problemi, a strutture che sono di fatto più complesse del dovuto.
Scratch è un linguaggio imperativo e come tale contribuisce a formare una mente imperativa; questo è oggi in contrasto con i moderni modi di pensare al software e quindi inadatto anche nella preparazione ad un possibile futuro lavorativo.

Altri linguaggi, veri linguaggi di programmazione, sarebbero auspicabili a questo scopo. Il futuro e la tendenza attuale dei linguaggi è verso strutture meno imperative e più funzionali nel senso matematico del termine. Il pensare il software in maniera funzionale10, oltre ad essere a mio avviso più vicino11 a noi favorisce una migliore comprensione del dominio del problema da risolvere.  A questo proposito un software molto interessante è Kojo12, 13.

Scratch (o i suoi cloni) è stato e rimane un buono strumento per iniziare con bambini la cui capacità di scrivere è ancora limitata, ma dovrebbe essere abbandonato il prima possibile.

Il pensiero computazionale

Quanti dei maestri dei nostri figli o di sedicenti digital champions sono in grado di astrarre e concettualizzare i processi cognitivi o combinare il pensiero ingegneristico e matematico?

La Wing insiste sul fatto che il pensiero computazionale non è la mera programmazione dei computer ma solo un modo di affrontare le sfide ed i problemi, non parla di programmatori quanto di scienziati informatici. Ci vuole attitudine, conoscenza e capacità, come in ogni altra cosa, per poterlo insegnare o meglio soltanto proporlo. Perché forse, il pensiero computazionale non può essere insegnato pena la caduta nell’indottrinamento e conseguente perdita del motivo iniziale: sviluppare le capacità logico-analitico-critiche dell’individuo.

Ai ragazzi deve essere insegnato a pensare, cosa che si è persa progressivamente in questa ricerca del gioco a tutti i costi. Pare che i giovani ormai, non imparino se non giocando e nessuno sforzo particolare gli viene richiesto. Il gioco che dovrebbe portare alla riflessione ma che spesso salta questa ultima parte per vari motivi.

La capacità di analisi cioè quella di scomporre i problemi in parti più piccole e facilmente affrontabili, il dīvide et īmpera, la collaborazione e la tolleranza sono tutti fattori di cui i nostri figli difettano e per colpa nostra; vuoi che sia semplice disattenzione o dolo o troppa protezione.

Il pensiero computazionale è anche questo, porsi dei dubbi; trovare altre strade per affrontare gli stessi scopi, cercare di capire ed impostare collegamenti nuovi tra le informazioni. In questo senso è un processo iterativo e di conoscenza a tutti i livelli e non solo quello informatico.

I programmatori sono solo dei manovali del software….. traducono direttive spesso di altri in una lingua che un computer sa ascoltare e comprendere. La fase di programmazione è solo della bassa manovalanza e prima dovrebbe venire il pensiero.

Abituare meccanicamente i ragazzini a montare blocchetti colorati in un trionfo di immediata soddisfazione è errato, perché non svilupperanno alcunché e presto dimenticheranno ogni cosa. I ragazzini devono invece essere incalzati e costretti al ragionamento logico, fornendo loro i mattoni logici e non quelli colorati.

Devono scrivere per ricordare meglio ed andare più lenti. Scrivere porta a rileggere e rileggere porta a ricordare, scrivere e riscrivere in modo diverso per far capire come le cose possono essere affrontate in modi alternativi. L’idea di possibilità ed approcci diversi crea discussione e confronto. Insomma, non basta il cugino che programma in PHP che smanetta su Scratch per farne un mentor del pensiero computazionale.

I tutorial

Noi però andiamo avanti a tutorial ed anche la scuola lentamente sta diventando un tutorial e presto mi aspetto di vederla su youtube dove youtubers affermati spiegheranno ai miei pronipoti la lezione del giorno in un italiano elementare, quello che tutti possono capire, perché invece di elevare la cultura della società pare che sia più conveniente abbassare la qualità della lingua.

Programming by examples
Oggi va di moda il learning by example. La summa del famo poca fatica. Mi verrebbe di dire… By Example, ‘na sega.
Il by example che oggi, come una montagna di altra fuffa va di moda, lo si è sempre fatto ed ha portato i problemi che ha portato. Il concetto ricalca la natura umana del: faccio molto con poco; dove il poco in genere si riferisce alla fatica mentre il molto ai soldi.
Per i non addetti ai lavori e gli scribacchini il Learning by Example è come Tumblr. Ecco, Tumblr è un enorme Learning by Example di sentimenti, cose scritte, immagini, porno e cazzate varie. Se sei una mezza sega del nulla, Tumblr fa al caso tuo. Ti forma il carattere.
L’esperienza e la competenza, in tutti i campi, non si affitta. Imparare è fatica, è tempo impiegato, è sudore e lavoro. Produrre qualità è un effetto collaterale della conoscenza intima di quello di cui si parla. Il resto è solo speculazione.
Gigi che va di moda oggi?  La programmazione funzionale. Che mi consigli di imparare?  Scala

Scala è un ottimo linguaggio di programmazione, al contrario del PHP (paradigma dell’hammer programming, ovvero la programmazione a martellate) e del javascript. Varrebbe la pena impararlo bene col Learning Not by Example. Ho citato Scala, perché essendo un sostenitore dei linguaggi funzionali in ausilio allo sviluppo del pensiero computazionale e promotore di Kojo, non mi venga rimproverato nulla (mi sono parato le terga quindi). Normalmente non uso termini idioti come googlare o crashare visto che non ho usato il Learning by Example.

Tanti link in chiusura dell’articolo per alternative a Scratch, sulla programmazione in altri linguaggi adatti ai bambini, come Kojo e Scala

6 people like this post.

Print Friendly, PDF & Email

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.