Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Riassunto “FLUENCY. Conoscere e usare l’informatica”., Sintesi del corso di Fondamenti di informatica

Riassunto dettagliato del libro FLUENCY

Tipologia: Sintesi del corso

2020/2021
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 15/06/2021

AuroraCerioni99
AuroraCerioni99 🇮🇹

4.2

(33)

8 documenti

1 / 39

Toggle sidebar
Discount

In offerta

Spesso scaricati insieme


Documenti correlati


Anteprima parziale del testo

Scarica Riassunto “FLUENCY. Conoscere e usare l’informatica”. e più Sintesi del corso in PDF di Fondamenti di informatica solo su Docsity! FLUENCY CONOSCERE E USARE L’INFORMATICA 1 Parte I CAPITOLO 1 DEFINIRE L’INFORMATION TECHNOLOGY 1.1 I CONCETTI PRINCIPALI DELL’INFORMATICA Otto sviluppi più importanti che hanno portato la computazione digitale al livello odierno: • digitalizzazione delle informazioni; • computer che memorizzano programmi; • transitor; • circuiti integrati; • computer “personali”; • Internet; • Word Wide Web; • sviluppo a strati di software. 1.1.1 La digitalizzazione delle informazioni Herman Hollerith si identifica come l’uomo del primo impegno “produttivo” di informazioni digitali. Inventò e brevettò la tabulatrice, una macchina per codificare i dati, in forma di fori praticati sulle schede e per elaborarli. 1.1.2 I computer che memorizzano i programmi L’idea di Hollerith ebbe un grandissimo successo. Le schede perforate furono la principale tecnologia digitale per circa 75 anni. Ma non erano perfette. Solo, esclusivamente, hardware. Le macchine tabulatrici erano apparecchi elettromeccanici. Erano esclusivamente hardware. Per cambiare il funzionamento di queste macchine occorreva modificarle fisicamente, cambiando l’impianto elettrico. Il problema principale era che le macchine tabulatrici potevano svolgere elaborazioni solo molto semplici. Mettere il programma in memoria. Il computer elettronico ha risolto il problema del “ricablaggio” utilizzano la CPU, in grado di eseguire le istruzioni conservate nella memoria del computer. Questo cambiò essenzialmente le istruzioni, che passarono da essere fisiche, ossia l’impianto elettrico “hard” della macchina, a essere elettroniche, ossia i bit “soft” della memoria. Da qui il nome software. L’invenzione della CPU per intraprendere le istruzioni ha rappresentato un avanzamento straordinario, ed è una caratteristica significativa dei computer digitali. 1.1.3 Il passaggio ai transistor Nel 1956 tre ricercatori, John Bardeen, Walter Bartain e William Shockley, ricevettero il premio Nobel per la loro invenzioni del 1947: il transistor a semiconduttore. I transistor risolvevano i problemi più complessi che i progettisti di computer dovevano affrontare. Punti di forza dei transistor: -basso consumo; -grande affidabilità; -compattezza e leggerezza. Queste tre caratteristiche rivoluzionarono il mondo dell’elettronica. I computer divennero compatti, affidabili ed economici. Ciò rese i computer abbordabili, ma soprattutto permise l’uso di CPU molto più complesse. 2 1.4 PAROLE CHE ESPRIMONO CONCETTI • Astrazione: In informatica si estraggono idee e processi da qualche tipo di informazione. 
 In particolare , astrarre significa estrarre da una situazione io concetto di base, l’idea o il processo.
 Il concetto astratto viene normalmente espresso in un’altra forma che è chiamato astrazione.
 Nell’astrazione è necessario decidere quali dettagli sono rilevanti e quali no. Quindi per effettuare l’astrazione, è fondamentale saper distinguerei dettagli importanti da quelli irrilevanti.
 In informatica è essenziale separare ciò che è rilevante da ciò che è irrilevante.
 • Generalizzazione: Generalizzare significa esprimere un’idea, un concetto o un processo che si applica a diverse situazioni l’affermazione che riassume tale concetto è chiamata generalizzazione. 
 • Sintonia operativa: Essere in sintonia operativa significa applicare ciò che sappiamo sul funzionamento di un dispositivo o di un sistema, per semplificarne l’uso.
 • Mnemonico: Un mezzo mnemonico è un ausilio per ricordare qualcosa. 1.5 INTERFACCIA PERSONA COMPUTER 1.5.2 Feedback I computer danno sempre all’utente un feedback su “quello che sta accadendo”. Un feedback è una qualche indicazione che il computer sta ancora lavorando oppure ha completato la richiesta. Il feedback può assumere varie forme, a richiesta dell’operazione richiesta dall’utente. 1.5.3 Una nuova istanza Ogni specifico gruppo di informazioni (un’immagine, un mese o un documento) è un’istanza. 1.6 LA RIPRODUCIBILITÀ PERFETTA I computer codificano le informazioni come una sequenza di cifre binarie, a causa dell’uso dei numeri le chiamiamo informazioni digitali . Per il fatto di utilizzare solo i valori 0 e 1, l’informazione digitale offre numerosi vantaggi, primo fra tutti la possibilità di essere riprodotta e replicata perfettamente. Inoltre, poiché si tratta di una sequenza digitale, possiamo verificare di continuo che le due sequenze siano identiche, controllando che nella copia non siano stati introdotti errori. La copia sarà identica all’originale: la perfetta riproducibilità non è una proprietà dell’informazione analogica, che viene fruita su un supporto che può variare con continuità, mentre la codifica digitale impone un numero limitato di colori e della loro intensità. Questa è la caratteristica fondamentale dell’informazione digitale: la proprietà della perfetta riproducibilità. 1.7 CIÒ CHE VEDIAMO È CIÒ CHE PENSIAMO 1.7.1 Metafore Una metafora è un’icona o un’immagine o un concetto utilizzato per rappresentare o per simboleggiare una computazione. Quando i progettisti creano una tecnologia, impiegano metafore per aiutare gli utenti a utilizzare i loro apparecchi senza leggerne i manuali. 1.7.2 Il desktop: metafora di una scrivania I progettisti del PARC hanno adottato la metafora della scrivania: ciò che l’utente vede sullo schermo è una scrivania virtuale. I progettisti inventarono il concetto di visualizzazione dei documenti con finestre sovrapposte, come se fossero fogli di carta sulla scrivania. 1.7.3 La metafora tattile Quando i computer sono diventati mobili, il mouse diventava un problema: come applicare il mouse a un dispositivo che si tiene in mano? Sia l’assenza del mouse sia lo scarso interesse verso gli utilizzi propri del “desktop” con i nuovi dispositivi, hanno fatto si che avesse senso adottare una nuova metafora, una metafora tattile. 5 CAPITOLO 2 IL FUNZIONAMENTO DELLE RETI Internet è costituita dalla totalità di cavi, fibre, commutatori, computer, collegamenti satellitari e tutti gli altri dispositivi dedicati alla trasmissione dell’informazione tra computer dotati di indirizzo. 2.1 TIPI DI COMUNICAZIONE 2.1.1 Concetti generali Le comunicazioni tra due entità possono essere separate in due grandi classi: sincrone e asincrone. Una comunicazione sincrona richiede che il mittente e il destinatario siano attivi nello stesso momento. Nella comunicazione asincrona l’invio e la ricezione hanno luogo in due momenti diversi. Un’altra caratteristica della comunicazione riguarda il numero dei riceventi. La comunicazione broadcast prevede una singola fonte e molti ascoltatori. Quando i riceventi sono molti, ma non l’intera popolazione, si parla di comunicazione multicast. All’altro estremo rispetto al broadcasting e multicasting si pone la comunicazione point-to-point. La caratteristica di una comunicazione di essere broadcast piuttosto che point-to-point è completamente distinta da quella di essere sincrona e asincrona. 2.1.2 Caratteristiche della comunicazione via Internet Internet supporta una comunicazione asincrona e point-to-point. La sua caratteristica fondamentale è di costituire una struttura generale che connette tutti i computer a essa collegati. In altre parole, i computer e le reti diventano un singolo mezzo, che può dare origine a modalità alternative di forme di comunicazione consolidate. Internet è abbastanza veloce da sostenere comunicazioni sincrone. Inoltre è possibile anche utilizzare il multicasting. Infine, grazie alla possibilità di pubblicare pagine web o di caricare filmati, la Rete offre anche una forma dì broadcasting. Si può davvero dire che Internet rappresenti un mezzo di comunicazione universale. Inoltre la rete diventa sempre più potente ogni volta che viene collegato un nuovo computer. 2.1.3 L’architettura client/server La maggior parte degli scambi di informazione su internet utilizza un protocollo noto come interazione client/ server. Un incontro fugace. La pagina su cui è memorizzata la pagina web richiesta funge da computer server, da cui il nome server web. Il termine “client” si riferisce a qualsiasi situazione in cui un computer richiede servizi a un server. Come risultato della vostra richiesta, il server invia il contenuto della pagina attraverso la Rete. Questo completa l’operazione avviata dal vostro clic e conclude l’operazione client/server. La struttura client/server è fondamentale per tutte le interazioni che hanno luogo attraverso Internet. Due soluzioni. I siti web usano due soluzioni di base per dare l’illusione di una connessione continua con il protocollo client/ server. • Cookie: piccoli file memorizzati dal server sul computer client e restituiti al server insieme a ogni richiesta di pagina. • Parametri URL: informazioni aggiunte dal cliente all’URL quando si connette al server. 6 2.2 IL MEZZO E IL MESSAGGIO 2.2.1 Nomi e indirizzi dei computer Le comunicazioni dei computer sono point-to-point. Ogni volta che si sfrutta questa modalità di trasmissione è sempre necessario specificare l’indirizzo di destinazione. Indirizzo IP. Ogni computer collegato a internet riceve un indirizzo distinto, che prende il nome di indirizzo IP (Internet Protocol). Un indirizzo IP è composto da una serie di quattro numeri separati da punti. Ognuno dei quattro numeri ha un ampio intervallo di valori (0-255), il che permette di generare miliardi di indirizzi IP diversi. Pacchetto IP. Un computer comunica con un altro computer inviando un pacchetto IP al suo indirizzo IP. Il pacchetto contiene gli indirizzi IP del computer destinatario e del computer mittente; ha anche un numero progressivo, alcuni bit utilizzati per motivi tecnici e un carico. Il carico (payload) è ciò che viene inviato e può essere un solo byte o anche migliaia di byte. Instradamento (routing) e commutazione (switching). Internet è costituita da molti commutatori (switch) e instradatori (router). Quando un pacchetto IP arriva a uno switch, quest’ultimo legge l’indirizzo IP di destinazione, stabilisce quali dei router a cui è collegato porterà il pacchetto più vicino alla destinazione e gli inoltra il pacchetto. La transizione di un router all’altro è detta salto (hop). Molti percorsi. Tutti i router e gli switch sono connessi a diversi altri, e possono inviare pacchetti a qualsiasi router vicino. Il risultato è che i pacchetti IP diretti verso la stessa destinazione possono seguire percorsi diversi. Trace Route. Poiché due pacchetti possono seguire percorsi diversi verso la stessa destinazione, gli ingegneri di rete registrano i percorsi seguiti dai pacchetti con uno strumento denominato Trace Route. 2.2.2 Seguire il protocollo Il processo di invio utilizza un protocollo di nome TCP/IP (Transmission Control Protocol/ Internet Protocol). È possibile inviare una quantità qualsiasi di informazione, spezzandola in una sequenza di piccole unità di dimensione prefissata. Un pacchetto IP contiene lo spazio per scrivere un’unità di informazione, l’indirizzo IP del destinatario e un numero progressivo. I pacchetti IP sono “riempiti’ in ordine e sono numerati; quindi inviati attraverso Internet uno alla volta usando diversi itinerari disponibili. Giunti a destinazione i pacchetti sono riordinati secondo la sequenza, così da rimettere insieme l’informazione originale. 2.2.3 Vicini e lontani: reti locali e reti geografiche Internet è una collezione di reti geografiche (WAN, Wide Area Network), ovvero di reti progettate per inviare informazioni tra località molto distanti e non collegate direttamente. Internet è una collezione di canali point-to-point, e i pacchetti devono transitare attraverso una serie di computer per giungere a destinazione. Quando i computer sono abbastanza vicini da poter essere collegati direttamente da cin cavo, si parla di rete locale (LAN, Local Area Network). Ethernet è la tecnologia più diffusa per questo tipo di reti, e si presta bene al collegamento dei computer in un singolo laboratorio o edificio. Una rete Ethernet adotta un approccio radicalmente diverso rispetto a Internet. Ethernet, la configurazione. Il mezzo fisico di trasmissione di una rete Ethernet può essere un cavo coassiale, un doppino o una fibra ottica. Questo mezzo si chiama canale e collega tutti i computer che fanno parte di un gruppo. Ogni computer è fisicamente attaccato al canale e può quindi inviare un segnale sotto forma di impulso elettronico o lampo di luce. Tutti i computer collegati possono rilevare i segnali inviati: in questo modo il canale realizza una comunicazione di tipo broadcast. 7 CAPITOLO 3 INTRODUZIONE A HTML5 Le pagine web vengono create, memorizzate e inviate in forma codificata; sono i browser a trasformarle nell’immagine che possiamo vedere sullo schermo. L’HyperText Markup Language (HTML) è il linguaggio principale usato per definire l’aspetto di una pagina web. Per mezzo di HTML è possibile specificare caratteristiche come il colore dello sfondo, il carattere utilizzato e il layout della pagina. 3.1 MARCARE UN TESTO CON HTML5 HTML è un linguaggio molto semplice: le parole che compongono la pagina web sono strutturate per mezzo di tag. HTML5 è l’ultima versione del linguaggio. HTML5 rappresenta l’ultima versione all’interno di un processo di costante aggiornamento dello standard. 3.1.1 Formattare con i tag I tag sono parole o sigle racchiuse tra parentesi angolari, cioè i segni di minore (<) e maggiore (>), come per esempio <tutte>. I tag si usano quasi sempre a coppie: il secondo, quello di “chiusura”, si distingue perché contiene lo slash (/). In HTML5 i tag devono obbligatoriamente essere scritti con caratteri minuscoli (es. <title> Roger Federer, campione di tennis </title>. I due tag possono essere considerati segnali di “inizio titolo” e “fine titolo” e prendono il nome rispettivamente di tag di apertura e tag di chiusura. La sequenza di caratteri è detta stringa. 3.1.2 Tag per grassetto e corsivo HTML include tag per il grassetto, <b> e </b>; per il corsivo, <i> e </i>; per i paragrafi, <p> e </p>. Tag singoli. In qualche raro caso i tag non si presentano a coppie e non hanno una forma di chiusura con lo slash /. In questi casi si parla di tag singoli. Un tag singolo non è chiuso da una parentesi angolare >, ma da uno slash seguito da una parentesi />. 3.1.3 Informazioni obbligatorie Alcuni tag sono necessari per tutte le pagine HTML5. Tutto ciò che si trova tra i tag <html> è suddiviso in due parti: intestazione (head) e corpo (body). -L’intestazione è il luogo in cui sono descritte le caratteristiche dell’intera pagina. -Il contenuto della pagina si trova nella sezione del corpo, racchiusa tra tag e <body>, e non deve
 necessariamente essere un paragrafo. 3.3 STRUTTURARE I DOCUMENTI Lo scopo di un linguaggio di markup come HTML è descrivere la relazione tra le diverse parti di un documento. I tag più importanti sono quelli che definiscono i paragrafi, il loro formato, le intestazioni e gli stili di testo, come il corsivo e il grassetto. 3.3.1 Intestazioni HTML fornisce diversi livelli di tag di intestazione (heading). 3.3.2 Formattazione del codice HTML Il codice HTML indica al browser come mostrare la pagina formattata in base al significato dei tag. I tag delle intestazioni verranno sempre visualizzati su una nuova riga. 3.3.3 La formattazione aggiunta con il solo fine di organizzare il codice prende il nome di white space (“spazio bianco”). Lo spazio bianco include gli spazi veri e propri, ma anche tabulazioni e caratteri di “a capo”. In ogni caso il browser lo ignora completamente, trasformando ogni sequenza di white space in un singolo carattere di spazio prima di cominciare l’elaborazione del codice. L’ampiezza di ogni riga è determinata dalle dimensioni della finestra del browser. Quindi, quando si ridimensiona la finestra farà sì che le righe si spezzino in punti diversi, ed è per questo che i browser ignorano lo spazio bianco del codice HTML e cambiano dinamicamente la formattazione dei paragrafi in base allo spazio disponibile. 10 Tabella con i tag HTML più importanti: 3.3.4 Attributi Un’ultima caratteristica dei tag HTML riguarda il concetto di attributo. Il tag standard richiesto in tutti i file HTML ha nome “meta” e ha un attributo, che fornisce informazioni aggiuntive rispetto ai tag. Alcuni attributi sono obbligatori. 3.3.5 Caratteri speciali: il simbolo di escape Per indicare i simboli di maggiore e minore si deve ricorrere a un simbolo di escape, costituito dalla “E commerciale” (&). Il simbolo di escape, seguito da un codice univoco e dal punto e virgola, forma una sequenza di escape che consente di esprimere caratteri speciali. 3.4 PRATICA IN LABORATORIO II 3.4.1 Comporre e controllare È opportuno controllare spesso ciò che si digita, preferibilmente dopo pochi tag. Supponiamo che una pagina funzioni fino a un certo punto, e dopo aver raggiunto qualche tag ci sia qualcosa che non va; il problema dev’essere per forza negli ultimi tag aggiunti. Questo approccio riduce molto i tempi di ricerca degli errori, ed è detto comporre e controllare. 3.4.2 Servizio di convalida della marcatura Un altro modo per limitare gli errori e accertarsi che la pagina “funzioni” con il browser di tutti i visitatori è la convalida automatica. Questo servizio controlla l’HTML5; se qualcosa non va, il servizio indica dove si trovano gli errori e i passaggi impropri. 11 CAPITOLO 4 TROVARE INFORMAZIONI SUL WEB 4.1 RICERCHE SUL WEB: FONDAMENTI Un motore di ricerca è un insieme di programmi per computer che ci aiuta a trovare informazioni sul web. L’esplosione delle informazioni digitali basate sul Web e la loro distribuzione globale hanno reso necessaria l’invenzione dei motori di ricerca. 4.1.1 Come funziona un motore di ricerca Il primo passo, detto crawling, visita tutte le pagine web che riesce a trovare, ossia ne analizza il codice HTML. Il crawler (software che esegue il crawling) prende le pagine web da una To Do List di URL. Se il crawler, mentre analizza una pagina, trova degli URL che non ha ancora visitato, li aggiunge alla To Do List. Crawler. Il compito principale del crawler è la costruzione di un indice. Questo indice è una lista di token associati alla pagina. I token (simbolo) sono chiamati così perché i crawler riconoscono anche elementi di testo. Il crawler crea una lista degli URL associati a ciascun token. Elaboratore della query. La seconda parte in un motore di ricerca è l’elaborazione delle query (o interrogazioni). L’utente sottopone all’’elaboratore delle query dei token, cioè le parole da cercare, e questo le ricerca l’indice. Creando l’indice in anticipo, i motori di ricerca sono in grado di rispondere molto velocemente alle interrogazioni degli utenti, anche se il crawling vero e proprio ha richiesto molto tempo. 4.1.2 Ricerche con più parole Quando creiamo un’interrogazione composta da più parole, vorremmo che le pagine restituite dall’elaboratore delle query siano pertinenti a tutte quelle parole. Un’interrogazione di più parole è detta AND-query. Il problema per l’elaboratore delle query è che non esiste una voce d’indice corrispondente all’insieme dei tre termini dell’esempio precedente: esistono soltanto le liste per i singoli token. Intersezione delle query. Per localizzare le pagine contenenti più parole, l’elaboratore delle query analizza le liste degli indici per ciascuno dei termini, e trova gli URL presenti in tutte le liste: questa operazione è detta intersezione delle liste. Regole per l’intersezione di liste in ordine alfabetico. Per intersecare liste ordinate alfabeticamente, il computer segue quattro semplici regole. 1. Inserisce un marcatore all’inizio della lista di ogni token. 2. Se tutti i marcatori portano allo stesso URL, salvalo, perché tutti i token sono associati alla pagina. 3. Sposta il marcatore alla posizione successiva per gli quegli URL che compaiono per primi nell’ordine alfabetico tra quelli marcati. 4. Ripeti i passi 2 e 3 fino a quando uno dei due marcatori raggiunge la fine della lista, poi termina. Riassumendo, la ricerca indicizzata è molto potente, perché il computer prima costruisce un indice per mezzo di una lunga analisi (crawling) dei dati (pagine web). Successivamente deve “soltanto” trovare nell’indice le voci associate a ciascun termine della ricerca e intersecare le liste per trovare le informazioni in riposta a una AND-query. 4.1.4 Ranking delle pagine L’ordine in cui vengono restituiti i risultati di una query è determinato da un numero che Google chiama PageRank. Google è stato il primo a usare il ranking per determinare le pagine che sono quelle che interessano maggiormente all’utente. 12 Parte II CAPITOLO 5 ALGORITMI E DIGITALIZZAZIONE DELL’INFORMAZIONE 5.1 DIGITALIZZARE INFORMAZIONE DISCRETA La digitalizzazione utilizza i numeri per rappresentare ogni cosa. 5.1.1 La limitazione delle cifre Una limitazione alla definizione di digitalizzazione è che essa fa riferimento esclusivamente alle dieci cifre. 5.1.2 Rappresentazioni alternative Per una digitalizzazione si può usare quasi ogni insieme di simboli. I simboli funzionano altrettanto bene delle cifre. 5.1.3 Ordinamenti Un vantaggio dell’uso delle cifre per la codifica dell’informazione è la possibilità di ordinare numericamente gli elementi. Per organizzare l’informazione rappresentata con i simboli diversi dalle cifre, basta definire un ordinamento dei simboli stessi. Quando si parla di digitalizzare si intende rappresentare l’informazione per mezzo di simboli, che non devono necessariamente essere le dieci cifre. 5.2 LA RAPPRESENTAZIONE DELL’INFORMAZIONE Un dato è la presenza o l’assenza di un fenomeno in un luogo e in un momento specifico. Quando si sa cosa rappresenta un certo dato, allora si ha l’informazione. La definizione è specializzata per i dati digitali. Il termine PandA descrive informazioni che sono “bianche” o “nere”. Non esiste un valore intermedio. Questo significa che, osservando un fenomeno, dobbiamo decidere con certezza se questo sia presente o assente. Un bit è il dato prodotto in una singola osservazione PandA. I bit rendono le osservazioni PandA un sistema binario. 5.2.2 Memoria La memoria è composta di bit. Il bit è un dato osservato a proposito di un fenomeno (presente o assente) in un luogo e in un momento specifici. Oltre alla definizione del “bit”, la memoria richiede la capacità di assegnare lo stato di presente o assente al fenomeno utilizzato per la memorizzazione. 15 5.2.3 I bit nella memoria del computer All’interno del computer, la memoria è organizzata come una lunghissima sequenza di bit, ovvero di posizioni in cui si può spostare e successivamente rilevare un particolare fenomeno. Combinare schemi di bit. I singoli bit sono una risorsa limitata per rappresentare le informazioni, perché possono rappresentare soltanto elementi con due valori (es. si o no). Quando i bit sono disposti in sequenze di lunghezza n, è possibile creare 2n simboli diversi tra loro. 5.3 NUMERI BINARI ED ESADECIMALI Poiché con i bit sono immediatamente disponibili 0 e 1, con i computer è sensato utilizzare i numeri in base 2, ovvero nel sistema numerico binario, invece di usare i bit per rappresentare le cifre decimali. I computer contano infatti usando il sistema binario: contare in binario è come contare in decimale, limitandosi però ad utilizzare unicamente lo 0 e l’1. Lo 0 binario è lo 0 decimale, 1 in binario è 1 in decimale, quindi contando in binario da 0 avremo: 0, 1, 10, 11, 100, 101, 110, 111, 1000... semplicemente sommando 1 nella posizione più a destra del bit. La regola è: sommando 1 a 0 il risultato è 1, e viceversa; sommando 1 a 1 il risultato è 0 col riporto di 1 alla sua sinistra, e quindi si riapplica la regola della somma: Visto che stiamo imparando a contare in sistemi numerici strani, parliamo anche della base 16, ovvero del sistema numerico esadecimale. Detto “hex”, è importante per la stretta relazione con quello binario. In quanto sistema di numerazione in base 16, hex ha 16 simboli, ovvero le cifre decimali seguite dalle prime sei lettere latine, quindi i simboli esadecimali sono: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. La regola per contare in esadecimale è essenzialmente uguale a quella dei sistemi decimale e binario, il riporto vale solo per F: sommando F a 1 si ottiene uno 0 e un riporto di 1 alla sua sinistra in alto. 16 5.3.3 Trasformare cifre esadecimali in bit e viceversa I computer non hanno alcun problema con i numeri binari, mentre gli esseri umani trovano difficile scrivere e ricordare lunghe sequenze di bit. Ogni sequenza binaria di 4 bit corrisponde a un simbolo esadecimale, e questa corrispondenza perfetta ci consente di passare tra gruppi di 4 bit e cifre hex, e viceversa. 5.4 DIGITALIZZARE NUMERI IN FORMATO BINARIO I primi due utilizzi della rappresentazione PandA (o binaria) furono la codifica di numeri e quella dei caratteri della tastiera. Queste due applicazioni sono tuttora fondamentali, ma ora le rappresentazioni di immagini, video e altri tipi di informazioni sono quasi altrettanto importanti. Vediamo come codificare i numeri in formato binario. 5.4.1 Numeri binari e numeri decimali I numeri binari differiscono da quelli decimali perché si limitano a due cifre, anziché disporre delle consuete dieci. Il numero delle cifre (quindi la base del sistema di numerazione) è l’unica vera differenza. Nei numeri decimali usiamo una rappresentazione del valore della posizione, in quanto ciascuna posizione rappresenta la successiva potenza di 10, a partire da destra. Nella numerazione binaria il concetto è lo stesso, ma con le potenze di 2. Valore in base decimale. Per trovare la quantità espressa da un numero decimale, la cifra in ogni posizione viene moltiplicata per il valore di 10 elevato alla potenza che corrisponde a quella posizione, e i risultati vengono sommati. Vedi tabella: il risultato è 1010 (milledieci), ed è trovato sommando da destra a sinistra: Il risultato è 1000 + 0 + 10 + 0, quindi 1010. Valore in base binaria. I numeri binari funzionano esattamente allo stesso odo, solo che la base della potenza non è 10, ma 2, poiché esistono solo due cifre anziché dieci. Quindi, anziché i valori delle posizioni decimali 1, 10, 100, 1000..., risultati dalle potenze successive di 10, i valori delle posizioni binarie sono 1, 2, 4, 8, 16..., che risultano dalle potenze successive di 2. Vediamo cosa rappresenta il numero binario 1010 in numero decimale. Il risultato è 8 + 0 + 2 + 0, quindi 10. Data una rappresentazione binaria, possiamo trovare il valore decimale equivalente moltiplicando ogni cifra per il valore della posizione e sommando il risultato come nel sistema decimale. Poiché le potenze di due non aumentano con la stessa rapidità delle potenze di 10, i numeri binari richiedono più posizioni di quelli decimali per rappresentare lo stesso valore: per esempio, rappresentare 1010 come numero binario richiede 10 bit. 17 CAPITOLO 6 RAPPRESENTARE L’INFORMAZIONE MULTIMEDIALE 6.1 DIGITALIZZARE IL COLORE Le specifiche della codifica dei caratteri della tastiera non sono particolarmente importanti, perché come unità vengono utilizzati i byte. È raro che vengano manipolati i singoli bit che compongono lo schema dei caratteri. Per la codifica di altre informazioni, invece, la manipolazione dei singoli bit è essenziale, quindi l’assegnamento non può essere arbitrario. 6.1.1 Il colore e il mistero della luce I pixel (Picture elements) sono puntini di luce colorata disposti su una griglia per formare lo schermo di un dispositivo. Ciascun pixel è costituito da 3 luci colorate: rossa, verde e blu, a cui ci si riferisce con le iniziali RGB (red, green, blue), sempre in questo ordine, che stabiliscono uno standard. Tutti gli altri colori si ottengono usando queste diverse quantità, ossia le intensità delle diverse luci. Il bianco risulta dall’accensione delle 3 luci alla massima intensità, mentre il nero si ottiene quando i subpixel R, G e B sono spenti. Il fatto che R + G + B = BIANCO non è l’unica stranezza: la combinazione di rosso e verde dà il giallo, e fin da bambini noi sappiamo che rosso e giallo sono colori primari, cioè non si creano dalla combinazione di altri colori. Abbiamo anche imparato a creare il verde unendo il giallo e il blu. In realtà, per i pixel si utilizza un blu molto chiaro, detto ciano. Come mai R + G = pixel gialli? Il mistero sta nella differenza tra luce colorata e superfici colorate: queste ultime riflettono alcuni colori e ne assorbono altri, quindi quando la luce bianca (R + G + B) colpisce una superficie colorata, parte di essa viene assorbita, e risulta invisibile, e parte rimbalza, quindi viene riflessa verso il nostro occhio. Quello che noi vediamo è il colore riflesso. Nel caso di un pixel la luce arriva direttamente all’occhio, non ci sono assorbimento e riflessione, vediamo soltanto la pura luce colorata, il cui colore preciso è determinato dall’intensità dei singoli colori. 6.1.5 Le intensità I bit possono controllare l’intensità della luce di un subpixel (un colore). I bit di ogni subpixel ne specificano l’intensità e quanto debba essere luminoso. Esempio: il subpixel blu ha valori posizionali 128 64 32 16 8 4 2 1 che specificano quanto debba essere luminoso il blu. Se vogliamo che il subpixel sia a “mezza intensità”, scriviamo: 128 64 32 16 8 4 2 1 1 0 0 0 0 0 0 0 a indicare che desideriamo 128 unità di potenza, e perché 128 equivale circa a (64 + 32 + 16 + 8 + 4 +2 + 1) = 127. Se vogliamo che ogni pixel sia acceso a 3⁄4 scriveremo: 128 64 32 16 8 4 2 1 1 1 0 0 0 0 0 0 perché 3⁄4 della gamma di 256 valori è 192 = 128 + 64. Ovviamente l’effetto si riduce progressivamente, poiché ogni bit successivo aggiunge solo metà della potenza del precedente, anche se dà comunque il proprio contributo. 6.1.6 Bianco e nero L’intensità delle luci R, G, B appena discussa è costituita da numero binari contenuti in un byte, formato da 8 bit. La rappresentazione del colore di un singolo pixel richiede 3 byte, uno per ognuno dei colori. Usando i numeri binari si ha che l’intensità minima sia 0000 0000, che naturalmente equivale a 0, e che il valore massimo sia 1111 1111. A quale numero decimale corrisponda il valore massimo 1111 1111? Utilizzando il metodo di calcolo che abbiamo studiato nel capitolo 5, otteniamo 255. Questo ci dice che l’intervallo di valori va da 0 a 255 per ciascun colore, il nero corrisponde ovviamente all’assenza di luce. Ogni byte è formato da 8 bit (qui sono tutti 0, quindi corrisponde al nero, ma vale per tutte le possibili combinazioni), e ogni pixel è formato in totale da 3 byte, quindi 24 bit. Tra gli estremi di nero e bianco esiste ovviamente un’ampia gamma di intensità intermedie. 20 6.1.7 Da decimale a binario Finora abbiamo convertito i numeri da binari a decimali, ovviamente l’algoritmo per la conversione da decimale a binario è l’opposto: essenzialmente, “trova le potenze di 2 da combinare per costruire il numero decimale”. Partiamo dal costruire una tabella, e inseriamo nella seconda riga le potenze di 2, tante quante sono quelle inferiori al numero che dobbiamo convertire, e nella prima riga in alto a sinistra inseriamo il numero da convertire stesso. Prendiamo come esempio il numero 365 , e facciamo qualche calcolo: la potenza di 2 vicina, ma più bassa di 365, è 28 = 256, quindi scriviamo tutte le potenze da 28 in giù. L’algoritmo ha due casi, a seconda del confronto tra il numero da convertire e il valore della potenza/posizione: 1. Se il valore della posizione è minore, si sottrae. Inseriamo 1 nella riga “Numero binario” della stessa colonna, 
 perché la posizione contribuisce alla forma binaria del numero, e spostiamo la differenza (il risultato della
 precedente sottrazione) in cima alla colonna successiva; 2. Se il valore della posizione è maggiore, non si sottrae. Inseriamo 0 nella riga “Numero binario” della stessa
 colonna, e spostiamo il numero da convertire invariato di una cella verso destra; Proseguiamo con l’operazione in ordine fino a quando non avremo ottenuto tutte le cifre binarie: Il calcolo completo dà 101101101, che raggruppiamo a partire da destra in gruppi da 4: 1 0110 1101. Perché quindi inseriamo tutte le potenze di 2 inferiori al numero da convertire? Perché il numero binario sarà una combinazione delle potenze di 2 la cui somma dà il numero decimale (rappresentare in forma binaria significa proprio questo). Una tecnica diversa prevede la divisione per 2 del numero in base 10 e l’analisi del resto e del quoziente. Il resto è una delle cifre del numero in base 2, mentre al quoziente si riapplica la divisione per 2. Si procede sino a che il quoziente diventa 0. La rappresentazione in base binaria del numero decimale si ottiene scrivendo da sinistra a destra tutti i resti, dall’ultimo al primo. Questa sequenza di divisioni si disegna sul foglio a cavallo di una barra verticale, dove sulla sinistra si incolonnano i quozienti e sulla destra i resti. Consideriamo per esempio il numero 12 in base decimale, che in binario diventa 1100: 6.1.8 Schiarire: cambiare i colori sommando I colori estremi nero e bianco sono semplici, ma quale colore è rappresentato dal numero seguente? 1100 1110 1100 1110 1100 1110 Come il nero e il bianco, il colore misterioso ha qualità uguali di rosso, verde e blu, ed è più vicino al bianco che al nero. Tutti i colori con intensità uguali dei subpixel RGB sono una tonalità di grigio, se non sono bianco o nero. Per creare un grigio più chiaro, dovremo modificare il valore comune per avvicinarlo al valore 255. Supponiamo di farlo incrementando ciascun valore RGB di 16, ovvero aggiungendo 16 a ciascun byte. Il risultato si ottiene impostando il valore della posizione/potenza di 16, ovvero modificandola da 0 a 1, perché in quanto potenza di due adesso contribuisce all’intensità. Possiamo aggiungere o sottrarre qualsiasi valore, purché il risultato non sia minore di 0 né maggiore di 255. I 3 byte sono tutti uguali, quindi basta aggiungere il numero binario corrispondente a 16 solo al primo e riportare il risultato anche per gli altri. 21 Il calcolo risulta: Se volessimo schiarire ulteriormente, l’operazione si fa lievemente più complessa: nel numero binario 1101 1110 la posizione del 16 è già occupata da un 1, quindi riportiamo alla successiva posizione più alta: Il procedimento illustrato si chiama somma binaria, e come altri aspetti della forma binaria la somma è in effetti uguale alla somma decimale (infatti 206+16=222 e 222+16= 238), a parte l’uso di due sole cifre. Operiamo da destra a sinistra, aggiungendo le cifre corrispondenti in ciascuna posizione e scrivendo la somma in basso. Come la somma decimale, i casi sono due: a volte possiamo sommare i due numeri e il risultato è espresso da un’unica cifra (è il caso della prima aggiunta), altre volte la somma è maggiore di quanto sia possibile esprimere con una sola cifra, quindi dobbiamo riportare alla successiva posizione superiore (è il caso della seconda aggiunta: 1+1 in forma binaria dà 10, quindi abbiamo scritto 0 e riportato 1). La somma binaria coinvolge quindi tre cifre in ciascuna posizione: le due da sommare e un eventuale riporto. Di solito consideriamo la somma di due bit (cifre), ma è opportuno ragionare su 3: due bit numerici e un riporto della posizione precedente. Il riporto ovviamente dà vita a un’altra cifra da considerare nella somma binaria della posizione interessata. 6.2 CALCOLO SULLE RAPPRESENTAZIONI Abbiamo introdotto un concetto fondamentale della rappresentazione digitale: quello del calcolo sulle rappresentazioni. L’informazione digitale infatti è modificabile attraverso il calcolo. Una vecchia foto è formata da una griglia di pixel grigi, ciascuno dei quali è composto da 3 byte dello stesso valore, che ne specificano la luminosità. Con luminosità intendiamo la vicinanza dei pixel al bianco, mentre con contrasto il valore della differenza tra le parti più chiare di un’immagine e quelle più scure. Il colore più scuro è ovviamente il nero (0000 0000 0000 0000 0000 0000) e il più chiaro il bianco (1111 1111 1111 1111 1111 1111). Il grafico per fotoritocco spesso visualizza i valori del pixel in un grafico dei livelli: lo 0% è detto punto nero, ovvero tutti 0 in una foto non manipolata, mentre il 100% è detto punto bianco, ovvero tutti 1. Il punto medio è detto punto gamma, punto intermedio nell’intervallo dei pixel. Cominciamo a schiarire la foto, vogliamo avvicinare quindi tutti i pixel al bianco, mantenendo però le loro interrelazioni. Lo facciamo attraverso la solita somma binaria, partendo dall’intensità di partenza e aggiungendo un valore variabile, e l’operazione funziona. Nei termini del grafico dei livelli abbiamo spostato l’intero grafico di 16 posizioni (in questo caso, tot posizioni in generale) verso destra, ovvero verso il 100% (bianco). 6.2.4 Contrasto La foto si è schiarita quando abbiamo aggiunto luminosità, non desideriamo però uno schiarimento uniforme, ma un aumento della differenza tra le parti chiare e quelle scure, ovvero un maggiore contrasto. Il nostro obiettivo adesso non è di far slittare verso destra il diagramma dei livelli, piuttosto di “stirarlo” verso destra. Vogliamo aggiungere una quantità a tutti i pixel, come in precedenza, ma stavolta dovremo aggiungere un valore minimo di pixel scuri e un valore maggiore a quelli chiari. Lasciando i pixel scuri più o meno come sono, e schiarendo i pixel chiari, aumenteremo il contrasto tra aree chiare e scure. Per comprendere l’aggiunta di valori diversi a ciascun pixel, immaginiamo un grafico in cui la linea superiore mostra i valori dei pixel originali, nel mezzo le frecce indicano come intendiamo incrementare gradualmente l’entità dello schiarimento di ciascun pixel, e la linea inferiore mostra il risultato dell’operazione (grafico 6.9, pag 154). Consideriamo l’operazione come una conversione del valore originale in un nuovo valore: per ciascun pixel Po, sottraiamo il valore minimo dell’intervallo, nel nostro caso ipotizziamo sia 38, ottenendone così la posizione lungo la linea superiore. Poi, dividiamo la dimensione del nuovo intervallo (255 – 38) per la dimensione del vecchio intervallo (239 – 38): 22 6.4.2 JPEG MP3 è probabilmente lo schema di compressione più famoso, e distanzia di poco l’altrettanto familiare JPEG o JPG, altra tecnica di compressione lossy che sfrutta la percezione umana, ma fa riferimento a luce e colore. L’essere umano è piuttosto sensibile a piccole variazioni di luminosità, nota tecnicamente come luminanza, quindi nella compressione di una foto vanno conservate queste caratteristiche di luminosità, altrimenti sarà percepita una differenza tra versione compressa e non. L’occhio umano però non è sensibile a piccole variazioni di colore, un fattore noto come crominanza. Quindi se una vasta area di colore è costituita da pixel uguali a eccezione di piccole differenze, riscontrabili nei “bit minori” (meno significativi) che si trovano sulla destra della rappresentazione, è possibile scegliere un colore rappresentativo per tutta l’area, consentendo a un pixel di sostituirne molti. La tecnica funziona finché l’area non diventa talmente ampia da rendere percettibile la differenza ai confini di due aree diverse. Quando interviene su aree di piccole dimensioni, JPEG è capace di una compressione 10:1 senza alcuna apparente perdita di chiarezza, e si ottengono così file più leggeri, fino a quando l’immagine non inizia a “squadrettarsi”. La percezione può essere ingannata, ma fino a un certo punto. 6.4.3 Schema di compressione MPEG MPEG è lo schema che applica ai filmati lo stesso concetto del JPEG per le immagini. Sembra un’operazione più semplice, perché le singole immagini (fotogrammi) vengono visualizzate solo per breve tempo, quindi a ciascuna immagine dovrebbe essere possibile applicare un livello più alto di compressione, d’altra parte per costruire un filmato sono necessarie molte immagini fisse. Nella compressione MPEG a ciascun fotogramma è applicata una compressione di tipo JPEG, ma entra in gioco anche il concetto di “coerenza dei fotogrammi”: poiché di solito due immagini consecutive del video sono molto simili, la compressione deve registrare e trasmettere solo le differenze tra fotogrammi. Ciò rende possibile una forte compressione. 6.5 RICONOSCIMENTO OTTICO DEI CARATTERI Ogni forma d’informazione digitale presenta vantaggi diversi. Per esempio, un’immagine JPEG di una pagina di testo descrive soltanto il modo in cui i pixel devono essere colorati per visualizzare la pagina, ma non consente, per esempio, di cercare una parola nell’immagine. Per fare questo occorre convertire i pixel in testo, per mezzo di un processo detto riconoscimento ottico dei caratteri (OCR). Il computer acquisisce tramite uno scanner una pagina, gruppi di pixel, cercando i bordi in cui il colore cambia, poi li categorizza in caratteristiche distinte, ovvero nelle parti del carattere da riconoscere. 6.6 PROBLEMI DEL MULTIMEDIA Nonostante la semplicità della compressione audio e video, il software di chat video online di tanto in tanto perde fotogrammi, squadretta le immagini e ingarbuglia le parole. 6.6.1 Il problema della latenza La latenza è il tempo impiegato per la creazione o la trasmissione delle informazioni. Le latenze legate a Internet dipendono solitamente da server lenti o da congestioni della Rete. 6.6.2 Il problema della banda L’ampiezza di banda, la misura della quantità di informazioni trasmesse per unità di tempo, è strettamente legata alla latenza, nel senso che una data quantità di informazioni trasmessa con una certa ampiezza di banda determina la latenza (minima) dividendo la quantità per l’ampiezza. Un’ampiezza maggiore di solito significa una latenza minore. Es. 5MB/s —> 10/5=2 Il due sarebbe la latenza minima. 6.7 I BIT SONO TUTTO Principio del mezzo universale indifferente: I bit possono rappresentare qualsiasi tipo di informazione discreta; i bit non hanno alcun significato intrinseco. 6.7.1 Bit: il mezzo universale La prima parte del principio, quella secondo cui ogni tipo di informazione discreta è rappresentabile mediante i bit, costituisce l’aspettò dell’ universalità. Le cose discrete possono essere rappresentate con i bit. 25 6.7.2 Bit: indifferenti La seconda metà del principio, quella per cui i bit non hanno alcun significato intrinseco, è l’aspetto dell’indifferenza. Data una sequenza di bit: 0000 0000 1111 0001 0000 1000 0010 0000 non c’ è modo di sapere quale informazione rappresenti. Il significato dei bit deriva integralmente dall’interpretazione che associamo loro attraverso i programmi. In sintesi, i bit non sono solo bit. Il loro significato dipende dalla loro interpretazione da parte del software, il che significa che possono rappresentare qualsiasi tipo di informazione. 6.7.3 I bit non sono necessariamente numeri binari I computer rappresentano l’informazione sotto forma di bit interpretabili come numeri binari. Ma non sempre i bit rappresentano numeri binari; possono essere interpretati come caratteri ASCII, colori RGB è una serie infinita di altre cose. 26 CAPITOLO 8 PENSARE IN MODO ALGORITMICO Un algoritmo è un metodo preciso e sistematico per produrre un risultato specifico. I computer devono ricevere istruzioni per qualsiasi cosa facciano, quindi esequino semplicemente algoritmi. 8.1 ALGORITMI Il libro Lo scafandro e la farfalla parla di un francese che rimase paralizzato dal mento in giù, il quale però poteva pensare ed è riuscito a scrivere un intero libro su se stesso utilizzando solo la palpebra sinistra (che riusciva a muovere). Quando questa persona, Jean-Dominique Bauby (J-DB), voleva dire qualcosa, doveva comunicare lettera per lettera: le sue infermiere così inventarono un processo algoritmico che esalta le caratteristiche principali degli algoritmi tutti: • Usiamo e inventiamo continuamente algoritmi per risolvere i nostri problemi, non serve una laurea in informatica per fare ciò; • Sebbene l’algoritmo non sembri calcolare nel senso abituale delle operazioni aritmetiche, in realtà lo fa; • L’agente che esegue l’algoritmo non sempre è un computer, capita spesso che esso sia una persona; • Esistono varianti migliori e peggiori dello stesso algoritmo; Quello di algoritmo quindi è un concetto familiare, che utilizziamo spesso senza neanche accorgercene. 8.1.3 Molte domande, meno domande Uno dei modi per sveltire il processo era il completamento della parola, una nota tecnica di completamento automatico. Esiste però un ulteriore metodo per velocizzare una comunicazione a battiti, ossia utilizzare l’ordine di frequenza: le lettere non sono disposte in ordine alfabetico, bensì nell’ordine di frequenza della lingua francese, ovvero in base alla frequenza di utilizzo, dalla lettera più utilizzata a quella meno utilizzata (un ordine che ovviamente varia a seconda della lingua presa in considerazione). Questo metodo è intelligente: chiedendo le lettere seguendo l’ordine di frequenza permetteva all’assistente di ottenere la parola voluta provando meno lettere. L’ordine di frequenza è una media rilevata dal conteggio del numero di occorrenze di ciascuna lettera in migliaia di pagine di testo in francese. Effettuando un piccolo esperimento, notiamo che l’uso dell’ordine di frequenza richiede meno tentativi rispetto a un normale ordine alfabetico, sono stati necessari perciò molti meno battiti di palpebra, e la stesura del libro è risultata più rapida. Non sempre il metodo dell’ordine di frequenza si rivela più veloce, e nel nostro caso J-DB è l’utente, mentre l’assistente riveste il ruolo di agente, ovvero colui che esegue le istruzioni. 8.1.4 Scrivere algoritmi Un algoritmo è un metodo preciso e sistematico per produrre un risultato. Quello che abbiamo appena analizzato è efficace, ma non sarebbe adatto a un computer: esso non sa da dove cominciare, quindi è necessario specificargli tutto, anche quelle informazioni che se ci si interfaccia con un essere umano possono essere date per scontate. I programmatori creano algoritmi perfettamente precisi, utilizzando linguaggi di programmazione. Le due ricerche, quella effettuata attraverso l’ordine di frequenza (RLfreq) e l’altra seguendo l’ordine alfabetico (RLalfa) sono esempi di programmi: i programmi sono algoritmi che sono stati specializzati per uno specifico insieme di condizioni e presupposti, e di solito sono scritti in un linguaggio di programmazione specifico. I programmi quindi sono algoritmi a tutti gli effetti, perciò possiamo utilizzare indistintamente i due termini. Nel trattare l’algoritmo Ricerca Lettera, ci siamo concentrati su due ordini di richiesta delle lettere diversi: frequenza e alfabetico. Tutte le attività di calcolo possono essere risolte in vari modi, perciò è importante scovare quello più rapido. Poiché i programmi sono algoritmi e tutte le applicazioni che usiamo quotidianamente sono programmi, è ovvio che usiamo gli algoritmi in continuazione, e ne inventiamo sempre di nuovi. Esempi di algoritmi possono essere gli argomenti precedentemente trattati, come la conversione da numero binario a decimale e viceversa e la somma binaria. Non tutti i processi sono algoritmi, per esempio il procedimento di ricerca sul web non lo è, in quanto potrebbe fallire, non garantisce un risultato. Gli algoritmi invece funzionano sempre grazie alla loro sistematicità, ottengono una risposta specifica oppure segnalano che la risposta non esiste, e il loro risultato è comunque corretto. La ricerca sul web è un processo euristico, ovvero una procedura utile a ottenere un risultato, il cui funzionamento però non è garantito al 100%: spesso è il meglio che si possa fare in assenza di algoritmi noti da applicare. 27 Confrontiamola con la ricerca dicotomica: • I libri sono tutti quelli sullo scaffale • Se non ci sono libri tra cui cercare, la ricerca termina senza successo • Leggiamo l’autore del libro nella posizione di mezzo a quelli restanti • Se l’autore è quello che cerchiamo, abbiamo terminato • Se l’autore che cerchiamo precede/segue alfabeticamente quello letto, cerchiamo solo nella prima/seconda
 metà • Ripetiamo Sfruttiamo l’ordinamento alfabetico per dimezzare di volta in volta il numero di libri tra cui cercare, e anche per questo secondo tipo di ricerca individuiamo i tre casi di ricerca. Confrontando i due algoritmi di ricerca, stabiliamo se uno sia migliore dell’altro: • Caso migliore: entrambe le ricerche richiedono una sola lettura, quindi se siamo fortunati i due algoritmi sono
 equivalenti. La differenza sta nel fatto che il caso migliore della ricerca lineare (primo libro) non coincide con
 quello della ricerca dicotomica (libro di mezzo); • Caso peggiore: la ricerca dicotomica è nettamente migliore di quella lineare. Maggiore è il numero di libri, 
 migliore sarà la seconda ricerca rispetto alla prima; • Caso medio: quello molto più probabile rispetto agli altri due. Rispetto al caso peggiore, per la ricerca lineare
 dimezziamo il tempo, mentre per la dicotomica resta come il caso peggiore. 30 Parte III CAPITOLO 9 IMPLICAZIONI SOCIALI DELL’INFORMATION TECHNLOGY 9.1 IL POTERE DELLE MASSE Internet ha portato cambiamenti sostanziali e positivi alla società. 9.1.1 Crowdsourcing Crowdsourcing indica la risoluzione di un problema o il raggiungimento di un obiettivo usando i contributi di un gran numero di volontari spontanei (es. Wikipedia). 9.1.2 Be a Martian Un altro esempio di Crowdsourcing è il Be a Martian Project, in cui i volontari aiutano la NASA taggando le immagini dei veicoli che esplorano Marte. Il Crowdsourcing è un fenomeno nuovo, reso possibile dalla comunicazione facile e libera supportata da Internet. Le masse sono ovviamente importanti poiché aumentano il numero dei partecipanti a un progetto, a vantaggio di chi deve risolvere il problema. 9.1.3 Foldit Foldit è un programma di gioco in cui le squadre si sfidano a ripiegare una proteina. Le proteine sono molecole complesse che gestiscono gran parte degli aspetti della vita. Composte di amminoacidi, le proteine si ripiegano mentre galleggiano nelle cellule, e il modo in cui si ripiegano è un fattore determinante per il loro funzionamento. La medicina non “conosce una proteina” se non sa come si ripiega. Il programma Foldit opera su proteine importanti per la ricerca dell’AIDS, cancro e Alzheimer. Gli scienziati hanno cercato di capire come si ripiega questa proteina per un decennio; usando le strategie di Crowdsourcing del gioco, la struttura è stata risolta in tre settimane. 9.1.4 Partecipazione civica - Freerice Altri giochi, quali freerice.com, hanno un duplice scopo: didattica e donazione. 9.1.5 Kickstarter Kickstarter.com è un altro sito web in cui la collettività può contribuire ad aiutare gli altri. Su Kickstarter, chi ha un progetto creativo propone le sue idee: dice ciò che farà, quanto denaro è necessario per farlo, perché è importante e così via. I donatori possono contribuire con una somma grande o piccola; se l’obiettivo viene raggiunto il progetto è finanziato, altrimenti il denaro viene restituito ai donatori. Essenzialmente, se il progetto non raccoglie un supporto efficiente viene abbandonato, se invece piace, il finanziamento è rapido. 9.2 BUONA CONDOTTA Nel mondo online l’ambito delle nostre interazioni è molto più vasto rispetto ai tempi in cui per interagire era necessaria la vicinanza fisica, e spesso i nostri parenti hanno una scarsissima influenza sui nostri comportamenti online, privi degli stessi strumenti necessari per insegnare ai figli le buone maniere in rete. Su Internet spesso possiamo rimanere anonimo, e un comportamento pessimo ha solitamente poche conseguenze, nonostante tutto però ci sono almeno due ragioni per le quali dovremmo evitare di comportarci male: su Internet non siamo mai del tutto anonimi, non per tutti, e tutti vogliamo godere dei vantaggi che il WWW offre, quindi questo uso quotidiano ci spinge per forza di cose ad adottare comportamenti ragionevoli. L’etichetta, ovvero quelle linee guida per il buon comportamento in situazioni sociali, vale anche per le nostre interazioni online, e prende il nome di netiquette, neologismo che deriva dalla fusione di net (rete) e etiquette (buone maniere). Oggi essa è intesa ampiamente come educazione in tutti i contesti sociali del Web. Qualche esempio: è buona norma, quando si scrive un’email, affrontare una questione per volta, perché se gli argomenti sono più di uno il rischio è che qualcuno di essi venga ignorato dall’interlocutore, va sempre incluso il contesto, è consigliato importare una risposta automatica in quei casi in cui non possiamo garantire una risposta immediata e, a differenza di quanto si possa pensare, è bene rispondere ai messaggi in ordine inverso, a partire dal più recente. Infine, è scortese inoltrare messaggi privati senza un consenso e spesso è consigliato l’utilizzo di emoji per rendere più chiaro il tono della conversazione. È palese che si debba in tutti i modi cercare di non offendere il prossimo, esercitando tolleranza, pazienza e rispetto di tutte le differenze: su ciò si basa il concetto di offensensitivity, ovvero prestare attenzione alla suscettibilità all’offesa del prossimo. Il “problema” sono spesso le differenze sociali, culturali, formative e religiose. 31 9.3 ASPETTARSI L’INATTESO Essere preparati a qualsiasi imprevisto e all’inatteso è un’abilità essenziale anche in informatica. Fare attenzione a informazioni inattese e a comportamenti ambigui, di vario genere sul Web, può evitare imbarazzo e rischi. Una strategia per evitare inconvenienti è anzitutto quella di creare buone password, ovvero quei codici che consentono l’accesso a un computer o a un software da parte di utenti legittimati che conoscono tale sequenza. È necessario scegliere password efficaci che si basino su qualcosa che l’utente conosce, o che l’utente è (sempre più frequenti infatti sono le password consistenti nell’impronta digitale o nel riconoscimento del volto dell’utente). Le password non sono memorizzate dai nostri dispositivi così come noi le conosciamo, bensì sono cifrate, in modo da nascondere il proprio significati. La nostra password viene trasformata in un testo cifrato difficile da comprendere attraverso diverse strategie, una delle quali per esempio potrebbe essere sostituire ogni lettera del codice con quella che la succede alfabeticamente. Il testo cifrato viene salvato in modo monodirezionale, ovvero impossibilitando il processo di decifrazione, il computer conosce solo la versione cifrata nella nostra password, e controlla ad ogni accesso che ciò che noi scriviamo corrisponda alla versione che esso memorizza. Come recuperare allora una password se dimenticata? L’amministratore di sistema, detto superuser, imposterà una password provvisoria se gli comunichiamo di aver smarrito la nostra, ci chiederà di accedere sfruttando la nuova e poi di cambiarla impostandone una che saremo in grado di ricordare: dopo il cambio, saremo di nuovo gli unici a conoscere la nostra password. Online però, dove navigano milioni di utenti, come si può provare di essere il reale proprietario di un account? Impostando le domande di sicurezza può fornirne una prova. Le password migliori contengono 8-10 caratteri intervallati da maiuscole, minuscole e caratteri speciali, è sempre meglio scegliere una parola che non sia palesemente ricollegabile al proprietario, ma che possa comunque essere facilmente ricordata. Infine, le password andrebbero cambiate periodicamente. 9.5 SPAM E TRUFFE Le email commerciali non richieste sono comunemente chiamate spam. Esistono filtri anti-spam, ovvero software che senza che ce ne accorgiamo separano le email legittime dagli spam, accumulandoli in cartelle differenziate. Il filtro elabora i messaggi man mano che arrivano: succede che l’email viene come scannerizzata e le viene assegnato un punteggio sulla base delle proprietà caratteristiche dello spam che si ritrovano in ciascun messaggio, e se il punteggio supera una certa soglia, il messaggio è considerato spam ed è sistemato in una cartella a parte, spesso quella dedicata alla posta indesiderata. Anche le truffe sono molto diffuse online, e chissà come mai in rete le persone si dimostrano meno scettiche di quanto sarebbero nella vita di tutti i giorni, e diffondono con forse troppa naturalezza le proprie informazioni private. Le truffe sono diverse, ma hanno caratteristiche in comune: l’urgenza, la segretezza e la richiesta di denaro. Ovviamente, qualsiasi messaggio che sembri voler regalare qualcosa in cambio di niente può essere cestinato fin dall’inizio. Il termine che definisce il processo di ingegneria sociale che convince le persone a fidarsi e a cedere volontariamente i propri dati personali è detto phishing, e spesso i messaggi di questa categoria dichiarano che persone non autorizzate hanno avuto accesso al nostro conto, che ci spetta denaro, o comunque fatti che giustificano la condivisione dei nostri dati personali, che vengono raccolti dai truffatori per motivi loschi. Il phishing è stato definito per la prima volta nel 1987, quando Internet era già utilizzata ma non esisteva ancora il World Wide Web: la nostra miglior difesa è lo scetticismo verso tutti quei messaggi che non ci convincono a pieno per diverse ragioni. 9.7 PROTEGGERE LA PROPRIETÀ INTELLETTUALE L’informazione può avere un proprietario, in quanto risultato di una sorta di processo creativo: l’atto della creazione dà al creatore la proprietà del risultato. Tutte queste creazioni umane sono dette proprietà intellettuali, costituite da licenze del software e la protezione con copyright dei materiali presenti sul Web. Quando acquistiamo un software, lo carichiamo sul nostro pc senza considerare troppo gli aspetti legali legati alla nostra azione: spesso il software è soltanto preso in prestito, ci è concesso di utilizzarlo ma la proprietà resta dell’azienda che lo ha messo in vendita. Poiché il software non è di nostra esclusiva proprietà, non potremo passarlo a un amico. Se lo facciamo, violeremo i termini del contratto a cui abbiamo acconsentito quando abbiamo scaricato il software stesso. 32 9.10.4 Pagamenti elettronici, marketing online e e-government Il trasferimento di denaro sul Web è un aspetto critico proprio dell’e-commerce. La sicurezza è un requisito necessario per il cliente, ma anche per il venditore che desidera un pagamento autentico. Esistono diverse modalità di pagamento online, come carte di credito/debito, prepagate, servizi di pagamento, registrazioni ecc... e di recente alcune imprese hanno cominciato ad accettare anche i pagamenti tramite Bitcoin. Ulteriore metodo di pagamento tramite tecnologia si basa sull’associazione di un mezzo di pagamento tradizione, come una carta di credito, a un device mobile: per pagare l’utente deve prima identificarsi sul proprio device, poi accostarlo a un apposito ricevitore del venditore. I due apparati si scambiano una serie di dati e finalizzano l’operazione. La posta elettronica ormai non viene più considerata un efficiente strumento di marketing, in quanto la sua degenerazione ha portato al fenomeno dello spamming. Il Web cerca perciò di proporre prodotti adottando strategie diverse e sempre nuove, come i banner pubblicitari personalizzati sul profilo dell’utente. Esiste anche il cosiddetto marketing viale, basato sull’idea di stimolare di visualizza un messaggio pubblicitario a condividerlo con i suoi contatti. I sistemi informatici vengono utilizzati anche dalle varie forme di governo per fornire servizi ai cittadini, ad altri enti o organizzazioni. In Italia, una legge obbliga sia le imprese sia i professionisti iscritti agli albi a dotarsi di un indirizzo di Posta Elettronica Certificata (PEC) da utilizzare per le comunicazioni ufficiali con la PA (Pubblica Amministrazione). Esistono diverse tipologie di e-government: • Government to Citizens (G2C): interazioni tra PA e cittadini; • Government to business (G2B): interazioni tra PA e aziende; • Government to Government (G2G): interazioni tra le PA di diversi Paesi. 35 CAPITOLO 10 PRIVACY E SICUREZZA DIGITALE 10.1 PRIVACY E TECNOLOGIA La privacy è un diritto umano fondamentale, ma molte persone/enti hanno tutti l’interesse di raccogliere le nostre informazioni personali: le maggiori minacce alla nostra privacy sono rappresentate da cookie, tracking e nella peggiore delle ipotesi dal furto di identità a scopo fraudolento. Louis D. Brandeis, insieme a Samuel D. Warren, ha scritto a proposito dell’effetto della tecnologia sulla privacy: nel passato era difficile violare la privacy di qualcuno senza che questi se ne accorgesse, mentre con i dispositivi moderni è possibile farlo in totale tranquillità. Il punto fondamentale del loro discorso è che l’immagine di una persona, e più in generale le informazioni che la riguardano, merita garanzie sufficienti contro la circolazione impropria. Il pagamento in contanti solitamente assicura l’anonimato, mentre gli acquisti sono facilmente ricollegabili all’acquirente in caso il pagamento venga effettuato attraverso assegni, carte, bancomat, online... Le principali possibilità di uso delle nostre informazioni sono: • Nessun uso: dovrebbero essere utilizzate ai soli fini della transazione e poi eliminate; • Approvazione, o opt-in: dobbiamo autorizzare esplicitamente l’uso per altri scopi; • Negazione, o opt-out: dobbiamo vietare esplicitamente l’uso per altri scopi; • Nessun limite: le informazioni possono essere usate a piacimento dai negozi; • Uso interno: il negozio può utilizzare le informazioni sono per “fare affari con noi”. 10.2 DEFINIZIONE DI PRIVACY È un concetto difficile da definire, in generale riguarda 4 aspetti della nostra vita: il nostro corpo, il nostro territorio, le informazioni personali e le nostre comunicazioni. A noi interessano gli ultimi due punti. La definiamo come il diritto della persona di scegliere liberamente le circostanze e la misura in cui rivelare ad altri se stessa, il proprio atteggiamento e il proprio comportamento. È la persona a decidere cosa svelare di sé, il controllo è suo a pieno su tutti gli aspetti che la riguardano. 10.3 VANTAGGI DELLA PRIVACY E BUONE NORME Quali sono i rischi per la privacy? Le minacce più consistenti provengono da governi e aziende, e una terza può essere individuata nelle entità private che spiano. Esiste però la cosiddetta divulgazione volontaria, ovvero scegliamo consapevolmente di rivelare informazioni in cambio di vantaggi reali, per esempio a medici, compagnie di credito, datori di lavoro, autorità... Tutto dipende da cosa accade alle informazioni una volta rivelate: a regolare tale aspetto esistono i principi di Fair Information Practice. Nel 1980, l’Organizzazione per la Cooperazione e lo Sviluppo Economico (OCSE, in inglese OECD, da Organisation for Economic Cooperation and Development), un’organizzazione che si occupa di commercio internazionale a cui aderiscono attualmente trentaquattro paesi, ha sviluppato un elenco di 8 punti noto come Fair Information Practice, il quale è diventato uno standard ampiamente accettato al fine di mantenere private le informazioni e allo stesso tempo rivelare le informazioni giuste a governo e autorità. I principi OCSE sono un’implementazione pratica della protezione della privacy in presenza della tecnologia informatica, i cui punti prevedono raccolta limitata, scopo, qualità, limitazioni d’uso, sicurezza, apertura, partecipazione, responsabilità. Gli standard sulla privacy sono in conflitto con la raccolta di informazioni da parte di aziende e governi: questo crea una forte opposizione all’adozione di tali standard OCSE da parte di vari paesi e ne spiega la non omogenea diffusione. Negli USA per esempio non esiste una legge ispirata ai principi OCSE, le poche leggi che ci sono sulla privacy sono rivolte a situazioni specifiche, con un approccio quindi settoriale. Questo è un problema per le multinazionali che hanno rapporti con paesi che hanno adottati i principi OCSE, perché per rispettare le leggi devono definire una zona sicura (safe harbor), ovvero allinearsi ai principi stessi. Il data mining, detto Big Data, è l’analisi statistica di enormi archivi di informazioni: è uno strumento potente per ottenere vantaggi commerciali attraverso i dati inseriti da clienti e utenti. Tracciamento. Nell’ambito della privacy elettronica, il tracciamento online è la pratica per cui un sito web invia automaticamente ad altri provider di contenuti tutti i dettagli sulla nostra visita, per esempio gli elementi o prodotti su cui abbiamo cliccato, in modo da inviarci poi pubblicità mirate. Il tracciamento del cellulare invece si riferisce alle informazioni sulla posizione rilevabili dai dispositivi mobili, utilizzabili per mappare i nostri spostamenti. 36 Navigazione privata. Tracciamento e navigazione privata sono due cose diverse: quest’ultima, nota anche come InPrivate. Navigazione anonima o in incognito, è una caratteristica unicamente del lato client, ovvero riguarda soltanto le informazioni memorizzate sul nostro computer, e non ciò che fanno i server. Cookie. I cookie sono un concetto informatico standard utilizzato in origine dagli ingegneri di Netscape per conservare l’identità di un client nel corso di una serie di eventi client/server indipendenti. Ogni interazione client/server non lascia tracce nel server, quindi esso ha problemi ad associare a noi tutte le pagine che visitiamo dopo esserci autenticati. Per non perdere queste tracce il server memorizza sul nostro computer un cookie contenente 7 campi di informazioni che identificano in modo univoco la sessione del client. I cookie vengono scambiati automaticamente tra client e server a ogni trasmissione di informazioni, così quest’ultimo può sapere a quale dei tanti sta inviando informazioni senza che l’utente debba preoccuparsene. Solo il sito che ci ha inviato il cookie può accedere a quel determinato cookie, che ci dà l’illusione di essere l’unico client servito. I cookie sono strumenti utili, ma anche pericolosi: quelli di terze parti sono uno dei metodi più utilizzati per tracciare i comportamenti di navigazione sul web. Le prime due parti siamo noi e il server, mentre la terza può essere un’azienda che è stata ingaggiata per piazzare inserzioni pubblicitarie mirate. In generale, accettare i cookie rende facile l’utilizzo del web, ma è consigliabile bloccare i cookie di terze parti. L’obiettivo della sicurezza informatica è quello di far sì che la nostra esperienza con il computer sia il più possibile vicina al caso del computer sicuro, senza cambiare troppo il modo il cui lo usiamo quotidianamente. La maggior parte dei rischi per i computer sono classificabili in 4 gruppi: danneggiamento, furto di informazioni, spionaggio e furto di risorse. Il malware, o software malevolo, è genericamente un software che danneggia i computer composto da due parti: una che provvede alla diffusione e l’altra che danneggia. Si può presentare sotto forma di: • Virus: codici che ripropongono se stessi nascosti in un programma, che quando viene eseguito li rilascia
 permettendo loro di entrare in azione riproducendosi. I virus viaggiano “in spalla” a un altro software; • Worm: programma che riproduce se stesso e invia una propria copia a tutti i contatti dell’utente; • Exploit: il malware sfrutta i bug del normale software per installarsi ed eseguire le proprie attività nocive; • Cavallo di Troia: un regalino non richiesto, costituito da un programma malevolo che esegue attività non
 autorizzate mascherato da qualcos’altro. Si inserisce spesso nei download apparentemente innocenti. La comunità della sicurezza informatica si concentra sulle tre attività più nocive del malware, usate per implementare i rischi di spionaggio e furto: • Backdoor: software che “fa un buco” nel computer, creando una via d’accesso che consente di attaccare il
 nostro computer; • Cavalli di Troia: software in grado di eseguire una varietà di attività non autorizzate classificate per tipo; • Rootkit: software che quando infetta il computer combatte contro i suoi sistemi di sicurezza. La prima azione di questi sistemi malevoli è quella di ridurre le difese del computer, in modo da non poter essere bloccati. Prevenzione. Chi usa il computer in modo sicuro soffre raramente di problemi: basterebbe, per esempio, spegnere il bluetooth se non lo usiamo, perché soggetto a molte vulnerabilità, mantenere bloccati i dispositivi, non fare clic su tutti gli allegati di posta e non inserire le informazioni che ci riguardano in ogni pop-up, che sono il metodo principale attraverso cui i malware raccolgono informazioni, diffidare quando ci viene offerto qualcosa in modo apparentemente gratuito e capire dove stiamo cliccando. Un po’ si sano scetticismo e una buona dose di attenzione sono la soluzione a quasi tutti i pericoli. In caso l’errore sia ormai stato commesso, spegnere immediatamente il computer, utilizzandone un altro capire cosa fare a seconda dei casi, ed è consigliabile usare sorgenti esterne per riavviare il sistema operativo. Altre misure da adottare sono: eseguire sempre software “moderni”, più attenti alla sicurezza, installare tutti gli aggiornamenti e un buon antivirus, proteggere i dispositivi con password ed essere saggi durante le sedute di navigazione. 37
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved