Una semplice introduzione al perché si presentano le attività di coding: il pensiero computazionale. Viene anche presentato brevemente Scratch per far vedere alcuni esempi.
La presentazione è stata creata nell'ambito dei seminari di Coderdojo Salerno, una organizzazione di volontari che sul territorio presenta incontri ed attività formative sul digitale.
5. Alcune competenze del nostro secolo - 1
• Critical Thinking and Systems Thinking
– Coordinare la realizzazione di artefatti che
hanno un funzionamento complesso, basati
sulla messa “a sistema” di componenti di base
• Problem solving
– Creare sistemi software che devono risolvere
un problema, aiuta a identificare i passi
necessari
• Curiosità
– Progettazione esplorativa: “che succede se?”
"Learning by doing"- V. Scarano 5
6. Alcune competenze del nostro secolo - 2
• Apprendimento collaborativo
– La facilità di lavorare insieme a
progetti condivisi aumenta l’effetto
dell’apprendimento
• Responsabilizzazione e curiosità
– Scegliere la direzione del progetto
con la sperimentazione interattiva
"Learning by doing"- V. Scarano 6
7. Competenze del 21-mo secolo
• Pensare in maniera creativa
• Comunicare in maniera chiara
• Essere in grado di analizzare con
sistematicità
• Collaborazione
• Progettare in maniera ciclica
• Apprendere con continuità
Per essere fluenti in una lingua, non si deve
essere in grado solo di leggere, ma anche di
scrivere ed esprimersi correntemente
• .. così per le tecnologie digitali
"Learning by doing"- V. Scarano 7
12. Pensiero computazionale
• Computational thinking
• Processo che appartiene al dominio del problem solving e che ne
offre una rappresentazione
• Fasi principali
– formulazione del problema al fine di consentire l’impiego di uno
strumento automatico per la risoluzione
– Acquisizione, analisi e organizzazione logica dei dati provenienti dal campo
– Rappresentazione dei dati, fondati su modelli e simulazioni
– Realizzazioni di soluzioni automatiche, ripetibili e sostenibili, attraverso lo
sviluppo del pensiero algoritmico
– Sviluppo di diverse soluzioni possibili (con obiettivo di selezionare la
combinazione migliore)
– Generalizzazione e trasferimento della soluzione
"Learning by doing"- V. Scarano 12
25. Buone Prassi del Pensiero Computazionale
• “Progettazione incrementale e iterativa”
– processo continuo, che reagisce a feedback da esperienze
– metodologie “agili” in sviluppo software
• “Testing e debugging”
– verificare il funzionamento e correggerlo, se necessario
• “Riutilizzo e re-mix di progetti esistenti”
– condivisione di codice, buone pratiche nello scrivere codice
• documentazione del codice (commenti)
– open source
• “Astrazione e modularizzazione”
– ottimizzazione del proprio progetto (per sprite, per evento, …)
• Team work nella progettazione
– pair programming
"Learning by doing"- V. Scarano 25
28. Caratteristiche di Scratch
• Ambiente di programmazione
– Visuale
– Interattivo
– Basato sul web
• Scratch aiuta ad imparare a pensare in modo creativo, a
ragionare in maniera sistematica e a collaborare
• Scratch è progettato in maniera specifica per la fascia di età 8 -
16,
– ma è usato da persone di tutte le età, in contesti educativi diversi
• Milioni di persone stanno creando progetti con Scratch a casa,
a scuola
– ma anche in musei, biblioteche e centri ricreativi.
"Learning by doing"- V. Scarano 28
37. Caratteristiche di Scratch
• Tecnica dello scratching usata dai disc jockey di musica hip-
hop
• Consiste nel trascinare dischi in vinile con le mani, fondendo
brani esistenti in maniera creativa
• Scratch segue lo stesso approccio
– mescolando diversi tipi di media (grafica, foto, musica, suoni)
– remixando progetti di altri
– avendo anche una audience che interagisce con l’autore
• Possibile infatti condividere il progetto sul sito di Scratch
– così come si condivide foto, filmati su Youtube, Facebook, Flickr, etc.
• La “socialità” e la collaborazione come strumento di sviluppo
– e non solo come “pericoli” da evitare
"Learning by doing"- V. Scarano 37
39. Imparare con Scratch
• Idee e concetti di informatica ma anche di matematica, fisica etc.
– coordinate
– variabili
– numeri casuali
– iterazione
– condizioni
• Contesto significativo, motivante
– interattivo e che favorisce la sperimentazione
• una variabile in algebra viene vissuta come “viva” all’interno di un esempio
con Scratch
• in quanto serve per controllare la velocità di movimento, il punteggio, etc.
• Ciclo della progettazione
– progetta, realizza, controlla, correggi e realizza le modifiche opportune
"Learning by doing"- V. Scarano 39
43. Cosa fanno gli sprite?
• Possiamo fornire istruzioni ad ogni sprite
• Possiamo indicargli
– cosa fare, dove muoversi o cosa suonare
– come reagire ad altri eventi
• interazione con altri sprite
• interazione con l’utente (click, etc.)
• Per indicare ad uno sprite cosa fare si deve costruire
uno script
– blocco grafico di istruzioni
"Learning by doing"- V. Scarano 43
47. Il palcoscenico degli sprite: lo stage - 2
"Learning by doing"- V. Scarano 47
• Grandezza:
– 480 punti in orizzontale
– 360 in verticale
• Il centro ha coordinate
(0,0)
• Le coordinate orizzontali
vanno da -240 a +240
• Le coordinate verticali
vanno da -180 a +180
(240, 180)
(240, -180)
(-240, 180)
(-240, -180)
(0, 0)
49. Lo stage: un palcoscenico…
"Learning by doing"- V. Scarano 49
• Il palcoscenico degli sprite
– che normalmente è
mostrato insieme alle altre
componenti nella modalità
di “progettazione”
– la sala prove? J
• Può andare in primo
piano
– si va in scena
• Modalità presentazione
– usando il pulsante
53. "Learning by doing"- V. Scarano 53
• si prende un blocco dall’area dei blocchi e si porta
nell’area degli script
• si clicca sul blocco (o sull’insieme di blocchi)
• lo sprite esegue i comandi
Come si usa Scratch?
3 semplici passi!
54. Un semplice esempio
• Cosa faremo
• Sequenza di passi:
– portiamo un blocco dall’ area blocchi all’area dello script
• Ne modifichiamo il numero di passi, portandolo a 100
– si fa click su 10, viene evidenziato, scriviamo 100
• A questo punto facciamo click sul blocco nella area degli
script e lo sprite si muoverà di 100 passi nella direzione in
cui sta “guardando”
"Learning by doing"- V. Scarano 54
59. Un altro esempio: facciamo ballare il gatto
• I passi che vogliamo far eseguire sono:
– muoviti di 10 passi
– emetti un suono con il tamburo
– muoviti indietro di 10 passi (quindi di -10 passi)
– emetti un suono con i piatti
• per cambiare tamburo facciamo click sulla scelta del tipo, si apre una
finestra e scegliamo (4) Piatto
• Dobbiamo portare i blocchi uno sull’altro nell’area degli script,
facendoli “combaciare” (come pezzi di un puzzle)
• Poi, vogliamo far ripetere questo balletto per 10 volte
– utilizzando un nuovo blocco
"Learning by doing"- V. Scarano 59
64. Come si usano i blocchi - 1
• Ogni blocco ha una sua forma, che indica in che maniera può
essere combinato
• Blocchi “impilabili”:
– hanno un punto sul fondo che fuoriesce e in cima che rientra
– questi blocchi possono formare delle sequenze
– alcuni blocchi hanno una area di input che permette di inserire un
valore
– oppure di selezionare un valore
– alcuni blocchi hanno una bocca per contenere altri blocchi (sequenze)
"Learning by doing"- V. Scarano 64
65. Come si usano i blocchi - 2
• Blocchi “a cappello”
– possono stare solo all’inizio di uno script
– attendono che avvenga un evento e fanno partire lo script
– importante paradigma di programmazione eventi e di
programmazione concorrente
– fondamentale per gestire la interazione con l’utente
• Usare i blocchi “a cappello” permette di poter scrivere
più script contemporaneamente, eseguiti quando serve
– quando l’utente preme freccia a sinistra.. e quando l’utente
preme freccia a destra
"Learning by doing"- V. Scarano 65
67. Come si usano i blocchi - 3
• Blocchi “sensori”
• Rappresentano un valore, preso dall’ambiente di Scratch
• .. che può essere utilizzato all’interno di blocchi che
hanno aree di input arrotondate
• Ad esempio, il sensore
– può essere inserito come stringa in
– e ripetuto per sempre
"Learning by doing"- V. Scarano 67
69. Come si usano i blocchi - 4
• Blocchi “di decisione”
• Rappresentano una scelta che viene effettuata dallo
script, a seconda del valore di verità di una
espressione
• La espressione controllata deve essere un rombo
• Oppure una espressione di un operatore come:
"Learning by doing"- V. Scarano 69