Introduzione all’informatica

1,344 views

Published on

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

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,344
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
62
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introduzione all’informatica

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

×