


































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 completi informatica di base a.s. 2024/2025
Tipologia: Appunti
1 / 42
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



































PROGRAMMA
Nella maggior parte delle lingue ci sono due parole per parlare dell’informatica: computer science e information technology; mentre in italiano abbiamo soltanto la parola informatica.
L’informatica nasce nel XX secolo a.C. con l’ abaco , come primo strumento di calcolo meccanico manuale, in Mesopotamia/Cina per il commercio. C’era bisogno di una macchina che supportasse questa necessità. É uno strumento che ci permette di tenere un po di memoria e ci facilita i conti.
Negli anni 60 abbiamo Noam Chomsky , uno dei padri dell’informatica, perché con i suoi studi di linguistica riesce a formalizzare i linguaggi di programmazione, a dire cosa di può fare con un linguaggio e cosa no, chi può riconoscerlo e chi no. Apre la strada al mondo moderno dell’informatica intesa come programmazione dei sistemi. Michael Rabin si occupa di complessità computazionale (quante risorse di calcolo mi servono per risolvere determinati problemi) e crittografia. Nel 1965 Gordon Moore , scienziato e cofondatore di INTEL, fa una previsione e dice che “Il numero di transistor all'interno di un microchip raddoppia circa ogni anno” , poi si scopre che aveva in parte ragione perchè raddoppia ogni anno e mezzo.
The word "information" has been given different meanings by various writers in the general field of information theory. It is likely that at least a number of these will prove sufficiently useful in certain applications to deserve further study and permanent recognition. It is hardly to be expected that a single concept of information would satisfactorily account for the numerous possible applications of this general field. (Shannon) (fino a min 5) Bisogna condividere l'informazione in modo univoco; l'info deve essere:
Per condividere un'informazione in modo univoco in informatica si usa: il sistema binario.
Il sistema binario è un sistema di numerazione che utilizza solo due simboli per rappresentare i numeri (solitamente 0 e 1; ma possono essere anche altri numeri). Il sistema binario è la base del sistema di numerazione utilizzato in informatica ed elettronica, dove ogni informazione digitale viene codificata in sequenze di 0 e 1, chiamati bit. Per noi il codice binario è difficile da decifrare, ma per il computer è molto più semplice. Per riconoscere qualcosa di diverso dal sistema binario hanno bisogno di molta energia e addestramento. NASCITA DEL SISTEMA BINARIO: Un vero e proprio sistema binario è stato sviluppato per la prima volta nel XIX secolo dal matematico e filosofo inglese George Boole , che si basò sui precedenti lavori di Leibniz. Boole sviluppò la logica booleana, un sistema di algebra simbolica che utilizza solo due valori, vero e falso (1 e 0), per rappresentare le variabili. Questo sistema di rappresentazione binaria forma la base dei sistemi digitali utilizzati ancora oggi. Il sistema binario è stato poi ulteriormente sviluppato da Claude Shannon , un matematico americano, negli anni '40 e '50 del XX secolo. Shannon ha dimostrato che qualsiasi tipo di informazione può essere rappresentata utilizzando un sistema binario, aprendo la strada alla creazione di dispositivi di elaborazione dati digitali. (19min) TRASFORMAZIONE DEL CODICE BINARIO A DECIMALE:
Come vengono rappresentati i numeri all’interno del sistema binario? Per digitalizzare ci sono molti problemi, non è semplice come sembra.
Rappresentazioni più famose:
Noi rappresentiamo i numeri in base 10: abbiamo 10 cifre da 0 a 9 più due simboli per positivo e negativo. Quando stiamo andando a rappresentare i numeri interi, andiamo ad utilizzare 12 simboli —> effettivamente il binario ha 2 simboli quindi bisogna trovare il modo di rappresentare il
Segno si inserisce il più a sinistra possibile: abbiamo, da sinistra verso destra, il segno e poi tutte le cifre del modulo del numero Esempio:
Quando stiamo esprimendo dei numeri è necessario definire il numero di bit che stiamo utilizzando per quel tipo di rappresentazione. Questo perché la memoria del computer è finita —> il computer deve saper cil numero di cifre che andremo ad utilizzare (bisogna specificarlo).
Anche in questa codifica, il bit più significativo rappresenta il segno, con valore 0 che rappresenta i numeri interi positivi e 1 quelli negativi. I restanti n-1 bit rappresentano il modulo:
Ne consegue che i numeri positivi saranno rappresentati in maniera identica al complemento a 1, e lo zero otterrà un'unica rappresentazione. Come sempre, è necessario definire il numero di bit con i quali verrà rappresentato il numero. Nello specifico, con questa codifica avremo i seguenti limiti: -2(N-1) < x < +2(N-1) Con N numero di bit, x il valore da rappresentare. VANTAGGI SVANTAGGI VANTAGGI SVANTAGGI Esiste finalmente un'unica notazione per lo zero, c h e è molto comoda quando il computer vuole verificare la presenza di un risultato pari a 0. La notazione non è molto semplice da capire perché è molto diversa dal modo convenzionale di rappresentare i numeri con segno.
Non c’è più il doppio zero, mentre i calcoli si fanno come li faremmo noi.
Questa codifica prevede di aggiungere un valore costante (chiamato valore di bias) al valore assoluto del numero da rappresentare, prima di convertirlo in binario. In questo modo, il bit del segno non è necessario, poiché il valore di bias assicura che tutti i numeri rappresentati saranno positivi. Ad esempio, consideriamo la codifica in eccesso 3 del numero 7. Il valore di bias è 3, quindi dobbiamo aggiungere 3 a 7, ottenendo 10. Convertiamo quindi 10 in binario, ottenendo 1010, che rappresenta il numero 7 nella codifica in eccesso 3. Come sempre, è necessario definire il numero di bit con i quali verrà rappresentato il numero. Nello specifico, con questa codifica avremo i seguenti limiti: 0 - bias/eccesso <= x < +2" - bias/eccesso - Con N numero di bit, x il valore da rappresentare. Per convertire un numero decimale utilizzando questa notazione si procede come segue:
Un grosso problema della notazione in virgola mobile è che non sempre riesce a sommare una quantità enorme con una minuscola.
Passi di trasformazione da numero decimale a numero in virgola mobile:
Indica il momento in cui un calcolo produce un qualcosa /un numero troppo grande per restare all’interno della rappresentazione che stiamo usando. In informatica, il termine "overflow" indica una situazione in cui un calcolo produce un risultato che supera la capacità di rappresentazione del sistema utilizzato per il calcolo stesso. In altre parole, si verifica un overflow quando il risultato di un'operazione matematica supera il valore massimo che può essere rappresentato nel sistema utilizzato. Ad esempio, su un sistema che utilizza 8 bit per rappresentare gli interi con la codifica modulo e segno, i valori rappresentabili sono compresi fra -127 e +127. Se proviamo ad aggiungere 1 a +127, questo non potrà essere 128: la situazione verrà gestita, ad esempio generando un errore.
Quando il risultato di un operazione è troppo piccolo per essere rappresentato, quando la precisione non è sufficiente. Il termine underflow indica una situazione in cui il risultato di un’operazione matematica è troppo piccolo per essere rappresentato nel sistema utilizzato. Ad esempio, consideriamo una variabile che rappresenta numeri con la virgola con una precisione limitata. Se proviamo a eseguire un calcolo che produce un valore inferiore alla capacità di rappresentazione della variabile, si verifica un underflow. In genere, il sistema gestisce l'underflow approssimando il risultato oppure restituendo un valore speciale come Infinito negativo.
In informatica, l'unità di misura fondamentale è il bit, che rappresenta la più piccola quantità di dati che può essere elaborata da un computer. Il bit può assumere solo due valori, 0 o 1. Essendo il bit la più piccola misura possibile, è scomoda da utilizzare per indicare grandi quantità da dati. Esistono quindi i multipli del bit che vengono utilizzati per quantificare più comodamente le misure. Di seguito sono elencate le unità di misura più comuni utilizzate in informatica per i bit e i suoi multipli:
più piccola.
grandi, dato che il bit risulta essere troppo piccolo.
utilizzato per indicare la dimensione dei file di testo e delle immagini di piccole dimensioni.
spesso utilizzato per indicare la dimensione dei file audio e delle immagini più dettagliate.
utilizzato per indicare la quantità di memoria disponibile nelle memorie RAM, nelle chiavette USB e per i video di lunga durata ) ad esempio i film).
utilizzato per indicare grandi quantità di memoria, ad esempio la dimensione del disco all'interno dei PC. Nella parte destra della tabella possiamo apprezzare come talvolta un kibibyte (con simbolo KB) venga riferito come kilobyte (indicato sempre con simbolo KB). La chiave di interpretazione giusta è sempre il contesto. Problema: ogni salto che faccio perdo precisione, perchè non è 1000 ma 1024, quindi il Terabyte sarà impreciso dic rica il 10%.
terabyte venduti non sono effettivi sono circa 930 invece che 1024. A complicare le cose arriva una collisione fra diverse notazioni che utilizzano a volte nomi differenti, a volte nomi identici. L'unità di misura base rimane sempre il byte, ma poi escono due differenti multipli:
Da qui il nuovo punto di partenza per tutti i successivi multipli ESERCIZI Quanto vale il numero 10?
Quale rappresentazione usiamo noi esseri umani per i numeri interi?
La codifica binaria è più compatta della codifica decimale
16 in base 10 mi servono 2 cifre mentre in binario 5 cifre.
Il mondo che ci circonda è analogico , può essere descritto in termini di grandezze fisiche come la temperatura, la pressione, la velocità, la posizione, l'immagine e il suono. Per rappresentare queste grandezze, è possibile utilizzare due tipi di segnali: analogici e digitali. Normalmente, le grandezze a cui siamo abituati sono continue (fra qualsiasi due misurazioni nel mezzo ci sono altre misurazioni).
un dispositivo, detto digitalizzatore o convertitore analogico-digitale.
fisico, ne determina il passaggio dal campo dei valori continui a quello dei valori discreti. La digitalizzazione è il processo di conversione di informazioni o dati analogici in formato digitale, in cui le informazioni vengono rappresentate sotto forma di numeri binari (0 e 1). Questa rappresentazione binaria consente alle informazioni di essere manipolate, elaborate e trasmesse in modo più efficiente rispetto ai segnali analogici. In sintesi, la differenza tra analogico e digitale sta nella modalità di rappresentazione del segnale.
come un disco in vinile, sotto forma di onde sonore continue. Nel momento in cui il suono viene riprodotto, la forma d'onda originale viene ricostruita dalla superficie fisica e riprodotta in modo continuo.
formato digitale.In questo processo, il suono viene catturato a intervalli regolari e la forma d’onda viene approssimata a una serie di numeri. Questi numeri vengono quindi salvati come file digitale e possono essere riprodotti da un sistema informatico. Processo di digitalizzazione: 2 fasi di semplificazione:
intervalli. La quantizzazione è il processo di approssimazione di un segnale analogico continuo a un segnale digitale discreto. La quantizzazione consiste nell'assegnare un valore numerico discreto al valore continuo di un segnale analogico in un determinato istante di tempo. Questo avviene tramite la suddivisione del range di valori possibili del segnale analogico in intervalli discreti di ampiezza uguale, chiamati "livelli di quantizzazione”. Ovviamente la quantizzazione porta un’errore. È importante tenere presente che la quantizzazione introduce un errore di quantizzazione , ovvero la differenza tra il valore del segnale analogico originale e il valore digitale approssimato. L'errore di quantizzazione può causare una perdita di informazioni e una degradazione della qualità del segnale digitale. CAMPIONAMENTO La dicretizzazione dell’infinto. Il campionamento è il processo di cattura del segnale analogico a intervalli regolari di tempo , noto come frequenza di campionamento. La frequenza di campionamento determina la qualità della rappresentazione digitale del segnale analogico. La frequenza di campionamento, espressa in Hertz (Hz), rappresenta il numero di campioni acquisiti per ogni secondo di tempo. La frequenza di campionamento deve essere scelta in modo tale da poter riprodurre il segnale originale con una buona precisione, ma senza eccessivo spreco di memoria.
che il suono viene campionato 44.100 volte al secondo. Questo consente una riproduzione di alta qualità del suono, simile a quello che si avrebbe ascoltando l'audio analogico originale.
delle immagini. In questo caso, il processo di digitalizzazione coinvolge la conversione di
un'immagine analogica in un formato digitale, dove l'immagine viene rappresentata come una serie di pixel, ognuno dei quali ha un valore numerico associato. L’immagine è rappresentata come una serie di campioni di colore per ogni punto dell'immagine, che vengono poi registrati come valori numerici. Questi valori numerici rappresentano la quantità di luce riflessa o assorbita da ogni pixel. Campionare l’immagine: trasformare tutto in quadratini (non posso rappresentare le sfumature) Il numero di pixel che viene acquisito durante la scansione dell'immagine dipende dalla risoluzione dell'immagine, ovvero dalla quantità di dettagli che si vuole catturare. Maggiore è la risoluzione dell'immagine, maggiore sarà il numero di pixel acquisiti e maggiore sarà la precisione della rappresentazione digitale dell'immagine. Sarà anche maggiore però la dimensione del file che la conterrà.
Metodo più semplice per capire cosa sta dietro ai vari formati. 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. Significa applicare un algoritmo affinché qualcosa di grande diventi piccolo. Si può trarre beneficio dalla compressione, quindi, nella trasmissione e nellʼarchiviazione dei dati. Un aspetto cruciale della compressione è ridurre le dimensioni dei file digitali senza perdere alcuna informazione importante. L'obiettivo è quindi ridurre lo spazio di archiviazione mantenendo (quanto più possibile) la qualità del contenuto originale. Esistono due categorie di algoritmi: lossless e lossy. Lossy: eseguiamo la compressione ma non possiamo tronare indietro in maniera perfetta, non posso ottenere la forma originale —> c’è una perdita di informazioni. Il mondo digitale ci permette di fare trasformazioni lossless: senza alcun tipo di perdita. —> in base all’ambito possiamo decidere se avere una perdita o no
maggiore rispetto alla compressione lossless, poiché elimina alcune informazioni ridondanti o meno importanti. Ne risulta quindi una dimensione dei dati inferiore.
alcuni tipi di dati, come immagini e video ad alta risoluzione, dove alcune informazioni ridondanti possono essere rimosse senza impattare significativamente la qualità. SVANTAGGI
comporta la perdita di alcune informazioni. Questo può causare una riduzione della qualità dei dati compressi, che potrebbe essere evidente in particolare in presenza di ripetuti processi di compressione e decompressione.
fedeltà risulta critica e prioritaria.
lossy, non è possibile decomprimerli in modo da ottenere una replica identica dell'originale. I dati originali risultano quindi in qualche modo compromessi. Esempi di algoritmi di compressione ● Run-length encoding (lossless) ● Dictionary/Substitution encoding (lossless) ● Deflate/Inflate (lossless) ● Discrete cosine transform / DCT (lossy)
Il metodo di compressione Run-length encoding (RLE) è una tecnica di compressione lossless che cerca di ridurre la quantità di dati da memorizzare rappresentando le ripetizioni di simboli in una sequenza di dati. Questo metodo di compressione è particolarmente utile per le sequenze di dati in cui un singolo simbolo si ripete molte volte consecutivamente, ad esempio in immagini in bianco e nero o in dati audio in cui un suono viene ripetuto per un certo periodo di tempo.
RLE analizza la sequenza di dati e sostituisce le ripetizioni di simboli con una coppia di numeri: il simbolo e il numero di volte in cui il simbolo appare consecutivamente nella sequenza. Per esempio, la sequenza A A A B B C C C C C potrebbe essere compressa in 3A 2B 5C. L'algoritmo RLE è semplice e veloce da implementare, e non richiede molte risorse di elaborazione. Tuttavia, la compressione RLE può essere inefficace su dati non ripetitivi, o su dati che presentano solo poche ripetizioni, e in alcuni casi può anche aumentare la dimensione dei dati se non vi sono sequenze ripetute.
dice 1A 1B 1C —> diventa più grande della sequenza iniziale, non mi fa guadagnare nulla. Il contesto è quindi fondamentale.
L'algoritmo di compressione Dictionary coder utilizza un dizionario di sequenze di dati già incontrate (o comunque in uso) all'interno del file da comprimere. Inizialmente il dizionario contiene solo una serie di simboli singoli (ad esempio i singoli caratteri di un testo), ma poi vengono aggiunte sequenze di dati più lunghe man mano che l'algoritmo analizza il file da comprimere.
(composizioni di simboli) L'algoritmo Dictionary coder rimpiazza poi le sequenze di dati ripetute nel file originale con delle etichette che fanno riferimento alle sequenze salvate nel dizionario.
Le sequenze nel file da comprimere vengono sostituire con l'etichetta corrispondente. In questo modo, l'algoritmo può comprimere il file sostituendo le sequenze ripetute con etichette più corte, risparmiando così spazio di archiviazione.
Questo algoritmo è in grado di ottenere buoni tassi di compressione, soprattutto su file contenenti ripetizioni di sequenze di dati, come ad esempio documenti di testo. Tuttavia, richiede sia una grande quantità di memoria per gestire il dizionario delle sequenze, sia un tempo significativo per la creazione del dizionario stesso. Se il file da comprimere non contiene molte sequenze ripetute può avere una scarsa efficienza di compressione.
complessa che in RLE DICTIONARY CODER - LZ Supponiamo di avere la seguente sequenza di caratteri da comprimere: AABABBBABAABABBBABBABB
viene letto e gli elementi nel dizionario.
vista. La sequenza verrà suddivisa come segue: A/AB/ABB/B/ABA/ABAB/BB/ABBA/BB
molto lenta
Il destinatario, il quale deve eseguire il decoding, usa lo stesso algoritmo per costruire il dizionario che ha usato il mittente, che ha eseguito lʼencoding. Ciò garantisce che il destinatario e il mittente costruiscano il medesimo dizionario.
La DCT sfrutta una funzione matematica che permette di distribuire l'energia del segnale in vari spettri di frequenza. In pratica, questo significa che, applicando la DCT a un'immagine, si possono ottenere una serie di coefficienti che rappresentano le caratteristiche spettrali dell’immagine, concentrandone la maggior parte nei coefficienti di bassa frequenza. I coefficienti di alta frequenza, che contengono meno energia, possono essere eliminati o rappresentati con meno precisione, senza compromettere significativamente la qualità dell’immagine.