
































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti dettagliati delle lezioni, integrati con le slides messe a disposizione dal prof e immagini.
Tipologia: Appunti
1 / 40
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

































In italiano abbiamo un solo un termine, ovvero informatica, ma in inglese ci sono CS,
Computer Science e IT, Information Technology. La differenza principale tra loro è che il
primo studia, e il secondo si sporca le mani.
dell’informatica, si parte dalla matematica e si realizza in qualcosa di più pratico.
competenze pratiche.
Con il passare del tempo i due campi si sono avvicinati, sono sempre ben distinti ma in
costante contatto.
Quali sono i cambiamenti radicali che hanno portato una svolta nell’informatica?
ALBORI (prima del 1641)
Costruzione di strumenti meccanici con funzioni molto pratiche, specialmente per aiutarci
ad orientarci nello spazio e nel tempo, per esempio con le stelle e con i pianeti. Vengono
inventati dei dispositivi con lo scopo di automatizzare, velocizzare e fare correttamente
senza sbagliare i calcoli: questo è sostanzialmente lo scopo dell'informatica.
Pascal, matematico e filosofo, crea una macchina per fare addizioni, una macchina
puramente meccanica.
Leibniz inizia a studiare il
sistema binario , anche lui per fare calcoli; esso ha grossi
svantaggi ma può rendere facili alcune operazioni.
Charles Babbage, matematico, stufo di fare calcoli di qualsiasi tipo, con la rivoluzione
industriale e il vapore crea prototipi con una certa potenza, ma con il vapore la macchina
ideata si rompeva facilmente ed era particolarmente difettosa. Egli però ci vide lungo di
circa 150 anni, aveva creato una macchina “Turing completa”, cioè che ha lo stesso potere
computazionale di una macchina di Turing (vedi dopo). In sostanza creò con i mezzi del
tempo ciò che 150 anni dopo sarebbe stato possibile fare. Capì anche che nella creazione
di programmi con gli algoritmi servivano determinati requisiti e strumenti di controllo.
Ada Lovelace è la matematica che scrive il primo programma della storia, quindi si può
dire che l’informatica è stata fondata dalle donne. I programmi venivano scritti su nastri
forati/con buchi, quindi queste macchine analitiche erano in grado di fare calcoli o
svolgere compiti in base agli stimoli dati dai fori.
Herman Hollerith, ingegnere e imprenditore, fonda l’IBM, azienda che produce
informatica ed elettronica praticamente per tutto il mondo. Creò una macchina tabulatrice
(aveva come base le schede forate) che fu in grado, in occasione del censimento della
popolazione americana, di analizzare i dati in maniera automatica (ad esempio forando in
maniera diversa la scheda per maschio/femmina o per età differenti).
Egli convinse il governo americano a produrla e gli fece risparmiare una quantità
esorbitante di soldi.
Si continuano a produrre schede forate, ma si arriva ad un momento di stallo. Ad un certo
punto si inizia a cercare di più, soprattutto i matematici (gli ingegneri invece continuavano
a vendere, quindi erano soddisfatti).
Ecco perché Hilbert al Congresso Internazionale dei Matematici apre 3 questioni
importantissime che gettano le basi dell’informatica. Premessa da fare, fino a qui si
mettevano insieme ingranaggi semplicemente per fare calcoli, non ci si preoccupava tanto
della qualità dei calcoli.
Hilbert si chiede:
1 ) La matematica è completa?
(Posso dire se qualsiasi statement , frase matematica, è vero o falso tramite la matematica?
Con il mio strumento?)
2 ) La matematica è consistente?
(Posso con i miei metodi matematici dimostrare solo cose vere o ci sono modi per
dimostrare cose false?)
(Se serve una quantità infinita di tempo non ha senso porsi queste domande)
Gödel, filosofo ed esperto di logica, risponde ai primi due quesiti:
incompleto o inconsistente.
Le alternative sono: se faccio tutto (calcoli o compiti che siano) non è detto che sia giusto,
ma se faccio tutto giusto non sarà tutto, cioè non avrò fatto tutti i calcoli/compiti possibili.
Si deciderà di abbandonare (quantomeno allontanarsi) la completezza, quindi si cerca di
fare i calcoli senza mai rinunciare alla consistenza.
Egli costruì “Bombe”, una macchina che dato un messaggio segreto, riusciva a decifrarlo;
in sostanza gli inglesi grazie all’informatica vinsero la guerra. Qui torna la questione del
tempo: le risposte dell’informatica nella codifica dei messaggi con istantaneità o almeno
nel minor tempo possibile hanno fatto la differenza, e fu chiaro che un messaggio vecchio
non serve.
Von Neumann individuò la
struttura base (teorica)
del computer .
C’è un processore (CPU) al cui interno si trovano un’unità di controllo e un’unità
aritmetica/logica, essi dialogano con la memoria e ricevono input e restituiscono output.
Di fatto, riprende la macchina di Turing e la “codifica”. Il suo personaggio è associato al
governo degli USA: fu coinvolto nella questione della bomba atomica di Hiroshima e
Nagasaki, da stratega, consigliò quali città colpire al fine di fare più vittime possibili.
Viene introdotto il transistor, un interruttore elettronico e non più meccanico,
con un impulso elettrico si può aprire o chiudere un circuito (ci sono 3 pin,
quello centrale decide se far passare o meno la corrente). Esso dà
automatizzazione ed affidabilità, oltre che dimensioni più piccole: si parla di
“miniaturizzazione”, cioè riducendo le dimensioni e automatizzando il sistema
era più difficile da rompere.
Con Hopper viene introdotto il concetto di compilatore: è possibile tradurre un
messaggio scritto in maniera semplice, la macchina lo traduce per noi e fa linguaggi di
programmazione complessi.
Nascono quindi i primi linguaggi di programmazione:
Fortran → se l’informatica è uno strumento a supporto della matematica e dei suoi calcoli,
si scrive con i linguaggi matematici che usano i matematici.
Lisp → creato per le intelligenze artificiali, utile per processare il linguaggio naturale,
meno matematico e più fluido nel parlare, tanto da rispondere ai cambiamenti della
lingua.
Il circuito integrato è fatto di transistor (miniaturizzazione): ciò è
interpretato come la rivoluzione dei microprocessori (processore =
dispositivo hardware di un computer dedicato all'esecuzione di istruzioni).
Un processore grande e pieno di cavi è probabile che si rompi più
facilmente, se è più piccolo risulta più affidabile. I transistor fusi assieme
nel circuito ci fanno miniaturizzare e ci consentono di avere meno costi di
materiali e di manutenzione.
Se esistono i linguaggi (di programmazione) è grazie a Chomsky. Il linguista studia il
funzionamento, la grammatica e l’interpretazione dei linguaggi naturali, ma anche quelli
informatici.
Rabin si occupò di complessità, ovvero si chiede quando c’è un problema se è fattibile e
quanto costa risolverlo in termini di spazio e tempo.
Bill Gates e
Paul Allen iniziano sviluppando videogiochi, ma poi continuano decidendo di
sviluppare software.
Steve Jobs e Steve Wozniak fanno arrivare al consumatore dispositivi elettronici: tutti
dovevano avere qualcosa di Apple in mano. Questo chiaramente è anche frutto
dell’utopia capitalistica tipica dell’America di quegli anni.
Nasce il primo virus informatico “Creeper” come programma che poteva diramare sulla
rete e si poteva anche salvare. Di conseguenza nel 1973 John
McAfee sviluppa il primo
antivirus.
Tim Berners-Lee inventa e formalizza il WWW, World Wide Web. Con sistemi potenti per
immagazzinare informazioni ci si chiede: come condividere velocemente e a tutti queste
informazioni?
Sostanzialmente è una rete che collega tutte le reti in tutto il mondo; curioso è il fatto che
ha detto di essersi pentito di averlo creato perché pensando al web ci si è dimenticati di
privacy, fonti non certificate, ecc., fece per l’appunto molta sensibilizzazione sull’uso
corretto e responsabile dell’internet. Nel 1991 sempre da lui viene sviluppato il primo sito
internet.
Sviluppo di browser e motori di ricerca, ci fu una vera e propria corsa quando si capì che
dietro tutto ciò ci si poteva fare soldi (Yahoo, Google, Amazon…).
Data un’informazione, c’è bisogno di un linguaggio/modo condiviso (possibilmente
univoco) di rappresentarla, in pratica si decide a tavolino con quale linguaggio (e quali
simboli) comunicare.
Per esempio, come posso rappresentare delle immagini o dei suoni? Si codifica un
insieme di colori o una scala di grigi, elaboro un linguaggio con un insieme di note.
In questo senso, possiamo dire che il computer ragiona e comunica informazioni con il
sistema binario.
Il sistema binario è un sistema di numerazione che utilizza solo due simboli ( 0 e 1 ) per
rappresentare, appunto, i suoi numeri (noi esseri umani invece usiamo un sistema
decimale, cioè in base 10, come il numero delle nostre dita). Questa è la base del sistema
di numerazione usato in informatica ed elettronica, dove ogni informazione digitale viene
codificata in sequenze di 0 e 1, chiamate Bit.
Usare solo due cifre è più semplice, per esempio per indicare direttamente se c’è o se non
c’è corrente, oppure corrente alta e corrente bassa. Il sistema binario vuole quindi essere
un sistema semplice per sbagliare di meno ed essere più robusto.
c’è, alto/basso).
compatibile con circuiti hardware.
per poi essere trasmesse in sicurezza. I bit vengono trasmessi a “pacchetti”: formalmente
non cambia niente se viene trasmesso un singolo bit o un insieme di essi, se non la
trasmissione più veloce e la crittografia.
passaggi e quindi sono più lenti (serve anche più memoria per registrare le informazioni).
assomigliare ad un 1).
delicato: se cambia anche solo una cifra il significato può cambiare di molto. Tuttavia ci
sono metodi di riparazione e di correzione.
La nascita del sistema binario segue la logica booleana.
George Boole era un matematico che si occupò di logica, quindi una sorta di algebra ma
con due valori, come Vero e Falso, oppure 1 e 0. Il suo sistema di rappresentazione binaria
fu rivista da Shannon, che aprì la strada all’era digitale.
Con la compressione, ad esempio con i numeri periodici, mettiamo la barretta sopra le
cifre decimali. Allo stesso modo con il codice binario è possibile comprimere le ripetizioni
(es. 2022, possiamo scrivere 20 + 2 volte 2).
Il codice binario è un sistema di numerazione posizionale, ovvero ogni cifra ha un valore in
base alla posizione in cui si trova. Nel sistema decimale la stessa cifra in base alla
posizione può avere valore di unità, decine, centinaia…
Si parte a contare da destra, dove si trova il bit meno significativo;
invece quello più a sinistra è il più rilevante.
Guardando l’esempio: se su 27 perdessi 16, avrei 11. Se invece
perdessi 1 avrei 26, che è molto diverso.
Come ricavare i valori 16, 8, 4…? Sono potenze di 2: si
procede a potenze crescenti a partire da destra verso
sinistra.
Perché si usa proprio il 2? Come nel sistema decimale,
ragioniamo in base 10 ma i simboli arrivano fino a 9, allo
stesso modo il sistema binario usa il 2 perché i suoi simboli arrivano all’1, cioè 0 e 1.
potenza di 2, partendo dall’esponente 0 e aumentando di
1 di volta in volta andando verso sinistra (2 alla 0 , 1 , 2 , 3 …).
corrispondente.
Questo procedimento funziona anche con il sistema decimale, si spiega perché le
posizioni delle cifre danno un valore diverso in unità, decine, centinaia, migliaia, ecc.
divisione per 2.
nulla.
come nuovo numero decimale. Se il quoziente è uguale a zero, l'algoritmo termina.
numero decimale originale.
valore decimale.
dal posizionamento più a destra e andando verso sinistra, crescendo di 1 l'esponente ad
ogni spostamento e partendo da 0.
Finora abbiamo rappresentato solo i numeri positivi in binario; ovviamente, questa
rappresentazione non è sufficiente per soddisfare tutte le esigenze del mondo reale.
Esistono quindi le seguenti rappresentazioni:
Segno e modulo è la metodologia più semplice di codifica per distinguere i numeri
positivi e negativi e per rappresentare al meglio i valori
. Siamo abituati a vedere il segno
all’inizio del numero nel sistema decimale, allo stesso modo faremo con il sistema binario;
quindi il bit più significativo (quello più a sinistra) rappresenta il segno. Di convenzione,
abbiamo lo 0 come positivo e l’1 come negativo; i restanti bit rappresentano il valore
assoluto del numero, cioè il modulo. Se il valore meno significativo è 1 il valore è dispari,
se è 0 è pari.
Per ogni codifica, è necessario definire il numero di bit con i quali verrà rappresentato il
numero, perciò non possiamo rappresentare numeri all’infinito. Se non indicassimo il
numero di bit, il valore cambierebbe radicalmente, inoltre, dobbiamo farlo perché su una
scheda abbiamo uno spazio finito, non possiamo allargarci all’infinito. Questa quantità
sarà una potenza di due, il numero con cui è abituato a ragionare il numero binario.
Con segno e modulo avremo come limiti della rappresentazione:
Cosa fare se l’esercizio ci chiede un certo numero di bit?
Es. se la consegna ci chiede 8 bit, 1 lo teniamo per il segno, i restanti 7 devono essere
coperti interamente dal risultato.
Cosa fare se il risultato ha meno di 7 bit?
Bisogna inserire degli 0 per arrivare a 7 bit, tra il bit del segno (tutto a sinistra) e tra i bit del
risultato (tutto a destra).
Perché aggiungiamo lo 0?
Se pensiamo al passaggio da numeri binari a decimali, sappiamo che essendo un sistema
di numerazione che tiene conto della posizione dei bit e delle cifre, lo 0 annullerà il valore
di quella posizione, che non verrà conteggiata nella somma finale.
modulo.
complicazione).
poi controllo il modulo.
Questa è una rappresentazione della linea dei numeri.
Siamo abituati a vederla nel sistema tradizionale con la semiretta dei numeri naturali e lo
zero in centro, da cui parte un’altra semiretta con i numeri negativi: tutti i numeri crescono
(aumenta il loro modulo) andando verso i bordi.
Questa linea dei numeri non segue più lo stesso concetto: positivi e negativi sono
scambiati, infatti crescono e arrivano ad un picco (+0 → +127), poi il loro valore crolla e
risale (- 127 → - 0).
Il complemento a 2 riprende il complemento a 1, che a sua volta è un’evoluzione della
codifica segno e modulo. Ancora, il bit più significativo rappresenta sempre il segno, con
lo 0 per i positivi e 1 per i negativi, i restanti bit costituiscono il modulo.
Per i numeri positivi, come nel complemento a 1, si mantiene il valore binario.
Per i numeri negativi, si complementano tutti i bit e poi aggiungiamo 1: il risultato è che
non c’è più la doppia codifica dello zero, ma avrà un’unica rappresentazione. In questo
caso si modificano leggermente i limiti aggiungendo l’= perché viene compreso anche il
limite sinistro.
Nella rappresentazione del complemento a 2, prendo
come modello la rappresentazione del complemento a
1 e inverto i due blocchi. Ci avviciniamo quindi alla
retta tradizionale senza +0 e - 0, che ora sono la stessa
cosa.
C’è un’unica notazione per lo zero.
Comodo al computer per l’aritmetica di base
(somme e sottrazioni, maggiore o minore…) e ciò fa
risparmiare tempo nei calcoli; questa è la codifica di riferimento dei computer.
Miglioramenti nel passaggio tra segno e modulo, complemento a 1 e poi complemento a
2, che sono l’una l’evoluzione della precedente:
Questa codifica è un po’ particolare, è l’ultimo step delle codifiche viste. I numeri vengono
codificati in modo che siano in eccesso (es. per codificare il 7 con eccesso 3 prenderemo il
10): offset significa appunto compensare, controbilanciare. Questo offset è un valore fisso
che ci consente di spostare i valori da rappresentare.
Se volessimo rappresentare i 256 valori compresi tra - 128 e 128 ma prendendo quei valori
tra 1000 e 1256 scegliamo di usare la codifica in eccesso 1000. Aggiungendo questo valore
(valore di bias , deciso a tavolino), che deve essere costante, va aggiunto al numero da
rappresentare prima di convertirlo in binario. Ciò ha come risultato il fatto che il bit del
segno non serve più perché il valore di bias assicura che tutti i numeri siano positivi.
Come limiti abbiamo:
Unica notazione per lo zero.
L’ordine dei numeri a cui siamo abituati viene mantenuto (i negativi prima dei positivi).
Non ci si cura del segno perché le operazioni sforano tutte nella parte positiva della
linea dei numeri.
questa codifica e ogni volta il computer la deve leggere per trasformare i numeri
sprecando anche più memoria.
In informatica abbiamo due concetti: spazio e tempo. Se una cosa è complessa o
consumerà tanto tempo oppure tanto spazio. Dobbiamo capire caso per caso quale dei
due concetti sviluppare maggiormente per comunicare meglio, dobbiamo trovare un
compromesso per mediare questi due effetti.
Vogliamo rappresentare anche i numeri con la virgola. Il modo migliore per farlo è fissare
la virgola all’interno di questi numeri, si chiama notazione a virgola
fissa.
Come per le altre codifiche, è necessario stabilire il numero di bit, in
questo caso si stabilisce anche il numero di cifre intere e quello di
cifre decimali.
Nel passaggio da decimale a binario, le potenze di 2 che vanno verso
destra (cifre decimali) invece che crescere, diminuiscono in maniera
esponenziale.
Questa codifica riprende segno e modulo, molto semplice e intuitiva.
Anche in informatica abbiamo delle quantità da rappresentare e quindi il loro spazio va
quantificato.
L’unità fondamentale rimane il bit, la più piccola quantità di dati rappresentabile all'interno
di un sistema digitale (computer).
Essendo l’unità minima abbiamo bisogno di multipli per rappresentare le dimensioni più
grandi, che rappresentano sistemi digitali più complessi. 8 bit è l’unità scelta su cui
costruire questi multipli, cioè il byte (esso ha praticamente sostituito il bit perché è la
dimensione base per le rappresentazioni successive, bit → 8 bit = byte).
Il byte, seppur più grande del bit è comunque ancora troppo piccolo per un sistema come
il computer (per esempio un solo carattere occupa 8 o 16 bit).
Si passa al Kilobyte, che corrisponde a 1024 byte, ovvero 2 elevato alle 10. Viene utilizzato
per file piccoli con poche informazioni (32 pixel di immagine occupano un paio di
kilobyte).
Il
Megabyte viene usato per file audio e immagini più dettagliate (1024 kilobyte, cioè 2 alla
Il Gigabyte (1024 megabyte, cioè 2 alla 30) viene utilizzato per la ram , chiavette usb, hard
disk di computer e telefoni.
Il Terabyte (1024 gigabyte, cioè 2 alla 40) viene utilizzato per esempio per lo streaming,
che utilizza una grande quantità di informazioni.
Nel tempo si sono sviluppate e scontrate diverse notazioni, che mantengono il byte, ma
dopo di lui creano un multiplo diverso: il Kilobyte e Kibibyte, kB (con la k minuscola) e KB
(con la k maiuscola). In pratica il sistema binario (base 2) e il sistema decimale (base 10) si
scontrano: l’uno vuole utilizzare le potenze di 2 (1024) e l’altro quelle di 10 (1000).
La soluzione è adattarsi al contesto, chiedersi in quel momento e in quel luogo quale
sistema è quello da usare.
Spesso abbiamo bisogno di passare dal mondo analogico (reale) per andare al digitale e
viceversa, ad esempio facendo una foto abbiamo una versione digitale del mondo
analogico. Questi due mondi comunicano molto (in un qualche modo inventato da noi) e
sono fortemente collegati ed è bene sapere cosa succede nel passaggio da uno all’altro.
Il mondo analogico è descritto attraverso grandezze fisiche continue (temperatura,
pressione, velocità, posizione nello spazio, colori, ecc.). Appunto, il segnale analogico è
una grandezza fisica continua, per esempio di un colore esistono una miriade varietà,
potenzialmente infinite, quindi il colore è “continuo”, oppure la temperatura della stanza
è indicata dalla barretta del termometro, ma tra un grado e l’altro ci sono un’infinità di
punti e gradi.
Il segnale digitale invece è discreto. All’interno del computer c’è uno spazio finito e quindi
non possono esserci infinite informazioni, le grandezze fisiche vengono rappresentate
attraverso valori numerici discreti.
Cosa significa? Tra un bit e l’altro non ci sono valori in mezzo! Nei numeri razionali invece
tra 1 e 2 ci sono infiniti numeri. Capiamo che è una situazione molto diversa, non c’è
quella caratteristica dell’infinità come nel mondo analogico.
Le immagini digitali per esempio sono composte da pixel, ogni quadratino seppur
minuscolo è monocolore se zoommo il più possibile, può sembrare all’apparenza un
segnale continuo, ma ad un certo punto mi devo fermare.
La differenza principale tra segnali analogici e digitali è la loro rappresentazione, questo
perché ci sono dei segnali profondamente diversi. I segnali analogici sono rappresentati in
modo continuo, mentre i segnali digitali sono rappresentati in modo discreto.
Sempre per una questione di efficienza, si vanno a
manipolare i dati .
I segnali analogici sono molto suscettibili a variazioni di qualità (luci, colori, suoni, ecc.)
essendo di tipo continuo. I segnali digitali però sono elaborati in modo preciso e
resistente (un’informazione non viene modificata durante un trasferimento). Risulta quindi
più facile memorizzare dei segnali digitali, in quanto finiti, perché se dovessi memorizzare
qualcosa di infinito, dove lo metto?
Per questo motivo abbiamo la compressione, un segnale analogico deve essere trasmesso
per intero, quello digitale no, e può essere compresso. La compressione dei dati ne
consente un risparmio e quindi anche un risparmio di spazio e tempo.
I segnali analogici devono essere live, in tempo reale, rispettano determinate tempistiche,
per esempio un video o un film con suoni, video e sottotitoli sincronizzati.
Nella tecnica, si parla di conversione di grandezze analogiche in informazioni digitali,
effettuata mediante un dispositivo, detto digitalizzatore o convertitore analogico-digitale.
Esistono quindi dei dispositivi che fanno da ponte tra mondo reale e digitale (Treccani).
La digitalizzazione è il processo di conversione che, applicato alla misurazione di un
fenomeno fisico, ne determina il passaggio dal campo dei valori continui a quello dei
valori discreti (Wikipedia).
Si sottolinea l’aspetto di continuo e discreto, quindi la creazione di bit.
La digitalizzazione ci permette di manipolare le informazioni per renderle efficienti
portandole da segnale analogico in segnale digitale, quindi i segnali analogici si
modificano man mano che ci si avvicina al mondo digitale (es. toccando una foto tante
volte rimane la mia impronta, oppure ascoltando tante volte un vinile la puntina si
consuma).
Segnale continuo
Rappresentazione precisa
Difficile da processare
Non comprimibile
Debole a rumore e distorsione
Dipende dalla qualità del supporto
Deteriorabile e incorreggibile
Segnale discreto
Rappresentazione approssimata
Algoritmi standard di elaborazione
Comprimibile
Robusto
Archiviazione indipendente
Non deteriorabile e correggibile
La rappresentazione analogica è caratterizzata da continuità, naturalezza, e assenza di
limiti; ma sono suscettibili alle interferenze presenti nel mondo reale (es. rumore, luce,
dispositivo rovinato, ecc.).
La rappresentazione digitale abbiamo valori approssimati (campionati e quantizzati) ma
che rimarranno così nel tempo e non si possono degradare; qui entra in gioco la
compressione dei dati.
La compressione dei dati, in informatica e nelle telecomunicazioni, è la tecnica di
elaborazione dati che, attuata a mezzo di opportuni algoritmi, permette la riduzione della
quantità di bit necessari alla rappresentazione in forma digitale di un'informazione
(Wikipedia).
Abbiamo la necessità di comprimere i dati, specialmente provenienti da segnali digitali,
perché sono tantissimi (potenzialmente infiniti) in uno spazio limitato. Lo scopo è quello di
salvare questi dati schiacciandoli senza perdite di informazioni (o con le minori perdite
possibili, ma dipende dai casi).
Ci sono situazioni in cui bisogna essere precisi (es. dati bancari) e situazioni in cui non è
indispensabile (es. microfono per conferenze con un minimo di ritardo o con cambio del
timbro della voce, va bene comunque).
Per questo esistono due categorie di algoritmi: lossless e lossy.
Con la compressione abbiamo delle approssimazioni, la differenza sta nella quantità di
dati persi; i segnali analogici sono difficili da comprimere, mentre per quelli digitali è più
fattibile.
Inoltre ogni tipo di informazione ha bisogno di un dispositivo apposito per l’archiviazione
di dati, più o meno complesso in base alla quantità e alla precisione di essi (es. più
complesso per le immagini, meno complesso per l’audio).
A livello pratico, la compressione serve a diminuire il numero di bit necessari per
esprimere un segnale digitale, risparmiando spazio però andiamo a consumare più tempo,
che siamo disposti ad intaccare perché ne abbiamo di più rispetto allo spazio sul
dispositivo.
Nelle comunicazioni digitali abbiamo una “banda passante” che ha un massimo di
informazioni che può, appunto, far passare (come una tubatura ha una quantità massima
di litri che possono passare attraverso di essa). Per questo motivo la compressione è utile
nella trasmissione di dati: essa viene ottimizzata ed è più veloce grazie alla compressione.
Chi invia e chi riceve l’informazione farà più “fatica”, il processo sarà meno efficiente, ma
le vie di comunicazione sono più snelle e veloci; proprio per questo motivo, occupando
più banda, i pacchetti degli abbonamenti di streaming con una qualità maggiore costano
di più.
Comunicazioni → le vie di comunicazione costano molto, vogliamo risparmiare banda; la
compressione le rende più efficienti perché riduce il numero di informazioni che vi
passano attraverso, ottimizzando i tempi di trasmissione.
Multimedia → i contenuti multimediali (immagini, video, audio) hanno grandi dimensioni;
comprimendoli, diminuisce la quantità di memoria richiesta per la loro archiviazione e
migliora la loro fruizione.
Archiviazione → per il mantenimento di file, serve schiacciare le informazioni per
aumentare la capienza del supporto.
Analisi dei dati → oggi qualsiasi cosa si basa su questo: pubblicità, risultati durante la
navigazione, riproduzione casuale su Spotify, ecc. Se i dati sono compressi, sono più facili
da analizzare e abbiamo una loro visione di insieme, per esempio categorizzando,
raccogliendo età, posizioni.
Sicurezza → il segnale analogico da trasmettere per intero bisogna proteggerlo dalle
copie, dal furto, schiacciandoli i dati sono più facile da nascondere e proteggere.
La compressione lossless è una tecnica di compressione attraverso cui si comprime senza
perdere informazioni, i dati non sono distinguibili all'inizio e alla fine della compressione.
Si cerca di identificare pattern (sezioni di bit ricorrenti/ridondanti) ricorrenti e di sostituirli
con codici più brevi; in pratica, i dati vengono riorganizzati in modo più efficiente, ma
nessuna informazione viene eliminata.
Vantaggi e svantaggi:
utili per la crittografia).
rimozione di dati), maggior utilizzo di tempo.
Le tecniche lossy, ovvero con perdita di informazione, prevedono l’eliminazione di dati che
non contribuiscono significativamente al risultato finale, ma cosa significa
significativamente? Questo è un concetto abbastanza vago, perché per qualcuno è
accettabile una perdita di informazioni, per qualcuno magari no. Queste tecniche durante