LEZIONI E FORMAZIONE DAI DOCENTI PER I DOCENTI

Scopri WeTurtle, la community di educatori dove trovare e condividere risorse innovative

home - progetti - Dagli algoritmi su carta ad Arduino: un percorso di crittografia a scuola! - Il Cifrario di Cesare con Scratch (o Python)

Il Cifrario di Cesare con Scratch (o Python)

Tempi

Tempo stimato per la lezione in classe: 2.00 h

Strumenti

  • LIM o proiettore
  • Computer per il docente
  • Materiali di consumo (penne, fogli, post-it)
  • Un computer ogni 2 studenti
  • Scratch 3 (o versioni precedenti)
Qualora voleste sviluppare l’algoritmo in Python potreste usare la IDLE standard oppure un ambiente come Visual Studio Code.

Ancora non sei iscritto? Diventa una tartaruga digitale con centinaia di docenti da tutta Italia.

ISCRIVITI SUBITO!

Linee guida delle attività

Prerequisiti

Per realizzare questa attività in classe è necessario che gli studenti abbiano familiarità nell’utilizzo di Scratch (o nella programmazione in Python) e con i principali concetti della programmazione:

  • Esecuzione sequenziali di istruzioni
  • Esecuzione ciclica di istruzioni
  • Esecuzione condizionale di istruzioni
  • Gestione di variabili, liste (o array in Python)
  • Sincronizzazione tramite messaggi (tipica di Scratch)
Trovi un percorso introduttivo a Scratch nella sezione ebook di Weturtle, con la traduzione in italiano del curriculum "Creative Computing" (Programmazione Creativa) proposto da Karen Brennan, Christan Balch e Michelle Chung della Harvard Graduate School of Education.

La lezione

Nella lezione precedente abbiamo gettato le basi per poter creare un corretto algoritmo in Scratch o in Python che replici il Cifrario di Cesare!

La sfida da proporre potrebbe essere questa: abbiamo sperimentato il Cifrario di Cesare con carta e penna… riusciamo a implementarlo in modo che sia il PC a fare questo lavoro di traduzione?

Ecco il risultato finale della nostra implementazione:


Nell’immagine precedente abbiamo rappresentato questa lezione secondo lo schema TMI (Think, Make, Improve) proposte da Stager e Martinez:

Si parte con la fase Think (circa 15 minuti), in cui agli studenti viene proposta la sfida, così che possano pianificare le azioni da compiere per la progettazione, analizzare i diagrammi e gli appunti precedenti, fare brainstorming;
Si prosegue con la fase Make (circa 80 minuti), in cui gli studenti provano ad arrivare ad una prima versione del progetto programmando in Scratch;
Si arriva alla fase Improve (circa 20 minuti), in cui gli studenti presentano i progetti ai compagni e all’insegnante, ascoltando feedback e consigli, cercando di raccogliere gli spunti per migliorare il progetto (o risolvere i bug qualora ci fossero problemi nel funzionamento).
Potresti far ripartire gli studenti dai diagrammi, dagli schemi, dagli appunti dell’attività precedente.

Dopo aver ripassato i concetti alla base del cifrario, si parte con la progettazione / programmazione! Gli studenti divisi in coppie potranno lavorare con l’obiettivo di arrivare ad un programma funzionante da presentare al resto della classe.

Partiamo da Scratch: ecco una possibile implementazione del Cifrario di Cesare!

Nota bene: questa è solo UNA POSSIBILE SOLUZIONE, quindi lascia sperimentare i tuoi studenti! Magari troveranno altre strade per arrivare a progettare un cifrario in Scratch.

Abbiamo creato un progetto con due personaggi (il gatto e il robot).
Il personaggio gatto ha uno script molto semplice, in quanto chiede la chiave per la cifratura (cioè lo scorrimento) e la frase da criptare:

Il lavoro “sporco” viene fatto dal robot, caratterizzato da questi due script:

La stessa modalità di lavoro espressa in precedenza (l’immagine con lo schema TMI) potrebbe essere applicata se gli studenti sviluppano in Python.

Una possibile soluzione in Python è la seguente:

Non entriamo nei dettagli tecnici dello sviluppo in Python, come detto in precedenza per chi sceglie questa strada è necessario come prerequisito la conoscenza di questo linguaggio di programmazione (magari, in futuro, su Weturtle ci sarà un percorso di introduzione a questo linguaggio).

Ecco il risultato nel terminal di Visual Studio Code della nostra soluzione:

Vuoi leggere la lezione quando vuoi, anche offline?



Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!