|
UN APPROCCIO INFORMATICO ATTRAVERSO L'ITALIANO |
|
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. |
|
|