#codingmonamour

1. DEFINIZIONI

Pensiero computazionale e pensiero logico (algoritmico, matematico) non sono sinonimi

Il pensiero computazionale, nella definizione più condivisa, è di tipo euristico (un processo pragmatico che valuta la migliore soluzione in base alle circostanze), cioè si può applicare anche in situazioni indeterminate o parzialmente sconosciute ed ha a che fare con risorse finite e prima di tutto il tempo. Sicuramente utilizza operazioni logiche o matematiche, ma non coincide con queste.

Hiroshima Mon Amour

2. PRIORITA'

Insegnare il pensiero computazionale ai bambini non ha una priorità più alta di altri obiettivi trasversali

Essere interessati all’insegnamento del pensiero computazionale non significa dimenticare le altre competenze o metterlo in cima ad una ipotetica lista, ma significa aggiungere una competenza, un modo ad altri modi. Il pensiero computazione va inteso come un ausilio per risolvere certi tipi di problemi o per raggiungere dei risultati, ma non deve oscurare altri tipi di pensiero.

3. OBIETTIVI

Se a scuola si introduce il ‘coding’, va fatto per migliorare la didattica, non per aggiungere una materia alle altre o per preparare generazioni future di programmatori

L'introduzione del coding nella Scuola – e non in un Coderdojo – dovrebbe, in generale, essere parte del progetto educativo, e cioè mirare a sviluppare persone consapevoli della complessità, delle possibilità, delle finalità e degli aspetti etici legati alla pratica dello sviluppo del software - non solo alla sua teoria. Deve perciò avere ricadute immediate sul come e il cosa dell’apprendimento, non solo nell’ambito informatico.

4. AMBIENTI

Bisogna garantire degli ambienti di apprendimento aperti, indipendenti e sicuri

Gli ambienti software devono essere a codice aperto ed indipendenti da un produttore o uno sponsor unici; devono essere adattabili e modificabili, eseguibili con strumenti anch'essi a codice aperto. La possibilità di ispezionare il codice sorgente non è solo garanzia di sicurezza, ma ha anche una valenza formativa.

Hiroshima Mon Amour

5. SCELTA

La scelta di un ambiente e di un linguaggio di programmazione deve essere fatta in funzione dei destinatari e del contesto, non della moda

Ci sono decine o centinaia di ambienti e linguaggi; la scelta dovrebbe tenere conto da un lato delle competenze dell’utente, dall’altro delle caratteristiche del linguaggio. Si dovrebbero preferire ambienti estensibili (che crescono con il crescere delle competenze degli utenti) e omogenei (cioè scritti nello stesso linguaggio di programmazione che usano). Si dovrebbero preferire linguaggi di programmazione più generali, che cioè pur permettendo di usare inizialmente costrutti preconfezionate mantengano il proprio valore nel tempo, rispetto a linguaggi ristretti ad un uso limitato (Domani Specific Languages).

Hiroshima Mon Amour

6. MOTIVAZIONI

La gradevolezza dell'ambiente e delle attività non è una garanzia sufficiente dell'efficacia

La somiglianza dell’ambiente di apprendimento del coding con i videogiochi e gli ambienti ludici in generale (tramite un’interfaccia piena di colori, pupazzi ed animazioni) rischia di spostare l’attenzione sugli aspetti motivazionali iniziali. Il piacere della costruzione, della scoperta, dell’invenzione (che dovrebbero essere eventi tipici del coding) che sono motori potentissimi dell’apprendimento, non hanno a che fare con i dettagli dell’interfaccia ma quanto con il processo. D’altra parte, interfacce molto caratterizzate fissano l’età dell’utente-target in modo molto preciso.

Hiroshima Mon Amour

7. VISUALE

Non c'è una chiara evidenza della superiorità, in termini di efficacia a medio termine, degli ambienti di programmazione visuali su quelli testuali

Se sembra chiaro che mettere tra parentesi le difficoltà di scrittura del codice – almeno nel caso di elaborazioni di piccole dimensioni - permette di ottenere dei risultati funzionanti e soddisfacenti più in fretta o ad un’età inferiore, non sembrano esistono evidenze scientifiche della superiorità di un ambiente visuale dal punto di vista della comprensione delle strutture profonde. Ci sono inoltre delle difficoltà tecniche che questo tipo di rappresentazione porta con sé (per esempio, l’espressione delle strutture ricorsive) che ne raccomanderebbero l’uso solo in fasi molto introduttive. La connessione strettissima della scrittura del codice sorgente con la scrittura di testi nelle lingue naturali deve ancora essere studiata a fondo.

8. COMPETENZE

Per insegnare il ‘coding’ non è sufficiente averne una vaga infarinatura

Il coding, anche nella versione minimale e introduttiva che viene proposta a scuola, è basato su concetti complessi e fa parte, sperabilmente, di un percorso più lungo. Come per la lingua, è molto rischioso affidarne l’insegnamento a persone che non la padroneggiano a sufficienza, perché potrebbero involontariamente indurre i ragazzi in errori difficilmente recuperabili, o non vedere tutte le possibilità di variazione creative e limitarsi a ripetere modelli pronti. Questo è vero sia per le attività che sono poco distanti da uno storytelling dinamico, sia per quelle che propongono la costruzione di ambienti interattivi basati su regole (automi in grado di raggiungere un obiettivo, che acquisiscono dati da sensori, che sono in grado di produrre artefatti).

Hiroshima Mon Amour

9. PROBLEMI

Risolvere in sequenza problemi sempre più difficili non è l'unica maniera di imparare a programmare e non necessariamente la migliore

La difficoltà di un problema non è l’unico interesse che ne giustifica la proposta: anche problemi noti possono essere affrontati per cercarne soluzioni diverse o con una forma più elegante e generale. La stessa sequenza di problemi svincolati (che richiama il videogioco) non è, didatticamente, l’unica maniera efficace di presentare un contenuto, anche perché la competizione con il computer o con gli altri ragazzi può essere più o meno motivante in funzione dell’età, del genere e dello stile cognitivo.

10. VALUTAZIONE

La valutazione delle competenze acquisite non può essere fatta solo sulla base del tempo impiegato e delle dimensioni del codice prodotto

Proprio perché il coding è parte di un processo di apprendimento di una pratica, la valutazione delle competenze non dovrebbe essere legata al tempo o alle dimensioni (cioè alla performance quantitativa), ma semmai alla qualità e alla significatività ai fini dell’apprendimento. Nel mondo reale della programmazione, un buon codice mostra un equilibrio tra facilità di lettura (per sé stessi o altri), ottimizzazione e manutenibilità. Nel mondo ristretto del coding vanno aggiunte la possibilità di astrazione e generalizzazione delle soluzioni create, la dimostrazione di un approccio originale e critico anche nei confronti del problema affrontato.

Hiroshima Mon Amour

11. RISPETTO

Ogni innovazione didattica deve essere di comprovata efficacia e deve essere gestita con adeguata competenza e consapevolezza da parte del docente.

Ogni innovazione deve avvenire nel rispetto del diritto dello studente a fruire di opportunità di apprendimento di comprovata efficacia. Ogni innovazione deve avvenire nel rispetto del diritto dell'insegnante a ricevere specifica ed efficace formazione (nonché adeguata retribuzione), nella consapevolezza del significato, dei limiti e dei contesti d'uso di tale innovazione. Efficacia che significa prima di tutto potenziamento della capacità di giudizio tanto dello studente che del docente.

12. RELATIVITA'

Nessuna strategia didattica ha valore assoluto

Non ci sono strategie didattiche definitive e assolute e soprattutto se sono decontestualizzate, dogmatiche e svincolate da controlli aperti.

Hiroshima Mon Amour