Informatica per la comunicazione - Appunti · Però, a pensarci bene, nella slide precedente non...

37
INFORMATICA PER LA COMUNICAZIONE – APPUNTI LEZIONE 1 Informatica della comunicazione= Il titolo del corso sembra appoggiarsi sull’ipotesi che l'informatica fornisca un supporto alla comunicazione. Innanzitutto accertiamoci del fatto che vi sia un supporto, e poi cerchiamo di capire di che tipo di supporto si tratta. Una premessa: che cosa intendiamo per comunicazione? “Ogni operazione che permetta la trasmissione di un concetto tra le due entità comunicanti, tipicamente due persone." Il concetto può essere trasmesso tramite una conversazione, uno scritto, oppure (adottando mezzi di comunicazione nati più di recente) attraverso una video-chat su Skype, oppure un messaggio su Facebook. Di questi vari modi di comunicare, prendiamo ad esempio i libri, e vediamo se l’informatica effettivamente supporta questo tipo di comunicazione." Lo scrittore americano, diventato famoso a livello mondiale col suo terzo romanzo “Le correzioni”, ha di recente pubblicato “Libertà”, la cui uscita è stata accompagnata da un’intervista con Time Magazine, di cui segue un brano. Jonathan Franzen Franzen works in a rented office that he has stripped of all distractions. He uses a heavy, obsolete Dell laptop from which he has scoured any trace of hearts and solitaire, down to the level of the operating system. Because Franzen believes you can't write serious fiction on a computer that's connected to the Internet, he not only removed the Dell's wireless card but also permanently blocked its Ethernet port. "What you have to do," he explains, "is you plug in an Ethernet cable with superglue, and then you saw off the little head of it.”" Time Magazine, agosto 2010 A giudicare dalle sue parole, l’informatica sembra essere più una distrazione dalla letteratura che un supporto alla letteratura. Eppure Franzen ha usato un computer per scrivere il suo romanzo, e non una macchina da scrivere o carta e penna." In qualche modo, un computer ha aiutato Franzen nell’impresa di scrivere e pubblicare un libro. Uno strumento tipicamente informatico, quindi, ha di fatto fornito un supporto a un tipo particolare di comunicazione. Ma fin dove si può spingere tale supporto? Fino a che punto un computer può aiutare uno scrittore nella stesura di un romanzo? C’è chi ha posto un limite molto forte alle possibilità di un computer in ambito letterario: affermando che il significato stesso delle parole, componente fondamentale di ogni processo comunicativo, è di fatto una realtà non accessibile a un computer. Vediamo come questo enorme limite è stato paventato con l’esperimento della cosiddetta “stanza cinese”. LA STANZA CINESE La “stanza cinese” è un esperimento mentale (Gedankenexperiment, in tedesco), ossia non è un esperimento scientifico nel senso classico del termine, in cui dei dispositivi sono stati usati in un laboratorio per verificare una teoria. Si tratta bensì del frutto del pensiero del filosofo Searle, che nell’articolo “Minds, brains, and programs” del 1980 ha illustrato a parole una situazione immaginaria, ma non assurda e in teoria realizzabile, per dimostrarci la sua tesi. La stanza cinese funziona come segue. Bisogna immaginare di avere una stanza chiusa, con dentro una persona (ad es. John Searle stesso) che ha tutto quanto necessario alla sopravvivenza (cibo, acqua, aria, etc), e che non conosce la lingua cinese. Dall’esterno la stanza appare come un grande cubo, con solo una tastiera cinese su una parete, e una fessura sulla parete opposta, da cui possono uscire dei fogli. La tastiera permette a una persona esterna alla stanza che conosce il cinese di immettere delle frasi nella lingua. La tastiera è collegata con un monitor all’interno della stanza che visualizza gli ideogrammi digitati sulla tastiera. Searle, pur non conoscendo il cinese, ha a sua disposizione un manuale che gli indica, per ogni sequenza di ideogrammi sul monitor, un’altra sequenza di ideogrammi che lui deve prelevare da uno schedario e mandare verso l’esterno della stanza attraverso la fessura. Pur non capendo niente di cinese, seguendo il manuale Searle risponde alle frasi sul monitor, e se il manuale è scritto bene, la persona all’eterno della stanza avrà l’impressione che la stanza sappia parlare il cinese, insomma che si tratti di una stanza cinese. Che cosa vuol dimostrare Searle con l’esperimento della stanza cinese? Che è possibile creare un sistema automatico di dialogo in una certa lingua senza però che vi sia comprensione delle parole di tale lingua. Di fatto, il Searle dell’esperimento continua a non capire il cinese e ad appoggiarsi sul manuale all’interno della stanza, ed essendo l’unico essere vivente all’interno di essa, se non capisce lui il cinese, sicuramente nient’altro presente nella stanza può farlo. A quanto pare, se anche un giorno si riuscisse a costruire una macchina in grado di dialogare con gli esseri umani, essa non sarebbe caratterizzata dall’intelligenza che gli esseri umani usano per parlare. Innanzitutto una precisazione: l’esperimento mentale di Searle continua a suscitare critiche e polemiche, e se molti lo ammirano per questo modo di presentare la questione, non sono pochi quelli che non lo ritengono valido (ad es. dicono che il manuale non può esistere, e che quindi una delle premesse del suo ragionamento è falsa, oppure dicono che se anche Searle non capisce il cinese, il sistema Searle + stanza lo capisce, etc. etc.) Con il suo esperimento mentale, Searle vuole suggerirci che possiamo vedere i computer come delle macchine costruite per lavorare con i segni (gli stessi segni che sono presenti sul monitor nella stanza cinese o sul monitor del vostro portatile) senza che vi sia alcuna comprensione del loro significato. 1

Transcript of Informatica per la comunicazione - Appunti · Però, a pensarci bene, nella slide precedente non...

INFORMATICA PER LA COMUNICAZIONE – APPUNTI

LEZIONE 1Informatica della comunicazione= Il titolo del corso sembra appoggiarsi sull’ipotesi che l'informatica fornisca un supporto alla comunicazione. Innanzitutto accertiamoci del fatto che vi sia un supporto, e poi cerchiamo di capire di che tipo disupporto si tratta.Una premessa: che cosa intendiamo per comunicazione? “Ogni operazione che permetta la trasmissione di un concetto tra le due entità comunicanti, tipicamente due persone."Il concetto può essere trasmesso tramite una conversazione, uno scritto, oppure (adottando mezzi di comunicazione nati più di recente) attraverso una video-chat su Skype, oppure un messaggio su Facebook.Di questi vari modi di comunicare, prendiamo ad esempio i libri, e vediamo se l’informatica effettivamente supporta questo tipo di comunicazione." Lo scrittore americano, diventato famoso a livello mondiale col suo terzo romanzo “Le correzioni”, ha di recente pubblicato “Libertà”, la cui uscita è stata accompagnata da un’intervista con Time Magazine, di cui segue un brano.

Jonathan Franzen Franzen works in a rented office that he has stripped of all distractions. He uses a heavy, obsolete Dell laptop from which he has scoured any trace of hearts and solitaire, down to the level of the operating system. Because Franzen believes you can't write serious fiction on a computer that's connected to the Internet, he not only removed the Dell's wireless card but also permanently blocked its Ethernet port. "What you have to do," he explains, "is you plug in an Ethernet cable with superglue, and then you saw off the little head of it.”"

Time Magazine, agosto 2010

A giudicare dalle sue parole, l’informatica sembra essere più una distrazione dalla letteratura che un supporto alla letteratura. Eppure Franzen ha usato un computer per scrivere il suo romanzo, e non una macchina da scrivere o carta e penna." In qualche modo, un computer ha aiutato Franzen nell’impresa di scrivere e pubblicare un libro. Uno strumento tipicamente informatico, quindi, ha di fatto fornito un supporto a un tipo particolare di comunicazione.Ma fin dove si può spingere tale supporto? Fino a che punto un computer può aiutare uno scrittore nella stesura di un romanzo? C’è chi ha posto un limite molto forte alle possibilità di un computer in ambito letterario: affermando che il significato stesso delle parole, componente fondamentale di ogni processo comunicativo, è di fatto una realtà non accessibile a un computer. Vediamo come questo enorme limite è stato paventato con l’esperimento della cosiddetta “stanza cinese”.

LA STANZA CINESELa “stanza cinese” è un esperimento mentale (Gedankenexperiment, in tedesco), ossia non è un esperimento scientifico nel senso classico del termine, in cui dei dispositivi sono stati usati in un laboratorio per verificare una teoria. Si tratta bensì del frutto del pensiero del filosofo Searle, che nell’articolo “Minds, brains, and programs” del 1980 ha illustrato a parole una situazione immaginaria, ma non assurda e in teoria realizzabile, per dimostrarci la sua tesi.

La stanza cinese funziona come segue. Bisogna immaginare di avere una stanza chiusa, con dentro una persona (ad es. John Searle stesso) che ha tutto quanto necessario alla sopravvivenza (cibo, acqua, aria, etc), e che non conosce la lingua cinese. Dall’esterno la stanza appare come un grande cubo, con solo una tastiera cinese su una parete, e una fessura sulla parete opposta, da cui possono uscire dei fogli. La tastiera permette a una persona esterna alla stanza che conosce il cinese di immettere delle frasi nella lingua. La tastiera è collegata con un monitor all’interno della stanza che visualizza gli ideogrammi digitati sulla tastiera. Searle, pur non conoscendo il cinese, ha a sua disposizione un manuale che gli indica, per ogni sequenza di ideogrammi sul monitor, un’altra sequenza

di ideogrammi che lui deve prelevare da uno schedario e mandare verso l’esterno della stanza attraverso la fessura. Pur non capendo niente di cinese, seguendo il manuale Searle risponde alle frasi sul monitor, e se il manuale è scritto bene, la persona all’eterno della stanza avrà l’impressione che la stanza sappia parlare il cinese, insomma che si tratti di una stanza cinese.Che cosa vuol dimostrare Searle con l’esperimento della stanza cinese? Che è possibile creare un sistema automatico di dialogo in una certa lingua senza però che vi sia comprensione delle parole di tale lingua. Di fatto, il Searle dell’esperimento continua a non capire il cinese e ad appoggiarsi sul manuale all’interno della stanza, ed essendo l’unico essere vivente all’interno di essa, se non capisce lui il cinese, sicuramente nient’altro presente nella stanza può farlo.A quanto pare, se anche un giorno si riuscisse a costruire una macchina in grado di dialogare con gli esseri umani, essa non sarebbe caratterizzata dall’intelligenza che gli esseri umani usano per parlare.Innanzitutto una precisazione: l’esperimento mentale di Searle continua a suscitare critiche e polemiche, e se molti lo ammirano per questo modo di presentare la questione, non sono pochi quelli che non lo ritengono valido (ad es. dicono che il manuale non può esistere, e che quindi una delle premesse del suo ragionamento è falsa, oppure dicono che se anche Searle non capisce il cinese, il sistema Searle + stanza lo capisce, etc. etc.)Con il suo esperimento mentale, Searle vuole suggerirci che possiamo vedere i computer come delle macchine costruite per lavorare con i segni (gli stessi segni che sono presenti sul monitor nella stanza cinese o sul monitor del vostro portatile) senza che vi sia alcuna comprensione del loro significato.

1

I SEGNICom’è lavorare con dei segni di cui non si conosce il significato? All’interno della stanza cinese.

犬 赤 道 --->

Però, a pensarci bene, nella slide precedente non c’è un cane vero e proprio, ma una rappresentazione di un cane, per di più fatta per mezzo di un programma di un computer (in questo caso, Microsoft PowerPoint). Se anche Searle ha ragione, e non riusciremo mai a creare significato all’interno del computer, abbiamo la prova concreta nella slide precedente del fatto che si riesce comunque a trasmettere del significato (in questo caso, l’idea di “cane”) per mezzo del computer. Allora, forse, c’è un modo di sostenere la comunicazione per mezzo dei computer e dell’informatica.

STRUMENTI PER ELABORARE SEGNI (SIMBOLI)Se vediamo i computer come degli strumenti per l’elaborazione automatica di segni, e lasciamo la briga di associare a tali segni un significato agli esseri umani che usano i computer, forse riusciamo comunque ad aiutare dei comunicatori nel loro lavoro (come ad esempio lo scrittore Franzen). Attenzione: spesso useremo il termine “simbolo” al posto di “segno”, perché tradizionalmente in informatica si parla di “elaborazione simbolica” e non di “elaborazione dei segni”.

SIMBOLO SIMBOLO Questa è una semplificazione introdotta dagli informatici, che ignorano la grande differenza che c’è, ad esempio, tra il leone, che è simbolo di coraggio, forza, maestà, etc. etc. e un semplice segno come la cifra ‘8’ (che a sua volta può acquistare valore simbolico in determinati contesti). Questa, però, non è una colpa grave: abbiamo ben visto quanto difficile sia inglobare i significati negli strumenti utilizzati dagli informatici, quindi è quasi naturale che in informatica non si faccia distinzione tra simboli e segni.

STRUMENTI PER ELEBORARE I SIMBOLI– Studieremo quindi l’informatica come la disciplina che si occupa degli strumenti per l’elaborazione automatica di simboli.– Vedremo quali sono i simboli con cui si tende a lavorare in informatica.– Vedremo che cosa si intende per elaborazione.– Vedremo, cercando di non scendere troppo nei dettagli tecnici, come sono fatti questi strumenti.

LEZIONE 2Diamo un'occhiata al momento e al personaggio storico che vengono visti come l’inizio dell’informatica come la conosciamo oggi, pur dovendo riconoscere meriti a molti che hanno contribuito nel passato e hanno reso possibile taleinizio.

Alan Turing, matematico inglese nato nel 1912, è universalemente considerato i l padre dell’informatica. In realtà ci sono stati altri studiosi prima di lui, ad esempio Babbage, che avevano già lavorato alla costruzione di macchine calcolatrici, ma il contributo di Turing è stato talmente importante che i suoi articoli scientifici vengono riconosciuti comeil punto d’inizio di questa disciplina.Turing era anche un crittografo, e ha fornito un contributo fondamentale alla decifrazione dei codici segreti usati dai Nazisti durante la II guerra mondiale.Nell'articolo del 1936 “On computable numbers with an application to the Entscheidungsproblem”, Turing descrive non una macchina calcolatrice fisicamente costruita o un progetto di costruzione di una tale macchina, bensì un modello astratto (chiamato da allora “Macchina di Turing” ) che

descrive il funzionamento di un apparato molto semplice ma generale, ossia in grado di eseguire tutte le operazioni matematiche che normalmente un essere umano esegue con carta e penna. Lo scopo di Turing era quello di fornire una dimostrazione di principio del fatto che le operazioni matematiche sono automatizzabili.

La Macchina di Turing comprende:1) Un sistema di controllo che può trovarsi in uno tra diversi stati. Ilnumero di possibili stati è finito.2) Un nastro infinito diviso in celle, ciascuna delle quali può contenereun simbolo di un alfabeto qualunque. L’infinitezza del nastrorappresenta la possibilità di trovare sempre nuovo spazio dove scriveree conservare informazioni.3) Una testina di lettura e scrittura che può leggere il simbolo nella cella in cui la testina si trova, oppure scrivere un simbolo nuovo. La scrittura è una sovrascrittura: se c’è già un simbolo nella cella esso viene sovrascritto.La macchina di Turing funziona seguendo una sequenza di comandi.

Tutti i comandi hanno la stessa seguente struttura:se ti trovi nello stato q, e la testina si trova in un cella con un simbolo s, allora scrivi il simbolo s’, muovi la testina col movimento m’, e passa al nuovo stato q’.

2

8

Un movimento della testina consiste in una delle seguenti possibilità:1) spostamento alla cella subito a sinistra dell’attuale;2) spostamento alla cella subito a destra dell’attuale;3) nessuno spostamento: la testina rimane sulla stessa cella.

COMPUTERLa macchina di Turing appare come uno strumento molto semplice, ai limiti del rudimentale. Risulta difficileimmaginare che sia la base su cui sono costruiti i computer come li conosciamo noi oggi.Va detto che ai tempi di Turing la parola “computer” aveva un significato diverso da quello di oggi.La parola “computer” designava in origine una persona che computa, che fa di conto, similmente a “player” che vuoldire “giocatore”, o “speaker” che vuol dire “parlante”, “oratore”.

La persona che fa di conto con carta e penna in figura (la calcolatrice è fuori luogo edeve essere ignorata) è il modello che ha ispirato Turing nella costruzione della suamacchina. Lo scopo iniziale era quello di avere una descrizione formale delleoperazioni matematiche, per poi indagare sulle possibilità di automatizzarle. Ai tempidi Turing, comunque, non c’era ancora la tecnologia per realizzare il computer comelo conosciamo noi.

INTELLIGENZA?In un altro suo articolo, “Computing machinery and intelligence” del 1950, Turing, a suo modo un grande visionario, spinge in avanti il discorso, considerando la possibilità non solo di poter effettivamente costruire macchine calcolatrici basate sul suo modello, ma anche di poterle utilizzare per automatizzare operazioni sempre più complesse, tali da far assumere alle macchine di Turing un comportamento che si potrebbe definire “intelligente”.

IL GIOCO DELL'IMITAZIONEDefinire il concetto di “intelligenza” è tutt’altro che semplice, perché sotto il cappello di questo termine possiamo far rientrare numerose capacità e facoltà degli esseri umani, anche molto diverse tra di loro (ad esempio, saper fare rapidamente le moltiplicazioni, saper leggere le emozioni sui visi delle persone, saper gestire un’impresa commerciale).Tale complessità era ben nota anche a Turing, il quale ha infatti ribadito di voler fare un’indagine sull’intelligenza (e sulla potenziale intelligenza delle sue macchine) solo da un punto di vista molto ristretto e ben delimitato, che egli ha descritto col gioco dell’imitazione.

La figura illustra il gioco dell’imitazione nella sua forma originale.C è la “cavia”, ed è separato da A (un uomo) e B (una donna) da uno schermo, che non gli permettere di vederli né di sentirli: C comunica con loro tramite messaggi scritti. C sa che oltre lo schermo ci sono un uomo e una donna, e il suo scopo è quello di capire, per mezzo di una serie di domande, chi sia l’uomo e chi sia la donna. Lo scopo di A è quello di ingannare C, e infatti risponde cercando di imitare una donna nelle sue risposte, mentre lo scopo di B è quello di far capire a C la verità. Turing propone di considerare intelligente quella macchina che, messa al posto dell’uomo A, riesce a ingannare C un numero pari o superiore di volte rispetto ad A.

Turing stesso ha proposto una variante del gioco, che nel corso degli anni si è diffusa molto più della versione originale, entrando nell’immaginario collettivo in maniera più profonda, motivo per cui è oggi nota col nome di “versione standard”.C è anche questa volta la cavia, e sa che oltre lo schermo ci sono un computer e un essere umano che dialogano per iscritto con lui. Il computer ha lo scopo di farsi passare come essere umano, e di fare credere a C che B è una macchina che si finge umana, mentre B deve far capire a C la verità. Viene considerato intelligente il computer che riesce nei suoi intenti.Notate come la versione standard sia molto meno equa della versione originale nei confronti del computer. Nella versione originale lo scontro è tra un uomo che deve fingersi qualcosa che non è (una donna) e un computer che anche’esso deve fingersi qualcosa che non è (di nuovo, una donna). Nella versione standard, invece, lo sforzo della finzione è tutto a carico

del computer, visto che l’essere umano non deve fare altro che essere se stesso (senza distinzione di sesso).

La visione di Turing ha avuto un enorme impatto sulla nascente disciplina dell’informatica, e molti studiosi si sono imbarcati nell’impresa di studiare i diversi aspetti dell’intelligenza umana e di descriverli in una maniera tale da renderli automatizzabili

3

ed eseguibili su una macchina calcolatrice modellata su quella originariamente proposta da Turing, con eventuali migliorie e sofisticazioni. Questa branca dell’informatica prende il nome di “intelligenza artificiale”, e si è sviluppata dagli anni ‘50 in poi.Nonostante i grandi sforzi e nonostante i risultati anche notevoli ottenuti nel corso degli anni (“Spirit”, il robot cheautonomamente ha esplorato il terreno di Marte è forse l’esempio più eclatante), ancora non si è riusciti a catturare con una macchina l’aspetto dell’intelligenza che le permette di dialogare con noi come un essere umano.Cerchiamo ora di capire quali sono le difficoltà che si incontrano in questa impresa.

Proviamo a seguire il percorso inverso rispetto a quello di Turing: anziché far imitare gli esseri umani alle macchine, proviamo a metterci nei panni d i una macchina calcolatrice che ha il compito di dialogare con gli esseri umani, ossia di padroneggiare almeno quanto noi il linguaggio che usiamo per comunicare. Ecco un esempio dalla mensa:Dovessimo seguire fedelmente quanto scritto (come ci immaginiamo faccia una macchinagovernata da comandi ben precisi), ci dovremmo sentire in obbligo di prendere due tovaglioli, e dovremmo considerare le persone con un solo tovagliolo o addirittura senza tovaglioli come dei trasgressori. Ovviamente questo non avviene nella realtà, ma perché?!

L’assurdità di un’ipotetica situazione del genere ci appare immediatamente ovvia, eppure se vogliamo metterne nero su bianco le motivazioni le cose non sono così immediate.Da esseri umani nati e cresciuti nel contesto in cui viviamo, siamo abituati a dare per scontato un numero enorme di informazioni che sono necessarie perché il significato dell’avviso sui tovaglioli sia chiaro: si possono prendere al massimo due tovaglioli perché i tovaglioli sono fatti di carta e la carta viene fatta col legno degli alberi e dobbiamo preservare gli alberi perché ci aiutano ad assorbire l’anidride carbonica presente nell’aria emessa dai mezzi di trasporto e dalle industrie, inoltre gli alberi svolgono un ruolo fondamentale nell’equilibrio dell’ecosistema etc etc…Queste informazioni, necessarie per un dialogo “normale” tra esseri umani o tra esseri umani e macchine, possonoessere date per scontate tra persone che provengono dallo stesso contesto, ma devono essere specificate tutte per poter istruire un’entità che non conosce tale contesto (un bambino piccolo oppure una macchina di Turing, ad esempio).

Ecco un altro esempio dalla mensa:Se devo uscire dall’edificio per andare a lezione, non mi trovo forse in un caso di necessità? Dovrei in teoria sentirmi perfettamente legittimato a usare la porta con la maniglia antipanico. Eppure tutti gli studenti e i docenti presenti hanno usato l’uscita principale.

IL PROBLEMA DEL BUONSENSO

Quello del buonsenso (o “common sense” in inglese) diventa un problema nel momento in cui devo fare un elenco esaustivo di tutta l’informazione che lo compone per poter istruire in maniera adeguata una macchina di Turing per poterla considerare intelligente secondo il gioco proposto da Turing stesso.Il problema del buonsenso è stato già più e più volte affrontato in passato, senza che si fosse trovata una soluzione soddisfacente. Di seguito riportiamo un esempio ben più illustre di quelli della mensa, proposto dal filosofo Dreyfus, professore presso l’Università di Berkeley in California.

“Today was Jack's birthday. Penny and Janet went to the store.They were going to get presents.Janet decided to get a kite. "Don't

do that," said Penny."Jack has a kite. He will make you

take it back."”

Il significato del breve racconto appare chiaro ai nostri occhi, ma provate a controllare quante cose abbiamo dato per scontato e che non sono esplicitamente dette nel testo. La seguente lista non ha affatto la pretesa di essere completa.1) I regali si comprano nei negozi2) I compleanni si festeggiano con regali3) Janet e Penny vogliono comprare un regalo per Jack4) Jack non vuole avere due aquiloni5) Jack farà riportare indietro l’aquilone nuovo, non quello vecchioL’aquilone sarà riportato indietro al negozio dove è stato acquistato

LEZIONE 3Ben consci delle limitazioni, entriamo dentro il computer per studiarne i componenti principali e le loro funzionalità.In questo contesto non intendiamo “computer” nell’accezione originale di persona che calcola di cui vogliamo astrarre le operazioni principali...ma proprio come calcolatore dei nostri giorni. - Il componente più importante è la CPU (Central Processing Unit), il processore in italiano. Nella metafora della persona che fa di conto, la CPU corrisponde al cervello, perché è la parte del computer

che esegue le operazioni.

4

Hubert Dreyfus

La CPU è un circuito elettronico costituito da un notevole numero di transistor.Ogni transistor, per come è costruito, reagisce a stimoli elettrici in ingresso conuna specifica tensione elettrica in uscita (Vout in figura). Quando diciamo che laCPU esegue delle operazioni, intendiamo dire che le arrivano segnali elettriciin ingresso che rappresentano i dati e indicano l’operazione da eseguire.

I transistor della CPU reagiscono agli stimoli e mandano in uscita altri segnali elettrici, che rappresentano il risultato delle operazioni eseguite.I transistor in una CPU sono molto numerosi (oggi arrivano ai 2 miliardi per processore), e hanno continuato a crescere di numero da quando le prime CPU sono state costruite. L’andamento è curiosamente costante, e prevede un raddoppio ogni anno e mezzo. Il primo ad accorgersi di questa tendenza è stato Gordon Moore, co-fondatore di Intel,

una delle più grandi società prodruttrici di CPU, che ha quindi dato il nome a questo fenomeno, noto come “legge di Moore”.

La CPU in realtà non è un blocco unitario, mapossiamo distinguere due parti in base alla lorofunzione. La ALU (Arithmentic-Logical Unit, o unitàaritmetico-logica) esegue le operazioni aritmetiche elogiche, appunto.

La CU (Control Unit, o unità di controllo) è invece quellaparte che comanda il trasferimento di informazione dauna parte all’altra del computer. Di fatto, tutto ciò cheavviene nel computer avviene perché dei segnali elettricisono stati emessi dalla CU: anche l’ingresso di dati nellaALU, per esempio, è comandato dalla CU che esegue leistruzioni scritte nei programmi dati al computer.

Ma da dove provengono i dati e le istruzioni che vengonoelaborati dalla CPU?

Riprendiamo la metafora della persona che fa di conto. I dati di un problema sono scritti sul suo quaderno.Presentiamo il secondo componente del computer, che corrisponde al quaderno da cui chi fa di conto prende dati, e su cui annota i passaggi intermedi e i risultati finali. Questo componente si chiama RAM (Random Access Memory), o memoria centrale in italiano.

Anche la RAM è costituita da circuiti elettronici con numerosi transistor. La configurazione appare più complessa perché lo scopo della RAM non è di rispondere a degli stimoli elettrici inviando segnali in uscita, ma di conservare al suo internol’informazione che le viene inviata. Realizzare una memoria richiede una composizione di transistor più complessa. Il nome in inglese della RAM vuole sottolineare la caratteristica del dispositivo di memoria che permette l’accesso alle informazioni in esso contenuti in qualunque posizione. Si può scegliere un punto di accesso casuale (random access), e la RAM è in grado di fornire il dato presente in quel punto. Il nome italiano, invece, sottolinea il ruolo centrale svolto dalla RAM all’interno del calcolatore: la RAM lavora in strettissimo contatto con la CPU. Il nome in inglese della RAM vuole sottolineare la caratteristica del dispositivo dimemoria che permette l’accesso alle informazioni in esso contenuti in qualunqueposizione. Si può scegliere un punto di accesso casuale (random access), e la RAM è in grado di fornire il dato presente in quel punto. Il nome italiano, invece, sottolinea il ruolo centrale svolto dalla RAM all’interno del calcolatore: la RAM lavora in strettissimo contatto con la CPU.

Dalla RAM provengono i dati e le operazioni che la CPU deve eseguire su di loro. I risultati ottenuti in uscita dalla CPU vengono a loro volta memorizzati sulla RAM.

Vediamo ora le altre componenti che partecipano alle operazioni del computer: chiaramente con solo la CPU e la RAM non

5

arriviamo a visualizzare il risultato di un’operazione sullo schermo.

Abbiamo detto che i dati e le operazioni da eseguire sono memorizzate nella RAM.

Dalla RAM, vengono trasferiti alla CPU, per ordine della CPU stessa (o meglio, della CU) che preleva istruzioni da eseguire dalla RAM in continuazione, dall’accensione del

computer al suo spegnimento.

Ottenuto il risultato in uscita dalla ALU, esso viene mandato alla RAM...

...dove viene memorizzato.

La CPU continua a prelevare istruzioni dalla RAM e caso vuole che la prossima comandi una stampa su schermo del risultato dell’operazione fatta in precedenza.

La CU nella CPU recepisce il comando, e invia appositi segnali per far eseguire il trasferimento del risultato dalla RAM verso lo schermo.

I segnali della CU fanno sì che il dato venga trasferito dalla RAM al componente che gestisce i segnali da inviare allo schermo la scheda grafica (o graphic card in

inglese)…

...e dalla scheda grafica allo schermo. Quest’ultimo trasferimento è più complesso degli altri perché dalla codifica digitale dell’informazione bisogna passare alla

versione analogica adatta all’essere umano di fronte allo schermo: non più segnali elettrici, bensì onde luminose che rappresentano un segno.

La scheda grafica mostra di avere una ventola. In realtà, anche la CPU è sempre accompagnata da una ventola, che si accende non appena il lavorio dei calcoli alza la temperatura dei circuiti facendola avvicinare a una soglia d’allerta. Senza ventilazione, ogni processore fonderebbe a causa della sua stessa attività (spostare elettroni da una parte all’altra produce calore). Di fatto, la scheda grafica ha un suo processore, la GPU (Graphical Processing Unit), a cui la CPU centrale delega l’esecuzione di istruzioni legate alla visualizzazione su schermo. Per la visualizzazione di un semplice ‘8’ la CPU se la cava tranquillamente, ma nel caso di applicazioni grafiche più pesanti come i videogame, la CPU si appoggia alla GPU per potersi dedicare ad altro.

E’ un po’ come se la mano del calcolatore umano avesse un piccolo cervello locale che la guida nella scrittura, senza impegnare il cervello principale.

C’è un altro motivo per porre un asterisco sul trasferimento di informazione dalla scheda grafica allo schermo.

Questo è il primo trasferimento che esce dai confini della scatola che racchiude i componenti interni del computer.

PERIFERICA= I componenti esterni del computer si chiamano periferiche. Lo schermo è, appunto, una periferica delcomputer.

6

LEZIONE 4PERIFERICHE DI INPUT

Le periferiche di input sono quelle che permettono il flusso di informazioni dall’esterno verso l’interno del computer.

PERIFERICHE DI OUTPUT

Le periferiche di output, viceversa, sono quelle che permettono il flusso di informazioni dall’interno verso l’esterno del computer.

Avete notato che il Wii controller era in entrambi i gruppi di periferiche? Questo perché esistono periferiche che permettono il flusso di informazione in entrambe le direzioni. Nel caso del Wii controller, esso permette all’utente di muovere il cursore nel menu della Wii oppure di controllare il gioco (input), ma, in determinate situazioni di gioco o quando il cursore passa sopra una voce selezionabile del menu, esso vibra, fornendo informazione all’utente (output).Nel seguente lucido il Wii controller è mostrato con altre periferiche che sono sia di input sia di output.In particolare, focalizziamoci sulla chiavetta USB e l’hard disk esterno: anch’essi, come la RAM, sono dispositivi di memoria.

In realtà esiste un altro dispositivo di memoria interno al computer: l’hard disk (HD), o hard drive, noto anche come disco fisso o disco rigido, in italiano.

Confrontiamo la RAM con l’HD. Hanno caratteristiche complementari che fanno sì che entrambi siano necessari per il buon funzionamento di un computer...

Recentemente, in alternativa al classico HD magnetico, viene offerto un nuovo tipo di HD, detto SSD (Solid State Disk), che ha la stessa caratteristica di non volatilità, ma è basato su tecnologia elettronica, quindi senza parti meccaniche(dischi, testine) che possono guastarsi, e più veloce.Viene da chiedersi perché l’SSD non venga proposto come alternativa alla RAM volatile. In realtà, l’SSD, come le altre memorie elettroniche non volatili (chiavette USB, schede SD “Secure Digital” tipiche delle macchine fotografiche digitali), pur essendo più veloci dell’HD magnetico, sono comunque molto più lente della RAM, e non riuscirebbero a lavorare in sincronia con la CPU (che arriva a lavorare a frequenze di 3 GHz, ossia a compiere 3 miliardi di operazioni al secondo).

L’HD magnetico rimane ancora la soluzione più diffusa per la conservazione di informazione a computer spento, perché decisamente la più conveniente dal punto di vista dei costi. La tecnologia SSD è relativamente nuova, ed ancora molto cara. Di fatto, l’HD è dove tutta l’informazione deve essere memorizzata prima dello spegnimento del computer. Quando“salvate” un documento, ciò che state facendo è ordinarne la memorizzazione nell’HD. L’HD è l’origine dei dati e delle istruzioni che dalla RAM vanno alla CPU. Prima di tutto vengono trasferiti dall’HD alla RAM. Questo è quello che succedequando accendete un computer: per un po’ di tempo dovete attendere perché sta avvenendo questo trasferimento.

Tutti i componenti di un computer sono collegati tra di loro attraverso un canale che trasporta segnali elettrici che rappresentano i dati, le operazioni su tali dati, e i comandi della CPU alle varie parti del computer. Il canale prende il nome di bus. Quando collegate una perifericha al computer (la stampante o una chiavetta USB “Universal Serial Bus”), la state in realtà connettendo al bus per renderla parte del sistema.

STRUMENTI PER ELEBORARE I SIMBOLI

7

Non dimentichiamoci che il computer che abbiamo appena smontato è uno strumento per elaborare simboli. Vediamo quali sono i simboli che si possono elaborare per mezzo dei computer.Ricordo che, in informatica, il termine “simbolo” ha un significato molto più debole che nella scienza della comunicazione e nelle discipline umanistiche in generale: per “simbolo” intendiamo un qualunque segno, come ad esempio una cifra, senza alcun significato associato, come succede invece per il leone, a cui associamo per simbolismo il concetto di“coraggio”. Avere delle semplici cifre su un computer sembra un po’ limitativo rispetto a quello che solitamente vediamo succedere sui computer intorno a noi. Jonathan Franzen, ad esempio, ha scritto un intero romanzo sul suo computer.E, sicuramente, sui computer degli studenti del corso si svolgono almeno queste tre attività: i social network, l’ascolto di musica, e la visione di film.

Ragioniamo:Premessa 1: i computer sono basati sul modello di calcolatore proposto da Turing e non sono altro che esecutori automatici di operazioni su simboli.Premessa 2: con i computer scriviamo romanzi, navighiamo nei social network, ascoltiamo musica, guardiamo film.Conclusione: scrivere romanzi, navigare nei social network, ascoltare musica, guardare film sono operazioni su simboli.Il ragionamento non fa una piega, ma la conclusione potrebbe lasciare perplessi.Per capire meglio la conclusione del ragionamento precedente, occorre fare più chiarezza sul legame che c’è tra tutte queste attività e i simboli elaborati da un computer.

CODIFICA..Tale legame è dato da una codifica.Codifica= corrispondenza biunivoca tra le entità di un particolare dominio e l’insieme dei numeri naturali oppure un suo sottoinsieme.Una corrispondenza si dice biunivoca quando ci sono tanti elementi da una parte quanti dall’altra, e ogni elemento vienemesso in corrispondenza con uno e un sol’ altro elemento.In una codifica, gli elementi presi in considerazione possono essere di qualunque tipo da una parte (le entità di un particolare dominio); ma dall'altra gli elementi devono essere dei numeri naturali (l’insieme dei numeri naturali oppure unsuo sottoinsieme.In altre parole, una codifica consiste nel far corrispondere a un elemento di nostro interesse uno e un solo numero naturale, come ad esempio avviene per gli studenti universitari, che ricevono un numero naturale che li caratterizza in maniera univoca: la matricola. Questo non vuol dire che lo studente stesso può venire elaborato da un computer, naturalmente, ma che almeno riusciamo a creare un riferimento allo studente che il computer può trattare.

Vediamo come si può creare una codifica per i testi...

La codifica dei testi si basa sulla codifica dei caratteri che li compongono: se ad ognilettera e ogni segno di punteggiatura faccio corrispondere un numero, ottengo unacorrispondenza biunivoca tra lettere e numeri. Perché tale corrispondenza sia utile,deve essere nota e condivisa da tutti coloro che vogliono usare un computer perscambiarsi i testi così codificati. La presente tabella mostra una nota codifica: UTF-8

Per poter essere elaborato da un computer, il testi di “Freedom” di Franzen deve essere codificato sotto forma di sequenza di numeri. Ciascun numero corrisponde in maniera unica a un carattere del testo.

Vediamo come si può costruire una codifica anche i social network come Facebook...Ci siamo già occupati dei testi, quindi ora concentriamo la nostra attenzione sulle immagini.

8

Guardando una foto molto dettagliata viene difficile da pensare che ci possa essere una corrispondenza con i numeri naturali.Guardando un’immagine a bassa risoluzione di SuperMario, si può invece intuire come può essere codificata una foto.Nell’immagine di SuperMario, si possono riconoscere elementi quadrati di base,caratterizzati dalle posizione che occupano, e dal loro colore: i pixel.Anche questa foto è fatta di pixel. Semplicemente non li vediamo perché sono troppopiccoli. In questa immagine ce ne sono ben 12 milioni.La codifica delle immagini si basa sui pixel che la compongono. Come il testo vieneconsiderato come una sequenza di caratteri per essere codificato, così consideriamo una foto come una sequenza di pixel. Se riusciamo a codificare un pixel, possiamo codificare un’intera immagine.

Abbiamo detto che la prima caratteristica di un pixel è la sua posizione. Se immaginiamo di inserire l’immagine in piano cartesiano, ecco che siamo in grado di individuare la posizione di pixel tramite le sue coordinate numeriche.Se immaginiamo di organizzare i colori in una tabella, allo stesso modo dei pixel siamo in grado di associare a ciascun colore un valore numerico, corrispondente alle coordinate del colore nella tabella.

I pixel che compongono SuperMario, quindi, possono venire codificati in base alla loro posizione ed al loro colore, permettendo di esprimere l’immagine, una sequenza di pixel, sotto forma di una sequenza di numeri.Si procede in maniera analoga per la foto da 12 milioni di pixel. Non è affatto un caso che le foto più dettagliate occupino più spazio nel computer: ci sono semplicemente più pixel codificati.

LEZIONE 5Come si sarà notato, nella tabella che permette la codifica dei colori, non tutte le sfumature sono presenti. Basta prendere due quadrati adiacenti e immaginare di prendere il colore intermedio: esso non è chiaramente presente nella tabella, quindi non è un colore codificato.Questo vuole dire che solo una piccola parte dei colori presenti nello spettro dell’arcobaleno può essere codificato. Numerosissime sfumature (infinite, per essere precisi) rimangono tagliate fuori dalla codifica. D’altronde non è pensabile di avere una tabella di dimensioni infinite per accomodare le infinite sfumature dei colori.Questo è il problema della conversione dall’“analogico” al “digitale”: la codificadi fenomeni fisici comporta sempre una perdita di informazione. Volendo fareun parallelo con la matematica, i fenomeni fisici sono caratterizzati dasfumature infinitesimali analoghe ai numeri reali, mentre le codifiche sonocorrispondenze con i numeri naturali, che, pur essendo infiniti, sonocomunque molto minori di quelli reali e non riescono a fungere da riferimentialle suddette sfumature.

ANALOGICO VS DIGITALEE’ il discorso delle persone che dicono che guardare una foto non potrà mai eguagliare la visione del vero.In realtà, tridimensionalità a parte, le codifiche attuali di colori arrivano a catturare milioni di sfumature, molte delle quali indistinguibili all’occhio umano.Quindi, seppur con perdite, le codifiche ci permettono di avere delle approssimazioni più che buone della realtà. Abbiamo menzionato prima che la foto dettagliata dei dolci da luogo a una sequenza codificata di numeri molto più lunga di quella relativa al disegno molto semplice di SuperMario.Le lunghezze delle codifiche naturalmente dipendono da che cosa viene codificato: maggiore è l’informazione da codificare, più lungo è il risultato, e infatti la foto dei dolci (con tutti i dettagli e le sfumature dati dai 12 milioni di pixel) sicuramente occupa più spazio nel computer che il disegno di SuperMario (che di fatto è una sequenza di 16 x 12 pixel).

COMPRESSIONEVi sono, però, modi diversi di descrivere la sequenza di pixel codificati, e, se scegliamo in maniera accorta, possiamo ottenere una descrizione più breve della stessa sequenza, in modo da farle occupare meno spazio sul computer,e anche risparmiare tempo nel trasmetterla da un computer all’altro. Chiamiamo “compressione” un modo per ottenere sequenze di simboli che descrivono una particolare informazione in maniera più breve del semplice elenco delle codifiche di ciascun elemento che la compone. La descrizione dell’immagine di SuperMario, ad esempio, può essere compressa descrivendone i pixel come mostrato nel

9

secondo riquadro rosso.Qualunque tipo di informazione che può essere codificato, può essere compresso. Il rapporto di compressione, ossia quanto riusciamo a sintetizzarne la descrizione,dipende dal contenuto dell’informazione. (Immaginate di dover descrivere un rettangolo 16 x 12 tutto bianco. Come fareste?)Vediamo ora come funziona la codifica che permette di avere musica sul computer.

I suoni, e quindi anche la musica, sono dovuti a vibrazioni dell’aria (o di un qualsiasi mezzo tranne che nel vuoto) che si propagano sotto forma di onde e che, colpendo i nostri timpani, danno luogo a ciò che noi percepiamo con le nostre orecchie. Le onde sonore sono caratterizzate da un’ampiezza (che determina l’intensità del suono: più è ampia l’onda più è forte il suono), una frequenza (che determina l’altezza della nota: note alte corrispondono a frequenze alte), e da una forma (che determina il timbro del suono: la mia voce, quella di Giovanna, pianoforte, violino, piatti…)

CAMPIONAMENTOLa codifica dei suoni si basa sulla codifica delle onde che liproducono, a sua volta basata su una procedura chiamatacampionamento. Il campionamento consiste nel considerare l’onda che costituisce il suono solo in determinati istanti temporali. Immaginate di descrivere l’onda del suono (con la sua ampiezza, frequenza, e forma) in un piano cartesiano, e di considerare solo determinati punti di tal curva. A tali punti corrispondono, nel piano cartesiano, delle precise coordinate, il cui valore numerico viene usato come codifica del suono “campionato”. La sequenza delle codifiche dei campioni costituisce la codifica dell’intera informazione sonora rappresentata dall’onda. Non c’è un criterio universale per stabilire la distanza tra un campione e l’altro (o il suo inverso, noto come “frequenza di campionamento”). E’ facile immaginare che a campioni più vicini tra di loro (frequenza di campionamento maggiore) corrisponda una codifica più lunga, ed anche una ricostruzione più fedele alla curva originale. Anche nel caso delle codifiche di suoni e musica, ci sono metodi di compressione per sintetizzarne la descrizione. I famosi file MP3 si chiamano in questo modo perché prendono il nome da una specifica tecnica di codifica dei suoni con compressione. Anche in questo contesto vi sono persone che affermano che il suono di un MP3 su un computer non eguaglierà mai la qualità di un concerto dal vivo: è tutta una questione di approssimazioni.

La codifica di un suono serve a farlo elaborare a un computer (ad esempio,per permettere il trasferimento di un brano dal negozio online iTunes al nostrocomputer). Noi, però, anche nell’era digitale, continuiamo ad ascoltare con lenostre orecchie, e per far sì che il nostro ascolto sia possibile, necessitiamo dionde sonore che si propagano nell’aria.Si rende necessaria, dunque, una riconversione dalla codifica numerica alleonde sonore: abbiamo cioè bisogno di altoparlanti che, comandati dai segnalielettrici prodotti dal computer secondo i numeri contenuti nella codifica del brano, fanno vibrare delle membrane che producono onde che noi percepiamocome suoni e musica. Vediamo infine come procedere per codificare i filmati.In realtà, avendo a disposizione le tecniche di codifica delle immagini e dei suoni, è facile immaginare che esse si possono combinare per creare codifiche di filmati. Servono solo delle tecniche aggiuntive per tener conto della sincronizzazione tra immagini e suoni, e dell'eventuale compressione basata sull’idea di non descrivere tutti i pixel di ciascuna immagine, ma di descrivere quella iniziale e poi di concentrarsi sulle differenze tra un’immagine e la successiva (compressione migliore con fotogrammi molto simili, compressione peggiore con cambio di scena). ..Frequenza di campionamento

10

LEZIONE 6Abbiamo visto qualche limite (importante) del computer: si esamina un problema p, e si mostra che un computer non è in grado di risolvere p. Tipico esempio: capire il significato di una parola.Eppure i computer sono in grado di eseguire molte operazioni, e di risolvere un gran numero di problemi.E’ arrivato il momento di delineare esplicitamente il campo di lavoro dei computer.Esaminiamo che cosa hanno in comune tutte le soluzioni che un computer è in grado di offrire.

SOFTWARESi definisce software il complesso di comandi che fanno eseguire al computer delle operazioni.Il termine si contrappone ad hardware, che invece designa tutto ciò che è materiale e tangibile in un computer.Un computer è un insieme di dispositivi elettronici: un computer è hardware.Un computer diventa però utile solo quando fornisce un servizio, e ciò è possibile solo quando l’hardware è controllatomediante il software.Senza il software, l’hardware è un inutile agglomerato di plastica, silicio e metalli. Senza l’hardware, il software è solo un’idea che potrebbe essere messa in pratica. Tale idea dovrebbe essere la soluzione a un problema.E’ facile vedere che non tutti i problemi possono essere risolti mediante il software di un computer.La natura stessa dei computer stabilisce il tipo di problemi che essi sono in grado di risolvere.Se c’è una differenza nell’hardware, ci sarà probabilmente una differenza anche nello spettro dei problemi che si possono risolvere. Anche il software è coinvolto, perché comunque l’hardware deve essere controllato in maniera adeguata. Ricordatevi che la “matica” in “informatica” viene da “automatica”: il funzionamento dell’accoppiata hardware-software deve avvenire col minor intervento umano possibile.Tutte queste considerazioni ci aiutano a definire ciò che un computer è in grado di eseguire.

I CONCETTI BASE ? Problema: Un ostacolo, un impedimento, una difficoltà che desideriamo eliminare. ! Soluzione: Eliminazione del problema. Computer= Elaboratore automatico di simboliIl problema si dice risolvibile quando esiste un modo per raggiungere la soluzione. Se vogliamo che sia il computer a raggiungere la soluzione, il problema deve essere espresso sotto forma di simboli che il computer può elaborare.

ALGORITMOUn modo per raggiungere la soluzione che ha le seguenti caratteristiche:

1) è una sequenza finita di operazioni ben definite;2) dopo l'esecuzione di ogni operazione, è chiaro qual è la successiva (determinismo).

Il termine “algoritmo” deriva dal nome del matematico persiano al-Kwarizhmi.Tra i suoi numerosi meriti, il più grande è forse quello di aver importato in occidente il sistema numerico decimale dall’India. (Come saprete, gli antichi Romani non avevano un simbolo per lo zero.) Un altro termine che ha le sue radici nel nome di questo matematico è “algebra”. La figura nella slide precedente si trova su un francobollo sovietico, che nel 1980 festeggiava il 1200° anniversario della nascita di al-Kwarizhmi.

PROGRAMMAUn algoritmo scritto in maniera tale da poter essere eseguito da un computer:

3) tutte le operazioni consistono in elaborazioni di simboli;4) tutte le operazioni sono eseguibili dal computer.

PROCESSO

Un programma in esecuzione su un computer. Solitamente i programmi risiedono nell’hard disk di un computer, ed i processi nella RAM. Attenzione: il computer non è in grado di trovare una soluzione da solo. L’algoritmo deve essere concepito prima, e poi trasferito nel computer sotto forma di programma, per essere eseguito e fornire la soluzione.

DIAGRAMMI DI FLUSSOUn diagramma di flusso è una notazione grafica per esprimere gli algoritmi. Esiste un elemento grafico (chiamato blocco) per ogni passaggio fondamentale negli algoritmi. I blocchi sono tra loro collegati da delle frecce, che simboleggiano i l flusso di esecuzione, ossia la sequenza di operazioni che vengono svolte una dopo l’altra.La freccia entrante in un blocco rappresenta l’istante in cui l’operazione descritta dal blocco sta per essere eseguita. All’interno di ogni blocco, l’operazione da eseguire è descritta in un linguaggio a scelta, purché compreso dal destinatario

del diagramma di flusso.

11

La freccia uscente da un blocco rappresenta l’istante in cui l’operazione descritta dal blocco è stata eseguita e si passa a quella successiva. Tutti i blocchi hanno una o più frecce in ingresso e una sola in uscita, tranne il blocco di inizio (zero entranti, una sola uscente), il blocco di fine (una o più entranti, zero uscenti) e il blocco di controllo (una o più entranti, due uscenti: una per ciascun possibile esito del controllo).

...Ma tale algoritmo non puòdiventare un programma. Perchè?Innanzitutto l’algoritmo è descritto in italiano. Per diventare un programma dovrebbe essere riscritto in un linguaggio comprensibile al computer. Tale traduzione risulta molto difficile da realizzare, a causa delle descrizioni molto approssimative delle varie operazioni, che solo un essere umano riesce a gestire. (Ad es: dove si prende l’acqua? Su quale fuoco va messa la pentola? Come va messa lapentola sul fuoco?). Inoltre, l’algoritmo non è esprimibile in termini di elaborazione di simboli: si tratta di vera acqua e vere pentole, e un computer non ha l’hardware per manipolare tali oggetti. Forse un robot con telecamere, sensori, e braccia meccaniche adeguate potrebbe risolvere il problema della pasta, ma servecomunque i l software per comandarlo.

ESERCIZIO: Disegnare il diagramma di flussodell’algoritmo del calcolo della

media degli esami di un libretto

LEZIONE 7RETI E WEB

Informatica = Informazione + Automatica Telematica= Telecomunicazione + Informatica

L’evoluzione della comunicazione a distanza. Di fatto, solo i l primo (le lettere) non è basato su una codifica.Noi ci concentreremo sull’ultimo modo: quello basato sui computer, naturalmente.Una rete telematica può essere vista come un grafo composto da nodi collegati direttamente o indirettamente (ovvero tramite altri nodi). Un computer connesso a una rete telematica (cioè un nodo della rete) viene denominato host.

CLASSIFICAZIONE DELE RETI TELEMATICHE Criteri:

• topologia• estenzione spaziale• canale di trasmissione• modalità di connessione

TOPOLOGIA

Rete locale (LAN, Local Area Network): connette computer e unità periferiche, in genere all’interno di un singolo edificio senza ricorrere a un fornitore di servizi commerciali di telecomunicazione

Rete metropolitana (MAN, Metropolitan Area Network): fornisce le connessioni fra computer situati in una stessa area urbana, ricorrendo a fornitori di servizi commerciali di telecomunicazione.

12

Rete geografica (WAN, Wide Area Network): supera le dimensioni di una singola area urbana, ricorrendo a fornitori di servizi pubblici di telecomunicazione o a enti di gestione speciali (spesso enti pubblici).

CANALE DI TRASMISSIONE

Reti locali: sfruttano cavi appositamente disposti nell’area interessata (tecnologia ethernet) oppure connessioni senza fili (Wi-Fi, da Wireless Fidelity) in cui la trasmissione avviene tramite onde radio.

Reti pubbliche: utilizzano infrastrutture e servizi messi a disposizione da un fornitore del settore delle telecomunicazioni si basano su diversi tipi di tecnologie: linea telefonica tradizionale (analogica), ISDN, ADSL, fibre ottiche.

MODALITA' DI TRASMISSIONE

Linea telefonica 56Kbit/sISDN (Integrated Services Digital Network) 128Kbit/sADSL (Asymmetric Digital Subscriber Line) 10 & 1Mbit/sFibre ottiche 100 Mbit/s

CHE COSA SONO I BIT?

In realtà i numeri devono essere a loro volta codificati per essere elaborati dal computer.Un bit è l’unità di base dell’informazione elaborata da un computer: vale 0 oppure 1. 8 bit (b) = 1 Byte (B).Perchè 0 e 1?

– Tensione elettrica alta: 1– Tensione elettrica bassa:

0

I circuiti elettronici sono costruiti per rispondere con segnali elettrici a tensione alta oppure bassa. La tensione alta viene interpretata come un “1”, mentre quella bassa come uno “0”.La restrizione a due soli valori non ha ragioni fisiche: è possibile costruire circuiti che rispondono come numerosilivelli di tensione. Ad esempio potremmo averne 10 diversi, interpretabili come le 10 cifre (da “0” a “9”) che sono abitualmente usate in matematica.

I vantaggi di avere solo due segnali sono però numerosi:i circuiti sono più semplici da realizzare e costano meno; inoltre i segnali in uscita, anche in presenza di perturbazioni dovute a cause naturali, sono più facili da interpretare, con minori possibilità di errore.

LEZIONE 8I multipli:1 KB (kilo) = 1000 B"1 MB (mega) = 1 mln B1 GB (giga) = 1 mld B1 TB (tera) = 1000 mld B

CODIFICA BINARIA DEI NUMERINumerazione con base 10:

215 = 2×102 + 1×101 + 5×100

Numerazione con base 2:110010111 = 1×28 + 1×27 + 0×26 + 0×25 + 1×24 + 0×23 + 1×22 + 1×21 + 1×20

ESERCIZIO

13

– Convertire i seguenti numeri da base 2 a base 10: 101, 1000, 11011.– Convertire i seguenti numeri da base 10 a base 2: 8, 23, 144, 201.

CANALE DI TRASMISSIONEOltre alle reti locali e a quelle pubbliche, esistono le reti di trasporto: connettono fra loro non singoli utenti finali, ma nodi speciali che a loro volta, tramite reti metropolitane o locali, raccolgono e smistano il traffico aggregato di molti utenti.Sono reti di trasporto le dorsali internet (internet backbone), linee ad alta velocità e capacità che trasportano a grandi distanze il traffico di dati della rete internet.

MODALITA' DI CONNESSIONE• commutazione di circuito• commutazione di pacchetto

----> Commutazione di circuitoLa commutazione di circuito è tipica della telefonia tradizionale: quando un utente compone il numero telefonico di un altro utente, una serie di centrali di commutazione stabiliscono una connessione fra i due utenti che dura per tutta la telefonata. La commutazione di circuito è semplice da realizzare, ma ha il difetto di impegnare completamente una linea di comunicazione per tutta la durata della telefonata, indipendentemente dal fatto che a un determinato istante i due utenti stiano o non stiano sfruttando la linea.

----> Commutazione di pacchettoTipica delle reti telematicheFunziona così:

• un messaggio viene dapprima frammentato in elementi più piccoli, detti pacchetti • ogni pacchetto viene inviato a destinazione separatamente dagli altri (e può seguire una strada diversa dagli altri

pacchetti)• quando tutti i pacchetti sono giunti a destinazione viene ricostituito il messaggio originario

In questo modo la capacità di trasmissione delle linee può essere sfruttata al massimo.

PROTOCOLLINel campo della telematica un protocollo è un insieme di direttive per la gestione degli scambi di dati fra i nodi di unarete. Tipicamente i protocolli sono strutturati a più livelli:- i livelli più bassi riguardano la gestione dei dispositivi fisici di cui è costituita la rete- i livelli intermedi concernono le modalità di trasmissione dei dati- i livelli più alti concernono l’interazione con le applicazioni software che girano sul computer e si scambiano i datiNoi siamo interessati a capire come internet possa mettere in comunicazione host diversi nell’uso di svariate applicazioni,quindi vedremo protocolli di livello medio (per il trasporto di pacchetti da host a host) e di livello alto (per l’uso di applicazioni).

Protocolli di livello intermedio: TCP/IP

• IP: Internet Protocol = E’ il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in generale privi di una connessione fisica diretta. Si occupa, cioè, dell’instradamento (routing) dei pacchetti.

Ogni host è connesso in rete grazie a una scheda di rete. Ogni scheda di rete è identificata da un ‘indirizzo’ univoco (detto indirizzo IP), che intuitivamente può essere visto come una specie di numero telefonico della scheda di rete.

• Indirizzi IP = Un indirizzo IP è formato da 4 Byte, solitamente rappresentati come quattro numeri naturali in notazione decimale (ciascuno compreso fra 0 e 255) separati da punti, ad esempio: 195.176.39.49

ROUTING

L’instradamento (routing) è il processo di scelta del percorso che un pacchetto segue a partire dallo host mittente per raggiungere lo host destinatario.La strada seguita da un pacchetto non viene decisa a priori con una pianificazione a livello globale.Al contrario, ciascun nodo intermedio del percorso è responsabile della scelta del prossimo nodo a cui inviare un pacchetto in transito.

Un dispositivo che esegua queste scelte è denominato router. Un router può essere un normale computer su cui giri

14

un’apposita applicazione software oppure un dispositivo specializzato. Su un computer funzionano contemporaneamente numerosi programmi…

TCP: Transmission ControlSi occupa di realizzare una connessione stabile fra due applicazioni, che in genere girano su host diversi.Il servizio offerto da TCP è la realizzazione di un flusso affidabile di dati.TCP garantisce che i pacchetti trasmessi tramite il protocollo IP arrivino nell’ordine corretto e che gli eventuali pacchetti perduti vengano nuovamente inviati.TCP realizza un flusso bidirezionale di dati fra due ‘punti virtuali’, detti socket, che le applicazioni software utilizzano perinviare e per ricevere dati. Un socket è costituito da:

• l’indirizzo IP di una scheda di rete• una porta TCP (TCP port), che può essere considerata come una specie di casella postale (195.176.39.49:80)

Protocolli applicativiI protocolli dei livelli più alti definiscono gli standard per la comunicazione tra la rete e le applicazioni software che girano sui singoli host. Esempi di protocolli applicativi standard sono:

• FTP (File Transfer Protocol): per il trasferimento di file• HTTP (HyperText Transfer Protocol): per il trasferimento di pagine Web (≠ Internet!)"• SMTP (Simple Mail Transfer Protocol): per l’invio di messaggi di posta elettronica.• POP (Post Office Protocol): per la gestione locale dei messaggi di posta elettronica sul proprio computer• IMAP (Internet Message Access Protocol): per la gestione dei messaggi di posta elettronica su un server di posta

remoto.

LEZIONE 9

Internet ≠ Web! Il web è solo uno degli aspetti di internet. In particolare, chiamiamo web tutta l’informazione che riusciamo a ottenere collegandoci ad altri calcolatori per mezzo di un browser.Il browser è un’applicazione che consente la visualizzazione su schermo del contenuto di pagine ipermediali provenienti da altri computer e trasferite per mezzo del protocollo HTTP.

Che cos'è internet?"Internet è una realtà molto complessa, di cui distinguiamo numerosi aspetti:• le infrastrutture fisiche (hardware) utilizzate per il trasferimento dell’informazione• i protocolli di gestione di tali infrastrutture, dai livelli più bassi legati ai fenomeni fisici nell’hardware fino a quelli più alti riguardanti le applicazioni per gli utenti finali• i servizi offerti all’utente da applicazioni software che sfruttano internet per il trasferimento di informazione"• le organizzazioni e le società di gestione che creano e mantengono le condizioni affinché internet possa funzionare regolarmente"

Gestione di InternetPer quanto riguarda le organizzazioni di gestione di internet ricordiamo:• gli enti di gestione delle infrastrutture fisiche (come il GARR in Italia).• gli enti che definiscono e pubblicano i protocolli per internet, come l’International Organization for Standardization (ISO), che si occupa di standard di ogni tipo, o il World Wide Web Consortium (W3C), che si occupa in particolare degli standard del Web.• le agenzie che assegnano su richiesta (e a pagamento) a individui e organizzazione i nomi dei domini (come www.unibg.it) da utilizzare negli indirizzi web.• queste agenzie, dette domain name registrar, fanno in ultima analisi riferimento alla Internet Corporation for AssignedNames and Numbers (ICANN), a sua volta controllata dal governo degli Stati Uniti.

Internet / Intranet / ExtranetLe tecnologie di internet possono essere utilizzate anche in reti ‘chiuse’, riservate ad esempio ai membri di un’organizzazione.• In genere si distingue fra:

– intranet : una rete privata, riservata ai membri di un’organizzazione, basata sulle tecnologie di internet– extranet : una rete analoga a un’intranet, ma estesa a certe categorie di partner esterni di un’organizzazione

(clienti, fornitori, ecc.)

Applicazioni Internet / Web• Una rete telematica può essere utilizzata per creare applicazioni che si basano sull’interazione di più componentiche girano su host diversi e sfruttano la rete per trasferire dati da uno host all’altro.• In particolare, quando la rete utilizzata è internet, queste applicazioni sono denominate “applicazioni internet”.• Le applicazioni che consentono a un utente di accedere a certi servizi utilizzando un browser prendono il nome di

15

“applicazioni web” (esempi: easyjet, trenitalia, ticketone, google maps).• Altre applicazioni internet, invece, richiedono da parte dell’utente l’uso di un’applicazione speciale (in genere scaricata dalla rete e installata sul computer (esempio: google earth).

Architettura Client – Server• Le applicazioni internet possono essere realizzate secondo differenti architetture• L’architettura più semplice e diffusa è l’architettura client-server. Nei sistemi client-server:– una componente dell’applicazione, detta server, ha il compito di fornire determinati servizi– un’altra componente, detta client, ha il compito di consumare i servizi forniti dal server• In genere c’è una forte asimmetria fra la componente server (spesso piuttosto complessa) e la componente client (di solito piuttosto semplice)• Si noti che molte copie del client possono interagire contemporaneamente e da host diversi con un unico server.

Esempio di client-server• Google Earth

– il server è un’applicazione che gira sui computer di Google Inc., in grado di fornire mappe satellitari di tutta la superficie terrestre, integrate con svariate informazioni accessorie (confini, strade, condizioni meteorologiche ecc.)

– -il client è un’applicazione che gestisce la visualizzazione delle informazioni inviate dal server, e che può essere scaricata dal sito web di Google Inc. e installata su qualsiasi computer.

Applicazioni Web C-S• Nelle applicazioni web, il client è costituito semplicemente da un browser• Il browser può interpretare ed eseguire localmente dei progr contenuti all’interno delle pagine web scaricate dal server• I programmi contenuti in una pagina web ed eseguiti dal client all’interno del browser sono denominati applet (cioè “applicazioncine”)• Esempi:– animazioni visualizzate all’interno di pagina– visualizzazione di un video di YouTube– giochi online

• In altri casi, durante la navigazione di un sito web certi programmi sono eseguiti dal server e i risultati dell’esecuzione vengono poi inviati al cliente.• Esempi:– generazione di pagine web dinamiche– pagine web interattive

Lo stato dell’interazione• Le applicazioni web si basano sul protocollo http, che presenta un problema: l’interazione è “senza memoria” o, come si dice con un termine tecnico, priva di stato (stateless), ciò significa che ogni richiesta che giunge al server da parte del client è trattata dal server come una nuova richiesta, indipendente dalle richieste precedenti.In altre parole il server non tiene memoria delle eventuali fasi precedenti dell’interazione.Attenzione però:• il client può conservare memoria delle sue richieste precedenti – il punto è che non lo fa il server• alcune tecnologie particolari, come le servlet Java, consentono al server di mantenere una rappresentazione dello stato dell’interazione.

Cookies• Per molte applicazioni questo costituisce un problema: sono quindi state sviluppate tecniche per rappresentare lo stato dell’interazione (state management).• La soluzione più comune si basa sull’uso dei cookie:– quando un server deve conservare per il futuro certi dati concernenti l’interazione con un certo client, memorizza questi dati direttamente sullo host del client; questi dati sono rappresentati sotto forma di file denominati “cookie”– quando il server ha necessità di utilizzare i dati conservati in un cookie, li legge direttamente dallo host del client• L’uso di questa tecnica non è priva di problemi, perché consentire al server l’accesso al file system del client comporta rischi per la sicurezza e la privatezza dei dati. I browser danno quindi la possibilità di escludere l’invio dei cookie da parte di un server, ma a volte questa limitazione può impedire al server di operare correttamente.

Web 1.0Che cosa vuol dire 1.0?In informatica, la numerazione x.y per indicare la versione di un prodotto ha questo significato: se le modificheapportate non sono particolarmente rivoluzionarie, si considera il nuovo prodotto solo una variante della stessa versione, quindi si lascia intatto x e si aumenta y di 1. Quando invece si è di fronte ad un cambiamento radicale, si aumenta x di 1 e si azzera y per segnare l’inizio di una nuova era del prodotto.

Web 1.0 1.2 1.2 2.0

16

• Il Web (o più precisamente World Wide Web, noto anche come WWW o W3) è nato nell’agosto del 1991 presso il CERN di Ginevra, grazie a un’idea di Tim Berners-Lee.• Secondo quanto riportato sul blog di Google, il Web contava nel luglio 2008 più di 1000 miliardi di pagine distribuite su più di 100 milioni di host• Che cos’è il Web?– un colossale ipertesto, formato da miliardi di ‘pagine’ collegate fra loro?– un archivio distribuito di informazioni?– una rete di servizi fruibili in certi luoghi virtuali chiamati “siti”?

Evoluzione del Web• Nell’evoluzione del Web si distinguono oggi diverse fasi:– Web 1.0: la fase iniziale, dal 1991 ai primi anni del 2000– Web 2.0: dai primi anni del 2000 a oggi (il termine “Web 2.0” è stato usato per la prima volta nel 2004)– Web 3.0: ciò che il Web dovrebbe diventare nei prossimi anni• La distinzione fra queste fasi è piuttosto vaga, e autori diversi le definiscono in modi differenti: per comodità faremo comunque uso di questa terminologia, almeno in modo informale.

Il Web 1.0---------> Risorse rese disponibili• Il Web 1.0 è innanzitutto un ipertesto multimediale distribuito:– ipertesto: il Web 1.0 è costituito da pagine collegate fra loro da link, che consentono a un utente di navigare nell’ipertesto– multimediale: le pagine contengono un testo audiovisivo nel senso più ampio del termine: testo linguistico, grafici, immagini, video– distribuito: le pagine dell’ipertesto risiedono su molti host distinti, connessi tramite internet• Un insieme di pagine web correlate (in genere, ma non necessariamente, memorizzate su un singolo host) costituiscono un sito Web.---------> Problemi e soluzioni• La seguente tabella schematizza i principali problemi del Web 1.0 e le relative soluzioni:

I linguaggi di marcatura• Un linguaggio di marcatura (markup language) è un sistema di simboli convenzionali (chiamati tag) che possono essere utilizzati per marcare certe sezioni di un testo, associando una determinata proprietà a ciascuna sezione"• Esempio:"" <titoloOpera>La Divina Commedia</titoloOpera> <nomeAutore>Dante Alighieri</nomeAutore> <titoloVolume>Inferno</titoloVolume> <titoloCapitolo>Canto I</titoloCapitolo> <testo>Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura ché la diritta via era smarrita … </testo>

• I tag si comportano come delle parentesi: a ogni tag di apertura deve corrispondere un tag di chiusura e fra questi è contenuta la sezione marcata del testo: <titoloOpera>Il cacciatore di aquiloni</titoloOpera>• È possibile inserire l’una nell’altra sezioni marcate di testo:<capitolo> <titoloCapitolo>Uno</titoloCapitolo> <periodo> Sono diventato la persona che sono oggi all’età di dodici anni, in una gelida giornata invernale del 1975. … </periodo> ...</capitolo> …

Il linguaggio HTML• HTML (HyperText Markup Language) è un linguaggio standard per la marcatura di ipertesti, ovvero di testi che possono contenere collegamenti (link) ad altre pagine• HTML prevede un insieme prefissato di tag, il cui significato è definito da una raccomandazione W3CEsempi di tag HTML:<head> ... </head><style>... </style><title>... </title><body> ... </body>

Significato/body>“Significato” va sempre inteso in maniera molto debole in informatica. Ricordatevi della stanza cinese.<題>Freedom</題> Significato??Il W3C dice:Authors should use the TITLE element to identify the contents of a document. Since users often consult documents out of

17

context, authors should provide context-rich titles.Thus, instead of a title such as "Introduction", which doesn't provide much contextual background, authors should supply a title such as "Introduction to Medieval Bee-Keeping" instead.

Le pagine HTML• Nel caso più semplice, una pagina web è un file di testo marcato tramite tag HTML• per costruire una pagina è possibile: • scrivere direttamente un file HTML utilizzando un editor di file di testo• oppure scrivere una pagina web con uno strumento software specifico, che la traduce automaticamente in HTML• per visualizzare una pagina è possibile:• utilizzare un browser, che è in grado di visualizzare i file HTML interpretando i tag in modo coerente con le raccomandazioni W3C

LEZIONE 10Pagine dinamiche Le pagine dinamiche sono pagine in cui il contenuto cambia mentre le visualizziamo, il dinamismo è dato dall'interattività dell'utente con la pagina stessa, che cambia in base a come interagiamo con essa, es: EasyJet, (al contrario della pagina di Verdicchio che cambia nel tempo ma non durante l'interazione).• L’accesso a una pagina web può innescare l’esecuzione di programmi, ad esempio per eseguire la prenotazione di un biglietto aereo• Questi programmi possono generare, in tutto o in parte, la pagina che viene visualizzata all’interno dal browser: si parla allora di pagine dinamiche, mentre le pagine contenenti un testo fisso sono dette pagine statiche.• Ad esempio, il sito del corso cs.unibg.it/verdicch/ico.html è costituito da una pagina statica, mentre durante l’acquisto di un biglietto su easyjet.com si può vedere una sequenza di pagine dinamiche.• Le pagine dinamiche di easyjet.com hanno una caratteristica in più: sono pagine interagire, che generano contenuti diversi a seconda di particolari richieste eseguite dall’utente.

Pubblicare pagineUna pagina si dice “pubblicata” quando è accessibile tramite Internet. Per accedere ad una pagina occorre localizzarla in nella rete. A questo scopo ogni pagina è fornita di un URL (Uniform Resource Locator), ad esempio:

http://cs.unibg.it/verdicch/ico.htmlhttp:// ---> identifica il protocollo di trasferimento di ipertesti, indica una pagina cs.unibg.it ---> identifica l’host in internet, cioè un dato pc della segreteria dell'unibg. Questa parte è chiamata anche Dominio, o Domain Name, ed è organizzata in maniera gerarchica. [IT è il dominio piu grande e può essere scelto solo dai capi di Stato e non modificato, Unibg e Cs possono esserecambiati piu facilmente).verdicch/ico.html ---> identifica un file con estensione HTML, descrivendo il cammino nel file system dell'host (tra le cartelle in cui sono organizzati i file). Spesso se si cambia l'estensione il file non può essere riprodotto. / ---> rappresenta il File System, ovvero il modo di organizzare i file in sequenza (cartelle), che servono a delimitare il percorso da seguire x ritrovare il file che si sta cercando. . ---> stanno al posto dello Slash (spazio)

DominiIl sito web di UniBG è associato al dominio www.unibg.it. I file (insieme di informazioni trattate in maniera unitaria) che costituiscono questo sito si trovano fisicamente su uno host connesso a internet tramite una scheda di rete il cui indirizzo IP (statico) è 193.204.255.20. Quando un utente desidera accedere al sito web di UniBG, fornisce a un browser l’URL http://www.unibg.it/"Per creare un collegamento con il sito di UniBG è necessario che il browser ricostruisca l’indirizzo IP 193.204.255.20 a partire dal nome di dominio www.unibg.it. L’associazione fra un nome di dominio e un indirizzo IP è possibile grazie a un particolare servizio internet, chiamato DNS (Domain Name Server). Ma come si fa a visitare una pagina web di cui non si conosce l’indirizzo?..

Motori di ricerca (o Search Engine)..Naturalmente, tramite i motori di ricerca, o search engine. Il motore di ricerca dominatore del mercato è senza ombra di dubbio Google, con il 72% (Yahoo 15%, Bing 10%) di tutte le ricerche effettuate (ottobre 2011).I fondatori di Google sono Sergey Brin e Larry Page, che hanno guadagnato 17 mld di $ a testa. Il principale business di Google sta negli annunci pubblicitari inseriti nelle sue pagine. Il

18

business è comunque in continua espansione, alla ricerca di nuovi mercati (nella foto: Brin indossa un prototipo di Google Glasses).

Il “villaggio globale” di Marshall McLuhan - “Understanding Media: the Extensions of Man” (1964)McLuhan, in tempi precedenti all’avvento di Internet, ha proposto il concetto di “villaggio globale” per descrivere l’allargamento, grazie ai media, del bacino delle nostre conoscenze da una dimensione limitata alla ristretta cerchia dipersone con cui abbiamo contatti diretti (i l nostro villaggio, appunto) a una dimensione che abbraccia l’intero globo. I piccoli 'villaggi' so sono espansi, i confronti fra persone aumentano moltissimo e ci si può confrontare globalmente con un numero di persone sempre maggiore in tutti gli ambiti. Internet non fa che accentuare tale fenomeno, perché è di fatto un canale di comunicazione molto efficiente e diffuso in tutto il mondo. Se da un lato lo scambio di informazioni ne è favorito, c’è un rovescio nella medaglia nel doversi confrontare con standard molto più alti che in passato, perché persone con caratteristiche straordinarie di cui non saremmo mai venuti a conoscenza senza i mezzi di comunicazione, sono ora non solo raggiungibili, ma anche esaltati dagli stessi media. Brin e Page, che hanno fatto la loro fortuna proprio grazie alla comunicazione offerta dalla loro azienda, mostrano quanto ricco un informatico potrebbe diventare, ma i media ci offrono standard irrangiungibili per i più in molti altri aspetti della vita umana, come ad esempio la bellezza o il potere.

Trovare una pagina web I motori di ricerca (come Google, Yahoo!Search, Bing) sono applicazioni server disponibili su determinati host connessi con internet, cui si accede in modalità client tramite un browser. Un motore di ricerca è in grado di localizzare le pagine web che contengono determinate parole o sequenze di parole. Gli URL di tali pagine, insieme a una concisa descrizione di ciascuna pagina, vengono presentati all’utente in ordine di rilevanza decrescente. L’utente può poi sfruttare gli URL per accedere alle pagine.Un motore di ricerca deve:" 1) conoscere le pagine webPer conoscere le pagine presenti nel Web i motori di ricerca utilizzano:- applicazioni che esplorano sistematicamente il Web (dette Crawler), scoprendo continuamente pagine recentemente inserite.- basi di dati di grandissime dimensioni, in cui le pagine scoperte dal Crawler vengono memorizzate e ‘indicizzate’, in modo da poter essere reperite rapidamente in base alle parole contenute (la base di dati di Google memorizza attualmente più di 1000 miliardi di pagine).

2) identificarle in base alle parole della ricerca - L’identificazione delle pagine che corrispondono alla richiesta dell’utente avviene mediante ricerca nella base di dati delmotore di ricerca- Come già detto, questa ricerca è agevolata da speciali indici che consentono di identificare le pagine contenenti determinate parole senza doverne scandire il contenuto dall’inizio alla fine - La scansione integrale di una pagina è tipicamente eseguita una sola volta, quando la pagina viene inserita nella base di dati e indicizzata. 3) calcolarne la rilevanza- Il concetto di rilevanza di un testo (relativamente a una richiesta) è studiato da tempo da una disciplina nota comeInformation Retrieval- I metodi classici di information retrieval si basano soprattutto sulle frequenze di distribuzione delle parole in un archivio di documenti.- Nel caso delle pagine web possono essere utilizzati approcci differenti, che si basano non solo sul contenuto delle pagine ma anche sulle connessioni fra le pagine.- Il motore di ricerca Google, ad esempio, deve buona parte del suo successo a un particolare sistema di ordinamento delle pagine, basato sul concetto di rango di una pagina (page rank).- Questo sistema è stato realizzato da Sergey Brin e Larry Page, fondatori di Google Inc., a partire dall’algoritmo HyperSearch ideato da Massimo Marchiori.

Il page rankIdea di base: una cosa è tanto più importante quante più persone ne parlano.

Il rango di una pagina A viene quindi calcolato in base alnumero di altre pagine B1, B2, ..., BN che contengono un linkverso A. A sua volta il contributo di una pagina Bk al page rank di Adipende dal page rank della stessa Bk nonché dal numero dilink contenuti in Bk, secondo una formula piuttosto complessa. Sembra che dietro ogni business di successo ci sia una formula segreta.

La comunicazione nel Web 1.0Comunicazione di massa:1) asimmetrical’autore è solitamente distinto dai consumatori (al contrario, ad es., di uno scambio di email, che è simmetrico)2) in broadcast

19

il messaggio è diretto in modo generico a chiunque sia in grado di riceverlo (al contrario, ancora una volta, di uno scambio di email, che è punto-apunto).

Tuttavia, rispetto ai mezzi di comunicazione d i massa tradizionali, il Web 1.0 è atipico perché elimina la figura del distributore e consente ad un autore di raggiungere direttamente i consumatori a costo molto contenuto (sia per l’autore, sia per i consumatori).

Web 2.0Nell’ultimo decennio il Web si è sviluppato introducendo una dimensione partecipativa e collaborativa, tipica della comunicazione interpersonale.Blog, forum, social network e wiki ----> Web 2.0Le tecnologie del Web (internet, TCP/IP, http, HTML, browser, applet, motori di ricerca, ...) sono in grado di consentire modalità d’interazione più avanzate. Da alcuni anni si parla del Web 2.0, tanto che il termine (coniato nel 2004 da Tim O’Reilly) compare attualmente in circa 116 milioni di pagine web (Google, ottobre 2011; 28 milioni solo un anno prima).Non si tratta solo di nuove tecnologie (rispetto a quelle utilizzate nel Web 1.0), quanto di un insieme di applicazioni innovative che creano nuove possibilità per gli utenti di interagire fra di loro e con i contenuti del Web.

PartecipazioneLe tecnologie del Web eliminano la necessità di un distributore interposto fra gli autori e i consumatori di messaggi.I consumatori si accorgono che pubblicare su internet è molto più semplice dei classici processi di editoria e distribuzione.E’ possibile consentire a ogni utente del Web di essere allo stesso tempo autore e consumatore Il Web 2.0 è un insieme di applicazioni che realizzano praticamente questa potenzialità.Il termine che rende meglio l’idea è “partecipazione”: il Web 2.0 è detto anche “Web partecipativo”.In un’attività partecipativa nel Web (o più in generale in internet) una comunità di persone, chiamata comunità online (online community), utilizza un’applicazione web (o più in generale internet) per comunicare e interagire.Il software utilizzato a questo scopo è spesso denominato software sociale e può essere classificato a seconda dei tipi di attività che consente di svolgere:- comunicazione: ad es. i forum- creazione e pubblicazione di contenuti: ad es. i blog e i wiki- condivisione di risorse: condivisione di testi, immagini etc. - raccomandazioni: su alberghi, ristoranti etc.- networking sociale: luoghi d’interazione su internet

Attività collettiveL’interazione fra i membri di una comunità online costituisce una forma di partecipazione a determinate attività collettive.A loro volta, le attività collettive che si svolgono online possono far parte di un sistema di attività collettive più ampio, che va oltre i confini di internet.Ad esempio, il forum di un corso universitario fa parte del sistema di tutte le attività pertinenti al corso, che la maggior parte non sono online ma in presenza.Il Web 2.0 può fornire un supporto diretto soltanto alle attività collettive che si svolgono online.

Adesione alla comunità onlineUna comunità online può essere:- aperta senza registrazione: la partecipazione è libera, senza bisogno di registrarsi, possono essere comunque vietati gli interventi anonimi. esempio: i blog partecipativi- aperta con registrazione: la partecipazione è libera, ma l’utente deve registrarsi come membro della comunità; è possibile che l’utente sia visibile agli altri membri della comunità con un soprannome di sua scelta (nickname). esempi: LinkedIn, FaceBook.- chiusa: la partecipazione è limitata, ad esempio ai membri di una determinata organizzazione (in genere occorre comunque registrarsi). esempio: un forum sulla piattaforma eLearning@UniBG, riservato agli studenti iscritti a un determinato corso.

RuoliCome ogni attività collettiva, anche le attività collettive online prevedono diversi ruoli.I ruoli si possono caratterizzare in base ai diritti, agli obblighi e ai divieti che competono agli utenti a seconda del loro ruolo. Diritti, obblighi e divieti vanno distinti in due categorie:

1. le azioni consentite, imposte o vietate direttamente dal server dell’applicazione (le azioni che il server consente di eseguire solo ad alcune categorie di utenti sono spesso chiamate “privilegi”) esempi: qualunque membro di un forum può inserire un messaggio nel forum, ma non può modificare o cancellare i messaggi inseriti da altri membri mentre l’amministratore di un forum può modificare o cancellare qualsiasi messaggio.

2. le azioni consentite, imposte o vietate da norme di comportamento, la cui osservanza non è direttamente garantita dal server dell’applicazione ma è invece gestita dall’intera comunità online o da alcuni suoi membri. Esempio: ai

20

membri di un forum è vietato utilizzare termini ingiuriosi o aggressivi, la mancata osservanza di norme di comportamento può portare a sanzioni. Esempio: i membri di un forum che utilizzino termini ingiuriosi o aggressivi possono essere sospesi o estromessi dal forum da parte dell’amministratore.

BlogI blog (contrazione di Web log) sono nati come siti web in cui rendere pubbliche le proprie opinioni su un argomento di attualità. Inizialmente, quindi, i blog erano l’equivalente nel Web delle rubriche tenute da giornalisti sui periodici.Più recentemente i blog sono diventati partecipativi, nel senso che a qualunque utente del Web è concesso inserire commenti in un blog altrui. In un blog esistono quindi due ruoli:- autore: inserisce la maggior parte dei contenuti, sotto forma di articoli che trattano argomenti di attualità- lettore/commentatore: accede liberamente ai contenuti del blog e può aggiungere i suoi commenti.Il nuovo modo di comunicare sta avendo un impatto anche sui canali tradizionale di pubblicazione di contenuti (non solo in termini di affiancamento e sostituzione).

LEZIONE 11Wiki“Wiki” deriva dall’espressione hawaiana “wiki wiki”, che significa “rapido”: il termine è stato introdotto da B. Leuf andW. Cunningham (in The Wiki Way: Collaboration and Sharing on the Internet, Addison-Wesley, 2001) per denotare un nuovo tipo di siti web.Un wiki è un sito web partecipativo in cui: le pagine possono essere create e modificate in qualsiasi momento da qualunque membro della comunità; possono essere create e modificate facilmente e rapidamente utilizzando un browser; viene mantenuta una storia delle modifiche subite da ciascuna pagina e la struttura è fortemente ipertestuale (elevato numero di link ad altre pagine del wiki e a risorse web esterne).I wiki possono essere aperti (in genere con registrazione) o chiusi.Il più celebre wiki aperto (in parte con registrazione) è certamente Wikipedia, l’enciclopedia collaborativa multilingue che, nella sua versione inglese, ha quasi raggiunto 3 milioni e 800mila voci (ottobre 2011).L’uso di wiki (in questo caso chiusi) è ormai comune in molte organizzazioni, come strumento di coordinamento e documentazione dei progetti. I wiki vengono anche utilizzati per documentare in modo collettivo i prodotti software.

Condivisione di risorseAttualmente esistono numerosi sistemi per condividere risorse all’interno di comunità online aperte, ad esempio:

YouTubeLo slogan di YouTube (Broadcast yourself) riflette lo spirito del Web 2.0: mandare se stessi in broadcast vuol dire che i produttori di contenuto in questo contesto sono le persone di quello che tradizionalmente è stato un pubblico di spettatori. Questo non vuol dire che su YouTube ci siano solo contenuti prodotti dal pubblico: è un canale attraverso il quale professionisti mostrano i loro prodotti al pubblico. Per quanto riguarda i video musicali, ad esempio, YouTube ha di fatto sostituito canali televisivi specializzati come MTV,che ora dedicano la maggior parte della loro programmazione ad altri tipi di contenuti.I successi più clamorosi, però, arrivano in maniera inaspettata, e video di qualità “casalinga” possono dar luogo a fenomeni “culturali” di scala globale. Il termine “meme” è nato sulla falsariga di “gene”, e indica un elemento culturale o comportamentale che viene trasmesso da un individuo all’altro attraverso mezzi non basati sul patrimonio genetico (es.: imitazione, insegnamento). Esempi di “memi” sono la lingua italiana oppure l’amore per il calcio. Il termine meme è stato adottato anche nel contesto del Web 2.0, e può indicare anche un’immagine o un video che sidiffonde tra gli utenti del Web attraverso la rete telematica.Esempi di memi che si sono diffusi attraverso il Web (e soprattutto YouTube) sono il fenomeno del planking e, più recentemente, l’Harlem Shake.Oltre al numero di visioni su YouTube (nell’aprile 2013 il video più visto è “Gangnam Style” del DJ coreano Psy, conoltre 1 miliardo e mezzo di volte), il successo di un meme può dirsi certificato quando viene riproposto anche in sedisocio-culturali tradizionali e ben consolidate.

21

RaccomandazioniMolti sistemi consentono di raccomandare non solo risorse esistenti nel Web, ma anche luoghi, oggetti e attività del mondo reale. Sistemi di raccomandazione sono ad esempio molto comuni nei siti turistici.Le raccomandazioni (contenenti anche valutazioni espressa su scale numeriche) sono inserite spontaneamente dai clienti di ristoranti, alberghi e così via. Esempi: ---->Questo tipo di servizio può essere di grande aiuto per chi deve organizzare un viaggio in un luogo sconosciuto.Non bisogna, però, dimenticare la questione più importante da affrontare nel contesto del Web 2.0, con particolareattenzione alla sua dimensione partecipativa, che si traduce nella possibilità per ogni persona connessa a Internet didiventare creatore di contenuti. Se chiunque può creare sul Web, chi garantisce la veridicità di quanto scritto?Le lodi sperticate per un albergo su TripAdvisor potrebbero provenire dal proprietario, che si finge un utente, ad esempio.Senza andare nei casi di dolo, anche laddove le intenzioni sono buone, i contenuti del Web 2.0 possono dar luogo a fraintendimenti o inesattezze. Questo è il caso dell’esempio seguente, in cui più di 1300 fan del gruppo francese di musica elettronica Daft Punk hanno dato, sull’onda dell’entusiasmo, un giudizio di 5 stelle (l’immagine risale ad aprile 2013) di un disco non ancora uscito (data di pubblicazione prevista: 21 maggio 2013).La reputazione del sistema dei giudizi (in questo caso, quello del negozio online di iTunes) ne esce danneggiata, perché gli utenti si rendono conto del fatto che le opinioni espresse in quella sede non sempre scaturiscono da una valutazione del prodotto.

Networking socialeUna rete sociale (social network) è un’applicazione web che consente agli utenti di:• definire un proprio profilo (pubblico o riservato a certi altri membri della rete, denominati “contatti” o “amici”)• decidere con quali altri membri entrare in contatto• navigare nella rete dei contatti di qualunque membro

accedendo ai profili• formare gruppi con altri membri della rete• raccomandare un membro per qualche tipo di attività

Le reti sociali possono avere un taglio:• professionale, come LinkedIn,• oppure informale, come Facebook e MySpace

Sempre più frequentemente, le pagine Web di un’azienda o di un’organizzazione (in questo caso, l’organizzazione che sta dietro alla serie di conferenze TED), riportano riferimenti ai siti di blogging e networking sociale più diffusi, per permettere agli utenti di seguire le ultime novità, ma anche di esprimere nella propria cerchia sociale l’interesse verso specifici prodotti o eventi. Le icone indicano, in ordine da sinistra a destra, Twitter, Facebook, Pinterest, Google Plus, Stumble Upon, e RSS. Focalizziamoci per ora sul primo.

Twitter è una combinazione fra un micro-blog e un sistema di networking sociale.Il servizio, creato nel 2006, consente di inviare e leggere brevi post detti “tweets”.I tweets compaiono sulla pagina contenente il profilo del loro autore.I tweets contengono al massimo 140 caratteri e tendono quindi ad assomigliare ai messaggi SMS (una forma di

comunicazione già molto diffusa). Twitter ha lanciato una nuova moda.Lo hashtag (#), per evidenziare nel tweet delle parole chiave che ne costituiscono l’argomento principale e ne permettono la classificazione e la ricerca.

L’uso dell’hashtag si sta diffondendo anche in sedi caratterizzate da un modo di comunicare più tradizionale.Ad esempio, nelle nuvolette di conversazione dei fumetti (tratto da safelyendangered.com).In questo caso l’hashtag accompagna non una parola comune, ma un meme: YOLO.YOLO è un acronimo che sta per “you only live once”.

LEZIONE 12Deb Roy è un ricercatore del M.I.T. (Massachusetts Institute of Technology) che ha fondato Blue Fin Labs, un’azienda che mira a fornire un servizio di analisi dei gusti del pubblico televisivo sulla base dei suoi tweet durante la visione dei programmi.

Tecnologie Come abbiamo già detto, il Web 2.0 si basa largamente sulle stesse tecnologie utilizzate per il Web 1.0 (internet, TCP/IP, http, HTML, browser, motori di ricerca, …)Esistono però alcune tecnologie innovative, che assumono notevole importanza almeno in alcuni tipi di applicazioni.

22

Fra queste tecnologie ricordiamo:– XML (eXtensible Markup Language): uno standard W3C che consente di definire nuovi linguaggi di marcatura, in funzione delle diverse applicazioni d’interesse.– AJAX (Asyncronous JavaScript And XML): un insieme di tecnologie che consente di modificare degli elementi di unapagina web senza dover ricaricare l’intera pagina, rendendo così più agile ed efficiente l’interazione fra il client e il server di un’applicazione web.– i servizi web (Web Service, WS): una tecnologia basata su XML per rendere disponibili servizi sul Web.

Ma a proposito di Twitter.....

…. chi ha detto che cosa??Il tweet sembra essere del portavoce della Merkel, Steffan Seibert: c’è il suo nome, c’è una sua foto, è descritto il suo ruolo nel governo tedesco. Ma è davvero lui? Come facciamo a riconoscerlo? Si pone la questione della…

Identità DigitaleIdentità= La parola identità ha almeno due significati distinti. Essi non sono indipendenti l’uno dall’altro, ma in questo contesto non abbiamo bisogno di approfondire tale legame: ci accontentiamo di illustrarne i significati:

1. Il primo significato esprime il concetto di uguaglianza: due cose sono identiche quando di fatto sono la stessa cosa. C’è identità tra il lato sinistro dell’uguale e il lato destro perché su entrambi i lati c’è il numero 5. (5=5) è detta identità numerica.

2. Il secondo significato è quello che si intende quando si parla di un documento di identità, o di identità di una persona: ci si riferisce alle caratteristiche che definiscono una persona, la distinguono dalle altre, la identificano, appunto. È detta identità personale.

Ma ogni tentativo di definizione di entrambi i concetti si è rivelato controverso.

Problemi con l’identità numericaUno dei primi a voler definire in maniera formale il concetto di identità è stato il filosofo tedesco Leibniz (1646 – 1716).Leibniz’s law: principio di indiscernibilità degli identici e dell’identità degli indiscernibili.

Per ogni x e per ogni y, x è identico a y vuol dire che per ogni proprietà P, se x è P, anche y lo è, e viceversa.Dov’è il problema?Per poter capire la definizione di identità, devo sapere che le tre P presenti nella definizione si riferiscono alla stessa identica proprietà. Per poter definire il concetto di identità in maniera sensata, occorre già conoscerne il significato, il che ne rende superflua la definizione.

Problemi con l’identità personaleSe osserviamo una persona (nell’esempio, la popstar Britney Spears) a pochi minuti di distanza, riconosciamo che le due osservazioni hanno come oggetto la stessa* persona, sulla cui identità non abbiamo dubbi.*da notare come il riconoscimento di un’identità personale si basi comunque sul concetto di identità numerica: riconosco una persona perché è la stessa persona che ho in mente.Possiamo affermare questa identità (numerica) con la stessa decisione della prima?Siamo di fronte alla stessa identità (personale)? Tenderemmo a dire di sì, perché si tratta della stessa persona a età diverse, ma viene anche da dire che le differenze tra le due persone (ma allora non è la stessa persona?) sono notevoli.Non è ben chiaro quali siano le caratteristiche che definiscono l’identità di una persona. Il corpo? La mente?Aspetto fisico? Le cellule del corpo? Il sistema nervoso?

• Il corpo? Scegliere l’aspetto fisico come caratteristica che definisce l’identità di una persona sembra una scelta naturale. Un po’ meno se si pensa che i nostri connotati cambiano nel tempo: l’aspetto della Spears a 29 anni è decisamente diverso da quello che aveva a 10 anni: come fa una caratteristica che cambia nel tempo a identificare una persona? Le cellule del corpo vengono ricambiate rapidamente (le cellule della pelle muoiono dopo 3 giorni e vengono sostituite), quelle del sistema nervoso sono molto più longeve, ma affermare che una persona sia il suo sistema nervoso sembra strano. Forse viene naturale definire l’identità di una persona sulla base del suo aspetto fisico perché, anche se quasi tutte le cellule del nostro corpo vengono cambiate rapidamente, il nostro aspetto a livello macroscopico cambia anch’esso, ma a un ritmo molto più lento. Di fatto possiamo immaginare una sequenza di foto fatte nel corso degli anni in cui i cambiamenti nell’aspetto fisico di una persona sono graduali. L’aspetto fisico quindi va bene per definire l’identità personale?Non è detto.Ci possono essere radicali e improvvisi cambiamenti nell’aspetto di una persona, ad esempio per un’operazione di chirurgia estetica in seguito a un incidente. Se davvero fossimo convinti che l’aspetto fisico definisce una persona,

23

allora dovremmo dire che dall’operazione esce fuori un’altra persona.Il che è chiaramente falso. A volte usiamo l’espressione “sembrare un’altra persona”, ma, appunto, sembrare non è la stessa cosa di essere. Questo esempio potrebbe favorire la posizione di coloro che vogliono cercare nella mente delle persone, e non nel loro corpo, le caratteristiche che ne definiscono l’identità.

• La mente? Uno dei primi a sostenere questa tesi è stato il filosofo inglese John Locke (1632 – 1704).Locke ha assunto un approccio psicologico nel suo tentativo di definire l’identità di una persona. In breve, noi siamo costituiti dal nostro vissuto, dalle nostre esperienze, dai nostri ricordi. Effettivamente, anche con un viso nuovo, se la Britney Spears dopo l’operazione ha gli stessi ricordi e lo stesso pensiero, noi la consideriamo naturalmente la stessa persona di prima. Nemmeno questo approccio, però, ci lascia liberi da dubbi. Tra i

ricordi e i pensieri di una bambina di 10 anni e una donna di 29 vi sono delle enormi differenze.E’ però anche vero che la 29enne Britney si ricorda di essere stata la bambina di 10 anni, e questi ricordi posso fungere da legame che potrebbe definire l’identità personale che la caratterizza.Attenzione però a fare troppo affidamento sui ricordi. Tra 60 anni, quanto sarà in grado di ricordare la Britney 89enne delle sue esperienze di 79 anni prima? Se definisco l’identità di una persone sulla base dei suoi ricordi, vuol dire che una persona che perde ricordi (per l’età o per malattia) perde anche la propria identità. Eppure i parenti di un paziente con l’Alzheimer non faticano a riconoscerlo.

Filosofi più recenti hanno introdotto il concetto di quasimemory, o q-memory, intendendo stabilire un legame tra le varie fasi della vita di una persona anche quando certi ricordi si perdono. In figura: Britney 29enne ha x in comune con Britney 10enne, e y in comune con Britney 89enne. L’avere una fase della vita passata/futura in comune sulla base anche di ricordi diversi crea un legame tra la bambina e l’anziana.

Tutti questi tentativi sono interessanti, ma nessuno di loro può essere visto come l’interpretazione definitiva del concetto di identità personale. Sapendo di questi problemi nel definire l’identità, vediamo quali sono le caratteristiche che ci permettono di riconoscere le persone su internet.

Torniamo all’esempio del portavoce della Merkel su Twitter. Che cosa ci permette di riconoscerlo come tale?Innanzitutto, notiamo che c’è una foto. Il riconoscimento si basa in questo caso sulle caratteristiche fisiche della persona. Non ci sono solo caratteristiche fisiche, però. E’ presente

anche il nome della persona e anche il suo ruolo da portavoce del governo, usato come username nel contesto di Twitter. Lo username è unico, quindi aiuta a definire l’identità di un utente di Twitter, e in questo tweet si fa riferimento effettivamente anche a un altro utente, chiamato nomfup (nella fattispecie, un blogger italiano che aveva chiesto a Seibert se la Merkel si fosse scusata con Berlusconi). In Twitter, per fare riferimento a un altro utente, si fa precedere il suo nome utente da “@”. Passiamo da quel particolare tweet alla breve presentazione che c’è sulla pagina Twitter relativa a Seibert. Il sigillo blu accanto al suo nome indica il fatto che questa sia un’identità verificata da Twitter. Twitter dichiara di avere eseguito controlli accurati e può garantire che la persona che gestisce questo account è proprio Seibert.

Guardate però che cosa lo stesso Seibert dice nella sua presentazione: i tweet dei suoi collaboratori e delle sue collaboratrici finiscono con la sigla BPA (che si riferisceall’ufficio stampa governativo).

Tweets a più mani. Chi è l’autore?Curioso come un’identità garantita da Twitter si riveli più complicata di quanto sembrasse. Seibert stesso dice che certi“suoi” tweet sono scritti da altre persone. Suoi collaboratori, certo, ma di fatto non lui.Qui viene richiesta fiducia nei confronti di più parti coinvolte nei tweet: Twitter stesso, Steffen Seibert, e tutti i suoi collaboratori.

TrustTrust vuol dire fiducia. Nel contesto del Web 2.0, in particolare, si riferisce al sentimento di sicurezza che si ha neiconfronti della veridicità di un oggetto pubblicato sul Web o dell’autenticità dell’identità dell’autore di tale oggetto. Molto spesso, quando ci sono più entità coinvolte contemporaneamente nella pubblicazione di un particolare oggetto, irapporti di fiducia assumono una struttura lineare, nota come chain of trust (catena di fiducia). La forza del sigillo di Twitter dipende direttamente dalla fiducia che abbiamo in Twitter. Il fatto che Seibert si avvali della collaborazione di altri,significa che Twitter si fida di Seibert stesso nella sua gestione a più mani dell’account. Un vecchio adagio recita:“una catena è forte quanto il suo anello più debole”. Che cosa hanno in comune Steffen Seibert e i suoi collaboratori? La password del suo account Twitter.

SicurezzaUn sistema informatico si dice sicuro quando non può essere usato da utenti ai quali il sistema non è destinato. Il verbo potere è usato qui nell’accezione di “possibilità fisica” e non di “permesso”.

24

Esistono sistemi sicuri? no. Chiunque abbia la password per l’account Twitter di Steffen Seiber può fare un tweet a nome di Steffen Seiber. Dal punto di vista di Twitter (e tutti i suoi utenti), chiunque abbia la password di Steffen Seiber è Steffen Seiber. Se l’identità digitale si basa sulle password, il problema dell’identità diventa un problema di sicurezza.Se il riconoscimento da parte di Twitter di una persona è basato su una password, allora il modello di identità secondo Twitter è quello basato sulla memoria.

LEZIONE 13Funzionamento di una password1: l’utente tramite il suo browser richiede l’accesso a una pagina del server; 2: il server richiede il nome utente e la password per capire da chi arriva la richiesta (nome utente) e se arriva davvero da questa persona (password); 3: tali informazioni vengono inserite dall’utente e inviate al server; 4: il server controlla tra l suoi registri se la username e la password corrispondono; 5: se sì, il server invia la pagina web richiesta, altrimenti no.Si dice che con questa interazione, l’utente “si autentica” al server di Twitter. Autenticazione: identificazione corretta.

Alternativa alla password: autenticazione biometricaBio= vita ; Metrica= misurazione le password biometriche si basano sulle misurazioni di nostre caratteristiche fisiche: impronte digitali, iridi, voce, connotati. Vera alternativa alla password? Insomma... Gli apparati per misurare i connotati non riescono, allo stato attuale, a distinguere una persona da una sua foto. Ma nemmeno le password classiche sono prive di problemi!Se il riconoscimento di un’identità si basa sulla password, il furto di una password equivale al furto di un’identità (identity theft). Serve un metodo per rendere il canale di comunicazione sicuro, di modo che nessun altro host, oltre a Twitter, possa ricevere la username e password. La proprietà di una comunicazione che è accessibile solo al legittimo destinatario si chiama confidenzialità.

Crittografia"La crittografia è una tecnica di manipolazione dell’informazione per garantirne la confidenzialità.Di nuovo Alan Turing: uno dei massimi esperti di crittografia del XX secolo, ha dato un fondamentale aiuto agli alleati per

decifrare i codici usati dai nazisti.L’idea di base della crittografia consiste nell'usare lettere diverse per scrivere un messaggio, di modo che nessuno possa capirne il formato originale, a meno che non sappia come le lettere nuove siano state scelte. Tipicamente il passaggio da lettere originali a quelle modificate si basa su una tabella. La tabella deve essere nota al mittente e al destinatario e a nessun altro. Si dice che il messaggio viene crittografato, o criptato, o cifrato, o codificato. Il destinatario, per poterlo leggere, lo deve prima decriptarlo, o decifrarlo, o decodificarlo. EX: Idea di base Ofrs fo nsrd Il processo di crittografia ha una chiave: un parametro che viene usato per cifrare, e che è necessario per decifrare. Si usa la metafora

della chiave, ma di fatto il parametro della crittografia è la tabella che indica il passaggio da lettere originali a quelle modificate. Se la password viene cifrata con una chiave, il malintenzionato otterrà una sequenza di lettere e cifre che è diversa dalla vera password, quindi inutile. Per decifrare e ottenere la password originale, anche il server deve avere la stessa chiave. Per questo, questo tipo di crittografia si dice simmetrica.Il problema è: Come fanno l’utente e il server Twitter a condividere la stessa chiave crittografica?Non la si può inviare attraverso il canale di comunicazione perché un intruso malintenzionato potrebbe copiarla e quindi essere in grado di decifrare tutti i messaggi futuri.Ma anche la chiave crittografica dovrebbe essere cifrata con un’altra chiave? Non si può ricorrere alla crittografia simmetrica di nuovo. Per proteggere la prima chiave, l’utente e Twitter avrebbero bisogno di una seconda chiave, che a sua volta non può essere spedita senza essere protetta da una terza chiave, cioè la...

..Crittografia asimmetrica, o a chiave pubblica

25

Informazione cifrata con la chiave pubblica, può essere decifrata solo con la chiave privata e viceversa ora si capirà il perché dei nomi di questo tipo di crittografia.Per inviare la chiave con cui cifrare in maniera simmetrica i messaggi futuri, l’utente la cifra con la chiave pubblica di Twitter, che è appunto pubblica e a disposizione di tutti su un elenco apposito.Tale messaggio può essere decifrato solo per mezzo della chiave privata di Twitter, che deve rimanere privata e nota solo al responsabile della sicurezza di Twitter. In questo modo è possibile stabilire una connessione sicura con Twitter.

Connessioni sicure: protocollo HTTPSS sta per “sicurezza”: è la versione di HTTP arricchita con i meccanismi crittografici per proteggere le informazioni trasmesse da eventuali malintenzionati in ascolto. La crittografia asimmetrica rende inoltre possibile la firma digitale.

Un mittente di un messaggio deve cifrarlo con la propria chiave privata. Così, tutti possono verificare che, riuscendo a decifrare il messaggio con la corrispondente chiave pubblica, tale messaggio non può esser stato scritto da nessun altro, visto che nessun altro avrebbe potuto cifrarlo con quella particolare chiave privata.Il problema è: Chi crea e gestisce le coppie di chiavi pubbliche/private? Chi gestisce l’elenco delle chiavi pubbliche delle varie (id)entità presenti in internet? Chi garantisce che una chiave pubblica appartenga proprio all’(id)entità dichiarata?Risposta...

..Certification authorities (o autorità di certificazione)Si tratta di organizzazioni il cui compito è di garantire che l’identità reale (al di fuori di internet) coincida con quella digitale dichiarata in internet, associata a una particolare chiave pubblica.Ad es. si deve garantire che la chiave pubblica di Twitter sia gestita proprio da Twitter e non da altri soggetti.Ritorna la questione del trust. La fiducia che ho nell’autenticità di un’identità garantita da una certification authority dipende dalla fiducia che ho nella certification authority stessa. Il modo più comune che una certification authority ha di verificare l’identità di una persona è di incontrarla fisicamente e di controllarne un documento di identità.Le certification authority devono quindi aver fiducia nella verifica delle identità effettuata dallo Stato.Se guardiamo dentro un passaporto capiamo su quale tipo di definizione di identità si basa lo Stato.

LEZIONE 14Si è parlato di identità: aspetti fisici, aspetti mentali, aspetti anagrafici.Ma l’identità è definita anche dal comportamento: che cosa mi piace, che cosa compro, che cosa guardo, che cosa ascolto, che cosa indosso, che cosa leggo, che cosa dico.User profile (profilo utente) → una raccolta di dati personali associati a uno specifico utente di un servizio.L’informazione contenuta in un profilo utente può essere usata per adattare il servizio fornito alle caratteristiche e alle preferenze dell’utente. User profiling (profilazione utente) i→ l processo di costruzione del profilo di un utente mediante estrazione di informazioni da una collezione di dati.

Database> Un database è una collezione strutturata di dati riguardanti un certo aspetto della realtà, un’entità, o un’ organizzazione.Esempi di database: i voti degli esami degli studenti di UniBG dalla fondazione dell’università ad oggi; i nomi degli abitanti della Svezia; la targhe delle auto immatricolate in Italia nel marzo 2006.Database Management System (DBMS) si→ stema informatico che gestisce un database.Database system il→ sistema complessivo che include un database e il suo DBMS.

> Per costruire un database e il relativo DBMS bisogna innanzitutto fissare un data model, ossia la struttura con cui vengono organizzati i dati, la quale determina come tali dati verranno immagazzinati, letti, e comunicati.Data model, o modello dei dati. Il data model è importante per le applicazioni che usano e scambiano dati perché ne determina le modalità di comunicazione e la precisione. Di fatto, crea un contesto comune allo scambio di informazione, quindi la facilità d’uso e la minimizzazione delle ambiguità sono fondamentali. Il data model più diffuso è il modello relazionale.

26

Il modello relazionaleProposto nel 1969 da Edgar Codd, un informatico inglese che lavorava per IBM.Come dice il suo nome stesso, il modello si basa sul concetto di relazione: i dati vengono organizzati secondo delle relazioni che legano tra loro determinati attributi.Una relazione viene rappresentata sotto forma di tabella, le cui colonne corrispondono agli attributilegati da tale relazione. I dati nel database vengono organizzati secondo tali attributi, i cui valori riempiono le righe della tabella, chiamate tuple.

Il linguaggio SQLSQL (Structured Query Language, “sequel”) è il linguaggio più diffuso per la creazione e gestione su computer di database SQL è composto da due sottolinguaggi: DDL (Data Definition Language) per specificare lo schema delle tabelle con cui organizzare il database;DML (Data Manipulation Language) per inserire, modificare, esaminare, cancellare i dati nelle tabelle.

> Schema di una tabella:Lo schema di una tabella si specifica assegnando: il nome della tabella, l’elenco degli attributi della tabella, ciascunocon il relativo dominio (ovvero, il tipo dei dati che possono essere assegnati come valori dell’attributo).Ad esempio:CREATE TABLE Studente (matricola INTEGER(5),cognome VARCHAR(20),nome VARCHAR(20),data-iscr DATE,facoltà CHAR(3),)

> Inserimento di una tupla Una volta definitone lo →schema, si inseriscono tuple nella tabella con specifici dati corrispondenti agli attributi.Ad esempio:INSERT INTO StudenteVALUES (23456,’Bini’,’Laura’,2010-07-25,’ing’).

> Cancellazione di una tupla È possibile cancellare le→ tuple che soddisfano una determinata condizione.Ad esempio:DELETE FROM StudenteWHERE facoltà = ’eco’

> Modifica di una tupla È possibile modificare il valore→ di un attributo di una tupla identificata tramite una determinata condizione.Ad esempio:UPDATE StudenteSET facoltà = ’let’WHERE matricola = 19797

I dati contenuti nel database vengono recuperati tramite query, o interrogazioni.Le query si eseguono inserendo nel DBMS delle istruzioni scritte in SQL. Ogni query SQL è eseguita su un insieme di tabelle appartenenti al database, e restituisce come risposta una nuova tabella, costruita secondo precise regole.

> Selezione di attributi → Da una tabella può essere estratta una sottotabella costituita da determinati attributi.Ad esempio: dammi matricola e facoltà di tutti gli studenti SELECT matricola, facoltà FROM Student.

27

> Selezione di tuple → Da una tabella si possono estrarre le tuple con certi valori in corrispondenza di determinati attributi.Ad esempio: dammi tutti gli attributi degli studenti di ingegneriaSELECT * FROM StudenteWHERE facoltà = ’ing

> Selezione di attributi e tuple → Le due operazioni possono essere combinate.Ad esempio: dammi il nome e il cognome degli studenti di ingegneria.SELECT nome, cognome FROM StudenteWHERE facoltà = ’ing’

Ma come si fa a costruire una base di dati? Dipende. Le persone che si iscrivono in università forniscono dati che popolano il database dell’università; ma anche chi fa la spesa fornisce informazioni con i suoi acquisti, anche se in maniera meno diretta (scontrino). E una volta costruita la base di dati?..

ProfilingCostruzione di profili, intesi come pattern (schema ricorrente) o correlazioni (interdipendenza tra quantità variabili) all’interno di grandi quantità di dati usati per identificare individui o gruppi di persone.Tale costruzione può essere facilitata da strumenti informatici per numerosi scopi: discriminazione di prezzo, servizi personalizzati, rilevamento di frodi, etc.Knowledge Discovery in Databases (KDD): il problema oggi non è più raccogliere i dati, bensì districarsi in una mole di dati e distinguere l’informazione significativa e utile dal rumore (oscillazioni casuali di una quantità).La KDD ha 3 fasi:

1. Preprocessing, o pre-processo dei dati → Bisogna selezionare l’insieme di dati obiettivo, selezionando un sottoinsieme della base di dati: deve essere grande abbastanza da contenere i pattern che cerchiamo, ma piccola abbastanza da permettere l’analisi in tempi accettabili. L’insieme obiettivo viene poi “pulito” (data cleansing/data cleaning) per eliminare dati corrotti o mancanti.

2. Data Mining → Sotto questo termine generale in realtà ricadono numerosi tipi di knowledge discovery:

• Anomaly detection / rilevamento di anomalie : ricerca di elementi inusuali nel data base; si potrebbe trattare di informazione interessante o di errori non puliti; è necessaria ulteriore indagine.

• Association rule learning / apprendimento di regole d’associazione: noto anche come “market basket analysis”, ricerca di correlazioni tra variabili diverse presenti nel database.

• Clustering : ricerca di caratteristiche comuni tra diverse tuple del database, che permettono di riconoscere diversi gruppi di similarità.

• Classification: applicazione di un criterio di discriminazione elaborato in precedenza su nuovi dati per classificarli.

• Regression / regressione: ricerca di una funzione matematica che modelli l’andamento dei dati analizzati con la maggiore precisione possibile, per poi fare estrapolazione e previsioni. Quando cerchiamo di modellare i nostri dati con una retta, si parla di regressione lineare. Questa è una regressione generica.

• Summarization / riepilogo: accorpamento di dati per costruirne una rappresentazione più compatta per visualizzazioni più efficaci e reporting / “rapportazione”.

Facciamo un esempio di association rule learning / market basket analysis:Cerchiamo regole d’associazione sotto forma di: SE c’è x, ALLORA c’è anche y nel carrello.Cerchiamo regole d’associazione sotto forma di: (x y) {se c’è x, allora c’è anche y nel carrello}→Ce ne sono tante: pane -> burrolatte -> panemiele -> pane e burroburro -> pane quali sono buone?..

> Criterio 1: supporto Si definisce supporto di una regola (x y). Il rapporto tra il numero di righe che contengono x → →e y e il numero totale di righe della tabella analizzata.

Sup(pane -> burro) = 60%Sup(latte -> pane) = 20%Sup(miele -> pane e burro) = 20%Sup(burro -> pane) = 60%*

28

*regole con gli stessi oggetti hanno lo stesso supporto

> Criterio 2: confidenza Si definisce confidenza di una regola (x y) il rapporto tra il numero di righe che contengono x→ → e y e il numero di righe che contengono x. Conf(pane -> burro) = 75%Conf(latte -> pane) = 25%Conf(miele -> pane e burro) = 100%Conf(burro -> pane) = 100%La confidenza può essere interpretata come la probabilità di avere y in una riga, sapendo che c’è x in quella riga.

Quali regole cercare, quindi? Tutte quelle regole che hanno supporto superiore a un certo valore, e confidenza superiore a un certo valore.EX. Esselunga Vendite nel 2007: 5782,6 milioni → €. Se la spesa media è di 25 € vuol dire più di 2"31mila scontrini, perciò ci sono più di 10mila prodotti.E’ impraticabile far fare data mining a essereumani con questa mole di dati.

1. Validazione dei risultati → In realtà dobbiamo ricordarci che le analisi del data mining non si applicano sull’intera base di dati disponibile ma su un sottoinsieme. La validazione dei risultati si ottiene controllando che i pattern trovati siano presenti anche nel resto della base dei dati. Questo è possibile perché per applicare un pattern già noto a una base di dati occorre molto meno tempo che trovare un pattern ancora sconosciuto.Come sfruttare la conoscenza acquisita?

> Picco di vendite di birra in coincidenza con eventi sportivi → In vista della partita mettere bene in vista le birre, magari con offerte.

> Chi compra peluche compra spesso caramelle → Mettere i due prodotti vicini per incrementare la probabilità di un acquisto congiunto.

> Riconoscere che esistono 3 tipi di clientela rispetto al consumo dei prodotti di macelleria.Fornire servizi orientati ai 3 gruppi, iniziando da quello che garantisce i margini di guadagno più alti.

> Tramite la tessera di fidelizzazione capire a che gruppo appartiene un cliente. Al suo prossimo acquisto fornirgli un buono sconto mirato per farlo tornare di domenica.

> Andamento delle vendite di patate Acquistare più patate→ dai fornitori. Risultati complessivi di fine anno da portare in riunione per discutere sulle prossime strategie.

LEZIONE 15In realtà non tutto il data mining è dettato dagli interessi economici… Abbiamo visto risvolti commerciali perché di fatto ci siamo concentrati su dati commerciali (commercial data mining); Ma ci sono altri tipi di dati, come ad esempio i testi scritti (text data mining).

Text MiningE’ una tecnica di elaborazione automatica dei testi, con lo scopo di estrarre da essi nuova informazione.Le informazioni estratte vengono composte per formare nuovi fatti o nuove ipotesi da verificare ulteriormente con mezzi più classici di sperimentazione. Il Text Mining è diverso dal Web Search.

• Web Search Obiettivo: trovare informazione già esistente; il→ problema è quello di scartare il materiale non pertinente alla nostra ricerca.

• Text Mining Obiettivo: estrarre nuova informazione che non era →

29

presente prima (almeno non in maniera esplicita); il problema è che l'informazione non è attualmente presente perciò va creata.

> Di fatto, i testi sono un tipo particolare di dati, e il text mining può essere considerato un tipo particolare di data mining. Si potrebbe pensare, quindi, che le svariate tecniche del data mining si possano applicare al caso particolare dei testi, solo che il data mining si effettua su database, che sono tipicamente dati organizzati in tabelle mentre nel text mining si cercano i pattern interessanti in testi scritti in linguaggio naturale. Ogni tecnica che mira ad elaborare in maniera automatica il linguaggio naturale viene considerata come parte della disciplina del Natural Language Processing (NLP). Il text mining è un caso speciale di NLP perché si concentra esclusivamente sui testi scritti. Il NLP comprende però anche l’analisi del linguaggio parlato, (ad esempio con il riconoscimento vocale). > Torniamo ai testi: il text mining è un modo di analizzarli con il supporto del computer, in modi diversi.In contrasto con quanto visto con il data mining, prendiamo un campo di applicazione radicalmente diverso: la ricerca medica. MEDLINE è un catalogo online di articoli da oltre 5000 riviste mediche dal 1950 ad oggi. Attualmente (2011), MEDLINE contiene riferimenti a più di 21 milioni di articoli.La ricerca medica è divisa in campi e sotto-campi altamente specializzati, con poca comunicazione (e scambi di idee) tra discipline diverse. Questa separazione potrebbe essere necessaria e utile alla ricerca specializzata in questo campo, ma può anche avere l’effetto di restringere le prospettive, impedendo la creazione di connessioni tra le varie scoperte.L’elaborazione manuale dei testi con la loro indicizzazione sulla base di parole chiave aiuta, ma da un’analisi di MEDLINE è emerso che molti concetti presenti nei testi degli articoli non erano rappresentati da alcuna parola chiave.Chiaramente, i testi della letteratura medica contengono informazioni importanti per i ricercatori che possono non essere completamente colte da revisori e curatori di questi articoli.Come al solito, laddove l’azione umana non è abbastanza precisa o veloce, cerchiamo di delegare il compito a un computer.

Che cosa NON è il text miningAbbiamo già detto che NON è web search.Il web search è la ricerca di un documento inparticolare tra miliardi di altri che non ci interessano.Il text mining, invece, è la ricerca di conoscenza che colleghi tra loro documenti diversi. La conoscenza che si cerca tramite il text mining coinvolge più documenti. Per questo il text mining NON coincide con quelle pratiche automatiche di elaborazione dei testi che si focalizzano su un testo solo, come ad esempio l’information extraction oppure la text summarization. Esempi di..

• Information Extraction Dato un CV (meglio se in → formato standard, come il CV europeo) , si estraggono automaticamente certe informazioni, come il nome, il cognome, la data di nascita.

• Text sumarization Dato un testo, se ne fornisce → un breve riassunto basato sulle parole più frequentemente usate (a parte quelle non significative, come “il” o “di” o “e”, chiamate stopword).

Anche nel Text Mining, come nel Data Mining esitono numerose tecniche:1. Named entity recognition (NER) → L’obiettivo è di riconoscere, all’interno di una collezione di testi, tutti i nomi

di uno specifico tipo di entità. Ad esempio, tutti i nomi di entità biologiche all’interno di una serie di articoli da rivista. Ci sono però problemi con i nomi; perchè per la maggior parte dei tipi di nomi di entità biologiche, non esiste un dizionario completo. Perciò una tecnica automatica di ricerca e matching non funziona. La stessa parola può riferirsi a entità diverse (ad es. ferritina può essere una sostanza biologica o un test di laboratorio). Molte entità biologiche hanno diversi nomi (ad es. PTEN e MMAC1 si riferiscono allo stesso gene). Le entità biologiche posso avere anche nomi composti da più parole (ad es. “arteria carotide”), quindi sorge anche il problema di stabilire i confini tra un nome e altre parole nel testo.Gli approcci per risolvere il problema NER sono 4: 1. basato sul lessico 2. basato su regole 3. statistico 4. una combinazione dei precedenti. Il risultato di un sistema automatico che fa NER è dato da un etichettatura di tutti i nomi con il tipo calcolato, con un eventuale grado di confidenza nel risultato.Le performance dei sistemi NER sono misurate in termini di precision/precisione e di recall/richiamo. Precision = n° predizioni corrette / n° predizioni Recall = n° predizioni corrette / n° nomi nel testo Esiste anche un’unica misura chiamata F-score F-score = 2Pr*Re/(Pr+Re).

2. Relationship extraction → L’obiettivo è di rilevare occorrenze di tipi predefiniti di relazione tra coppie di entità di tipi specifici. Mentre i tipi delle entità sono solitamente molto specifici (per es. geni, proteine, principi attivi), il tipo delle relazioni può variare da molto generale (per es. una qualsiasi associazione biochimica) a molto specifica (per es. un legame di regolazione). I possibili metodi per scoprire queste relazioni sono numerosi: ricerca di schemi predefiniti forniti da esperti del settore; ricerca di schemi creati automaticamente analizzando i testi nell’intorno di coppie di entità di nostro interesse; analisi del testo mediante schemi “soggettopredicato- complemento” tipici del NLP (natural language processing).

3. Hypothesis generation →Mentre l’estrazione di relazioni si focalizza sui legami tra entità esplicitamente espressi nel testo, la generazione di ipotesi mira a scoprire relazioni che non sono al momento presenti nei documenti, ma potrebbero essere inferite. Lo scopo ultimo è quello di scoprire nuove relazioni tra le entità su cui valga la pena di indagare. Di fatto, tutti i lavori su generazione di ipotesi fanno uso di un’idea che ebbe Don R. Swanson, uno scienziato dell’informazione, chiamata ‘complementary structures in disjoint literatures’ (CSD), o ‘strutture

30

complementari in letterature disgiunte’. Swanson capì che i grandi database della letteratura scientifica avrebbero potuto permettere nuove scoperte, mediante la connessione tra concetti per mezzo dell’inferenza logica.Egli propose un semplice modello di ragionamento: se A influenza B e B influenza C, A potrebbe influenzare C.Questo modello per rilevare casi di CSD è oggi noto come il modello dell’ABC di Swanson. In numerosi articoli pubblicati negli anni ‘80 e ‘90, Swanson ha fornito esempi su scoperte di nuove ipotesi connettendo manualmente concetti presenti in diversi articoli scientifici. (Ad es.: benefici dell’olio di pesce sulla sindrome di Raynaud).Mentre Swanson ha applicato i l suo modello ABC manualmente, numerosi ricercatori hanno tentato di automatizzare il processo. I sistemi di generazione automatica di ipotesi creano numerose potenziali ipotesi scientifiche: occorre quindi un metodo per valutare l’efficacia di tali sistemi. Il metodo più diffuso al momento è la ricerca manuale delle ipotesi generate in letteratura. Altre tecniche tipiche del text mining sono:– Synonym and abbreviation extraction →per l’estrazione e la raccolta di sinonimi e abbreviazioni di un termine. – Text classification → per determinare automaticamente se un documento è interessante, s u l l a base dell’argomento che discute o del tipo di informazioni che contiene.Altri settori di applicazione del text mining sono: – Sicurezza: analisi di conversazioni e scambi di email in cerca di sospetti atti terroristici.– Editoria: automatizzare la lettura di un articolo per poter rispondere a domande di un utente che non ha diritto di accesso all’articolo stesso.– Analisi dei sentimenti: comprensione automatica del tono delle recensioni di un film o disco (positivo o meno).– Marketing: per una migliore relazione con il cliente; ad es. allarme automatico basato su predizione di abbandono.

> Ancora qualche considerazione sul text mining…Text summarization, esempio:Dato un testo, se ne fornisce un breve riassunto basato sulle parole più frequentemente usate (a parte quelle non significative, come “il” o “di” o “e”, chiamate stopword).Si è detto che la text summarization non è considerata text mining in senso stretto perché si effettua su un documento solo e non cerca collegamenti tra diversi contenuti. Si tratta comunque di elaborazione automatica di testo. Consideriamo il seguente testo...

A processor in a computer isalso called a chip. A chip is the

most important part in acomputer, because it is thedevice that performs all the

operations. Even when you type“potato” on the screen, the chip

is involved.

Analizziamolo con la tecnica della text summarization e contiamo le parole più frequenti, ignorando le stop word e punteggiatura. Come si fa a capire l’argomento del testo con la frequenza delle parole? Consideriamo la parola più frequente. (computer chip / potato chip).. c'è il problema dei sinonimi...Facendo una ricerca su Google si scopre che ‘chip’ può essere addirittura un acronimo.Come affrontare il problema?Il problema di capire l’argomento di cui tratta un testo è molto importante per poter individuare tale testo in mezzo ad altri, come ad esempio in unaricerca in internet.La prima soluzione sarebbe quella di affidarsi a ricerche più precise, con più parole chiave (es.potato chip).E’ la soluzione più semplice, e funziona nella maggior parte deicasi; ma non in tutti.

Il problema è che, nel testo, ‘computer’ e ‘potato’ sono frequenti nella stessa misura. Questo sembra essere un finto problema. Infatti, esaminando le altre parole presenti, è chiaro che si sta parlando del computer chip e non della potato chip. In realtà, però noi riusciamo a stabilire che le parole ‘processor’, ‘device’ e tante altre parole del testo appartengono allo stesso dominio di ‘computer’. Ma come facciamo? Ne sfruttiamo il significato. Sappiamo bene i limiti dei computer in fatto di significato. Questo esempio è poco realistico, ma mostra i limiti dell’analisi di un testo basato esclusivamente sul conteggio dei vocaboli: funziona molto spesso, ma non in tutti i casi. Per elaborare una soluzione che funzioni in tutti i casi, dovremmo riprodurre la classificazione degli argomenti, che un essere umano solitamente fa, in un computer. L’esperimento mentale della stanza cinese di Searle vuole dimostrare che un calcolatore che elabora simboli in maniera sintattica non può comprendere la semantica delle parole rappresentate da questi simboli.

31

Il computer tratta solo simboli in maniera sintattica.Vogliamo che il computer tratti anche la semantica.Deve esserci un modo di esprimere la semantica in maniera sintattica. Sembra una cosa insensata, eppure…

Web 2.0 1.0Il termine “Web 2.0”, che abbiamo visto utilizzato per descrivere il web “sociale”, in cui gli utenti sono anche creatori di contenuti e l’interazione svolge un ruolo fondamentale, è stato in realtà originariamente introdotto con un altro significato. Esiste insomma una prima versione del Web 2.0.

Semantic WebLa prima versione del Web 2.0 è nota anche come semantic Web, o Web semantico, appunto perché si prefiggeva di arricchire internet con tecniche per la trattazione automatica del significato. L’idea è stata introdotta da colui che viene considerato come l’inventore del Web 1.0: Tim Berners-Lee.L'idea base del semantic web è: per creare il legame tra sintassi dei simboli e la loro semantica anziché affidarsi solo alla mente dell'utente web, bisogna usare dei simboli aggiuntivi, sotto forma di marcature, che rimandano a un’ontologia (simile a un vocabolario, in cui i concetti sono organizzati secondo classi di appartenenza).

Resource Description FrameworkE’ una convenzione che prescrive il modo con cui i dati con cui lavoriamo devono essere descritti, ossia fornisce indicazioni sui metadati: i dati che parlano di dati. Ovviamente, come tutte le convenzioni, l’RDF deve essere accettato e seguito da tutti i creatori di contenuti Web per poter funzionare.

Semantic Web: problema 1Tutti gli utenti Web devono seguire un’unica convenzione su come descrivere i dati presenti nel Web.RDF è una proposta, ma non è stata universalmente accettato.

> Le ontologie: Un’ontologia ha lo scopo di definire tutti i concetti appartenenti a un particolare dominio, e di elencare tutte le possibili relazioni tra di essi. Se andiamo a dbpedia.org/resource/Cat troviamo questadescrizione, in svariate lingue. La descrizione comprende tutti i modi di riferirsi a un gatto

nelle lingue presenti, e anche un albero filogenetico.

Semantic Web: problema 2Per ciascun concetto esistente, tutti gli utenti Web devono essere d’accordo sull’ontologia che lo descrive.DBpedia è una proposta, ma non è stata universalmente accettata.

Semantic Web: problema 3The chicken or the egg. Il “chicken or the egg problem” si riferisce a una situazione di stallo. Nel caso della gallina e dell’uovo, la questione si pone come segue: senza l’uovo, la gallina non può nascere, ma senza una gallina, non si può fare un uovo. Per quanto riguarda il semantic Web, la questione riguarda il grande lavoro umano necessario per etichettare con le marcature semantiche tutti i concetti presenti nelle pagine Web esistenti e in quelle future. Tale lavoro chiaramente non può essere automatizzato, perché presuppone che i computer conoscano già ilsignificato delle parole. Riferito al semantic Web, quindi, il “chicken or the egg problem” descrive il seguente stallo: nessun produttore di contenuti Web vuole iniziare l’impresa titanica di marcarli se non è sicuro che il semantic Web si realizzi davvero; ma perché il semantic Web si realizzi, tutti devono marcare i contenuti che pubblicano.> Il termine “Web 2.0” è stato riciclato per indicare il Web sociale. Il Semantic Web è ora noto come “Web 3.0”, e non si sa se si realizzerà mai.

LEZIONE 16

Esercizio: Disegnare il diagramma di flusso dell'algoritmo della test summarization

32

Text summarizationDato un testo, se ne fornisce un breve riassunto basato sulle parole più frequentemente usate (a parte quelle non significative, come “il” o “di” o “e”, chiamate stopword). Una soluzione semplice a questo algoritmo è fare la Text Summarisation.Soluzione buona?Altrimenti, se ci sono dubbi e incertezze, l’algoritmo va specificato in maniera tale da non lasciare nulla di irrisolto. Questo è un processo necessario se alla fine si vuole far eseguire l’algoritmo a un computer, che non è in grado di fare nulla se non di eseguire comandi ben specificati.Specifichiamo meglio le operazioni che compongono l'algoritmo per la text summarization passo dopo passo, affrontando un problema per volta. Questa tecnica di creazione di algoritmi si chiama “progettazione per raffinamenti successivi”: si parte con una soluzione approssimativa che viene resa man mano sempre più precisa. Ad un certo livello di precisione, l’algoritmo è pronto per essere trasformato in un programma per computer.– Domanda: su quale testo bisogna fare la text summarization? – Domanda: quando una parola è considerata parola chiave?>Risposta: quando compare nel testo con frequenza elevata.>Risposta più precisa: quando è tra la prime 3 parole nella classifica delle più frequenti.>Risposta ancora più precisa: quando è tra la prime 3 parole nella classifica delle più frequenti e non è una stop-word>Risposta ancora più precisa: quando è tra la prime 3 parole nella classifica delle più frequenti e non è una stop-word.– Domande:1) Perché proprio 3 e non 5?2) Quali sono le stop-word?>i criteri che determinano le operazioni da eseguire, chiamati specifiche, trovano la loro motivazione all’esterno del contesto della scrittura dell’algoritmo.> certe informazioni, necessarie per l’esecuzione dell’algoritmo, devono essere fornite dall’esterno sotto forma di inputCon queste informazioni, possiamo specificare meglio l’algoritmo..Siamo ancora molto lontani dalla precisione necessaria a trasformare l’algoritmo in un programma. Proviamo a raffinare →

Bisogna proprio specificare tutto? Sì. Gli algoritmi sono tali in quanto ogni passo è specificato neldettaglio in maniera adeguata all’esecutore. Se l’esecutore è un computer, il livello di dettaglio deve scendere fino alle operazioni elementari di elaborazione di 0 e 1 che il suoprocessore sa eseguire. Ribadiamo il concetto: la soluzione a un problema, o almeno il modo di ottenerla, deve essere già nella testa del programmatore. Il computer, adeguatamente programmato, può effettivamente fornircela eseguendo operazioni in maniera molto rapida e senza errori.

LEZIONE 17 A quanto pare non riusciamo ad ottenere mai nulla dinuovo, nulla di originale da un computer, eppure…Facciamo un test..

– Quale brano è stato creato da un computer?Per coloro che non sono stati presenti alla lezione: sono stati suonati due brani dal disco “Bach by Design” di David Cope, un esperto di composizione musicale automatica, che ha generato al computer dei brani che imitano lo stile della musica barocca di Bach. Entrambi. I brani che abbiamo ascoltato sono stati creati tramite un programma. Sono brani originali, nel senso di nuovi.

33

Lo stile è tutt’altro che originale. Di fatto, il programma è stato creato estraendo “pattern” dalle composizioni per clavicembalo di Bach. Ma allora, il computer riesce a creare qualcosa di originale o no?Diciamo che il computer ci aiuta, grazie alla sua veloctià, ad esplorare molte possibilità. L’insieme dei possibili brani musicali è chiaramente un insieme infinito. La cultura musicale fa sì che vengano creati dei criteri che escludono molti di questi brani. Ad esempio, vogliamo solo le note presenti su un pianoforte. Si tratta di una selezione analoga a quella fatta nel contesto dei colori. La natura ci offre una palette di sfumature infinite; ma visto che sotto a una certa soglia di differenza minima l’occhio umano non riesce più a distinguere le sfumature, noi ci accontentiamo di una selezione finita. Inoltre, certi raggruppamenti di note (accordi), la loro durata, la loro dinamica, e tanti altri fattori definiscono uno stile che possiamo preferire rispetto ad altri. Pur ponendo dei limiti di carattere stilistico, i brani possibili sono infiniti, ed esplorare lo spazio di queste possibilità richiede troppo. Qui viene in nostro aiuto il computer.Se i pattern che un musicologo riconosce nei brani di Bach possono essere scritti sotto forma di programma, allora possiamo programmare adeguatamente un computer affinché generi dei brani che seguono lo stile di Bach.Grazie al fatto che la CPU può eseguire miliardi di operazioni al secondo, la produzione di questi brani (cioè l’esplorazione dello spazio dei possibili brani) è molto più rapida. Rimane il problema di giudicare questi brani secondo criteri di estetica . Ritorna la questione del raffinamento degli algoritmi. La codifica dello stile di Bach non è così precisa da rendere certo il fatto che il prodotto del computer sia gradevole all’ascolto. I criteri secondo cui un brano è “bello” sono numerosi e nessuno è ancora riuscito a codificarli tutti sotto forma di algoritmo. I brani di Cope, quindi, sono il frutto del lavoro di calcolo del computer, ma anche di selezione da parte di un esperto umano. Rimane la questione dell’originalità: il lavoro di Cope, per quanto notevole, è stato guidato dallo stile musicale di Bach e dei suoi contemporanei, ma è possibile scrivere un algoritmo che crei brani con uno stile mai sentito sinora?

Facciamo un altro test. Quale dei due disegni è stato realizzato a mano, e quale per mezzo di un computer? Franco Grignani è l’autore del primo disegno. Egli è anche il creatore del marchio della pura lana vergine. Grignani ha sempre lavorato a mano nel corso della sua carriera, avvalendosi al più di compassi, righelli e squadre. Pearson (il creatore del secondo disegno) invece, disegna al computer: non usa strumenti tradizionali di disegno, bensì scrive programmi che, una volta fatti funzionare, creano disegni. Osservando più da vicino il disegno di Pearson, notiamo che le convoluzioni sono costituite da una serie di numerose circonferenze. Il numero di tali circonferenze è talmente elevato da rendere impraticabile una realizzazione a mano deldisegno. Qui viene in aiuto la notevole velocità a cui lavorano i computer: se teniamo presente che un processore di media potenza oggi (2013) può realizzare 3 miliardi di operazioni semplici al secondo, ecco che l’impresa di disegnare migliaia di cironferenze

risulta più fattibile. Di fatto, il disegno si basa sulla ripetizione di un’unica operazione, quella di disegnare una circonferenza. Abbiamo già visto in precedenza dei casi di ripetizione di operazioni.Ad esempio, nell’algoritmo della text summarization, per eliminare le parole nella lista pc che sono presenti anche nella lista sw si è dovuta ripetere più volte l’operazione di scorrimento della lista sw e anche di scorrimento della lista pc. Nei diagrammi di flusso, le ripetizioni assumono la forma di un ciclo, perché per ripetere determinate operazioni il flusso di esecuzione deve tornare in l’alto e poi riscendere.Questo tipo di esecuzione ripetuta può essere chiamata in modo diversi (iterazione, ripetizione, ciclo, loop), osserviamo di nuovo il disegno di Pearson, per notarne un’altra caratteristica, indipendente dall’iterazione.Si osservi che la sequenza delle circonferenze disegnate non segue una traiettoria regolare, geometrica (come le linee nel disegno di Grignani).

Il percorso seguito dai centri delle circonferenze è irregolare, così come la distanza tra loro: ci sono zone in cui le circonferenze sono più distanziate (e il disegno risulta più chiaro) e zone in cui esse sono più ravvicinate (e il disegno è più scuro).Non riusciamo a riconoscere alcuna regolarità né nel percorso tracciato, né nella frequenza con cui le circonferenze sono disegnate: queste due caratteristiche ci appaiono casuali. Se le codificassimo sotto forma di valori numerici, essi ci apparirebbero come numeri casuali.

Numeri casualiAttenzione: è possibile avere numeri casuali in un programma di un computer? Apparentemente sì, se è vero che Pearson ha programmato un computer per creare il suo disegno, e se è vero che l’andamento delle circonferenze ha una componente casuale. Questo, però, è in contraddizione con la definizione di algoritmo, che riportiamo di seguito, e che include la fondamentale caratteristica di “determinismo”, che dovrebbe escludere ogni fattore casuale.

34

Un modo per raggiungere la soluzione che ha le seguenti caratteristiche:1) è una sequenza finita di operazioni ben definite;2) dopo l'esecuzione di ogni operazione, è chiaro qual è la successiva (determinismo).Immaginiamo però di escludere ogni fattore casuale, e di voler lavorare in maniera deterministica.Come potrebbe Pearson realizzare il suo disegno? In teoria un modo ci sarebbe: dovrebbe scrivere un programma in cui, per ogni circonferenza da disegnare, c’è un’istruzione che ne indica in maniera precisa la posizione e il diametro.Tali istruzioni andrebbero scritte dal programmatore, ossia Pearson.In tal caso, affidarsi al computer non ha più senso: scrivere migliaia di istruzioni consuma tanto tempo quanto disegnare migliaia di circonferenze. Tanto vale allora risparmiare sull’acquisto di un calcolatore e lavorare con strumenti di disegno tradizionali. In realtà... La contraddizione è solo apparente: non vi è alcun numero casuale all’interno di un calcolatore, bensì solo numeri pseudo-casuali, ovvero numeri che a un osservatore esterno appaiono come casuali, ma sono in realtà il risultato di una funzione matematica piuttosto complessa il cui calcolo include anche informazioni contingenti (come ad esempio la data e l’ora, il minuto e il secondo in cui tale calcolo viene eseguito) di modo che ogni volta vengono fuori numeri in un ordine difficile da prevedere, appunto pseudocasuale. Come riusciremmo a prevedere l’esito del lancio di un dado se conoscessimo alla perfezione le condizioni al contorno (la posizione del dado nella mano, le condizioni della pelle del palmo della mano, il funzionamento e le condizioni di tutti i muscoli del braccio coinvolti, temperatura, umidità e pressione dell’aria nella stanza, la superficie del tavolo, etc.), cosìse conoscessimo tutti fattori che contribuiscono al calcolo della funzione per creare numeri pseudocasuali riusciremmo a prevedere la sequenza risultante di numeri. Non essendo il programmatore (nel caso del disegno in questione, Pearson) in grado di tenere conto di tutte queste informazioni, per lui la sequenza di numeri è imprevedibile e apparentemente irregolare. I disegni basati su un programma che ricorre all’uso di funzioni per la creazione di sequenze di numeri pseudocasuali non sono quindi interamente prevedibili da parte del programmatore. Opere del genere rientrano in quella branca di arte basata sul computer chiamata Generative Art. Non tutto in un disegno di generative art è imprevedibile. Nel lavoro di Pearson chiaramente ci sono delle scelte fatte dall’artista che sono state codificate in maniera esplicita nel programma: ad esempio il fatto che ci sia una sequenza di circonferenze (e non di esagoni) e che tale sequenza si sviluppi su un percorso approssimabile ad un anello.La parte più imprevedibile, quella in cui il programma fa ricorso a funzioni di creazione di numeri pseudocasuali, riguarda la densità delle circonferenze, più distanziate in alcuni tratti e più ravvicinate in altri, e i dettagli del percorso ad anello, che include delle deviazioni irregolari. Che non si pensi che questa convivenza di decisioni esplicite dell’artista e di casualità al di fuori del suo controllo sia una novità introdotta con la generative art. Un esempio che precede l’arte creata con l’aiuto del computer è Jackson Pollock (1912-1956). Che si tratti di musica o di quadri, la creatività consiste nel trovare soluzioni originali all’interno di uno spazio molto vasto di possibilità. Il computer ci può aiutare perché è in grado di esplorare le diverse opzioni (purché opportunamente codificate) in maniera molto rapida. I criteri con cui si giudicano le possibili soluzioni (“Questo brano è piacevole all’ascolto?” “Questo disegno è bello?”) dipendono ancora dal giudizio delle persone. Se riuscissimo a esprimere tali criteri sotto forma di programmi, allora i computer, da esploratori di possibili soluzioni, potrebbero diventare selettori di soluzioni.

LEZIONE 18 Abbiamo parlato di creatività al computer, e abbiamo visto che spesso vuol dire lanciare il computer all'esplorazione di soluzioni a noisconosciute. La differenza con l’essere creativi in senso tradizionale è che tale esplorazione può essere eseguita in tempi molto più rapidi (previa scrittura di programmi adeguati, naturalmente). Tale ignoto inesplorato non contiene novità in senso assoluto (es. un nuovo modo di fare arte) ma soluzioni in un contesto ben definito mai viste sinora semplicemente perché tale contesto è talmente vasto che l'umanità non l'ha ancora esaurito (es. un nuovo quadro). Qual è la differenza tra un nuovo modo di fare arte e un nuovo quadro?Il quadro si inserisce in un insieme ben definito di regole, mentre un nuovo modo di fare arte fuoriesce da tali regole. In realtà, fuoriuscire dalle regole si traduce nella creazione di nuove regole, se il nuovo oggetto è interessante e se ne vogliono costruire altri di simili. Ecco un esempio di opera d’arte fuori dalle regole del momento storico in cui è stata presentata: Fountain di Marcel Duchamp (1887-1968). Fa parte della serie dei Readymades, oggetti già costruiti in precedenza con altri scopi, che diventano oggetti d’arte nel momento in cui vengono inseriti dall’autore in un contesto artistico. L’originale Fountain è stato presentato a un concorso d’arte nel 1917 ma è andato perso. In foto è mostrata una copia del 1964, commissionata da Duchamp stesso, conservata alla Tate Modern di Londra.Fountain è uscito fuori dagli schemi tradizionalidell’arte per numerosi motivi:

1. è un urinatoio, quindi nulla di bello né di piacevole2. non è stato costruito dall’artista che se ne dichiara l’autore3. se ne possono fare copie senza che ne venga diminuito il (presunto) valore.

Fountain è stato votato il lavoro più significativo dell’arte del XX secolo da 500 artisti ed esperti d’arte britannici nel 2004.Una delle motivazioni è che ha messo in discussione il legame tra la manodopera dell’artista e il merito dell’opera.

“L’atto creativo non è eseguitodal solo artista; lo spettatoremette il lavoro in contatto colmondo esterno decifrando e

interpretandone le sue qualitàinterne, contribuendo così

all’atto creativo. (Marcel Duchamp, 1958)La creatività secondo uno degli artisti più importanti del XX secolo. La definizione ha molto in comune con quanto abbiamo visto in ambito informatico:

35

1. una comunicazione tra interno ed esterno attraverso un’interfaccia2. l’uso della codifica e dell’interpretazione.

In particolare, qui viene sottolineata l’importanza del ruolo attivo dello spettatore. In ogni caso, torniamo alla solita questione: è fondamentale che ci sia un’entità in grado di interpretare ciò che le viene presentato. Che alle estremità del canale di comunicazione vi sia una persona, un computer, o un’opera d’arte, l’obiettivo da raggiungere (anche al di fuori del contesto artistico) è quello di comunicare.

“Furiosamente dormono ideeverdi senza colore.”

Ecco un esempio di comunicazione non riuscita: anche se la frase viene enunciata in maniera chiara e udibile, il destinatario non riesce a comprenderne il significato. E’ una frase formulata da Chomsky nel 1957 nel libro “Syntactic Structures” per dare un esempio di frase corretta dal punto di vista sintattico, ma che non ha alcun significato comprensibile."Con essa Chomsky voleva mostrare la chiara distinzione tra sintassi e semantica. Inoltre, faceva parte di un attacco contro modelli stocastici della grammatica, che iniziavano a diffondersi in quegli anni in ambito delle scienze linguistiche. Un dibattito (la statistica ha un ruolo fondamentale nella costruzione di un linguaggio?) che va avanti anche oggi. Il principale avversario di Chomsky in questo contesto è il direttore delle ricerche di Google, Peter Norvig, autore (insieme a Stuart Russell) del più diffuso libro di testo sull’Intelligenza Artificiale. Che si tratti di regole derivate dalla statistica o meno, cerchiamo di vedere in che modo una frase del genere possa essere costruita. > Un primo modo potrebbe essere quello di vedere la frase come costituita da un soggetto e da un predicato.Questo è il tipo di prospettiva che assumiamo quando facciamo l’analisi logica del linguaggio. > Un altro modo è quello di vedere le singole parole come componenti della frase. A questo livello, si fa analisi grammaticale (aggettivi,preposizioni, sostantivi, etc…) Tali elementi si possono scomporre ulteriormente, ed arrivare fino ad avere le singole lettere dell’alfabeto.L’analisi degli elementi costitutivi di una frase può dunque essere effettuata a livelli diversi di granularità. Lo stesso fenomeno si ha quando si descrive un algoritmo: il livello di precisione con cui si descrivono le operazioni da eseguire può variare da una descrizione sommaria fino alla descrizione dettagliata di ogni singola sottooperazione. Non si pensi che, arrivati alle lettere che compongono la frase siamo arrivati ad analizzare il livello più fondamentale ed universale dei componenti della comunicazione. Anche questi caratteri fanno parte di uno spazio sì vasto, ma regimentato da una serie di regole, al di fuori del quale possiamo trovare altri componenti per costruire frasi di altro tipo che seguono regole diverse (es= furiosely).Concentriamoci sulla parola “Furiosamente” e, ispirandoci alla creatività pseudo-casuale vista nella generative art, vediamo come una parola del genere possa venire costruita a partire dai suoi componenti. Un modo di costruirle è di estrarre un numero (pseudo)casuale che stabilisca la lunghezza della parola e di scegliere (pseudo)casualmente le lettere tra quelle disponibili.Nell’esempio in figura le lettere sono proprio quelle della parole “Furiosamente”, ma naturalmente è un caso particolare. Rendiamo il meccanismo di generazione più complesso. Prendiamo due sequenze di caratteri, scegliamo (sempre pseudocasualmente) una loro parte centrale, e creiamo a partire da loro due nuove sequenze, scambiando le parti centrali. Procedendo in questo modo per altre coppie, difatto raddoppiamo la “popolazione” di sequenze introducendo nuovi elementi mai visti prima.L’idea di fondo è quella di proseguire nella generazione di nuovi elementi, finché non se trova uno adeguato ai nostri scopi. Questa “adeguatezza” viene espressa in termini di caratteristiche che noi vorremmo in questi elementi e che ci possono guidare nel “filtrare” la popolazione, ovvero sia selezionare per la “riproduzione” (eseguita come prima con l’incrocio di parti centrali di sequenze) solo quegli elementi che mostrano un certo livello di adeguatezza. Il filtro che applichiamo potrebbe specificare leseguenti caratteristiche.> Lunghezza 12 caratteri> Contiene una sola aiuscola> La maiuscola è all'inizio> …Il risultato dell’applicazione del filtro, o “selezione” è questo:

Fitusaomeren / Fomtusanerie. Facendo riprodurre gli elementi selezionati, lanuova popolazione si avvicina di più all’obiettivo:

Fitusaomeren Fomtusanerie Footusanerie Fomtsananttt Fomtusartrin Fomtusaeerti

Naturalmente, la selezione potrebbe essere formulata in maniera molto restrittiva, descrivendo precisamente ciò che vogliamo:> Lunghezza= 12 caratteri> Contiene una sola maiuscola> La maiuscola è all'inizio> è uguale a “furiosamenteIn tal caso, però, non ha senso procedere con la generazione pseudocasuale di elementi: se abbiamo già un’idea precisa di ciò che desideriamo, possiamo creare direttamente una soluzione ad hoc. Questo modo di procedere è significativo quando abbiamo un obiettivo da raggiungere, ma non abbiamo in mente la forma precisa della soluzione che ci permetta di raggiungerlo.Costruire la parola “Furiosamente”, quindi, non è un obiettivo per il quale valga la pena di imbastire un processo di generazione e selezione di soluzioni. Noi, però, abbiamo spesso obiettivi molto più vaghi, come ad esempio “creare un bel quadro” oppure “scrivere una poesia commovente. La tecnica di incrocio di parti di sequenze è ispirata a ciò che avviene in natura con i cromosomi. Mischiare materiale genetico con il crossover è un modo per cercare nuove “soluzioni” ossia nuovi esseri viventi in grado di sopravvivere nel mondo. In natura esiste anche il fenomeno della mutazione, ossia una modifica “spontanea” del materiale

36

genetico in un individuo. Nel nostro esempio, è come se un carattere in una sequenza cambiasse spontaneamente. TusaomierenF →FusaomierenF.> Gregor Johann Mendel (1822 – 1884) è universalmente riconosciuto come il padre della genetica per via dei suoi esperimenti con le piante di pisello." Tecniche di programmazione informatica che si ispirano al lavoro di Mendel, trattando potenziali soluzioni come patrimonio genetico da selezionare e migliorare generazione dopo generazione, prendono il nome di Genetic Programming. > Charles Robert Darwin (1809 – 1882). è considerato il pioniere delle teorie evoluzionistiche delle specie. I concetti di selezionenaturale, di sopravvivenza del più adatto sono dovuti a lui. In informatica, tecniche di ricerca di soluzioni ispirate ai principi dell’evoluzione prendono il nome di Evolutionary Computation. Che si tratti di formulare frasi, di disegnare quadri, o di sopravvivere nella savana, i l problema fondamentale è quello di trovare una soluzione adeguata per risolvere un problema in un insieme molto vasto di possibilità. Non ci sono costrizioni, se non quelle poste dai componenti con cui si lavora. Se si tratta di esseri viventi, tali costrizioni sono dettate dalla loro natura biologica. Nel caso dell’informatica, sono le regole di funzionamento dei calcolatori a circoscrivere lo spazio delle possibili soluzioni.

37