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


Informatica di base a.a. 22/23, Appunti di Fondamenti di informatica

Appunti dettagliati delle lezioni, integrati con le slides messe a disposizione dal prof e immagini.

Tipologia: Appunti

2022/2023

In vendita dal 30/06/2023

sarasardella
sarasardella 🇮🇹

5

(3)

8 documenti

1 / 40

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
TEORIA DELL’INFORMAZIONE
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.
-
Computer Science
studio delle scienze dell’informazione e della teoria
dell’informatica, si parte dalla matematica e si realizza in qualcosa di più pratico.
-
Information Technology
tecnici con conoscenze meno scientifiche, ma con
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.
1641
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.
1820
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28

Anteprima parziale del testo

Scarica Informatica di base a.a. 22/23 e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

TEORIA DELL’INFORMAZIONE

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.

  • Computer Science → studio delle scienze dell’informazione e della teoria

dell’informatica, si parte dalla matematica e si realizza in qualcosa di più pratico.

  • Information Technology → tecnici con conoscenze meno scientifiche, ma con

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?)

  1. Tutto ciò è possibile farlo in un tempo finito?

(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:

  1. Un sistema, se abbastanza potente (quindi rilevante oggetto di interesse) può essere o

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.

1975: MICROSOFT

Bill Gates e

Paul Allen iniziano sviluppando videogiochi, ma poi continuano decidendo di

sviluppare software.

1976: APPLE

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.

ANNI ’ 90 AD OGGI

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…).

CODIFICA DELL’INFORMAZIONE E SISTEMA BINARIO

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.

VANTAGGI E…

  • Utilizzando solo due simboli risulta più semplice da capire ed utilizzare (si/no, c’è/non

c’è, alto/basso).

  • Rende possibile l’elaborazione e la memorizzazione di informazioni perché facilmente

compatibile con circuiti hardware.

  • Facilmente comprimibile e criptabile, le informazioni vengono compresse e poi cifrate

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.

…SVANTAGGI

  • Richiede più cifre rispetto al sistema decimale, diventa più difficile, i calcoli fanno più

passaggi e quindi sono più lenti (serve anche più memoria per registrare le informazioni).

  • C’è una difficoltà di lettura e comprensione da parte dall’occhio umano.
  • Possibili e probabili errori di trasmissione se scritto a mano (lo 0 si può assottigliare e

assomigliare ad un 1).

  • Con interferenze, collisioni o guasti, è suscettibile agli errori perché è un linguaggio

delicato: se cambia anche solo una cifra il significato può cambiare di molto. Tuttavia ci

sono metodi di riparazione e di correzione.

NASCITA DEL SISTEMA BINARIO

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).

CODIFICA BINARIA DI UN NUMERO

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.

TRASFORMAZIONE DA BINARIO A DECIMALE

  1. Scrivi il numero binario.
  2. Partendo da destra, assegna a ciascuna cifra una

potenza di 2, partendo dall’esponente 0 e aumentando di

1 di volta in volta andando verso sinistra (2 alla 0 , 1 , 2 , 3 …).

  1. Moltiplica ciascuna cifra per il valore della potenza.
  2. Somma i prodotti ottenuti e ottieni il numero decimale

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.

TRASFORMAZIONE DA DECIMALE A BINARIO

  1. Scrivi il numero decimale.
  2. Dividi il numero decimale per 2.
  3. Scrivi il resto della divisione (0 o 1) a destra del numero.
  4. Se il risultato della divisione è uguale a 1, sottrai 1 dal numero decimale e continua la

divisione per 2.

  1. Se il risultato della divisione è uguale a 0, continua la divisione per 2 senza sottrarre

nulla.

TRASFORMAZIONE DA DECIMALE A ESADECIMALE

  1. Dividi il numero decimale per 16.
  2. Scrivi il resto come la prima cifra del numero esadecimale.
  3. Se il quoziente è maggiore di zero, ripeti il processo dal punto 1 utilizzando il quoziente

come nuovo numero decimale. Se il quoziente è uguale a zero, l'algoritmo termina.

  1. Leggi a destra del numero partendo dal basso la rappresentazione esadecimale del

numero decimale originale.

TRASFORMAZIONE DA ESADECIMALE A DECIMALE

  1. Scrivi il numero esadecimale e ad ogni cifra del numero, assegna il corrispondente

valore decimale.

  1. Moltiplica ciascuna cifra per 16 elevato alla potenza del suo posizionamento, partendo

dal posizionamento più a destra e andando verso sinistra, crescendo di 1 l'esponente ad

ogni spostamento e partendo da 0.

  1. Somma i prodotti ottenuti dal punto 3 per ottenere il numero decimale.

RAPPRESENTAZIONE DEI NUMERI BINARI

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
  • Complemento a 1
  • Complemento a 2
  • Offset/Eccesso-k

SEGNO E MODULO

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.

VANTAGGI E SVANTAGGI

  • Notazione molto naturale: il primo bit rappresenta il segno (+, - ) e il resto rappresenta il

modulo.

  • Doppia rappresentazione dello zero che può essere sia positivo che negativo (spreco,

complicazione).

  • Addizione e sottrazione sono fatte in maniera differente in base al segno (vedi disegno).
  • La comparazione per essere eseguita necessita di più passaggi: prima controllo il segno,

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).

COMPLEMENTO A 2

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.

VANTAGGI E SVANTAGGI

  • 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.

  • Non abbiamo problemi di riporto.
  • Meno intuitivo per noi umani, ma più efficiente per il computer.

Miglioramenti nel passaggio tra segno e modulo, complemento a 1 e poi complemento a

2, che sono l’una l’evoluzione della precedente:

OFFSET/ECCESSO-K

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:

VANTAGGI E SVANTAGGI

  • 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.

  • I numeri seguono delle tabelle contenute nel computer al cui interno è stata scritta

questa codifica e ogni volta il computer la deve leggere per trasformare i numeri

sprecando anche più memoria.

  • Il bit del segno ha valore contrario (1 positivo, 0 negativo).

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.

RAPPRESENTAZIONE DEI NUMERI NON INTERI

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.

DIMENSIONI E UNITÀ DI MISURA

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.

SEGNALI E DIGITALIZZAZIONE

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.

ELABORAZIONE DEI SEGNALI

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.

DIGITALIZZAZIONE

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).

CONFRONTO TRA SEGNALI

ANALOGICO DIGITALE

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.

COMPRESSIONE

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ù.

AMBITI DI APPLICAZIONE

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.

LOSSLESS VS LOSSY

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:

  • Nessuna perdita di dati (dati decompressi = dati da comprimere), più sicurezza (tecniche

utili per la crittografia).

  • Minore efficienza (meno compressione di dati), maggiore complessità (nessuna

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