Introduzione all’informatica

236
INTRODUZIONE AL’INFORMATICA Seminario introduttivo - Settembre 2014

description

Slide presentate nel corso del seminario "Introduzione all'informatica" - Università di Mlano Bicocca - Settembre 2013

Transcript of Introduzione all’informatica

Page 1: Introduzione all’informatica

INTRODUZIONE AL’INFORMATICASeminario introduttivo - Settembre 2014

Page 2: Introduzione all’informatica

Indice

Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web

Page 3: Introduzione all’informatica

Premessa

Oggi l’informatica è ovunque Centraline delle auto Lavatrici Centrali telefoniche Sistemi robotizzati …

A volte non ce ne accorgiamo, ma ormai viviamo in simbiosi con sistemi informatici di ogni tipo

Page 4: Introduzione all’informatica

Le rivoluzioni informatiche

Prima rivoluzione informatica: dalla fine degli anni ‘70 del 900 Il computer si trasforma in un oggetto di

uso comune

Seconda rivoluzione informatica: dalla metà degli anni ‘90 del 900 Internet e i suoi servizi

Page 5: Introduzione all’informatica

Significato delle rivoluzioni informatiche

Hanno cambiato del tutto le nostre esistenze

Nel loro insieme, sono paragonabili al passaggio dal paleolitico al neolitico

Differenza: anziché millenni, hanno richiesto poche decine di annni

Page 6: Introduzione all’informatica

Problemi

Le rivoluzioni informatiche non sono ancora state “metabolizzate” in senso culturale Esempio: digital divide

Siamo tuttora in fase “esplosiva” Nessuno ha veramente idea di cosa ci

riserverà il futuro, anche prossimo

Page 7: Introduzione all’informatica

In generale - processi automatici Processi ripetitivi, spesso molto lunghi

da eseguire, “meccanici” (che non richiedono “intelligenza”, per come la intendiamo comunemente)

Esempio: mettere in ordine 1.000 documenti

Page 8: Introduzione all’informatica

Calcolo automatico

E’ solo un aspetto del problema

Tuttavia è importante, perché è stato il punto di inizio della rivoluzione informatica

Page 9: Introduzione all’informatica

Calcolare a macchina

C’è qualcosa nel calcolo di evidentemente meccanico

Sembra ragionevole poter costruire “macchine per calcolare”

Page 10: Introduzione all’informatica

Macchine per calcolare (1)

A – Due righelli permettono di fare le somme

B – Un pallottoliere permette di fare le somme

Page 11: Introduzione all’informatica

Macchine per calcolare (2)

A: è di tipo analogico Funziona sulla base dell’”analogia” della

somma delle lunghezze I limiti del calcolo sono legati solo alla

precisione della misura

B: è di tipo digitale Da “digit” (cifra) E’ perfettamente preciso entro il limite delle

cifre che rappresenta

Page 12: Introduzione all’informatica

Limitazioni

A e B sono in grado di fare un’unica operazione: la somma

Sono state costruite macchine più versatili, in grado di compiere somme, ma non solo...

Page 13: Introduzione all’informatica

Un esempio: la “Pascaline”

Inventata da Blaise Pascal (1623 – 1662), più noto come filosofo e matematico

Permetteva di effettuare diverse operazioni aritmetiche e matematiche

Page 14: Introduzione all’informatica

Un altro esempio: il regolo calcolatore

E’ analogico: funziona come i righelli

Usando scale logaritmiche, permette di fare moltiplicazioni anziché addizioni

Page 15: Introduzione all’informatica

I computer moderni sono digitali Manipolano cifre numeriche

Un computer analogico sarebbe soggetto inevitabilmente a errori di misura

Gli errori si accumulano durante il calcolo Dopo pochi passaggi i risultati sarebbero

praticamente casuali

Ciò implica che la precisione del computer è finita

Page 16: Introduzione all’informatica

Che tipo di cifre?

Binarie BIT = Binary digIT

Page 17: Introduzione all’informatica

Sistema posizionale (1)17

E’ il sistema di numerazione che utilizziamo comunemente

Le cifre non hanno tutte lo stesso significato

Il significato dipende dalla loro posizione all’interno del numero3452

unità

decinecentinaia

migliaia

Page 18: Introduzione all’informatica

Sistema posizionale (2)18

Si basa sull’uso della cifra 0 (zero) Inventato probabilmente in India nel IX

secolo d.C.

Nel nostro caso comporta l’uso di 10 cifre diverse (0, 1, 2, 3, 4, 5, 6, 7 ,8, 9)

Perché proprio dieci cifre? C’è qualcosa di speciale nel numero 10?

Page 19: Introduzione all’informatica

Sistema decimale19

Risposta: no. E’ possibile usare sistemi posizionali basati su qualsiasi numero maggiore di 1. Per capire perché, esaminiamo la seguente tabella

Il numero 10 è detto base del sistema di numerazione.

3452 = 3 migliaia + =4 centinaia +5 decine +2 unità

3 × 1000 + =4 × 100 +5 × 10 +2 × 1

3 × 103 +4 × 102 +5 × 101 +2 × 100

Page 20: Introduzione all’informatica

Teoremi sui sistemi posizionali in base N20

Qualsiasi numero N strettamente maggiore di 1 può essere utilizzato come base

Esiste sempre un unico modo per rappresentare un numero, indipendentemente dal valore di N

Occorrono esattamente N cifre (compreso lo 0) per poter rappresentare i numeri Se volessimo usare la base 7, ci basterebbero le cifre 0,

1, 2, 3, 4, 5, 6

E’ sempre possibile convertire un numero da una certa base a un’altra

Page 21: Introduzione all’informatica

Esempi di sistemi di numerazione non decimali

21

Diverse popolazioni umane hanno usato come base 60 Non è noto con chiarezza perché usare 10 o

60 L’uso del 10 come base potrebbe dipendere

dal fatto che abbiamo 10 dita…

Noi stessi usiamo la base 60 per rappresentare i primi e i secondi d’arco, i minuti e i secondi di tempo

Page 22: Introduzione all’informatica

Il sistema di numerazione binario

22

Utilizza come base il numero 2

Le cifre possibili sono solo 0 e 1 (BIT = BInary digiT)

E’ il sistema posizionale più “semplice” possibile

I numeri sono “molto lunghi” Esempio: 10000000 (binario) = 256 (decimale)

E’ il sistema di numerazione usato “internamente” dai computer Perché?

Page 23: Introduzione all’informatica

Perché il sistema binario23

Ragioni “tecniche” E’ facile rappresentare le cifre 0 e 1 come

stati fisici di un circuito (es. passa o non passa corrente)

Gli errori di “lettura” sono meno probabili (quindi meno frequenti)

Ragioni “logiche” Le cifre 0 e 1 corrispondono in modo

naturale ai valori logici FALSO e VERO dell’algebra di Boole

Page 24: Introduzione all’informatica

George Boole (1815 – 1864)

Sviluppa un’algebra delle proposizioni

Espone i suoi risultati in un celebre libro intitolato Indagine sulle leggi del pensiero

L’algebra di Boole è alla base della logica moderna

Page 25: Introduzione all’informatica

Algebra di Boole25

Piove e fa freddo è vera solo se piove e anche fa freddo

Piove o fa freddo è vera se piove, se fa freddo o anche se piove e fa freddo

Se piove allora fa freddo è falsa solo nel caso in cui piove ma non fa freddo

In generale è basata sui valori VERO o FALSO che una proposizione può assumere

Page 26: Introduzione all’informatica

Connettivi

Operazioni possibili sui valori Vero e Falso

Page 27: Introduzione all’informatica

Operazioni di composizione interna Dato un insieme, un’operazione di

composizione interna associa a due elementi (ordinati) dell’insieme un terzo elemento dell’insieme

Somma: 5+2 = 7 (Insieme dei numeri interi)

AND: V AND F = F (Insieme V, F)

Page 28: Introduzione all’informatica

Connettivi fondamentali28

E (AND): la proposizione risultante è vera se e solo se sono vere entrambe le proposizioni argomento Piove e fa freddo

O (OR): la proposizione risultante è vera se è vera una qualsiasi delle proposizioni argomento Piove o fa freddo

NON (NOT): la proposizione risultante è vera solo se la proposizione argomento è falsa Non piove

Page 29: Introduzione all’informatica

Corrispondono a operazioni insiemistiche

Page 30: Introduzione all’informatica

Tavole di verità

Connettivo ANDP1 P2 P1 AND P2V V VV F FF V FF F F

Connettivo ORP1 P2 P1 OR P2V V VV F VF V VF F F

Connettivo NOTP1 NOT P1V FF V

Page 31: Introduzione all’informatica

Espressioni

Aritmetiche: le operazioni possono essere eseguite in catena 2 X (7 + 5) = 24

Logiche: i connettivi possono essere applicati in catena V AND (V OR F) = V

Page 32: Introduzione all’informatica

Connettivi composti

Esempio: implicazione (SE piove ALLORA fa freddo) Si indica con =>

In termini di connettivi fondamentali: A => B equivale a: NOT A OR B

Connettivo =>P1 P2 P1 => P2V V VV F FF V VF F V

Page 33: Introduzione all’informatica

Circuiti logici

Le cifre binarie si prestano molto bene a essere rappresentate mediante circuiti 1: passa corrente 2: non passa corrente

Un connettivo logico diventa un circuito in cui entrano due fili e ne esce uno La corrente in uscita dipende dalle correnti

in ingresso secondo il tipo di connettivo

Page 34: Introduzione all’informatica

Porte logiche

Potete pensarle come insiemi di “interruttori”

Page 35: Introduzione all’informatica

Porte logiche e interruttori

Page 36: Introduzione all’informatica

Codice binario e connettivi logici

36

Numerici 1 + 1 = 10 111 + 1 = 1000 10 × 10 = 100

Logici 1 AND 1 = 1 0 OR 0 = 0 1 → 0 = 0

Page 37: Introduzione all’informatica

Come si fa a rappresentare l’informazione?

37

Un computer (lo sanno tutti) è capace di gestire informazioni di tipo svariato Testi Musica Filmati Immagini …

Come è possibile, se il computer in realtà manipola solo numeri?

Page 38: Introduzione all’informatica

Digitalizzazione38

L’operazione di digitalizzazione corrisponde alla trasformazione di una certa informazione in numeri

E’ sempre possibile digitalizzare l’informazione

Facciamo qualche esempio

Page 39: Introduzione all’informatica

Digitalizzare il testo39

A ogni carattere viene associato un numero

Questa operazione può essere fatta in moltissimi modi Di solito si usa una codifica

standard (ASCII)

Per l’alfabeto latino è sufficiente un byte

Il cinese richiede 2 byte (ci sono più di 256 caratteri possibili)

Page 40: Introduzione all’informatica

Domande40

Se “Guerra e pace” di Tolstoj è un testo di 2000 pagine e ogni pagina è composta in media da 2000 caratteri, quanti byte occuperà il file su cui è scritto?

Lo spazio occupato dai file di testo (per esempio in formato Word) è molto maggiore del numero di byte che sarebbero necessari secondo la rappresentazione ASCII. Perché?

Page 41: Introduzione all’informatica

Digitalizzare il colore41

Si utilizza la tecnica dei “colori primari”

Ogni colore può essere scomposto nelle sue componenti Rossa (R), Verde (G) e Blu (B)

Le “quantità” di rosso, verde e blu vengono misurate ciascuna con un singolo byte:0 = assenza di colore, 255 = colore saturo

I tre byte che ne derivano corrispondono alla codifica RGB

Page 42: Introduzione all’informatica

Digitalizzare le immagini42

L’immagine viene scomposta in una griglia; ciascun “quadretto” della griglia è detto pixel

Ad ogni pixel viene associato il codice RGB del colore che gli compete

La risoluzione è la misura del numero di pixel che compongono l’immagine; ad esempio 800 × 600 significa 800 pixel in orizzontale e 600 in verticale

Page 43: Introduzione all’informatica

Compressione dell’informazione

43

La digitalizzazione comporta in molti casi uno “spreco di spazio”

Esempio: Ho un’imagine di 1000 x 1000 pixel (= un milione di pixel) Se servono 3 byte per ogni pixel, l’immagine occuperà 3

milioni di byte Supponiamo che l’immagine sia tutta bianca...

Si usano diverse tecniche per comprimere l’informazione Ad esempio, nel caso delle immagini il formato “completo” è

.bmp, mentre il formato .jpg è compresso

Page 44: Introduzione all’informatica

Indice

Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web

Page 45: Introduzione all’informatica

Charles Babbage (1791 – 1871) 45

Anticipatore delle idee moderne sulle macchine calcolatrici

Progetta un calcolatore programmabile, che non riuscirà mai a realizzare

Page 46: Introduzione all’informatica

Alan Turing e la macchina algoritmica

Pioniere dell’informatica moderna

Una macchina di Turing è una macchina che non “sa” calcolare, ma “sa come” calcolare

La macchina di Turing non fornisce il risultato di un calcolo, ma compie le operazioni necessarie per raggiungere tale risultato (computer agoritmico)

Page 47: Introduzione all’informatica

Che cos’è un algoritmo47

In generale: procedimento che porta a un risultato

Esempio. Per preparare la pasta con le vongole:

Mettere le vongole in acqua salata per circa un ora Metterle in una padella e scaldare finché si aprono Buttare via quelle ancora chiuse Filtrare l’acqua che rimane sul fondo Scaldare aglio e peperoncino in olio Aggiungere le vongole A fine cottura, aggiungere il prezzemolo e l’acqua filtrata Condire la pasta

Page 48: Introduzione all’informatica

Il software

E’ ciò che realizza la macchina di Turing

Uno dei risultati ottenuti da Turing è che se un problema è affrontabile da una macchina di Turing, è affrontabile da tutte le macchine di Turing La computabilità è un problema assoluto, non dipende

dalla macchina

In sostanza, se le risorse hardware sono sufficienti qualsiasi computer può raggiungere gli stessi risultati Ovviamente non con le stesse prestazioni!

Page 49: Introduzione all’informatica

Programmi

Un programma deve essere inteso come la realizzazione pratica di un algoritmo di calcolo NB: un algoritmo è un oggetto astratto Un programma invece deve funzionare su

una macchina concreta, tenendo conto delle sue caratteristiche hardware

I programmi devono essere riscritti ogni volta che cambia l’hardware?

Page 50: Introduzione all’informatica

Linguaggio macchina

Un programma scritto in linguaggio macchina utilizza come primitive del linguaggio codici direttamente interpretabili dalla CPU Quindi se cambiamo le caratteristiche della

macchina fisica dobbiamo riscriverlo!

Si parla di eseguibili Sequenze di byte che contengono istruzioni

direttamente eseguibili dal processore

Page 51: Introduzione all’informatica

Linguaggi di alto livello

I programmi scritti in questi linguaggi usano primitive “astratte” Esempi: Basic, C, Java, Pascal...

Essi devono essere “tradotti” in linguaggio macchina per poter essere eseguiti Un programma “traduttore” prende il nome di

compilatore Disponendo del compilatore giusto, siamo in

grado di usare gli stessi programmi di alto livello su qualsiasi macchina

Page 52: Introduzione all’informatica

File52

Un file non è altro che la sequenza dei byte che corrisponde all’informazione digitalizzata

Logicamente è una sequenza continua, ma fisicamente può essere scritto in spazi separati del disco

Il cosiddetto file system contiene la mappa che permette al computer di sapere dove sono scritte fisicamente le informazioni (in generale descrive la struttura dei dati sul disco)

Page 53: Introduzione all’informatica

Come si realizza la macchina di Turing (1)

53

Il processore ha alcuni registri, che funzionano come celle di memoria interne (con la stessa logica delle “scatole”)

Inoltre “sa come fare” certe operazioni di base Sommare il contenuto di un registro a quello di un

altro registro Copiare in un registro il contenuto di un certo

indirizzo di memoria Copiare in un indirizzo di memoria il contenuto di un

certo registro …

Page 54: Introduzione all’informatica

Come si realizza la macchina di Turing (2)

54

Al processore arrivano numeri che corrispondono alla codifica di istruzioni base

Le modalità di invio di questi numeri al processore sono controllate da un “super programma” sempre attivo che si chiama sistema operativo

Ad esempio, potrebbe arrivare il codice dell’istruzione: “trasferisci il contenuto della cella di memoria X nel registro Y” Ovviamente il processore si aspetta che dopo il codice

(numero) dell’istruzione gli arrivino gli indirizzi X e Y

Page 55: Introduzione all’informatica

Come si realizza la macchina di Turing (3)

55

Questo significa che anche un programma, dal punto di vista interno della macchina, non è altro che una successione di numeri (le istruzioni in codice seguite dagli eventuali attributi, ad es. gli indirizzi X e Y)

Il concetto di file unifica quindi informazioni e programmi Si parla di file eseguibile per intendere un file che

contiene un programma In Windows li distinguete

dall’estensione: .exe, .bat…

Page 56: Introduzione all’informatica

La nascita del computer moderno L’idea di Turing (computer

algoritmico) fu sviluppata a partire dalla fine della seconda guerra mondiale

L’architettura base di un computer di Turing “funzionante” fu definita dal matematico John von Neumann

Uno dei primi prototipi funzionanti si chiamava EDVAC

Page 57: Introduzione all’informatica

Architettura di Von Neumann

Page 58: Introduzione all’informatica

Processore (CPU)

Esegue tutte le operazioni elementari (poche e semplici)

Velocità tipica per un computer commerciale di oggi: un miliardo di operazioni al secondo

Page 59: Introduzione all’informatica

Memoria RAM

Random Access Memory Indirizzabile

direttamente dal processore

Veloce

Volatile

Page 60: Introduzione all’informatica

Memorie di massa

“Lente”

Grandi dimensioni

Permanenti

Page 61: Introduzione all’informatica

Periferiche di I/O

Tutto ciò che serve per immettere dati nel computer, e per ricevere i dati elaborati

Tastiera, mouse, stampante, scanner, plotter…

Page 62: Introduzione all’informatica

Transistor

E’ un “interruttore” controllato da un segnale elettrico

Primo prototipo funzionante: 1947

Ha permesso di realizzare le porte logiche

Page 63: Introduzione all’informatica

La “legge di Moore”

Le prestazioni dei processori raddoppiano circa ogni 18 mesi

Significa che l’innovazione nell’hardware ha un andamento esponenziale

Hardware più potente significa software (possibile) più potente

Page 64: Introduzione all’informatica

Primi anni ‘70

Il computer è ancora un oggetto enorme e costosissimo

Di fatto esiste solo nelle università e nelle grandi aziende

L’utente usa schede perforate o telescriventi

(Per chi è interessato: www.computerhistory.org/)

Page 65: Introduzione all’informatica

Fine anni ‘70

Nasce il personal computer

Prestazioni ridicole rispetto a un computer di oggi; esempio. Apple II: 64k RAM No disco rigido “Floppy disk” da 128k Risoluzione massima

320x200

Tuttavia copre una serie di esigenze critiche

Page 66: Introduzione all’informatica

Gli Office Productivity Tool (OPT)

66

Word processing (videoscrittura) Il PC è in grado di fare le stesse cose che fino a quel

momento potevano essere fatte con workstation dedicate

Foglio elettronico Primo esempio: VisiCalc (fine anni ‘70)

Programmi per la gestione di database All’inizio solo flat-file, relazionali dalla metà degli anni

’80 (dBase)

Programmi per l’editing di immagini

Page 67: Introduzione all’informatica

L’esplosione del computer67

Il computer è il business della fine del millennio Mercato potenziale: miliardi di pezzi Indotto: stampanti, monitor, programmi software, corsi,

consulenza...

Nel 1983 il programma per videoscrittura WordStar supera il milone di copie vendute

Tuttavia molti utenti potenziali sono respinti dall’idea che il computer sia difficile da usare

Questo fornisce una spinta decisiva all’innovazione nel campo delle interfacce con l’utente

Page 68: Introduzione all’informatica

La crescita del PC

Page 69: Introduzione all’informatica

Interfaccia con l’utente

In passato (ancora adesso in alcuni sistemi) era basata su stringhe di comando (Command Line Interface)

Oggi sono prevalenti le GUI (Graphic User Interface) Esempi: Windows, Macintosh...

Page 70: Introduzione all’informatica

Paradigma GUI

What You See Is What You Get (WYSIWYG)

Non è l’utente che si adatta alle esigenze del computer (interfaccia a comandi), ma il computer che offre all’utente un’interfaccia “intuitiva” Uso del mouse per puntare gli oggetti Icone che rappresentano file ed eseguibili Finestre Metafora della “scrivania”

Page 71: Introduzione all’informatica

Dispositivi touch

Gli oggetti possono essere letteralmente “toccati”

L’interfaccia cambia a seconda del contesto

Le uniche operazioni che l’utente può fare sono quelle consistenti con la situazione operativa in cui si trova Una volta non era vero; esempio: menu

Page 72: Introduzione all’informatica

Indice

Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web

Page 73: Introduzione all’informatica

Algoritmo

Procedimento finito che permette di raggiungere un certo risultato Il “focus” non è sul risultato, ma su come

ottenerlo

Il termine viene da “algoritmus”, parola latina medievale a sua volta derivante dal nome del matematico arabo Al-Khwarizmi (780 – 850 d.C.)

Page 74: Introduzione all’informatica

Esempio di algoritmo

Per preparare il riso “pilaf” occorre mettere insieme tre parti di riso e sette parti di acqua (o brodo) in volume

Algoritmo:1. Prendi una tazzina2. Riempila per tre volte di riso, in modo che sia

colma3. Riempila per sette volte di brodo, in modo che

sia colma4. Metti insieme acqua e riso in una pentola

Page 75: Introduzione all’informatica

Note (1)

L’algoritmo “trasforma” le cose All’inizio ho una confezione di riso e una

pentola di brodo Alla fine ho la corretta miscela per il riso

pilaf

Questo è vero (in generale) per qualsiasi algoritmo: Confezione di riso + Pentola di brodo =

input Miscela finale = Output

Page 76: Introduzione all’informatica

Proprietà degli algoritmi

Non tutte le possibili sequenze di operazioni definiscono un algoritmo

Per essere definito correttamente, un algoritmo deve godere di alcune proprietà

Page 77: Introduzione all’informatica

Generalità

Un algoritmo deve descrivere un procedimento generale: Non importa se uso brodo o acqua Non importa se il brodo è di carne o di verdure Non importa se il riso è Carnaroli o Arborio

L’algoritmo definisce uno schema operativo che, applicato a un certo input, produce un certo output

NB: Fissato l’input, l’output è sempre il medesimo (determinismo)

Page 78: Introduzione all’informatica

Finitezza (1)

Un algoritmo è composto da un numero finito di istruzioni, e deve comportare un numero finito di passi per essere completato

Consideriamo il seguente esempio:1. Nello sviluppo decimale di π trova la prima

occorrenza della cifra 72. Sposta la cifra successiva a sinistra di una

posizione3. Ripeti il passo 2. fino al completamento delle

cifre

Page 79: Introduzione all’informatica

Finitezza (2)

Dato che le cifre di π sono infinite, il passo 2) non può essere completato

1) 3,14159265358979323846...

2) 3,1415926535899323846...

3) 3,141592653589323846...

Page 80: Introduzione all’informatica

Non ambiguità

Un algoritmo deve essere espresso in modo non ambiguo

Il risultato non deve dipendere da situazioni contingenti (non specificate nell’algoritmo stesso)

Esempio:1. Prendi una tazzina2. Riempila per tre volte di riso, in modo che sia colma3. Riempila per sette volte di brodo, in modo che sia

colma4. Se ti va, aggiungi sale

Page 81: Introduzione all’informatica

Riepilogando

Ogni algoritmo è descritto da un numero finito di istruzioni

La sua esecuzione deve comportare un numero finito di operazioni i due concetti non sono identici: v. esempio di π

In linea di principio, un algoritmo riceve dei dati in ingresso (input) e produce dei dati in uscita (output)

Ogni algoritmo è deterministico il risultato dipende solo dai dati forniti in ingresso; dato un

certo input si ottiene sempre lo stesso output

Page 82: Introduzione all’informatica

Un esempio numerico (1)

Insegnare a un bambino a sommare due numeri

Scrivi i due numeri in colonna Somma le cifre a partire da destra Se il risultato è minore di dieci scrivilo, altrimenti

scrivi solo le unità, e tieni a mente il riporto

E’ scritto bene? Come devo incolonnare i numeri? Che cos’è il riporto? Dove devo scrivere i risultati?

Page 83: Introduzione all’informatica

Un esempio numerico (2)

Sommare due numeri1. Scrivi il primo numero2. Scrivi il secondo numero sotto il primo, in

modo che le cifre siano allineate a destra 3. Parti dalla prima cifra a destra4. Tieni a mente 0 5. Muoviti verso sinistra 6. Se incontri la prima cifra a sinistra vai al

passo 12, altrimenti procedi con il passo 7

Page 84: Introduzione all’informatica

Un esempio numerico (3)

7. Somma la cifra superiore con la cifra inferiore8. Somma al risultato quello che stai tenendo a

mente9. Se il totale è minore di 10, scrivilo e tieni a

mente 010. altrimenti, scrivi la cifra delle unità del totale,

e tieni a mente la cifra delle decine11. Torna al passo 512. Se il numero che stai tenendo a mente è

diverso da 0, scrivilo13. Fine

Page 85: Introduzione all’informatica

Il punto fondamentale

La definizione di algoritmo prescinde completamente dal fatto che l’esecutore sia un essere umano

Si tratta di una sequenza di passi meccanici

In linea di principio, anche una macchina (opportunamente costruita) potrebbe eseguirli

Page 86: Introduzione all’informatica

Reticoli operativi

Nell’esempio della somma, il passo 6. comporta un “salto”

Non è detto che un algoritmo sia necessariamente una successione lineare di operazioni

In generale, anzi, la struttura di un algoritmo è reticolare

Come possiamo rappresentarla?

Page 87: Introduzione all’informatica

Diagrammi a blocchi

Un diagramma a blocchi è un grafo che rappresenta un algoritmo (Il concetto è generale; i diagrammi a blocchi sono

usati anche in altri contesti) Si usa anche il termine “diagramma di flusso” o “flow

chart”

Le singole istruzioni vengono scritte all’interno di blocchi

I blocchi sono connessi da frecce, che specificano l’ordine di esecuzione

Page 88: Introduzione all’informatica

Un esempio – Trovare il massimo tra a e b

Page 89: Introduzione all’informatica

Simbologia standard dei blocchi

Inizio / Fine dell’algoritmo

Azione

Input o output (I/O)

Controllo del flusso operativo

Page 90: Introduzione all’informatica

Condizioni di validità

Ciascun blocco azione, lettura/scrittura ha una sola freccia entrante e una sola freccia uscente

Ciascun blocco di controllo ha una sola freccia entrante e due uscenti

Ciascuna freccia entra in un blocco o si innesta su una altra freccia

Ciascun blocco è raggiungibile dal blocco iniziale

Il blocco finale è raggiungibile da qualsiasi altro blocco

Page 91: Introduzione all’informatica

Il “linguaggio” degli algoritmi Non esiste uno standard

Azioni (e controlli) sono espressi da termini della lingua parlata, purché comprensibili

Vedremo poi come questo cambia nell’uso informatico, dove è necessario standardizzare i linguaggi

Page 92: Introduzione all’informatica

Schemi di flusso

Sono per così dire tipologie “base” di grafi che possono essere presenti all’interno di un diagramma di flusso

Ne esistono tre di basilare importanza: Sequenza Selezione Iterazione

Page 93: Introduzione all’informatica

Sequenza

Una successione lineare di azioni e/o di operazioni di I/O

Azione 1

Azione 2

Azione 3

Azione 4

Ingresso

Uscita

Page 94: Introduzione all’informatica

Selezione (1)

Un blocco di controllo permette di decidere se eseguire o no una certa parte del diagramma

E’ vero che...?

Azione 1

Azione 2

Azione 3

Azione 4

Azione 5

No

Ingresso

Uscita

Page 95: Introduzione all’informatica

Selezione (2)

Un blocco di controllo permette di decidere se saltare una certa parte del diagramma

E’ vero che...?

Azione 4

Azione 5

No

Ingresso

Uscita

Page 96: Introduzione all’informatica

Iterazione

Un certo insieme di operazioni viene eseguito più volte; un blocco di controllo permette di decidere quando terminare il ciclo

Il ciclo è

finito?

Azione 1

Azione 2

No

Ingresso

Uscita

Page 97: Introduzione all’informatica

Considerazione fondamentale Tutte e tre gli schemi (sequenza,

selezione e iterazione) hanno un unico punto di ingresso e un unico punto di uscita

Quindi si comportano come blocchi strutturati

In un diagramma a blocchi possiamo inserire box che rappresentano interi schemi, non soltanto operazioni “elementari”

Page 98: Introduzione all’informatica

Teorema di Bohm - Jacopini

Qualsiasi diagramma di flusso può essere trasformato in un diagramma equivalente che utilizza soltanto sequenze, selezioni e iterazioni Due diagrammi a blocchi sono “equivalenti”

se conducono agli stessi risultati partendo dagli stessi dati di input

Questo teorema permette la costruzione di diagrammi a blocchi strutturati

Page 99: Introduzione all’informatica

Diagrammi strutturati

Strutturare uno schema a blocchi significa individuare dei “macro blocchi”, che a loro volta potranno essere sviluppati come “blocchi di dettaglio”

Il processo è iterativo

Page 100: Introduzione all’informatica

Esempio: ordinare una sequenza di numeri

Immaginiamo di fornire all’algoritmo un certo insieme di valori numerici

Vogliamo che l’algoritmo generi una lista in cui i valori forniti compaiono in ordine (dal più piccolo al più grande) (NB: lo sviluppo completo di questo

esempio va oltre gli scopi del seminario)

Page 101: Introduzione all’informatica

L’algoritmo “in grande”

Leggi un

numero

Fine

I numeri sono finiti?

Metti in ordine il numero che hai letto

Inizio

No

NB: vedete qualche problema?

Page 102: Introduzione all’informatica

Come si fa a “mettere in ordine”

Seleziona il primo elemento della lista

(X)

Input < X?

Seleziona il prossimo elemento

della lista (X)

Inserisci Input al posto di X

No

NB: vedete qualche problema?

Page 103: Introduzione all’informatica

Nota

Anche i blocchi del “sotto – algoritmo” per mettere in ordine non sono operazioni elementari

Essi dovranno essere opportunamente sviluppati in algoritmi di dettaglio

Page 104: Introduzione all’informatica

Problemi

Algoritmo “in grande”: Come si fa a capire che i numeri sono finiti? L’algoritmo deve prevedere che venga

fornito un numero, oppure “fine”!

Algoritmo “per mettere in ordine” Cosa succede se la lista è vuota? L’operazione “seleziona il primo elemento

della lista” fallisce!

Page 105: Introduzione all’informatica

Esercizi (1)

Costruire lo schema di un algoritmo che trovi i numeri primi compresi tra 2 e 100 (crivello di Eratostene) Scrivo i numeri da 2 a 100 Marco il primo numero non cancellato

(all’inizio, 2) Cancello tutti i multipli del numero che ho

appena marcato Ripeto l’operazione, finché tutti i numeri

sono stati marcati o cancellati

Page 106: Introduzione all’informatica

Esercizi (2)

Costruire lo schema di un algoritmo che trovi il MCD tra due interi a e b, a >= b (algoritmo di Euclide) Se b = 0, a è il MCD Se b <> 0:

Divido a/b Se il resto (r) = 0, b è il MCD Altrimenti sostituisco b al posto di a, e r al

posto di b, poi ripeto la divisione

Page 107: Introduzione all’informatica

Un’alternativa agli schemi a blocchi

Nel mondo della programmazione si tende a non usare più gli schemi a blocchi Sono difficili da gestire dal punto di vista

grafico

Si usano piuttosto tecniche di “indentazione”

Page 108: Introduzione all’informatica

L’algoritmo di ordinamento (1) Inizio

Leggi un numero Ripeti

Metti in ordine il numero che hai letto Finché i numeri sono finiti

Fine

Page 109: Introduzione all’informatica

L’algoritmo di ordinamento (2) Inizio

Leggi un numero Ripeti

Seleziona il primo elemento della lista (X) Ripeti

Se Input >= X Seleziona il prossimo elemento della lista

Altrimenti Inserisci Input al posto di X

Finché non hai inserito Input Finché i numeri sono finiti

Fine

Page 110: Introduzione all’informatica

Procedimento “Top-down”

Dato un certo problema: Lo scomponiamo in “sotto problemi” Esaminiamo ciascuno dei sotto problemi e, se

necessario, lo scomponiamo a sua volta Fino al livello di dettaglio “corretto”

Domanda: qual è il livello di dettaglio corretto?

Il processo è “riduzionista” Cosa succede se il problema non si lascia

scomporre?

Page 111: Introduzione all’informatica

Computabilità

Sorge spontanea la seguente domanda: Dato un qualsiasi problema, esiste sempre un

algoritmo che lo “risolve”?

Risposta: No

L’esempio più famoso: Costruire un algoritmo che sia in grado di

decidere se un altro algoritmo ha termine oppure no

Page 112: Introduzione all’informatica

Complessità algoritmica

Un algoritmo in cui il numero di passi cresce in modo polinomiale in funzione dell’ampiezza dell’input è detto di classe P

Ci sono problemi per cui non è noto se esista un algoritmo di classe P che li risolve; sono detti di classe NP Per chi volesse provarci: c’è un premio di un

milione di dollari per chi riuscirà a dimostrare che le classi P e NP sono identiche (tutti i problemi computabili sono di classe P) oppure no.

Page 113: Introduzione all’informatica

Una domanda difficile

Il nostro cervello funziona in modo algoritmico? Se sì, i processi mentali sono deterministici Dunque il “libero arbitrio” non esiste

Page 114: Introduzione all’informatica

Un’altra domanda difficile

Computer sufficientemente evoluti potranno diventare intelligenti?

Page 115: Introduzione all’informatica

Indice

Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web

Page 116: Introduzione all’informatica

Due computer sono in rete se sono connessi tra loro (in qualche modo) in modo tale che possano scambiarsi dati

Le esigenze sono molteplici: Aumentare (di fatto) le capacità di calcolo Scambiare informazioni in un certo contesto lavorativo Centralizzare le informazioni (es, un database, un

insieme di documenti “master”…) Avere accesso alle stesse periferiche da diversi

computer (ad es. stampanti) …

Le reti di computer

Page 117: Introduzione all’informatica

Il concetto di rete di computer nasce sostanzialmente all’inizio degli anni ’60

Gli sviluppi tecnologici dell’epoca permettono finalmente di realizzare un accesso interattivo ai computer attraverso terminali

In precedenza i computer funzionavano sostanzialmente in modalità batch L’input avveniva attraverso schede perforate L’output era costituito da stampe (nella maggior parte

dei casi…)

Cenni storici (1)

Page 118: Introduzione all’informatica

Le reti coprono bisogni di base delle aziende e delle strutture pubbliche

Rappresentano un elemento fondamentale (a volte determinante) in moltissime situazioni

Per questo motivo, dagli anni ’60 ad oggi la loro importanza è cresciuta senza soluzione di continuità

Cenni storici (2)

Page 119: Introduzione all’informatica

Tipologie di reti

LAN = Local Area Network Rete interna a una struttura (azienda, ente

pubblico, università, aula universitaria…) di solito localizzata nello spazio

WAN = Wide Area Network Rete interna a una struttura, ma distribuita

su aree geografiche vaste (es: multinazionali, reti intercontinentali)

Page 120: Introduzione all’informatica

Server e client

Server = computer “direttore d’orchestra”, con a bordo il sistema operativo di rete, che coordina tutte le attività (distribuzione di dati, risorse condivise…)

Client: computer connesso alla rete, che utilizza il server per le operazioni necessarie

Da non confondere con: architettura client-server Un componente software gira sul server (componente

server), un altro gira sui client (componente client)

Page 121: Introduzione all’informatica

Per connettere tra loro due computer (ma anche due telefoni) occorre che ci sia un mezzo fisico che trasporta i segnali Cavi elettrici Cavi ottici (fibra ottica) Onde elettromagnetiche

Il collegamento può essere effettuato anche con mezzi “misti”

Esempio: con Fastweb mi connetto al sito della NASA, che è su un server negli Stati Uniti Dal mio computer alla centralina Fastweb: cavo Dalla centralina Fastweb al server Fastweb: fibra ottica Dal server Fastweb al server della NASA: satellite

Connessioni fisiche

Page 122: Introduzione all’informatica

Comunicazione attraverso messaggi

Ready to get my data?

Yes...

Protocolli di comunicazione

Page 123: Introduzione all’informatica

Protocolli

Un protocollo è un insieme di regole che stabiliscono il formato dei messaggi che i computer si scambiano in rete

L’uso dei protocolli rende la comunicazione indipendente dall’hardware (posso connettere un telefonino e un Cray)

Domanda: Il mondo Internet è dominato da un numero impressionante di

protocolli diversi: TCP/IP, POP, IMAP, SMTP, HTTP, HTTPS, WAP,... Perché sono necessari tutti questi protocolli? Non ne basterebbe

uno?

Page 124: Introduzione all’informatica

Standardizzazione dei protocolli Fino alla fine degli anni

‘70 la standardizzazione era stata definita solo in parte

Nel 1978 è stato definito lo standard ISO/OSI (o semplicemente OSI)

Non è un protocollo, ma una “regola delle regole” a cui i protocolli devono attenersi

Page 125: Introduzione all’informatica

Lo standard OSI (Open Systems Interconnection)

E’ fatto a “strati” o “livelli” (layer) – In gergo si parla di “stack OSI”

Ogni “strato” si occupa di un particolare “aspetto” della comunicazione

Esempio: livello base (livello “fisico”) tensioni scelte per rappresentare le cifre binarie 0 e 1 durata del segnale elettrico che identifica un bit possibilità che il segnale sia bidirezionale eccetera

Page 126: Introduzione all’informatica

Un esempio – per capire (1)

Gestione di una lettera (tradizionale): Scrivo la lettera La metto in una busta e la affranco La metto nella cassetta postale L’ufficio postale la prende e legge l’indirizzo Tutte le lettere per la stessa destinazione

vengono messe nello stesso sacco Ogni sacco viene mandato a destinazione L’ufficio postale di destinazione apre tutti i

sacchi Il postino distribuisce le lettere

Page 127: Introduzione all’informatica

Un esempio – per capire (2)

Layer “mittente”

Layer “ufficio postale”

Layer “trasporto”

Layer “arrivo a destinazione”

Page 128: Introduzione all’informatica

La posta si organizza meglio...

Layer “mittente”

Layer “ufficio postale”

Layer “trasporto”

Layer “arrivo a destinazione”

Page 129: Introduzione all’informatica

Internet

Nata essenzialmente per esigenze militari (Arpanet) Un requisito specifico era quello di creare una rete

priva di un “centro” attaccabile dal nemico

E’ il risultato dell’aggregazione di reti diverse, talvolta anche tecnicamente differenti.

Piccole reti locali (LAN) sono collegate a reti metropolitane e territoriali (WAN) che a loro volta sono collegate alle dorsali (Backbone), che trasportano i dati per il mondo intero.

129

Page 130: Introduzione all’informatica

130

La rete Arpanet

1969 1971

1973 1975

Page 131: Introduzione all’informatica

131

Internet - Paesi connessi (1997)

Page 132: Introduzione all’informatica

Problemi fondamentali

Fare in modo che la trasmissione dei dati non debba ricominciare dall’inizio se “cade la linea”

Fare in modo che ci siano più percorsi che connettono due computer

Fare in modo che la “direzione dell’orchestra” non sia affidata a un unico computer

Come si fa a indirizzare i dati verso un particolare computer della rete?

132

Page 133: Introduzione all’informatica

Commutazione

Il problema dell’indirizzamento accomuna Internet e le centrali telefoniche

In generale, se ho N “utenti” dovrei tirare un numero di “fili” pari al numero degli utenti per permettere a tutti di parlare con tutti In realtà i fili crescono con il quadrato del numero

degli utenti… Numero di fili = N x (N-1) / 2

Tecniche di commutazione

133

Page 134: Introduzione all’informatica

Telefonia - Commutazione di circuito134

In passato era realizzata via hardware

Le cifre del numero di telefono individuano insiemi di utenti sempre più piccoli

La struttura della rete di commutazione è ad albero

Invece che col quadrato di N, il numero di fili cresce (circa) con N

Page 135: Introduzione all’informatica

Internet - Commutazione di pacchetto135

Il file viene suddiviso in componenti di circa 1 Kb (pacchetti)

Ad ogni pacchetto viene associata un intestazione che specifica il suo numero d’ordine

Ad ogni pacchetto viene associato l’”indirizzo” del mittente e del destinatario

Page 136: Introduzione all’informatica

Protocollo di base: TCP/IP136

TCP (Transmission Control Protocol) corrisponde al layer 4 dell’OSI: Costruzione dei pacchetti, trasmissione/ricezione, ricostruzione dei dati

IP (Internet Protocol) corrisponde al layer 3 dell’OSI: Indirizzamento (Routing)

I pacchetti vengono immessi nella rete come bottiglie nell’oceano

Come funziona questo “miracolo”?

Page 137: Introduzione all’informatica

L’Internet Protocol (IP)137

Nel momento in cui un pacchetto arriva a un certo server, esso si domanda se il destinatario fa parte della sua stessa famiglia

Se la risposta è positiva, manda il messaggio a qualsiasi server che faccia parte della sottofamiglia del destinatario

Altrimenti lo manda a qualsiasi server che faccia parte della famiglia principale

Page 138: Introduzione all’informatica

138

Indirizzi IP (concetto base)

Esempio di indirizzo IP di classe C

193.205.20.70

Subnet (identificativo della rete)

Computer di destinazione

Page 139: Introduzione all’informatica

IPv6

Quella che abbiamo visto era la struttura di un indirizzo IP dei primordi della rete (cosiddetto Ipv4)

Essa permette di disporre al massimo di 232 indirizzi diversi (approssimativamente 4,3 miliardi) Non bastano più!

Si sta passando a una gestione degli indirizzi a 16 byte (IPv6) Permette di indirizzare 2128 = 3,4x1038 (circa) nodi diversi

Page 140: Introduzione all’informatica

140

Una rete a commutazione di pacchetto

Sorgente Router 1

Router 2

Router 3

Router 4

Router 5

Router 6

DestinazioneRouter 7

Page 141: Introduzione all’informatica

141

La realtà: Internet

Page 142: Introduzione all’informatica

Problemi fondamentali risolti

142

Fare in modo che la trasmissione dei dati non debba ricominciare dall’inizio se “cade la linea” Non esiste una “linea” che possa cadere. Se qualche pacchetto

viene perso, il sistema ne chiede nuovamente l’invio

Fare in modo che ci siano più percorsi che connettono due computer Qualsiasi computer della rete è in grado di indirizzare i

pacchetti

Fare in modo che la “direzione dell’orchestra” non sia affidata a un unico computer Non c’è più un direttore d’orchestra; il sistema funziona “per

conto suo”. NB: è un concetto che riprenderemo

Page 143: Introduzione all’informatica

DNS (Domain Name System)

143

Gli indirizzi IP sono mappati in apposite tabelle di conversione

Le tabelle sono note a tutti i server sul backbone

Organizzazione gerarchica: SERVER.DOMAIN.TLD (“top level domain”) NB: “a rovescio” rispetto all’indirizzo IP (la famiglia

più grande è a destra)

Esempio www.unimib.it

Page 144: Introduzione all’informatica

Uniform Resource Locator (URL) (1)

144

L’individuazione del server non è l’unico problema legato all’accesso Un server di solito contiene molti dati che un

utente di Internet vorrebbe poter scaricare

Uniform Resource Locator (URL) risorsa = qualsiasi cosa sia raggiungibile

attraverso Internet

Un URL specifica con precisione sia il server, sia la risorsa in questione

Page 145: Introduzione all’informatica

Uniform Resource Locator (URL) (2)

145

E’ una stringa di caratteri strutturata nel seguente modo: Protocollo da usare (opzionalmente) Nome e password dell’utente che richiede

l’accesso Nome del server Percorso del file da raggiungere Eventualmente dati relativi alla query da eseguire.

Esempio: http://www.psicologia.unimib.it/01_iscriversi/index.php http è il protocollo www.psicologia.unimib.it è il nome del server nel DNS index.php è il file che contiene i dati da visualizzare nel server

specificato.

Page 146: Introduzione all’informatica

Il collegamento a Internet146

Per connettersi a Internet è necessario stipulare un contratto con un Internet Service Provider (ISP)

Il contratto può essere gratuito o oneroso a seconda delle modalità del servizio offerto dal provider

Il costo della linea che connette l’utente con il provider può essere fisso (tariffa “flat”) o variabile (scatti telefonici) ed è comunque indipendente dalla localizzazione geografica del server a cui ci si vuole collegare

Page 147: Introduzione all’informatica

Connessione a Internet147

LANLAN

locallocal “modem” “modem”

routerrouter

LANLAN

locallocal “modem” “modem”

routerrouterI SP I SP

networknetwork

I nternetI nternetServiceServiceProviderProvider

I SP I SP networknetwork

I nternetI nternetServiceServiceProviderProvider

I SP I SP networknetwork

I nternetI nternetServiceServiceProviderProvider

firewall

firewall: software per filtrare pacchetti IP e/o indirizzi

Page 148: Introduzione all’informatica

Servizi di rete148

Una rete è utile in quanto offre ai suoi utenti un certo numero di servizi

Si intende, in generale, la possibilità di accedere a un certo ambito applicativo

Esempio: in una rete aziendale: Accesso a stampanti di rete Accesso a cartelle condivise Intranet …

Page 149: Introduzione all’informatica

I servizi di Internet - Classificazione

149

Non è né semplice né univoca

Si possono classificare sulla base dei protocolli richiesti World Wide Web (ce ne occuperemo in seguito) Posta elettronica Trasferimento file Peer-to-peer Telefonia e videotelefonia Altri (ad esempio, Second Life…)

Page 150: Introduzione all’informatica

Posta elettronica150

Richiede protocolli dedicati POP, IMAP per la ricezione SMTP per la trasmissione

Dal punto di vista mediatico non è semplicemente un’estensione dell’ordinaria posta Velocità istantanea del servizio Gratuita (a parte il costo dell’ISP)

Page 151: Introduzione all’informatica

Posta elettronica vs. posta tradizionale151

Uso dei campi CC e CCN “Copia conoscenza” e “Copia conoscenza

nascosta”) Uso di mailing list Priorità dei messaggi Return receipt Allegati

Page 152: Introduzione all’informatica

Trasmissione e ricezione della posta

152

Programmi specifici In passato il “best seller” era Eudora Oggi domina Outlook Tipicamente permettono di gestire InBox, OutBox, Box

per messaggi salvati ma non ancora inviati, cartelle (e sottocartelle) in cui organizzare i messaggi ricevuti

Servizi accessibili dal browser (Web Mail) Webmail Gmail Hotmail …

Page 153: Introduzione all’informatica

Problemi della posta elettronica: virus153

Gli allegati di posta sono stati in passato i canali principali di diffusione

Oggi non è più vero E’ possibile contrarre virus anche

semplicemente visitando un sito infetto

Come difendersi? Antivirus In ogni caso: navigare con prudenza

Page 154: Introduzione all’informatica

Problemi della posta elettronica: Netiquette

154

Significa “regole di buona educazione in rete”

In generale: evitare qualsiasi comportamento che possa arrecare danno o disturbo ai vostri corrispondenti Inserire sempre il titolo delle mail Evitare di trasferire 20 gigabyte di allegati, o per lo

meno avvisare chi deve ricevere il messaggio! Evitare l’abuso dei messaggi di alta priorità In linea di principio, rispondere alle mail ricevute …

Page 155: Introduzione all’informatica

Problemi della posta elettronica: spam155

Con questo termine si intende qualunque messaggio non desiderato

Si va dalla pubblicità a vere e proprie truffe

Un esempio tipico: ricevete dalla vostra banca (apparentemente) un messaggio in cui vi si chiede di andare su un certo sito e immettere i vostri dati

Page 156: Introduzione all’informatica

Trasferimento file (FTP)156

FTP = File Transfer Protocol

Permette di realizzare attraverso Internet la connessione diretta a un server

Fornisce al’utente la visibilità di cartelle (e sotto cartelle) condivise

Accesso attraverso browser o programmi dedicati (es WS_FTP)

Page 157: Introduzione all’informatica

FTP: vantaggi157

Permette di centralizzare documenti su server rendendoli accessibili da qualsiasi postazione nel mondo Esempio: personale aziendale in missione

Semplice da usare, non richiede competenze tecniche per la connessione

Veloce, non ci sono limiti di spazio

Page 158: Introduzione all’informatica

Peer-to-peer (1)158

Tutti i nodi sono “pari”, e fanno da client e da server

File sharing

Esempi: μTorrent, eMule

Sviluppi possibili: diffusione di film e programmi televisivi (in parte già realizzato)

Page 159: Introduzione all’informatica

Peer-to-peer (2)159

Come si fa a sapere dove sono i dati? Ci sono due soluzioni

1. Alcuni computer della rete violano la regola del peer-to-peer e di fatto fanno da server Tali computer includono database che associano le

risorse disponibili ai nodi Nel momento in cui si effettua il download, si entra

effettivamente in modalità peer-to-peer

2. Tecnica torrent: i file scaricati sono indici che specificano quali sono i nodi della rete che contengono determinate risorse.

Page 160: Introduzione all’informatica

Ascesa e caduta del peer-to-peer?

160

Il traffico P2P è cresciuto con continuità fino al 2009, poi ha mostrato segni evidenti di flessione

Ad esempio, una statistica del 2006 sosteneva che i volumi di dati scambiati in modalità P2P fossero più della metà di tutto il traffico Internet (Web + posta + FTP +…)

Un’altra statistica (dell'osservatorio di ricerca Nielsen): gli utenti peer-to-peer italiani sono passati dai 6,7 milioni di luglio 2009 ai 4,9 milioni di luglio 2010

Page 161: Introduzione all’informatica

P2P: Perché è in declino?161

Ci sono almeno due motivi La pressione esercitata dalle major, che

ovviamente temono il dilagare del fenomeno, e spingono perché gli stati si dotino di soluzioni legali per arginarlo

La crescente importanza di altri canali per la diffusione di musica e filmati; in particolare lo streaming su Web

La gara tra P2P e streaming può essere vista come una competizione “genetica” L’utenza esercita una “pressione selettiva”;

sembra evidente che la modalità streaming goda di un piccolo vantaggio…

Page 162: Introduzione all’informatica

Telefono e videoconferenza via Internet162

Usano prevalentemente il protocollo VoIP (Voice over IP)

Esempi MSN Messenger (oggi Windows Live

Messenger di Microsoft) Skype Yahoo Messenger

Page 163: Introduzione all’informatica

VoIP – Servizi tipici163

Telefonate, anche in conferenza Chiamate a cellulari e rete fissa Trasferimenti di chiamate, segreteria telefonica…

Video chiamate e video conferenze

Chat, SMS, MMS

Condivisione del desktop tra più utenti

Gestione di rubriche

Ricerca di utenti

Page 164: Introduzione all’informatica

VoIP: vantaggi164

Costo bassissimo o addirittura nullo per l’utente Esempio: il costo della telefonata non

dipende più dalla distanza; telefonare a Milano o a Sidney ha gli stessi costi

Non richiede un’infrastruttura dedicata diversa da quella già fornita dalla rete Internet Quindi il costo è bassissimo anche per il

provider!

Page 165: Introduzione all’informatica

Telefonia fissa165

Prima dell’era del computer: centrali elettromeccaniche

Dall’avvento del computer: centrali completamente gestite via software Commutazione Istradamento Billing (tariffazione) Manutenzione ….

Page 166: Introduzione all’informatica

Telefonia fissa - Servizi166

Anche il telefono fisso è in evoluzione

Non si tratta più soltanto di supportare una chiamata, ma di offrire agli utenti una miriade di servizi aggiuntivi, impensabili prima dell’era dell’informatica Follow me Visualizzazione del chiamante su display Segreteria telefonica Spese mensili …

Page 167: Introduzione all’informatica

Telefonia mobile167

Sostanziale la ricaduta tecnologica a seguito degli sviluppi dell’hw e del sw

Le generazioni dei telefoni cellulari: Inizio anni ‘80: TACS (1G) Inizio anni ‘90: GSM (2G) Fine anni ‘90: UMTS (3G) 2012: The Next Thing (4G)

Page 168: Introduzione all’informatica

Come funziona168

Il terminale (telefonino) è una radio ricetrasmittente

Si connette con la più vicina antenna del sistema mobile

L’hw e il sw associati all’antenna si occupano di istradare la chiamata

Opportune interfacce connettono il sistema alle centrali della rete fissa e alla rete Internet

Page 169: Introduzione all’informatica

Le celle del sistema

Il territorio viene virtualmente suddiviso in celle (da cui “telefonia cellulare”)

Al centro di ciascuna cella si trova un’antenna

Il sistema si occupa automaticamente di connettere il terminale mobile all’antenna più vicina (handover)

Page 170: Introduzione all’informatica

170

Un esempio: la rete GSM

Page 171: Introduzione all’informatica

1G: TACS

Sta per Total Access Communication System

Introdotto negli Stati Uniti nel 1979 e in Europa nel 1981

Permetteva soltanto la trasmissione della voce

Usava segnali analogici

Motorola DynaTac 8000x, 1983

Peso = 800 g, lunghezza = 25 cm, costo = 3895 dollari

Page 172: Introduzione all’informatica

2G: GSM172

E’ tuttora in uso

Tecnologia digitale

Ha introdotto gli SMS (Short Message System), che più tardi si sono evoluti in MMS (Multimedia Messaging Service)

Dall’introduzione del protocollo WAP ha permesso la connessione a Internet

Page 173: Introduzione all’informatica

3G: UMTS173

E’ lo standard più avanzato disponibile oggi

La copertura non è ancora capillare come quella del GSM (che di fatto non è ancora morto)

Permette videochiamate, connessione a Internet, invio e ricezione di immagini, filmati ecc.

Page 174: Introduzione all’informatica

4G: il futuro (?)174

Invio e ricezione di dati su banda larga

Possibilità di ricevere trasmissioni in streaming di alta qualità

Attualmente attivo in Italia solo in alcune città

Page 175: Introduzione all’informatica

Gli SMS175

La nascita del sistema SMS è curiosa e interessante

Gli SMS vennero pensati in origine per permettere la trasmissione di brevi messaggi ad uso e consumo del personale che gestiva il sistema

A qualcuno venne in mente di renderli accessibili anche agli utenti finali

Magari se ne faranno qualcosa, pensarono… Volumi totali: nel 2000, 17 miliardi di messaggi

worldwide, nel 2004 sono diventati 500 miliardi

Page 176: Introduzione all’informatica

L’evoluzione dei terminali176

Ha avuto un’importanza non minore di quella delle reti di telefonia mobile

Già dal TACS al GSM si era passati da oggetti scomodi e ingombranti a telefonini che potevano essere messi nel taschino della camicia

Il passo successivo è avvenuto all’insegna dellaCONVERGENZA

di tecnologie diverse

Page 177: Introduzione all’informatica

Computer palmari177

Cioè computer che stanno nel palmo della mano

Detti anche PDA (Personal Digital Assistant)

Primo esempio di palmare: MessagePad di Apple (1993) Scarso successo commerciale

Concepito come “computer da viaggio”, ad uso dei manager Tra le funzionalità fondamentali, la possibilità di caricare e

scaricare dati da altri computer attraverso porte infrarosse e Bluetooth

Page 178: Introduzione all’informatica

Convergenza178

Telefonia mobile + Palmare = Smartphone

E’ un PDA con capacità telefoniche, oppure un computer con telefono incorporato? Entrambe le cose

Caratteristica fondamentale: possibilità di installare applicativi Che possono essere prodotti dalla casa madre o

da terze parti (dipende dagli smartphone)

Page 179: Introduzione all’informatica

Esempi179

Blackberry

Windows phone

iPhone di Apple Lanciato il 29 giugno 2007 Il 10 settembre dello stesso anno la Apple

annunciò di avere venduto un milione di esemplari

In versione 3G (2008), lo stesso risultato è stato raggiunto a tre giorni dal lancio!

Page 180: Introduzione all’informatica

iPhone

Può essere considerato oggi lo standard di questa classe di dispositivi

E’ al punto di convergenza tra telefonino, PDA e iPod (lettore musicale)

Page 181: Introduzione all’informatica

Le App181

Applicazioni (programmi) per smartphone Mobile App: installata sul terminale Web App: il software risiede su qualche

server della rete

Strumenti di accesso a Internet alternativi al browser

Page 182: Introduzione all’informatica

Geolocalizzazione

Sistema GSM (Global Positioning System) Realizzato attraverso una rete di satelliti

geostazionari I satelliti inviano segnali; il terminale li riceve

ed è in grado di effettuare una triangolazione

Navigatori

Forte integrazione con le App

Page 183: Introduzione all’informatica

Indice

Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web

Page 184: Introduzione all’informatica

Il World Wide Web184

Un immenso ipertesto multimediale, costruito con il supporto della rete Internet

E’stato inventato da Tim Berners Lee nel 1990, nell’ambito di un progetto di ricerca al CERN di Ginevra

Page 185: Introduzione all’informatica

Le fasi della storia del Web185

Page 186: Introduzione all’informatica

La “bolla” delle dot-com (1)186

Dot-com: un’azienda che realizza la maggior parte del suo business attraverso internet

Nella seconda metà degli anni ’90, a partire dallo straordinario lancio in borsa di Netscape, e per la grande disponibilità di venture capital, furono create numerosissime dot-com, con l’obiettivo di un rapido collocamento in borsa

Molte avevano un business model del tutto irrealistico

Ne seguì una “bolla” speculativa al Nasdaq, che culminò con il picco del 10 marzo 2000 (indice: 5132), e successivo crollo, con fallimenti a catena che paralizzarono le iniziative per diversi anni

Page 187: Introduzione all’informatica

La “bolla” delle dot-com (2) 187

Page 188: Introduzione all’informatica

La “bolla” delle dot-com (3)188

Vale la pena di esaminare quello che è successo più in dettaglio

Nelle due slide che seguono sono presentati dati “vecchi” (fino al 2002 – 2003) relativi al numero di siti Web e al numero di host internet (rete fisica)

Page 189: Introduzione all’informatica

Numero di siti web fino al 2003

189

La caduta (rispecchia il crollo del NASDAQ)

Page 190: Introduzione all’informatica

Numero di host Internet fino al 2002190

Dov’è il crollo?

Page 191: Introduzione all’informatica

La crescita del web nel mondo (1)

191

Crisi della new economy(2000 – 2003)

Boom dei blog (2007)

60% del totale

Page 192: Introduzione all’informatica

La crescita del web nel mondo (2)

192

Il grafico evidenzia come il Web abbia superato la bolla del 2000

La discesa è evidente, tuttavia il trend di crescita è ripreso

Page 193: Introduzione all’informatica

Evoluzione del Web193

A partire dagli inizi del secolo, l’importanza dei siti nati a scopo comunicativo è andata crescendo rispetto ai siti uno a molti

A partire dal 2004 è diventato evidente che la modalità comunicativa principale nel Web non era più di tipo uno a molti Si è cominciato a parlare di “Web 2.0” per

intendere l’insieme dei siti il cui scopo fondamentale era quello di realizzare un nuovo tipo di modalità comunicativa molti a molti

Page 194: Introduzione all’informatica

Web 2.0194

Il termine “Web 2.0” è stato lanciato dalla prima O’Reilly Media Web 2.0 Conference (Ottobre 2004)

Da allora ne sono state date molte definizioni

Esempio: Wikipedia Si tende ad indicare come Web 2.0 l'insieme di tutte quelle

applicazioni online che permettono uno spiccato livello di interazione sito-utente (blog, forum, chat, sistemi quali Wikipedia, Youtube, Facebook, Myspace, Gmail, ecc.)

(il Web 2.0 definisce sé stesso)

Page 195: Introduzione all’informatica

Web 2.0 vs 1.0195

Web 2.0: Non c’è una sostanziale differenza tecnologica

rispetto al Web 1.0 La differenza è di tipo sociale e culturale: una

rete di siti si è trasformata in una rete di utenti

Il Web 1.0 non è mai morto. In questo momento esistono siti di tipo 1.0 e di tipo 2.0 Ma non esistono quasi più siti puramente statici

di tipo 1.0

Page 196: Introduzione all’informatica

Aspetti fondamentali del 2.0196

1. Contenuti auto-prodotti La distinzione tra webmaster e utente diventa

evanescente

2. Siti come luoghi sociali Il sito è un mediatore per la comunicazione sociale La rete di siti si trasforma in una rete di utenti

3. Cloud computing Le applicazioni software diventano oggetti disponibili in

rete I dati non sono più (necessariamente) sul computer

dell’utente

Page 197: Introduzione all’informatica

Web 2.0: Cloud computing197

Insieme di tecnologie informatiche che permettono l'utilizzo di risorse hardware o software attraverso la rete.

Tre tipologie base: SaaS (Software as a Service) – Programmi accessibili

attraverso il Web PaaS (Platform as a Service) – Uso di piattaforme software

via Web IaaS (Infrastructure as a Service) - Utilizzo di risorse

hardware in remoto

L’IaaS è connesso all’aspetto del cosiddetto hosting

Page 198: Introduzione all’informatica

Web 2.0: Perpetual beta198

Terminologia: versione beta di un programma = versione non necessariamente del tutto stabile, rilasciata solo a un piccolo numero di utenti pilota per le “prove finali”

Nel contesto del cloud computing è nato il termine “perpetual beta” Le versioni in linea dei programmi vengono aggiornate

continuamente Per lo più sono gratis, o a costi bassissimi L’utente si rassegna al fatto che possano non essere

completamente funzionali Le case non si prendono responsabilità

Page 199: Introduzione all’informatica

Web 3.0199

Identificato da (quasi) tutti con il Web semantico

Metadati associati alle pagine Ricerche precise, non legate alla lingua Relazioni tra informazioni Strumenti automatici di esplorazione Link dinamici

Page 200: Introduzione all’informatica

Il W3C200

Sta per World Wide Web Consortium

Fondato da Tim Berners Lee nel 1994 al MIT

Include aziende, enti di ricerca, università ecc.

Ha (essenzialmente) lo scopo di definire gli standard nel mondo Web; tra gli altri ha definito URL HTTP HTML XML …

Page 201: Introduzione all’informatica

Protocollo HTTP201

Sta per HyperText Transfer Protocol

E’ stato definito per gli scopi specifici del Web Trasferimento di oggetti multimediali Trasferimento di documenti con collegamenti, dove gli

oggetti collegati possono risiedere su server diversi da quello connesso (tipicamente lo fanno)

Ha due componenti: una client (lato browser) per la gestione delle richieste, una lato server per l’invio dei dati relativi

Ha la caratteristica di chiudere la connessione al termine di ogni richiesta

Page 202: Introduzione all’informatica

Protocollo HTTP: un esempio

202

• browser: richiede un file

• server: invia il file e chiude la connessione

• browser: esamina il file, lo formatta, se trova dei tag relativi a oggetti diversi li richiede al server

• server: Invia i nuovi file e chiude la connessione

• browser: Visualizza gli oggetti (se ne conosce il formato, es. immagini gif)

attiva l’esecuzione di programmi speciali attiva i plug-in (se configurati), altrimenti chiede all’utente (es: dove salvare un file?)

Usa la cache (un’area speciale del disco) per accelerare la visualizzazione

Page 203: Introduzione all’informatica

HTTP è privo di stati203

Il fatto che la connessione venga chiusa dopo ogni richiesta rende la comunicazione molto semplice L’alternativa sarebbe l’uso di sessioni, usate spesso per

creare comunicazioni protette quando lo scambio di informazioni non può esaurirsi in un colpo solo

Il protocollo, tuttavia, non consente la definizione di stati Esempio: gestione del carrello, immissione dei dati relativi

alla carta di credito ecc.

A volte è un problema. Per risolverlo si usano varie tecniche Esempio: cookies

Page 204: Introduzione all’informatica

HTTP non è protetto204

I dati non sono crittati, l’informazione viaggia in chiaro Problema: hacker, trasferimento di informazioni

sensibili

E’ stato definito il protocollo HTTPS, molto simile all’HTTP con la differenza che l’informazione è crittata Usato per esempio nelle transizioni bancarie

Vedremo più avanti un uso più “fantasioso” di HTTPS…

Page 205: Introduzione all’informatica

HTML205

Sta per Hyper Text Markup Language

Un file HTML non è altro che un documento di testo che contiene oltre al testo della pagina anche le istruzioni (tag) relative alla formattazione del testo e degli altri oggetti multimediali presenti nel documento

E’ un esempio di “markup language”

Page 206: Introduzione all’informatica

Linguaggi di markup206

Ne sono stati definiti diversi

Il problema è quello di “standardizzare” le istruzioni di formato tra applicazioni diverse Un programma come Word usa internamente codici ASCII tra 1

e 31 per identificare operazioni di formato (corsivo, grassetto, stile paragrafo ecc.)

Ciascun programma usa i propri codici Anche per evitare “cloni”

In un ML, al posto dei codici vengono usate stringhe di testo con opportuni formati

Page 207: Introduzione all’informatica

Linguaggi di markup (esempi)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it" dir="ltr">

<head>

<title>Hypertext Transfer Protocol - Wikipedia</title>

HTML

RTF

\insrsid13663483 Il formato RTF}{\rtlch\fcs1 \af1 \ltrch\fcs0 \insrsid12680474

La sigla sta per }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid13663483\charrsid13663483 Rich Text Format}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13663483 . E\rquote un formato di testo con }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid13663483\charrsid13663483 tag}

Page 208: Introduzione all’informatica

Esempi di tag HTML208

(Non li dovete imparare!) … <address> Definisce un indirizzo <area> Definisce un’ area all’interno della mappa di un’ immagine <b> Definisce il testo in grassetto <base> Definisce una URL di base per tutti i link nella pagina <bdo> Definisce la direzione del testo (sinistra-destra o destra-

sinistra) <big> Definisce del testo in grande <blockquote> Definisce una citazione lunga <body> Definisce il corpo della pagina <br> Inserisce il ritorno a capo <button> Definisce un bottone …

NB: sono fissi e predefiniti!

Page 209: Introduzione all’informatica

Problemi che HTML non risolve

209

1. Possibilità di costruire un tag In moltissimi casi è utile o essenziale

2. Aggiornamento di grandi quantità di testo (es: giornali) Se devo modificare la prima pagina del Corriere

online, dovrei scriverla tutta in HTML. Vero che ci sono programmi che convertono automaticamente il testo, però…

3. Accesso a database (es: prenotazioni di voli)

Page 210: Introduzione all’informatica

1 – Il linguaggio XML (1)210

Sta per eXtensible Markup Language

E’ stato definito dal W3C nel 1998

Ammette la creazione di tag

Permette una descrizione analitica e modulare dei dati Questo lo rende utile non solo nel mondo Web

Fa parte della categoria dei cosiddetti metalinguaggi Linguaggi che permettono di definire altri linguaggi

Page 211: Introduzione all’informatica

1 – Il linguaggio XML (2) – Un esempio211

<?xml version="1.0" encoding="UTF-8"?>

<utenti>

<utente>

<nome>Luca</nome>

<cognome>Ruggero</cognome>

<indirizzo>Milano</indirizzo>

</utente>

<utente>

<nome>Max</nome>

<cognome>Rossi</cognome>

<indirizzo>Roma</indirizzo>

</utente>

</utenti>

Page 212: Introduzione all’informatica

1 – Il linguaggio XML (3)212

Come HTML utilizza puro testo (senza caratteri di controllo)

Descrive solo i dati. Come si fa a capire come gestirli? Ad esempio, il tag HTML <Title> definisce il titolo della

pagina. E’ standard dunque il browser “sa” come gestirlo. Ma come gestisco <utente> o <nome>?

Si usano file “di stile” (XLS o XLST) che permettono al programma (ad esempio al browser) di tradurre i tag negli “effetti” desiderati Questo permette di usare lo stesso file XML in contesti

completamente diversi!

Page 213: Introduzione all’informatica

1 – Il linguaggio XML (4)213

Page 214: Introduzione all’informatica

2 – Sistemi di Content Management (CMS) (1)

214

Riprendiamo l’esempio del giornale

Un giornale online ha degli spazi fissi nella pagina, che andranno riempiti con articoli, immagini ecc.

Gli spazi sono sempre dello stesso tipo, oppure afferiranno a un piccolo numero di tipologie diverse

Sarebbe utile separare la gestione degli spazi dal loro riempimento Cioè fare in modo che chi si occupa dei contenuti

debba solo scrivere i testi, scegliere le immagini ecc., senza doversi occupare di riportarli sulla pagina

Page 215: Introduzione all’informatica

2 – Sistemi di Content Management (CMS) (2)

215

Questo è esattamente quello che fa un Content Management System

Il programma è installato sul server di gestione delle informazioni

Ha (tipicamente) due componenti: Una permette la modifica dei contenuti L’altra la loro pubblicazione negli spazi

previsti, in un formato leggibile dal browser

Page 216: Introduzione all’informatica

2 – Sistemi di Content Management (CMS) (3)

216

Page 217: Introduzione all’informatica

2 – CSS217

Fogli di stile a cascata (Cascading Style Sheets)

Permettono di separare i contenuti dalla presentazione Semplificazione del codice Velocità di aggiornamento Estendibilità a palmari e smartphone

Page 218: Introduzione all’informatica

3 – Accesso a database (1)218

Facciamo un esempio: Vado su Amazon Cerco il film “Il corsaro dell’isola verde” in DVD Il motore di ricerca mi informa che è disponibile a 7,50 euro Lo aggiungo al “carrello”

Come fa il sistema a sapere che il film è disponibile?

Come fa a sapere cosa ho aggiunto al carrello? Sono informazioni che andrebbero gestite con un database

E’ essenziale disporre di strumenti che permettano di interfacciarsi con database Trasformare le richieste che vengono dal browser in query Trasformare i report di risposta in HTML o altro

Page 219: Introduzione all’informatica

3 – Accesso a database (2)219

Si usano varie tecniche:

ASP (Active Server Pages): pagine web che contengono liste di istruzioni che a loro volta permettono al server di generare dinamicamente contenuti HTML a fronte di richieste Tecnologia di casa Microsoft Le istruzioni sono scritte in opportuni linguaggi

Linguaggi di programmazione adatti allo scopo (es. Java) Non entro nel dettaglio

Page 220: Introduzione all’informatica

Web 2.0: Tecnologia220

Unica innovazione 2.0: tecniche di mash-up (miscuglio)

Semplice da realizzare, non richiede conoscenze informatiche approfondite

Un esempio di mashup è dato dall’unione di Google Maps e Flickr che consente di visualizzare su una mappa le foto relative alla zona selezionata

Page 221: Introduzione all’informatica

Mash-up: i Web feed221

Web feed: un generico insieme di contenuti informativi, espressi in un formato stabilito (di solito basato su XML) in modo che sia interscambiabile tra diverse applicazioni Tecnologia: Atom o RSS Feed

I feed vengono resi disponibili da distributori di contenuto (content sources, es. blog e siti web) e raccolti da aggregatori (o feed readers)

L’utente, dopo essersi abbonato (subscription) a un feed, riceve “automaticamente” gli aggiornamenti

Page 222: Introduzione all’informatica

Il browser

Programma (client) per esplorare il Web Rendering di pagine Basta digitare l’URL del sito nella barra dell’indirizzo Permette di seguire il link ipertestuali

I principali browser sono: MS Internet Explorer Google Chrome Mozilla Firefox Safari Opera

Page 223: Introduzione all’informatica

La prima guerra dei browser (1992 – 1998)

223

Browser = programma client per accedere al Web Remember: Client, in generale, è un programma in grado di

interrogare un server remoto e di presentare i risultati La disponibilità dei browser è quello che permise al Web di uscire dai

confini del CERN di Ginevra e di invadere il pianeta

Primo browser commerciale: Mosaic (1992)

Soppiantato a partire dal 1994 da Netscape Navigator

A partire dal 1998 Microsoft integra Explorer nel sistema operativo. Explorer non solo è gratis, ma è praticamente una scelta forzata degli

utenti Windows Questo ha scatenato una guerra legale. Nel 2000 Microsoft è stata

costretta a rendere “disinstallabile” Internet Explorer

Page 224: Introduzione all’informatica

La seconda guerra dei browser (2004 – oggi)

224

La quota di mercato di Internet Explorer è scesa: 2004: oltre il 90% 2005: 85% 2009: 65,5% 2011: 53,7%

In questo momento la competizione è durissima IE (tenendo conto di tutte le versioni) è tuttora in

testa per i PC Safari sembra essere in testa per i dispositivi mobili

Page 225: Introduzione all’informatica

Motori di ricerca

Secondo il sito Wolfram Alpha, in questo momento il numero stimato di siti web è 625,3 milioni Non è possibile raggiungere i contenuti che

interessano accedendo direttamente ai singoli siti; occorrono strumenti di ricerca

Il problema si è posto fin dalla prima diffusione del Web

Page 226: Introduzione all’informatica

Motore di ricerca: che cos’è

Un motore di ricerca è un algoritmo che permette di ottenere un elenco di pagine che contengono una certa chiave testuale di ricerca

Sul Web i motori di ricerca sono ospitati da appositi siti (es. Google)

Page 227: Introduzione all’informatica

Information Retrieval

I motori di ricerca si basano su una tecnologia detta Information Retrieval Permette di effettuare ricerche su grandi

archivi documentali Basata sulla costruzione di indici di parole

Due fasi diverse: Costruzione dell’indice Interrogazione

Page 228: Introduzione all’informatica

Motore di ricerca: come funziona Periodicamente viene attivato un programma

che esplora il Web, e tiene traccia delle parole che incontra Detto crawler (o robot, o bot)

Aggiorna un indice che risiede su un server gestito dal sito

Quando l’utente interroga l’indice, gli viene restituita la Search Engine Results Page (SERP)

Page 229: Introduzione all’informatica

L’aspetto critico di un motore di ricerca

Se la ricerca è generica, la SERP può includere molte migliaia di pagine

E’ fondamentale che le pagine “più interessanti” siano quelle mostrate per prime

Page 230: Introduzione all’informatica

Evoluzione dei motori di ricerca Prima del 1997 i motori di ricerca più

utilizzati erano: Yahoo Altavista Excite …

Dal 1997 è dominante Google Algoritmo PageRank

Page 231: Introduzione all’informatica

PageRank

A ogni pagina incontrata viene assegnato un “peso”

Esso dipende: Dal numero di pagine che connettono

quella pagina Dal loro peso

La SERP mostra i risultati in un ordine (rank) che dipende dai pesi

Page 232: Introduzione all’informatica

Il problema semantico

Le ricerche effettuate con i motori di ricerca sono testuali, non semantiche “Casa” è diverso da “case”, da “house” da

“maison” ecc. Il problema è stato in parte risolto grazie

all’uso di dizionari associati ai motori di ricerca

Un esempio: “Il capo della più grande software house del

mondo”: chi è?

Page 233: Introduzione all’informatica

Web e semantica

Il Web tassonomico è uno dei progetti associati al cosiddetto 3.0 Fortemente sponsorizzato da Tim Berners-

Lee Per il momento non realizzato

Una soluzione “nata dal basso” è quella dei tag

Page 234: Introduzione all’informatica

Tagging234

I tag sono parole chiave assegnate dagli utenti senza nessun controllo centrale Semantici Ridondanti

Il sistema dei tag non si pone il problema di essere coerente Tag ridondanti restano tali Tag “inutili” non vengono rimossi Non esistono meccanismi di rimappatura

Page 235: Introduzione all’informatica

Folksonomie235

Neologismo (= tassonomie definite dalla gente)

Non è un termine preciso Una tassonomia è uno schema

interpretativo della semantica Una folksonomia è solo un insieme di tag

privo di struttura

Page 236: Introduzione all’informatica

Tag cloud

Cioè “nuvola dei tag”

Rappresentazione visiva dei tag usati in un sito

La dimensione del font rappresenta l’importanza (la frequenza) di ciascun tag

http://tagcrowd.com/