|
|
| << | < | > | >> |IndicePrefazione xi Introduzione xvii Ringraziamenti xxi Parte I - Concetti 1 Capitolo 1 - L'hardware del PC 5 1.1 Il processore, la scheda madre e la memoria 7 1.1.1 Il processare 7 1.1.2 La scheda madre 8 1.1.3 La memoria RAM 9 1.2 Dispositivi di ingresso/uscita 11 1.2.1 Il monitor e la scheda video 11 1.2.2 La scheda audio 12 1.2.3 L'hard disk 12 1.2.4 Le unità di ingresso/uscita ausiliarie 13 1.2.5 La connessione di rete 15 1.3 Altre apparecchiature 16 1.3.1 Il contenitore esterno con l'alimentatore 16 1.3.2 Il mouse e la tastiera 16 1.3.3 Lo scanner 18 1.4 L'evoluzione dell'hardware 18 1.5 La Macchina di Von Neumann 19 Capitolo 2 - Il software del PC 21 2.1 Il BIOS 22 2.2 Il sistema operativo 23 2.2.1 Il kernel 25 2.2.2 Il file system 26 2.2.3 L'interfaccia utente 28 2.2.4 Le applicazioni di sistema 32 2.2.5 Breve storia dei sistemi operativi 33 2.3 Utilità 35 2.3.1 Text editor 35 2.3.2 Backup 35 2.3.3 Altre utilità 36 2.4 Applicazioni per ufficio 36 2.4.1 Word processing 37 2.4.2 Foglio elettronico 39 2.4.3 Programmi di presentazione 41 2.4.4 Database 42 2.5 Altre applicazioni 42 2.5.1 Sistemi di sviluppo 42 2.5.2 Applicazioni scientifiche 43 2.5.3 Applicazioni ludico-multimediali 43 2.5.4 Applicazioni di rete 44 Capitolo 3 - Reti 45 3.1 Le reti di calcolatori 46 3.1.1 Le origini 46 3.1.2 La nascita di Internet 47 3.1.3 TCP/IP e lo scambio di pacchetti 48 3.2 Uso di Internet 50 3.2.1 Protocollo HTTP 50 3.2.2 Protocollo FTP 52 3.2.3 Protocollo TELNET 52 3.2.4 Il servizio di e-mail 52 3.2.5 Newsgroup e chat 53 3.2.6 L'ora di Internet 53 3.2.7 Protocolli peer-to-peer 54 3.3 Le reti e le basi di dati 55 3.3.1 Architettura centralizzata 55 3.3.2 Architettura LAN 55 3.3.3 Architettura client/server 56 3.3.4 Architettura a più livelli 57 3.4 Sicurezza 57 3.4.1 Virus 58 3.4.2 Cavalli di Troia 59 3.4.3 Altre tipologie di attacco 60 3.4.4 Intranet 62 Capitolo 4 - Archiviazione e trattamento dei dati 63 4.1 La rappresentazione digitale dei dati 63 4.1.1 Rappresentazione dei numeri 63 4.1.2 Rappresentazione dei testi 64 4.1.3 Rappresentazione di immagini e suoni 65 4.1.4 Compressione dei dati 66 4.2 Trattamento di testi 67 4.3 Recupero automatico dell'informazione 69 4.4 Le basi di dati 72 4.4.1 Introduzione 72 4.4.2 Dal file system alle basi di dati 74 4.4.3 Basi di dati relazionali e SQL 76 4.4.4 La rappresentazione logica e la rappresentazione concettuale 80 4.4.5 Sviluppi e prospettive 82 Capitolo 5 - Multimedialità 85 5.1 Le basi tecnologiche della multimedialità 86 5.1.1 Authoring 86 5.1.2 Memorizzazione 86 5.1.3 Trasmissione e distribuzione 87 5.1.4 Rappresentazione 87 5.1.5 Protezione 87 5.2 Le basi concettuali della multimedialità 88 5.3 Gli ipertesti 89 5.3.1 Ipertesti monotestuali 92 5.3.2 Da testo a ipertesto 93 5.3.3 Ipertesti pluritestuali: il Web 94 5.4 Le applicazioni didattiche 98 5.4.1 Luci e ombre della didattica "automatica" 98 5.4.2 Didattica in rete 100 5.5 Le basi di dati multimediali 101 Capitolo 6 - Linguaggi di programmazione 103 6.1 Algoritmi e programmi 104 6.1.1 Algoritmi 104 6.1.2 Il concetto di variabile 107 6.1.3 Interpreti e compilatori 108 6.1.4 Programmi 109 6.1.5 Un esempio di programma Pascal 110 6.2 I linguaggi di programmazione 111 6.2.1 BASIC 112 6.2.2 COBOL 112 6.2.3 FORTRAN 113 6.2.4 C e C++ 114 6.2.5 Java 115 6.2.6 C # 116 6.3 I linguaggi di scripting 116 6.3.1 I linguaggi di scripting di un sistema operativo 117 6.3.2 I linguaggi di scripting dei browser 118 6.4 La complessità della computazione 118 Capitolo 7 - Calcolo scientifico 121 7.1 Il calcolatore e il metodo scientifico 122 7.2 Tipi di errore 123 7.2.1 I numeri reali 123 7.2.2 Errore inerente 124 7.2.3 Errore algoritmico 125 7.2.4 Errore analitico o di troncamento 127 7.3 Problemi diretti e problemi inversi 129 7.4 Grafica tridimensionale 129 7.5 Caos e frattali 131 7.5.1 I frattali 131 Capitolo 8 - Intelligenza artificiale e robotica 135 8.1 Intelligenza artificiale 137 8.1.1 Computer che giocano 138 8.1.2 Alberi di ricerca 138 8.1.3 Giochi a due giocatori 142 8.1.4 Sistemi esperti 144 8.2 La robotica 146 8.2.1 Sensori e attuatori 148 8.2.2 Mobilità 150 Parte II - Sperimentazioni 151 Capitolo 9 - Sperimentazioni con il foglio elettronico 153 9.1 Per cominciare 153 9.1.1 Un primo esempio 154 9.1.2 Indirizzamento assoluto e relativo 157 9.1.3 Un esempio più complesso 159 9.1.4 Uso delle funzioni predefinite 162 9.2 Stampa e grafici 164 9.2.1 Stampa di risultati 164 9.2.2 Grafici 166 9.3 Un utilizzo del foglio elettronico nella ricerca storica 168 9.4 Usi impropri del foglio elettronico 172 9.4.1 Righe e record 172 9.4.2 Ridondanza ed errori 172 Capitolo 10 - Sperimentazioni con le basi di dati 177 10.1 DDL in Access 178 10.1.1 Definizione delle tabelle 178 10.1.2 Definizione degli indici 181 10.1.3 Definizione dei vincoli 181 10.1.4 Osservazioni sui vincoli 184 10.2 Le interrogazioni 185 10.2.1 Le interrogazioni su una tabella con la clausola WHERE 186 10.2.2 Le interrogazioni su una tabella con la clausola GROUP BY 188 10.2.3 Le interrogazioni annidate 188 10.2.4 Attributi calcolati 189 10.2.5 Un'interrogazione su due tabelle 189 10.3 Normalizzazione degli schemi 192 10.3.1 Prima forma normale 192 10.3.2 Altre forme normali 193 10.4 Le relazioni tra due tabelle 194 10.4.1 Modello concettuale 195 10.4.2 Modello logico 197 10.4.3 La chiave esterna in Access 199 10.5 Vincoli esprimibili su più tabelle 199 10.5.1 Vincolo di integrità referenziale 199 10.5.2 Vincoli di aggiornamento e vincoli di cancellazione 201 10.5.3 Il trigger 201 10.6 Interrogazioni su una base di dati 201 Capitolo 11 - HTML e XML 205 11.1 Il linguaggio HTML 206 11.1.1 Struttura dei tag 207 11.1.2 Semplici elementi di formattazione 209 11.1.3 I riferimenti assoluti e relativi 213 11.1.4 Inserimento di immagini 214 11.1.5 Validazione 219 11.1.6 Forma e contenuto 221 11.1.7 Pubblicazione e indicizzazione 223 11.2 Applet e plugin 224 11.2.1 I programmi dentro le pagine 224 11.2.2 I plugin: estensioni del browser 226 11.3 XML 228 11.3.1 La persistenza dei dati 228 11.3.2 Il linguaggio XML 229 11.3.3 Parsing 231 11.3.4 DTD, schemi e processori 233 11.3.5 XHTML 236 Capitolo 12 - Gestione di una piccola rete locale 239 12.1 Collegamento di più computer 240 12.1.1 La connessione a livello fisico 240 12.1.2 Configurazione logica 243 12.1.3 Condivisione dei dati tra un portatile e un desktop 245 12.2 Accesso a Internet 246 12.2.1 Accesso a Internet via rete telefonica commutata 247 12.2.2 Accesso a Internet via ISDN 248 12.2.3 Accesso a Internet via ADSL 248 12.3 Sicurezza delle reti 249 12.3.1 Password 250 12.3.2 Antivirus 250 12.3.3 Limitazione dei servizi 251 12.3.4 Firewall 251 12.4 Sicurezza nell'uso dell'e-mail 252 Capitolo 13 - Programmazione e complesità 255 13.1 La ricorsione 255 13.2 Il calcolo dei numeri di Fibonacci 256 13.2.1 Un programma ricorsivo 257 13.2.2 Un programma iterativo 257 13.2.3 Prestazioni a confronto 258 13.3 Il calcolo dei numeri primi 259 13.3.1 Un programma "scemo" 259 13.3.2 Un programma "furbo" 260 13.3.3 Un programma altamente sofisticato 260 13.3.4 Prestazioni a confronto 261 13.4 La torre di Hanoi 262 Capitolo 14 - Uso di un word processor 267 14.1 Tecnologia per la composizione e la stampa 268 14.2 La struttura di un documento 269 14.2.1 Elementi della pagina 269 14.2.2 Elementi del documento 271 14.2.3 Elementi tipografici 272 14.2.4 Le regole d'oro per scrivere bene 275 14.3 Qualche sperimentazione con Word 276 14.3.1 Indici e numerazioni automatiche 276 14.3.2 Word e Access 278 Appendice A - Le unità di misura 281 Glossario 285 Bibliografia 301 |
| << | < | > | >> |Pagina xviiIntroduzioneUn'esigenza diffusa nella società in cui viviamo, sommersi da nuovi strumenti che sembrano garantirci quasi una vita da semidei, è quella di acquisire consapevolezza culturale delle loro effettive capacità, per poter poi usarli al meglio, quando occorre, nel lavoro e nel tempo libero. Spesso, però, guide e manuali ci sommergono con dettagli talmente minuziosi da diventare inutili per un problema particolare e certo inadatti a offrire una visione sintetica. Talvolta anche i docenti di corsi universitari, per fornire ai loro allievi una visione d'insieme coerente e completa, devono dedicare tempo all'insegnamento dell'alfabetizzazione informatica prima di entrare nel merito delle applicazioni specifiche. La stessa alfabetizzazione informatica ha profondamente cambiato obiettivo: negli anni '60 si insisteva nel far conoscere i principi di programmazione dando molta importanza alla capacità di calcolo (allora prettamente scientifico o commerciale) della macchina; oggi, invece, l'insegnamento dei rudimenti informatici non riguarda tanto il computer, quanto piuttosto le applicazioni, che investono numerosi campi della vita di ogni giorno. Le competenze che così si acquisiscono creano una nuova generazione di artigiani che plasmano nuovi tipi di creazioni. Si sono allora diffusi i corsi di "guida per computer"; se però si desidera una visione di insieme non limitata alla sola pratica, questi insegnamenti hanno la necessità di essere integrati alla luce di un'effettiva cultura informatica. È infatti importante non fare del computer un giocattolo per "scimmie ammaestrate", ma uno strumento di pensiero e di crescita. Non potevamo iniziare questo testo senza uno sguardo alla storia dell'informatica. Pochi eventi, infatti, hanno avuto maggiore impatto nella società umana di quanto lo abbia avuto la nascita dei calcolatori elettronici. Per capire che cosa è accaduto è necessario percorrere brevemente la storia del progresso tecnologico fin dalle origini. La prima tappa della civiltà umana è stata certamente la scoperta del fuoco e il suo utilizzo. Con il fuoco "rubato agli dei" si poteva cuocere il cibo, sopravvivere ai lunghi inverni, illuminare la notte, proteggersi dalle belve, bruciare le città nemiche; infine primo anello di una catena che non si sarebbe più spezzata - il fuoco era fondamentale per lavorare i metalli. Con il fuoco, i metalli e la ruota furono costruiti i carri; con i carri, i cavalli e le strade, le distanze cessarono di essere insormontabili Il secondo grande passo avanti nello sviluppo della tecnologia è stato l'introduzione del metodo scientifico, un passaggio nella storia della cultura indissolubilmente legato al nome di Galileo. Per la prima volta, e non senza suscitare opposizioni, fu affermato che la Natura segue leggi matematiche comprensibili e che si può intervenire con la Scienza per costruire macchine che permettano di esplorare la Natura, fare previsioni e modificare gli eventi (si pensi al telescopio e al microscopio, ma anche agli occhiali e alle macchine da stampa). Anche qui bisogna sottolineare la presenza di una catena senza fine: le conoscenze scientifiche generano altre conoscenze e possibilità tecnologiche che a loro volta generano nuove conoscenze e nuove macchine. Si immagini un ingegnere espertissimo, che sia anche un valente artigiano, catapultato "nudo" su un'isola ricca di ogni risorsa naturale ma assolutamente primitiva. Egli sa benissimo cosa gli servirebbe per costruirsi una lancia dotata di motore fuoribordo, oppure un elicottero, ma per realizzare queste macchine dovrebbe ripercorrere in poco tempo tutto il cammino tecnologico dell'umanità. Dopo la rivoluzione industriale, dominata dalla macchine fatte di ferro e acciaio e basata sullo sfruttamento dell'energia, una nuova rivoluzione si è stagliata all'orizzonte, basata invece sull'informatica. L'era dell'informatica è nata dalla confluenza di tre grandi filoni del sapere e dell'abilità umana. * L'algoritmica, ovvero la disciplina delle "ricette" per risolvere problemi "difficili". I più antichi algoritmi risalgono ai cinesi, ai greci e agli arabi. * L'ingegneria, ovvero la disciplina del "fare le macchine". * La metamatematica, ovvero quella branca della matematica che studia le possibilità della matematica stessa. Nel corso dell'ultimo secolo, finalmente, si è formata una teoria matematica del calcolo e, contemporaneamente, l'ingegneria elettronica ha fornito un modo di immagazzinare ed elaborare l'informazione sotto forma di bit. Questo processo ha permesso di costruire i primi computer, che subito sono stati usati per progettare, costruire e programmare computer più potenti. Si è scatenata una reazione positiva fortissima: la disponibilità di macchine per calcolare dà impulso alla tecnologia (oggi nessuna attività minimamente tecnologica può fare a meno del computer), che a sua volta dà impulso al progresso informatico (per costruire "bene" i computer occorrono computer). Ne sono risultati una crescita esponenziale della potenza di calcolo e un abbattimento dei costi, uniti a una contemporanea "invasione" in ogni attività umana. Le autostrade informatiche hanno connesso l'intero globo e attraverso Internet (la Rete per antonomasia) eventi politici o risultati sportivi possono essere conosciuti in tutto il mondo in pochi minuti. Non è quindi errato affermare che al giorno d'oggi l'alfabetizzazione informatica riveste un'importanza paragonabile a quella rivestita dall'alfabetizzazione vera e propria agli inizi del Novecento. Proprio per questo motivo l'insegnamento dell'informatica si va diffondendo in tutti i percorsi formativi universitari come una materia di base indispensabile alla corretta fruizione dei contenuti scientifici o umanistici dei vari corsi di laurea. Il presente testo cerca di rispondere a questa esigenza in modo originale, evitando un'esposizione pedissequa e manualistica. Piuttosto, abbiamo cercato di dare, nella prima parte, i concetti essenziali relativi alla struttura delle macchine, ai programmi che le accompagnano e ai fondamenti della scienza informatica. Nella seconda parte sono invece forniti spunti più pratici, che dovrebbero permettere di "toccare con mano" gli aspetti concreti dell'informatica, almeno con riferimento agli argomenti di maggiore interesse. Ci auguriamo che queste pagine risultino sintetiche ma chiare, compatibili con la cultura di uno studente in uscita dalla nostra scuola media superiore. Si tratta di un vecchio strumento (un libro cartaceo) con una nuova integrazione (gli esempi illustrati nella parte "sperimentale" del testo si possono reperire sul sito della casa editrice, all'indirizzo www.apogeonline.com/libri/02030/allegati/). | << | < | > | >> |Pagina 1036
Linguaggi di programmazione
Quando erano solo gli scienziati a servirsi dei computer, la scrittura di programmi e il loro utilizzo facevano parte del ciclo quotidiano del lavoro: come i martelli pneumatici e le gru da venti tonnellate, i computer erano strumenti professionali manipolati solo da esperti professionisti. Col passare del tempo i computer sono diventati sempre più simili alle lavastoviglie e alle automobili, ovvero macchine sofisticate, ma che vengono utilizzate dal vasto pubblico e, come nessuno è in grado di cambiare il cestello della propria lavatrice, e non se ne preoccupa minimamente, così solo una piccola parte degli utenti di computer ha la capacità (e la necessità) di poterli programmare. D'altra parte, però, solo potendo scrivere applicazioni pensate e progettate da noi stessi riusciremmo a sfruttare veramente la versatilità del computer per adattarla al meglio alle nostre esigenze. I primi linguaggi di programmazione erano orientati essenzialmente al trattamento di dati, scientifici o commerciali. Con l'avvento dei computer multimediali il concetto di dato si è evoluto e i moderni linguaggi di programmazione devono permettere sia di trattare dati eterogenei: numeri, testi, immagini, suoni, filmati, sia di configurare complicate interfacce per il dialogo con l'utente (si pensi, per esempio, alla struttura di un browser Web o di un qualunque videogioco). Molto spesso le applicazioni per scrivere programmi in un determinato linguaggio ci forniscono anche un sistema di sviluppo, un insieme di strumenti che ci permette di scrivere programmi, controllarne la correttezza sintattica, farli eseguire, mantenere tutti i sorgenti in modo ordinato, cercare gli errori (il cosiddetto debugging) e confezionare il prodotto finito.
Non è però possibile vedere in maggiore dettaglio i linguaggi di
programmazione se prima non descriviamo dal punto di vista teorico gli
algoritmi, ovvero ciò che i linguaggi permettono di esprimere attraverso i
programmi.
6.1 Algoritmi e programmi 6.1.1 Algoritmi Per algoritmo si intende una sequenza finita di passi discreti non ambigui che porta alla soluzione di un problema. Questa definizione è alquanto involuta e deve essere interpretata parola per parola. Innanzitutto, l'algoritmo è costituito da una sequenza (ovvero un insieme ordinato) finita di passi; l'algoritmo quindi è descrivibile con un numero finito di parole e può essere oggetto di comunicazione tra esseri umani oppure tra uomini e macchine. I passi devono essere discreti, ovvero ben distinti l'uno dall'altro - sono escluse azioni continue quali potrebbero essere un colpo della racchetta nel tennis, una mossa di karate o una nota suonata sul violoncello - e non ambigui: questa è la caratteristica più importante che differenzia un vero algaritmo da una qualunque sequenza di parole. Perché i passi siano non ambigui bisogna che sia definito in modo altrettanto non ambiguo un linguaggio di comunicazione provvisto della sua sintassi e della sua semantica. Inoltre, sia chi comunica l'algoritmo sia chi lo deve eseguire devono essere in grado di comprendere questo linguaggio. Una volta strutturato, un algaritmo permette di risolvere il problema per cui è stato pensato. Bisogna notare che il concetto di algoritmo è indipendente dall'informatica (la Figura 6.1 mostra la definizione di Algorismo tratta dalle edizione del 1612 del Dizionario della Crusca). Talvolta per rendere comprensibile il concetto di algoritmo si utilizzano come esemplificazioni le ricette di cucina o le indicazioni stradali, ma gli esempi più significativi si trovano in matematica e in informatica, dove sequenze anche molto complicate di azioni opportunamente codificate possono servire per la comunicazione tra studiosi di particolari procedimenti oppure per far compiere ai computer determinate azioni. Vediamo alcuni semplici esempi di algoritmi che trattano argomenti matematici. Usiamo il linguaggio naturale evidenziando in grassetto alcune parole chiave (se ... allora ... altrimenti, scambia, leggi, stampa, vai, fermati) che rappresentano azioni elementari. Per far eseguire effettivamente questi algoritmi da un computer è necessaria la traduzione in un linguaggio di programmazione, come vedremo in seguito. Nella successiva formulazione degli algoritmi, per rendere più chiaro al lettore il significato delle azioni, scriveremo tra parentesi in corsivo i nostri commenti. | << | < | > | >> |Pagina 1358
Intelligenza artificiale e robotica
L'intelligenza artificiale (IA) e la robotica sono discipline affini e complementari: l'una tenta di realizzare algoritmi che manifestino "intelligenza", l'altra di fornire a essi un corpo. Secondo una corrente di pensiero, i progressi che saranno compiuti dalle suddette branche dell'informatica permetteranno la realizzazione di robot antropomorfi, magari anche più bravi degli umani, come R. Daneel Olivaw, del quale si narra nei romanzi di fantascienza di Isaac Asimov. Forse allora ci sentiremo orgogliosi di aver effettuato un atto creativo divino, ma oggi siamo ancora lontani da tale meta. In ogni caso, bisogna prima rispondere alla domanda: "Che cosa è l'intelligenza?". Condividiamo tutti l'opinione che certi comportamenti siano frutto di processi logici, e non abbiamo dubbi nel ritenere che chiunque, anche una macchina, riesca a battere campioni professionisti nel gioco degli scacchi, manifesti una forma di intelligenza. Tuttavia vincere una partita agli scacchi è un compito sì molto difficile, ma anche troppo limitato per farci concludere che stiamo interagendo con un essere dotato di una "mente". Si potrebbe pensare che sommando in una stessa macchina diversi comportamenti "intelligenti" si raggiunga lo scopo prefissato. Sembrerebbe pertanto trattarsi di una questione di quantità. Dobbiamo dunque assemblare componenti elettronici e scrivere software per riprodurre mille comportamenti intelligenti? O dobbiamo arrivare a duemila? O siamo totalmente e ingenuamente fuori strada? Bisogna concentrarsi sulla domanda iniziale: "Che cosa è l'intelligenza?". "Quello che il mio test misura", è la risposta tautologica dello psicologo, risposta pragmatica ma poco soddisfacente per i nostri scopi. Al nostro problema viene incontro un famoso e lucidissimo articolo dal titolo "Computing Machinery and Intelligence", scritto nel 1950 da Alan Turing. Le sue riflessioni in quelle pagine lo rendono in effetti il padre dell'intelligenza artificiale, in quanto egli ebbe per primo l'intuizione che il computer poteva non essere solo una macchina per far conti. Turing era un matematico con la passione della crittografia e aveva aiutato la sua patria, l'Inghilterra, durante la seconda guerra mondiale, decifrando il codice Enigma con cui comunicavano i nazisti. Era anche uno studioso di informatica e nell'articolo proponeva un test per decidere se una macchina è o no in grado di pensare. Il suo test è profondamente diverso da quello degli psicologi e da lui stesso chiamato "gioco dell'imitazione". L'esperimento consiste nel mettere un esaminatore umano che funga da arbitro davanti a un terminale (Turing parlava di telescrivente); dall'altra parte del filo può esservi un altro umano oppure un computer programmato per simulare l'intelligenza umana. Il compito dell'arbitro è stabilire, analizzando le risposte che riceve alle proprie domande, se sta comunicando con una macchina oppure con una persona in carne e ossa. Un software in grado di superare questo test (ovvero di spacciarsi per umano con un esaminatore umano) sarebbe, secondo Turing, un essere pensante. Naturalmente, perché il test sia efficace, gli argomenti devono essere del tutto liberi e a discrezione dell'arbitro. Un forno a microonde con interfaccia vocale potrebbe forse sostenere un semplicissimo dialogo sullo stato di cottura delle uova ("non mettetele mai con il guscio" ... "ancora cinque minuti" ... "ora sono cotte"...), ma si troverebbe in gravi difficoltà a discutere di filosofia. Il test di Turing provocò molto scalpore ai suoi tempi. L'idea che il pensiero, una prerogativa umana, potesse essere condiviso da una "ferraglia", non era molto gradita; pressappoco con la stessa ripugnanza era stata inizialmente trattata l'idea di Darwin che ci designava primi cugini delle scimmiette che sollazzano i visitatori dello zoo. Le obiezioni a Turing che vengono oggi da alcuni studiosi di neuropsichiatria hanno invece tutt'altra natura. "La migliore dimostrazione che le macchine pensino siamo noi. - essi affermano - Noi siamo macchine e pensiamo". Quello che viene contestato è che gli algoritmi siano in grado di esprimere l'intelligenza tout-court. Non può, essi dicono, una semplice manipolazione di simboli (cosa a cui si riduce un qualunque programma) coincidere con l'intelligenza. Osserviamo comunque che il punto importante è in effetti un altro: aver deciso che il test proposto da Turing è davvero un buon criterio di comportamento intelligente. E ciò, nella polemica suscitata, era in effetti sempre stato considerato indiscutibile. Questa accettazione comporta comunque considerare l'intelligenza dal punto di vista "sperimentale" delle sue capacità invece che da quello "metafisico" della sua natura. La tesi secondo cui il gioco dell'imitazione può essere svolto e portato a buon termine dal computer si chiama "Tesi Forte dell'intelligenza artificiale". Il suo principio di fondo è che la mente è un sistema di computazione. Gli scienziati che lavorarono lungo questo filone rincorsero la messa a punto di sofisticati programmi che imitassero le capacità cognitive umane. Questa ambizione è stata (per il momento) da molti accantonata lasciando posto alla Tesi Debole: "Possiamo rappresentare e automatizzare solo alcuni processi intelligenti, ad esempio quelli che, come il gioco degli scacchi, obbediscono a un insieme di regole".
Concludendo la nostra breve introduzione invitiamo a leggere il notevole
testo di Dennett e Hofstadter
L'Io della mente,
che offre molti spunti di riflessione, qualunque sia il punto di vista del
lettore.
|