Il pensiero computazionale
Che cosa è? Perché usarlo a scuola.
Corso Animatore digitale a.s. 2015-2016 – Regione Calabria
Prof. Francesco Mannarino
Un po’ di storia
Il concetto di “pensiero computazionale” è stato introdotto per la prima
volta da Seymour Papert nel 1996 parlando di LOGO, il linguaggio di
programmazione da lui sviluppato al MIT per insegnare la programmazione
ai bambini.
Esso è stato portato all’attenzione della comunità scientifica nel 2006 da
Jeannette Wing, direttrice del Dipartimento di Informatica della Carnegie
Mellon University, in un articolo in cui mostra che l’informatica ha portato
non solo strumenti, ma innovazioni nel modo di pensare.
Che cosa è?
Con pensiero computazionale si definiscono le procedure che vengono poi
attuate da un esecutore, che opera nell'ambito di un contesto prefissato,
per raggiungere degli obiettivi assegnati.
Esso è un processo mentale per la risoluzione di problemi costituito dalla
combinazione di metodi caratteristici e di strumenti intellettuali,
entrambi di valore generale.
I metodi caratteristici
•analizzare e organizzare i dati del problema in base a criteri logici;
•rappresentare i dati del problema tramite opportune astrazioni;
•formulare il problema in un formato che ci permette di usare un “sistema
di calcolo” (nel senso più ampio del termine, ovvero una macchina, un
essere umano, o una rete di umani e macchine) per risolverlo;
•automatizzare la risoluzione del problema definendo una soluzione
algoritmica, consistente in una sequenza accuratamente descritta di passi,
ognuno dei quali appartenente ad un catalogo ben definito di operazioni di
base;
•identificare, analizzare, implementare e verificare le possibili soluzioni
con un’efficace ed efficiente combinazione di passi e risorse (avendo
come obiettivo la ricerca della soluzione migliore secondo tali criteri);
•generalizzare il processo di risoluzione del problema per poterlo
trasferire ad un ampio spettro di altri problemi.
Gli strumenti intellettuali
•confidenza nel trattare la complessità (dal momento che i sistemi
software raggiungono normalmente un grado di complessità superiore a
quello che viene abitualmente trattato in altri campi dell’ingegneria);
•ostinazione nel lavorare con problemi difficili;
•tolleranza all’ambiguità (da riconciliare con il necessario rigore che
assicuri la correttezza della soluzione);
•abilità nel trattare con problemi definiti in modo incompleto;
•abilità nel trattare con aspetti sia umani che tecnologici, in quanto la
dimensione umana (definizione dei requisiti, interfacce utente,
formazione, ...) è essenziale per il successo di qualunque sistema
informatico;
•capacità di comunicare e lavorare con gli altri per il raggiungimento di
una meta comune o di una soluzione condivisa.
Perché è importante il pensiero
computazionale?
Perché si tratta di una skill fondamentale che tutti dovrebbero possedere,
in particolare quei giovani che desiderano non farsi sfuggire le opportunità
che il futuro porrà loro dinanzi nei prossimi anni. È ormai universalmente
riconosciuto che per riuscire bene nel proprio futuro professionale i
giovani dovranno “imparare a imparare” e non limitarsi a fornire risposte
preconfezionate.
Il pensiero computazionale deve essere appreso ed esercitato fin dai primi
anni di scuola. Ciò che i nostri studenti universitari imparano oggi, tra
cinque anni sarà probabilmente obsoleto: questo vale in maniera
particolare per le discipline tecniche, ma anche per le altre discipline.
… e il computer?
Il computer è lo strumento, noi siamo coloro che lo rendono creativo con
la nostra immaginazione, ma i processi mentali tipici del pensiero
computazionale sono favoriti dall’approccio alla risoluzione dei problemi
che viene messo in atto da coloro che sviluppano programmi per il
computer: in altre parole il pensiero computazionale è quello che adotta
un informatico quando affronta un problema.
A scuola col computer
E il computer, secondo Papert, è un ottimo strumento didattico poiché,
grazie alla programmazione, può creare questi artefatti.
Il testimone di Papert è stato raccolto da Mitchel Resnick responsabile del
Lifelong Kindergarten del MIT MediaLab che con i suoi collaboratori ha
realizzato un framework per l’insegnamento del pensiero computazionale
e la valutazione dell’apprendimento che si fonda sulla convinzione che i
bambini possano acquisire il pensiero computazionale programmando
storie interattive e videogiochi (gli artefatti di cui parlava Papert).
Il lavoro di questi anni di Resnick e dei suoi collaboratori ha portato alla
nascita di Scratch, un ambiente di programmazione visuale che consente
ai ragazzi di creare in maniera semplice e intuitiva le proprie storie
animate, giochi e simulazioni: oggi Scratch conta una community di
giovani sviluppatori estesa in tutto il mondo ed è di fatto lo strumento di
riferimento per insegnare ai bambini il pensiero computazionale attraverso
la programmazione.
Il pensiero computazionale secondo il framework
sviluppato dal Lifelong Kindergarten del MIT MediaLab
Concetti di pensiero computazionale:
• Sequenza: un’attività può essere espressa attraverso una serie consecutiva di
singoli step o istruzioni.
• Ciclo: è un meccanismo per eseguire più volte la medesima sequenza in
maniera iterativa.
• Evento: il verificarsi di un’azione causa lo scatenarsi di un’altra azione.
• Parallelismo: significa eseguire sequenze di istruzioni differenti allo stesso
tempo.
• Condizione: è la possibilità di prendere decisioni sulla base del verificarsi di
determinate situazioni.
• Operatore: fornisce supporto per la manipolazione di numeri e stringhe di
caratteri.
• Dati: sono valori che possono essere salvati, recuperati e modificati durante
l’esecuzione di un programma.
Il pensiero computazionale secondo il framework
sviluppato dal Lifelong Kindergarten del MIT MediaLab
Pratiche di pensiero computazionale:
• Essere incrementali e iterativi: la progettazione è un processo adattativo dove la
pianificazione può cambiare man mano che ci si avvicina alla soluzione del problema.
• Testare e debuggare: individuare problemi ed errori e correggerli.
• Riusare (pattern recognition): riconoscere come alcune parti di soluzione possono
essere riusate nella stessa o riapplicate a problemi simili.
• Remixare (copiare per migliorare): grazie alla rete e all’ampia disponibilità di lavori
di altri autori, è possibile prendere spunto da idee e codice per costruire cose più
complesse di quelle che si sarebbero potute realizzare per conto proprio, dando
un’ulteriore spinta alla propria creatività.
• Astrarre: è il processo di riduzione della complessità, per far emergere l’idea
principale mantenendo solo alcuni aspetti e tralasciandone altri.
• Modularizzare (scomporre): è il processo che consente di scomporre un problema
complesso in problemi più semplici, per cui risolvendo i problemi più semplici si
risolve anche il problema complesso.
Il pensiero computazionale secondo il framework
sviluppato dal Lifelong Kindergarten del MIT MediaLab
Attitudini di pensiero computazionale:
• Esprimere se stessi: una persona dotata di pensiero
computazionale vede nella tecnologia uno strumento per esprimere
se stessi, la propria creatività e dire qualcosa di sé agli altri.
• Essere connessi: saper comunicare e lavorare con gli altri per
raggiungere un obiettivo o una soluzione condivisa.
• Porre domande: saper sviluppare una mente vigile grazie alla
quale è sempre viva la domanda di come un oggetto incontrato nel
mondo reale possa funzionare.
Esempi didattici concreti
Il MIUR, in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, ha
avviato questa iniziativa (che fa parte del programma #labuonascuola) con l’obiettivo di fornire
alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli
studenti ai concetti di base dell'informatica. Leggi la circolare MIUR del 2015 (quella del 2014 la
ritrovi qui ).
Partendo da un’esperienza di successo avviata negli USA che ha visto nel 2013 la partecipazione
di circa 40 milioni di studenti e insegnanti di tutto il mondo, l’Italia sarà uno dei primi Paesi al
mondo a sperimentare l’introduzione strutturale nelle scuole dei concetti di base
dell’informatica attraverso la programmazione (coding ), usando strumenti di facile utilizzo e che
non richiedono un’abilità avanzata nell’uso del computer.
http://www.programmailfuturo.it/
Scratch è un linguaggio di programmazione e il suo ambiente di sviluppo e d'autore. Il linguaggio,
ispirato alla teoria costruzionista dell'apprendimento e progettato per l'insegnamento della
programmazione tramite primitive visive, è adatto a studenti, insegnanti e genitori, ed utilizzabile per
progetti pedagogici e di intrattenimento che spaziano dalla matematica alla scienza, consentendo la
realizzazione di simulazioni, visualizzazione di esperimenti, animazioni, musica, arte interattiva, e
semplici giochi.
https://scratch.mit.edu/
La robotica in classe
Scuola di robotica
http://www.scuoladirobotica.it
Robocup Jr Italia
http://www.robocupjr.it/4/
Il programma LOGIC
http://www.aicanet.it/-/programma-logic
… e altro ancora

Il pensiero computazionale - Che cosa è - Perché usarlo a scuola.

  • 1.
    Il pensiero computazionale Checosa è? Perché usarlo a scuola. Corso Animatore digitale a.s. 2015-2016 – Regione Calabria Prof. Francesco Mannarino
  • 2.
    Un po’ distoria Il concetto di “pensiero computazionale” è stato introdotto per la prima volta da Seymour Papert nel 1996 parlando di LOGO, il linguaggio di programmazione da lui sviluppato al MIT per insegnare la programmazione ai bambini. Esso è stato portato all’attenzione della comunità scientifica nel 2006 da Jeannette Wing, direttrice del Dipartimento di Informatica della Carnegie Mellon University, in un articolo in cui mostra che l’informatica ha portato non solo strumenti, ma innovazioni nel modo di pensare.
  • 3.
    Che cosa è? Conpensiero computazionale si definiscono le procedure che vengono poi attuate da un esecutore, che opera nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati. Esso è un processo mentale per la risoluzione di problemi costituito dalla combinazione di metodi caratteristici e di strumenti intellettuali, entrambi di valore generale.
  • 4.
    I metodi caratteristici •analizzaree organizzare i dati del problema in base a criteri logici; •rappresentare i dati del problema tramite opportune astrazioni; •formulare il problema in un formato che ci permette di usare un “sistema di calcolo” (nel senso più ampio del termine, ovvero una macchina, un essere umano, o una rete di umani e macchine) per risolverlo; •automatizzare la risoluzione del problema definendo una soluzione algoritmica, consistente in una sequenza accuratamente descritta di passi, ognuno dei quali appartenente ad un catalogo ben definito di operazioni di base; •identificare, analizzare, implementare e verificare le possibili soluzioni con un’efficace ed efficiente combinazione di passi e risorse (avendo come obiettivo la ricerca della soluzione migliore secondo tali criteri); •generalizzare il processo di risoluzione del problema per poterlo trasferire ad un ampio spettro di altri problemi.
  • 5.
    Gli strumenti intellettuali •confidenzanel trattare la complessità (dal momento che i sistemi software raggiungono normalmente un grado di complessità superiore a quello che viene abitualmente trattato in altri campi dell’ingegneria); •ostinazione nel lavorare con problemi difficili; •tolleranza all’ambiguità (da riconciliare con il necessario rigore che assicuri la correttezza della soluzione); •abilità nel trattare con problemi definiti in modo incompleto; •abilità nel trattare con aspetti sia umani che tecnologici, in quanto la dimensione umana (definizione dei requisiti, interfacce utente, formazione, ...) è essenziale per il successo di qualunque sistema informatico; •capacità di comunicare e lavorare con gli altri per il raggiungimento di una meta comune o di una soluzione condivisa.
  • 6.
    Perché è importanteil pensiero computazionale? Perché si tratta di una skill fondamentale che tutti dovrebbero possedere, in particolare quei giovani che desiderano non farsi sfuggire le opportunità che il futuro porrà loro dinanzi nei prossimi anni. È ormai universalmente riconosciuto che per riuscire bene nel proprio futuro professionale i giovani dovranno “imparare a imparare” e non limitarsi a fornire risposte preconfezionate. Il pensiero computazionale deve essere appreso ed esercitato fin dai primi anni di scuola. Ciò che i nostri studenti universitari imparano oggi, tra cinque anni sarà probabilmente obsoleto: questo vale in maniera particolare per le discipline tecniche, ma anche per le altre discipline.
  • 7.
    … e ilcomputer? Il computer è lo strumento, noi siamo coloro che lo rendono creativo con la nostra immaginazione, ma i processi mentali tipici del pensiero computazionale sono favoriti dall’approccio alla risoluzione dei problemi che viene messo in atto da coloro che sviluppano programmi per il computer: in altre parole il pensiero computazionale è quello che adotta un informatico quando affronta un problema.
  • 8.
    A scuola colcomputer E il computer, secondo Papert, è un ottimo strumento didattico poiché, grazie alla programmazione, può creare questi artefatti. Il testimone di Papert è stato raccolto da Mitchel Resnick responsabile del Lifelong Kindergarten del MIT MediaLab che con i suoi collaboratori ha realizzato un framework per l’insegnamento del pensiero computazionale e la valutazione dell’apprendimento che si fonda sulla convinzione che i bambini possano acquisire il pensiero computazionale programmando storie interattive e videogiochi (gli artefatti di cui parlava Papert). Il lavoro di questi anni di Resnick e dei suoi collaboratori ha portato alla nascita di Scratch, un ambiente di programmazione visuale che consente ai ragazzi di creare in maniera semplice e intuitiva le proprie storie animate, giochi e simulazioni: oggi Scratch conta una community di giovani sviluppatori estesa in tutto il mondo ed è di fatto lo strumento di riferimento per insegnare ai bambini il pensiero computazionale attraverso la programmazione.
  • 9.
    Il pensiero computazionalesecondo il framework sviluppato dal Lifelong Kindergarten del MIT MediaLab Concetti di pensiero computazionale: • Sequenza: un’attività può essere espressa attraverso una serie consecutiva di singoli step o istruzioni. • Ciclo: è un meccanismo per eseguire più volte la medesima sequenza in maniera iterativa. • Evento: il verificarsi di un’azione causa lo scatenarsi di un’altra azione. • Parallelismo: significa eseguire sequenze di istruzioni differenti allo stesso tempo. • Condizione: è la possibilità di prendere decisioni sulla base del verificarsi di determinate situazioni. • Operatore: fornisce supporto per la manipolazione di numeri e stringhe di caratteri. • Dati: sono valori che possono essere salvati, recuperati e modificati durante l’esecuzione di un programma.
  • 10.
    Il pensiero computazionalesecondo il framework sviluppato dal Lifelong Kindergarten del MIT MediaLab Pratiche di pensiero computazionale: • Essere incrementali e iterativi: la progettazione è un processo adattativo dove la pianificazione può cambiare man mano che ci si avvicina alla soluzione del problema. • Testare e debuggare: individuare problemi ed errori e correggerli. • Riusare (pattern recognition): riconoscere come alcune parti di soluzione possono essere riusate nella stessa o riapplicate a problemi simili. • Remixare (copiare per migliorare): grazie alla rete e all’ampia disponibilità di lavori di altri autori, è possibile prendere spunto da idee e codice per costruire cose più complesse di quelle che si sarebbero potute realizzare per conto proprio, dando un’ulteriore spinta alla propria creatività. • Astrarre: è il processo di riduzione della complessità, per far emergere l’idea principale mantenendo solo alcuni aspetti e tralasciandone altri. • Modularizzare (scomporre): è il processo che consente di scomporre un problema complesso in problemi più semplici, per cui risolvendo i problemi più semplici si risolve anche il problema complesso.
  • 11.
    Il pensiero computazionalesecondo il framework sviluppato dal Lifelong Kindergarten del MIT MediaLab Attitudini di pensiero computazionale: • Esprimere se stessi: una persona dotata di pensiero computazionale vede nella tecnologia uno strumento per esprimere se stessi, la propria creatività e dire qualcosa di sé agli altri. • Essere connessi: saper comunicare e lavorare con gli altri per raggiungere un obiettivo o una soluzione condivisa. • Porre domande: saper sviluppare una mente vigile grazie alla quale è sempre viva la domanda di come un oggetto incontrato nel mondo reale possa funzionare.
  • 12.
  • 13.
    Il MIUR, incollaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, ha avviato questa iniziativa (che fa parte del programma #labuonascuola) con l’obiettivo di fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica. Leggi la circolare MIUR del 2015 (quella del 2014 la ritrovi qui ). Partendo da un’esperienza di successo avviata negli USA che ha visto nel 2013 la partecipazione di circa 40 milioni di studenti e insegnanti di tutto il mondo, l’Italia sarà uno dei primi Paesi al mondo a sperimentare l’introduzione strutturale nelle scuole dei concetti di base dell’informatica attraverso la programmazione (coding ), usando strumenti di facile utilizzo e che non richiedono un’abilità avanzata nell’uso del computer. http://www.programmailfuturo.it/
  • 14.
    Scratch è unlinguaggio di programmazione e il suo ambiente di sviluppo e d'autore. Il linguaggio, ispirato alla teoria costruzionista dell'apprendimento e progettato per l'insegnamento della programmazione tramite primitive visive, è adatto a studenti, insegnanti e genitori, ed utilizzabile per progetti pedagogici e di intrattenimento che spaziano dalla matematica alla scienza, consentendo la realizzazione di simulazioni, visualizzazione di esperimenti, animazioni, musica, arte interattiva, e semplici giochi. https://scratch.mit.edu/
  • 15.
    La robotica inclasse Scuola di robotica http://www.scuoladirobotica.it Robocup Jr Italia http://www.robocupjr.it/4/ Il programma LOGIC http://www.aicanet.it/-/programma-logic
  • 16.