Nucleo di Ricerca in Didattica dell`Informatica
Transcript
Nucleo di Ricerca in Didattica dell`Informatica
Beppe Pea Informatica Corso di base pag. 1 LE INTELLIGENZE Secondo lo "Zingarelli", vocabolario della lingua italiana, l'intelligenza è la capacità di padroneggiare le situazioni nuove o di risolvere problemi nuovi, più che con l'esperienza, mediante la comprensione dei rapporti esistenti fra i vari elementi della situazione. Questa definizione appare molto adatta ad identificare un particolare tipo di intelligenza: quella del genere umano adulto, ma il fatto che un bambino non solo non sappia risolvere alcuni problemi, ma non li percepisca addirittura, è sufficiente per poter affermare che il bambino non è intelligente o è meno intelligente di un adulto ? Se poi consideriamo altri esseri viventi quali gli alberi, i batteri, gli esseri unicellulari, ... , è veramente difficile dire se comprendono la realtà, sono quindi privi di intelligenza ? Un concetto di intelligenza siffatto, basandosi sui problemi, sulla comprensione e sulla padronanza della realtà richiede la coscienza e la consapevolezza nell'individuo intelligente, quindi anche le capacità critiche e di giudizio. Tutto ciò porta a considerare atti e comportamenti che hanno la loro origine anche nella morale, nella spiritualità, nella religiosità, e ciò, pur essendo splendido da un punto di vista antropologico, risulta fuorviante per chi vuol ricondurre il concetto di intelligenza all'interno delle macchine, come avviene in informatica. Per gli scopi informatici è più adatta la spiegazione di intelligenza che viene riportata dalla "Grande Enciclopedia Vallardi", secondo la quale l'intelligenza non sarebbe un'unica qualità, ma la risultante di un complesso di attitudini e disposizioni che consentono di apprendere i dati dell'esperienza, di elaborarli stabilendo fra essi dei nessi logici e di tradurli in pratiche applicazioni. In funzione di quest'ultima definizione appare chiaro che l'esame dell'intelligenza deve essere condotto su due fronti contemporaneamente: quello qualitativo e quello quantitativo. A questo punto è ancora più difficile dire con precisione che cosa sia l'intelligenza ( occorrerebbe introdurre altri concetti come memoria, attenzione, intuizione, logica, capacità di analisi, capacità di sintesi,...), è però più semplice capire quando si e` in presenza di un atto intelligente, o di un essere che si comporta e opera in maniera intelligente, in modo da risolvere i problemi affrontati e raggiungere gli obiettivi fissati. E’ proprio in funzione di queste ultime considerazioni che viene attribuito li nome di “intelligenza artificiale” anche ad alcune costruzioni tecnologi- che come il computer. Ma qualsiasi macchina non percepisce problemi, non ha obiettivi da raggiungere, non ha consapevolezza della realtà, quindi l’ intelligenza artificiale non può essere semplicemente assimilata a qualsiasi “intelligenza naturale”, è necessario ridefinirla, pur tenendo sempre ben presente il confronto con le intelligenze che si manifestano in natura. Intelligenze: naturali, artificiali In questo paragrafo verranno considerate come intelligenze naturali quelle prodotte dall'evoluzione biologica, cioè quelle presenti in tutti gli esseri viventi. Infatti ogni essere vivente deve affrontare e risolvere problemi, in maniera più o meno cosciente. La qualità e la quantità dei problemi da affrontare e risolvere sono tanto maggiori quanto più l'essere vivente è evoluto, in ogni caso anche gli esseri più primitivi devono risolvere i problemi della loro sussistenza e della loro riproduzione per il mantenimento della specie. Partendo da un problema affrontato e risolto da un'intelligenza naturale, come quella dell'uomo, si può approdare ad una prima definizione di intelligenza artificiale. PROBLEMA: Stirare un capo di abbigliamento avendo a disposizione, come strumento, un ferro da stiro elettrico dotato solo di un interruttore di corrente. Stirare significa distendere e orientare le fibre di un tessuto. Questo lavoro lo si può fare con maggior facilità utilizzando in maniera opportuna grandezze fisiche come la temperatura e la pressione. Il ferro da stiro permette di avere la pressione e la temperatura più opportune per ottenere il massimo risultato con il minor sforzo. La temperatura ideale, per stirare un particolare tessuto, deve essere mantenuta costante. Questo crea un primo problema perché se il ferro da stiro è acceso (collegato alla corrente) la sua temperatura continua ad aumentare, mentre se è spento (non collegato alla corrente elettrica) la sua temperatura continua a diminuire. Per risolvere questo problema l'uomo non può agire sull'interruttore collegando e scollegando il ferro da stiro dalla corrente elettrica in maniera casuale, ma deve: - collegarlo alla corrente se la temperatura e` troppo bassa - scollegarlo se la temperatura e` troppo elevata. Questo lavoro per essere fatto richiede una intelligenza capace di conoscere: pag. 2 . i dati in esame . gli strumenti disponibili . gli effetti fisici di tali strumenti . la capacità di trovare i nessi logici . la capacità di agire secondo questi nessi logici. Se tutto ciò, invece che essere fatto dall'uomo, viene fatto da uno strumento, allora questo strumento sostituisce una intelligenza naturale e, per questo motivo, viene detto: "Intelligenza artificiale". La "termocoppia elettrica" che viene inserita nei ferri da stiro e` una intelligenza artificiale capace di collegare e scollegare dalla corrente gli strumenti elettrici a secondo che la temperatura sia bassa o alta rispetto al valore ideale. Con il progredire delle scoperte e delle realizzazioni degli strumenti elettronici si è giunti al COMPUTER, cioè ad una macchina che, senza essere modificata nei suoi componenti, è capace di portare a termine una enorme quantità di lavori diversi. L'elasticità, la flessibilità d'uso, la rapidità e la precisione di esecuzione di molte operazioni rendono il computer "confrontabile" con l'uomo, quindi il titolo di "intelligenza" (artificiale) comincia ad essere più appropriato. Ma attenzione, il calcolatore elettronico è una macchina, evoluta quanto si vuole ma pur sempre una macchina, perciò risolve, eventualmente, un problema ma non lo percepisce e non ha consapevolezza del suo operare. Gli studi sull'intelligenza artificiale hanno da tempo abbandonato il sogno di creare strumenti non biologici dotati di intelligenza autonoma in senso umano, cioè di una intelligenza cosciente e consapevole della realtà in cui agisce. Ci si accontenta di creare sistemi capaci di riprodurre comportamenti intelligenti, di eseguire azioni intelligenti;. Ma quanto le intelligenze artificiali si sono avvicinate alle intelligenze naturali? Per comprenderlo e` necessario prendere in esame una classificazione operativa delle intelligenze. LIVELLI DI INTELLIGENZA Il calore prodotto dalla resistenza elettrica innalza la temperatura della termocoppia. A causa di ciò la termocoppia si incurva e il circuito elettrico si apre togliendo energia elettrica. Il sistema si raffredda e il contatto si ripristina, e così via... Di intelligenze artificiali di questo tipo l'uomo ne ha sempre create, utilizzando i principi della fisica e della chimica ma, riferendosi a queste creazioni, l'uomo non ha usato il termine "intelligenza", bensì "strumento, dispositivo, marchingegno, congegno, apparecchiatura, adattatore, macchina, ..." Il motivo di questo "pudore" è molto semplice: ritornando all'esempio fatto prima, la termocoppia svolge un lavoro intelligente ma sa fare solo quel lavoro (collegare e scollegare in funzione della temperatura), le intelligenze naturali sanno fare più lavori ed in campi diversi della realtà, presentano così una elasticità e una potenzialità che non e` nemmeno lontanamente confrontabile con le minuscole capacità della termocoppia. Le intelligenze vengono classificate, in senso operativo, in: - Intelligenze ripetitive; - Intelligenze ereditarie; - Intelligenze creative. Intelligenze ripetitive Le intelligenze di tipo RIPETITIVO sono caratterizzate dall'agire sempre nello stesso modo e di non potersi migliorare nel tempo. Questo tipo di intelligenza si caratterizza per il fatto di non modificare i propri comportamenti in relazione alle esperienze fatte, è una intelligenza che non impara. Fra le intelligenze naturali sono tanti gli esempi che si possono portare, ma quello di un ragnetto delle nostre campagne risulta esemplare e chiarificatore: Questo piccolo ragno fa la tana in piccoli buchi dei muri o del terreno e questa serve anche da deposito delle prede catturate. Ma prima di depositarvi la preda catturata la appoggia sul bordo della tana ed entra a fare una ispezione per controllare che non ci siano inconvenienti. Durante una di queste ispezioni hanno provato ad allontanare la preda dalla tana, il ragno, di ritorno dall'ispezione, accortosi che la preda era scomparsa, è andato a ricercarla e, trovatala, pag. 3 l'ha riportata sul bordo della tana ed ha ricominciato con una nuova ispezione. Spostata nuovamente la preda ci si è accorti che il ragno non ha modificato un solo atto del suo operare. In pratica il ragno la tana potrebbe averla ispezionata tante volte consecutivamente, ma ripeterebbe tutto come se fosse la prima volta. In questa categoria rientrano la quasi totalità dei sistemi informatici attualmente utilizzati infatti posti di fronte al problema di quale è il prodotto della moltiplicazione 3x4: - i computer e le calcolatrici compiono una miriade di operazioni elettroniche che, alla fine, generano sul monitor la scrittura "12". Se si dovesse fare la stessa richiesta per altre mille volte, il computer compirebbe sempre la stessa miriade di operazioni per ottenere invariabilmente lo stesso risultato "12". Continuare a ripetere la stessa "esperienza" (è un termine che per le macchine non può avere la stessa valenza che ha per l'uomo), non modifica né in peggio né in meglio il modo per risolvere il problema. - il bambino modifica i suoi comportamenti "facendo”, “operando" e i tempi e le tecniche di risoluzione cambiano con l'esperienza. E' proprio partendo da questa constatazione che il calcolatore viene definito uno stupido veloce ed è in ragione della sua enorme velocità di calcolo che il calcolatore trova tante applicazioni nel mondo contemporaneo. Da questo punto di vista il calcolatore è uno strumento in cui l'uomo deposita la propria capacità di risolvere problemi mediante algoritmi di calcolo, non ha alcuna capacità autonoma di gestione dell'algoritmo e del problema, esegue la sequenza di operazioni che l'uomo gli ha "insegnato" senza modificarla mai e senza alcuna possibilità di controllo critico dei risultati, cioè senza consapevolezza. Il calcolatore è in grado di risolvere solo problemi di cui è conosciuto un algoritmo risolutivo, cioè quando è determinabile una sequenza fissa ed immutabile di operazioni che partendo dai dati iniziali porti al risultato finale. In altre parole: l'uomo deve aver già risolto il problema almeno da un punto di vista simbolico (teorico), il calcolatore si prende a carico l'esecuzione della enorme quantità di calcoli necessaria per eseguire l'algoritmo. Ma proprio per questo motivo, quando l'algoritmo di soluzione di un problema non è determinabile, l'intelligenza di tipo ripetitivo diventa inutile. Nel tentativo di risolvere il problema dell'assenza dell'algoritmo si è cercato di costruire dei sistemi informatici in grado di imparare dall'esperienza, cioè in grado di memorizzare i nuovi casi che si presentano per utilizzarli in successive applicazioni al problema. Intelligenze ereditarie Le intelligenze di tipo EREDITARIO sono caratterizzate dal modificare nel tempo il proprio modo di agire in funzione delle esperienze fatte, in altre parole le intelligenze ereditarie "fanno tesoro", "ereditano" dalle esperienze che hanno dovuto affrontare nuove informazioni che permettono di risolvere lo stesso problema in modo più efficace. L'esempio del bambino che, in campo aritmetico, fa esperienze sui calcoli e li saprà fare in modo sempre più rapido ed efficace è indicativo per illustrare un’intelligenza di tipo ereditario. Ma anche nel campo delle intelligenze artificiali c'è qualche cosa che assomiglia all'intelligenza di tipo ereditario: - La funzione di controllo ortografico di cui sono dotate le migliori gestioni di testi attualmente sul mercato. Questa funzione consiste nel confronto tra tutte le parole del testo in elaborazione e l'elenco di parole memorizzate all'interno del computer. Se vengono trovate delle parole che non hanno un corrispondente nel vocabolario interno, il controllo ortografico segnala l'anomalia chiedendo istruzioni sulla prosecuzione del lavoro. Una delle possibili scelte è quella di aggiungere la parola al vocabolario, tale opzione comporta l'accettazione di questa parola come parola corretta, riconoscibile come buona in tutti i testi che successivamente verranno analizzati. Quindi il controllo ortografico non si comporta sempre allo stesso modo, di volta in volta aumenta la propria capacità di controllo incrementando le voci memorizzate nel vocabolario elettronico. La realizzazione di una intelligenza ereditaria di questo tipo non comporta particolari difficoltà, infatti l'algoritmo di confronto non viene modificato dalla dimensione del vocabolario, troppe parole memorizzate allungheranno i tempi di esecuzione del controllo stesso, non la tecnica di ricerca del dato. - Nel gioco degli scacchi esiste un programma che permette di fare delle partite con il computer. Questo programma contiene le istruzioni relative alle regole del gioco ed una memoria di mosse possibili a secondo dei casi che possono capitare. Maggiore è questa memoria e più difficoltoso è vincere contro il computer. Questo tipo di programma rende l'intelligenza di tipo ripetitivo, infatti il computer "gioca" la prima partita con la stessa "abilità" con la quale gioca la millesima partita, non si migliora. Hanno saputo creare un programma che contiene le regole del gioco degli scacchi, la memoria delle mosse all'inizio è estremamente ridotta, ma il programma è stato curato in modo che il computer "sappia" analizzare le mosse dell'avversario (l'uomo) e le sappia confrontare con quelle che ha in memoria. Se alla fine della pag. 4 partita l'uomo dovesse risultare vincente, allora le mosse vincenti non conosciute dal computer verranno fissate nella sua memoria e, da quel momento il computer le potrà utilizzare. E chiaro che più partite verranno fatte dal computer, maggiore diverrà la conoscenza delle mosse possibili per vincere. Due sono le capacità che diversificano questo programma da altri più tradizionali: - la capacità di confrontare i risultati raggiunti con l'obiettivo da raggiungere: memorizzare le mosse che portano a vincere la partita. - la capacità di modificare la propria base di conoscenze e di ristrutturare l'algoritmo risolutivo in modo da utilizzare tutti i dati di cui è dotato. Questa intelligenza gioca la prima partita di scacchi in maniera diversa da come gioca la decima partita, cioè, è capace di fare tesoro delle esperienze fatte. Quest’ultimo programma è fondamentale perché per la prima volta si è tentato di superare il concetto di algoritmo, il programma è in grado di modificare la propria strategia di soluzione del problema. Partendo da queste considerazioni negli anni '70 è nato un nuovo ramo dell'informatica: l'Intelligenza Artificiale (AI Artificial Intelligence). Il suo obiettivo iniziale era la realizzazione di sistemi intelligenti, cioè la riproduzione dell'intelligenza umana, ma presto ha dovuto fare i conti con la realtà ed ha assunto come obiettivo la creazione di sistemi informatici in grado di emulare prestazioni "intelligenti" anche se non descrivibili in termini algoritmici. Infatti tutti i problemi che non sono riconducibili ad un algoritmo di soluzione non possono essere affrontati dall'informatica tradizionale se non in termini di supporto all'uomo (banche dati). Un esempio classico è la capacità di eseguire diagnosi da parte di un medico: quali sono gli algoritmi (meccanismi mentali) che il medico mette in atto per giungere ad una diagnosi? Al momento attuale è impossibile dare una risposta a questa domanda e l'informatica può solo porsi in termini di servizio al medico fornendogli la possibilità di analizzare in tempi brevissimi una grande quantità di casi clinici. Naturalmente il patrimonio di conoscenze che sta nel programma che gioca a scacchi si è cercato di applicarlo alla soluzione di problemi più importanti, sono così nati i sistemi esperti. Nel panorama attuale dell'informatica trovano applicazione da alcuni anni sistemi esperti di alto livello, in particolare nel campo della diagnostica sia su cose (robotica) che su persone (medicina). Prima di fare alcuni esempi cerchiamo di dare una semplice definizione: "Un sistema esperto è uno strumento informatico costruito per affrontare problemi che richiedono conoscenze specializzate ed una grande quantità di informazioni empiriche". In altre parole, un sistema esperto cerca di simulare i comportamenti di un esperto di un particolare settore. Prendiamo come esempio un medico specializzato. La sua abilità prima che nella capacità di curare si evidenzia nella capacità di diagnosticare la causa del malessere. Fissiamo per il momento l'attenzione solo sulla capacità di eseguire una diagnosi corretta. Pochi, e non sempre, sono in grado di spiegare in quale modo il medico, dall'analisi dei dati che ha a disposizione, giunge alla conclusione, spesso neppure il medico in oggetto. In conclusione: non è possibile stendere un algoritmo che permetta di fare diagnosi in modo automatico. Le capacità che il medico utilizza per arrivare ad una diagnosi possono essere riassunte in due categorie: - conoscenze specializzate sul funzionamento del corpo umano, - una grande quantità di quadri clinici acquisiti mediante l'esperienza propria e degli altri. Un buon esperto deve avere delle conoscenze di base sufficientemente approfondite per analizzare, catalogare e capitalizzare le esperienze professionali. Questa affermazione risulta vera per gli esperti di tutti i campi (il meccanico che deve diagnosticare il guasto di un'automobile, il formatore che deve diagnosticare i mali di una classe di studenti, il geologo che deve diagnosticare la presenza di un giacimento petrolifero,...). Nei sistemi esperti si cerca di simulare queste abilità. E' chiaro che i risultati migliori i sistemi esperti li hanno mostrati nei campi più determinati del sapere umano, esistono degli ottimi sistemi esperti per effettuare diagnosi sui guasti di apparecchiature meccaniche; da alcuni anni la catena di assemblaggio della FIAT è governata da un sistema esperto; ecc. Maggiori, enormi difficoltà si hanno nel realizzare ottimi sistemi di diagnosi che riguardano l'uomo, anche per le grandi differenze nelle tecniche diagnostiche tra vari esperti dello stesso settore. Lo studio di sistemi informatici che diano prestazioni sempre più intelligenti è aperto, tutti gli esperti sono concordi nell'affermare che siamo ancora all'inizio del lavoro, molti problemi restano ancora aperti, elenchiamone alcuni: - le prestazioni offerte sono sempre limitate alla soluzione di un particolare problema; - l'architettura degli elaboratori è ancora quella fissata da Von Neumann agli inizi dell'informatica, una struttura strettamente sequenziale ed algoritmica, poco adatta alla realizzazione di schemi di ragionamento paralleli o per affinità; - l'enorme quantità di problemi legati ai meccanismi naturali di comunicazione dell'uomo (riconoscimento ed analisi dell'immagine, riconoscimento della voce umana, ...) rende difficile realizzare sistemi in grado di comunicare in senso lato. pag. 5 Però già funzionano egregiamente sistemi di riconoscimento della voce costruiti per persone cieche che devono gestire grandi segreterie telefoniche, ma questi sistemi entrano in crisi se cambia l'operatore o se si esula dalla gestione della segreteria telefonica. Un altro esempio è la realizzazione di strumenti ottici di controllo della produzione industriale; nell'industria tessile vengono utilizzate piccole telecamere che, collegate a sistemi informatici, individuano e segnalano la presenza di anomalie nel filato (rigonfiamenti o eccessiva finezza del filo), ma non sarebbero mai capaci di individuare difetti di altri prodotti industriali. - scarsa conoscenza dell'intelligenza umana (risulta difficile simulare il comportamento di qualcosa che non si conosce in modo profondo). Risulta chiaro che gli studi sulle intelligenze artificiali richiedono il lavoro di molte categorie diverse di esperti (dall'ingegnere elettronico per i computer, al matematico ed all'informatico per i programmi, al neurologo e allo psicologo per il cervello umano, ...). Tale collaborazione sta portando significativi miglioramenti in tutti i campi di lavoro coinvolti. L'avvicinarsi sempre di più a macchine che simulano sempre meglio l'intelligenza ed il comportamento umano, porta molti uomini a guardare con sospetto l'informatica, si è passati dalla paura degli strumenti informatici alla paura dei cambiamenti sociali che questi possono portare. Non sono paure prive di fondamento, la società descritta da G. Orwell nel suo romanzo "1984" sarebbe realizzabile allo stato attuale della tecnica; la continua diminuzione di mano d'opera necessaria al mondo produttivo induce tensioni sociali pericolose; l'avvicinarsi di quello che viene definito il villaggio globale pone problemi di rapporti tra nazioni e di convivenza tra popoli. Purtroppo è impossibile affermare che questi problemi verranno superati nel migliore dei modi dal genere umano, e non è possibile dare un giudizio morale sull'informatica ma, pur essendo impossibile fermare l'evoluzione degli studi e delle applicazioni informatiche (è quindi impossibile fermare le evoluzioni sociali che ne seguiranno), la conoscenza da parte di larghi strati della popolazione del mondo informatico è l'unica speranza per il raggiungimento di una società più giusta. L'uomo ha una intelligenza ereditaria del tutto particolare perché, mentre un animale, come ad es. il gatto, "eredita" informazioni e capacità dalle espe- rienze che fa direttamente, l'uomo può accumulare conoscenze ed abilità anche senza compiere l'esperienza in prima persona. L'uomo è capace di "ereditare" anche le esperienze fatte dagli altri con una semplice comunicazione. La scuola ha, tra i suoi compiti, quello di trasmettere ai discenti le conoscenze e le esperienze fatte da altri esseri, in modo che l'uomo non debba ripercorrere per intero e direttamente tutte quelle esperienze che hanno portato a quelle conquiste. E’ proprio grazie a ciò che esiste un costante progresso nell'ambito delle conoscenze umane. Intelligenze creative Le intelligenze CREATIVE sono (qualche studioso aggiunge "solo per il momento") solo naturali ed esse si manifestano quando: - viene risolto un nuovo problema con metodi conosciuti; - viene portato a termine un problema già risolto ma con nuove procedure; - viene risolto un nuovo problema con nuovi metodi; - viene motivato un giudizio diverso da quello manifestato da un altro relativamente all'interpretazione di una stessa realtà; - si è consapevoli di tutti gli elementi che contribuiscono a creare uno stato di cose; - si è capaci di implicanze logiche come dedurre, indurre ed inferire e quindi di azioni adeguate; - ..... Un esempio in grado di mostrare la differenza nell'agire fra una intelligenza creativa ed una ereditaria è il seguente: Si consideri il computer ed il programma che permettono di giocare a scacchi. La macchina è stata programmata per vincere e agirà in modo da perseguire solo la vittoria della partita, qualunque sia l'avversario umano. Si prenda ora in esame un genitore che insegna al proprio figlio il gioco degli scacchi, le prime partite il genitore le perderà anche se avrebbe potuto vincerle senza alcuna fatica. Questo atto: "perdere anche se avrebbe potuto vincere" il computer non può mai deciderlo. Il computer con intelligenza ereditaria agisce in senso "tattico", mentre il genitore con intelligenza creativa agisce in senso "strategico". Si potrebbe proseguire approfondendo il concetto di intelligenza, ma entreremmo in campi che non sono più dell’informatica. pag. 6 INFORMAZIONI DATI E MEMORIE INFORMAZIONI E DATI L’informatica è una scienza che studia i metodi e gli strumenti per acquisire, trattenere, elaborare, codificare e rendere disponibile l’informazione. Quando un individuo chiede una informazione è perché ha la necessità di sapere qualche cosa che non sa o di cui non è sicuro. Dato che l’informazione è strettamente connessa con la conoscenza, disporre delle opportune informazioni diminuisce, o elimina, lo stato di incertezza relativo ad una realtà e permette di fare scelte meno rischiose e più consapevoli. Quando l’informazione è stata acquisita, perché ricevuta da altri o perché maturata attraverso esperienze dirette, nasce il problema del come comunicarla ad altri, del come depositarla in modo che sia reperibile quando occorre. Trasmettere un’informazione ad un ricevente è nella realtà trasmettere l’insieme dei dati inerenti a un oggetto, rappresentati con simboli secondo un codice convenuto. Analogamente depositare un’informazione è utilizzare simboli che permangono nel tempo e che, proprio grazie al codice convenuto, possono essere prelevati e reinterpretati. Ma allora la trasmissione è di un insieme di dati e questo non sempre è, per il ricevente, una informazione. I dati sono tutto ciò che non è dedotto a priori né costruito e costituiscono una premessa necessaria per la soluzione del quesito “informazione”, hanno un significato meramente passivo che solo la capacità intellettiva del ricevente trasforma in qualche cosa che ha significato. In altre parole, i dati costituiscono l’ambiente da cui deve prendere le mosse ogni attività riflettente del ricevente. Si prenda l’esempio di una persona che telefona ad un’altra e trova la segreteria telefonica. Il messaggio comunicato non è una informazione per il registratore della segreteria telefonica. Ma allora ciò che viene registrato (memorizzazione) è un insieme di dati o è una informazione ? Per il registratore non può essere un’informazione (ed anche la persona che ha dettato il messaggio non aveva alcuna intenzione di informare il registratore) ed è solo aver codificato dei dati sonori in simboli magnetici. Questi dati diventano informazioni solo per la persona che riascolterà il registratore, sempre che sia chiaro che cosa significano altrimenti anche per la persona rimangono solamente dei dati. Il computer non ha la capacità di attribuire i significati all’insieme dei dati, perciò le macchine informatiche nella realtà: - non ricevono informazioni, - non memorizzano informazioni, - non trasmettono informazioni, - non elaborano informazioni, ma ricevono, memorizzano, trasmettono, elaborano solo DATI. MEMORIA Il termine “memoria” quando viene riferito all’uomo sta ad indicare un insieme di attività (comprendenti processi biologici, fisiologici e psicologici) determinate grazie ad avvenimenti anteriori, vicini o lontani nel tempo, che hanno modificato in maniera durevole l’organismo. In informatica questa concezione della memoria non può andare bene perché si basa sulle attività e non sugli oggetti, come la seguente: E’ memoria qualsiasi oggetto che ha la potenzialità di trattenere dati opportunamente codificati in modo che questi possano essere poi ripresi all’occorrenza. Con questa definizione si distingue nettamente “memoria” da “dati”, quindi “le memorie” intese come i ricordi (cioè dati) sono, in informatica, da considerarsi come oggetti. Ad esempio, la frase: «scrivi le tue memorie su di un quaderno» è, in informatica, da sostituirsi con: «scrivi i tuoi ricordi sulla memoria quaderno». In funzione di questa concezione si possono avere memorie vuote di dati ma molto potenti perché la loro potenzialità di alloggiamento dati è elevata. Le azioni che si possono compiere sulle memorie sono le seguenti: • scrivere (alloggiare dei nuovi dati in memoria); • leggere (prelevare i dati opportuni da una memoria); • cancellare (eliminare, asportare dei dati dalla memoria); • aggiornare (leggere e cancellare dei vecchi dati per sostituirli mediante la scrittura di nuovi dati); • rinfrescare (aggiornare la memoria con gli stessi dati); • formattare (predisporre la memoria in modo da rendere possibili tutte le precedenti azioni). E’ utile approfondire alcune di queste azioni: pag. 7 SCRIVERE: E’ modificare uno stato di omogeneità della memoria secondo regole e convenzioni predeterminate. Se un foglio presenta l’omogeneità cromatica (ad esempio l’essere “bianco”), scrivere dei dati sulla memoria foglio è modificare tale omogeneità con colori diversi (nero, blu, rosso, verde, ...) utilizzando opportune penne. La modifica della omogeneità può essere effettuata in vari modi: 1 - con asportazione di materiale . Ne sono esempio le incisioni rupestri fatte dai nostri antenati i quali, basandosi sulla omogeneità “essere liscia” della superficie di alcune rocce, hanno scalfito le rocce creando delle “rugosità”. 2 - con aggiunta di materiale. Ne sono esempio le scritture fatte con penne su fogli, le pitture su tele, ... che con l’aggiunta di pigmenti colorati modificano l’omogeneità cromatica esistente. 3 - con il cambiare la posizione del materiale. Ne sono esempio le incisioni fatte da artisti su superfici metalliche mediante “bulinatura”. Un altro esempio è la scrittura braille che, mediante il cambiamento di posizione di materiale, crea dei rilievi percepibili al tatto. 4 - con il viraggio relativo ad uno stato fisico o chimico del materiale. Ne sono esempio l’incisione dei nastri magnetici o dei dischetti informatici (viraggio magnetico), la scrittura delle memorie elettroniche (viraggio di polarità), la scrittura degli schermi televisivi (viraggio ottico). Altri esempi: l’incisione dei cristalli con la fresa è con asportazione di materiale, il conio delle monete metalliche fatto con presse e con cambiamento di posizione del metallo, la scrittura di un foglio con macchina da scrivere e con l’aggiunta del materiale (inchiostro), il timbrare è con aggiunta di inchiostro, il timbrare a secco è con spostamento della materia, .... Con i primi tre modi di scrittura c’è l’agire sulla materia con azioni meccaniche che richiedono grande energia e tempi lunghi. E’ proprio per questo motivo che in informatica si preferisce l’uso delle memorie scrivibili con il 4° modo (memorie elettroniche, memorie magnetiche, memorie magnetoottiche, memorie fosforico-ottiche,...) e solo quando non è possibile fare diversamente si utilizzano gli altri modi (memorie cartacee scritte con stampanti che aggiungono inchiostro). FORMATTARE: E’ creare nella memoria gli stati di omogeneità e la struttura che permettono le operazioni di scrittura e di lettura. Si consideri un gruppo di bambini che giocano su una spiaggia sabbiosa. Questa spiaggia non è una memoria ma i bambini la rendono tale quando, dopo averla lisciata (creazione dello stato di omogeneità), con un bastoncino scrivono l’inizio, i trattini e la fine di una parola da indovinare (scrittura con spostamento di materia). Il lisciare una parte della spiaggia è formattare una memoria. Analogamente, formattare un dischetto magnetico è creare una omogeneità di campi magnetici e strutturarla in modo da rendere possibile le operazioni di scrittura e di lettura magnetica. TIPI DI MEMORIE Le memorie si possono classificare in funzione: • delle differenze dei tempi d’accesso; • della scrivibilità; • del ruolo svolto nelle apparecchiature. Memorie in funzione delle Differenze dei tempi d’accesso Il tempo di accesso di una memoria indica l’intervallo di tempo che passa fra l’istante in cui viene richiesto di scrivere o di leggere un dato e l’istante in cui viene effettivamente scritto o letto. Si abbia, ad esempio, un juke box di dischi di musica leggera e si indichi, con gli appositi pulsanti, il brano che si vuole ascoltare. Il tempo che intercorre dalla fine delle indicazioni date all’inizio della lettura del disco è un tempo di accesso alla memoria del juke box. Su di una memoria dati diversi vengono scritti in luoghi diversi della stessa memoria. Si può quindi immaginare la memoria come un insieme ordinato di luoghi atti ad alloggiare i dati e si può perciò parlare di un inizio e di una fine della memoria. Andare in un luogo di memoria richiede un certo tempo, andare in un altro luogo può richiede un tempo diverso da quello precedente. Le memorie possono essere classificate in funzione di queste eventuali differenze di tempi in: - R.A.M. (Random Access Memory - Memorie ad accesso casuale). Sono le memorie nelle quali tutti i luoghi, in qualunque modo vengano decisi (anche in maniera casuale), sono raggiungibili nello stesso tempo. Sono praticamente nulle le differenze dei tempi di accesso. - S.R.A.M. (Semi R.A.M.). I luoghi di queste memorie sono accessibili con tempi diversi ma con differenze piccole, quasi irrisorie. Per le capacità di “percezioni temporali” dell’uomo, queste memorie e come se fossero RAM. - S.M. (Sequential Memory - Memorie sequenziali). I luoghi di queste memorie si succedono e non è possibile passare da un luogo ad un altro distante senza dover passare dai luoghi di me- pag. 8 moria intermedi. Questo implica che, se si è sul primo luogo di memoria, andare sul secondo luogo di memoria richiede un tempo brevissimo, mentre andare sull’ultimo luogo di memoria richiede un tempo enormemente più grande. Le RAM che si conoscono sono solo quelle elettroniche mentre le SRAM e le SM le troviamo un po’ ovunque. Un nastro magnetico e un papiro sono delle SM, i corrispondenti disco e libro sono delle SRAM. Memorie in funzione della Scrivibilità Le memorie alloggiano dati che devono essere scritti. Ma non sempre le memorie possono essere scritte dagli utilizzatori e quindi, in funzione di ciò, possono essere classificate in: - R.O.M. (Read Only Memory - Memorie solo leggibili). I dati sono stati scritti all’origine dal costruttore e per l’utilizzatore non è più possibile modificarli o cancellarli. L’unica azione che può essere fatta su tali memorie è solo la lettura. La nostra società è piena di memorie ROM, infatti un libro, un catalogo, un opuscolo, una fotografia, un quadro, una scultura, un disco di vinile, un compact disk, alcune memorie meccaniche ed elettroniche contenute negli elettrodomestici,.... - E.P.R.O.M. (Erasable Programmable ROM ROM cancellabili e programmabili). La sigla contiene una contraddizione perché una ROM non è cancellabile e nemmeno scrivibile per essere programmata con altri dati. Questa contraddizione è solo apparente perché la cancellabilità e la programmabilità è effettuabile solo con strumenti talmente particolari che solo i tecnici specializzati sanno portare a termine. Per l’utilizzatore finale queste memorie sono indistinguibili dalle ROM. - Scrivibili. Sono tutte le memorie che anche l’utilizzatore finale può scrivere. Sono delle memorie labili perché possono essere cancellate e riscritte a piacere quando si vuole. Sono esempi di queste memorie i nastri magnetici, le lavagne, i tabelloni elettronici delle autostrade, un foglio scritto con la matita, l’agenda elettronica,... E’ interessante esplorare questi nuovi concetti rispondendo alle seguenti domande: - Il DNA degli essere viventi è una memoria? Se si, di quale tipo? - Quali sono le ROM insite nel nostro organismo? - Quando un individuo legge un numero da una agenda telefonica e poi lo compone sul telefono, quali memorie utilizza e di quale tipo sono? - I dati memorizzati tramite l’esperienza fatta sono utilizzabili, dal nostro organismo, solo a livello di coscienza? Memorie in funzione del Ruolo svolto nelle apparecchiature Per ragioni di completezza è necessario vedere che cosa è una memoria negli strumenti costruiti per l’elaborazione dei dati. Si consideri il seguente schema: Attraverso le unità di ingresso (ad esempio la tastiera, il mouse, la penna ottica,...) i dati vengono immessi nella memoria centrale, detta anche memoria principale, ed è da questa memoria centrale che i dati vengono letti dalle unità di uscita (ad esempio il monitor, il display, il plotter, la scheda sonora con gli altoparlanti,...). Con uno schema siffatto si possono compiere solo due azioni sui dati: lo “scrivere” e il “leggere”, ma non è possibile alcun tipo di elaborazione degli stessi. E’ però interessante notare che la macchina da scrivere normale appartiene ad una concezione ancora più primitiva di quella descritta, infatti manca della memoria e la tastiera (INPUT) è direttamente collegata alla parte stampante (OUTPUT). Nei computer la tastiera non è direttamente collegata al monitor, può perciò accadere che, pigiando un tasto, in alcuni casi si ha una variazione sullo schermo (ad es. la scrittura di una lettera) mentre in altri lo schermo resta inalterato. Per elaborare i dati è necessario disporre di una unità capace di compiere operazioni su di essi e di confrontarli. Questa viene detta A.L.U. (Arithmetic Logic Unit - Unità logico aritmetica) ed è collegata con la C.M. in modo da potervi leggere i dati, ela- pag. 9 borarli e, i risultati delle elaborazioni, scriverli sempre nella C.M. Ma la C.M. contiene tanti dati riguardanti sia le operazioni da fare sia gli elementi sui quali fare le operazioni. Occorre una unità capace di organizzare, dopo aver interpretato le istruzioni del programma, il lavoro che deve essere fatto. Il nome dato a tale unità è C.U. (Control Unit - Unità di controllo) La C.U. è stata creata per risolvere anche un altro tipo di problema: una struttura di questo tipo non può compiere più operazioni contemporaneamente e se l’operatore dovesse violare questo limite (ad esempio tentando di immettere nuovi dati con la tastiera mentre la A.L.U. è impegnata a leggere dalla memoria altri dati) il sistema senza la C.U. si bloccherebbe. La C.U. tiene sotto controllo tutte le operazioni e tutte le parti del sistema, quindi mentre una parte è in comunicazione con la C.M. le altre parti vengono inibite (facendo riferimento all’es. precedente, la tastiera è come se non fosse collegata). Questa organizzazione crea dei problemi negli operatori: non sanno quando la tastiera è collegata e quando è inibita. Potrebbe perciò accadere che quanto è stato digitato non sia stato scritto nella C.M. Per ovviare all’inconveniente descritto si introducono delle M.A. (Memorie di Accumulo) che hanno il compito di accumulare i dati: - negli strumenti di INPUT per non perderli e darli alla C.M. quando il collegamento viene riattivato; - Negli strumenti di OUTPUT per accumulare in un solo colpo tutti i dati necessari alla stampa e liberare così la rimanente parte del sistema in modo che possa procedere all’elaborazione. Le memorie finora viste sono tutte volatili (in mancanza di energia si cancellano) ed hanno una capacità limitata. Per completare il sistema è necessario prendere in considerazione delle memorie aventi le seguenti caratteristiche: - la non volatilità (mantenere i dati anche in assenza di energia); - la grande capacità; - la possibilità di essere tolta dal sistema e di poterla rimettere quando serve. Queste memorie vengono dette M.M. (Memorie di Massa) e sono costituite principalmente da dischi magnetici e da nastri magnetici, ma possono essere anche dei CD-ROM. Le M.M. vengono collegate alla C.M. attraverso degli strumenti capaci di guidare le memorie alle operazioni meccaniche di lettura e di scrittura. Questi strum enti sono detti DRIVE e costituiscono il naturale completamento di un sistema informatico completo. pag. 10 LINGUAGGI La teoria dell'informazione, che per certi versi è diventata una branca della matematica applicata, studia il passaggio, fra due sistemi intelligenti, di dati e informazioni inerenti ad un oggetto. Dei due sistemi intelligenti quello che possiede l'informazione viene detto "trasmittente", mentre l'altro che deve venire in possesso dell'informazione viene detto "ricevente". L'operazione che viene effettuata viene detta "trasmissione" e questa può essere effettuata solo attraverso un "canale" di comunicazione. Ma l'informazione, per essere trasmessa, ha bisogno di essere rappresentata con "segni" che la codifichino. Questi segni possono essere estremamente diversificati come ad esempio: - Sensazioni fisiologiche (visiva, tattile, auditiva, olfattiva, gustativa) che manifestino forma, colore, suono, stato della superficie, profumo, sapore, ecc... di un oggetto fisico; - Parole o espressioni verbali capaci di descrivere l'informazione; - Scritti in grado di rappresentare l'informazione; - Impulsi di corrente elettrica; - Onde elettromagnetiche; - Campi magnetici; - ... L'informazione così trasmessa viene, dal sistema ricevente, ricostruita in arrivo mediante l'interpretazione dei segni, quindi fra trasmittente e ricevente ci deve essere in comune la conoscenza dei segni usati. Conoscere i segni che servono per trasmettere le informazioni e conoscere con quale ordine e in quale modo devono essere combinati fra loro affinché l'informazione arrivi integra al ricevente, significa conoscere un linguaggio. Una prima definizione di linguaggio potrebbe essere la seguente: «è un insieme di segni, di regole, di convenzioni, di leggi che serve a trasmettere le informazioni da un sistema trasmittente ad un sistema ricevente». Si è visto che i linguaggi utilizzano segni dalle origini più svariate e quindi, grazie a ciò, possono essere classificati in diverse categorie quali: - dei fiori; - verbale; - scritto; - degli occhi; - gestuale; - dei fatti; - ... Questi sono linguaggi che l’uomo ha sviluppato per comunicare con altri esseri viventi, ma nell’informatica la comunicazioni avviene anche fra uomo e macchina (e viceversa) e fra macchina e macchina e, in tali situazioni, il linguaggio dei fiori non può essere utilizzato. Risultano invece più efficaci linguaggi basati su segni quali: - i versi della corrente; - i poli magnetici; - le intensità luminose; - i segni grafici; - ... anche perché questi linguaggi permettono la scrittura dei dati sulle memorie utilizzate in informatica. Si dà perciò una netta prevalenza ai linguaggi scritti e, per comprendere l’importanza di alcuni di questi, è necessario procedere ad una classificazione basata sulla evoluzione che questi codici di scrittura hanno avuto fino ad oggi. LINGUAGGI ICONOGRAFICI Con i linguaggi iconografici l’informazione viene scritta in memoria mediante la riproduzione della forma che essa assume ai sensi dell’uomo e il ricevente è in grado di recuperarla mediante la percezione della sua forma intrinseca. Si comunica perciò utilizzando immagini grafiche, sculture, bassorilievi, ... e ne sono esempi i graffiti, i dipinti, i busti di marmo, la stampe di paesaggi, le fotografie, ... La scrittura iconografica presenta dei notevoli pregi: - la lettura dei dati è molto intuitiva e con poche convenzioni e quindi non richiede un particolare addestramento o educazione alla lettura (sempre che ci si limiti ad attività non artistiche); - la lettura dei dati è molto veloce. La possibilità di percepire con un solo colpo d’occhio l’intera iconografia non esclude poi l’aggiunta di altri dati ricavabili da una lettura più analitica della immagine. Ma presenta anche degli indiscussi svantaggi, infatti: - sono comunicabili solo dati legati ad una forma nello spazio, inoltre tale forma deve essere a misura di uomo o dei suoi strumenti di indagine (non troppo piccola o tanto grande da essere invisibile). Quindi le informazioni prive di forma propria, come i suoni, i campi magnetici, i sentimenti, le astrazioni, ecc...non possono essere comunicate. pag. 11 - il trattamento dei dati è molto difficile, i tempi relativi alla loro scrittura, cancellazione e modifica sono molto alti e richiedono, oltre ad un forte spreco di energia, una notevole abilità che non tutti hanno. Alcuni esempi per chiarire quanto esposto: - I graffiti, le incisioni fatte dai popoli primitivi direttamente nella roccia, sono le testimonianze che ci sono rimaste della vita dei primi uomini sulla terra, sono state fatte con punte e sassi ed hanno richiesto lunghissimi tempi di realizzazione. Una prima lettura di tali immagini risulta non eccessivamente difficile, anche se le informazioni depositate sono relative ad una civiltà molto distante, in senso temporale, rispetto alla nostra. - I dipinti che compaiono sulle pareti delle caverne abitate nella preistoria, fino ai dipinti dell'era contemporanea. Il tempo e le abilità necessarie alla scrittura di tali messaggi sono molto alti, ma si riduce la quantità di energia meccanica necessaria per la loro realizzazione. La cancellazione e la modifica del messaggio può avvenire per semplice sovrapposizione dei messaggi (pitture coprenti) o per asportazione della pittura e del supporto (grafite, inchiostri); facile ed intuitiva è la interpretazione del messaggio, anche se il livello di interpretazione è personale. - Le stampe. E' richiesta una tecnica sempre più difficile per la scrittura, ma il suo grande vantaggio è la duplicabilità , quindi, la possibilità di raggiungere un numero molto alto di persone. - Le fotografie. Per la prima volta l'immagine viene riprodotta in modo automatico ottenendo: maggior fedeltà e oggettività dell'immagine (quindi una maggior sicurezza di trasmettere le informazioni esatte), minori abilità umane richieste e minori tempi di realizzazione, ma anche una maggior dipendenza da attrezzature di alta tecnologia. Il messaggio non viene registrato per sovrapposizione di materiale (dipinti) o per modifica fisica del supporto (graffiti, sculture) ma per modifica chimica del supporto stesso, non è possibile modificare il messaggio se non attraverso procedimenti chimici (personale specializzato) o distruzione del messaggio stesso. E' stato necessario passare dalla grafica vista con ottica rappresentativa ad una grafica di tipo simbolico dove il grafismo non riproduce più una "forma" ma indica e rappresenta una "idea". Con il linguaggio ideografico l'uomo inventa dei grafismi la cui "forma" richiama informazioni che possono avere o no forma propria. Naturalmente la quantità sempre crescente di informazioni da trasmettere ha fatto crescere sempre di più il numero di ideogrammi che costituiscono il linguaggio, è stato perciò necessario semplificare il più possibile le forme dei grafismi anche per facilitare la scrittura, la lettura e, in generale, il trattamento del linguaggio. Come contropartita di tali vantaggi, le forme degli ideogrammi si sono allontanate sempre più dall'intuitività iconografica e l'educazione alla scrittura ed alla lettura è diventata una necessità. Ad esempio, cosa significano i seguenti ideogrammi ? La risposta può essere facile, ma non per tutti: Questo ideogramma è sufficientemente noto perché l’educazione ad interpretarlo risale ancora alla scuola elementare. Dà immediatamente l’idea di una domanda. Questo ideogramma è già meno conosciuto. Viene appreso da chi ha affrontato una educazione stradale. Comunica l’informazione del divieto di sosta. Quest’ultimo è molto meno noto perché indica un’informazione che nella civiltà attuale viene scritta con altri codici. Si tratta dell’ideografia del toro e il suo grafismo ha dato origine alla lettera “alfa” dell’alfabeto greco. Un esempio di come molte volte alcuni ideogrammi sono nati dall'evoluzione delle iconografie che li hanno preceduti, è il seguente e riguarda le informazioni relative alle quantità: LINGUAGGI IDEOGRAFICI L'evoluzione e la crescente complessità della società umana ha prodotto la necessità di trasmettere informazioni prive di una forma rilevabile dai sensi dell'uomo (ad esempio: idee, suoni, sentimenti, ...) e la rappresentazione iconografica delle informazioni non è stata più sufficiente a supportare tali necessità. pag. 12 E’ una scrittura iconografica della quantità “dieci”. E’ di lenta lettura perché richiede l’operazione del conteggio. E’ ancora una iconografia del “dieci” ma la diversa disposizione spaziale permette una più rapida lettura. Ogni rag- gruppamento è l’immagine della mano e quindi del “cinque”. Questa non è più una iconografia perché si vedono 4 tratti e non dieci. E’ il “dieci” scritto con due ideogrammi del “cinque”. Questo è l’ideogramma del “dieci” ottenuto disponendo i due ideogrammi del “cinque” in modo da avere un unico grafismo. La lettera "X" per i romani era l'ideografia del "dieci" perché meglio di altre ricordava l'iconografia legata alle due mani contrapposte polso a polso. Pregi del linguaggio ideografico In generale il linguaggio ideografico ha sostituito quello iconografico, ma non sempre perché alcune informazioni si comunicano meglio con le iconografie. Non è raro giungere ad una forma di ridondanza, per avere una maggiore chiarezza comunicativa, usando contemporaneamente sia le iconografie sia le ideografie. Un grande pregio del linguaggio ideografico risiede nella compattezza del messaggio e nella rapidità di interpretazione dello stesso, ciò rende questo tipo di linguaggio insostituibile in molti ambiti: - segnaletica stradale : la velocità di spostamento del-la automobile non permette di soffermarsi sulla informazione per lungo tempo, l'ideogramma permette in una sola occhiata di capire il messaggio, d'altra parte è necessaria una buona educazione alla interpretazione del linguaggio (scuola guida); - punteggiatura nel testo alfabetico: i segni di interpunzione (spazio, virgola, punto, punto di domanda) rappresentano un'idea precisa, sono perciò ideogrammi, la frase "oggi piove !", ha significato molto diverso dalla frase "oggi piove ?"; - simbolismo matematico: tutti i segni di operazione (+, -, *, /, (, ), ...) rappresentano un'idea, sono perciò degli ideogrammi che rendono compatta e non ambigua la scrittura di un messaggio di tipo operativo. Difetti del linguaggio ideografico Anche il linguaggio ideografico non è privo di difetti: l'uso di simboli diversi per idee diverse produce la necessità di una grandissima quantità di grafismi, la rappresentazione si allontana dalla forma reale dell'oggetto e la sua interpretazione è sempre meno intuitiva e più codificata, non è più sufficiente l'intuizione per interpretare il messaggio e gli individui devono dedicare all'educazione al linguaggio e alle sue convenzioni sempre più tempo. C’è da aggiungere che l’ideografia rende necessario catalogare, raccogliere e trasmettere anche le convenzioni linguistiche (non solo il messaggio linguistico). Naturalmente si differenziano socialmente coloro che vengono educati alla scrittura e alla lettura dei dati (caste degli scrivani, rapporto cultura e potere). Ma l’inconveniente maggiore è una sorta di gigantismo dovuto alla continua evoluzione delle idee umane, infatti ogni nuova idea produce la necessità di un nuovo grafismo (teoricamente potrebbero divenire infiniti), ciò comporta due conseguenze: - l'impossibilità di imparare e di trasmettere, nell'arco della vita di un uomo, tutti gli ideogrammi che la società ha prodotto nella sua evoluzione; - la nascita di linguaggi specializzati (sottocodici) conosciuti solo all'interno di una casta ristretta di persone specializzate. Il linguaggio ideografico è quindi estremamente valido quando la quantità di ideogrammi è a dimensione delle reali capacità umane. E' in tal senso che ancora oggi nel mondo occidentale viene usato. Ne sono esempi: - La segnaletica stradale; - Il simbolismo matematico e della logica formale; - La punteggiatura ed alcuni altri ideogrammi che compaiono anche nelle pagine scritte con codici alfabetici; - I simboli che vengono stampati sui tasti di un videoregistratore; - I grafismi utilizzati dai disegnatori di fumetti per esprimere alcuni stati d'animo degli interpreti disegnati; - .... LINGUAGGI ALFABETICI Con il progredire delle conoscenze il problema del gigantismo del linguaggio è cresciuto a tal punto da rendere necessaria l'introduzione di un nuovo tipo di linguaggio scritto, avente come caratteristica principale quella di avere un numero limitato (nell'ordine delle unità, al massimo delle decine) di simboli chiari (cioè facili da scrivere e leggere) e ben distinguibili (cioè molto diversi tra loro). Per ottenere quanto detto è stato necessario togliere ogni significato ai simboli stessi, è nato così l'ALFABETO che è un insieme di segni grafici privi di ogni significato intrinseco: la lettera "N" (uno dei 21 segni grafici dell'alfabeto italiano) non e- pag. 13 sprime alcuna idea o concetto, è solo graficamente diversa dalla lettera "P". I dati vengono comunicate attraverso la corrispondenza fra una disposizione ordinata di lettere e una idea o un concetto: IDEA ←→ IDEA ← //→ IDEA → IDEOGRAMMA LETTERA ALFABETO DISPOSIZIONE ORD INATA DI LETTERE (come minimo una) maggiori rispetto a quelli richiesti per gli altri tipi di linguaggio. Questi tempi si possono ridurre con una buona educazione e con l'esercitazione costante, ma l'obbligo di dedicare in ogni caso un tempo sufficientemente lungo all'interpretazione della informazione non è solo uno svantaggio, perché spesso produce una migliore comprensione della n iformazione stessa. Vantaggi dei linguaggi alfabetici L'ultima corrispondenza è solo in un senso perché non tutte le disposizioni ordinate di lettere esprimono delle idee, ad esempio: - "MARE" ha un significato; - "PEFDSXXX" non esprime alcuna idea. L'unica deroga, in una scrittura alfabetica, è l'inserimento di alcuni ideogrammi (pochi e ben codificati) che svolgono il compito di regolare e dare significato alle sequenze, si è visto precedentemente un esempio dove, con punteggiatura diversa ( "?" e "!" ), si hanno significati diversi e si comunicano informazioni diverse, pur essendo la parte alfabetica perfettamente identica. E' il caso di dedicare alcune parole al concetto di disposizione ordinata sopra espresso. Nell'evoluzione storica dei linguaggi si è passati: - dal linguaggio iconografico in cui una immagine poteva esprimere una informazione di notevole complessità, - al linguaggio ideografico in cui la singola immagine esprime un concetto semplice e la concatenazione (non necessariamente ordinata) di im magini rappresenta informazioni composte, - per finire con il linguaggio alfabetico dove tutti i concetti sono legati alle disposizioni ordinate di simboli elementari e la comprensione dell'informazione giunge solo dopo una analisi delle diverse disposizioni. Praticamente, salvo rari casi di informazioni estremamente semplici, queste non sono leggibili a "colpo d'occhio". Dal punto di vista dell'utilizzo si passa da linguaggi di veloce, semplice ed intuitiva lettura a linguaggi molto codificati in cui la lettura dell'informazione richiede un addestramento specifico, ed i tempi di lettura crescono. Le abilità richieste per la scrittura e per la lettura, sono nettamente diversificate utilizzando le iconografie (infatti le difficoltà richieste per la scrittura sono enormemente maggiori rispetto a quelle dovute per la lettura), con l'evoluzione dei tipi di linguaggio la diversificazione fra le abilità di scrittura e quelle di lettura si è via via ridotta e, per il linguaggio alfabetico si è quasi annullata. D'altra parte i tempi di lettura delle informazioni risultano, per il linguaggio alfabetico, decisamente Per comprendere quali e quanti siano i vantaggi della scrittura dei dati con i codici alfabetici, è necessario procedere ad un approfondimento della "informazione". Gli esseri umani raccolgono informazioni attraverso i sensi, questo significa che l'informazione arriva attraverso una forma qualsiasi di energia: - Se l'informazione è in una immagine allora l'energia che porta l'informazione è di tipo luminoso e gli occhi la possono ricevere; - Se l'informazione è relativa allo stato termico di un corpo il tatto la può captare; - Se l'informazione viene lanciata attraverso le parole pronunciate da una persona allora l'energia sonora che trasporta l'informazione viene ricevuta dagli orecchi; - ... Siccome i sensi dell'uomo non sono capaci di captare tutte le forme sotto le quali l'energia si propaga ed, inoltre, ricevono gamme limitate anche della stessa forma di energia, accade che molte informazioni l'uomo non riesca a riceverle. L'energia che porta normalmente una informazione è quasi sempre abbastanza debole, anche perché di solito non è la quantità di energia che varia la informazione: un bambino che usa l'energia sonora per comunicare l'informazione "mare" può pronunciare questa parola o sottovoce o urlandola e non cambia il significato (non si entra nel merito del significato che può essere attribuito al fatto di parlare sottovoce o urlando). Si sa che piccole energie possono controllare grandi energie e quindi risulta semplice arrivare alla conclusione che l'informazione può controllare il cambiamento o meno di grandi fonti di energia. Un esempio semplice riguarda la termocoppia usata nel ferro da stiro: La termocoppia, come il senso del tatto, raccoglie l'informazione della temperatura e, a secondo di come è calibrata, fa scattare l'apertura o la chiusura di un circuito elettrico ottenendo, come effetto, diminuzione o aumento di una grande quantità di energia termica. pag. 14 L'informazione, in ultima analisi, possiede, attraverso l'energia che la trasporta, la facoltà di controllare azioni ed energie: In un ascensore, l'informazione di quale piano deve essere raggiunto viene comunicata con una piccola energia cinetica (piccola pressione esercitata su un pulsante in modo da spostarlo) e, attraverso questo piccolo lavoro si mette in moto un motore capace di sollevare tonnellate. Ma se l'informazione viene vista solo sotto l'ottica di "innesco" per fare avvenire grandi mutazione di energia, si commette un errore, infatti, da sempre nell'uomo, ma anche sempre più frequentemente nelle macchine create dall'uomo, i dati vengono usati per modificare, trasformare, ottenere altri dati. Si entra in tal modo nel campo dell'elaborazione e della manipolazione dei dati. L'importante è dominare le piccole energie, che portano ed elaborano i dati, prima di utilizzarli (se necessario) per innescare le gradi trasformazioni di energia. Così si riducono enormemente gli sprechi. E' per questo che si dice: "pensa prima di agire". Ritorniamo all’uomo che, con la scrittura l'informazione permanente nel tempo (se si considerano le scritture grafiche come quelle che si sono esaminate finora). In quale modo queste si possono trasformare in altre informazioni? Si consideri il seguente esempio: CXV • XII = è la scrittura di una informazione relativa a quantità e ad una operazione aritmetica e, per chi la riceve può rimanere semplicemente una comunicazione oppure può innescare una processo di elaborazione che porta ad una nuova informazione quantitativa chiamata prodotto. Tale scrittura è di tipo ideografico (i simboli "C" "X" "V" sono gli ideogrammi delle quantità "cento" "dieci" e "cinque") e l'elaborazione: (quantità, operazione) → (quantità) può essere effettuata entrando nel merito dei significati, la moltiplicazione viene interpretata come addizione ripetuta e quindi il prodotto viene trovato sommando la quantità "centoquindici" a sé stessa per un totale di "dodici" addendi. Il prodotto risulterà: MCCCLXXX Le stesse informazioni possono essere comunicate ed elaborate utilizzando un linguaggio alfabetico: 115 • 12 = Questa è una comunicazione scritta in senso alfabetico perché le quantità vengono scritte con una numero limitato di segni (sono le "dieci" cifre arabe) e dalla disposizione ordinata di queste cifre si ottengono le informazione quantitative. Ad esempio nella scritta: 1 4 3 4 2 la cifra "4" non ha alcun significato se non viene vista disposta nel contesto di altre cifre (tranne nel caso in cui la disposizione ordinata è formata da una sola cifra) e la stessa cifra assume significati diversi, pur essendo scritta nello stesso modo: il primo "4" viene interpretato come "quattromila" mentre il secondo viene interpretato come "quaranta". L'elaborazione dell'informazione data con questo linguaggio alfabetico può avvenire in maniera diversa rispetto a quanto esposto prima. La quantità "centoquindici" non viene più considerata (praticamente durante l'elaborazione scompare) e si considerano solo le cifre che entrano in gioco. Si opera non più sulle quantità ma sulle cifre (come specificato prima, le cifre non sono le quantità). Combinando due cifre si ottiene, mediante regole meccanizzabili (che non necessariamente richiedono la comprensione di ciò che si sta facendo), una nuova cifra. L'opportuna disposizione di queste permette di arrivare alla nuova informazione “prodotto” senza entrare nel merito del significato dell'informazioni di partenza, della elaborazione fatta e dell'informazione di arrivo: 115 • 12 = 230 115− 1380 E', disgraziatamente, noto come riescono a fare queste operazioni senza sapere che cosa è un prodotto, senza sapere usare in un contesto reale questa capacità (quindi senza comprendere i significati delle informazioni). Le conclusioni che si possono trarre da questo esempio sono molteplici, ma le più importanti sono che: - linguaggi diversi, pur comunicando le stesse informazioni, permettono di elaborare queste in maniera diversa; - il linguaggio alfabetico permette di elaborare le informazioni senza entrare nel merito dei significati delle stesse, ma basandosi sulle combinazioni e sulle disposizioni ordinate dei segni che pag. 15 costituiscono l'alfabeto, capacità che non richiedono la coscienza di ciò che si sta facendo. Le macchine non possono avere coscienza di quello che elaborano e non possono comprendere il significato dei dati elaborati, perciò, per far in modo che siano le macchine a compiere elaborazioni di dati che interessano gli uomini, è necessario che queste siano dotate di un opportuno linguaggio: quello più idoneo è l'alfabetico. Si è abituati ad identificare la lettura dei dati con la comprensione degli stessi. Questo è senz'altro vero, specialmente se la scrittura dei dati è stata fatta con codici iconografici o ideografici (se un ideogramma non è conosciuto si dice che non si è capaci di leggerlo), ma se l'informazione è scritta con codici alfabetici conviene porre una distinzione fra la lettura dei dati e la loro comprensione, modificando il concetto di lettura in: "capacità di prelevare i dati e di trasmetterli". Allora le operazioni di lettura e di scrittura dei dati possono essere effettuate senza la corrispondente comprensione. Quanti sono i bambini che, nella foga del dimostrare di essere capaci di "leggere bene", declamano senza entrare nel merito di cosa stanno leggendo ? Analogamente molti scrivono le informazioni dettate senza comprendere necessariamente il significato di ciò che stanno scrivendo. Questo fatto è molto importante per l'uomo perché permette l'esercizio tecnico della lettura e della scrittura anche di parole sconosciute, ma è ancora più importante per l'impiego delle macchine nella trattazione dei dati, infatti, queste macchine devono leggere, elaborare e scrivere i dati senza alcuna possibilità di comprenderli. I codici alfabetici permettono di ottenere queste prestazioni molto semplicemente perché, in tal modo, il linguaggio può essere trattato in modo automatico, lavorando cioè sui segni (lettere, cifre, ...) indipendentemente dai significati . Il linguaggio alfabetico presenta poi altri vantaggi rispetto ai linguaggi iconografici e ideografici, infatti: - La scrittura delle informazioni può essere fatta con strumenti che non richiedono allo scrivano abilità grafiche, come ad esempio: . la macchina da scrivere (è pensabile una macchina per le scritture iconografiche o ideografiche ? Che tastiera dovrebbe avere quella per scrivere in cinese, dato che gli ideogrammi creati in tale lingua sono circa 90.000 ?); . la stampa per composizione con caratteri a piombo; . il normografo. - Permette di poter esprimere ogni tipo di informazione, di entrare nei particolari, di comunicare anche le più sottili sfumature relative ad un concetto. - Permette di ottenere elaborazioni di informazioni espresse anche con altri linguaggi e dare i risultati di queste operazioni in codici non necessariamente alfabetici. STESSI DATI CON LINGUAGGI DIVERSI L’esempio seguente mostra come l'iconografica di una casa può essere scritta con linguaggi alfabetici (verrà usato un alfabeto binario e uno decimale) e come l'elaborazione automatica fatta su questi linguaggi produce una trasformazione della iconografia: Il primo grafico è una iconografia della casa mentre il secondo riproduce la stessa introdotta in un reticolo quadrato di 8 righe per 8 colonne. La seconda fase consiste nel passare da una iconografia fatta con tratti continui ad una iconografia fatta di punti (nel senso delle geometrie basate sui piani discreti). Questa fase è detta di “discretizzazione dell’immagine” ed è quanto fa una telecamera televisiva (riceve una immagine fatta di aree e linee continue e la traduce in una matrice di punti colorati diversamente e separati tra di loro). Per discretizzare l’immagine si è utilizzato la seguente convenzione relativa ad ogni cella: pag. 16 La terza fase permette di passare ad una forma espressiva di tipo alfabetico usando l'alfabeto binario {0,1}: La traduzione è stata fatta con la seguente convenzione: La quarta fase porta alla casa espressa con un linguaggio alfabetico decimale: Il risultato iconografico di tale elaborazione è la traslazione verso destra dell'immagine stessa: Partendo dal risultato ottenuto si può procedere ad un'altra trasformazione della immagine operando sul linguaggio decimale in modo diverso: E’ concettualmente bello capire che la scrittura alfabetica decimale: 0 , 16 , 40 , 68 , 198 , 68 , 124 , 0 è la memorizzazione di un dato: “la casa”. Avendo a disposizione una capacità operativa aritmetica che permette di elaborare i dati decimali si può procedere ad una prima elaborazione dell'immagine: Ciò che si ottiene è chiamata "immagine reverse": pag. 17 Il passaggio di discretizzazione dell'immagine è, oggi, facilmente realizzabile con rilevatori ottici chiamati "CCD". Questi, attraverso l'uso di obiettivi ottici tradizionali, ricevono l'immagine sulla loro superficie e la trasformano in un insieme di punti. La quantità di questi punti è enormemente più elevata rispetto ai 64 dell'esempio (ci sono già CCD che trasformano un'immagine in circa 1.000.000 di punti) e, l'immagine così tradotta può essere, come si è visto, elaborata. Potrebbe anche essere semplicemente archiviata in una memoria magnetica con le codifiche del linguaggio binario. Si ottiene una "immagine sintetica" cioè una immagine che nella realtà non esiste come iconografia, ma è il frutto di trasformazioni linguistiche che l'uomo sa gestire. E' proprio attra verso le immagini sintetiche, che vengono ricostruite grazie al monitor, che è stata grandemente semplificata la comunicazione fra uomo e computer. E’ possibile operare tramite il linguaggio senza avere l'intelligenza necessaria per comprenderlo, purché questo sia di tipo alfabetico. Si potrebbe obiettare che esistono strumenti capaci di operare sulle informazioni senza ricorrere alla scrittura alfabetica, coma ad esempio: - Un impianto di amplificazione sonora: questo riceve una informazione espressa attraverso il suono, la trasforma in corrente modulata, opera su questa amplificandola e il tutto viene di nuovo trasformato in suono del tutto simile a quello che l'ha generato ma decisamente più potente. Si può agire sui filtri dei toni ed amplificare di più gli acuti rispetto ai bassi, si possono anche operare delle distorsioni, ma il prodotto finale viene letto nello stesso modo di come è letta l'informazione di partenza. Non è la maggior potenza che ha cambiato l'informazione. - Gli uomini non sono dotati del senso capace di leggere ed interpretare le correnti (al più vengono percepite sotto forma di scossa o di tremore) quindi per leggere le eventuali informazioni che questa comunica è necessario creare un'apposi to strumento. Uno di questi è l'oscilloscopio che è capace di trasformare il linguaggio delle correnti in un linguaggio grafico: su di un tubo catodico viene tracciata un'onda che risulta l'iconografia della corrente; attraverso la sua forma, la sua frequenza, la sua ampiezza, ..., si possono trarre le informazioni necessarie. Anche in questo caso si ha un aspetto diverso della informazione, ma è pur sempre la stessa informazione, se la corrente di partenza era portatrice della informazione "rame" non è possibile avere sul tubo catodico l'onda dell'informazione "mare". Alcune curiosità Verrà descritto ora un sistema atto ad approfondire il concetto di elaborazione automatica ottenibile con il linguaggio alfabetico. Si considerino due persone che sono in collegamento telefonico. L'informazione lanciata da una delle due persone viene ricevuta dall'altra. A quest'ultima non arriva la voce dell'emettitore ma una sua riproduzione e, a meno di distorsioni e disturbi, l'informazione non è stata di fatto cambiata, cioè non è diventata un'altra. L'uomo emettitore lancia l'informazione nello spazio modulando le onde sonore. La macchina "telefono" legge, attraverso il microfono, la modulazione delle onde sonore e la traduce nella corrispondente modulazione di corrente. Il telefono trasmette i dati, attraverso la modulazione di corrente, che vengono ricevuti dall'altro apparecchio telefonico (il 1° telefono è un emettitore di informazioni mentre il 2° è un ricevitore, si ha una comu- pag. 18 nicazione da macchina a macchina). Quest'ultimo li traduce, attraverso il microfono, in modulazione di onde sonore. L'uomo ha comunicato l'informazione ad un altro uomo ma attraverso l'intermediazione di macchine. Si consideri ora la seguente complicazione: fra i due telefoni si interpongono due computer dotati di schede "analogico-digitali" capaci di trasformare correnti modulate in "bit" di corrente (correnti viste solo per il loro verso "+" o "-") e viceversa. Si ha un maggior utilizzo di forme linguistiche diverse per ottenere la stessa cosa, l'unico vantaggio sta nel fatto che le comunicazioni binarie, forse, risentono meno dei disturbi di linea e che, dalla partenza all'arrivo da un computer all'altro i dati non subiscono distorsioni. La potenzialità del sistema visto sopra è notevole, infatti con poche modifiche si possono raggiungere risultati inimmaginabili fino a pochi anni fa. Si è ottenuto una scrittura sotto dettatura, ma la parola "casa" è partita come suono ed è arrivata come scrittura alfabetica grafica. pag. 19 Ulteriore evoluzione del sistema: Attraverso l'elaborazione compiuta automaticamente dal computer l'informazione alla fine è diversa da come è partita, se, ad esempio, parte la parola "casa" sulla carta stampata non si trova la scritta "casa" (corrispondente alfabetica di quanto detto dall'emettitore) ma "home". Un’ultima modifica: Sarebbe possibile raggiungere un risultato di questo tipo non disponendo di un linguaggio alfabetico ? L'uso di linguaggi scritti con codici, grammatiche e sintassi estremamente differenziati cominciano a diventare parte integrante della vita quotidiana di ogni uomo. Se fino a pochi anni fa il linguaggio usato era quasi esclusivamente quello storico (la lingua madre e le lingue estere) e la scrittura era prevalentemente quella grafico-alfabetica, oggi, che la comunicazione non è più solo fra esseri umani, la necessità di dialogare con le macchine per dare, per fare elaborare e per ricevere dei dati costringe tutti ad affrontare seriamente il problema dei linguaggi non naturali. Non è infrequente vedere un adulto "litigare" con il televisore, con il vide- oregistratore, con la lavatrice, con il forno programmabile, con ... perché manca delle opportune conoscenze linguistiche che permettono la com unicazione con questi elettrodomestici. Lo sconforto, per l'adulto che si trova in queste situazioni, diventa grande quando vede che un bambino, molto spesso, riesce a colloquiare senza tanti problemi con questi strumenti. Il problema non è di tipo ingegneristico, ma linguistico: non occorre sapere su quali basi funziona un orologio elettronico per cambiare la data e l'ora errata, ma è necessario sapere come comunicare la correzione. pag. 20 IL PROBLEM SOLVING ANALISI DI UN PROBLEMA Ogni essere deve affrontare problemi sin dal primo istante di vita. Alcuni di questi problemi vengono risolti senza avere la “consapevolezza” del problema (come ad esempio imparare a camminare, imparare a parlare, ...) altri richiedono la consapevolezza che si è di fronte ad un problema e la consapevolezza degli sforzi fatti di quelli che dovranno essere fatti. Arrivati alle scuole elementari i bambini devono anche affrontare alcuni problemi che si riferiscono a realtà ipotizzate dagli insegnanti e comunicate tramite un testo. Molte volte nel bambino non c’è nemmeno l’immediata comprensione di questa ipotetica realtà a causa di diversi motivi: - perché non è mai stata vissuta, - perché il testo contiene dati che non vengono compresi e non si traducono in informazioni, - perché il testo è strutturato in maniera troppo complessa, - perché l’approccio al problema è, da parte del bambino, superficiale o stereotipato, - ... Risolta la questione relativa alla comprensione della realtà ipotizzata nel testo del problema (con letture ripetute del testo, con la discussione fatta con altri bambini e con l’insegnante, con schematizzazioni linguistiche del testo, ...) si è conclusa la parte dell’ANALISI del problema. Solo l’analisi porta il bambino a comprendere quale è l’obiettivo o il fine o che cosa c’è da risolvere. In informatica, ma non solo, si deve sapere dove si deve andare prima di operare per arrivare fino a quel punto. Si vedrà ora un esempio classico di errata soluzione di un problema dovuta alla cattiva analisi dello stesso: “completa il questionario sottostante secondo le indicazioni contenute nello stesso” LEGGERE TUTTI I PUNTI PRIMA DI RISPONDERE 1) Nome:_________________________________ 2) N° tel:_________________________________ 3) Nome del maestro: _______________________ 4) Età del padre: _________ 5) Hai fratelli o sorelle ?_______ 6) Non scrivere alcune risposta tranne quella della domanda numero 5. Molti bambini sono talmente abituati a sentirsi dire “leggi bene prima di rispondere” che l’avvertimento non è più tale e, quindi, si limitano ad una lettura globale e superficiale del questionario. Scrivono perciò il proprio nome e così via fino a scoprire tardivamente le indicazioni contenute al punto 6. Una cattiva analisi del problema, per incapacità o per superficialità o per impossibilità, porta ad affrontare un problema diverso da quello reale e la soluzione escogitata non è quella richiesta e quindi non è una soluzione. Se viene richiesto come è possibile cuocere una torta non può essere accettata come soluzione la spiegazione di come e possibile programmare il videoregistratore. APPROCCI ALLA SOLUZIONE Terminata l’analisi inizia la fase degli approcci alla soluzione del problema. Nella mente del bambino si susseguono varie ipotesi di metodi di risoluzione del problema. Alcuni di questi verranno subito scartati perché ritenuti inidonei o poco efficaci per pervenire ad una soluzione, altri saranno trattenuti in attesa di un ulteriore approfondimento sulla loro validità. La rivista “LE SCIENZE” n° 195 del Novembre 1984 propone uno schema (pag. seguente) che permette di adottare strategie risolutive diverse del problema in funzione di due elementi della realtà ipotizzata dal problema: la “regolarità” e la “complessità” dei dati e dei legami logici. Se un problema è regolare e può essere scomposto in tanti sottoproblemi più semplici, si può utilizzare la strategia del “DIVIDE ET IMPERA”, tuttavia tale strategia è efficace quando il campo dei dati e dei legami logici è grande e complesso, se tale campo è più limitato e non molto complesso può essere più utile ricorrere ad una impostazione logico/formale. I medici possono affrontare meglio il problema della diagnosi procedendo per analogia e la stessa cosa fanno i bambini quando affrontano i problemi di aritmetica o di geometria e ne hanno affrontati già pochi altri. I metodi formali si possono utilizzare quando una realtà è già stata codificata e formalizzata. Ne sono esempio il come risolvere un’equazione algebrica dove, conoscendo i formalismi dell’algebra, si può giungere alla soluzione per passaggi successivi. pag. 21 - La esecuzione delle operazioni, anche se in alcuni problemi non è richiesta, in modo da avere il risultato (parte computistica della soluzione). La prima fase viene detta ALGORITMO RISOLUTIVO del problema e nell’educazione informatica è sicuramente la fase più importante perché: è di pertinenza strettamente umana ed è molte volte un atto creativo, non può essere delegata a macchine. La seconda fase, detta di ESECUZIONE DELL’ALGORITMO può essere affidata anche ai circuiti calcolatori e quindi ad un computer. Ma l’algoritmo risolutivo oltre che un fatto mentale deve diventare anche un enunciato per poter essere comunicato sia ad altre persone, sia ad un computer (altrimenti il computer come potrebbe passare all’esecuzione dell’algoritmo? ). Si vedrà in seguito che una sola forma linguistica idonea a scrivere tutti i possibili algoritmi non esiste e, in funzione sia del tipo di struttura insita nell’algoritmo, sia delle capacità del bambino, si utilizzerà un linguaggio piuttosto che l’altro. VERIFICA SOLUZIONE Dopo aver analizzato il problema e dopo aver deciso con quale strategia affrontarlo, è necessario definire la sequenza logica delle operazioni che verranno fatte per giungere alla soluzione. In funzione della complessità del problema la sequenza può essere semplicemente concepita e tenuta a mente o può essere scritta sia per non confondersi, sia per aiutarsi a raggiungere la giusta sequenza logica. Ma la soluzione del problema si distingue, normalmente, in due fasi ben distinte: - la giusta sequenza delle operazioni atte a raggiungere il risultato (parte logica e strutturale della soluzione); Quando si è giunti ad una soluzione di un problema non si è sicuri che questa sia “corretta” fino a quando non viene effettuata una verifica atta a comprovare la correttezza. I modi per verificare le soluzioni sono diversificati in funzione del tipo di problema affrontato: - Attraverso un processo di reversibilità operativa in modo che partendo dalla soluzione si approdi ai dati; - Affrontando direttamente la realtà descritta nel testo del problema e, operando praticamente, vedere se si giunge alla stessa soluzione; - Utilizzando altri algoritmi risolutivi e confrontando le diverse soluzioni; - Cambiando i dati di partenza e ripercorrendo l’algoritmo risolutivo ottenere risultati conformi; - ... I problemi che si possono verificare nei modi sopra elencati possono essere semplici o complessi ma la verifica della loro soluzione è immediata o si può fare in tempi ravvicinati. Esistono dei problemi la cui soluzione può es sere verificata solo dopo un lungo periodo di tempo e ne esistono altri dove la verifica non potrà mai essere fatta. Si prenda in considerazione il seguente problema: “Io, responsabile delle vendite dei prodotti di una azienda meccanica, cosa devo fare per aumentare le vendite?” Dopo aver fatto un’analisi completa del problema ci sono stati i primi approcci che hanno permesso di scartare alcune potenziali risoluzioni. Alla fine si pag. 22 è giunti alla soluzione, ma quanto questa sia corretta non è possibile verificarlo a questo punto. Solo dopo un lungo periodo di tempo si potrà procedere a rapportare le nuove con le vecchie vendite e quindi avere una verifica della soluzione. Ma se nel lungo tempo che intercorre fra la soluzione e la verifica dovesse accadere un evento che dovesse impedire di stare sul mercato, la verifica non sarebbe più possibile. ANALISI APPROCCIO SOLUZIONE VERIFICA NO SI OK ? SI NO FINE Nel grafico precedente è descritto l’intero processo chiamato con il nome: PROBLEM SOLVING. PROBLEMA Questo problema verrà affrontato evidenziando le diverse fasi del problema solving. «Paolo dispone di soli due contenitori metallici: uno di 6 litri e l’altro di 5 litri e può compiere operazioni di riempimento, di svuotamento e di travaso d’acqua. Con quali operazioni riesce a ottenere due litri di acqua ?» L’analisi del problema in questo caso è molto semplice perché i dati sono pochi e molto chiari. Si hanno solo due contenitori e nessuno dei due è della capacità di due litri o possiede gradazioni utili per individuare i due litri, essendo poi metallici non si può vedere la quantità d’acqua contenuta fin quando sono pieni completamente. E’ necessario perciò utilizzare entrambi i contenitori. Le operazioni concesse sono quelle normali relative alla manipolazione dei liquidi con l’uso dei contenitori. 1° approccio: Paolo riempi il contenitore di 6 litri e poi fa un travaso fino a riempire quello di 5 litri. Rimane un litro. Se Paolo potesse conservare questo litro in un altro contenitore, ripetendo le stesse operazioni otterrebbe un altro litro e potrebbe formare i due litri, ma l’analisi fatta ci dice che un terzo contenitore non c’è, perciò occorre un nuovo approccio. 2° approccio: Paolo riempie quello da 6 litri e poi con un mezzo travaso suddivide in 3 litri in uno e 3 litri nell’altro. Riempie completamente quello di 5 litri e poi compie un travaso fine a riempire quello di 6 litri. Nel contenitore di 5 litri ne rimangono 2 di acqua ma questa non può essere una soluzione perché dall’analisi si sa che i contenitori non sono trasparenti e non si riesce a suddividere con certezza in parti uguali. 3° approccio e soluzione : Paolo riempie il contenitore di 6 litri e ne vengono travasati 5 nell’altro. Trattiene 1 litro nel primo contenitore e svuota il secondo. Travasa il litro d’acqua nel contenitore di 5 litri e poi riempie quello di 6 litri. Travasa fino a riempire quello di 5 litri (ne travasa 4 di litri d’acqua, dati che un litro era già presente) e ne rimangono 2 in quello di 6 litri. Questo algoritmo risolutivo appare caotico e poco chiaro perché è stato scritto con un linguaggio non idoneo, quello alfabetico della lingua madre. Una scrittura più efficace per esprimere l’algoritmo risolutivo potrebbe essere quella di tipo iconografico: pag. 23 Un altro linguaggio per esprimere lo stesso algoritmo: CONTENITORI di 6 litri di 5 litri 0 0 OPERAZIONI riempimento 6 0 1 5 1 0 0 1 6 1 2 5 travaso svuotamento travaso riempimento travaso Fase della verifica: potendo disporre veramente di contenitori conformi al testo si può verificare la soluzione procedendo praticamente e seguendo ordinatamente e uno per uno tutti i passi enunciati nell’algoritmo. Un’altra verifica pratica può essere fatta con bicchieri di plastica ritagliati in modo da avere le rispettive capacità in rapporto 6/5 e inve- ce di usare acqua si potrebbe utilizzare della sabbia asciutta. Il risultato ottenuto tramite la verifica è veramente di 2 litri? Se l’algoritmo dovesse essere errato la verifica lo metterebbe in evidenza e quindi sarebbe opportuno ricominciare dall’analisi perché non è da escludere che sia stata fatta correttamente. LINGUAGGI ALGORITMICI GRADUALITA’ LINGUISTICA Capita con una certa frequenza di vedere un bambino che pur avendo compreso come risolvere una realtà problematizzata non sa spiegare ad altri la sua soluzione del problema. In questi casi il bambino può procedere in due modi: - mostrare praticamente cosa fa per risolvere il problema, - analizzare meglio la propria intuizione risolutiva e scomporla in passi operativi codificabili tramite linguaggi conosciuti, - inventarsi, anche se in maniera rudimentale, delle forme linguistiche in grado di esprimere l’intuizione risolutiva. Ma il bambino non sempre riesce a concepire e creare dei nuovi linguaggi e, ammettendo che arrivi a tale conquista, non è detto che il linguaggio inventato sia quello più idoneo per risolvere altri problemi (è assurdo pensare di utilizzare tanti linguaggi quanti sono i problemi). L’insegnante deve educare il bambino alle diverse forme linguistiche atte ad esprimere le soluzioni dei problemi perché queste, oltre che capacità e- spressive, sono degli strumenti mentali che permettono di analizzare meglio un qualsiasi problema e, quindi, di giungere più facilmente alla sua soluzione. L’approccio plurilinguistico come metodologia didattica per esprimere l’algoritmo risolutivo di un problema offre all’insegnante diversi vantaggi: - rende il problema più facilmente dominabile anche dai bambini in difficoltà, - porta a risultati più soddisfacenti sia relativamente alla comprensione dei concetti trattati, sia riguardo all'operatività che ne deriva, - crea un naturale nesso fra i linguaggi più vicini all’esperienza sensoriale e i linguaggi simbolici, - mette in evidenza i vantaggi dei linguaggi più simbolici e compatti anche se questi, rispetto agli altri, sono più lontani dall’apparenza sensoriale del problema risolto, Le forme linguistiche più facilmente comprensibili dai bambini piccoli (o dai bambini più grandi ma in difficoltà) non sono di tipo alfabetico o simbolico; occorre, con loro, attivare una comunicazione utilizzando codici vicini alla loro esperienza, quindi il corpo con la sua dinamicità e con le sue posture, pag. 24 gli atti manipolatori, le iconografie di quanto fatto sono passaggi linguistici che servono per affrontare lo stesso problema in tanti modi diversi questa ridondanza permette di proporre il problema, l’algoritmo risolutivo e l'operatività in maniera non puramente formale ma costantemente legata alla realtà e quindi di collegare i simbolismi linguistici ai problemi concreti, fase questa indispensabile per far evolvere il linguaggio in modo che da puramente espressivo diventi anche operativo (cioè uno strumento per risolvere i problemi). Un esempio: «Gino si trova sul 5° gradino di una scala, sale di altri 3 gradini, su quale gradino si troverà ?» E’ un problema che richiede una analisi non eccessivamente complessa e i bambini piccoli m i maginano rapidamente come farebbero a risolvere il problema, se avessero una scala nelle vicinenze lo farebbero vedere subito con l’azione diretta del corpo e con la lettura della posizione assunta alla fine dell’azione. Il problema presentato è stato risolto e, non simulandolo, la verifica è automatica. Il vero problema per l’insegnante è, ora, con quale strategia portare i bambini verso le forme linguistiche che permettono di risolvere il problema senza doverlo vivere in prima persona. La proposta: 1^ fase: Se la scala non è disponibile nelle vicinanze è possibile simulare con materiale strutturato opportunamente sistemato. E’ un primo approccio linguistico perché il bastone ed i cerchi sono i significanti del pianerottolo (inizio della scala) e dei gradini e l’azione dell’avanzare nei cerchi è il significante dell’azione del salire i gradini. 2^ fase: “5+3 = 8” è, per la maggior parte dei bambini, troppo distante dal vissuto e con degli ideogrammi che possono diventare stereotipie computistiche staccate da qualsiasi contesto reale. Ma per l’insegnante quella scrittura simbolica è molto importante perché permetterà poi di risolvere altri problemi il cui contesto reale è completamente diverso da quello descritto nel testo, come ad esempio: - Oggi il termometro segna 5 gradi, domani la temperatura si alzerà di 3 gradi. Quanti gradi avremo domani ? - Aldo possiede 5 figurine e riceverà dal papà altre 3 figurine in regalo. Quante figurine avrà in tutto ? - Maria si trova a 5 passi dal maestro e si allontana di altri 3 passi. A quanti passi si trova dal maestro ? - ... E’ quindi necessario che l’insegnante consideri la scrittura simbolica come il punto di arrivo di un processo fatto di tanti linguaggi intermedi e non, al contrario, il punto di partenza per arrivare a dominare il problem solving. Con il materiale strutturato si simula la scala sul tavolato di un banco e il bambino opera a livello manipolatorio su un oggetto che è il significante di Gino. Spostare l’oggetto è l’equivalente del salire la scala. Il problema è risolto sempre con l’azione ma che agisce sulle cose invece che sul corpo. 3^ fase: Su di una scheda preparata dall’insegnante il bambino comincia ad affrontare i problemi della iconografia di una esperienza. Questo non è un pag. 25 approccio molto facile perché mentre per scrivere la posizione sul disegno della scala basta un po’ di conoscenza spaziale, per disegnare le azioni fatte è necessaria l’ideografia della freccia (che normalmente è utilizzata come il significante del cambiamento di posizione). Dopo aver contato le posizioni sull’iconografia della scala il bambino scrive i numeri nella posizione corrispondente. Ci si avvicina al linguaggio simbolico. 4^ fase: Dall’iconografia della scala alla ideografia della linea dei numeri. Ogni quadratino è il significante di un gradino e i numeri sono le posizioni. Le frecce rappresentano le azioni e, per un ulteriore avvicinamento al linguaggi simbolico, le 3 azioni vengono scritte anche come se fossero una unica azione (l’addizione è una unica operazione e non tre operazioni). la in azioni corporee, sia rimanendo sul piano formale). Questo permetterà di affrontare problemi più complessi e più articolati perché l’operazione aritmetica, la sua scrittura e come trovare il risultato non costituiranno un problema aggiuntivo. I linguaggi più si staccano dall’immagine della realtà che descrivono e meno riescono a descriverla nei dettagli ma, in compenso, riescono a creare dei processi di classificazione che permetteranno di pensare, operare e comunicare attraverso le classi. Ad esempio: - Che cosa indica la scrittura "CANE" ? Tutti gli animali che noi chiamiamo "cani" sono diversi l'uno dall'altro e solo l'individuare prima le caratteristiche diverse di ogni animale come numero di zampe, presenza e tipo di pelo, abitudini alimentari e igieniche, dimensioni,... (discriminazione) e poi riconoscere che alcune di queste caratteristiche sono comuni ad un insieme di animali (riconoscimento), ci permette di classificarli di chiamarli e di scriverli: "CANI". La scrittura iconografica: 5^ fase: Questa scrittura si stacca nettamente dall’immagine e dal vissuto e si eliminano anche le azioni che portano al risultato (nella fase precedente esisteva ancora la possibilità di fare tre azioni grafiche cioè tracciare le tre frecce). 6^ fase: E’ l’ultima fase, del linguaggio simbolico. Siccome in questo linguaggio la quantità di azioni che risolve il problema non viene rappresentata e visto che il bambino ha ancora bisogno di agire per operare, la scrittura “5 + 3” per dare origine al risultato somma richiede che il bambino la traduca ancora in un linguaggio fatto di azioni fisiche, come l’agire sulle dita (le dita come significanti dei gradini). Solo con l’esperienza ripetuta l’agire fisico diventerà un operare mentale e la scrittura simbolica aiuterà a far diventare l’operazione aritmetica un “agire” sui numeri e non più l’agire sulle cose. In altre parole, a tante realtà diverse e apparentemente lontane tra loro (attraverso l’edu-cazione plurilinguistica) si associa una formalizzazione unificante, semplice e facilmente elaborabile (sia traducendo- esprime «un» cane ma non «il» cane. - Che cosa indica la scrittura "8 - 5" ? E’ una operazione aritmetica che permette di esprimere e risolvere tante realtà diverse come: il togliere, ciò che manca per ..., quale differenza c'è fra ... e fra ... "Giorgio ha 8 figurine, giocando con Aldo ne perde 5, con quante figurine rimane ? " "Uno scatolone ha la capacità di 8 pacchi, ne sono stati immessi 5, quanti ne mancano per riempirlo ? " "In una stalla ci sono 8 cavalli e 5 selle, quanti cavalli non potranno essere sellati ? " Il togliere è «una» sottrazione ma non è «la» sottrazione, quindi le due scritture: “ da 8 mele ne tolgo 5 “ “8-5“ sono espressioni di una realtà particolare (la prima) e di una classe di realtà (la seconda). Tutti i problemi visti in questo paragrafo sono risolvibili attraverso una sola operazione (o agendo col corpo o scrivendola e agendo mentalmente). Ma non tutti i problemi che si affrontano sono così pag. 26 semplici e allora diventa necessario sapere compiere una giusta sequenza di azioni o, a livello di scrittura, possedere un linguaggio in grado di esprimere ordinatamente le operazioni da fare e come queste si susseguono. DIAGRAMMA AD ALBERO dell’algoritmo risolutivo: costo unitario del prosciutto in £/hg x DIAGRAMMI AD ALBERO Si è di fronte al seguente problema: "La mamma va dal salumaio e compra 3 hg di prosciutto, che costa 2000 £/hg, e una mortadellina che costa 8000 £. Paga con 20000 £, quanto riceve di resto dal salumiere ?" I dati sono tanti e analizzare il problema è sicuramente più difficoltoso rispetto ai problemi visti prima. Il bambino procede per tentativi ed errori, partendo dai dati e, operandoli a due a due fra di loro, ottiene nuovi dati che, forse, potrebbero essere utili per arrivare alla risposta; se sono utili vengono utilizzati per conquistare altri nuovi dati, se non sono utili vengono abbandonati. Ci si trova di fronte ad una strategia risolutiva chiamata BOTTOM-UP (dal fondo in su): consiste nel partire dai dati quantitativi inerenti la realtà problematizzata (fondo) per andare, operazione dopo operazione, verso il dato richiesto dal problema (cima o vertice). dovuto per il prosciutto in £ £ (8000 - 6000) = £ 2000 £ (8000 + 6000) = £ 14000 £ (20000 - 14000) = £ 6000 quanto dato dalla mamma in £ quanto dovuto al salumiere in £ resto ricevuto dalla mamma in £ DIAGRAMMA AD ALBERO della risoluzione dell’algoritmo: 2000 3 x ( 6000 ) (costo del prosciutto comprato) (differenza di costo fra la mortadellina e il prosciutto) (costo totale dei salumi comprati) (resto che deve ricevere la mamma) e il dato ottenuto con la seconda operazione, del tutto inutile, non viene poi utilizzato. Con tale metodo non è possibile dire, prima di essere giunti alla soluzione del problema, se i dati sono ben posti, se ne mancano o se sono eccessivi. Tale metodo viene usato con profitto da chi riesce ad architettare mentalmente l'intera struttura logica del modello risolutivo. Solo pochi bambini fortunati riescono in ciò ma, in ogni caso, è utile per tutti l’educazione linguistica che permette di esprimere nel modo più semplice ed appropriato l’algoritmo risolutivo e la sua risoluzione. dovuto per la mortadellina in £ + Il bambino parte dai dati (fondo, complessità nulla) per andare verso la risposta (dato dipendente dagli altri perciò con livello di complessità massimo, nel contesto del problema). Le operazioni fatte potrebbero essere: £ (2000 x 3) = £ 6000 quantità di prosciutto preso in hg 8000 + 20000 [ 14000 ] { 6000 } L’uso delle parentesi permette di distinguere i dati quantitativi forniti dal problema dai dati elaborati. In tal modo è possibile dire che: () ⇒ quanto dovuto per il prosciutto [] ⇒ quanto dovuto al salumiere {} ⇒ resto ricevuto dalla mamma e quindi le parentesi assumono anche un valore espressivo e non solo formale (come si è abituati in algebra). pag. 27 Espressioni numeriche L’uso del diagramma ad albero permette di esprimere la risoluzione dell’algoritmo posizionando nel piano i dati forniti e quelli elaborati e connettendoli con dei graffi. Esiste un linguaggio più simbolico che permette di partire con la distribuzione dei dati forniti in linea. I collegamenti vengono indicati con le parentesi e l’elaborazione avviene con gradualità, utilizzando ripetutamente lo stesso linguaggio fino a quando tutto si è ridotto al risultato finale: costo di un gelato in £ Se le espressioni numeriche vengono presentate come una naturale evoluzione del diagramma ad albero non assumono quel carattere puramente formale staccato da qualsiasi contesto reale e, per i bambini, diventano quello che il nome stesso indica: “espressioni”, cioè qualche cosa che serve per esprimere, per comunicare come è stata pensata e come è stata raggiunta la soluzione del problema. £ (10000 - 4600) = £ 5400 x x costo dei gelati in £ costo dei ghiaccioli in £ Quanto dato in £ Quanto dovuto in £ Resto ricevuto in £ 1200 Si suppunga che il bambino abbia fatto le seguenti operazioni: £ (3600 + 1000) = £ 4600 N° di ghiacc . presi Diagramma ad albero della risoluzione dell’algoritmo: Altro esempio: "Gino compra 3 gelati che costano 1200 £ ciascuno e 2 ghiaccioli che costano £ 500 ciascuno. Paga con 10000 £, quanto riceve di resto ?" £ (1200 x 3) = £ 3600 £ (500 x 2) = £ 1000 costo di un ghiacciolo in £ + { 20000 - [ ( 2000 x 3 ) + 8000 ] } = = { 20000 - [ ( 6000 ) + 8000 ] } = = { 20000 - [ 14000 ] } = = { 6000 } (3 + 2) = 5 N° di gelati presi 500 2 x x ( 3600 ) ( 1000 ) + (alimenti comprati da Gino) (costo dei gelati) (costo dei ghiaccioli) (costo degli alimenti comprati) (resto ricevuto da Gino) La prima operazione fatta non è servita per raggiungere la soluzione del problema. E’ necessario ora riorganizzare l’algoritmo risolutivo con i diagrammi ad albero. Attraverso questa rielaborazione linguistica il bambino deve prendere coscenza delle operazioni fatte ma inutili, mentre le operazioni utili le deve interpretare non con una struttura semplicemente sequenziale ma con una architettura spaziale in grado di esprimere i legami fra le parti. 3 10000 [ 4600 ] { 5400 } L’espressione numerica che esprime la risoluzione dell’algoritmo è: { 10000 - [ ( 1200 x 3 ) + ( 500 x 2 ) ] } = = { 10000 - [ ( 3600 ) + ( 1000 ) ] } = = { 10000 - [ 4600 ] } = = { 5600 } dove la 1^ parentesi tonda indica quanto ha speso Gino per i gelati mentre la parentesi quadra indica a quanto ammonta in tutto la spesa fatta da Gino. Diagramma ad albero dell’algoritmo risolutivo: pag. 28 TOP - DOWN Nel paragrafo precedente i diagrammi ad albero e le espressioni numeriche sono stati usati come linguaggi espressivi perché il problema era già stato risolto precedentemente. La risoluzione computistica degli stessi può essere ritenuta una specie di verifica ma nulla di più sul piano operativo. Con il diagramma ad albero il bambino, oltre a fare esercizi relativi alla comunicazione chiara e univoca di concetti difficili da esprimere, si esercita a strutturare spazialmente i dati avuti dal problema e quelli da trovare in modo da trasformare la sequenzialità operativa una architettura fatta dai dati e dai loro legami logico-aritmetici. L’abitudine a tale linguaggio e l’acquisizione di capacità logiche, come quelle legate alla reversibilità del pensiero, portano il bambino ad utilizzare il diagramma ad albero come uno strumento per congegnare la soluzione del problema (il linguaggio non ha più la sola valenza espressiva). Se questo avviene si dice che il bambino utilizza la strategia TOP-DOWN (dal vertice in giu): consiste nel partire dalla questione posta dal problema (cioè dalla domanda esplicitata nel problema) e tramutare questa in altri problemi con livelli di difficoltà minori, poi si ripete , per ognuno di questi, la stessa procedura fino a quando si giunge ai dati. Il seguente esempio aiuta a comprendere meglio la strategia TOP-DOWN: "Ieri un fruttivendolo ha comprato 30 angurie a £ 5000 ciascuna. A tutt’oggi ne ha vendute 23 al prezzo di £ 8000 ciascuna. A quanto ammonta finora il guadagno del fruttivendolo ? ” Il problema dopo essere stato ben analizzato deve essere risolto, cioè deve essere detto a quanto ammonta il guadagno. Il guadagno quando c’è è perché si ha avuto un ricavo maggiore della spesa ed è proprio la differenza fra questi due: Il ricavo avuto da una vendita dipende da quanti pezzi sono stati venduti e a quanto sono stati venduti e, nel problema in esame si ha: [ ricavo ] x prezzo di vendita anguria numero di angurie vendute Il prezzo di vendita e il numero di angurie vendute non costituiscono più un problema perché sono dati. Si è ora al seguente punto di risoluzione del problema: { guadagno } [ ricavo ] [ spesa ] x prezzo di vendita anguria numero di angurie vendute E’ rimasto aperto un solo problema, quello della spesa avuta dal fruttivendolo, e questa dipende da quante angurie e a quale prezzo le ha comprate: [ spesa ] x costo di acquisto anguria numero di angurie comprate e l’algoritmo risolutivo è il seguente: { guadagno } { guadagno } [ ricavo ] [ ricavo ] [ spesa ] E’ stato risolto il problema “guadagno” e sono nati altri due problemi meno complessi che sono il “ricavo” e la “spesa”. Questi due problemi vengono affrontati uno per uno e non contemporaneamente perché il loro legame è già stato trovato. [ spesa ] x prezzo di vendita anguria pag. 29 x numero di angurie vendute costo di acquisto anguria numero di angurie comprate Il diagramma ad albero che ne scaturisce è, rispetto a quelli precedenti, capovolto e dà meglio l’idea del flusso implicito nel nome TOP-DOWN. Ora è necessario passare alla risoluzione dell’algoritmo e questo può essere fatto ancora con i diagrammi ad albero ma nel flusso BOTTOM-UP: 8000 23 5000 30 x x [ 184000 ] [ 150000 ] { 34000 } oppure con le espressioni numeriche: { [8000 x 23 ] - [ 5000 x 30 ] } = = { [ 184000 ] - [ 150000 ] } = = { 34000 } E’ palese il fatto che con questi linguaggi non si affronta il problema di come svolgere le singole operazioni aritmetiche. Queste possono essere svolte separatamente e i risultati vengono poi riportati nella struttura ad albero o nella struttura dell’espressione. Non viene perciò curato il mo- mento strettamente computistico ma si evidenziano i dati a disposizione, i dati elaborati e l’architettura logica che lega tra loro tutti questi dati. Ma allora la strategia TOP-DOWN e il linguaggio dei DIAGRAMMI ad ALBERO possono diventare strumenti mentali in grado di aiutare a ricercare l’algoritmo risolutivo di qualsiasi problema, anche non matematico, scomponendo il problema complesso in un legame operativo o logico di problemi più semplici e poi, ciascuno di questi, può essere affrontato con la stessa strategia fino a quando si è giunti ai dati che non costituiscono più un problema. Si prenda, ad esempio, il problema legato alla lingua madre: "si hanno a disposizione le seguenti parti di una frase: articoli: il, la, la aggettivi: piccolo, grande verbo: colora nomi: bambino, parete, mano preposizione: con Utilizzandole tutte forma una o più frasi che abbiano senso” Si può procedere per tentativi prestando attenzione ad utilizzare tutte e solo le parti indicate. Ma un modo interessante per risolverlo è partire dalla richiesta: una frase. Una frase ha senso se è formata da un soggetto e da un predicato, quindi: { frase } [ soggetto ] [ predicato ] Il problema del soggetto è facilmente risolvibile perché si ottiene con un articolo e con un nome e, a volte, si inserisce anche un aggettivo (il tutto può essere ripetuto più volte). Visti i dati del problema è utile inserire anche l’aggettivo perché ne sono stati dati due: [ soggetto ] articolo aggettivo nome Il problema del predicato è risolvibile iniziando con un verbo seguito, eventualmente, da un soggetto e/o da un gruppo avverbiale. Nel problema in esame il soggetto è meglio inserirlo perché sia hanno a disposizione altri articoli e nomi, e il gruppo avverbiale è necessario inserirlo perché si ha, fra i dati, anche una preposizione: [ predicato ] verbo ( soggetto ) (gruppo avverbiale) A questo punto il diagramma ad albero risulta: { frase } [ soggetto ] art. agg. [ predicato ] nome verbo ( soggetto ) pag. 30 ( gruppo avverbiale ) Il nuovo soggetto è meglio prenderlo ancora con l’aggettivo (ne era rimasto disponibile ancora uno), mentre il gruppo avverbiale contiene la proposizione e un nuovo soggetto che, visto i dati che rimangono disponibili, non conterrà l’aggettivo: { frase } [ soggetto ] art. agg. [ predicato ] nome verbo ( soggetto ) art. agg. ( gruppo avverbiale ) nome prepos. soggetto art. nome Un controllo sull’algoritmo risolutivo per vedere se i dati sono stati utilizzati tutti: ci sono 3 articoli, 2 aggettivi, 3 nomi, 1 verbo e una preposizione. Il tutto corrisponde. Ora è necessario ottenere una o più frasi che abbiano senso. Verrà utilizzato il linguaggio delle espressioni: { [ il piccolo bambino ] [ colora ( la grande parete ) ( con la mano ) ] } Se l’aggettivo relativo al soggetto del predicato fosse stato collocato nel soggetto relativo al gruppo avverbiale, un’altra soluzione avrebbe potuto essere la seguente: { [ il piccolo bambino ] [ colora ( la parete ) ( con la grande mano ) ] } Pur avendo senso è una frase meno probabile della prima, mentre la frase: { [ il piccolo parete ] [ colora ( la grande mano ) ( con la bambino ) ] } rispetta la struttura dell’algoritmo risolutivo ma non costituisce una soluzione accettabile del problema. Un altro esempio: “Hai a disposizione i seguenti alimenti: pomodoro, mozzarella, farina, sale, lievito, olio, acqua nella giusta quantità per fare una pizza. In quale modo li utilizzaresti per preparare una pizza che verrà poi cotta nel forno ? “ e una possibile soluzione può essere ottenuta attraverso le seguenti fasi: { pizza } disporre su [ condimento ] [ base di pasta ] Il problema del condimento e il problema della base di pasta possono essere risolti così: { pizza } disporre su pomodoro [ condimento ] [ base di pasta ] combinare schiacciare mozzarella olio pag. 31 [ impasto ] e, procedendo problema dopo problema, si può giungere alla seguente soluzione: { pizza } disporre su pomodoro [ condimento ] [ base di pasta ] combinare mozzarella schiacciare olio [ impasto ] mescolare farina sale ( liquido ) sciogliere lievito acqua Anche in geometria i diagrammi ad albero costituiscono un linguaggio di incredibile efficacia per trovare l’algoritmo risolutivo: “ Dato il pentagono regolare a fianco disegnato e con le seguenti misure: altezza = cm 3,5 base = cm 4 lato = cm 2 Trovare l’area del pentagono.” 2 cm 3,5 cm 2 cm 4 cm Procedendo con la gradualità mostrata negli esercizi precedenti, si può arrivare al seguente risultato: { area pentagono cm² } + [ area rettangolo cm²] [ area triangolo cm²] x base rettangolo cm x altezza rettangolo cm base triangolo cm ( semialtezza triangolo cm ) : [ altezza triangolo cm ] - altezza pentagono cm E con l’espressione numerica per ottenere anche il valore dell’area: { = = = = = [ 4 x 2 ] + [ 4 x ( [ 3,5 - 2 ] : 2 ) ] } = { [ 8 ] + [ 4 x ( [ 1,5 ] : 2 ) ] } = { [ 8 ] + [ 4 x ( 0,75 ) ] } = { [ 8 ] + [ 4 x ( 0,75 ) ] } = { [8] + [ 3 ] }= { 11 } pag. 32 2 altezza rettang. cm Alcuni esercizi proposti per prendere confidenza con i diagrammi ad albero e con le espressioni numeriche: - Giovanni si reca in città per acquistare prodotti di cartoleria. Esce da casa con £ 50000 e spende: £ 1300 per ciascuna delle 6 penne comprate, £ 15000 per gli acquarelli e £ 2000 per ciascuno dei 3 pennellini necessari. Sapendo che per l’autobus ha speso complessivamente £ 2400 con quanti soldi rientra in casa ? - Utilizzando solo e tutte le seguenti parole: fumava, zia, la, bocchino, Lucia, una, lunga, bionda, di, con, sigaretta, il forma una frase che abbia senso. - Data la figura geometrica sotto disegnata: 4 cm quale è la seconda. Questo poco si adatta alle capacità operative del bambino che procede con sequenzialità di azioni corporee e quindi con sequenzialità di azioni mentali. - La possibilità di scrivere operazioni di confronto e scelta. Sono operazioni sempre presenti in ogni attività e con i diagrammi ad albero non si possono esprimere. Questo fatto è ancora più evidente quando l’algoritmo risolutivo viene scritto con le espressioni, è una strutturazione di tanti dati e di tante operazioni, ma nessuna di queste è un confronto con relativa scelta. - La possibilità di ripetere una sequenza operativa un numero di volte che non può essere deciso a priori. Ad esempio: riempi un bicchiere e travasalo nella bottiglia fino a quando questa è piena. Nessuno con questi dati può dire quante volte deve essere ripetuta la sequenza di operazioni e, con i diagrammi ad albero, questo fatto diventa impossibile da scrivere. 1 cm 2 cm 5 cm 2 cm 2 cm 4 cm trovare la sua area. DIAGRAMMI DI FLUSSO I diagrammi ad albero costituiscono un ottimo strumento linguistico per esprimere o per trovare un algoritmo risolutivo ma, purtroppo, non in tutti i problemi risulta utile. Ci sono dei problemi tipo: “Gigi deve uscire di casa per andare a trov are la nonna. Deve prendere l’ombrello ? “ “Ho a disposizione un telefono di casa con tastierino numerico e devo informare Aldo, che ha il telefono, di quanto mi è successo a scuola. Con quali operazioni risolvo il problema ? “ Si ha la necessità di un linguaggio che permetta di esprimere in modo inequivocabile gli aspetti logico-sequenziali, piuttosto che quelli combinatori o associativi fra i dati, di ciò che viene fatto per risolvere un problema, fare nel senso di azioni ordinate e condizionate dalla situazione contingente.Questo linguaggio deve essere poi adatto anche alle età mentali dei bambini della scuola elementare e quindi deve utilizzare grafismi facili da riprodurre. Il linguaggio dei DIAGRAMMI DI FLUSSO permettono di ottenere tutto quanto detto e si basa su scritture di tipo: - ideografico (il tipo di operazione viene evidenziato con una forma geometrica), - alfabetico (all'interno della forma geometrica ideografica vengono scritti i dati che verranno operati e l'operazione), - simbolico (molte operazioni vengono espresse tramite i simboli). Viene inoltre utilizzata l’ideografia delle frecce necessaria per indicare l'ordine secondo il quale le operazioni vanno eseguite. Gli ideogrammi normalmente usati sono i seguenti: Indica le operazioni di INIZIO o di FINE di un intero algoritmo. “Ho un rubinetto dell’acqua chiuso ed una pentola in mano. Quali operazioni devo fare per riempire la pentola fino a metà d’acqua?” Si ha la necessità di un linguaggio che esprima in maniera più semplice e percettivamente immediata: - Il giusto modo in cui le azioni si susseguono. Con i diagrammi ad albero molte operazioni sono rappresentate allo stesso livello e quindi non viene indicata quale è la prima operazione e pag. 33 Indica un comando da eseguire come: fare un calcolo, assegnare valori, eseguire istruzioni, trasformare una qualsiasi cosa,... Indica il comando di assunzione di dati o di informazioni ma, in alcune pubblicazioni, anche il comando di visualizzazione dei dati elaborati. Indica il comando di visualizzazione dei dati elaborati e di qualsiasi altro dato. Indica le operazioni di confronto (fra dati o situazioni) e di scelta di cosa fare in funzione dell'esito del confronto Indica la direzione del flusso delle operazioni e collega sempre altri due ideogrammi. In base a quanto detto, le scritture: apri l’ombrello avanza di 3 passi C ç A * B stanno ad indicare comandi, istruzioni, assegnazioni di valori e, in particolare l’ultimo ideogramma è da interpretare come: “ moltiplica il valore di A con il valore di B e il prodotto risultante attribuiscilo come valore a C”. Analogamente: A>B Vero RISPONDE Falso Vero Falso Significano che se quanto specificato all’interno dell’ideogramma è vero si deve proseguire il diagramma di flusso sul percorso volto a sinistra, mentre se è falso il percorso è quello di destra. FASE ESPRESSIVA In questa fase i diagrammi di flusso vengono utilizzati per esprimere in modo diverso ciò che gli altri hanno risolto ed utilizzano, per esprimelo, la lingua madre. Problema: “che cosa si deve fare per uscire di casa pronti per andare a scuola ? “ Se Arturo propone il suo algoritmo risolutivo, utilizzando la lingua madre, con il seguente racconto scritto: “Alla mattina mi sveglio e poi mi alzo. Faccio la colazione e vado in bagno per lavarmi e per pulirmi i denti. Mi vesto, prendo la cartella e sono pronto” si può ottenere una traduzione semplice con il diagramma di flusso: INIZIO MI SVEGLIO lato AB 2p, N°lati ordine di precisione MI ALZO FACCIO COLAZIONE Indicano che per procedere oltre è necessario assegnare i valori alle grandezze specificate. Ad esempio nel secondo ideogramma si potrebbe attribuire a «2p» il valore “256” e al «N° lati» il valore “8” mentre, nel terzo ideogramma si potrebbe attribuire ad «ordine di precisione» il valore “centesimi”. VADO IN BAGNO MI LAVO MI PULISCO I DENTI MI VESTO Area raggio, cfr x, y, z PRENDO LA CARTELLA Indicano che chiunque risolverà l’algoritmo risolutivo, scritto con i diagrammi di flusso, arrivato a questo ideogramma deve esternare, comunicare, rendere noto il valore di quanto specificato. Per il secondo ideogramma l’esecutore potrebbe dire “10” per il «raggio» e “62,8” per la «cfr». FINE Sono stati utilizzati gli ideogrammi rettangolari perché sono tutte operazioni quelle che vengono descritte da Arturo. pag. 34 Altro problema: “che cosa devi fare per andare dall’aula alla palestra ? “ INIZIO VADO IN CITTA’ Una possibile soluzione può essere la seguente: “Apro la porta dell’aula e esco nel corridoio, giro a destra e percorro tutto il corridoio fino in fondo, poi giro a destra apro la porta e mi trovo in palestra” Trascritto con i diagrammi di flusso diventa: VISITO IL MERCATO FACCIO ACQUISTI VADO AL RISTORANTE HO FAME INIZIO Falso APRO PORTA AULA E ESCO Vero ORDINO PASTASCIUTTA GIRO A DESTRA ORDINO BISTECCA PERCORRO TUTTO IL CORRIDOIO MANGIO GIRO A DESTRA PRENDO L’AUTOBUS APRO LA PORTA E ENTRO RITORNO A CASA FINE FINE Da questi primi esempi si può comprendere quanto i diagrammi di flusso siano potenti nello evidenziare la sequenza delle azioni e quali azioni in modo che a “colpo d’occhio” si abbia il dominio dell’intero algoritmo. SE ALLORA ALTRIMENTI Per comodità di comunicazione i Diagrammi Di Flusso verrano indicati con la sigla DDF. Se l’utilizzo dei DDF fosse come quello visto nei due esempi precedenti, il tutto potrebbe apparire come una inutile complicazione di cui non si sente la necessità. Ma se nell’algoritmo non ci sono solo sequenze di azioni e si trovano anche dei confronti che portano a scelte di azioni diverse, allora il DDF diventa un linguaggio veramente efficace sul versante espressivo. Esempio: La mamma spiega a Maria che cosa farà quel giorno : “ Andrò in città e visiterò il mercato per fare degli acquisti. Poi andrò al ristorante e ordinerò una bistecca, ma se avrò fame ordinerò anche una pastasciutta. Dopo aver mangiato prenderò l’autobus e ritornerò a casa.” Il gruppo centrale di ideogrammi composto con il rombo e le due diramazioni indica la possibilità di una scelta, ma non una scelta libera, infatti è condizionata dalla condizione logica della forma proposizionale “ho fame”. Questa è l’espressione che esprime la situazione condizionale: “ordino la pastasciutta alla condizione di avere fame” e, espresso in termini logici più rigorosi: “Se (ho fame) Allora (ordino la pastasciutta)” Ma in molti problemi la situazione condizionale impone una particolare azione anche nel caso la situazione logica è falsa. Ad esempio: “Pippo è andato ai servizi igienici del ristorante ha guardato dove c’era l’indicazione dei maschi, è entrato ha fatto il suo bisogno e poi è uscito” diventa: La stessa spiegazione in DDF è: pag. 35 INIZIO Il blocco centrale degli ideogrammi appare percettivamente diverso dal precedente e indica non più una sola azione, che può essere eseguita o no, ma due in termini di aut aut (l’esecuzione di una implica l’impossibilità di eseguire l’altra azione) La corrispondente espressione in termini logici più rigorosi è: “Se (sono maschio) Allora (entro nei servizi igienici dei maschi)” Altrimenti (entro nei servizi igienici delle femmine)” VADO AI SERVIZI IGIENICI Falso SONO MASCHIO ENTRO NEI SERVIZI DELLE FEMMINE Vero ENTRO NEI SERVIZI DEI MASCHI FACCIO I MIEI BISOGNI Come si può notare i DDF evidenziano maggiormente le situazioni logiche condizionali insite in un algoritmo e, tramite i percorsi grafici, le porta ad un livello quasi percettivo. ESCO DAI SERVIZI IGIENICI FINE In un algoritmo di queste situazioni logiche condizionali se ne possono trovare anche più di una e, a volte, anche in situazioni consecutive. Se ad esempio un maglificio ha il seguente problema: “Nel maglificio esiste un reparto di controllo e di smistamento dei capi di abbigliamento che escono dal reparto di lavorazione. Occorre controllare se il capo è o non è difettoso e poi, nel caso che non sia difettoso, è necessario separare i capi maschili da quelli femminili. Tutti i capi devono essere inviati al magazzino e devono essere separatamente contati. L’intero processo termina solo quando i capi da esaminare sono finiti.” Il DDF che esprime l’algoritmo necessario potrebbe essere il seguente: INIZIO PRENDERE UN MAGLIONE E ESAMINARLO Falso Falso E’ DI DONNA E’ DIFETTOSO Vero Vero IMMAGAZZINARLO NEL REPARTO “MAS” IMMAGAZZINARLO NEL REPARTO “DON” IMMAGAZZINARLO NEL REPARTO “DIF” AGGIUNGI 1 AL CONTEGGIO “n° MAS” AGGIUNGI 1 AL CONTEGGIO “n° DON” AGGIUNGI 1 AL CONTEGGIO “n° DIF” MAGLIONI TERMINATI Falso Vero FINE Potrebbe sembrare che con i DDF si riesca ad esprimere bene solo gli algoritmi che richiedono azioni ma, già dal prossimo esempio, si può ap- prezzare anche il suo impiego in algoritmi che richiedono operazioni matematiche e dati numerici. Problema: pag. 36 “La mamma di Aldo va al supermercato e compra: 2 Kg di pane al costo di 2900 £/Kg, 3 hg di mortadella al costo di 1800 £/hg, 1.5 Kg di formaggio grana al costo di 20000 £/Kg, una torta di fragole che costa 14000 £. Quanto deve pagare la mamma di Aldo sapendo che se l’ammontare della spesa supera le 50000 £ avrà uno sconto di £ 4000 ?“ PP =peso pane (2 Kg) CPK =costo pane per Kg (2900 £) PM =peso mortadella (3 hg) CMH =costo mortadella per hg (1800 £) PF =peso formaggio (1.5 Kg) CFK =costo formaggio per Kg (20000 £) CT =costo torta (14000 £) LS =limite per avere lo sconto (50000£) SC =eventuale sconto (4000 £) CP = costo pane CM = costo mortadella CF = costo formaggio SP = spesa fatta PG = cifra da pagare. L’algoritmo risolutivo del problema, può essere espresso con un linguaggio inizialmente sommario e poi approfondito e spinto fino ai particolari. INIZIO DATI DEL PROBLEMA INIZIO CALCOLO: Costo del pane Costo della mortadella Costo del formaggio PP, CPK, PM, CMH, PF, CFK, CT, LS, SC CP ç CPK * PP CM ç CMH * PM CF ç CFK * PF COSTO TOT.: Somma dei costi di ogni alimentare acquistato Vero COSTO TOT > 50000 PAGA: Costo tot - 4000 SP Falso PAGA: Costo tot ç Vero PG ç CP + CM + CF + CT SP > LS SP - SC Falso PG ç SP FINE Per spingere i DDF ad esprimere in maniera dettagliata l’algoritmo è necessario ricorrere all’uso di abbreviazioni o di sigle per indicare sia i dati forniti dal testo del problema, sia quelli che nascono dall’elaborazione. Ad esempio: PG FINE L’algoritmo risolutivo prevede i due casi anche se i dati posti dal problema porteranno a praticarne uno solo di questi. In tal modo si porta il bambino a prevedere tutti i possibili casi ed a esprimerli, avviando così un processo di generalizzazione. Infatti se i dati posti dal problema fossero quantitativamente diversi (ad esempio il formaggio di grana comprato è di 0,5 Kg invece che 1,5 Kg) l’algoritmo risolutivo non cambierebbe mentre la sequenza delle operazioni da eseguire potrebbe cambiare perché invece di percorrere la strada corrispondente al “vero” si dovrebbe percorrere quella del “falso”. La soluzione computistica dell’algoritmo non si può essere esprimere con un’espressione numerica perché questo linguaggio non contempla le operazioni di scelta. E’ più utile un linguaggio tabulare dove di riga in riga si registra il risultato delle operazioni indicate nel DDF: PP Kg CPK £/Kg 2 2900 PM hg CMH £/hg 3 1800 PF CFK Kg £/Kg 1,5 2000 0 CT £ 1400 0 LS £ 5000 0 pag. 37 SC £ 4000 CP £ CM £ CF £ 5800 5400 3000 0 SP £ 5520 0 PG £ 5120 0 Se il formaggio acquistato fosse stato del peso di 0,5 Kg: PP Kg CPK £/Kg 2 2900 PM hg CMH £/hg 3 1800 PF Kg 0,5 CFK £/Kg CT £ LS £ SC £ 2000 0 1400 0 5000 0 4000 CP £ CM £ CF £ 5800 5400 1000 0 SP £ PG £ 3520 0 3520 0 Nel secondo caso non si è fatta la sottrazione dello sconto ma l’algoritmo che indica quali operazioni fare è sempre stato lo stesso. LIMITAZIONE OPERATIVITA’ Nel seguente problema si fa ricorso ad un espediente didattico estremamente usato in informatica: limitare il numero ed il tipo di operazioni consentite. In matematica una tale limitazione non viene mai posta, si lascia al bambino la possibilità di usare tutte le operazioni che conosce. In informatica tutto ciò non è possibile perché tutti i linguaggi artificiali hanno una potenzialità operativa parziale (un linguaggio non può avere tutte le operazioni inventate dall'uomo, sarebbe immenso, difficilissimo da dominare e non potrebbe essere alloggiato in un normale computer). Visto che nel campo computeristico esistono tanti linguaggi artificiali (il PASCAL, il LOGO, il BASIC, l'RPG, il FORTRAN, il COBOL, il C, il PROLOG, il VISUAL BASIC, il VISUAL “C”, ...) e ognuno di loro è dotato di un'operatività diversa da quella di un altro, quale linguaggio è opportuno usare? Quello che: - possiede il maggior numero di operazioni che servono per risolvere il problema; - permette di aggirare la mancanza di un'operazione con una sequenza di operazioni in dotazione. Problema: “Trova in quale modo è possibile ottenere il quoto e il resto di una divisione fra due numeri naturali qualsiasi utilizzando solo le seguenti operazioni: addizione, sottrazione e confronto” Un modo per risolvere il problema potrebbe essere il seguente: “Partendo da un valore nullo lo incremento del divisore e conto quante volte ho effettuato l’incremento per arrivare il più possibile vicino al dividendo, rimanendo sempre minore del dividendo. Facendo ora la sottrazione fra il dividendo e il valore nato dagli incrementi ottengo anche il resto” Un’altra soluzione: “Partendo da un valore pari al dividendo lo decremento del divisore e conto quante volte ho effettuato il decremento per arrivare ad un valore minore del divisore. Il resto è proprio questo valore.” Fra i due algoritmi è preferibile il secondo, basato sul quoto come sottrazione ripetuta. Le sigle che verranno utilizzate sono: DD DS = valore del dividendo = valore del divisore VAL CON RE QU = valore da decrementare = valore del contatore = resto della divisione = quoto della divisione INIZIO 1 DD, DS 2 VAL ç DD CON ç 0 Falso 3 4 6 pag. 38 CONç CON + 1 VAL ç VAL - DS Vero VAL < DS 5 QU, RE FINE QU ç CON RE ç VAL Il 4° blocco del DDF esprime una addizione che, scritta con il simbolo di uguaglianza matematica, risulterebbe assurda: COM = COM + 1 è perciò necessario distinguere il significante di uguaglianza dal significante di assegnazione di un valore. Quindi se: A ç B * C significa: “assegna ad A il valore che risulta dalla moltiplicazione del valore di B con il valore di C”, allora: CON ç CON + 1 VAL ç VAL - DS significano: “assegna a CON il valore che risulta dall’addizione del valore che ha CON con 1” e “assegna a VAL il valore che risulta dalla sottrazione ...”, cioè: “incrementa CON di 1” e “decrementa VAL di DS”. Ma è veramente una soluzione del problema proposto ? E’ necessario procedere ad una verifica. Riguardo alle operazioni utilizzate non ci sono dubbi, dal DDF si può facilmente verificare che sono solo quelle concesse. Per verificare la validità dell’algoritmo espresso è necessario procedere all’esame di alcuni casi : 1°) quoto e resto diversi da zero; 2°) quoto diverso da zero e resto nullo; 3°) quoto nullo e resto diverso da zero; 4°) dividendo nullo; 5°) divisore nullo. E’ buona norma verificare gli algoritmi anche e specialmente nei casi particolari. Infatti una analisi poco accurata porta, normalmente, a risolvere pensando solo i casi più comuni ed a trascurare le implicanze operative derivanti dai casi particolari. DD DS 1 2 3 4 3 4 3 4 3 5 6 17 VAL CON < QU RE 5 17 0 12 1 7 2 DD DS 1 2 3 4 3 4 3 5 6 10 10 5 0 1 falso 0 2 vero 2 2 3 VAL CON < 0 0 QU RE 5 3 0 vero 0 0 0 VAL CON < 3 3 QU RE 5 0 0 vero DD DS 1 2 3 4 3 4 3 4 3 QU RE falso DD DS 1 2 3 5 6 < 5 DD DS 1 2 3 5 6 VAL CON 7 VAL CON < 0 0 0 0 QU RE 0 7 0 7 1 falso falso 7 2 falso 7 3 falso falso falso falso 2 3 vero 3 3 2 2 In quest’ultimo caso si può vedere che l’algoritmo risolutivo non dà risultati corretti (porta ad una procedura che non termina mai e non può dare una risposta). E’ allora necessario correggere l’algoritmo risolutivo in modo da impedire che il divisore possa essere nullo: pag. 39 - avanzare di un numero di passi assegnato; - ruotare a destra di un angolo retto; - ruotare a sinistra di un angolo retto; - osservare ciò che ha di fronte; - saper riconoscere se è una porta. Quale è la sequenza di operazioni che deve fare il bambino per uscire dalla stanza?” INIZIO DD, DS ERRORE Vero DS = 0 Falso VAL ç DD CON ç 0 porta bambino Falso corridoio Vero VAL < DS CONç CON + 1 QU ç CON VAL ç VAL - DS RE ç VAL stanza QU, RE FINE PROCEDURE ITERATIVE In questo algoritmo si possono notare due configurazioni che negli algoritmi dei problemi precedenti non comparivano: il percorso riporta a riprendere da un punto già affrontato prima. In tal caso si dice che si è in una procedura iterativa e l’insieme delle istruzioni che si ripetono viene detto loop, cioè giro, anello. In quest’ultimo diagramma di flusso ci sono due loop: 1°) Immetti DD e DS confronta DS con lo 0 comunica “ERRORE” «--+ ¦ ---+ 2°) Confronta VAL con DS incrementa COM di 1 decrementa VAL di DS «--+ ¦ ---+ Le procedure iterative sono molto importanti perché sono, in molti casi, indispensabili per ottenere un algoritmo risolutivo. Problema: “In una stanza, come quella rappresentata nel disegno sottostante, un bambino della classe scelto a caso viene posto con le spalle appoggiate alla parete che si trova sulla sinistra della porta. Il bambino è in grado di compiere solo le seguenti operazioni: I bambini si fanno condizionare dall'aspetto geometrico-metrico del problema, tentano una indagine dimensionale degli spazi e in funzione di questa esprimo una "soluzione" del tipo: “vado avanti di circa 9 passi, poi ruoto a destra e proseguo con altri 5 passi e mi trovo nel corridoio.” ma questa non è una soluzione perché se anche dovesse funzionare per un particolare bambino, non può funzionare per un qualsiasi bambino, dato che il PASSO non è una unità di misura (varia da bambino a bambino). Una vera soluzione deve prendere atto che non è possibile fare ricorso ad una unità di misura e che, quindi, le distanze devono essere interpretate per approssimazioni successive. Nella falsa soluzione precedente l'operazione del confronto-scelta non è stata usata ed invece è fondamentale perché grazie ad essa è possibile creare una procedura iterativa basata sul seguente loop: Avanza di 1 passo ruota a destra guarda cosa hai di fronte vedi una porta se NO ruota a sinistra «--+ ¦ ¦ ¦ ---+ Se le sigle usate sono le seguenti: AnP DX SX GDF VP = avanti di n passi = ruotare a destra = ruotare a sinistra = guardare di fronte = vedere la porta allora l’algoritmo risolutivo può essere: pag. 40 INIZIO Anche quando il bambino si trova di fronte alla porta non può concludere l’algoritmo con un’istruzione del tipo: “avanti di 5 passi”, per lo stesso motivo espresso prima. E’ quindi ancora una volta indispensabile il loop iterativo. A1p DX GDF falso VP SX vero A1p VP vero Questi loop si possono interpretare come una ripetizione di azioni o operazioni per un numero di volte limitato: Ripeti N volte [ .... istruzioni .... ] oppure Ripeti [ .... istruzioni .... ] fino a quando [ condizione logica ] falso FINE ALTRI CASI DI UTILITA’ DEI DDF I DDF costituiscono un ottimo linguaggio per esprimere gli algoritmi relativi alle classificazioni. “Fornendo il disegno di un triangolo, Gino deve essere in grado, dopo averne misurato sia le lunghezze dei lati sia le ampiezze degli angoli interni, di classificarlo” Una possibile soluzione può essere la seguente: INIZIO DISEGNO DEL TRIANGOLO MISURA I LATI MISURA GLI ANGOLI HA TUTTI I LATI UGUALI vero ACUTANGOLO EQUILATERO falso falso HA DUE LATI UGUALI HA UN ANG. RETTO vero RETTANGOLO vero ISOSCELE falso falso HA UN ANG. OTTUSO SCALENO vero OTTUSANGOLO FINE pag. 41 Altro impiego dei diagrammi di flusso si ha per descrivere situazioni che nella realtà appaiono semplici perché vengono affrontate quotidianamente, ma sul versante logico-razionale presentano notevoli difficoltà a causa della grande quantità di micro-operazioni che è necessario coordinare. INIZIO PSR AR OL Si prenda l’esempio del riempire d’acqua una pentola, ma fino a metà. Le operazioni concesse sono: falso LAM PSR = porre la pentola sotto il rubinetto, AR = aprire il rubinetto, CR = chiudere il rubinetto, OL = osserva il livello dell’acqua; LAM = livello a metà pentola. vero CR FINE Altro esempio è quello di una telefonata. Si definiscono prima i mezzi e le operazioni che sono disponibili: - uso di un telefono di tipo domestico; - confronto e scelta; - alzare la cornetta; - abbassare la cornetta; - ascoltare; - comporre il numero; - discorrere, comunicare; INIZIO FINE vero N° TELEFONO falso ALZARE CORNETTA N° TENT. SUFFICIENTE ASCOLTARE SEGNALE C’E’ LA LINEA falso ABBASSARE CORNETTA vero COMPORRE N° TEL. ASCOLTARE SEGNALE falso ATTESO A SUFFICIENZA falso vero ABBASSARE CORNETTA falso RISPONDONO vero COMUNICARE. FINE pag. 42 E’ OCCUPATO vero ALCUNE CONCLUSIONI Per impostare una corretta educazione informatica non è necessario ricorrere all'uso del computer, ma è importante insegnare al bambino ad analizzare, a razionalizzare, a risolvere ed a esprimere gli algoritmi risolutivi dei problemi con i linguaggi più opportuni. Ovviamente occorre conoscere più linguaggi formali ed i più importanti, oltre a quelli aritmetico, tabulare ed insiemistico, sono quelli dei diagrammi ad albero e dei diagrammi di flusso. Un altro linguaggio non semplicemente informatico ma computeristico è il LOGO. Questo linguaggio si basa su operazioni di tipo spaziale come quelle posizionali e direzionali e cambiamenti metrici di posizioni e direzioni. Attraverso l'uso di queste operazioni permette di tracciare dei grafici sul monitor del computer. Questo linguaggio richiede la conoscenza e l'uso delle ampiezze angolari in gradi sessagesimali e quindi risulta adatto (entro certi limiti) per bambini della 4^/5^ classe, però può essere semplificato dall'insegnante, attraverso la costruzione di particolari programmi, e quindi può essere proposto anche ai bambini più piccoli. Ma occorre evidenziare che il compito dell'insegnante non è addestrare all'uso del LOGO o di qualsiasi altro linguaggio computeristico, ma è, eventualmente, far capire al bambino come il LOGO è uno dei tanti linguaggi che permettono di risolvere e di esprimere i problemi. Se l'insegnante è intenzionato a fare informatica utilizzando il computer deve prima dominare culturalmente lo strumento informatico in maniera che passi una cultura e non un addestramento. Ultimo esempio con difficoltà non più adatte ai bambini della scuola elementare: “L'approssimazione di un numero decimale” Approssimare un numero decimale significa trasformarlo nel numero intero ad esso più vicino, quindi se la parte decimale è minore di 0,5 si approssima all'intero minore (si toglie la parte decimale) altrimenti si approssima all'intero maggiore (si prende la sola parte intera incrementata di una unità). INIZIO N° DECIMALE PRENDI LA PARTE DECIMALE falso PARTE DEC. < 0,5 L’APPROSSIMAZIONE E’ LA PARTE INTERA + 1 L’APPROSSIMAZIONE E’ LA PARTE INTERA APPROSSIMAZIONE FINE pag. 43 vero Se il compito di approssimare un numero decimale deve essere fatto fare ad un elaboratore occorre tener presente l'operatività di quest'ultimo e, nel nostro caso, le operazioni che più servono sono due: - l'addizione [ + ] - l'intero di ... [ INT(...) ] che trasforma un numero decimale nel corrispondente senza la parte decimale. INIZIO N° DECIMALE L’APPROSSIMAZIONE DEL NUMERO DECIMALE E’ int ( N°DECIMALE + 0,5 ) La nuova soluzione può essere quella espresso a fianco e questa può diventare anche un nuovo modo per approssimare. APPROSSIMAZIONE FINE pag. 44 INDICE LE INTELLIGENZE ...................................................................................................................................................................................... 2 INTELLIGENZE: NATURALI, ARTIFICIALI.......................................................................................................................................................2 LIVELLI DI INTELLIGENZA ....................................................................................................................................................................3 Intelligenze ripetitive................................................................................................................................................................................ 3 Intelligenze ereditarie............................................................................................................................................................................... 4 Intelligenze creative.................................................................................................................................................................................. 6 INFORMAZIONI DATI E MEMORIE .................................................................................................................................................... 7 INFORMAZIONI E DATI ............................................................................................................................................................................7 MEMORIA.......................................................................................................................................................................................................7 TIPI DI MEMORIE ........................................................................................................................................................................................8 Differenze dei tempi d’accesso................................................................................................................................................................ 8 Scrivibilità................................................................................................................................................................................................... 9 Ruolo svolto nelle apparecchiature........................................................................................................................................................ 9 LINGUAGGI ...................................................................................................................................................................................................11 LINGUAGGI ICONOGRAFICI ................................................................................................................................................................11 LINGUAGGI IDEOGRAFICI....................................................................................................................................................................12 Pregi del linguaggio ideografico..........................................................................................................................................................13 Difetti del linguaggio ideografico........................................................................................................................................................13 LINGUAGGI ALFABETICI ......................................................................................................................................................................13 Vantaggi dei linguaggi alfabetici.........................................................................................................................................................14 STESSI DATI CON LINGUAGGI DIVERSI..........................................................................................................................................16 Alcune curiosità.......................................................................................................................................................................................18 IL PROBLEM SOLVING ...........................................................................................................................................................................21 ANALISI DI UN PROBLEMA ..................................................................................................................................................................21 APPROCCI ALLA SOLUZIONE..............................................................................................................................................................21 SOLUZIONE.................................................................................................................................................................................................22 VERIFICA .....................................................................................................................................................................................................22 PROBLEMA..................................................................................................................................................................................................23 LINGUAGGI ALGORITMICI..................................................................................................................................................................24 GRADUALITA’ LINGUISTICA ..............................................................................................................................................................24 DIAGRAMMI AD ALBERO .....................................................................................................................................................................27 Espressioni numeriche............................................................................................................................................................................28 TOP - DOWN.................................................................................................................................................................................................29 DIAGRAMMI DI FLUSSO ........................................................................................................................................................................33 FASE ESPRESSIVA ................................................................................................................................................................................34 SE ALLORA ALTRIMENTI....................................................................................................................................................................35 LIMITAZIONE OPERATIVITA’...........................................................................................................................................................38 PROCEDURE ITERATIVE....................................................................................................................................................................40 ALTRI CASI DI UTILITA’ DEI DDF...................................................................................................................................................41 ALCUNE CONCLUSIONI.....................................................................................................................................................................43 pag. 45