.(Scuola viva, n.4, marzo 1992,
Società Editrice Internazionale, Torino)
Si può introdurre l’informatica
attraverso l’italiano? Riandiamo al significato del termine: trattazione
automatica delle informazioni. Di informazioni si parla nell’insegnamento di
italiano, precisamente all’interno del tema, più generale, della
comunicazione. Alla comunicazione le grammatiche dedicano largo spazio dopo
l’ultima stesura dei programmi: è una conseguenza delle nuove teorie
linguistiche, al cui sviluppo hanno concorso anche centri di ricerca in
informatica. In varie forme nelle grammatiche viene proposto lo schema di Roman
Jakobson che descrive, come è noto, rapporti comunicativi non soltanto del
tipo uomo uomo. Ma in informatica in pratica che si fa? Si trasmettono
informazioni a una macchina, gliele si fa lavorare (elaborare) e dalla macchina
si riceve il prodotto finito, cioè ancora informazioni.
Non è possibile comunicare
con una macchina in lingua naturale. Occorre necessariamente ridurne la
complessità e la ricchezza vincolandola alle condizioni di un qualche linguaggio
artificiale. Il PROLOG è uno di questi: rispetto ad altri costringe, a nostro
avviso, ad adattamenti meno forzosi, cioè non ci obbliga ad allontanarci
troppo dagli schemi cui siamo più abituati. Vediamo. Noi, nei nostri rapporti
comunicativi ordinari, per trasmettere conoscenze elementari prodotte dalla
nostra mente adoperiamo frasi del tipo
* il
ferro è pesante
per indicare le proprietà delle
cose (e cioè per dividerle in categorie), ed adoperiamo frasi del
tipo
* la
ruggine corrode il ferro
per stabilire un legame fra le
cose.
In ciascun caso è il verbo che
regge tutto: o come predicato nominale o come predicato verbale. Ebbene? Per
tradurre in PROLOG basta isolare il verbo e poi elencare le cose. Proprio così:
è_pesante(ferro).
corrode(ruggine,ferro).
Ecco due frasi PROLOG. E’ facile
esprimere conoscenze in PROLOG. Il computer le riceve attraverso la tastiera, le
sistema in un magazzino o archivio ed è pronto a lavorarci su.
Poiché in tutte le materie
scolastiche si trattano conoscenze, e poiché in ogni insegnamento si lavora in
italiano (la lingua naturale è il codice di riferimento per tutti gli altri
codici), ecco che allora tutti ed in tutte le discipline possono adoperare il
computer. Il risvolto interdisciplinare è più profondo (transdisciplinarità?)
di quanto non appaia a prima vista. Lo vedremo più avanti.
Adesso è arrivato il momento
di fare una ammissione. Nella nostra scuola, non siamo arrivati all’informatica
per la strada or ora esposta, ma, come tanti del resto, abbiamo cominciato ad
occuparci di informatica nei primi anni ’80, con l’esplodere della
computermania ed anche… dei corsi detti di alfabetizzazione informatica. Ci
interessava non assecondare la moda quanto sfruttarne gli stimoli per le
finalità proprie della scuola, cioè per obiettivi formativi:
– privilegiare gli aspetti
culturali su quelli tecnici;
– coinvolgere gli insegnanti di
tutte le discipline;
– mettere da subito i ragazzi in
grado di svolgere un ruolo attivo nei confronti della macchina.
E’ possibile soddisfare tutte
queste condizioni se si utilizzano i linguaggi informatici più consueti,
quelli procedurali, quali il BASIC, il PASCAL…? Ci abbiamo provato. Non ci
siamo riusciti. Questi linguaggi si presentano come dei macina numeri: non è
facile collegare, già alle prime battute, l’informatica al suo significato
primo: trattamento automatico delle informazioni.
Il PROLOG è un linguaggio
dichiarativo, consente di trattare conoscenze da subito: tutti gli insegnanti
sono posti sullo stesso piano. Inoltre, nella riflessione sulla logica che
questa scelta comporta, si ritrovano sia gli insegnanti che provengono da una
formazione scientifica che coloro che provengono da una formazione umanistica. E
viene subito in evidenza che l’informatica non è un prodotto spurio della
nostra cultura: ne rappresenta anzi un frutto naturale, una naturale
evoluzione. Infatti chi adopera la macchina computer che parla PROLOG, ritrova
la logica, la stessa logica che ha mosso i primi passi con Aristotele, è
cresciuta nel medioevo, ha avuto un enorme sviluppo negli ultimi due secoli,
come logica matematica.
Da subito si può usare il
computer ed in modo significativo (ed utile), cioè mettendolo al nostro
servizio a lavorare nostre conoscenze e secondo le nostre specifiche esigenze.
Seguiamo questo esempio. Siamo a scuola. Abbiamo insegnanti, ragazzi, materie
e classi. Descriviamo la situazione degli insegnanti con semplici frasi del
tipo: Ricci insegna inglese in 2A, Giorgi insegna matematica in 1B ecc. Mentre
per i ragazzi: Giorgio frequenta la 1B, Maria frequenta la 2A ecc. Queste frasi
possono essere tradotte in PROLOG così:
insegna(ricci,inglese,2A).
insegna(giorgi,matematica,1B).
insegna(rippi,italiano,1B).
frequenta(giorgio,1B).
frequenta(maria,2A).
frequenta(mirco,1B).
Queste (secche) affermazioni che
descrivono un AMBIENTE vengono chiamate FATTI e costituiscono la BASE DI
CONOSCENZA su cui il computer può lavorare (da notare che non si sono adoperate
le maiuscole per una questione puramente tecnica di cui vedremo dopo il
motivo). Adesso il computer è in grado di lavorare per noi, di soddisfare le
nostre esigenze che esprimeremo attraverso frasi-domande, adoperando predicati
che già il computer conosce. Qualche esempio. Cominciamo con una domanda di
verifica: Maria frequenta la 2A? Basta tradurre la domanda in una frase PROLOG:
frequenta(maria,2A) ed ecco che il computer risponde: VERO. Il computer è in
grado di rispondere anche a domande di ricerca di un nome. Esempio: Chi
insegna matematica in 1B? Basta scrivere la domanda così: insegna(Chi,
matematica, 1B) ed ecco che abbiamo di ritorno: Chi = giorgi (bisogna solo
adoperare questa avvertenza: nel posto del nome che si va a cercare si deve
mettere una lettera maiuscola o una parola che cominci con una lettera
maiuscola). Da notare che per formulare una domanda si adoperano comunque
predicati che fanno parte della BASE DI CONOSCENZA.
Chiaramente il tutto diventa
assai più interessante se gli insegnanti, gli alunni ecc. sono tanti, anche
centinaia, anche migliaia: allora sì che il computer può dimostrare quanto è
veloce e preciso. Ecco perchè si era detto che anche i ragazzi possono da subito
svolgere un ruolo attivo nei confronti della macchina. Nel senso che sono in
grado ben presto di immettere conoscenze e interrogare la macchina. Questo noi
intendiamo per uso significativo e corretto.
Ma un altro aspetto qui ci
preme mettere in rilievo: insegnare al computer a ricavare conoscenze da
conoscenze. Cominciamo col familiarizzare con un’altra frase PROLOG. Una
particolare frase con più di un predicato, ci consentirà di tradurre anche
periodi del tipo:
se la mamma sta in casa,
Marco studia la lezione.
E’ un periodo ipotetico, detto del
primo tipo o della realtà: l’evento espresso dalla proposizione reggente (Marco
studia la lezione) si verifica nell’ipotesi che si verifichi l’evento espresso
dalla dipendente (la mamma sta in casa). Ecco come si può tradurre in
PROLOG:
studia(marco,lezione) SE
sta_in(mamma,casa).
Che leggiamo letteralmente così:
Marco studia la lezione se la mamma sta in casa. Questo tipo di frase PROLOG
viene chiamato REGOLA. Il computer è in grado di interpretarla. Ma a cosa ci
serve in pratica? Ritorniamo al nostro esempio di alunni, classi e professori.
Supponiamo di voler sapere se il Prof. Rippi è insegnante di Mirco oppure no. La
domanda si potrebbe formalizzare così: è_insegnante_di(rippi,mirco). Ma il
computer non l’accetta così formulata perchè nella BASE DI CONOSCENZA non c’è il
predicato è_insegnante_di. Allora? Si può introdurre questo predicato spiegando
al computer con una REGOLA che cosa vuol dire “essere insegnante di” e
spiegandoglielo adoperando predicati già presenti nella BASE DI CONOSCENZA. In
altre parole occorre esprimere la nuova conoscenza in termini di vecchia
conoscenza. In italiano si potrebbe dire: un professore è insegnante di un
ragazzo se insegna nella classe frequentata da quel ragazzo. O anche: un
professore è insegnante di un ragazzo se quel professore insegna in una classe e
il ragazzo frequenta quella (stessa) classe. Traducendo direttamente in PROLOG
si ha: è_insegnante_di(Professore,Ragazzo) SE insegna(Professore,*,Classe) E
frequenta(Ragazzo,Classe).
Il segno “*” sta per “qualsiasi”
materia. Adesso se arricchiamo la precedente BASE DI CONOSCENZA con l’aggiunta
di questa REGOLA, il computer è in grado di rispondere alla domanda:
è_insegnante_di(rippi,mirco). Avremo come risposta: VERO. Il computer ora è
anche in grado di fornirci ad esempio tutti gli alunni di un certo professore
(domanda: è_insegnante_di(ricci,Alunno)) o gli insegnanti di un certo alunno
(domanda:è_insegnante_di(Professore,maria)). Analogamente si potrebbe definire
la REGOLA “compagni di classe”. In pratica non esiste un limite alla
varietà e al numero di REGOLE che si possono introdurre su una BASE DI
CONOSCENZA. Non possiamo trattarne più diffusamente, in questa sede. Qui ci
siamo limitati a mostrare alcuni esempi di applicazione del PROLOG per
descrivere ed elaborare conoscenze: l’AMBIENTE è un frammento di conoscenza,
espresso mediante entità e relazioni.
Concludendo. Lavorando col
computer che parla PROLOG il ragazzo impara, ed impara ad apprendere, istruendo
e interrogando il computer, quindi svolgendo un ruolo attivo nei confronti della
macchina. E si esercita a lavorare con criteri logici anche in ambito non
necessariamente matematico. Sul piano operativo procediamo così. Non facciamo
dell’informatica un insegnamento specialistico, non ci avvaliamo di insegnanti
specializzati: fanno informatica gli insegnanti ordinari, nello spazio orario
del loro insegnamento. Così l’informatica può assumere la connotazione di
costante culturale che attraversa tutte le discipline, ad uso e beneficio di
tutte le discipline. Obiettivo minimo: far toccare con mano che il computer è
una macchina né da demonizzare né da mitizzare, ma da dominare come le altre
macchine costruite dall’uomo, a servizio e beneficio dell’uomo.
In pratica noi procediamo
così. Prima media: il computer come macchina per scrivere, utilizzando l’editor
della particolare versione di PROLOG da noi scelta; l’insegnamento di
riferimento è l’ed. tecnica. Seconda media: trattamento delle conoscenze
“nozionistiche”; le lezioni introduttive del linguaggio informatico sono svolte
dall’insegnante di italiano; seguono lezioni in compresenza: ed. tecnica,
italiano e matematica per introdurre i primisssimi programmi PROLOG. Terza
media: la regola PROLOG. Insegnamento di riferimento: matematica.
L’informatica, in questo
modo, sia pure in questa forma minima, può rientrare nella programmazione
ordinaria.
Nel nostro approccio il
computer non è utilizzato (come usualmente avviene nel caso di linguaggi
informatici di altro tipo) quale strumento rigido che guida l’apprendimento
lungo percorsi precostituiti secondo la tecnica dell’istruzione programmata,
tecnica che in genere gli insegnanti rifiutano perchè basata su teorie
dell’apprendimento ormai superate. Il computer diventa invece, nel nostro caso,
un mezzo che contribuisce a creare un ambiente che stimola la ricerca,
l’approfondimento e quindi la creatività.
INSERTO LOGICA
In pratica il computer che parla
PROLOG si presenta come una macchina che sembra in grado di risolvere questioni
del tipo: date delle affermazioni, verificare se una certa altra affermazione
(cioè la domanda) è “logicamente deducibile” dalle precedenti. Questioni di
questa natura sono e sono state oggetto di vivo interesse fin dall’antichità.
Già Aristotele aveva individuato un certo numero di forme di ragionamento
corrette, dette sillogismi. Prendiamo in esame un esempio del tipo più
ricorrente: tutti gli uomini sono mortali (I ipotesi), Socrate è un uomo (II
ipotesi), Socrate è mortale (conclusione). Ne diamo in parallelo una
rappresentazione schematica e una traduzione in PROLOG fissando l’attenzione
solo sulla forma delle proposizioni (esulando quindi dai significati) e mettendo
quindi in luce l’ossatura del ragionamento:
Tutti gli U sono M
è_mortale(P) SE è_uomo(P).
S è un
U è_uomo(socrate).
_____________________
_____________________
S è un M
In pratica dalle forme delle due
ipotesi (proposizioni sopra la riga) si ricava automaticamente la forma della
conclusione (proposizione sotto la riga), con un procedimento indipendente dal
significato delle proposizioni. Quindi il sillogismo costituisce una regola
sintattica per la connessione dimostrativa delle proposizioni, senza riguardo
del loro significato: è una regola di deduzione o inferenza.
Ebbene anche in PROLOG, come nel
sillogismo, abbiamo:
* le premesse: sono le frasi
PROLOG che costituiscono l’AMBIENTE cioè il programma;
* la conclusione: è la
domanda;
* la regola di deduzione: è una
regola già presente nel computer (che parla PROLOG), detta REGOLA DI
RISOLUZIONE.
D’altra parte in PROLOG le
proposizioni, rispetto a quelle del sillogismo, presentano una maggiore varietà
di forme; il numero delle premesse è (teoricamente) illimitato; le premesse
possono essere o affermazioni di base (FATTI) o affermazioni sotto condizione
(REGOLE). Quindi il computer si presenta come una macchina in grado di
verificare se una certa proposizione è “logicamente deducibile” da un gruppo
iniziale di proposizioni: esso utilizza, come nel sillogismo, una regola di
deduzione di natura sintattica ma è in grado di operare anche in ambiti più
articolati e complessi di quelli del sillogismo.
Singolare è il fatto che noi,
nell’introdurre le entità e le relazioni, possiamo continuare a “pensare in modo
ordinario”, cioè tenendo d’occhio e la correttezza sintattica e la correttezza
semantica: il computer, che manipolerà tali relazioni operando esclusivamente
sul piano sintattico, darà risposte che risultano essere corrette (come abbiamo
già avuto modo di vedere) anche rispetto alla semantica.
Ebbene, se poniamo al computer
la domanda: è_mortale(Chi)
si ha la risposta:
Chi=socrate.
|