Coding e pensiero
computazionale
Snodo Formativo Provinciale
I.S. “Quintino Sella”, Biella
Formazione docenti Team dell’Innovazione
Prot. 6076 del 04/04/2016
Materiali intervento del prof. Marco Marchisotti
1
A proposito di coding
2
Tratto da: codemooc.org
Perché sperimentare il coding a scuola?
• I Computer sono ovunque. Tutti noi dobbiamo
sapere come usarli e molti di noi li usano tutti i
giorni. Ma come funzionano? Come pensano?
L’informatica è una scienza affascinante che
risponde a queste domande.
• Per essere culturalmente preparato a qualunque
lavoro uno studente di adesso vorrà fare da grande
è indispensabile una comprensione dei concetti di
base dell’informatica: esattamente com’è accaduto
in passato per la matematica, la fisica, la biologia e
la chimica.
• Introduzione all’informatica come scienza (cosa è, di cosa si occupa) prof.ssa
Cristina Bosco, Univ.Torino
3
Pensiero computazionale
• Non esiste una definizione universalmente condivisa.
• Definizione formulata dalla dottoressa J.Wing, direttrice
del Dipartimento di Informatica della Carnegie Mellon
University:
– “è il processo mentale che sta alla base della formulazione
dei problemi e delle loro soluzioni così che le soluzioni siano
rappresentate in una forma che può essere implementata in
maniera efficace da un elaboratore di informazioni sia esso
umano o artificiale”.
• Ovvero è lo sforzo che un individuo deve mettere in atto
per fornire a un altro individuo o macchina tutte e sole
le “istruzioni” necessarie affinché questi eseguendole
sia in grado di portare a termine il compito dato.
4
Pensiero computazionale
• Nella società contemporanea la cui tecnologia
dipende in misura fondamentale
dall’informatica, avere familiarità con i concetti
di base dell’informatica come materia
scientifica è un elemento critico del processo di
formazione dei cittadini.
• Così come leggere, scrivere e contare sono
abilità che è importante imparare fin da bambini
anche il pensiero computazionale deve essere
appreso ed esercitato fin dai primi anni di
scuola.
5
Pensiero computazionale
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
6
Tratto da: programmailfuturo
Concetti del 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.
7
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.
8
Attitudini di pensiero computazionale
• Esprimere se stessi: una persona dotata di
pensiero computazionale vede nella tecnologia
uno strumento per esprimere se stessa, 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.
9
Percorsi possibili
• Lezioni tecnologiche e tradizionali:
10
Coding Unplugged
• È un insieme di attività didattiche sperimentali
che insegnano informatica attraverso il gioco
utilizzando carte, corde, pastelli e tanta attività
fisica che porterà i ragazzi camminare per la
classe o a correre in giardino
11
Programma il futuro
• Materiali per lezioni tradizionali:
– Pensiero Computazionale
– Programmazione su carta a quadretti
– Algoritmi
– Istruzioni condizionali
– Composizione di canzoni
– Astrazione
– Programmazione a staffetta
– Internet
12
Cody & Roby
• Roby è un robot che esegue istruzioni,
• Cody è il suo programmatore.
• Per iniziare le istruzioni sono solo 3: vai
avanti, gira a sinistra e gira a destra.
• Ogni istruzione è scritta o disegnata su
un cartello o su una tessera che Cody
passa a Roby.
• Roby legge l’istruzione e la esegue
muovendosi su una scacchiera.
• Non servono computer, sono i giocatori
a fare la parte di Roby e di Cody.
13
Cody & Roby
14
Cody & Roby
15
Cody & Roby
• 4 giochi:
• Cody & Roby #1: Seguimi
• Cody & Roby #2: Il Duello
• Cody & Roby #3: La corsa
• Cody & Roby #4: La turista
16
Scarica le carte da qui
Cody Way
17
Link alla presentazione condivisa per
Creare i vostri blocchi personalizzati
Computer Science Unplugged
• Sito con moltissime attività unplugged, per fare
informatica senza il computer.
• Libro tradotto in italiano
• Video esplicativi delle attività
• Tanti link per approfondire
18
I numeri binari
19
Rappresentazione di immagini
20
Compressione del testo
21
Rilevamento di errori
22
Algoritmi di ordinamento
23
Olimpiadi del Problem Solving
24
Crittografia
25
• In crittografia il cifrario di Cesare è un cifrario a
sostituzione monoalfabetica in cui ogni lettera del
testo in chiaro è sostituita nel testo cifrato dalla
lettera che si trova un certo numero di posizioni
dopo nell'alfabeto. Questi tipi di cifrari sono detti
anche cifrari a sostituzione o cifrari a
scorrimento a causa del loro modo di operare: la
sostituzione avviene lettera per lettera, scorrendo
il testo dall'inizio alla fine.
• In particolare, Cesare utilizzava uno spostamento
di 3 posizioni (la chiave era dunque 3), secondo il
seguente schema:
Da Wikipedia:
Crittografia
• Le stringhe sotto riportate contengono, crittografati
col metodo Giulio Cesare, i nomi di noti personaggi
del risorgimento italiano; questi nomi sono
crittografati con chiavi diverse
– Nome1: [i, c, t, k, d, c, n, f, k]
– Nome2: [n, l, g, g, z, f, c]
– Nome3: [d, r, q, q, z, e, z]
– Nome4: [u, s, j, d, g, s, d, t, w, j, l, g]
• Problema
– Trovare le chiavi K1, K2, K3 e K4 usate per crittografare
nell’ordine i quattro personaggi.
26
Verificare un algoritmo
27
Verificare un algoritmo
28
RIGA A B C D
3 6 3
4 3
5 18
6 21
7 72
8
Verificare un algoritmo
29
Verificare un algoritmo
30
Scratch
31
Scratch off-line
• Per scaricare la versione 2:
https://scratch.mit.edu/scratch2download/
• Per scaricare la versione 1.4:
https://scratch.mit.edu/scratch_1.4/
32
Scratch per iniziare
33
Programmo anch’io
• Nell’ambito del progetto Diderot,
l’Associazione Dschola propone la linea
“Programmo anch’io”.
• Sito: http://www.associazionedschola.it/programmoanchio/
34
Scratch video tutorial
35

Coding

  • 1.
    Coding e pensiero computazionale SnodoFormativo Provinciale I.S. “Quintino Sella”, Biella Formazione docenti Team dell’Innovazione Prot. 6076 del 04/04/2016 Materiali intervento del prof. Marco Marchisotti 1
  • 2.
    A proposito dicoding 2 Tratto da: codemooc.org
  • 3.
    Perché sperimentare ilcoding a scuola? • I Computer sono ovunque. Tutti noi dobbiamo sapere come usarli e molti di noi li usano tutti i giorni. Ma come funzionano? Come pensano? L’informatica è una scienza affascinante che risponde a queste domande. • Per essere culturalmente preparato a qualunque lavoro uno studente di adesso vorrà fare da grande è indispensabile una comprensione dei concetti di base dell’informatica: esattamente com’è accaduto in passato per la matematica, la fisica, la biologia e la chimica. • Introduzione all’informatica come scienza (cosa è, di cosa si occupa) prof.ssa Cristina Bosco, Univ.Torino 3
  • 4.
    Pensiero computazionale • Nonesiste una definizione universalmente condivisa. • Definizione formulata dalla dottoressa J.Wing, direttrice del Dipartimento di Informatica della Carnegie Mellon University: – “è il processo mentale che sta alla base della formulazione dei problemi e delle loro soluzioni così che le soluzioni siano rappresentate in una forma che può essere implementata in maniera efficace da un elaboratore di informazioni sia esso umano o artificiale”. • Ovvero è lo sforzo che un individuo deve mettere in atto per fornire a un altro individuo o macchina tutte e sole le “istruzioni” necessarie affinché questi eseguendole sia in grado di portare a termine il compito dato. 4
  • 5.
    Pensiero computazionale • Nellasocietà contemporanea la cui tecnologia dipende in misura fondamentale dall’informatica, avere familiarità con i concetti di base dell’informatica come materia scientifica è un elemento critico del processo di formazione dei cittadini. • Così come leggere, scrivere e contare sono abilità che è importante imparare fin da bambini anche il pensiero computazionale deve essere appreso ed esercitato fin dai primi anni di scuola. 5
  • 6.
    Pensiero computazionale con ilpensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore, che opera nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati 6 Tratto da: programmailfuturo
  • 7.
    Concetti del pensierocomputazionale • 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. 7
  • 8.
    Pratiche di pensierocomputazionale • 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. 8
  • 9.
    Attitudini di pensierocomputazionale • Esprimere se stessi: una persona dotata di pensiero computazionale vede nella tecnologia uno strumento per esprimere se stessa, 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. 9
  • 10.
    Percorsi possibili • Lezionitecnologiche e tradizionali: 10
  • 11.
    Coding Unplugged • Èun insieme di attività didattiche sperimentali che insegnano informatica attraverso il gioco utilizzando carte, corde, pastelli e tanta attività fisica che porterà i ragazzi camminare per la classe o a correre in giardino 11
  • 12.
    Programma il futuro •Materiali per lezioni tradizionali: – Pensiero Computazionale – Programmazione su carta a quadretti – Algoritmi – Istruzioni condizionali – Composizione di canzoni – Astrazione – Programmazione a staffetta – Internet 12
  • 13.
    Cody & Roby •Roby è un robot che esegue istruzioni, • Cody è il suo programmatore. • Per iniziare le istruzioni sono solo 3: vai avanti, gira a sinistra e gira a destra. • Ogni istruzione è scritta o disegnata su un cartello o su una tessera che Cody passa a Roby. • Roby legge l’istruzione e la esegue muovendosi su una scacchiera. • Non servono computer, sono i giocatori a fare la parte di Roby e di Cody. 13
  • 14.
  • 15.
  • 16.
    Cody & Roby •4 giochi: • Cody & Roby #1: Seguimi • Cody & Roby #2: Il Duello • Cody & Roby #3: La corsa • Cody & Roby #4: La turista 16 Scarica le carte da qui
  • 17.
    Cody Way 17 Link allapresentazione condivisa per Creare i vostri blocchi personalizzati
  • 18.
    Computer Science Unplugged •Sito con moltissime attività unplugged, per fare informatica senza il computer. • Libro tradotto in italiano • Video esplicativi delle attività • Tanti link per approfondire 18
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    Crittografia 25 • In crittografiail cifrario di Cesare è un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nell'alfabeto. Questi tipi di cifrari sono detti anche cifrari a sostituzione o cifrari a scorrimento a causa del loro modo di operare: la sostituzione avviene lettera per lettera, scorrendo il testo dall'inizio alla fine. • In particolare, Cesare utilizzava uno spostamento di 3 posizioni (la chiave era dunque 3), secondo il seguente schema: Da Wikipedia:
  • 26.
    Crittografia • Le stringhesotto riportate contengono, crittografati col metodo Giulio Cesare, i nomi di noti personaggi del risorgimento italiano; questi nomi sono crittografati con chiavi diverse – Nome1: [i, c, t, k, d, c, n, f, k] – Nome2: [n, l, g, g, z, f, c] – Nome3: [d, r, q, q, z, e, z] – Nome4: [u, s, j, d, g, s, d, t, w, j, l, g] • Problema – Trovare le chiavi K1, K2, K3 e K4 usate per crittografare nell’ordine i quattro personaggi. 26
  • 27.
  • 28.
    Verificare un algoritmo 28 RIGAA B C D 3 6 3 4 3 5 18 6 21 7 72 8
  • 29.
  • 30.
  • 31.
  • 32.
    Scratch off-line • Perscaricare la versione 2: https://scratch.mit.edu/scratch2download/ • Per scaricare la versione 1.4: https://scratch.mit.edu/scratch_1.4/ 32
  • 33.
  • 34.
    Programmo anch’io • Nell’ambitodel progetto Diderot, l’Associazione Dschola propone la linea “Programmo anch’io”. • Sito: http://www.associazionedschola.it/programmoanchio/ 34
  • 35.