Anteprima
Vedrai una selezione di 4 pagine su 15
Coding con Scratch Pag. 1 Coding con Scratch Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Coding con Scratch Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Coding con Scratch Pag. 11
1 su 15
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi

Competenza digitale: Coding con Scratch



Introduzione


Il Piano Nazionale Scuola Digitale (P.N.S.D) , varato ad ottobre 2015, introduce l’importanza delle competenze digitali fin dalla scuola primaria, in cui i bambini oltre a saper leggere, scrivere e far di conto devo acquisire competenze informatiche.
La logica computazionale nei primi anni di scuola, che rientra in una delle azione del PNSD, si può attuare con SCRATCH, un programma ideato da Mitchel Resnick dell’Università Massachussets Institute of Technology ( M.I.T.) di Boston.
SCRATCH è un software grafico di programmazione, lo si può scaricare gratuitamente per accedervi in modalità offline oppure ci si può registrare sempre gratuitamente alla piattaforma https://scratch.mit.edu e lavorare così in modalità online, dove ci si può unire alla comunità di SCRATCH per condividere i propri progetti e navigare i progetti della comunità nel WEB.
Programmare con Scratch risulta semplice, intuitivo e veloce, si può iniziare creando storie interattive, giochi, animazioni grafiche (come ad esempio il biglietto di auguri per la festa della mamma), fino ad arrivare a implementare degli algoritmi risolutivi di problemi veri e propri.
Quindi Scratch, molto utilizzato nella scuola primaria di primo e secondo grado, diventa versatile anche per gli studenti del biennio della scuola secondaria superiore, offrendo un primo approccio facilitato alla programmazione vera e propria.
L’ambiente di sviluppo di Scratch
L’ambiente di sviluppo di Scratch risulta suddiviso in tre parti:
•Stage: nell’area di sinistra compare il palcoscenico, ossia l’area dove lo sprite, per default il gatto, interagisce ed esegue le istruzione del codice che si alloca nell’area script, ma si possono inserire altri sprite presenti nella libreria apposita, o addirittura disegnarli di nuovi.
•Collezione di blocchi: nell’area centrale sono presenti le istruzioni divise in dieci categorie connotate da altrettanti colori, che per essere usati devono essere selezionati e trascinati nell’area di script
•Movimento: istruzioni che permettono il movimento, la rotazione, il cambio della posizione dello sprite nello stage, la cui posizione e caratterizzata dalle due coordinate cartesiane x y.
•Aspetto: istruzioni che danno in output dei messaggi da parte dello sprite, o ne fanno cambiare aspetto.
•Suono: istruzioni che danno in output dei suoni anche precedentemente registrati dal programmatore.
•Penna: istruzione che permettono di scrivere, disegnare sullo stage, ossia viene lasciare traccia della traiettoria dello sprite.
•Variabili e liste: istruzioni che creano nuove variabili.
•Situazioni: istruzioni di inizio esecuzione, …
•Controllo: istruzioni di controllo (repeat, if then …)
•Sensori: istruzioni di read e write.
•Operatori: operatori aritmetici, operatori relazionali, operatori logici …
•Altri blocchi: istruzioni che creano nuovi blocchi.
•Script: nell’area di destra viene scritto in codice vero e proprio, con la tecnica del drag and drop i mattoncini vengono trascinati ed impilati, essi vengono scelti tra i vari blocchi d’istruzioni dall’area centrale delle dieci collezioni su citate.
Estratto del documento

  ü PENNA: istruzione che permettono di scrivere, disegnare sullo stage, ossia viene

lasciare traccia della traiettoria dello sprite.

ü VARIABILI E LISTE: istruzioni che creano nuove variabili.

ü SITUAZIONI: istruzioni di inizio esecuzione, …

ü CONTROLLO: istruzioni di controllo (repeat, if then …)

ü SENSORI: istruzioni di read e write.

ü OPERATORI: operatori aritmetici, operatori relazionali, operatori logici …

ü ALTRI BLOCCHI: istruzioni che creano nuovi blocchi.

SCRIPT: nell’area di destra viene scritto in codice vero e proprio, con la tecnica del drag

• and drop i mattoncini vengono trascinati ed impilati, essi vengono scelti tra i vari blocchi

d’istruzioni dall’area centrale delle dieci collezioni su citate.

Ad esempio nella figura sovrastante è riportato un progetto dal nome “triangolo”, realizzato da

alunni di una prima classe della scuola secondaria di secondo grado, in cui si pone l’attenzione

sull’istruzione di controllo “se … allora … altrimenti” e sui connettivi logici booleani AND e OR.

Il programma “triangolo” prende in input 3 numeri a,b,c corrispondenti alle misure dei lati di un

triangolo e in output da la classificazione del triangolo in base ai suoi lati (equilatero, isoscele o

scaleno).

Nello stage appaiono memorizzati i valori delle variabili a,b,c corrispondenti alle misure dei lati del

triangolo, ed è riportata l’output del programma, esplicitato sotto forma di fumetto del gatto;

nell’area centrale sono evidenziate le istruzioni di movimento, anche se nessuna di esse e riportata

nel codice, il gatto rimane fermo; 3  

 

nell’area di destra è riportato il codice del programma, evidenziato in giallo poiché in esecuzione.

L’esecuzione del programma viene avviata cliccando sul bottone della bandiera verde, presente il

alto allo stage, mentre può essere bloccata dal bottone rosso che si trova affianco.

Alla base della Tecnologia dell’Informazione e della Comunicazione (T.I.C.) c’è il continuo

ampliamento e ottimizzazione di un progetto, e quindi in un certo senso il riutilizzo, si può partire

da una versione base, e poi continuare con lo sviluppo di versioni successive migliorate;

ad esempio il programma “triangolo” non fa il controllo sull’esistenza del triangolo, ossia si

dovrebbe introdurre la condizione della disuguaglianza triangolare: in un triangolo ciascun lato è

minore della somma degli altri due e maggiore della loro differenza (calcolando la differenza fra il

lato maggiore e il lato minore).

L’algoritmo “triangolo” ben posto, che fa un controllo sui dati di ingresso dei lati a, b, c dovrebbe

validare l’esistenza del triangolo testando le seguenti condizioni:

c - b < a < c + b

a – c < b < a + b

a – b < c < a + b

Basta che vengano garantite le sole condizioni sufficienti relative alla somma, per ottimizzare

l’algoritmo: a < c + b

b < a + b

c < a + b

Quindi una versione successiva al progetto “triangolo”, dovrebbe introdurre il blocco di controllo in

cui la condizione del teorema della disuguaglianza triangolare deve testare i tre dati di ingresso, e

mandare in esecuzione il programma solo nel caso di condizione sufficiente verificata.

Quindi il progetto “triangolo” riportato in figura presenta un baco, infatti ad esempio se si danno

come dati di input i tre numeri 1, 2 e 3 l’output è “ il triangolo è scaleno”, mentre dovrebbe essere “i

tre segmenti di misura 1, 2 e 3 non costituiscono i lati di un triangolo”.

ALGORITMI

Sono due le ipotesi dell’etimologia della parola algoritmo:

per una prima ipotesi il termine algoritmo deriva da algorismo, che indica il processo di

• calcolo con i numeri arabi, descritta dall’opera del matematico El-Khwarizmi;

secondo un’altra ipotesi il termine algoritmo deriva dalla deformazione del nome stesso del

• matematico El-Khwarizmi.

Quindi il termine algoritmo è legato a un procedimento aritmetico legato ad operazioni tra numeri

in sistema posizionale oppure al nome del matematico arabo ideatore. 4  

 

In realtà un algoritmo è un procedimento finito non ambiguo, che descrive e risolve uno specifico

problema accogliendo dei dati di input ed elabora i risultato esplicitandolo in dati output.

Fondamentale è dunque formalizzare un algoritmo, il metodo più usato è quello del flowchart, ossia

un diagramma di flusso e una forma grafica, in cui ad ogni blocco corrisponde una funzione

elementare.

Il primo passo fondamentale per una programmazione efficiente è appunto tradurre il problema nel

linguaggio universale rappresentato dal flowchart dell’algoritmo corrispondente, individuando i dati

iniziali e finali con la sequenza di azioni elementari.

Nella seguente tabella è riportato qualche blocco del diagramma di flusso con il corrispondente

blocco di SCRATCH

TIPO DI ISTRUZIONE SIMBOLO BLOCCO SCRATCH

Azione

Comunicazione

d’ingresso i:  

Comunicazione di uscita o:  

Controllo condizionale  

Inizio algoritmo inizio  

Fine algoritmo fine   5  

 

ESEMPIO DI PROGETTO SCRATCH PER ALUNNI DELLA SCUOLA PRIMARIA

Con SCRATCH si possono implementare dei videogiochi, ad esempio si può creare il gioco del

pong, con gli sprite palllina e lacchetta (si può disegnare una barretta).

Per iniziare a familiarizzare con l’ambiente di sviluppo di SCRATCH, i bambini posso creare un’

animazione semplicissima che è quella dell’acquario.

Con questa animazione si inizia a prendere dimestichezza con gli sprite e le istruzioni di

movimento.

Si inizia cancellando dallo stage lo sprite del gatto (con il bottone forbici) e si scelgono dalla

libreria degli sprite i pesciolini che vengono così inseriti nello stage.

In questo progetto si inseriscono tre sprite pesci, ma i bambini si posso divertire a inserire anche gli

sprite sub, oppure granchio e stella marina o ancora meglio possono disegnare dei nuovi pesci.

Poi dalla libreria degli sfondi si può scegliere uno sfondo underwater.

A questo punto selezionando uno sprite alla volta si può scrivere lo script corrispondente, tre script

per ciascun pesciolino, al cui interno si trovano le istruzioni “fai … passi”, “rimbalza quando tocchi

il bordo”, “attendi … secondi”, si possono combinare queste istruzioni in modo diverso nei tre

pesciolini per notare le differenze di movimento;

tali istruzioni vanno inserite nella istruzione di controllo per sempre, ovviamente concatenata alla

istruzione che lancia in esecuzione il programma quando si clicca sulla bandierina verde.

Con un’animazione così semplice i bambini iniziano a familiarizzare con l’ambiente di sviluppo,

importante e andare a impostare lo stile di rotazione dello sprite andando a cliccare sulla i in alto a

destra allo sprite (informazione), si può ad esempio impostare la direzione a 102° per avere un

6  

 

movimento trasversale e non orizzontale;

importante è flaggare la doppia freccetta per fare muove il pesce a sinistra e destra, e non la freccia

circolare che ribalterebbe il pesce a testa in giù al rimbalzo.

Ovviamente dopo il primo approccio i bambini saranno liberi di dare avvio alla propria creatività,

inserendo anche dei messaggi vocali da assegnare allo sprite, al fine di costruire dei cartoni animati.

Andando nella cartella Sounds centrale, è possibile registrare una traccia sonora e nominarla;

poi la si può mandare in esecuzione richiamandola col nome assegnato mediante il blocco produci

suono appartenete alla categoria Sound in fuxia, così facendo si può dare voce agli sprite.

Un altro programma semplice che usa le funzioni di movimento è il progetto riportato in alto in

figura, in cui si usano i blocchi penna (mattoncini in verde) per disegnare un quadrato di lato 200

pixel, il blocco pen down scrive, il blocco pen up non scrive mentre il blocco clear cancella il

disegno tracciato. 7  

 

PROGRAMMI PER ALUNNI DELLA SCUOLA SECONDARIA DI PRIMO GRADO

Con gli studenti delle scuole medie si possono risolvere semplici problemi di matematica, come ad

esempio il calcolo della media aritmetica oppure l’area del triangoli.

L’algoritmo della media di tre numeri A,B,C dati in input è rappresentato dal seguente flowchart:

L’approccio alla programmazione con SCRATCH è immediato, programmare diventa un’avventura

stimolate, che non disorienta assolutamente i bambini; impensabile sarebbe per loro implementare

l’algoritmo della media con linguaggio di programmazione tipo il PASCAL oppure il C, con una

sintassi complessa.

Di seguito vengono riportati i codici in Pascal, C e SCRATCH dell’algoritmo della media.

In Pascal il programma si divide in tre parti:

intestazione

• dichiarazione delle variabili

• corpo del programma: le istruzioni sono inserite fra le parole “begin” e “end.”

La punteggiatura è fondamentale, si usa il punto e virgola ; (come in C) alla fine di ogni istruzione

(riga), mentre dopo il begin non ci vuole la punteggiatura, mentre dopo l’end finale non si deve

dimenticare il punto. 8  

 

Al posto del begin end nel C si usano la coppia delle parentesi graffe mentre nel Pascal le

{},

parentesi graffe racchiudono dei commenti: in Pacal} oppure (*commento in Pascal*);

{commento

mentre in C per il commento si usa il simbolo di slash nel modo seguente:

/* commento in C */

// commento in C

Le istruzioni di input sono: read (in linguaggio Pascal) mentre scanf (in linguaggio C);

Le istruzioni di output sono: write (in linguaggio Pascal) mentre printf (in linguaggio C).

Codifica dell’algoritmo della media in linguaggio Pascal

program Media;

var A,B,C,Media: real;

begin write (‘dammi il primo numero: ‘);

readln (A);

write (‘dammi il secondo numero: ‘);

readln (B);

write (‘dammi il terzo numero: ‘);

readln (C);

Media:=(A+B+C)/3;

writeln (‘La media è: ‘, Media);

end. Codifica dell’algoritmo della media in linguaggio C

#include<stdio.h>

{ float A,B,C,Media;

printf (“dammi il primo numero: ”);

scanf (“%f”,&A);

printf (“dammi il secondo numero: ”);

scanf (“%f”,&B);

printf (“dammi il rerzo numero: ”);

scanf (“%f”,&C);

Media=(A+B+C)/3;

printf (“La media è: %3.2f”,Media);

return 0;

} 9  

 

Codifica dell’algoritmo della media con SCRATCH

Con la tecnica del drag and drop, usando i blocchi SCRATCH come se fossero dei mattoncini dei

LEGO, si costruire il seguente codice che implementa l’algoritmo che prende in input tre numeri e

ne restituisce la loro media.

ESEMPIO DI PROGETTO SCRATCH PER ALUNNI DELLA SCUOLA SECONDARIA DI

SECONDO GRADO

Il codice che disegna il quadrato si può ottenere

in forma più compatta con l’istruzione ripeti un

numero finito di volte, nel caso del quadrato 4

volte.

Si può disegnare un qualsiasi poligono regolare

di n lati ripetendo l’istruzione repeat n volte e

facendo ruotare di nel numero appropriato di

gradi.

Ad esempio per tracciare un triangolo il blocco

d’istruzione blu muovi 100 passi e ruota 120° va

ripetuta 3 volte.

Si possono usare due cicli repeat annidati per realizzare un programma che disegna un triangolo che

ruota intorno ad un centro, ad esempio nel progetto “arcobaleno” riportato di seguito vengono

10  

 

tracciati 24 triangolo di colori diversi usando il blocco cambia il colore della penna.

Si è dunque gradualmente passati da semplici animazioni, tipo quella dell’aquario, ad

un’animazione che applica un algoritmo semplice ed elegante fondato su conoscenze geometriche.

Analizziamo l’algoritmo “triangolo” che prende in ingresso le misure dei lati di un triangolo e in

output ne classifica la tipologia, ossia restituisce “equilatero”, “isoscele” oppure “scaleno”.

Si usa la struttura della selezione doppia con gli operatori booleani.

L’istruzione di doppia selezione permette di far eseguire alternativamente alcune istruzioni in base

al valore (vero o falso) della istruzione test (o condizione): se l’esito è positivo (vero) si esegue la

istruzione del ramo di sinistra (istruzione 1), se invece è negativo (falso) si esegue l’istruzione nel

ramo di destra (istruzione 2). Il diagramma di flusso

dell’istruzione di selezione doppia,

Dettagli
15 pagine
7 download