SlideShare una empresa de Scribd logo
1 de 236
Descargar para leer sin conexión
INTRODUZIONE
AL’INFORMATICA
Seminario introduttivo - Settembre 2015
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 anni
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à
decinecentinaia
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
 Il numero 10 è detto base del sistema di
numerazione.
3452 = 3 migliaia + =
4 centinaia +
5 decine +
2 unità
3 × 1000 + =
4 × 100 +
5 × 10 +
2 × 1
3 × 103 +
4 × 102 +
5 × 101 +
2 × 100
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
binario22
 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à
Connettivo AND
P1 P2 P1 AND P2
F F F
F V F
V F F
V V V
Connettivo OR
P1 P2 P1 OR P2
F F F
F V V
V F V
V V V
Connettivo NOT
P1 NOT P1
F V
V F
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 BConnettivo =>
P1 P2 P1 => P2
F F V
F V V
V F F
V V V
(NOT P1) OR P2
P1 NOT P1 P2
F V F V
F V V V
V F F F
V F V 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
logici36
 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)
 Dato che le cifre di π sono infinite, il passo 2)
non può essere completato
1) 3,14159265358979323846...
2) 3,1415926535899323846...
3) 3,141592653589323846...
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
Il ciclo è
finito?
Azione 1
Azione 2
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
Fine
I numeri
sono
finiti?
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

 Due computer sono in rete se sono connessi tra
loro (in qualche modo) in modo tale che possano
scambiarsi dati
 Le esigenze sono molteplici:
 Aumentare (di fatto) le capacità di calcolo
 Scambiare informazioni in un certo contesto lavorativo
 Centralizzare le informazioni (es, un database, un
insieme di documenti “master”…)
 Avere accesso alle stesse periferiche da diversi
computer (ad es. stampanti)
 …
Le reti di computer
 Il concetto di rete di computer nasce
sostanzialmente all’inizio degli anni ’60
 Gli sviluppi tecnologici dell’epoca permettono
finalmente di realizzare un accesso interattivo ai
computer attraverso terminali
 In precedenza i computer funzionavano
sostanzialmente in modalità batch
 L’input avveniva attraverso schede perforate
 L’output era costituito da stampe (nella maggior parte
dei casi…)
Cenni storici (1)
 Le reti coprono bisogni di base delle aziende e
delle strutture pubbliche
 Rappresentano un elemento fondamentale (a
volte determinante) in moltissime situazioni
 Per questo motivo, dagli anni ’60 ad oggi la
loro importanza è cresciuta senza soluzione di
continuità
Cenni storici (2)
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)
 Per connettere tra loro due computer (ma anche due telefoni)
occorre che ci sia un mezzo fisico che trasporta i segnali
 Cavi elettrici
 Cavi ottici (fibra ottica)
 Onde elettromagnetiche
 Il collegamento può essere effettuato anche con mezzi “misti”
 Esempio: con Fastweb mi connetto al sito della NASA, che è su un
server negli Stati Uniti
 Dal mio computer alla centralina Fastweb: cavo
 Dalla centralina Fastweb al server Fastweb: fibra ottica
 Dal server Fastweb al server della NASA: satellite
Connessioni fisiche
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
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
pacchetto135
 Il file viene suddiviso in componenti di circa 1 Kb (pacchetti)
 Ad ogni pacchetto viene associata un intestazione che specifica il
suo numero d’ordine
 Ad ogni pacchetto viene associato l’”indirizzo” del mittente e del
destinatario
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
pacchetto140
Sorgente Router 1
Router 2
Router 3
Router 4
Router 5
Router 6
DestinazioneRouter 7
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
LANLAN
locallocal “modem”“modem”
routerrouter
LANLAN
locallocal “modem”“modem”
routerrouter
ISPISP
networknetwork
InternetInternet
ServiceService
ProviderProvider
ISPISP
networknetwork
InternetInternet
ServiceService
ProviderProvider
ISPISP
networknetwork
InternetInternet
ServiceService
ProviderProvider
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 -
Classificazione149
 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
tradizionale151
 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
posta152
 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:
virus153
 Gli allegati di posta sono stati in passato i
canali principali di diffusione
 Oggi non è più vero
 E’ possibile contrarre virus anche semplicemente
visitando un sito infetto
 Come difendersi?
 Antivirus
 In ogni caso: navigare con prudenza
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:
spam155
 Con questo termine si intende qualunque
messaggio non desiderato
 Si va dalla pubblicità a vere e proprie truffe
 Un esempio tipico: ricevete dalla vostra banca
(apparentemente) un messaggio in cui vi si
chiede di andare su un certo sito e immettere i
vostri dati
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
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
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
2002190
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
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
esempio211
<?xml version="1.0" encoding="UTF-8"?>
<utenti>
<utente>
<nome>Luca</nome>
<cognome>Ruggero</cognome>
<indirizzo>Milano</indirizzo>
</utente>
<utente>
<nome>Max</nome>
<cognome>Rossi</cognome>
<indirizzo>Roma</indirizzo>
</utente>
</utenti>
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
Motori di ricerca
 Secondo il sito Wolfram Alpha, in questo
momento il numero stimato di siti web è 625,3
milioni
 Non è possibile raggiungere i contenuti che
interessano accedendo direttamente ai singoli siti;
occorrono strumenti di ricerca
 Il problema si è posto fin dalla prima diffusione
del Web
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/

Más contenido relacionado

La actualidad más candente

Estrutura e funcionamento de um sistema informático
Estrutura e funcionamento de um sistema informáticoEstrutura e funcionamento de um sistema informático
Estrutura e funcionamento de um sistema informáticoSusana Oliveira
 
Módulo VIII - WordPad
Módulo VIII - WordPadMódulo VIII - WordPad
Módulo VIII - WordPadMayara Mônica
 
curso de computador bom e completo
curso de computador bom e completocurso de computador bom e completo
curso de computador bom e completomurilosoldier
 
Manual Informática Básica.pdf
Manual Informática Básica.pdfManual Informática Básica.pdf
Manual Informática Básica.pdfjose312400
 
Informática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
Informática Básica - Aula 06 - Utilitários e Ferramentas do SistemaInformática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
Informática Básica - Aula 06 - Utilitários e Ferramentas do SistemaJoeldson Costa Damasceno
 
Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Cibele Kanegae
 
Aula I - Introdução ao Windows
Aula I - Introdução ao WindowsAula I - Introdução ao Windows
Aula I - Introdução ao WindowsJéssica Amaral
 
Estratégias de pesquisa simples na internet
Estratégias de pesquisa simples na internetEstratégias de pesquisa simples na internet
Estratégias de pesquisa simples na internetMaria Romão
 
An introduction to microsoft office 2007 lecture
An introduction to microsoft office 2007 lectureAn introduction to microsoft office 2007 lecture
An introduction to microsoft office 2007 lectureSukh Sandhu
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Pacc UAB
 
MS-Excel Formulas and Functions
MS-Excel Formulas and FunctionsMS-Excel Formulas and Functions
MS-Excel Formulas and FunctionsP. SUNDARI ARUN
 
Editores de textos - Introdução ao Word
Editores de textos - Introdução ao WordEditores de textos - Introdução ao Word
Editores de textos - Introdução ao WordClausia Antoneli
 
Resumo básico de introdução à informática
Resumo básico de introdução à informáticaResumo básico de introdução à informática
Resumo básico de introdução à informáticaDaiana de Ávila
 

La actualidad más candente (20)

Estrutura e funcionamento de um sistema informático
Estrutura e funcionamento de um sistema informáticoEstrutura e funcionamento de um sistema informático
Estrutura e funcionamento de um sistema informático
 
Módulo VIII - WordPad
Módulo VIII - WordPadMódulo VIII - WordPad
Módulo VIII - WordPad
 
curso de computador bom e completo
curso de computador bom e completocurso de computador bom e completo
curso de computador bom e completo
 
Manual Informática Básica.pdf
Manual Informática Básica.pdfManual Informática Básica.pdf
Manual Informática Básica.pdf
 
Informatica corso base hw e sw
Informatica corso base hw e swInformatica corso base hw e sw
Informatica corso base hw e sw
 
Informática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
Informática Básica - Aula 06 - Utilitários e Ferramentas do SistemaInformática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
Informática Básica - Aula 06 - Utilitários e Ferramentas do Sistema
 
Informática básica-supera-cursos
Informática básica-supera-cursosInformática básica-supera-cursos
Informática básica-supera-cursos
 
MS Word's main menu
MS Word's main menuMS Word's main menu
MS Word's main menu
 
Windows 7 – Aula 01
Windows 7 – Aula 01Windows 7 – Aula 01
Windows 7 – Aula 01
 
Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016Apostila Microsoft Office Excel 2016
Apostila Microsoft Office Excel 2016
 
Aula I - Introdução ao Windows
Aula I - Introdução ao WindowsAula I - Introdução ao Windows
Aula I - Introdução ao Windows
 
Estratégias de pesquisa simples na internet
Estratégias de pesquisa simples na internetEstratégias de pesquisa simples na internet
Estratégias de pesquisa simples na internet
 
An introduction to microsoft office 2007 lecture
An introduction to microsoft office 2007 lectureAn introduction to microsoft office 2007 lecture
An introduction to microsoft office 2007 lecture
 
Excel lesson01
Excel lesson01Excel lesson01
Excel lesson01
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1
 
MS-Excel Formulas and Functions
MS-Excel Formulas and FunctionsMS-Excel Formulas and Functions
MS-Excel Formulas and Functions
 
Apresentação sobre conceitos básicos do Adobe Photoshop
Apresentação sobre conceitos básicos do Adobe PhotoshopApresentação sobre conceitos básicos do Adobe Photoshop
Apresentação sobre conceitos básicos do Adobe Photoshop
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
 
Editores de textos - Introdução ao Word
Editores de textos - Introdução ao WordEditores de textos - Introdução ao Word
Editores de textos - Introdução ao Word
 
Resumo básico de introdução à informática
Resumo básico de introdução à informáticaResumo básico de introdução à informática
Resumo básico de introdução à informática
 

Similar a Introduzione al’informatica

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
 
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
 
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
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Datiguest60e9511
 
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliSistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliI.S.I.S. "Antonio Serra" - Napoli
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazionecruanyes
 
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 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteSTELITANO
 
1.02 Rappresentazione dei dati
1.02 Rappresentazione dei dati1.02 Rappresentazione dei dati
1.02 Rappresentazione dei datiAngela Cristina
 

Similar a Introduzione al’informatica (20)

Introduzione all’informatica
Introduzione all’informaticaIntroduzione all’informatica
Introduzione all’informatica
 
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
 
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)
 
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 technologyInformation technology
Information technology
 
Information technology
Information technology Information technology
Information technology
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Dati
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
Analogicoedigitale
AnalogicoedigitaleAnalogicoedigitale
Analogicoedigitale
 
Bit byte
Bit byteBit byte
Bit byte
 
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe SportelliSistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
Sistemi numerazione - Unità Didattica 1 a cura del prof. Giuseppe Sportelli
 
Sistemi di numerazione
Sistemi di numerazioneSistemi di numerazione
Sistemi di numerazione
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazione
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionale
 
1 matematica binaria
1 matematica binaria1 matematica binaria
1 matematica binaria
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informatico
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
1.02 Rappresentazione dei dati
1.02 Rappresentazione dei dati1.02 Rappresentazione dei dati
1.02 Rappresentazione dei dati
 

Introduzione al’informatica

  • 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 anni
  • 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à decinecentinaia 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  Il numero 10 è detto base del sistema di numerazione. 3452 = 3 migliaia + = 4 centinaia + 5 decine + 2 unità 3 × 1000 + = 4 × 100 + 5 × 10 + 2 × 1 3 × 103 + 4 × 102 + 5 × 101 + 2 × 100
  • 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 binario22  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
  • 30. Tavole di verità Connettivo AND P1 P2 P1 AND P2 F F F F V F V F F V V V Connettivo OR P1 P2 P1 OR P2 F F F F V V V F V V V V Connettivo NOT P1 NOT P1 F V V F
  • 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 BConnettivo => P1 P2 P1 => P2 F F V F V V V F F V V V (NOT P1) OR P2 P1 NOT P1 P2 F V F V F V V V V F F F V F V 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 logici36  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)  Dato che le cifre di π sono infinite, il passo 2) non può essere completato 1) 3,14159265358979323846... 2) 3,1415926535899323846... 3) 3,141592653589323846...
  • 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 Il ciclo è finito? Azione 1 Azione 2 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 Fine I numeri sono finiti? 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.  Due computer sono in rete se sono connessi tra loro (in qualche modo) in modo tale che possano scambiarsi dati  Le esigenze sono molteplici:  Aumentare (di fatto) le capacità di calcolo  Scambiare informazioni in un certo contesto lavorativo  Centralizzare le informazioni (es, un database, un insieme di documenti “master”…)  Avere accesso alle stesse periferiche da diversi computer (ad es. stampanti)  … Le reti di computer
  • 117.  Il concetto di rete di computer nasce sostanzialmente all’inizio degli anni ’60  Gli sviluppi tecnologici dell’epoca permettono finalmente di realizzare un accesso interattivo ai computer attraverso terminali  In precedenza i computer funzionavano sostanzialmente in modalità batch  L’input avveniva attraverso schede perforate  L’output era costituito da stampe (nella maggior parte dei casi…) Cenni storici (1)
  • 118.  Le reti coprono bisogni di base delle aziende e delle strutture pubbliche  Rappresentano un elemento fondamentale (a volte determinante) in moltissime situazioni  Per questo motivo, dagli anni ’60 ad oggi la loro importanza è cresciuta senza soluzione di continuità Cenni storici (2)
  • 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.  Per connettere tra loro due computer (ma anche due telefoni) occorre che ci sia un mezzo fisico che trasporta i segnali  Cavi elettrici  Cavi ottici (fibra ottica)  Onde elettromagnetiche  Il collegamento può essere effettuato anche con mezzi “misti”  Esempio: con Fastweb mi connetto al sito della NASA, che è su un server negli Stati Uniti  Dal mio computer alla centralina Fastweb: cavo  Dalla centralina Fastweb al server Fastweb: fibra ottica  Dal server Fastweb al server della NASA: satellite Connessioni fisiche
  • 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
  • 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 pacchetto135  Il file viene suddiviso in componenti di circa 1 Kb (pacchetti)  Ad ogni pacchetto viene associata un intestazione che specifica il suo numero d’ordine  Ad ogni pacchetto viene associato l’”indirizzo” del mittente e del destinatario
  • 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 pacchetto140 Sorgente Router 1 Router 2 Router 3 Router 4 Router 5 Router 6 DestinazioneRouter 7
  • 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 LANLAN locallocal “modem”“modem” routerrouter LANLAN locallocal “modem”“modem” routerrouter ISPISP networknetwork InternetInternet ServiceService ProviderProvider ISPISP networknetwork InternetInternet ServiceService ProviderProvider ISPISP networknetwork InternetInternet ServiceService ProviderProvider 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 - Classificazione149  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 tradizionale151  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 posta152  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: virus153  Gli allegati di posta sono stati in passato i canali principali di diffusione  Oggi non è più vero  E’ possibile contrarre virus anche semplicemente visitando un sito infetto  Come difendersi?  Antivirus  In ogni caso: navigare con prudenza
  • 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: spam155  Con questo termine si intende qualunque messaggio non desiderato  Si va dalla pubblicità a vere e proprie truffe  Un esempio tipico: ricevete dalla vostra banca (apparentemente) un messaggio in cui vi si chiede di andare su un certo sito e immettere i vostri dati
  • 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
  • 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
  • 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 2002190 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
  • 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 esempio211 <?xml version="1.0" encoding="UTF-8"?> <utenti> <utente> <nome>Luca</nome> <cognome>Ruggero</cognome> <indirizzo>Milano</indirizzo> </utente> <utente> <nome>Max</nome> <cognome>Rossi</cognome> <indirizzo>Roma</indirizzo> </utente> </utenti>
  • 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
  • 225. Motori di ricerca  Secondo il sito Wolfram Alpha, in questo momento il numero stimato di siti web è 625,3 milioni  Non è possibile raggiungere i contenuti che interessano accedendo direttamente ai singoli siti; occorrono strumenti di ricerca  Il problema si è posto fin dalla prima diffusione del Web
  • 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/