# data[].attributes.attachment_link.title
Scratch: strumento di programmazione a blocchi

# data[].attributes.attachment_link.readable_text
0:00 / 1:44•Watch full video

# data[].attributes.attachment_link.title
Cos'è il "pensiero computazionale": un esempio informale

# data[].attributes.body
Il linguaggio semplice: Scratch

Sembra un cosa complicata e contraddittoria, ricordate (se fai tutti questi passaggi, la codifica ti viene facile e gratis) questo perché i linguaggi di programmazione letterali (es. il C, C++, Java e quant’altro) sono complessi in se, con una sintassi che richiede un tempo di apprendimento specifico e una età minima di 15-16 anni(sperimentazione effettuata su una e seconda classe di Liceo durante un corso di Robotica educativa ). La difficoltà di scrivere programmi con linguaggi letterali e quindi “la possibilità  di liberare il pensiero computazionale” è  dimostrata anche dal fatto che nel mondo dell’automazione e della robotica industriale, se pure per finalità differenti (mancanza di tempo relativa alla progettazione di software, tempi stretti di messa in servizio, necessità di chiarezza del software stesso a fini manutentivi), si usano quasi esclusivamente linguaggi a blocchi ed è quasi sempre  “vietato” dalle specifiche dei clienti  l’utilizzo di tali linguaggi letterali. Quindi se avessi un linguaggio che mi permettesse di programmare in modo semplice, intuitivo e scorrevole, che non fosse un ostacolo, ma indicasse in modo naturale al computer le azioni che voglio compiere, potrei utilizzarlo come strumento di insegnamento e non come finalità del mio insegnamento. Per fortuna, questo strumento esiste, si chiama Scratch  ed è anche OpenSource. Esiste anche un ambiente chiamato Blockly che è in realtà una libreria di funzioni per programmatori esperti (sulla quale si basa es. il sito code.org oppure l’applicazione WEB “MIT App Inventor” che serve a creare app per smartphone…) ma io preferisco Scratch e i suoi derivati.

# data[].attributes.headline
Nel mondo odierno i computer sono dovunque e costituiscono un potente strumento di aiuto per le persone. Per essere culturalmente preparato a qualunque lavoro uno studente di adesso vorrà fare da grande è indispensabile quindi una comprensione dei concetti di base dell’informatica. Esattamente com’è accaduto in passato per la matematica, la fisica, la biologia e la chimica.

# data[].attributes.subject
Nel mondo odierno i computer sono dovunque e costituiscono un potente strumento di aiuto per le persone. Per essere culturalmente preparato a qualunque lavoro uno studente di adesso vorrà fare da grande è indispensabile quindi una comprensione dei concetti di base dell’informatica. Esattamente com’è accaduto in passato per la matematica, la fisica, la biologia e la chimica.

# data[].attributes.headline
Per questo  i progetti messi in atto prevedono un percorso di base e percorsi avanzati.. La modalità base di partecipazione, definita L'Ora del Codice, consiste nel far svolgere agli studenti un'ora di avviamento al pensiero computazionale.Una modalità di partecipazione più avanzata consiste invece nel far seguire a questa prima ora di avviamento dei percorsi più approfonditi, che sviluppano i temi del pensiero computazionale con ulteriori lezioni. Esse possono essere svolte nel resto dell’anno scolastico.Entrambe le modalità possono essere fruite sia in un contesto tecnologico, per le scuole dotate di computer e connessione a Internet, sia in modo tradizionale, per le scuole ancora non supportate tecnologicamente. 

# data[].attributes.subject
Per questo  i progetti messi in atto prevedono un percorso di base e percorsi avanzati.. La modalità base di partecipazione, definita L'Ora del Codice, consiste nel far svolgere agli studenti un'ora di avviamento al pensiero computazionale.Una modalità di partecipazione più avanzata consiste invece nel far seguire a questa prima ora di avviamento dei percorsi più approfonditi, che sviluppano i temi del pensiero computazionale con ulteriori lezioni. Esse possono essere svolte nel resto dell’anno scolastico.Entrambe le modalità possono essere fruite sia in un contesto tecnologico, per le scuole dotate di computer e connessione a Internet, sia in modo tradizionale, per le scuole ancora non supportate tecnologicamente. 

# data[].attributes.headline
I metodi caratteristici includono: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.Questi metodi sono importanti per tutti, non solo perché sono direttamente applicati nei calcolatori (computer ), nelle reti di comunicazione, nei sistemi e nelle applicazioni software ma perché sono strumenti concettuali per affrontare molti tipi di problemi in diverse discipline.Gli strumenti intellettuali includono: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.Anche per questi strumenti i benefici si estendono al di là della disciplina informatica.

# data[].attributes.subject
I metodi caratteristici includono: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.Questi metodi sono importanti per tutti, non solo perché sono direttamente applicati nei calcolatori (computer ), nelle reti di comunicazione, nei sistemi e nelle applicazioni software ma perché sono strumenti concettuali per affrontare molti tipi di problemi in diverse discipline.Gli strumenti intellettuali includono: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.Anche per questi strumenti i benefici si estendono al di là della disciplina informatica.

# data[].attributes.headline
Il lato scientifico-culturale dell'informatica, definito anche pensiero computazionale, aiuta a sviluppare competenze logiche e capacità di risolvere problemi in modo creativo ed efficiente, qualità che sono importanti per tutti i futuri cittadini. Il modo più semplice e divertente di sviluppare il pensiero computazionale è attraverso la programmazione (coding ) in un contesto di gioco.

# data[].attributes.subject
Il lato scientifico-culturale dell'informatica, definito anche pensiero computazionale, aiuta a sviluppare competenze logiche e capacità di risolvere problemi in modo creativo ed efficiente, qualità che sono importanti per tutti i futuri cittadini. Il modo più semplice e divertente di sviluppare il pensiero computazionale è attraverso la programmazione (coding ) in un contesto di gioco.

# data[].attributes.headline
Umberto Talamo, insegnante e ingegnere, spiega come il pensiero computazionale si possa insegnare anche ai più piccoli. Il Pensiero Computazionale introdotto nella legge detta “la buona scuola”,  porta ad una inversione di paradigma La questione si è posta già negli anni ’60 con la programmazione funzionale, ma il contributo più decisivo in questo senso è stato dato probabilmente negli anni ’70 dalla cosiddetta programmazione logica prima, e dal boom di quella ad oggetti, dopo. Oggi i paradigmi di programmazione citati con una certa frequenza sono almeno una decina, anche se non sempre sono chiari i loro confini o la loro indipendenza. I paradigmi offrono una chiave di classificazione dei linguaggi: diremo che un linguaggio afferisce ad un paradigma se consente di scrivere i programmi in accordo ad esso.Il pensiero computazionaleLa competenza principale di un buon informatico è quella di saper programmare: così come il modo corretto e canonico per un buon docente di informatica è quello di insegnare che non è corretto scrivere direttamente il codice senza una serie documentata di passaggi fatti a monte, Bene, questi passaggi, che poi portano alla fase finale che è la “codifica” rappresentano quello che viene definito “il pensiero computazionale”.In sintesi sono: Decomposition  Pattern              Location Abstraction  Algorithm                       I bravi insegnanti (ma anche professionisti nel mondo del lavoro) hanno sempre detto: “Se fai tutti questi passaggi, la codifica ti viene  gratis”, cioè facile. La legge 107, art 1 comma 7 ci parla di Pensiero Computazionale e nella stessa non troverete la parola “coding ” o “programmazione” in senso informatico. Ed è giusto che sia così, concordo pienamente con gli autori della legge. In realtà potremmo insegnare il pensiero computazionale senza programmare, cosa tra l’altro possibile attraverso l’utilizzo di  metodi cosiddetti “Unplugged”.Ma una strada più bella e creativa, più vicina sicuramente alla realtà che vivono i nostri alunni (nativi digitali) è quella di utilizzare il  Computer o le altre tecnologie disponibili (SmartPhone, Tablet, ecc.) e quindi il “coding”, cioè la programmazione. Questo rappresenta un vero e proprio cambio di paradigma:Metodo tradizionale:Dalla costruzione del pensiero computazionale alla codifica finale Inversione:Dalla codifica alla costruzione del Pensiero Computazionale

# data[].attributes.subject
Umberto Talamo, insegnante e ingegnere, spiega come il pensiero computazionale si possa insegnare anche ai più piccoli. Il Pensiero Computazionale introdotto nella legge detta “la buona scuola”,  porta ad una inversione di paradigma La questione si è posta già negli anni ’60 con la programmazione funzionale, ma il contributo più decisivo in questo senso è stato dato probabilmente negli anni ’70 dalla cosiddetta programmazione logica prima, e dal boom di quella ad oggetti, dopo. Oggi i paradigmi di programmazione citati con una certa frequenza sono almeno una decina, anche se non sempre sono chiari i loro confini o la loro indipendenza. I paradigmi offrono una chiave di classificazione dei linguaggi: diremo che un linguaggio afferisce ad un paradigma se consente di scrivere i programmi in accordo ad esso.Il pensiero computazionaleLa competenza principale di un buon informatico è quella di saper programmare: così come il modo corretto e canonico per un buon docente di informatica è quello di insegnare che non è corretto scrivere direttamente il codice senza una serie documentata di passaggi fatti a monte, Bene, questi passaggi, che poi portano alla fase finale che è la “codifica” rappresentano quello che viene definito “il pensiero computazionale”.In sintesi sono: Decomposition  Pattern              Location Abstraction  Algorithm                       I bravi insegnanti (ma anche professionisti nel mondo del lavoro) hanno sempre detto: “Se fai tutti questi passaggi, la codifica ti viene  gratis”, cioè facile. La legge 107, art 1 comma 7 ci parla di Pensiero Computazionale e nella stessa non troverete la parola “coding ” o “programmazione” in senso informatico. Ed è giusto che sia così, concordo pienamente con gli autori della legge. In realtà potremmo insegnare il pensiero computazionale senza programmare, cosa tra l’altro possibile attraverso l’utilizzo di  metodi cosiddetti “Unplugged”.Ma una strada più bella e creativa, più vicina sicuramente alla realtà che vivono i nostri alunni (nativi digitali) è quella di utilizzare il  Computer o le altre tecnologie disponibili (SmartPhone, Tablet, ecc.) e quindi il “coding”, cioè la programmazione. Questo rappresenta un vero e proprio cambio di paradigma:Metodo tradizionale:Dalla costruzione del pensiero computazionale alla codifica finale Inversione:Dalla codifica alla costruzione del Pensiero Computazionale

# data[].attributes.headline
Quando si diventa fluenti a leggere e scrivere non lo si fa solamente per diventare uno scrittore di professione. Poche persone diventano scrittori di professione. Ma imparare a leggere e scrivere è utile a tutti. Ed è la stessa cosa per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri – queste sono abilità che si sviluppano anche quando si programma con Scratch – sono cose che le persone possono usare, indipendentemente dal lavoro che fanno.

# data[].attributes.subject
Quando si diventa fluenti a leggere e scrivere non lo si fa solamente per diventare uno scrittore di professione. Poche persone diventano scrittori di professione. Ma imparare a leggere e scrivere è utile a tutti. Ed è la stessa cosa per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri – queste sono abilità che si sviluppano anche quando si programma con Scratch – sono cose che le persone possono usare, indipendentemente dal lavoro che fanno.

# data[].attributes.body
Il pensiero computazionale è un processo mentale per la risoluzione di problemi costituito dalla combinazione di metodi caratteristici e distrumenti intellettuali, entrambi di valore generale.

# data[].attributes.body
Seymour Papert

# data[].attributes.headline
Per caratterizzare sinteticamente il rilevante contributo culturale apportato dall’Informatica alla comprensione della società contemporanea, la scienziata informatica Jeannette Wing nel 2006 introdusse l’espressione “pensiero computazionale ”

# data[].attributes.subject
Per caratterizzare sinteticamente il rilevante contributo culturale apportato dall’Informatica alla comprensione della società contemporanea, la scienziata informatica Jeannette Wing nel 2006 introdusse l’espressione “pensiero computazionale ”

# data[].attributes.body
Jeannette Wing

# data[].attributes.headline
Con il pensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore, che opera nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati.

# data[].attributes.subject
Con il pensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore, che opera nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati.

# data[].attributes.body
1996
Seymour Papert introduce il concetto di computational thinking