introduzione all’informatica
DESCRIPTION
Slide presentate nel corso del seminario "Introduzione all'informatica" - Università di Mlano Bicocca - Settembre 2013TRANSCRIPT
![Page 1: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/1.jpg)
INTRODUZIONE AL’INFORMATICASeminario introduttivo - Settembre 2014
![Page 2: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/2.jpg)
Indice
Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web
![Page 3: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/3.jpg)
Premessa
Oggi l’informatica è ovunque Centraline delle auto Lavatrici Centrali telefoniche Sistemi robotizzati …
A volte non ce ne accorgiamo, ma ormai viviamo in simbiosi con sistemi informatici di ogni tipo
![Page 4: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/4.jpg)
Le rivoluzioni informatiche
Prima rivoluzione informatica: dalla fine degli anni ‘70 del 900 Il computer si trasforma in un oggetto di
uso comune
Seconda rivoluzione informatica: dalla metà degli anni ‘90 del 900 Internet e i suoi servizi
![Page 5: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/5.jpg)
Significato delle rivoluzioni informatiche
Hanno cambiato del tutto le nostre esistenze
Nel loro insieme, sono paragonabili al passaggio dal paleolitico al neolitico
Differenza: anziché millenni, hanno richiesto poche decine di annni
![Page 6: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/6.jpg)
Problemi
Le rivoluzioni informatiche non sono ancora state “metabolizzate” in senso culturale Esempio: digital divide
Siamo tuttora in fase “esplosiva” Nessuno ha veramente idea di cosa ci
riserverà il futuro, anche prossimo
![Page 7: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/7.jpg)
In generale - processi automatici Processi ripetitivi, spesso molto lunghi
da eseguire, “meccanici” (che non richiedono “intelligenza”, per come la intendiamo comunemente)
Esempio: mettere in ordine 1.000 documenti
![Page 8: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/8.jpg)
Calcolo automatico
E’ solo un aspetto del problema
Tuttavia è importante, perché è stato il punto di inizio della rivoluzione informatica
![Page 9: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/9.jpg)
Calcolare a macchina
C’è qualcosa nel calcolo di evidentemente meccanico
Sembra ragionevole poter costruire “macchine per calcolare”
![Page 10: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/10.jpg)
Macchine per calcolare (1)
A – Due righelli permettono di fare le somme
B – Un pallottoliere permette di fare le somme
![Page 11: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/11.jpg)
Macchine per calcolare (2)
A: è di tipo analogico Funziona sulla base dell’”analogia” della
somma delle lunghezze I limiti del calcolo sono legati solo alla
precisione della misura
B: è di tipo digitale Da “digit” (cifra) E’ perfettamente preciso entro il limite delle
cifre che rappresenta
![Page 12: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/12.jpg)
Limitazioni
A e B sono in grado di fare un’unica operazione: la somma
Sono state costruite macchine più versatili, in grado di compiere somme, ma non solo...
![Page 13: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/13.jpg)
Un esempio: la “Pascaline”
Inventata da Blaise Pascal (1623 – 1662), più noto come filosofo e matematico
Permetteva di effettuare diverse operazioni aritmetiche e matematiche
![Page 14: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/14.jpg)
Un altro esempio: il regolo calcolatore
E’ analogico: funziona come i righelli
Usando scale logaritmiche, permette di fare moltiplicazioni anziché addizioni
![Page 15: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/15.jpg)
I computer moderni sono digitali Manipolano cifre numeriche
Un computer analogico sarebbe soggetto inevitabilmente a errori di misura
Gli errori si accumulano durante il calcolo Dopo pochi passaggi i risultati sarebbero
praticamente casuali
Ciò implica che la precisione del computer è finita
![Page 16: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/16.jpg)
Che tipo di cifre?
Binarie BIT = Binary digIT
![Page 17: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/17.jpg)
Sistema posizionale (1)17
E’ il sistema di numerazione che utilizziamo comunemente
Le cifre non hanno tutte lo stesso significato
Il significato dipende dalla loro posizione all’interno del numero3452
unità
decinecentinaia
migliaia
![Page 18: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/18.jpg)
Sistema posizionale (2)18
Si basa sull’uso della cifra 0 (zero) Inventato probabilmente in India nel IX
secolo d.C.
Nel nostro caso comporta l’uso di 10 cifre diverse (0, 1, 2, 3, 4, 5, 6, 7 ,8, 9)
Perché proprio dieci cifre? C’è qualcosa di speciale nel numero 10?
![Page 19: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/19.jpg)
Sistema decimale19
Risposta: no. E’ possibile usare sistemi posizionali basati su qualsiasi numero maggiore di 1. Per capire perché, esaminiamo la seguente tabella
Il numero 10 è detto base del sistema di numerazione.
3452 = 3 migliaia + =4 centinaia +5 decine +2 unità
3 × 1000 + =4 × 100 +5 × 10 +2 × 1
3 × 103 +4 × 102 +5 × 101 +2 × 100
![Page 20: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/20.jpg)
Teoremi sui sistemi posizionali in base N20
Qualsiasi numero N strettamente maggiore di 1 può essere utilizzato come base
Esiste sempre un unico modo per rappresentare un numero, indipendentemente dal valore di N
Occorrono esattamente N cifre (compreso lo 0) per poter rappresentare i numeri Se volessimo usare la base 7, ci basterebbero le cifre 0,
1, 2, 3, 4, 5, 6
E’ sempre possibile convertire un numero da una certa base a un’altra
![Page 21: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/21.jpg)
Esempi di sistemi di numerazione non decimali
21
Diverse popolazioni umane hanno usato come base 60 Non è noto con chiarezza perché usare 10 o
60 L’uso del 10 come base potrebbe dipendere
dal fatto che abbiamo 10 dita…
Noi stessi usiamo la base 60 per rappresentare i primi e i secondi d’arco, i minuti e i secondi di tempo
![Page 22: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/22.jpg)
Il sistema di numerazione binario
22
Utilizza come base il numero 2
Le cifre possibili sono solo 0 e 1 (BIT = BInary digiT)
E’ il sistema posizionale più “semplice” possibile
I numeri sono “molto lunghi” Esempio: 10000000 (binario) = 256 (decimale)
E’ il sistema di numerazione usato “internamente” dai computer Perché?
![Page 23: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/23.jpg)
Perché il sistema binario23
Ragioni “tecniche” E’ facile rappresentare le cifre 0 e 1 come
stati fisici di un circuito (es. passa o non passa corrente)
Gli errori di “lettura” sono meno probabili (quindi meno frequenti)
Ragioni “logiche” Le cifre 0 e 1 corrispondono in modo
naturale ai valori logici FALSO e VERO dell’algebra di Boole
![Page 24: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/24.jpg)
George Boole (1815 – 1864)
Sviluppa un’algebra delle proposizioni
Espone i suoi risultati in un celebre libro intitolato Indagine sulle leggi del pensiero
L’algebra di Boole è alla base della logica moderna
![Page 25: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/25.jpg)
Algebra di Boole25
Piove e fa freddo è vera solo se piove e anche fa freddo
Piove o fa freddo è vera se piove, se fa freddo o anche se piove e fa freddo
Se piove allora fa freddo è falsa solo nel caso in cui piove ma non fa freddo
In generale è basata sui valori VERO o FALSO che una proposizione può assumere
![Page 26: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/26.jpg)
Connettivi
Operazioni possibili sui valori Vero e Falso
![Page 27: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/27.jpg)
Operazioni di composizione interna Dato un insieme, un’operazione di
composizione interna associa a due elementi (ordinati) dell’insieme un terzo elemento dell’insieme
Somma: 5+2 = 7 (Insieme dei numeri interi)
AND: V AND F = F (Insieme V, F)
![Page 28: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/28.jpg)
Connettivi fondamentali28
E (AND): la proposizione risultante è vera se e solo se sono vere entrambe le proposizioni argomento Piove e fa freddo
O (OR): la proposizione risultante è vera se è vera una qualsiasi delle proposizioni argomento Piove o fa freddo
NON (NOT): la proposizione risultante è vera solo se la proposizione argomento è falsa Non piove
![Page 29: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/29.jpg)
Corrispondono a operazioni insiemistiche
![Page 30: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/30.jpg)
Tavole di verità
Connettivo ANDP1 P2 P1 AND P2V V VV F FF V FF F F
Connettivo ORP1 P2 P1 OR P2V V VV F VF V VF F F
Connettivo NOTP1 NOT P1V FF V
![Page 31: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/31.jpg)
Espressioni
Aritmetiche: le operazioni possono essere eseguite in catena 2 X (7 + 5) = 24
Logiche: i connettivi possono essere applicati in catena V AND (V OR F) = V
![Page 32: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/32.jpg)
Connettivi composti
Esempio: implicazione (SE piove ALLORA fa freddo) Si indica con =>
In termini di connettivi fondamentali: A => B equivale a: NOT A OR B
Connettivo =>P1 P2 P1 => P2V V VV F FF V VF F V
![Page 33: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/33.jpg)
Circuiti logici
Le cifre binarie si prestano molto bene a essere rappresentate mediante circuiti 1: passa corrente 2: non passa corrente
Un connettivo logico diventa un circuito in cui entrano due fili e ne esce uno La corrente in uscita dipende dalle correnti
in ingresso secondo il tipo di connettivo
![Page 34: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/34.jpg)
Porte logiche
Potete pensarle come insiemi di “interruttori”
![Page 35: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/35.jpg)
Porte logiche e interruttori
![Page 36: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/36.jpg)
Codice binario e connettivi logici
36
Numerici 1 + 1 = 10 111 + 1 = 1000 10 × 10 = 100
Logici 1 AND 1 = 1 0 OR 0 = 0 1 → 0 = 0
![Page 37: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/37.jpg)
Come si fa a rappresentare l’informazione?
37
Un computer (lo sanno tutti) è capace di gestire informazioni di tipo svariato Testi Musica Filmati Immagini …
Come è possibile, se il computer in realtà manipola solo numeri?
![Page 38: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/38.jpg)
Digitalizzazione38
L’operazione di digitalizzazione corrisponde alla trasformazione di una certa informazione in numeri
E’ sempre possibile digitalizzare l’informazione
Facciamo qualche esempio
![Page 39: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/39.jpg)
Digitalizzare il testo39
A ogni carattere viene associato un numero
Questa operazione può essere fatta in moltissimi modi Di solito si usa una codifica
standard (ASCII)
Per l’alfabeto latino è sufficiente un byte
Il cinese richiede 2 byte (ci sono più di 256 caratteri possibili)
![Page 40: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/40.jpg)
Domande40
Se “Guerra e pace” di Tolstoj è un testo di 2000 pagine e ogni pagina è composta in media da 2000 caratteri, quanti byte occuperà il file su cui è scritto?
Lo spazio occupato dai file di testo (per esempio in formato Word) è molto maggiore del numero di byte che sarebbero necessari secondo la rappresentazione ASCII. Perché?
![Page 41: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/41.jpg)
Digitalizzare il colore41
Si utilizza la tecnica dei “colori primari”
Ogni colore può essere scomposto nelle sue componenti Rossa (R), Verde (G) e Blu (B)
Le “quantità” di rosso, verde e blu vengono misurate ciascuna con un singolo byte:0 = assenza di colore, 255 = colore saturo
I tre byte che ne derivano corrispondono alla codifica RGB
![Page 42: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/42.jpg)
Digitalizzare le immagini42
L’immagine viene scomposta in una griglia; ciascun “quadretto” della griglia è detto pixel
Ad ogni pixel viene associato il codice RGB del colore che gli compete
La risoluzione è la misura del numero di pixel che compongono l’immagine; ad esempio 800 × 600 significa 800 pixel in orizzontale e 600 in verticale
![Page 43: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/43.jpg)
Compressione dell’informazione
43
La digitalizzazione comporta in molti casi uno “spreco di spazio”
Esempio: Ho un’imagine di 1000 x 1000 pixel (= un milione di pixel) Se servono 3 byte per ogni pixel, l’immagine occuperà 3
milioni di byte Supponiamo che l’immagine sia tutta bianca...
Si usano diverse tecniche per comprimere l’informazione Ad esempio, nel caso delle immagini il formato “completo” è
.bmp, mentre il formato .jpg è compresso
![Page 44: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/44.jpg)
Indice
Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web
![Page 45: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/45.jpg)
Charles Babbage (1791 – 1871) 45
Anticipatore delle idee moderne sulle macchine calcolatrici
Progetta un calcolatore programmabile, che non riuscirà mai a realizzare
![Page 46: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/46.jpg)
Alan Turing e la macchina algoritmica
Pioniere dell’informatica moderna
Una macchina di Turing è una macchina che non “sa” calcolare, ma “sa come” calcolare
La macchina di Turing non fornisce il risultato di un calcolo, ma compie le operazioni necessarie per raggiungere tale risultato (computer agoritmico)
![Page 47: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/47.jpg)
Che cos’è un algoritmo47
In generale: procedimento che porta a un risultato
Esempio. Per preparare la pasta con le vongole:
Mettere le vongole in acqua salata per circa un ora Metterle in una padella e scaldare finché si aprono Buttare via quelle ancora chiuse Filtrare l’acqua che rimane sul fondo Scaldare aglio e peperoncino in olio Aggiungere le vongole A fine cottura, aggiungere il prezzemolo e l’acqua filtrata Condire la pasta
![Page 48: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/48.jpg)
Il software
E’ ciò che realizza la macchina di Turing
Uno dei risultati ottenuti da Turing è che se un problema è affrontabile da una macchina di Turing, è affrontabile da tutte le macchine di Turing La computabilità è un problema assoluto, non dipende
dalla macchina
In sostanza, se le risorse hardware sono sufficienti qualsiasi computer può raggiungere gli stessi risultati Ovviamente non con le stesse prestazioni!
![Page 49: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/49.jpg)
Programmi
Un programma deve essere inteso come la realizzazione pratica di un algoritmo di calcolo NB: un algoritmo è un oggetto astratto Un programma invece deve funzionare su
una macchina concreta, tenendo conto delle sue caratteristiche hardware
I programmi devono essere riscritti ogni volta che cambia l’hardware?
![Page 50: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/50.jpg)
Linguaggio macchina
Un programma scritto in linguaggio macchina utilizza come primitive del linguaggio codici direttamente interpretabili dalla CPU Quindi se cambiamo le caratteristiche della
macchina fisica dobbiamo riscriverlo!
Si parla di eseguibili Sequenze di byte che contengono istruzioni
direttamente eseguibili dal processore
![Page 51: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/51.jpg)
Linguaggi di alto livello
I programmi scritti in questi linguaggi usano primitive “astratte” Esempi: Basic, C, Java, Pascal...
Essi devono essere “tradotti” in linguaggio macchina per poter essere eseguiti Un programma “traduttore” prende il nome di
compilatore Disponendo del compilatore giusto, siamo in
grado di usare gli stessi programmi di alto livello su qualsiasi macchina
![Page 52: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/52.jpg)
File52
Un file non è altro che la sequenza dei byte che corrisponde all’informazione digitalizzata
Logicamente è una sequenza continua, ma fisicamente può essere scritto in spazi separati del disco
Il cosiddetto file system contiene la mappa che permette al computer di sapere dove sono scritte fisicamente le informazioni (in generale descrive la struttura dei dati sul disco)
![Page 53: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/53.jpg)
Come si realizza la macchina di Turing (1)
53
Il processore ha alcuni registri, che funzionano come celle di memoria interne (con la stessa logica delle “scatole”)
Inoltre “sa come fare” certe operazioni di base Sommare il contenuto di un registro a quello di un
altro registro Copiare in un registro il contenuto di un certo
indirizzo di memoria Copiare in un indirizzo di memoria il contenuto di un
certo registro …
![Page 54: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/54.jpg)
Come si realizza la macchina di Turing (2)
54
Al processore arrivano numeri che corrispondono alla codifica di istruzioni base
Le modalità di invio di questi numeri al processore sono controllate da un “super programma” sempre attivo che si chiama sistema operativo
Ad esempio, potrebbe arrivare il codice dell’istruzione: “trasferisci il contenuto della cella di memoria X nel registro Y” Ovviamente il processore si aspetta che dopo il codice
(numero) dell’istruzione gli arrivino gli indirizzi X e Y
![Page 55: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/55.jpg)
Come si realizza la macchina di Turing (3)
55
Questo significa che anche un programma, dal punto di vista interno della macchina, non è altro che una successione di numeri (le istruzioni in codice seguite dagli eventuali attributi, ad es. gli indirizzi X e Y)
Il concetto di file unifica quindi informazioni e programmi Si parla di file eseguibile per intendere un file che
contiene un programma In Windows li distinguete
dall’estensione: .exe, .bat…
![Page 56: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/56.jpg)
La nascita del computer moderno L’idea di Turing (computer
algoritmico) fu sviluppata a partire dalla fine della seconda guerra mondiale
L’architettura base di un computer di Turing “funzionante” fu definita dal matematico John von Neumann
Uno dei primi prototipi funzionanti si chiamava EDVAC
![Page 57: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/57.jpg)
Architettura di Von Neumann
![Page 58: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/58.jpg)
Processore (CPU)
Esegue tutte le operazioni elementari (poche e semplici)
Velocità tipica per un computer commerciale di oggi: un miliardo di operazioni al secondo
![Page 59: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/59.jpg)
Memoria RAM
Random Access Memory Indirizzabile
direttamente dal processore
Veloce
Volatile
![Page 60: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/60.jpg)
Memorie di massa
“Lente”
Grandi dimensioni
Permanenti
![Page 61: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/61.jpg)
Periferiche di I/O
Tutto ciò che serve per immettere dati nel computer, e per ricevere i dati elaborati
Tastiera, mouse, stampante, scanner, plotter…
![Page 62: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/62.jpg)
Transistor
E’ un “interruttore” controllato da un segnale elettrico
Primo prototipo funzionante: 1947
Ha permesso di realizzare le porte logiche
![Page 63: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/63.jpg)
La “legge di Moore”
Le prestazioni dei processori raddoppiano circa ogni 18 mesi
Significa che l’innovazione nell’hardware ha un andamento esponenziale
Hardware più potente significa software (possibile) più potente
![Page 64: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/64.jpg)
Primi anni ‘70
Il computer è ancora un oggetto enorme e costosissimo
Di fatto esiste solo nelle università e nelle grandi aziende
L’utente usa schede perforate o telescriventi
(Per chi è interessato: www.computerhistory.org/)
![Page 65: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/65.jpg)
Fine anni ‘70
Nasce il personal computer
Prestazioni ridicole rispetto a un computer di oggi; esempio. Apple II: 64k RAM No disco rigido “Floppy disk” da 128k Risoluzione massima
320x200
Tuttavia copre una serie di esigenze critiche
![Page 66: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/66.jpg)
Gli Office Productivity Tool (OPT)
66
Word processing (videoscrittura) Il PC è in grado di fare le stesse cose che fino a quel
momento potevano essere fatte con workstation dedicate
Foglio elettronico Primo esempio: VisiCalc (fine anni ‘70)
Programmi per la gestione di database All’inizio solo flat-file, relazionali dalla metà degli anni
’80 (dBase)
Programmi per l’editing di immagini
![Page 67: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/67.jpg)
L’esplosione del computer67
Il computer è il business della fine del millennio Mercato potenziale: miliardi di pezzi Indotto: stampanti, monitor, programmi software, corsi,
consulenza...
Nel 1983 il programma per videoscrittura WordStar supera il milone di copie vendute
Tuttavia molti utenti potenziali sono respinti dall’idea che il computer sia difficile da usare
Questo fornisce una spinta decisiva all’innovazione nel campo delle interfacce con l’utente
![Page 68: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/68.jpg)
La crescita del PC
![Page 69: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/69.jpg)
Interfaccia con l’utente
In passato (ancora adesso in alcuni sistemi) era basata su stringhe di comando (Command Line Interface)
Oggi sono prevalenti le GUI (Graphic User Interface) Esempi: Windows, Macintosh...
![Page 70: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/70.jpg)
Paradigma GUI
What You See Is What You Get (WYSIWYG)
Non è l’utente che si adatta alle esigenze del computer (interfaccia a comandi), ma il computer che offre all’utente un’interfaccia “intuitiva” Uso del mouse per puntare gli oggetti Icone che rappresentano file ed eseguibili Finestre Metafora della “scrivania”
![Page 71: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/71.jpg)
Dispositivi touch
Gli oggetti possono essere letteralmente “toccati”
L’interfaccia cambia a seconda del contesto
Le uniche operazioni che l’utente può fare sono quelle consistenti con la situazione operativa in cui si trova Una volta non era vero; esempio: menu
![Page 72: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/72.jpg)
Indice
Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web
![Page 73: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/73.jpg)
Algoritmo
Procedimento finito che permette di raggiungere un certo risultato Il “focus” non è sul risultato, ma su come
ottenerlo
Il termine viene da “algoritmus”, parola latina medievale a sua volta derivante dal nome del matematico arabo Al-Khwarizmi (780 – 850 d.C.)
![Page 74: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/74.jpg)
Esempio di algoritmo
Per preparare il riso “pilaf” occorre mettere insieme tre parti di riso e sette parti di acqua (o brodo) in volume
Algoritmo:1. Prendi una tazzina2. Riempila per tre volte di riso, in modo che sia
colma3. Riempila per sette volte di brodo, in modo che
sia colma4. Metti insieme acqua e riso in una pentola
![Page 75: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/75.jpg)
Note (1)
L’algoritmo “trasforma” le cose All’inizio ho una confezione di riso e una
pentola di brodo Alla fine ho la corretta miscela per il riso
pilaf
Questo è vero (in generale) per qualsiasi algoritmo: Confezione di riso + Pentola di brodo =
input Miscela finale = Output
![Page 76: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/76.jpg)
Proprietà degli algoritmi
Non tutte le possibili sequenze di operazioni definiscono un algoritmo
Per essere definito correttamente, un algoritmo deve godere di alcune proprietà
![Page 77: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/77.jpg)
Generalità
Un algoritmo deve descrivere un procedimento generale: Non importa se uso brodo o acqua Non importa se il brodo è di carne o di verdure Non importa se il riso è Carnaroli o Arborio
L’algoritmo definisce uno schema operativo che, applicato a un certo input, produce un certo output
NB: Fissato l’input, l’output è sempre il medesimo (determinismo)
![Page 78: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/78.jpg)
Finitezza (1)
Un algoritmo è composto da un numero finito di istruzioni, e deve comportare un numero finito di passi per essere completato
Consideriamo il seguente esempio:1. Nello sviluppo decimale di π trova la prima
occorrenza della cifra 72. Sposta la cifra successiva a sinistra di una
posizione3. Ripeti il passo 2. fino al completamento delle
cifre
![Page 79: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/79.jpg)
Finitezza (2)
Dato che le cifre di π sono infinite, il passo 2) non può essere completato
1) 3,14159265358979323846...
2) 3,1415926535899323846...
3) 3,141592653589323846...
![Page 80: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/80.jpg)
Non ambiguità
Un algoritmo deve essere espresso in modo non ambiguo
Il risultato non deve dipendere da situazioni contingenti (non specificate nell’algoritmo stesso)
Esempio:1. Prendi una tazzina2. Riempila per tre volte di riso, in modo che sia colma3. Riempila per sette volte di brodo, in modo che sia
colma4. Se ti va, aggiungi sale
![Page 81: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/81.jpg)
Riepilogando
Ogni algoritmo è descritto da un numero finito di istruzioni
La sua esecuzione deve comportare un numero finito di operazioni i due concetti non sono identici: v. esempio di π
In linea di principio, un algoritmo riceve dei dati in ingresso (input) e produce dei dati in uscita (output)
Ogni algoritmo è deterministico il risultato dipende solo dai dati forniti in ingresso; dato un
certo input si ottiene sempre lo stesso output
![Page 82: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/82.jpg)
Un esempio numerico (1)
Insegnare a un bambino a sommare due numeri
Scrivi i due numeri in colonna Somma le cifre a partire da destra Se il risultato è minore di dieci scrivilo, altrimenti
scrivi solo le unità, e tieni a mente il riporto
E’ scritto bene? Come devo incolonnare i numeri? Che cos’è il riporto? Dove devo scrivere i risultati?
![Page 83: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/83.jpg)
Un esempio numerico (2)
Sommare due numeri1. Scrivi il primo numero2. Scrivi il secondo numero sotto il primo, in
modo che le cifre siano allineate a destra 3. Parti dalla prima cifra a destra4. Tieni a mente 0 5. Muoviti verso sinistra 6. Se incontri la prima cifra a sinistra vai al
passo 12, altrimenti procedi con il passo 7
![Page 84: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/84.jpg)
Un esempio numerico (3)
7. Somma la cifra superiore con la cifra inferiore8. Somma al risultato quello che stai tenendo a
mente9. Se il totale è minore di 10, scrivilo e tieni a
mente 010. altrimenti, scrivi la cifra delle unità del totale,
e tieni a mente la cifra delle decine11. Torna al passo 512. Se il numero che stai tenendo a mente è
diverso da 0, scrivilo13. Fine
![Page 85: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/85.jpg)
Il punto fondamentale
La definizione di algoritmo prescinde completamente dal fatto che l’esecutore sia un essere umano
Si tratta di una sequenza di passi meccanici
In linea di principio, anche una macchina (opportunamente costruita) potrebbe eseguirli
![Page 86: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/86.jpg)
Reticoli operativi
Nell’esempio della somma, il passo 6. comporta un “salto”
Non è detto che un algoritmo sia necessariamente una successione lineare di operazioni
In generale, anzi, la struttura di un algoritmo è reticolare
Come possiamo rappresentarla?
![Page 87: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/87.jpg)
Diagrammi a blocchi
Un diagramma a blocchi è un grafo che rappresenta un algoritmo (Il concetto è generale; i diagrammi a blocchi sono
usati anche in altri contesti) Si usa anche il termine “diagramma di flusso” o “flow
chart”
Le singole istruzioni vengono scritte all’interno di blocchi
I blocchi sono connessi da frecce, che specificano l’ordine di esecuzione
![Page 88: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/88.jpg)
Un esempio – Trovare il massimo tra a e b
![Page 89: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/89.jpg)
Simbologia standard dei blocchi
Inizio / Fine dell’algoritmo
Azione
Input o output (I/O)
Controllo del flusso operativo
![Page 90: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/90.jpg)
Condizioni di validità
Ciascun blocco azione, lettura/scrittura ha una sola freccia entrante e una sola freccia uscente
Ciascun blocco di controllo ha una sola freccia entrante e due uscenti
Ciascuna freccia entra in un blocco o si innesta su una altra freccia
Ciascun blocco è raggiungibile dal blocco iniziale
Il blocco finale è raggiungibile da qualsiasi altro blocco
![Page 91: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/91.jpg)
Il “linguaggio” degli algoritmi Non esiste uno standard
Azioni (e controlli) sono espressi da termini della lingua parlata, purché comprensibili
Vedremo poi come questo cambia nell’uso informatico, dove è necessario standardizzare i linguaggi
![Page 92: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/92.jpg)
Schemi di flusso
Sono per così dire tipologie “base” di grafi che possono essere presenti all’interno di un diagramma di flusso
Ne esistono tre di basilare importanza: Sequenza Selezione Iterazione
![Page 93: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/93.jpg)
Sequenza
Una successione lineare di azioni e/o di operazioni di I/O
Azione 1
Azione 2
Azione 3
Azione 4
Ingresso
Uscita
![Page 94: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/94.jpg)
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
![Page 95: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/95.jpg)
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
![Page 96: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/96.jpg)
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
![Page 97: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/97.jpg)
Considerazione fondamentale Tutte e tre gli schemi (sequenza,
selezione e iterazione) hanno un unico punto di ingresso e un unico punto di uscita
Quindi si comportano come blocchi strutturati
In un diagramma a blocchi possiamo inserire box che rappresentano interi schemi, non soltanto operazioni “elementari”
![Page 98: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/98.jpg)
Teorema di Bohm - Jacopini
Qualsiasi diagramma di flusso può essere trasformato in un diagramma equivalente che utilizza soltanto sequenze, selezioni e iterazioni Due diagrammi a blocchi sono “equivalenti”
se conducono agli stessi risultati partendo dagli stessi dati di input
Questo teorema permette la costruzione di diagrammi a blocchi strutturati
![Page 99: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/99.jpg)
Diagrammi strutturati
Strutturare uno schema a blocchi significa individuare dei “macro blocchi”, che a loro volta potranno essere sviluppati come “blocchi di dettaglio”
Il processo è iterativo
![Page 100: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/100.jpg)
Esempio: ordinare una sequenza di numeri
Immaginiamo di fornire all’algoritmo un certo insieme di valori numerici
Vogliamo che l’algoritmo generi una lista in cui i valori forniti compaiono in ordine (dal più piccolo al più grande) (NB: lo sviluppo completo di questo
esempio va oltre gli scopi del seminario)
![Page 101: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/101.jpg)
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?
![Page 102: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/102.jpg)
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?
![Page 103: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/103.jpg)
Nota
Anche i blocchi del “sotto – algoritmo” per mettere in ordine non sono operazioni elementari
Essi dovranno essere opportunamente sviluppati in algoritmi di dettaglio
![Page 104: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/104.jpg)
Problemi
Algoritmo “in grande”: Come si fa a capire che i numeri sono finiti? L’algoritmo deve prevedere che venga
fornito un numero, oppure “fine”!
Algoritmo “per mettere in ordine” Cosa succede se la lista è vuota? L’operazione “seleziona il primo elemento
della lista” fallisce!
![Page 105: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/105.jpg)
Esercizi (1)
Costruire lo schema di un algoritmo che trovi i numeri primi compresi tra 2 e 100 (crivello di Eratostene) Scrivo i numeri da 2 a 100 Marco il primo numero non cancellato
(all’inizio, 2) Cancello tutti i multipli del numero che ho
appena marcato Ripeto l’operazione, finché tutti i numeri
sono stati marcati o cancellati
![Page 106: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/106.jpg)
Esercizi (2)
Costruire lo schema di un algoritmo che trovi il MCD tra due interi a e b, a >= b (algoritmo di Euclide) Se b = 0, a è il MCD Se b <> 0:
Divido a/b Se il resto (r) = 0, b è il MCD Altrimenti sostituisco b al posto di a, e r al
posto di b, poi ripeto la divisione
![Page 107: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/107.jpg)
Un’alternativa agli schemi a blocchi
Nel mondo della programmazione si tende a non usare più gli schemi a blocchi Sono difficili da gestire dal punto di vista
grafico
Si usano piuttosto tecniche di “indentazione”
![Page 108: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/108.jpg)
L’algoritmo di ordinamento (1) Inizio
Leggi un numero Ripeti
Metti in ordine il numero che hai letto Finché i numeri sono finiti
Fine
![Page 109: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/109.jpg)
L’algoritmo di ordinamento (2) Inizio
Leggi un numero Ripeti
Seleziona il primo elemento della lista (X) Ripeti
Se Input >= X Seleziona il prossimo elemento della lista
Altrimenti Inserisci Input al posto di X
Finché non hai inserito Input Finché i numeri sono finiti
Fine
![Page 110: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/110.jpg)
Procedimento “Top-down”
Dato un certo problema: Lo scomponiamo in “sotto problemi” Esaminiamo ciascuno dei sotto problemi e, se
necessario, lo scomponiamo a sua volta Fino al livello di dettaglio “corretto”
Domanda: qual è il livello di dettaglio corretto?
Il processo è “riduzionista” Cosa succede se il problema non si lascia
scomporre?
![Page 111: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/111.jpg)
Computabilità
Sorge spontanea la seguente domanda: Dato un qualsiasi problema, esiste sempre un
algoritmo che lo “risolve”?
Risposta: No
L’esempio più famoso: Costruire un algoritmo che sia in grado di
decidere se un altro algoritmo ha termine oppure no
![Page 112: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/112.jpg)
Complessità algoritmica
Un algoritmo in cui il numero di passi cresce in modo polinomiale in funzione dell’ampiezza dell’input è detto di classe P
Ci sono problemi per cui non è noto se esista un algoritmo di classe P che li risolve; sono detti di classe NP Per chi volesse provarci: c’è un premio di un
milione di dollari per chi riuscirà a dimostrare che le classi P e NP sono identiche (tutti i problemi computabili sono di classe P) oppure no.
![Page 113: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/113.jpg)
Una domanda difficile
Il nostro cervello funziona in modo algoritmico? Se sì, i processi mentali sono deterministici Dunque il “libero arbitrio” non esiste
![Page 114: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/114.jpg)
Un’altra domanda difficile
Computer sufficientemente evoluti potranno diventare intelligenti?
![Page 115: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/115.jpg)
Indice
Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web
![Page 116: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/116.jpg)
Due computer sono in rete se sono connessi tra loro (in qualche modo) in modo tale che possano scambiarsi dati
Le esigenze sono molteplici: Aumentare (di fatto) le capacità di calcolo Scambiare informazioni in un certo contesto lavorativo Centralizzare le informazioni (es, un database, un
insieme di documenti “master”…) Avere accesso alle stesse periferiche da diversi
computer (ad es. stampanti) …
Le reti di computer
![Page 117: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/117.jpg)
Il concetto di rete di computer nasce sostanzialmente all’inizio degli anni ’60
Gli sviluppi tecnologici dell’epoca permettono finalmente di realizzare un accesso interattivo ai computer attraverso terminali
In precedenza i computer funzionavano sostanzialmente in modalità batch L’input avveniva attraverso schede perforate L’output era costituito da stampe (nella maggior parte
dei casi…)
Cenni storici (1)
![Page 118: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/118.jpg)
Le reti coprono bisogni di base delle aziende e delle strutture pubbliche
Rappresentano un elemento fondamentale (a volte determinante) in moltissime situazioni
Per questo motivo, dagli anni ’60 ad oggi la loro importanza è cresciuta senza soluzione di continuità
Cenni storici (2)
![Page 119: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/119.jpg)
Tipologie di reti
LAN = Local Area Network Rete interna a una struttura (azienda, ente
pubblico, università, aula universitaria…) di solito localizzata nello spazio
WAN = Wide Area Network Rete interna a una struttura, ma distribuita
su aree geografiche vaste (es: multinazionali, reti intercontinentali)
![Page 120: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/120.jpg)
Server e client
Server = computer “direttore d’orchestra”, con a bordo il sistema operativo di rete, che coordina tutte le attività (distribuzione di dati, risorse condivise…)
Client: computer connesso alla rete, che utilizza il server per le operazioni necessarie
Da non confondere con: architettura client-server Un componente software gira sul server (componente
server), un altro gira sui client (componente client)
![Page 121: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/121.jpg)
Per connettere tra loro due computer (ma anche due telefoni) occorre che ci sia un mezzo fisico che trasporta i segnali Cavi elettrici Cavi ottici (fibra ottica) Onde elettromagnetiche
Il collegamento può essere effettuato anche con mezzi “misti”
Esempio: con Fastweb mi connetto al sito della NASA, che è su un server negli Stati Uniti Dal mio computer alla centralina Fastweb: cavo Dalla centralina Fastweb al server Fastweb: fibra ottica Dal server Fastweb al server della NASA: satellite
Connessioni fisiche
![Page 122: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/122.jpg)
Comunicazione attraverso messaggi
Ready to get my data?
Yes...
Protocolli di comunicazione
![Page 123: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/123.jpg)
Protocolli
Un protocollo è un insieme di regole che stabiliscono il formato dei messaggi che i computer si scambiano in rete
L’uso dei protocolli rende la comunicazione indipendente dall’hardware (posso connettere un telefonino e un Cray)
Domanda: Il mondo Internet è dominato da un numero impressionante di
protocolli diversi: TCP/IP, POP, IMAP, SMTP, HTTP, HTTPS, WAP,... Perché sono necessari tutti questi protocolli? Non ne basterebbe
uno?
![Page 124: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/124.jpg)
Standardizzazione dei protocolli Fino alla fine degli anni
‘70 la standardizzazione era stata definita solo in parte
Nel 1978 è stato definito lo standard ISO/OSI (o semplicemente OSI)
Non è un protocollo, ma una “regola delle regole” a cui i protocolli devono attenersi
![Page 125: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/125.jpg)
Lo standard OSI (Open Systems Interconnection)
E’ fatto a “strati” o “livelli” (layer) – In gergo si parla di “stack OSI”
Ogni “strato” si occupa di un particolare “aspetto” della comunicazione
Esempio: livello base (livello “fisico”) tensioni scelte per rappresentare le cifre binarie 0 e 1 durata del segnale elettrico che identifica un bit possibilità che il segnale sia bidirezionale eccetera
![Page 126: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/126.jpg)
Un esempio – per capire (1)
Gestione di una lettera (tradizionale): Scrivo la lettera La metto in una busta e la affranco La metto nella cassetta postale L’ufficio postale la prende e legge l’indirizzo Tutte le lettere per la stessa destinazione
vengono messe nello stesso sacco Ogni sacco viene mandato a destinazione L’ufficio postale di destinazione apre tutti i
sacchi Il postino distribuisce le lettere
![Page 127: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/127.jpg)
Un esempio – per capire (2)
Layer “mittente”
Layer “ufficio postale”
Layer “trasporto”
Layer “arrivo a destinazione”
![Page 128: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/128.jpg)
La posta si organizza meglio...
Layer “mittente”
Layer “ufficio postale”
Layer “trasporto”
Layer “arrivo a destinazione”
![Page 129: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/129.jpg)
Internet
Nata essenzialmente per esigenze militari (Arpanet) Un requisito specifico era quello di creare una rete
priva di un “centro” attaccabile dal nemico
E’ il risultato dell’aggregazione di reti diverse, talvolta anche tecnicamente differenti.
Piccole reti locali (LAN) sono collegate a reti metropolitane e territoriali (WAN) che a loro volta sono collegate alle dorsali (Backbone), che trasportano i dati per il mondo intero.
129
![Page 130: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/130.jpg)
130
La rete Arpanet
1969 1971
1973 1975
![Page 131: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/131.jpg)
131
Internet - Paesi connessi (1997)
![Page 132: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/132.jpg)
Problemi fondamentali
Fare in modo che la trasmissione dei dati non debba ricominciare dall’inizio se “cade la linea”
Fare in modo che ci siano più percorsi che connettono due computer
Fare in modo che la “direzione dell’orchestra” non sia affidata a un unico computer
Come si fa a indirizzare i dati verso un particolare computer della rete?
132
![Page 133: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/133.jpg)
Commutazione
Il problema dell’indirizzamento accomuna Internet e le centrali telefoniche
In generale, se ho N “utenti” dovrei tirare un numero di “fili” pari al numero degli utenti per permettere a tutti di parlare con tutti In realtà i fili crescono con il quadrato del numero
degli utenti… Numero di fili = N x (N-1) / 2
Tecniche di commutazione
133
![Page 134: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/134.jpg)
Telefonia - Commutazione di circuito134
In passato era realizzata via hardware
Le cifre del numero di telefono individuano insiemi di utenti sempre più piccoli
La struttura della rete di commutazione è ad albero
Invece che col quadrato di N, il numero di fili cresce (circa) con N
![Page 135: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/135.jpg)
Internet - Commutazione di pacchetto135
Il file viene suddiviso in componenti di circa 1 Kb (pacchetti)
Ad ogni pacchetto viene associata un intestazione che specifica il suo numero d’ordine
Ad ogni pacchetto viene associato l’”indirizzo” del mittente e del destinatario
![Page 136: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/136.jpg)
Protocollo di base: TCP/IP136
TCP (Transmission Control Protocol) corrisponde al layer 4 dell’OSI: Costruzione dei pacchetti, trasmissione/ricezione, ricostruzione dei dati
IP (Internet Protocol) corrisponde al layer 3 dell’OSI: Indirizzamento (Routing)
I pacchetti vengono immessi nella rete come bottiglie nell’oceano
Come funziona questo “miracolo”?
![Page 137: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/137.jpg)
L’Internet Protocol (IP)137
Nel momento in cui un pacchetto arriva a un certo server, esso si domanda se il destinatario fa parte della sua stessa famiglia
Se la risposta è positiva, manda il messaggio a qualsiasi server che faccia parte della sottofamiglia del destinatario
Altrimenti lo manda a qualsiasi server che faccia parte della famiglia principale
![Page 138: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/138.jpg)
138
Indirizzi IP (concetto base)
Esempio di indirizzo IP di classe C
193.205.20.70
Subnet (identificativo della rete)
Computer di destinazione
![Page 139: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/139.jpg)
IPv6
Quella che abbiamo visto era la struttura di un indirizzo IP dei primordi della rete (cosiddetto Ipv4)
Essa permette di disporre al massimo di 232 indirizzi diversi (approssimativamente 4,3 miliardi) Non bastano più!
Si sta passando a una gestione degli indirizzi a 16 byte (IPv6) Permette di indirizzare 2128 = 3,4x1038 (circa) nodi diversi
![Page 140: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/140.jpg)
140
Una rete a commutazione di pacchetto
Sorgente Router 1
Router 2
Router 3
Router 4
Router 5
Router 6
DestinazioneRouter 7
![Page 141: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/141.jpg)
141
La realtà: Internet
![Page 142: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/142.jpg)
Problemi fondamentali risolti
142
Fare in modo che la trasmissione dei dati non debba ricominciare dall’inizio se “cade la linea” Non esiste una “linea” che possa cadere. Se qualche pacchetto
viene perso, il sistema ne chiede nuovamente l’invio
Fare in modo che ci siano più percorsi che connettono due computer Qualsiasi computer della rete è in grado di indirizzare i
pacchetti
Fare in modo che la “direzione dell’orchestra” non sia affidata a un unico computer Non c’è più un direttore d’orchestra; il sistema funziona “per
conto suo”. NB: è un concetto che riprenderemo
![Page 143: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/143.jpg)
DNS (Domain Name System)
143
Gli indirizzi IP sono mappati in apposite tabelle di conversione
Le tabelle sono note a tutti i server sul backbone
Organizzazione gerarchica: SERVER.DOMAIN.TLD (“top level domain”) NB: “a rovescio” rispetto all’indirizzo IP (la famiglia
più grande è a destra)
Esempio www.unimib.it
![Page 144: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/144.jpg)
Uniform Resource Locator (URL) (1)
144
L’individuazione del server non è l’unico problema legato all’accesso Un server di solito contiene molti dati che un
utente di Internet vorrebbe poter scaricare
Uniform Resource Locator (URL) risorsa = qualsiasi cosa sia raggiungibile
attraverso Internet
Un URL specifica con precisione sia il server, sia la risorsa in questione
![Page 145: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/145.jpg)
Uniform Resource Locator (URL) (2)
145
E’ una stringa di caratteri strutturata nel seguente modo: Protocollo da usare (opzionalmente) Nome e password dell’utente che richiede
l’accesso Nome del server Percorso del file da raggiungere Eventualmente dati relativi alla query da eseguire.
Esempio: http://www.psicologia.unimib.it/01_iscriversi/index.php http è il protocollo www.psicologia.unimib.it è il nome del server nel DNS index.php è il file che contiene i dati da visualizzare nel server
specificato.
![Page 146: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/146.jpg)
Il collegamento a Internet146
Per connettersi a Internet è necessario stipulare un contratto con un Internet Service Provider (ISP)
Il contratto può essere gratuito o oneroso a seconda delle modalità del servizio offerto dal provider
Il costo della linea che connette l’utente con il provider può essere fisso (tariffa “flat”) o variabile (scatti telefonici) ed è comunque indipendente dalla localizzazione geografica del server a cui ci si vuole collegare
![Page 147: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/147.jpg)
Connessione a Internet147
LANLAN
locallocal “modem” “modem”
routerrouter
LANLAN
locallocal “modem” “modem”
routerrouterI SP I SP
networknetwork
I nternetI nternetServiceServiceProviderProvider
I SP I SP networknetwork
I nternetI nternetServiceServiceProviderProvider
I SP I SP networknetwork
I nternetI nternetServiceServiceProviderProvider
firewall
firewall: software per filtrare pacchetti IP e/o indirizzi
![Page 148: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/148.jpg)
Servizi di rete148
Una rete è utile in quanto offre ai suoi utenti un certo numero di servizi
Si intende, in generale, la possibilità di accedere a un certo ambito applicativo
Esempio: in una rete aziendale: Accesso a stampanti di rete Accesso a cartelle condivise Intranet …
![Page 149: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/149.jpg)
I servizi di Internet - Classificazione
149
Non è né semplice né univoca
Si possono classificare sulla base dei protocolli richiesti World Wide Web (ce ne occuperemo in seguito) Posta elettronica Trasferimento file Peer-to-peer Telefonia e videotelefonia Altri (ad esempio, Second Life…)
![Page 150: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/150.jpg)
Posta elettronica150
Richiede protocolli dedicati POP, IMAP per la ricezione SMTP per la trasmissione
Dal punto di vista mediatico non è semplicemente un’estensione dell’ordinaria posta Velocità istantanea del servizio Gratuita (a parte il costo dell’ISP)
![Page 151: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/151.jpg)
Posta elettronica vs. posta tradizionale151
Uso dei campi CC e CCN “Copia conoscenza” e “Copia conoscenza
nascosta”) Uso di mailing list Priorità dei messaggi Return receipt Allegati
![Page 152: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/152.jpg)
Trasmissione e ricezione della posta
152
Programmi specifici In passato il “best seller” era Eudora Oggi domina Outlook Tipicamente permettono di gestire InBox, OutBox, Box
per messaggi salvati ma non ancora inviati, cartelle (e sottocartelle) in cui organizzare i messaggi ricevuti
Servizi accessibili dal browser (Web Mail) Webmail Gmail Hotmail …
![Page 153: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/153.jpg)
Problemi della posta elettronica: virus153
Gli allegati di posta sono stati in passato i canali principali di diffusione
Oggi non è più vero E’ possibile contrarre virus anche
semplicemente visitando un sito infetto
Come difendersi? Antivirus In ogni caso: navigare con prudenza
![Page 154: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/154.jpg)
Problemi della posta elettronica: Netiquette
154
Significa “regole di buona educazione in rete”
In generale: evitare qualsiasi comportamento che possa arrecare danno o disturbo ai vostri corrispondenti Inserire sempre il titolo delle mail Evitare di trasferire 20 gigabyte di allegati, o per lo
meno avvisare chi deve ricevere il messaggio! Evitare l’abuso dei messaggi di alta priorità In linea di principio, rispondere alle mail ricevute …
![Page 155: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/155.jpg)
Problemi della posta elettronica: spam155
Con questo termine si intende qualunque messaggio non desiderato
Si va dalla pubblicità a vere e proprie truffe
Un esempio tipico: ricevete dalla vostra banca (apparentemente) un messaggio in cui vi si chiede di andare su un certo sito e immettere i vostri dati
![Page 156: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/156.jpg)
Trasferimento file (FTP)156
FTP = File Transfer Protocol
Permette di realizzare attraverso Internet la connessione diretta a un server
Fornisce al’utente la visibilità di cartelle (e sotto cartelle) condivise
Accesso attraverso browser o programmi dedicati (es WS_FTP)
![Page 157: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/157.jpg)
FTP: vantaggi157
Permette di centralizzare documenti su server rendendoli accessibili da qualsiasi postazione nel mondo Esempio: personale aziendale in missione
Semplice da usare, non richiede competenze tecniche per la connessione
Veloce, non ci sono limiti di spazio
![Page 158: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/158.jpg)
Peer-to-peer (1)158
Tutti i nodi sono “pari”, e fanno da client e da server
File sharing
Esempi: μTorrent, eMule
Sviluppi possibili: diffusione di film e programmi televisivi (in parte già realizzato)
![Page 159: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/159.jpg)
Peer-to-peer (2)159
Come si fa a sapere dove sono i dati? Ci sono due soluzioni
1. Alcuni computer della rete violano la regola del peer-to-peer e di fatto fanno da server Tali computer includono database che associano le
risorse disponibili ai nodi Nel momento in cui si effettua il download, si entra
effettivamente in modalità peer-to-peer
2. Tecnica torrent: i file scaricati sono indici che specificano quali sono i nodi della rete che contengono determinate risorse.
![Page 160: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/160.jpg)
Ascesa e caduta del peer-to-peer?
160
Il traffico P2P è cresciuto con continuità fino al 2009, poi ha mostrato segni evidenti di flessione
Ad esempio, una statistica del 2006 sosteneva che i volumi di dati scambiati in modalità P2P fossero più della metà di tutto il traffico Internet (Web + posta + FTP +…)
Un’altra statistica (dell'osservatorio di ricerca Nielsen): gli utenti peer-to-peer italiani sono passati dai 6,7 milioni di luglio 2009 ai 4,9 milioni di luglio 2010
![Page 161: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/161.jpg)
P2P: Perché è in declino?161
Ci sono almeno due motivi La pressione esercitata dalle major, che
ovviamente temono il dilagare del fenomeno, e spingono perché gli stati si dotino di soluzioni legali per arginarlo
La crescente importanza di altri canali per la diffusione di musica e filmati; in particolare lo streaming su Web
La gara tra P2P e streaming può essere vista come una competizione “genetica” L’utenza esercita una “pressione selettiva”;
sembra evidente che la modalità streaming goda di un piccolo vantaggio…
![Page 162: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/162.jpg)
Telefono e videoconferenza via Internet162
Usano prevalentemente il protocollo VoIP (Voice over IP)
Esempi MSN Messenger (oggi Windows Live
Messenger di Microsoft) Skype Yahoo Messenger
![Page 163: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/163.jpg)
VoIP – Servizi tipici163
Telefonate, anche in conferenza Chiamate a cellulari e rete fissa Trasferimenti di chiamate, segreteria telefonica…
Video chiamate e video conferenze
Chat, SMS, MMS
Condivisione del desktop tra più utenti
Gestione di rubriche
Ricerca di utenti
![Page 164: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/164.jpg)
VoIP: vantaggi164
Costo bassissimo o addirittura nullo per l’utente Esempio: il costo della telefonata non
dipende più dalla distanza; telefonare a Milano o a Sidney ha gli stessi costi
Non richiede un’infrastruttura dedicata diversa da quella già fornita dalla rete Internet Quindi il costo è bassissimo anche per il
provider!
![Page 165: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/165.jpg)
Telefonia fissa165
Prima dell’era del computer: centrali elettromeccaniche
Dall’avvento del computer: centrali completamente gestite via software Commutazione Istradamento Billing (tariffazione) Manutenzione ….
![Page 166: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/166.jpg)
Telefonia fissa - Servizi166
Anche il telefono fisso è in evoluzione
Non si tratta più soltanto di supportare una chiamata, ma di offrire agli utenti una miriade di servizi aggiuntivi, impensabili prima dell’era dell’informatica Follow me Visualizzazione del chiamante su display Segreteria telefonica Spese mensili …
![Page 167: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/167.jpg)
Telefonia mobile167
Sostanziale la ricaduta tecnologica a seguito degli sviluppi dell’hw e del sw
Le generazioni dei telefoni cellulari: Inizio anni ‘80: TACS (1G) Inizio anni ‘90: GSM (2G) Fine anni ‘90: UMTS (3G) 2012: The Next Thing (4G)
![Page 168: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/168.jpg)
Come funziona168
Il terminale (telefonino) è una radio ricetrasmittente
Si connette con la più vicina antenna del sistema mobile
L’hw e il sw associati all’antenna si occupano di istradare la chiamata
Opportune interfacce connettono il sistema alle centrali della rete fissa e alla rete Internet
![Page 169: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/169.jpg)
Le celle del sistema
Il territorio viene virtualmente suddiviso in celle (da cui “telefonia cellulare”)
Al centro di ciascuna cella si trova un’antenna
Il sistema si occupa automaticamente di connettere il terminale mobile all’antenna più vicina (handover)
![Page 170: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/170.jpg)
170
Un esempio: la rete GSM
![Page 171: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/171.jpg)
1G: TACS
Sta per Total Access Communication System
Introdotto negli Stati Uniti nel 1979 e in Europa nel 1981
Permetteva soltanto la trasmissione della voce
Usava segnali analogici
Motorola DynaTac 8000x, 1983
Peso = 800 g, lunghezza = 25 cm, costo = 3895 dollari
![Page 172: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/172.jpg)
2G: GSM172
E’ tuttora in uso
Tecnologia digitale
Ha introdotto gli SMS (Short Message System), che più tardi si sono evoluti in MMS (Multimedia Messaging Service)
Dall’introduzione del protocollo WAP ha permesso la connessione a Internet
![Page 173: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/173.jpg)
3G: UMTS173
E’ lo standard più avanzato disponibile oggi
La copertura non è ancora capillare come quella del GSM (che di fatto non è ancora morto)
Permette videochiamate, connessione a Internet, invio e ricezione di immagini, filmati ecc.
![Page 174: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/174.jpg)
4G: il futuro (?)174
Invio e ricezione di dati su banda larga
Possibilità di ricevere trasmissioni in streaming di alta qualità
Attualmente attivo in Italia solo in alcune città
![Page 175: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/175.jpg)
Gli SMS175
La nascita del sistema SMS è curiosa e interessante
Gli SMS vennero pensati in origine per permettere la trasmissione di brevi messaggi ad uso e consumo del personale che gestiva il sistema
A qualcuno venne in mente di renderli accessibili anche agli utenti finali
Magari se ne faranno qualcosa, pensarono… Volumi totali: nel 2000, 17 miliardi di messaggi
worldwide, nel 2004 sono diventati 500 miliardi
![Page 176: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/176.jpg)
L’evoluzione dei terminali176
Ha avuto un’importanza non minore di quella delle reti di telefonia mobile
Già dal TACS al GSM si era passati da oggetti scomodi e ingombranti a telefonini che potevano essere messi nel taschino della camicia
Il passo successivo è avvenuto all’insegna dellaCONVERGENZA
di tecnologie diverse
![Page 177: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/177.jpg)
Computer palmari177
Cioè computer che stanno nel palmo della mano
Detti anche PDA (Personal Digital Assistant)
Primo esempio di palmare: MessagePad di Apple (1993) Scarso successo commerciale
Concepito come “computer da viaggio”, ad uso dei manager Tra le funzionalità fondamentali, la possibilità di caricare e
scaricare dati da altri computer attraverso porte infrarosse e Bluetooth
![Page 178: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/178.jpg)
Convergenza178
Telefonia mobile + Palmare = Smartphone
E’ un PDA con capacità telefoniche, oppure un computer con telefono incorporato? Entrambe le cose
Caratteristica fondamentale: possibilità di installare applicativi Che possono essere prodotti dalla casa madre o
da terze parti (dipende dagli smartphone)
![Page 179: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/179.jpg)
Esempi179
Blackberry
Windows phone
iPhone di Apple Lanciato il 29 giugno 2007 Il 10 settembre dello stesso anno la Apple
annunciò di avere venduto un milione di esemplari
In versione 3G (2008), lo stesso risultato è stato raggiunto a tre giorni dal lancio!
![Page 180: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/180.jpg)
iPhone
Può essere considerato oggi lo standard di questa classe di dispositivi
E’ al punto di convergenza tra telefonino, PDA e iPod (lettore musicale)
![Page 181: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/181.jpg)
Le App181
Applicazioni (programmi) per smartphone Mobile App: installata sul terminale Web App: il software risiede su qualche
server della rete
Strumenti di accesso a Internet alternativi al browser
![Page 182: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/182.jpg)
Geolocalizzazione
Sistema GSM (Global Positioning System) Realizzato attraverso una rete di satelliti
geostazionari I satelliti inviano segnali; il terminale li riceve
ed è in grado di effettuare una triangolazione
Navigatori
Forte integrazione con le App
![Page 183: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/183.jpg)
Indice
Che cos’è l’informatica Storia del computer Algoritmi Reti di computer e Internet (cenni) Il Web
![Page 184: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/184.jpg)
Il World Wide Web184
Un immenso ipertesto multimediale, costruito con il supporto della rete Internet
E’stato inventato da Tim Berners Lee nel 1990, nell’ambito di un progetto di ricerca al CERN di Ginevra
![Page 185: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/185.jpg)
Le fasi della storia del Web185
![Page 186: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/186.jpg)
La “bolla” delle dot-com (1)186
Dot-com: un’azienda che realizza la maggior parte del suo business attraverso internet
Nella seconda metà degli anni ’90, a partire dallo straordinario lancio in borsa di Netscape, e per la grande disponibilità di venture capital, furono create numerosissime dot-com, con l’obiettivo di un rapido collocamento in borsa
Molte avevano un business model del tutto irrealistico
Ne seguì una “bolla” speculativa al Nasdaq, che culminò con il picco del 10 marzo 2000 (indice: 5132), e successivo crollo, con fallimenti a catena che paralizzarono le iniziative per diversi anni
![Page 187: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/187.jpg)
La “bolla” delle dot-com (2) 187
![Page 188: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/188.jpg)
La “bolla” delle dot-com (3)188
Vale la pena di esaminare quello che è successo più in dettaglio
Nelle due slide che seguono sono presentati dati “vecchi” (fino al 2002 – 2003) relativi al numero di siti Web e al numero di host internet (rete fisica)
![Page 189: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/189.jpg)
Numero di siti web fino al 2003
189
La caduta (rispecchia il crollo del NASDAQ)
![Page 190: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/190.jpg)
Numero di host Internet fino al 2002190
Dov’è il crollo?
![Page 191: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/191.jpg)
La crescita del web nel mondo (1)
191
Crisi della new economy(2000 – 2003)
Boom dei blog (2007)
60% del totale
![Page 192: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/192.jpg)
La crescita del web nel mondo (2)
192
Il grafico evidenzia come il Web abbia superato la bolla del 2000
La discesa è evidente, tuttavia il trend di crescita è ripreso
![Page 193: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/193.jpg)
Evoluzione del Web193
A partire dagli inizi del secolo, l’importanza dei siti nati a scopo comunicativo è andata crescendo rispetto ai siti uno a molti
A partire dal 2004 è diventato evidente che la modalità comunicativa principale nel Web non era più di tipo uno a molti Si è cominciato a parlare di “Web 2.0” per
intendere l’insieme dei siti il cui scopo fondamentale era quello di realizzare un nuovo tipo di modalità comunicativa molti a molti
![Page 194: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/194.jpg)
Web 2.0194
Il termine “Web 2.0” è stato lanciato dalla prima O’Reilly Media Web 2.0 Conference (Ottobre 2004)
Da allora ne sono state date molte definizioni
Esempio: Wikipedia Si tende ad indicare come Web 2.0 l'insieme di tutte quelle
applicazioni online che permettono uno spiccato livello di interazione sito-utente (blog, forum, chat, sistemi quali Wikipedia, Youtube, Facebook, Myspace, Gmail, ecc.)
(il Web 2.0 definisce sé stesso)
![Page 195: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/195.jpg)
Web 2.0 vs 1.0195
Web 2.0: Non c’è una sostanziale differenza tecnologica
rispetto al Web 1.0 La differenza è di tipo sociale e culturale: una
rete di siti si è trasformata in una rete di utenti
Il Web 1.0 non è mai morto. In questo momento esistono siti di tipo 1.0 e di tipo 2.0 Ma non esistono quasi più siti puramente statici
di tipo 1.0
![Page 196: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/196.jpg)
Aspetti fondamentali del 2.0196
1. Contenuti auto-prodotti La distinzione tra webmaster e utente diventa
evanescente
2. Siti come luoghi sociali Il sito è un mediatore per la comunicazione sociale La rete di siti si trasforma in una rete di utenti
3. Cloud computing Le applicazioni software diventano oggetti disponibili in
rete I dati non sono più (necessariamente) sul computer
dell’utente
![Page 197: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/197.jpg)
Web 2.0: Cloud computing197
Insieme di tecnologie informatiche che permettono l'utilizzo di risorse hardware o software attraverso la rete.
Tre tipologie base: SaaS (Software as a Service) – Programmi accessibili
attraverso il Web PaaS (Platform as a Service) – Uso di piattaforme software
via Web IaaS (Infrastructure as a Service) - Utilizzo di risorse
hardware in remoto
L’IaaS è connesso all’aspetto del cosiddetto hosting
![Page 198: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/198.jpg)
Web 2.0: Perpetual beta198
Terminologia: versione beta di un programma = versione non necessariamente del tutto stabile, rilasciata solo a un piccolo numero di utenti pilota per le “prove finali”
Nel contesto del cloud computing è nato il termine “perpetual beta” Le versioni in linea dei programmi vengono aggiornate
continuamente Per lo più sono gratis, o a costi bassissimi L’utente si rassegna al fatto che possano non essere
completamente funzionali Le case non si prendono responsabilità
![Page 199: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/199.jpg)
Web 3.0199
Identificato da (quasi) tutti con il Web semantico
Metadati associati alle pagine Ricerche precise, non legate alla lingua Relazioni tra informazioni Strumenti automatici di esplorazione Link dinamici
![Page 200: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/200.jpg)
Il W3C200
Sta per World Wide Web Consortium
Fondato da Tim Berners Lee nel 1994 al MIT
Include aziende, enti di ricerca, università ecc.
Ha (essenzialmente) lo scopo di definire gli standard nel mondo Web; tra gli altri ha definito URL HTTP HTML XML …
![Page 201: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/201.jpg)
Protocollo HTTP201
Sta per HyperText Transfer Protocol
E’ stato definito per gli scopi specifici del Web Trasferimento di oggetti multimediali Trasferimento di documenti con collegamenti, dove gli
oggetti collegati possono risiedere su server diversi da quello connesso (tipicamente lo fanno)
Ha due componenti: una client (lato browser) per la gestione delle richieste, una lato server per l’invio dei dati relativi
Ha la caratteristica di chiudere la connessione al termine di ogni richiesta
![Page 202: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/202.jpg)
Protocollo HTTP: un esempio
202
• browser: richiede un file
• server: invia il file e chiude la connessione
• browser: esamina il file, lo formatta, se trova dei tag relativi a oggetti diversi li richiede al server
• server: Invia i nuovi file e chiude la connessione
• browser: Visualizza gli oggetti (se ne conosce il formato, es. immagini gif)
attiva l’esecuzione di programmi speciali attiva i plug-in (se configurati), altrimenti chiede all’utente (es: dove salvare un file?)
Usa la cache (un’area speciale del disco) per accelerare la visualizzazione
![Page 203: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/203.jpg)
HTTP è privo di stati203
Il fatto che la connessione venga chiusa dopo ogni richiesta rende la comunicazione molto semplice L’alternativa sarebbe l’uso di sessioni, usate spesso per
creare comunicazioni protette quando lo scambio di informazioni non può esaurirsi in un colpo solo
Il protocollo, tuttavia, non consente la definizione di stati Esempio: gestione del carrello, immissione dei dati relativi
alla carta di credito ecc.
A volte è un problema. Per risolverlo si usano varie tecniche Esempio: cookies
![Page 204: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/204.jpg)
HTTP non è protetto204
I dati non sono crittati, l’informazione viaggia in chiaro Problema: hacker, trasferimento di informazioni
sensibili
E’ stato definito il protocollo HTTPS, molto simile all’HTTP con la differenza che l’informazione è crittata Usato per esempio nelle transizioni bancarie
Vedremo più avanti un uso più “fantasioso” di HTTPS…
![Page 205: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/205.jpg)
HTML205
Sta per Hyper Text Markup Language
Un file HTML non è altro che un documento di testo che contiene oltre al testo della pagina anche le istruzioni (tag) relative alla formattazione del testo e degli altri oggetti multimediali presenti nel documento
E’ un esempio di “markup language”
![Page 206: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/206.jpg)
Linguaggi di markup206
Ne sono stati definiti diversi
Il problema è quello di “standardizzare” le istruzioni di formato tra applicazioni diverse Un programma come Word usa internamente codici ASCII tra 1
e 31 per identificare operazioni di formato (corsivo, grassetto, stile paragrafo ecc.)
Ciascun programma usa i propri codici Anche per evitare “cloni”
In un ML, al posto dei codici vengono usate stringhe di testo con opportuni formati
![Page 207: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/207.jpg)
Linguaggi di markup (esempi)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it" dir="ltr">
<head>
<title>Hypertext Transfer Protocol - Wikipedia</title>
HTML
RTF
\insrsid13663483 Il formato RTF}{\rtlch\fcs1 \af1 \ltrch\fcs0 \insrsid12680474
La sigla sta per }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid13663483\charrsid13663483 Rich Text Format}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13663483 . E\rquote un formato di testo con }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid13663483\charrsid13663483 tag}
![Page 208: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/208.jpg)
Esempi di tag HTML208
(Non li dovete imparare!) … <address> Definisce un indirizzo <area> Definisce un’ area all’interno della mappa di un’ immagine <b> Definisce il testo in grassetto <base> Definisce una URL di base per tutti i link nella pagina <bdo> Definisce la direzione del testo (sinistra-destra o destra-
sinistra) <big> Definisce del testo in grande <blockquote> Definisce una citazione lunga <body> Definisce il corpo della pagina <br> Inserisce il ritorno a capo <button> Definisce un bottone …
NB: sono fissi e predefiniti!
![Page 209: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/209.jpg)
Problemi che HTML non risolve
209
1. Possibilità di costruire un tag In moltissimi casi è utile o essenziale
2. Aggiornamento di grandi quantità di testo (es: giornali) Se devo modificare la prima pagina del Corriere
online, dovrei scriverla tutta in HTML. Vero che ci sono programmi che convertono automaticamente il testo, però…
3. Accesso a database (es: prenotazioni di voli)
![Page 210: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/210.jpg)
1 – Il linguaggio XML (1)210
Sta per eXtensible Markup Language
E’ stato definito dal W3C nel 1998
Ammette la creazione di tag
Permette una descrizione analitica e modulare dei dati Questo lo rende utile non solo nel mondo Web
Fa parte della categoria dei cosiddetti metalinguaggi Linguaggi che permettono di definire altri linguaggi
![Page 211: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/211.jpg)
1 – Il linguaggio XML (2) – Un esempio211
<?xml version="1.0" encoding="UTF-8"?>
<utenti>
<utente>
<nome>Luca</nome>
<cognome>Ruggero</cognome>
<indirizzo>Milano</indirizzo>
</utente>
<utente>
<nome>Max</nome>
<cognome>Rossi</cognome>
<indirizzo>Roma</indirizzo>
</utente>
</utenti>
![Page 212: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/212.jpg)
1 – Il linguaggio XML (3)212
Come HTML utilizza puro testo (senza caratteri di controllo)
Descrive solo i dati. Come si fa a capire come gestirli? Ad esempio, il tag HTML <Title> definisce il titolo della
pagina. E’ standard dunque il browser “sa” come gestirlo. Ma come gestisco <utente> o <nome>?
Si usano file “di stile” (XLS o XLST) che permettono al programma (ad esempio al browser) di tradurre i tag negli “effetti” desiderati Questo permette di usare lo stesso file XML in contesti
completamente diversi!
![Page 213: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/213.jpg)
1 – Il linguaggio XML (4)213
![Page 214: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/214.jpg)
2 – Sistemi di Content Management (CMS) (1)
214
Riprendiamo l’esempio del giornale
Un giornale online ha degli spazi fissi nella pagina, che andranno riempiti con articoli, immagini ecc.
Gli spazi sono sempre dello stesso tipo, oppure afferiranno a un piccolo numero di tipologie diverse
Sarebbe utile separare la gestione degli spazi dal loro riempimento Cioè fare in modo che chi si occupa dei contenuti
debba solo scrivere i testi, scegliere le immagini ecc., senza doversi occupare di riportarli sulla pagina
![Page 215: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/215.jpg)
2 – Sistemi di Content Management (CMS) (2)
215
Questo è esattamente quello che fa un Content Management System
Il programma è installato sul server di gestione delle informazioni
Ha (tipicamente) due componenti: Una permette la modifica dei contenuti L’altra la loro pubblicazione negli spazi
previsti, in un formato leggibile dal browser
![Page 216: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/216.jpg)
2 – Sistemi di Content Management (CMS) (3)
216
![Page 217: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/217.jpg)
2 – CSS217
Fogli di stile a cascata (Cascading Style Sheets)
Permettono di separare i contenuti dalla presentazione Semplificazione del codice Velocità di aggiornamento Estendibilità a palmari e smartphone
![Page 218: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/218.jpg)
3 – Accesso a database (1)218
Facciamo un esempio: Vado su Amazon Cerco il film “Il corsaro dell’isola verde” in DVD Il motore di ricerca mi informa che è disponibile a 7,50 euro Lo aggiungo al “carrello”
Come fa il sistema a sapere che il film è disponibile?
Come fa a sapere cosa ho aggiunto al carrello? Sono informazioni che andrebbero gestite con un database
E’ essenziale disporre di strumenti che permettano di interfacciarsi con database Trasformare le richieste che vengono dal browser in query Trasformare i report di risposta in HTML o altro
![Page 219: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/219.jpg)
3 – Accesso a database (2)219
Si usano varie tecniche:
ASP (Active Server Pages): pagine web che contengono liste di istruzioni che a loro volta permettono al server di generare dinamicamente contenuti HTML a fronte di richieste Tecnologia di casa Microsoft Le istruzioni sono scritte in opportuni linguaggi
Linguaggi di programmazione adatti allo scopo (es. Java) Non entro nel dettaglio
![Page 220: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/220.jpg)
Web 2.0: Tecnologia220
Unica innovazione 2.0: tecniche di mash-up (miscuglio)
Semplice da realizzare, non richiede conoscenze informatiche approfondite
Un esempio di mashup è dato dall’unione di Google Maps e Flickr che consente di visualizzare su una mappa le foto relative alla zona selezionata
![Page 221: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/221.jpg)
Mash-up: i Web feed221
Web feed: un generico insieme di contenuti informativi, espressi in un formato stabilito (di solito basato su XML) in modo che sia interscambiabile tra diverse applicazioni Tecnologia: Atom o RSS Feed
I feed vengono resi disponibili da distributori di contenuto (content sources, es. blog e siti web) e raccolti da aggregatori (o feed readers)
L’utente, dopo essersi abbonato (subscription) a un feed, riceve “automaticamente” gli aggiornamenti
![Page 222: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/222.jpg)
Il browser
Programma (client) per esplorare il Web Rendering di pagine Basta digitare l’URL del sito nella barra dell’indirizzo Permette di seguire il link ipertestuali
I principali browser sono: MS Internet Explorer Google Chrome Mozilla Firefox Safari Opera
![Page 223: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/223.jpg)
La prima guerra dei browser (1992 – 1998)
223
Browser = programma client per accedere al Web Remember: Client, in generale, è un programma in grado di
interrogare un server remoto e di presentare i risultati La disponibilità dei browser è quello che permise al Web di uscire dai
confini del CERN di Ginevra e di invadere il pianeta
Primo browser commerciale: Mosaic (1992)
Soppiantato a partire dal 1994 da Netscape Navigator
A partire dal 1998 Microsoft integra Explorer nel sistema operativo. Explorer non solo è gratis, ma è praticamente una scelta forzata degli
utenti Windows Questo ha scatenato una guerra legale. Nel 2000 Microsoft è stata
costretta a rendere “disinstallabile” Internet Explorer
![Page 224: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/224.jpg)
La seconda guerra dei browser (2004 – oggi)
224
La quota di mercato di Internet Explorer è scesa: 2004: oltre il 90% 2005: 85% 2009: 65,5% 2011: 53,7%
In questo momento la competizione è durissima IE (tenendo conto di tutte le versioni) è tuttora in
testa per i PC Safari sembra essere in testa per i dispositivi mobili
![Page 225: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/225.jpg)
Motori di ricerca
Secondo il sito Wolfram Alpha, in questo momento il numero stimato di siti web è 625,3 milioni Non è possibile raggiungere i contenuti che
interessano accedendo direttamente ai singoli siti; occorrono strumenti di ricerca
Il problema si è posto fin dalla prima diffusione del Web
![Page 226: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/226.jpg)
Motore di ricerca: che cos’è
Un motore di ricerca è un algoritmo che permette di ottenere un elenco di pagine che contengono una certa chiave testuale di ricerca
Sul Web i motori di ricerca sono ospitati da appositi siti (es. Google)
![Page 227: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/227.jpg)
Information Retrieval
I motori di ricerca si basano su una tecnologia detta Information Retrieval Permette di effettuare ricerche su grandi
archivi documentali Basata sulla costruzione di indici di parole
Due fasi diverse: Costruzione dell’indice Interrogazione
![Page 228: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/228.jpg)
Motore di ricerca: come funziona Periodicamente viene attivato un programma
che esplora il Web, e tiene traccia delle parole che incontra Detto crawler (o robot, o bot)
Aggiorna un indice che risiede su un server gestito dal sito
Quando l’utente interroga l’indice, gli viene restituita la Search Engine Results Page (SERP)
![Page 229: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/229.jpg)
L’aspetto critico di un motore di ricerca
Se la ricerca è generica, la SERP può includere molte migliaia di pagine
E’ fondamentale che le pagine “più interessanti” siano quelle mostrate per prime
![Page 230: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/230.jpg)
Evoluzione dei motori di ricerca Prima del 1997 i motori di ricerca più
utilizzati erano: Yahoo Altavista Excite …
Dal 1997 è dominante Google Algoritmo PageRank
![Page 231: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/231.jpg)
PageRank
A ogni pagina incontrata viene assegnato un “peso”
Esso dipende: Dal numero di pagine che connettono
quella pagina Dal loro peso
La SERP mostra i risultati in un ordine (rank) che dipende dai pesi
![Page 232: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/232.jpg)
Il problema semantico
Le ricerche effettuate con i motori di ricerca sono testuali, non semantiche “Casa” è diverso da “case”, da “house” da
“maison” ecc. Il problema è stato in parte risolto grazie
all’uso di dizionari associati ai motori di ricerca
Un esempio: “Il capo della più grande software house del
mondo”: chi è?
![Page 233: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/233.jpg)
Web e semantica
Il Web tassonomico è uno dei progetti associati al cosiddetto 3.0 Fortemente sponsorizzato da Tim Berners-
Lee Per il momento non realizzato
Una soluzione “nata dal basso” è quella dei tag
![Page 234: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/234.jpg)
Tagging234
I tag sono parole chiave assegnate dagli utenti senza nessun controllo centrale Semantici Ridondanti
Il sistema dei tag non si pone il problema di essere coerente Tag ridondanti restano tali Tag “inutili” non vengono rimossi Non esistono meccanismi di rimappatura
![Page 235: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/235.jpg)
Folksonomie235
Neologismo (= tassonomie definite dalla gente)
Non è un termine preciso Una tassonomia è uno schema
interpretativo della semantica Una folksonomia è solo un insieme di tag
privo di struttura
![Page 236: Introduzione all’informatica](https://reader031.vdocuments.mx/reader031/viewer/2022012922/548ebe3bb479598d5a8b47a1/html5/thumbnails/236.jpg)
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/