LINGUAGGIO DI PROGRAMMAZIONE FACILE da Code.org (2) Computational thinking – Pensiero computazionale

Prosegue il percorso alla scoperta del linguaggio di programmazione. Dopo la prima lezione introduttiva passiamo nel vivo della scoperta. In questa lezione gli alunni potranno imparare in 4 semplici passaggi il pensiero computazionale usando solo carta e pennarelli. Ad una semplice e breve introduzione seguirà un lavoro di gruppo in cui gli studenti avranno modo di imparare ad elaborare una serie di istruzioni utili a disegnare un mostro. Il compito, per essere risolto al meglio, dovrà essere scomposto in unità semplificate che costringono all’utilizzo del pensiero computazionale e permettono una riflessione sulla possibilità di riutilizzarlo in caso di problemi simili.

Obbiettivi: gli studenti impareranno in quattro passaggi il pensiero computazionale.

Materiali: catalogo dei mostri per gruppo; fogli di carta bianca (1 per gruppo); pennarelli, penne e matite; forbici e colla.

Preparazione: stampare il catalogo dei mostri (lo trovate alla pagina 7 della lezione Computational Thinking su Code.org oppure potete crearne uno voi o i vostri alunni).  Le facce dei mostri (solo la forma senza i particolari) dovranno essere stampate su foglio bianco mentre le varie parti del volto su carta trasparente (i lucidi vanno bene) o su carta bianca che andrà ritagliata per ogni parte. Raccogliere tutte le parti del mostro e distribuirle per gruppo con forbici, pennarelli e colla.

Scrivere alla lavagna le parole chiave.

VOCABOLI:

Computational thinking (pensiero computazionale): metodo per la risoluzione di problemi che permette ai programmatori di predisporre delle soluzioni digitali.

Abstraction (astrazione, generalizzazione): rimuovere gli aspetti caratteristici di un problema reale per poterne sfruttare la soluzione per altri simili.

Algorithm (algoritmo): una lista di passaggi, o istruzioni, che permette di eseguire un compito.

Decompose (scomporre): frazionare un problema complesso in problemi più piccoli e semplici.

Pattern (schema): schema o percorso che può essere ripetuto tante volte.

Program (programma): istruzioni che possono essere comprese e eseguite da una macchina.

COME PROCEDERE.

  1. Richiamare alla memoria i contenuti già appresi nelle attività predisposte sul percorso di programmazione in code.org IL LABIRINTO con delle semplici domande:
    • Cosa intendiamo con “ripetizione” o “blocchi” di programmazione?
    • Quando usiamo il blocco “IF”? – Usiamo il blocco IF (SE) quando si verifica o meno una condizione e per quella condizione dobbiame seguire un’istruzione precisa.
    • Vi viene in mente un esempio in cui poter usare il blocco IF/ELSE o solo quello IF? Ad esempio “SE c’è strada a destra gira a destra ALTRIMENTI prosegui dritto”.
    • Se non si è svolto il percorso del Labirinto richiamare i contenuti appresi durante la lezione sul codice binario.
  2. Come introdurre la lezione.
    • “Oggi lavoreremo tutti insieme proprio come fanno i programmatori quando devono risolvere un problema e trovare soluzioni ottimali per portare avanti un compito da sottoporre alla macchina. Impareremo a utilizzare l’algoritmo per creare il programma in grado di risolvere il nostro “problema” o meglio… soddisfare una nostra necessità”.
    • Sfondo integratore: Il pianeta Zuron. Problema: “Abbiamo bisogno di descrivere al meglio i mostri del Pianeta Zuron in modo che gli altri possano individuarli e disegnarli. I mostri sono tutti diversi ma abbiamo un campionario con le caratteristiche salienti del volto di ognuno”.
    • Come eseguire il nostro compito: “Per portare a termine la nostra missione utilizzeremo il pensiero computazionale e avremo bisogno di applicare quattro semplici passaggi per poterlo sviluppare al meglio. Oggi lo applicheremo a questo problema ma vi accorgerete che una volta acquisito il metodo sarà possibile applicarlo anche per risolvere situazioni simili”.
    • Passaggi da seguire:

Step1: Decompose –  Non parleremo di mostri ma di caratteristiche del mostro. Dobbiamo immaginare il mostro come un problema complesso e le sue caratteristiche fisiognomiche (occhi, naso, bocca) come dei piccoli problemi più semplici. Ecco, nel metodo computazionale è necessario imparare a scindere un grande problema (coplesso da risolvere) in tanti altri problemi più piccoli (molto più semplici da affrontare).

Step2. Patterns – Qualche volta, quando il problema viene suddiviso in tanti altri più piccoli, ci rendiamo conto che tra di essi hanno qualcosa in comune. Se non lo notiamo possiamo comunque concentrarci per trovare degli aspetti e delle soluzione simili a problemi che abbiamo già risolto prima. Se si riesce ad entrare subito in merito a questo schema ci si renderà conto che la soluzione del problema è molto più veloce e diretta. Si tratta di fare dell’esperienza già acquisita uno strumento per risolvere dei nuovi problemi simili. Lo schema da utilizzare infatti è spesso lo stesso o molto simile. Impariamo a farci le domande chiave che ci consentono di arrivare a delle soluzioni.

Step3. Abstraction – Una volta individuato lo schema da adottare ci si può astrarre dal problema risolto in precedenza che ci ha fatto arrivare allo schema, ignorando i dettagli del primo per concentrarci sui dettagli del nuovo e applicarli al contesto di riferimento.

Step4. Algorithms – Quando si è giunti ad una soluzione completa si procede scrivendo il percorso da seguire per attivare il processo di risoluzione al problema. Si tratta di scrivere una serie di semplici indicazioni-passaggi (ISTRUZIONI) che portano alla risoluzione del compito.

ATTIVITÀ: CREA IL MOSTRO

Ogni gruppo attingerà le informazioni necessarie dal catalogo dei mostri scegliendo poi quali parti utilizzare per farlo individuare e disegnare ad un altro gruppo. Dovrà quindi cercare le istruzioni necessarie da far eseguire ad altri per arrivare allo stesso risultato. Il mostro pensato dal gruppo1, con quelle precise caratteristiche, dovrà essere perciò disegnato dal gruppo2 solo attraverso l’esecuzione di una serie di istruzioni. È fondamentale che ogni gruppo operi in modo che gli altri non sappiano quale mostro hanno pensato. Il lavoro di ogni gruppo dev’essere salvaguardato in modo che gli altri non scoprano e vedano quale mostro è stato scelto. Dopo di che si procede con i quattro passaggi anticipati precedentemente.

  1. Scomposizione: Cosa è necessario fare per disegnare il nostro mostro?

                Dipende dal mostro e dalle sue caratteristiche. Per individuarle è necessario concentrarsi su ogni piccolo dettaglio (forma del viso, occhi, bocca… ecc). Dobbiamo metterci nei panni di chi dovrà creare il mostro partendo dalle nostre indicazioni, quindi pensare semplici istruzioni che riconducano al mostro che noi abbiamo pensato e disegnato per primi.

Ad esempio: riordinare i mostri per forma del viso; individuare le somiglianze tra mostri; fare una lista delle caratteristiche identificative; usare queste caratteristiche per creare un nuovo mostro; descrivere il nuovo mostro ai compagni di squadra in una serie di passaggi e verificare che alla fine il mostro disegnato sia esattamente quello pensato inizialmente.

  1. Schemi: Cosa hanno questi mostri in comune? Ci sono alcune parti che tutti i mostri possiedono? Ci sono delle somiglianze tra mostri di diverse categorie?

Ad esempio: tutti i mostri hanno le teste… Zombus Vegitas ha una bocca Vegitas, ecc.

  1. Astrazione: un mostro può avere Wacktus Eyes mentre un altro ha Spritem Eyes… ma comunque entrambi hanno degli occhi. Ciò significa ovviamente che i mostri hanno gli occhi e noi dobbiamo essere abili nel dare le istruzioni che conducano alla creazione di quel particolare mostro.

Ad esempio: può essere utile creare una lista di differenti caratteristiche aiutandoci con semplici frasi da completare di questo tipo à Il mostro ha una  testa ________.

  1. Algoritmo: come puoi mettere insieme queste informazioni in modo da farle diventare istruzioni da seguire per far disegnare il mostro? Ciascun gruppo dovrà pensare e scrivere le istruzioni da dare ad un altro gruppo in modo che venga disegnato il mostro che desiderano.

Ad esempio: Disegna una testa Vegitas; disegna un naso Spritem, ecc…

Gli studenti testeranno su di loro l’algoritmo  e verificheranno che vada bene. Dopo di che passeranno l’algoritmo ad un altro gruppo e seguiranno le istruzioni dell’algoritmo che gli è stato proposto per creare un altro mostro.

Per costruire il mostro possiamo usare le fotocopie disponibili nel catalogo o inventarne di nuove. Possiamo anche chiedere ai nostri alunni di inventare loro stessi il catalogo. Per scomporre e ricomporre il mostro possiamo lavorare o con matita e pennarelli (disegnando ogni volta le caratteristiche e il mostro) oppure possiamo usare i particolari del volto ritagliati e poi assemblati.

One Comment on “LINGUAGGIO DI PROGRAMMAZIONE FACILE da Code.org (2) Computational thinking – Pensiero computazionale”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *