SlideShare a Scribd company logo
1 of 236
INTRODUZIONE 
AL’INFORMATICA 
Seminario introduttivo - Settembre 2014
Indice 
 Che cos’è l’informatica 
 Storia del computer 
 Algoritmi 
 Reti di computer e Internet (cenni) 
 Il Web
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
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
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
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
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
Calcolo automatico 
 E’ solo un aspetto del problema 
 Tuttavia è importante, perché è stato il punto 
di inizio della rivoluzione informatica
Calcolare a macchina 
 C’è qualcosa nel 
calcolo di 
evidentemente 
meccanico 
 Sembra ragionevole 
poter costruire 
“macchine per 
calcolare”
Macchine per calcolare (1) 
 A – Due righelli 
permettono di fare le 
somme 
 B – Un pallottoliere 
permette di fare le 
somme
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
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...
Un esempio: la “Pascaline” 
 Inventata da Blaise 
Pascal (1623 – 
1662), più noto 
come filosofo e 
matematico 
 Permetteva di 
effettuare diverse 
operazioni 
aritmetiche e 
matematiche
Un altro esempio: il regolo 
calcolatore 
 E’ analogico: 
funziona come i 
righelli 
 Usando scale 
logaritmiche, 
permette di fare 
moltiplicazioni 
anziché addizioni
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
Che tipo di cifre? 
 Binarie 
BIT = Binary digIT
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 numero 
3452 
unità 
centinaia decine 
migliaia
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?
Sistema decimale 
19 
 Risposta: no. E’ possibile usare sistemi posizionali 
basati su qualsiasi numero maggiore di 1. Per 
capire perché, esaminiamo la seguente tabella 
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 
 Il numero 10 è detto base del sistema di 
numerazione.
Teoremi sui sistemi posizionali in base 
N 
20 
 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
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
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é?
Perché il sistema binario 
23 
 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
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
Algebra di Boole 
25 
 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
Connettivi 
 Operazioni possibili sui valori Vero e Falso
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)
Connettivi fondamentali 
28 
 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
Corrispondono a operazioni 
insiemistiche
Tavole di verità
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
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 => P2 
V V V 
V F F 
F V V 
F F V
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
Porte logiche 
Potete pensarle come insiemi di “interruttori”
Porte logiche e interruttori
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
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?
Digitalizzazione 
38 
 L’operazione di digitalizzazione corrisponde 
alla trasformazione di una certa informazione 
in numeri 
 E’ sempre possibile digitalizzare l’informazione 
 Facciamo qualche esempio
Digitalizzare il testo 
39 
 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)
Domande 
40 
 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é?
Digitalizzare il colore 
41 
 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
Digitalizzare le immagini 
42 
 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
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
Indice 
 Che cos’è l’informatica 
 Storia del computer 
 Algoritmi 
 Reti di computer e Internet (cenni) 
 Il Web
Charles Babbage (1791 – 1871) 
45 
 Anticipatore delle 
idee moderne sulle 
macchine 
calcolatrici 
 Progetta un 
calcolatore 
programmabile, che 
non riuscirà mai a 
realizzare
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)
Che cos’è un algoritmo 
47 
 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
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!
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?
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
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
File 
52 
 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)
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 
…
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
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…
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
Architettura di Von Neumann
Processore (CPU) 
 Esegue tutte le 
operazioni 
elementari (poche e 
semplici) 
 Velocità tipica per 
un computer 
commerciale di oggi: 
un miliardo di 
operazioni al 
secondo
Memoria RAM 
 Random Access 
Memory 
Indirizzabile 
direttamente dal 
processore 
 Veloce 
 Volatile
Memorie di massa 
 “Lente” 
 Grandi dimensioni 
 Permanenti
Periferiche di I/O 
 Tutto ciò che serve 
per immettere dati 
nel computer, e per 
ricevere i dati 
elaborati 
 Tastiera, mouse, 
stampante, scanner, 
plotter…
Transistor 
 E’ un “interruttore” 
controllato da un 
segnale elettrico 
 Primo prototipo 
funzionante: 1947 
 Ha permesso di 
realizzare le porte 
logiche
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
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/)
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
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
L’esplosione del computer 
67 
 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
La crescita del PC
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...
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”
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
Indice 
 Che cos’è l’informatica 
 Storia del computer 
 Algoritmi 
 Reti di computer e Internet (cenni) 
 Il Web
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.)
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 tazzina 
2. Riempila per tre volte di riso, in modo che sia 
colma 
3. Riempila per sette volte di brodo, in modo che 
sia colma 
4. Metti insieme acqua e riso in una pentola
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
Proprietà degli algoritmi 
 Non tutte le possibili sequenze di operazioni 
definiscono un algoritmo 
 Per essere definito correttamente, un 
algoritmo deve godere di alcune proprietà
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)
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 7 
2. Sposta la cifra successiva a sinistra di una 
posizione 
3. Ripeti il passo 2. fino al completamento delle 
cifre
Finitezza (2) 
1) 3,14159265358979323846... 
2) 3,1415926535899323846... 
3) 3,141592653589323846... 
 Dato che le cifre di π sono infinite, il passo 2) 
non può essere completato
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 tazzina 
2. Riempila per tre volte di riso, in modo che sia colma 
3. Riempila per sette volte di brodo, in modo che sia 
colma 
4. Se ti va, aggiungi sale
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
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?
Un esempio numerico (2) 
 Sommare due numeri 
1. Scrivi il primo numero 
2. Scrivi il secondo numero sotto il primo, in modo 
che le cifre siano allineate a destra 
3. Parti dalla prima cifra a destra 
4. 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
Un esempio numerico (3) 
7. Somma la cifra superiore con la cifra inferiore 
8. Somma al risultato quello che stai tenendo a 
mente 
9. Se il totale è minore di 10, scrivilo e tieni a 
mente 0 
10. altrimenti, scrivi la cifra delle unità del totale, e 
tieni a mente la cifra delle decine 
11. Torna al passo 5 
12. Se il numero che stai tenendo a mente è diverso 
da 0, scrivilo 
13. Fine
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
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?
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
Un esempio – Trovare il massimo tra a 
e b
Simbologia standard dei blocchi 
Inizio / Fine dell’algoritmo 
Azione 
Input o output (I/O) 
Controllo del flusso operativo
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
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
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
Sequenza 
 Una successione lineare di azioni e/o di 
operazioni di I/O 
Azione 1 
Azione 2 
Azione 3 
Azione 4 
Ingresso 
Uscita
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 
Sì 
Ingresso 
Uscita
Selezione (2) 
 Un blocco di controllo permette di decidere se 
saltare una certa parte del diagramma 
E’ vero 
che...? 
Azione 4 
Azione 5 
No 
Sì 
Ingresso 
Uscita
Iterazione 
 Un certo insieme di operazioni viene eseguito 
più volte; un blocco di controllo permette di 
decidere quando terminare il ciclo 
Azione 1 
Azione 2 
Il ciclo è 
finito? 
No 
Sì 
Ingresso 
Uscita
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”
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
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
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)
L’algoritmo “in grande” 
Leggi 
un 
numero 
I numeri 
sono 
finiti? 
Fine 
Metti in ordine il 
numero che hai letto 
Inizio 
No 
Sì 
NB: vedete qualche problema?
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 
Sì 
NB: vedete qualche problema?
Nota 
 Anche i blocchi del “sotto – algoritmo” per 
mettere in ordine non sono operazioni 
elementari 
 Essi dovranno essere opportunamente 
sviluppati in algoritmi di dettaglio
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!
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
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
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”
L’algoritmo di ordinamento (1) 
 Inizio 
Leggi un numero 
Ripeti 
 Metti in ordine il numero che hai letto 
Finché i numeri sono finiti 
 Fine
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
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?
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
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.
Una domanda difficile 
 Il nostro cervello funziona in modo 
algoritmico? 
Se sì, i processi mentali sono deterministici 
Dunque il “libero arbitrio” non esiste
Un’altra domanda difficile 
 Computer sufficientemente evoluti potranno 
diventare intelligenti?
Indice 
 Che cos’è l’informatica 
 Storia del computer 
 Algoritmi 
 Reti di computer e Internet (cenni) 
 Il Web
Le reti di computer 
 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) 
…
Cenni storici (1) 
 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 (2) 
 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à
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)
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)
Connessioni fisiche 
 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
Comunicazione attraverso 
messaggi 
Ready to get my data? 
Yes... 
 Protocolli di comunicazione
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?
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
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
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
Un esempio – per capire (2) 
Layer “mittente” 
Layer “ufficio postale” 
Layer “trasporto” 
Layer “arrivo a destinazione”
La posta si organizza meglio... 
Layer “mittente” 
Layer “ufficio postale” 
Layer “trasporto” 
Layer “arrivo a destinazione”
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. 
12 
9
La rete Arpanet 
130 
1969 1971 
1973 1975
Internet - Paesi connessi (1997) 
131
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? 
13 
2
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 
13 
3
Telefonia - Commutazione di 
circuito 13 
4 
 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
Internet - Commutazione di 
pacchetto 
135 
 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
Protocollo di base: TCP/IP 
136 
 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”?
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
Indirizzi IP (concetto base) 
138 
Esempio di indirizzo IP di classe C 
193.205.20.70 
Subnet (identificativo della rete) 
Computer di destinazione
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
Una rete a commutazione di 
pacchetto 
140 
Router 2 
Sorgente Router 1 
Router 4 
Router 3 
Router 5 
Router 7 Destinazione 
Router 6
La realtà: Internet 
141
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
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
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
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.
Il collegamento a Internet 
146 
 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
Connessione a Internet 
147 
LAN 
router 
local ““mmooddeemm”” 
ISP 
network 
Internet 
Service 
Provider 
f 
i 
r 
e 
w 
a 
l 
l 
firewall: software per filtrare pacchetti IP e/o indirizzi
Servizi di rete 
148 
 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 
…
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…)
Posta elettronica 
150 
 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)
Posta elettronica vs. posta 
tradizionale 
151 
 Uso dei campi CC e CCN 
“Copia conoscenza” e “Copia conoscenza 
nascosta”) 
 Uso di mailing list 
 Priorità dei messaggi 
 Return receipt 
 Allegati
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 
…
Problemi della posta elettronica: 
virus 
153 
 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
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 
…
Problemi della posta elettronica: 
spam 
155 
 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
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)
FTP: vantaggi 
157 
 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
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)
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.
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
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…
Telefono e videoconferenza via 
Internet 
162 
 Usano prevalentemente il protocollo VoIP 
(Voice over IP) 
 Esempi 
MSN Messenger (oggi Windows Live Messenger 
di Microsoft) 
Skype 
Yahoo Messenger
VoIP – Servizi tipici 
163 
 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
VoIP: vantaggi 
164 
 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!
Telefonia fissa 
165 
 Prima dell’era del computer: centrali 
elettromeccaniche 
 Dall’avvento del computer: centrali 
completamente gestite via software 
Commutazione 
Istradamento 
Billing (tariffazione) 
Manutenzione 
….
Telefonia fissa - Servizi 
166 
 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 
…
Telefonia mobile 
167 
 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)
Come funziona 
168 
 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
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)
Un esempio: la rete GSM 
170
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
2G: GSM 
172 
 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
3G: UMTS 
173 
 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.
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à
Gli SMS 
175 
 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
L’evoluzione dei terminali 
176 
 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 della 
CONVERGENZA 
 di tecnologie diverse
Computer palmari 
177 
 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
Convergenza 
178 
 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)
Esempi 
179 
 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!
iPhone 
 Può essere 
considerato oggi lo 
standard di questa 
classe di dispositivi 
 E’ al punto di 
convergenza tra 
telefonino, PDA e 
iPod (lettore 
musicale)
Le App 
181 
 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
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
Indice 
 Che cos’è l’informatica 
 Storia del computer 
 Algoritmi 
 Reti di computer e Internet (cenni) 
 Il Web
Il World Wide Web 
18 
4 
 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
Le fasi della storia del Web 
185
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
La “bolla” delle dot-com (2) 
187
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)
Numero di siti web fino al 2003 
189 
La caduta (rispecchia il crollo del NASDAQ)
Numero di host Internet fino al 
2002 
190 
Dov’è il crollo?
La crescita del web nel mondo 
(1) 
191 
Crisi della new 
economy 
(2000 – 2003) 
Boom dei blog 
(2007) 
60% del totale
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
Evoluzione del Web 
193 
 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
Web 2.0 
194 
 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)
Web 2.0 vs 1.0 
195 
 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
Aspetti fondamentali del 2.0 
196 
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
Web 2.0: Cloud computing 
197 
 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
Web 2.0: Perpetual beta 
198 
 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à
Web 3.0 
199 
 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
Il W3C 
200 
 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 
…
Protocollo HTTP 
201 
 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
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
HTTP è privo di stati 
203 
 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
HTTP non è protetto 
204 
 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…
HTML 
205 
 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”
Linguaggi di markup 
206 
 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
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}{rtlchfcs1 af1 
ltrchfcs0 insrsid12680474 
La sigla sta per }{rtlchfcs1 af0 ltrchfcs0 
iinsrsid13663483charrsid13663483 Rich Text 
Format}{rtlchfcs1 af0 ltrchfcs0 
insrsid13663483 . Erquote un formato di testo 
con }{rtlchfcs1 af0 ltrchfcs0 
binsrsid13663483charrsid13663483 tag}
Esempi di tag HTML 
208 
 (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!
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)
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
1 – Il linguaggio XML (2) – Un 
esempio 
211 
<?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>
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!
1 – Il linguaggio XML (4) 
213
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
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
2 – Sistemi di Content Management (CMS) 
(3) 
216
2 – CSS 
217 
 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
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
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
Web 2.0: Tecnologia 
220 
 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
Mash-up: i Web feed 
221 
 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
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
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
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
Motori di ricerca 
 Secondo il sito WolframAlpha, 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
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)
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
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)
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
Evoluzione dei motori di ricerca 
 Prima del 1997 i motori di ricerca più utilizzati 
erano: 
Yahoo 
Altavista 
Excite 
… 
 Dal 1997 è dominante Google 
Algoritmo PageRank
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
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 è?
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
Tagging 
234 
 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
Folksonomie 
235 
 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
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/

More Related Content

What's hot

What's hot (20)

La francia
La franciaLa francia
La francia
 
3°anno 2ud il libro sacro
3°anno 2ud il libro sacro3°anno 2ud il libro sacro
3°anno 2ud il libro sacro
 
15 - Anniversario Strage Di Capaci - Maggio 23
15 - Anniversario Strage Di Capaci - Maggio 2315 - Anniversario Strage Di Capaci - Maggio 23
15 - Anniversario Strage Di Capaci - Maggio 23
 
L’ospitalità nel mondo omerico
L’ospitalità nel mondo omerico L’ospitalità nel mondo omerico
L’ospitalità nel mondo omerico
 
07 - Giorno Del Ricordo - Febbraio 10
07 - Giorno Del Ricordo - Febbraio 1007 - Giorno Del Ricordo - Febbraio 10
07 - Giorno Del Ricordo - Febbraio 10
 
N.2) foibe cosa sono
N.2) foibe cosa sonoN.2) foibe cosa sono
N.2) foibe cosa sono
 
Masaccio
MasaccioMasaccio
Masaccio
 
Italia
ItaliaItalia
Italia
 
Orazio
OrazioOrazio
Orazio
 
REPUBBLICA CECA
REPUBBLICA CECAREPUBBLICA CECA
REPUBBLICA CECA
 
Parigi
ParigiParigi
Parigi
 
Giacomo leopardi
Giacomo leopardiGiacomo leopardi
Giacomo leopardi
 
Riassunto iliade
Riassunto iliadeRiassunto iliade
Riassunto iliade
 
Analisi del testo poetico
Analisi del testo poeticoAnalisi del testo poetico
Analisi del testo poetico
 
La crisi del medioevo la nascita degli stati nazionali
La crisi del medioevo   la nascita degli stati nazionaliLa crisi del medioevo   la nascita degli stati nazionali
La crisi del medioevo la nascita degli stati nazionali
 
Virgilio e l'eneide
Virgilio e l'eneideVirgilio e l'eneide
Virgilio e l'eneide
 
Luigi Pirandello
Luigi PirandelloLuigi Pirandello
Luigi Pirandello
 
Confrono tra le relazioni amorose nell’Iliade, nell’Odissea, nell’Eneide
 Confrono tra le relazioni amorose nell’Iliade, nell’Odissea, nell’Eneide Confrono tra le relazioni amorose nell’Iliade, nell’Odissea, nell’Eneide
Confrono tra le relazioni amorose nell’Iliade, nell’Odissea, nell’Eneide
 
La ricerca del principio
La ricerca del principioLa ricerca del principio
La ricerca del principio
 
Il codice di hammurabi 2
Il codice di hammurabi 2Il codice di hammurabi 2
Il codice di hammurabi 2
 

Similar to Introduzione all’informatica

Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteSTELITANO
 
ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneFabio Cantaro
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazionecruanyes
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Datiguest60e9511
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)STELITANO
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)STELITANO
 
Ecdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTEcdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTNino Lopez
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionaleSaraDiLuzio2
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informaticovapiegold
 
Lezione 9 (14 marzo 2012)
Lezione 9 (14 marzo 2012)Lezione 9 (14 marzo 2012)
Lezione 9 (14 marzo 2012)STELITANO
 

Similar to Introduzione all’informatica (20)

Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 
ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazione
 
Information technology
Information technologyInformation technology
Information technology
 
Information technology
Information technology Information technology
Information technology
 
Information technology
Information technologyInformation technology
Information technology
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
Analogicoedigitale
AnalogicoedigitaleAnalogicoedigitale
Analogicoedigitale
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazione
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Dati
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
 
Ecdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTEcdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICT
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionale
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informatico
 
Sistemi di numerazione
Sistemi di numerazioneSistemi di numerazione
Sistemi di numerazione
 
Lezione 9 (14 marzo 2012)
Lezione 9 (14 marzo 2012)Lezione 9 (14 marzo 2012)
Lezione 9 (14 marzo 2012)
 

Recently uploaded

case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024IISGiovanniVallePado
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxlorenzodemidio01
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxteccarellilorenzo
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfteccarellilorenzo
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxteccarellilorenzo
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticanico07fusco
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxsasaselvatico
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereMarco Chizzali
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxteccarellilorenzo
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...Nguyen Thanh Tu Collection
 

Recently uploaded (17)

case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 

Introduzione all’informatica

  • 1. INTRODUZIONE AL’INFORMATICA Seminario introduttivo - Settembre 2014
  • 2. Indice  Che cos’è l’informatica  Storia del computer  Algoritmi  Reti di computer e Internet (cenni)  Il Web
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Calcolo automatico  E’ solo un aspetto del problema  Tuttavia è importante, perché è stato il punto di inizio della rivoluzione informatica
  • 9. Calcolare a macchina  C’è qualcosa nel calcolo di evidentemente meccanico  Sembra ragionevole poter costruire “macchine per calcolare”
  • 10. Macchine per calcolare (1)  A – Due righelli permettono di fare le somme  B – Un pallottoliere permette di fare le somme
  • 11. 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
  • 12. 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...
  • 13. Un esempio: la “Pascaline”  Inventata da Blaise Pascal (1623 – 1662), più noto come filosofo e matematico  Permetteva di effettuare diverse operazioni aritmetiche e matematiche
  • 14. Un altro esempio: il regolo calcolatore  E’ analogico: funziona come i righelli  Usando scale logaritmiche, permette di fare moltiplicazioni anziché addizioni
  • 15. 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
  • 16. Che tipo di cifre?  Binarie BIT = Binary digIT
  • 17. 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 numero 3452 unità centinaia decine migliaia
  • 18. 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?
  • 19. Sistema decimale 19  Risposta: no. E’ possibile usare sistemi posizionali basati su qualsiasi numero maggiore di 1. Per capire perché, esaminiamo la seguente tabella 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  Il numero 10 è detto base del sistema di numerazione.
  • 20. Teoremi sui sistemi posizionali in base N 20  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
  • 21. 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
  • 22. 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é?
  • 23. Perché il sistema binario 23  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
  • 24. 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
  • 25. Algebra di Boole 25  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
  • 26. Connettivi  Operazioni possibili sui valori Vero e Falso
  • 27. 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)
  • 28. Connettivi fondamentali 28  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
  • 29. Corrispondono a operazioni insiemistiche
  • 31. 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
  • 32. 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 => P2 V V V V F F F V V F F V
  • 33. 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
  • 34. Porte logiche Potete pensarle come insiemi di “interruttori”
  • 35. Porte logiche e interruttori
  • 36. 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
  • 37. 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?
  • 38. Digitalizzazione 38  L’operazione di digitalizzazione corrisponde alla trasformazione di una certa informazione in numeri  E’ sempre possibile digitalizzare l’informazione  Facciamo qualche esempio
  • 39. Digitalizzare il testo 39  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)
  • 40. Domande 40  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é?
  • 41. Digitalizzare il colore 41  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
  • 42. Digitalizzare le immagini 42  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
  • 43. 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
  • 44. Indice  Che cos’è l’informatica  Storia del computer  Algoritmi  Reti di computer e Internet (cenni)  Il Web
  • 45. Charles Babbage (1791 – 1871) 45  Anticipatore delle idee moderne sulle macchine calcolatrici  Progetta un calcolatore programmabile, che non riuscirà mai a realizzare
  • 46. 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)
  • 47. Che cos’è un algoritmo 47  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
  • 48. 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!
  • 49. 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?
  • 50. 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
  • 51. 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
  • 52. File 52  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)
  • 53. 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 …
  • 54. 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
  • 55. 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…
  • 56. 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
  • 58. Processore (CPU)  Esegue tutte le operazioni elementari (poche e semplici)  Velocità tipica per un computer commerciale di oggi: un miliardo di operazioni al secondo
  • 59. Memoria RAM  Random Access Memory Indirizzabile direttamente dal processore  Veloce  Volatile
  • 60. Memorie di massa  “Lente”  Grandi dimensioni  Permanenti
  • 61. Periferiche di I/O  Tutto ciò che serve per immettere dati nel computer, e per ricevere i dati elaborati  Tastiera, mouse, stampante, scanner, plotter…
  • 62. Transistor  E’ un “interruttore” controllato da un segnale elettrico  Primo prototipo funzionante: 1947  Ha permesso di realizzare le porte logiche
  • 63. 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
  • 64. 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/)
  • 65. 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
  • 66. 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
  • 67. L’esplosione del computer 67  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
  • 69. 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...
  • 70. 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”
  • 71. 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
  • 72. Indice  Che cos’è l’informatica  Storia del computer  Algoritmi  Reti di computer e Internet (cenni)  Il Web
  • 73. 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.)
  • 74. 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 tazzina 2. Riempila per tre volte di riso, in modo che sia colma 3. Riempila per sette volte di brodo, in modo che sia colma 4. Metti insieme acqua e riso in una pentola
  • 75. 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
  • 76. Proprietà degli algoritmi  Non tutte le possibili sequenze di operazioni definiscono un algoritmo  Per essere definito correttamente, un algoritmo deve godere di alcune proprietà
  • 77. 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)
  • 78. 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 7 2. Sposta la cifra successiva a sinistra di una posizione 3. Ripeti il passo 2. fino al completamento delle cifre
  • 79. Finitezza (2) 1) 3,14159265358979323846... 2) 3,1415926535899323846... 3) 3,141592653589323846...  Dato che le cifre di π sono infinite, il passo 2) non può essere completato
  • 80. 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 tazzina 2. Riempila per tre volte di riso, in modo che sia colma 3. Riempila per sette volte di brodo, in modo che sia colma 4. Se ti va, aggiungi sale
  • 81. 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
  • 82. 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?
  • 83. Un esempio numerico (2)  Sommare due numeri 1. Scrivi il primo numero 2. Scrivi il secondo numero sotto il primo, in modo che le cifre siano allineate a destra 3. Parti dalla prima cifra a destra 4. 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
  • 84. Un esempio numerico (3) 7. Somma la cifra superiore con la cifra inferiore 8. Somma al risultato quello che stai tenendo a mente 9. Se il totale è minore di 10, scrivilo e tieni a mente 0 10. altrimenti, scrivi la cifra delle unità del totale, e tieni a mente la cifra delle decine 11. Torna al passo 5 12. Se il numero che stai tenendo a mente è diverso da 0, scrivilo 13. Fine
  • 85. 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
  • 86. 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?
  • 87. 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
  • 88. Un esempio – Trovare il massimo tra a e b
  • 89. Simbologia standard dei blocchi Inizio / Fine dell’algoritmo Azione Input o output (I/O) Controllo del flusso operativo
  • 90. 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
  • 91. 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
  • 92. 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
  • 93. Sequenza  Una successione lineare di azioni e/o di operazioni di I/O Azione 1 Azione 2 Azione 3 Azione 4 Ingresso Uscita
  • 94. 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 Sì Ingresso Uscita
  • 95. Selezione (2)  Un blocco di controllo permette di decidere se saltare una certa parte del diagramma E’ vero che...? Azione 4 Azione 5 No Sì Ingresso Uscita
  • 96. Iterazione  Un certo insieme di operazioni viene eseguito più volte; un blocco di controllo permette di decidere quando terminare il ciclo Azione 1 Azione 2 Il ciclo è finito? No Sì Ingresso Uscita
  • 97. 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”
  • 98. 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
  • 99. 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
  • 100. 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)
  • 101. L’algoritmo “in grande” Leggi un numero I numeri sono finiti? Fine Metti in ordine il numero che hai letto Inizio No Sì NB: vedete qualche problema?
  • 102. 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 Sì NB: vedete qualche problema?
  • 103. Nota  Anche i blocchi del “sotto – algoritmo” per mettere in ordine non sono operazioni elementari  Essi dovranno essere opportunamente sviluppati in algoritmi di dettaglio
  • 104. 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!
  • 105. 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
  • 106. 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
  • 107. 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”
  • 108. L’algoritmo di ordinamento (1)  Inizio Leggi un numero Ripeti  Metti in ordine il numero che hai letto Finché i numeri sono finiti  Fine
  • 109. 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
  • 110. 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?
  • 111. 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
  • 112. 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.
  • 113. Una domanda difficile  Il nostro cervello funziona in modo algoritmico? Se sì, i processi mentali sono deterministici Dunque il “libero arbitrio” non esiste
  • 114. Un’altra domanda difficile  Computer sufficientemente evoluti potranno diventare intelligenti?
  • 115. Indice  Che cos’è l’informatica  Storia del computer  Algoritmi  Reti di computer e Internet (cenni)  Il Web
  • 116. Le reti di computer  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) …
  • 117. Cenni storici (1)  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…)
  • 118. Cenni storici (2)  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à
  • 119. 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)
  • 120. 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)
  • 121. Connessioni fisiche  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
  • 122. Comunicazione attraverso messaggi Ready to get my data? Yes...  Protocolli di comunicazione
  • 123. 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?
  • 124. 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
  • 125. 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
  • 126. 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
  • 127. Un esempio – per capire (2) Layer “mittente” Layer “ufficio postale” Layer “trasporto” Layer “arrivo a destinazione”
  • 128. La posta si organizza meglio... Layer “mittente” Layer “ufficio postale” Layer “trasporto” Layer “arrivo a destinazione”
  • 129. 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. 12 9
  • 130. La rete Arpanet 130 1969 1971 1973 1975
  • 131. Internet - Paesi connessi (1997) 131
  • 132. 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? 13 2
  • 133. 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 13 3
  • 134. Telefonia - Commutazione di circuito 13 4  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
  • 135. Internet - Commutazione di pacchetto 135  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
  • 136. Protocollo di base: TCP/IP 136  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”?
  • 137. 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
  • 138. Indirizzi IP (concetto base) 138 Esempio di indirizzo IP di classe C 193.205.20.70 Subnet (identificativo della rete) Computer di destinazione
  • 139. 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
  • 140. Una rete a commutazione di pacchetto 140 Router 2 Sorgente Router 1 Router 4 Router 3 Router 5 Router 7 Destinazione Router 6
  • 142. 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
  • 143. 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
  • 144. 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
  • 145. 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.
  • 146. Il collegamento a Internet 146  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
  • 147. Connessione a Internet 147 LAN router local ““mmooddeemm”” ISP network Internet Service Provider f i r e w a l l firewall: software per filtrare pacchetti IP e/o indirizzi
  • 148. Servizi di rete 148  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 …
  • 149. 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…)
  • 150. Posta elettronica 150  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)
  • 151. Posta elettronica vs. posta tradizionale 151  Uso dei campi CC e CCN “Copia conoscenza” e “Copia conoscenza nascosta”)  Uso di mailing list  Priorità dei messaggi  Return receipt  Allegati
  • 152. 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 …
  • 153. Problemi della posta elettronica: virus 153  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
  • 154. 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 …
  • 155. Problemi della posta elettronica: spam 155  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
  • 156. 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)
  • 157. FTP: vantaggi 157  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
  • 158. 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)
  • 159. 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.
  • 160. 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
  • 161. 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…
  • 162. Telefono e videoconferenza via Internet 162  Usano prevalentemente il protocollo VoIP (Voice over IP)  Esempi MSN Messenger (oggi Windows Live Messenger di Microsoft) Skype Yahoo Messenger
  • 163. VoIP – Servizi tipici 163  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
  • 164. VoIP: vantaggi 164  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!
  • 165. Telefonia fissa 165  Prima dell’era del computer: centrali elettromeccaniche  Dall’avvento del computer: centrali completamente gestite via software Commutazione Istradamento Billing (tariffazione) Manutenzione ….
  • 166. Telefonia fissa - Servizi 166  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 …
  • 167. Telefonia mobile 167  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)
  • 168. Come funziona 168  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
  • 169. 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)
  • 170. Un esempio: la rete GSM 170
  • 171. 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
  • 172. 2G: GSM 172  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
  • 173. 3G: UMTS 173  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.
  • 174. 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à
  • 175. Gli SMS 175  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
  • 176. L’evoluzione dei terminali 176  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 della CONVERGENZA  di tecnologie diverse
  • 177. Computer palmari 177  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
  • 178. Convergenza 178  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)
  • 179. Esempi 179  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!
  • 180. iPhone  Può essere considerato oggi lo standard di questa classe di dispositivi  E’ al punto di convergenza tra telefonino, PDA e iPod (lettore musicale)
  • 181. Le App 181  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
  • 182. 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
  • 183. Indice  Che cos’è l’informatica  Storia del computer  Algoritmi  Reti di computer e Internet (cenni)  Il Web
  • 184. Il World Wide Web 18 4  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
  • 185. Le fasi della storia del Web 185
  • 186. 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
  • 187. La “bolla” delle dot-com (2) 187
  • 188. 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)
  • 189. Numero di siti web fino al 2003 189 La caduta (rispecchia il crollo del NASDAQ)
  • 190. Numero di host Internet fino al 2002 190 Dov’è il crollo?
  • 191. La crescita del web nel mondo (1) 191 Crisi della new economy (2000 – 2003) Boom dei blog (2007) 60% del totale
  • 192. 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
  • 193. Evoluzione del Web 193  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
  • 194. Web 2.0 194  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)
  • 195. Web 2.0 vs 1.0 195  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
  • 196. Aspetti fondamentali del 2.0 196 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
  • 197. Web 2.0: Cloud computing 197  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
  • 198. Web 2.0: Perpetual beta 198  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à
  • 199. Web 3.0 199  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
  • 200. Il W3C 200  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 …
  • 201. Protocollo HTTP 201  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
  • 202. 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
  • 203. HTTP è privo di stati 203  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
  • 204. HTTP non è protetto 204  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…
  • 205. HTML 205  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”
  • 206. Linguaggi di markup 206  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
  • 207. 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}{rtlchfcs1 af1 ltrchfcs0 insrsid12680474 La sigla sta per }{rtlchfcs1 af0 ltrchfcs0 iinsrsid13663483charrsid13663483 Rich Text Format}{rtlchfcs1 af0 ltrchfcs0 insrsid13663483 . Erquote un formato di testo con }{rtlchfcs1 af0 ltrchfcs0 binsrsid13663483charrsid13663483 tag}
  • 208. Esempi di tag HTML 208  (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!
  • 209. 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)
  • 210. 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
  • 211. 1 – Il linguaggio XML (2) – Un esempio 211 <?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>
  • 212. 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!
  • 213. 1 – Il linguaggio XML (4) 213
  • 214. 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
  • 215. 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
  • 216. 2 – Sistemi di Content Management (CMS) (3) 216
  • 217. 2 – CSS 217  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
  • 218. 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
  • 219. 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
  • 220. Web 2.0: Tecnologia 220  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
  • 221. Mash-up: i Web feed 221  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
  • 222. 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
  • 223. 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
  • 224. 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
  • 225. Motori di ricerca  Secondo il sito WolframAlpha, 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
  • 226. 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)
  • 227. 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
  • 228. 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)
  • 229. 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
  • 230. Evoluzione dei motori di ricerca  Prima del 1997 i motori di ricerca più utilizzati erano: Yahoo Altavista Excite …  Dal 1997 è dominante Google Algoritmo PageRank
  • 231. 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
  • 232. 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 è?
  • 233. 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
  • 234. Tagging 234  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
  • 235. Folksonomie 235  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
  • 236. 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/