Introduzione alla programmazione. teorema di Bohm Jacopini

Ischool 2015/16

lezione di informatica, Marcello Cenati


Argomento: Primi passi nella programmazione dei calcolatori


Per chi: indirizzata al primo anno grafica e comunicazione

Lezione: I tre principi base della programmazione strutturata (teorema di Bohm-Jacopini, 1966)
  • sequenza di operazioni
  • decisione sulla base di una condizione (vera o falsa)
  • ripetizioni di operazioni

lo sappiamo già!
nonostante siano concetti utilizzati tutti i giorni fin da piccoli, non sono mai stati formalizzati prima probabilmente.
Ancor più incredibile: con questi tre semplici concetti di logica si possono costruire TUTTI i possibili algoritmi e programmi, anche i più complessi, dalle app del meteo sui telefoni che abbiamo in tasca ai programmi di gestione aziendale, di disegno tecnico, o per mandare l'uomo su Marte...
Il teorema di Bohm-Jacopini, che nonostante i cognomi sono due informatici italiani, dice proprio questo. Non poco.

Fonte accademica, complessa assai, solo come riferimento. Paper degli autori: Flow Diagrams, Turing Machines And Languages With Only Two Formation Rules. Corrado Bohm and Giuseppe Jacopini, International Computation Centre and Istituto Nazionale per le Applicazioni del Calcolo, Roma, Italy http://www.cs.unibo.it/~martini/PP/bohm-jac.pdf

Fonte divulgativa, leggibile dai ragazzi:


Basi pedagogiche e risorsa primaria:
piattaforma di sviluppo di software SCRATCH (imparare da zero, “from scratch”) sviluppata e ospitata presso il M.I.T. di Boston. Http://scratch.mit.edu
Si tratta di un sistema intuitivo e visuale basato sulle ricerche di Seymour Papert creatore del linguaggio LOGO e del concetto di costruzionismo nell'apprendimento.
In questo ambito i concetti sono sperimentati direttamente dai ragazzi che apprendono grazie alla possibilità di realizzare “artefatti cognitivi”. (ASTRAZIONE LOGICA E CONCRETO)

Sulla base di principi logici e matematici rigorosi gli studenti sono sollecitati a provare, sbagliare, riprovare esperienze di creazione di oggetti interattivi, quali per esempio un semplice gioco didattico. (DIVERTIMENTO).
L'errore e la sua gestione autonoma o guidata è un elemento cruciale di questa attività di apprendimento. “...Proviamo profe!”, Gorghe. (UTILITA' DELL'ERRORE e TENTAR NON NUOCE).

Citazione del motto all'entrata di Google: “sbaglia presto, sbaglia spesso”. Strano ma è così,
e del “payoff” di Wired Italia: “Inventa, Sbaglia, Innova”


Risorse di riferimento:
  • il progetto Computer Science First di Google, con video didattici per la costruzione passo passo dei primi progetti interattivi. Oltre ai video (in inglese, difficile!... ma con ampie e ben fatte schermate riepilogative) è a disposizione un riepilogo stampato in formato PDF. (DIVERSITA' DI CANALI). L'esercitazione è guidata passo passo e si può eseguire in autonomia, seppur con il costante supporto di compagni (a destra, a sinistra e alzandosi anche più là in lab...) e dell'insegnante per problemi che non si riescono a risolvere...
  • Si usa come luogo di riferimento per le informazioni, comprese le consegne, i tempi, le dritte e i collegamenti alle risorse web, il blog di classe: http://cenatiscuola.blogspot.it/2016/01/sport-estremi-in-scratch.html


Esercitazione, durata: 2 ore da svolgersi in laboratorio dotato di calcolatori e connessione al web

Finalità: introduzione alla programmazione e al teorema di Bohm-Jacopini

Obiettivo: creare un progetto interattivo in linguaggio scratch in grado di simulare un ragazzo impegnato in sport estremi: su uno skateboard deve evitare tutti gli ostacoli che si parano incontro!

Obiettivi di apprendimento e socializzazione:
  • comprendere le tre strutture base della programmazione,
  • prendere familiarità con l'ambiente di sviluppo scratch,
  • saper chiedere e offrire supporto ai propri compagni per attività di sviluppo,
  • comprendere il valore della condivisione del proprio lavoro, in questo caso nella comunità di scratch, da cui prenderemo esempi condivisi da altri utenti come noi...

Difficoltà riscontrate e cambiamenti in corso:
  • video in lingua inglese, con sottotitoli in inglese. Ho dovuto aggiungere il supporto del materiale stampato, disponibile in pdf sul blog di classe.
  • grande diversità nella velocità di esecuzione e comprensione. I più veloci hanno poi aiutato gli altri...
  • davvero realizzato in due ore dai più: aggiunti altri livelli di difficoltà
  • alcuni problemi di collegamento internet...

Sorprese +:
  • Grande varietà nella realizzazione della consegna!
  • Forte riscontro nell'aiuto tra pari
  • entusiasmo per le realizzazioni, soprattutto grazie alla interattività
  • buona soglia di tenuta nell'ascolto dei video in inglese, nonostante la difficoltà


Esempio realizzato (2 ore): https://scratch.mit.edu/projects/93550441/
altro esempio del progetto, rivisitato per personaggio e ostacoli (4 ore): https://scratch.mit.edu/projects/94591751/