lunedì 8 maggio 2017

Imprinting informatico

Questo articolo nasce da uno scambio di mail col professor Antonino Saggio a seguito della lezione del corso ITCAAD 2017: "Costruzione Vettoriale del mondo"


"Caro Professore,
durante queste ultime lezioni del corso mi è tornato in mente un ricordo di quando ero bambino e le ore di informatica erano tra le mie preferite alle scuole elementari. 
La dotazione dell'istituto erano dei vecchi commodore 64 (parliamo del 1993-1994 circa) ma a noi alunni sembravano la cosa più divertente del mondo.

Commodore 64

La spiegazione di quel grande entusiasmo e trepidante attesa dell'arrivo del maestro è presto detto: all'epoca, infatti, quasi nessuno di noi scolari possedeva un personal computer a casa e solo alcuni "fortunati" potevano già divertirsi a navigare con quello del padre o di qualche fratello maggiore. L'unica cosa simile ad un personal computer a cui potevo avvicinarmi fuori dall'orario scolastico, era un vecchio AMIGA di uno zio più grande, già talmente vecchio da poter essere usato con i suoi videogiochi, contenuti in floppy disk da 3.5 mb.

A scuola, invece, il maestro ci faceva divertire e lavorare con il linguaggio LOGO che ereditava le tecniche di calcolo simbolico del Lisp ed era un linguaggio di programmazione grafica fortemente orientato alla grafica e alla geometria di base.
L'elemento rappresentativo di tale ambiente è la classica tartaruga: uno sprite a forma di triangolo, che si muove nello schermo secondo i comandi che gli vengono impartiti. Nel muoversi, essa lascia una traccia che andrà a costituire il disegno dell’utente.
La tartaruga è richiamabile a schermo tramite il comando mostarta ("mostarda" nel nostro linguaggio tecnico di bambini) e tramite i comandi sulapenna o giùlapenna è possibile ordinarle di prepararsi a scrivere sullo schermo oppure no. Il comando tana consente invece di riportarla al centro dello schermo e questo è molto importante da fare ogni volta si conclude un lavoro perché, come ci veniva detto, "il bravo studente fa tornare sempre la tartaruga nella sua tana!"

Lo schermo nel quale essa si muove è diviso in due modalità grafiche: in alto, la modalità bit-map alta risoluzione; in basso, la modalità testo alta risoluzione. La nostra tartaruga, come intuibile dall'immagine sottostante, è quello sprite bianco triangolare posto al centro dello schermo.

La tartaruga

Nell’ambiente LOGO, per disegnare occorre comunicare alla tartaruga il proprio angolo di inclinazione rispetto alla sua posizione corrente (angolo di rotazione relativo) e di quanti passi deve spostarsi. La geometria della tartaruga si differenzia, quindi, dal modo tradizionale di disegnare al computer perché descrive i percorsi "dall'interno" piuttosto che "dall'esterno" o "dall'alto". Ad esempio dicendo "gira a destra" non si esprime una direzione assoluta, ma una direzione relativa all'orientamento corrente della tartaruga, dicendo "vai avanti di 10 passi" ci si riferisce alla posizione e alla direzione correnti. A livello didattico questo è molto importante perché è vicino all'esperienza umana di movimento dello spazio, dove è il corpo il nostro sistema relativo di riferimento.

Così, volendo orientare la tartaruga di 90° a destra (rotazione in senso orario), utilizzeremo il seguente comando:

DESTRA 90

A questo punto, se vogliamo fare avanzare la tartaruga di 60 passi dobbiamo usare il comando AVANTI, come segue: AVANTI 60



Una volta incamerate queste nozioni di base costruire una qualsiasi forma geometrica è facilissimo. Dopo aver realizzato questo primo segmento di 60 pixel è possibile disegnare un quadrato con pochi altri comandi:

DESTRA 90

AVANTI 60

DESTRA 90

AVANTI 60

DESTRA 90

AVANTI 60

Sullo schermo vedremo costruirsi passo dopo passo il nostro quadrato di lato 60 e, una volta appreso questo, potrei muoverci verso forme e formule sempre più complesse. Possiamo, ad esempio, inserire delle serie (tramite il comando ripeti) per velocizzare determinate operazioni come la creazione di moduli (una riga di comando tipo è questa: giù ripeti 4 [avanti 40 giradestra avanti 40 girasinistra])


Questa peculiarità fa si che la dicitura "programma", nel LOGO, è da ritenersi impropria. Il linguaggio vede ciascun programma come una nuova istruzione, che si aggiunge a quelle preesistenti (dette "primitive"); così, si è soliti affermare che un programma scritto dall’utente costituisce una nuova primitiva, e cioè una procedura. Questa sarà richiamabile in ogni momento dall’utente, specificandone il nome e di seguito l’eventuale argomento. Quindi anche la tartaruga impara, come noi ha una "aula" dove studia (la pagina delle procedure), ed è una brava tartaruga perchè non dimentica ciò che impara!

Da ciò emerge come il linguaggio possa essere ampliato con una facilità eclatante. E’ da osservare, infatti, come la procedura QUADRATO sia una nuova istruzione a tutti gli effetti e possa essere usata anche all’interno di un qualsiasi altro "programma".


Esempio di varianti ottenute dalla forma "quadrato"


Il LOGO ci consente, una volta diventati "esperti", di lanciarci anche nella creazione di forme curve con enorme facilità. Per far questo bisogna padroneggiare la geometria di base, capendo cosa sia un "angolo", e imparare come si possa scrivere una procedura che ci consenta di disegnare facilmente dei poligoni regolari in modo di approssimare nel miglior modo possibile una linea curva. Tutti questi step dimostrano le potenzialità didattiche del LOGO e perché, nei programmi scolastici della mia generazione, veniva fortemente usato per fornire una prima alfabetizzazione informatica ai più piccoli che lo utilizzavano di pari passo alle prime nozioni di algebra e geometria.

Partiamo quindi da un pentagono. La linea di comando per disegnare un pentagono è: ripeti 5 [ avanti 100 destra 360 / 5 ] che, tradotto, vuol dire: disegna 5 segmenti di lunghezza 100 px e, ogni volta, ruota a destra di 72° (i gradi si esprimono in numeri). Una volta dato il comando ENTER se non si è commesso nessun errore la figura che uscirà fuori sarà quella sottostante.

Pentagono LOGO



Prima o poi gli alunni, sperimentando a creare figure con sempre più complesse, capiranno che aumentando il numero dei lati (diminuendone la lunghezza, pena il non veder la propria figura pochi troppo grande per lo schermo bitmap) realizzeranno un cerchio, la cui formula è: ripeti 360 [ avanti 2  destra 360 / 360 ], e sarà loro chiaro come il cerchio non sia altro che quella figura che la tartaruga disegna quando avanza cambiando continuamente direzione (e cioè la definizione geometrica di una linea curva).

Il cerchio

Queste brevi nozioni servivano, oltre che per spiegare a tutti cosa sia il linguaggio logo, a prendervi per mano e trascinarvi nel mio mondo d'infanzia.
La scorsa lezione del corso mi ha riportato proprio indietro a quegli anni. Non so perché sia successo proprio ora (non è la prima volta, infatti, che partecipo al corso ITCAAD; l'ho fatto da studente e più volte come assistente) ma è stato un cortocircuito improvviso che ha riacceso in me un ricordo, un IMPRINTING informatico, sopito ma mai scomparso, che mi ha riportato ad un "luogo della memoria" (stavolta digitale). 
È curioso come ciò sia successo a distanza di tutti questi anni e mi domando in chissà quale modo questo imprinting abbia strutturato tanti miei percorsi cognitivi (e formativi) e mi abbia portato fin qui. Forse a oggi il come non è importante, ciò che conta è, più o meno coscientemente, essermi lasciato guidare da questo in modo imprevedibile."

P.S. Allego inoltre la tabella dei comandi base del LOGO. Come già detto essendo un linguaggio di programma se ne possono creare molti altri e gestire le proprie liste di comandi.

Comandi base



Nessun commento:

Posta un commento