




















































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
Una terminologia di base in informatica, spiegando concetti come bit, byte, hardware, software, memoria e file system. Il testo inizia con la definizione di computer come dispositivo digitale in grado di eseguire istruzioni automaticamente, e distingue tra hardware (componenti fisici) e software (programmi). Il documento poi discute l'evoluzione storica dei dati elaborabili, dalla gestione di inventari e libri paga alle moderne macchine virtuali. Viene inoltre introdotto il concetto di byte come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore e la velocità di trasmissione di una linea. Il testo conclude con una breve introduzione al file system.
Tipologia: Appunti
1 / 60
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





















































“Lo sviluppo tecnologico rende presto obsolete le conoscenze tecniche molto dettagliate.”
La tecnologia varia velocemente ma i concetti di base no e sono quelli che permettono di gestire il cambiamento: i concetti di base non cambiano e servono appunto per orientarsi ancora in quello che succede. Un esempio di ciò che è cambiato nel tempo è l’interfaccia di Windows e tutte le sue caratteristiche correlate.
Effettuare calcoli a mente o a mano è un’attività noiosa e incline all’errore; per secoli l’uomo ha cercato di porre rimedio a questo fatto automatizzando il processo di calcolo. L’essere umano è in grado di individuare e applicare un algoritmo per risolvere il problema ma non ha voglia, impiega troppo tempo e rischia di commettere errori.
Abaco = prima macchina di calcolo nota; i primi abachi risalgono al V millennio a.C.; l’abaco non è molto diverso da un foglio di carta perché la logica e la correttezza delle operazioni dipendono dalla mente dell’utente.
Pascalina = bisogna aspettare fino al XVII secolo d.C. per avere la prima vera innovazione rispetto all’abaco. Essa rappresenta il primo vero e proprio passo in avanti perché la logica dell’operazione è controllata dalla macchina. Problema 1: permetteva di effettuare solo addizioni e sottrazioni → moltiplicazioni e divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni, ma era di nuovo l’utente a dover controllare il processo. Problema 2: si può pensare di affrontare il problema modificando la macchina di modo da introdurre la divisione e la moltiplicazione ma comunque si creano nuovi problemi come la radice quadrata e il logaritmo → non si sta risolvendo il problema, lo si sta solo rimandando. Problema 3: il vero problema è che la logica che governa le operazioni è “cablata” sulla macchina calcolatrice → la soluzione è attuare tale logica come parte dell’input della macchina.
Macchina Analitica = introdotta da Charles Babbage intorno al 1840; è il primo esempio di macchina di calcolo programmabile. Qui abbiamo un hardware con istruzioni elementari; la logica non richiede l’aggiunta di nuove istruzioni nell’hardware ma richiede che venga scritto un software, cioè programma, che utilizzi l’hardware per ottenere ciò che si desidera. Babbage era molto avanti rispetto ai suoi tempi ma la tecnologia non era ancora sviluppata a sufficienza (la macchina analitica avrebbe dovuto funzionare a vapore) e l’esigenza di automatizzare il calcolo non era così forte → le sue idee non ebbero il successo che avrebbero meritato e furono dimenticate per quasi un secolo.
→ Bisogna aspettare la prima metà del ‘900 perché le idee di Babbage, che erano fondamentali, fossero riscoperte da Alan Turing e John von Neumann, i due padri dell’informatica.
Alan Touring → molte sue idee e congetture sono attuali anche oggi; inventa la macchina di Touring, cioè un modello astratto di calcolatore: è un esperimento mentale, non una macchina effettivamente costruibile. Venne pensata per calcolare i limiti di ciò che è calcolabile
automaticamente; è universale perché può calcolare tutto ciò che calcolabile in modo automatico. Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica.
John von Neumann = descrive un calcolatore effettivamente costruibile; è ancora oggi il modello su cui si basano i computer moderni basati su oggetti e concetti simili a quelli odierni (concetti di base).
Information and Communication Technology → informatica come tecnologia; risvolti fisico-matematici e ingegneristici del calcolo automatico; teorie e tecniche di comunicazione. Computer Science → informatica come scienza; basata su modellizzazione, formalizzazione e verifica sperimentale (teoria degli automi, logica formale, teorie del linguaggio). “Computer Science is no more about computers than astronomy is about telescopes.” (E. Dijkstra)
1600 → macchine calcolatrici a ingranaggi (Pascal, Leibniz); 1800 → macchine con schede perforate e primi programmi = Babbage, Lovelace (figlia di Byron); 1920 → erano chiamati “computer” gli impiegati che eseguivano calcoli numerici; 1940 → macchine a relay meccanici (Bell Laboratories; Mark I presso Harvard University e IBM); 1950 → macchine di John von Neumann (schede perforate e nastri magnetici; transitor e circuiti stampati); 1980 → microcomputer (home computer, personal computer). Il computer diventa uno strumento di intrattenimento e non più solo di lavoro (precedentemente caratterizzava il lavoro d’ufficio e il computer stesso era di proprietà dell’azienda e non dell’utente); futuro.
calcolabilità → si occupa di cosa è calcolabile e cosa non lo è; è una parte molto teorica; complessità → è teorica ma ha risvolti più immediati; ci sono molti algoritmi per risolvere lo stesso problema. Lo studio della complessità è lo studio di quello che è il comportamento asintotico degli algoritmi, cioè cosa succede al crescere del numero dei dati etc. (es: quanto impieghiamo ad ordinare i dati che dobbiamo ordinare? Come varia la velocita con cui lavoriamo a seconda del numero dei dati che dobbiamo sistemare? Siamo così in grado di capire la complessità dell’algoritmo); teoria dei linguaggi formali → alla base della programmazione; algoritmi e strutture dati → strategie per calcolare in termini di azioni da fare e come organizzare i dati in modo da avere accesso efficiente; linguaggi di programmazione → si occupa di trovare linguaggi espressivi e concisi per realizzare algoritmi sempre più complicati, con il fine di compiere azioni ogni volta più complesse; compilatori e interpreti → programmi che traducono da linguaggi di programmazione ad alto livello in linguaggio macchina, cioè l’unico che le macchine capiscono direttamente;
Durante questo passaggio i dati diventano informazioni , cioè per esempio lettere, tabelle e presentazioni multimediali.
Alcune informazioni diventano poi dati da elaborare nella fase successiva → i dati sono i punti di partenza per raggiungere informazioni.
o Computer → elaboratore elettronico digitale (elaboratore = dispositivo in grado di eseguire automaticamente una serie di istruzioni; elettronico = usa componenti elettronici; digitale = elabora informazioni binarie 0 e 1); o Hardware → componente fisica del sistema informatico (computer, stampanti, tastiere, mouse, modem, cavi telefonici etc.); o Algoritmo → insieme delle operazioni necessarie a risolvere un problema o a fare qualcosa più in generale (es: ricetta, istruzioni di montaggio); esistono vari algoritmi per risolvere lo stesso problema; un programma in genere realizza numerosi algoritmi; o Software → insieme dei programmi che fanno funzionare l’hardware. Ci sono due categorie principali di software: sistemi operativi, che permettono di elaborare e svolgere le proprie funzioni (software di base) e programmi applicativi, che svolgono i compiti più vari, in funzione delle esigenze dell’utenza. I sistemi operativi si dividono in tre grandi famiglie:1) MS-DOS, Windows; 2) Mac; 3) Unix (BSD, Linux, Solaris). I programmi applicativi
sono migliaia e sono ad esempio: browser, videoscrittura, fogli elettronici, gestione di dati, grafica avanzata, controllo di centraline.
I dati numerici sono stati i primi a essere elaborati dai computer, prima per le organizzazioni militari e poi per le grandi aziende; ancora oggi, il trattamento dei dati nella gestione degli inventari e dei libri paga e nella registrazione delle vendite avviene più o meno allo stesso modo.
Le parole possono essere elaborate in promemoria, lettere, relazioni, articoli, libri etc. Inoltre, grazie a un processo noto come “desktop publishing”, è possibile dare al testo un formato tipografico.
L’elaborazione dei numeri può consistere in operazioni relativamente semplici, come la stima delle spese annuali per l’università, o in operazioni più complesse, come la redazione del bilancio dello stato.
I grafici servono per illustrare e rendere più comprensibile il significato di una tabella di dati numerici.
Le fotografie e altri elementi grafici possono essere memorizzati, elaborati e inseriti in documenti o presentazioni multimediali.
Personaggi e oggetti animati si muovono sullo schermo per divertire e informare l’utente.
I suoni, come la musica, la voce e gli effetti sonori possono essere memorizzati, elaborati e riascoltati.
I video, come interviste e film, vengono memorizzati come dati in modo da poter essere modificati o rivisti in qualsiasi momento.
previsioni del tempo, casse automatiche, stampati pubblicitari etc.) ma anche nei piccoli sistemi elettronici (orologi, centraline auto, ricevitori digitali, videogiochi, telefoni cellulari, schede telefoniche etc.).
I computer non elaborano solo numeri, anzi le applicazioni scientifiche o numeriche sono relativamente limitate; la possibilità è quella di elaborare testi, suoni, immagini e filmati ed è la funzionalità più usata del computer, che comunque è nato come macchina di calcolo. È sufficiente che l’informazione sia rappresentabile in modo digitale.
analogici → continui, insieme continuo di valori che possono trasmettere molte informazioni; si trovano in natura e sono sensibili a interferenze; es: variatore di luminosità; digitali → insieme discreto di valori; sono semplici da distinguere; es: interruttore on/off oppure 0/1; sono semplici da trattare e sono meno sensibili a interferenze ed errori di quelli analogici; non hanno rappresentazione ambigua.
Es: per rappresentare le risposte vero/falso a un questionario di 10 domande, possiamo usare 10 bit → 0, 1, 1, 0, 1, 1, 1, 0, 0, 0 = corrisponde a = falso, vero, vero, falso, vero, vero, vero, falso, falso, falso
Come fare per rappresentare più di due informazioni usando i bit? Combiniamo più bit per rappresentare ogni informazione → 2 bit = 4 informazioni: 00, 01, 10, 11
Es: Un esame con 4 possibili esiti: insufficiente (00), sufficiente (01), buono (10), ottimo (11)
La corrispondenza è una convenzione!
Quante informazioni possiamo rappresentare con un determinato numero di bit?
o Con 1 bit: 0 - 1 o Con 2 bit: 0 0 - 0 1 - 1 0 - 1 1 o Con 3 bit: 0 0 0 - 0 0 1 - 0 1 0 - 0 1 1 - 1 0 0 - 1 0 1 - 1 1 0 - 1 1 1 Con 1 bit si rappresentano 2 informazioni (2^1) Con 2 bit si rappresentano 4 informazioni (2^1 x 2 = 2^2) Con 3 bit si rappresentano 8 informazioni (2^2 x 2 = 2^3) Con N bit si rappresentano 2^N informazioni
2^0 = 1
2^1 = 2
2^2 = 4
Problema inverso: se abbiamo K informazioni, di quanti bit abbiamo bisogno per rappresentarle?
Dobbiamo utilizzare un numero di bit sufficiente per esprimerle tutte, per cui dobbiamo scegliere N in modo che 2^N ≥ K
Se 2^N = K, ogni combinazione di bit ha un’informazione corrispondente Se 2^N > K, alcune combinazioni di bit non corrispondono a informazioni; “spreco” inevitabile!
Per rappresentare 61 informazioni diverse si devono usare N bit tali che 2^N ≥ 61
→ 5 bit non sono sufficienti, infatti 2^5 = 32 < 61
→ Occorrono almeno 6 bit, infatti 2^6 = 64 ≥ 61 → un insieme di 6 bit può assumere 64 configurazioni diverse: 000000 / 000001 / 000010 /… 111100 / 111101 / 111110 / 111111 (alcune sequenze come ad es. la 62°, la 63° e la 64° non vengono utilizzate)
Riassumendo :
o 1 bit può assumere 2 valori e può rappresentare 2 informazioni o N bit possono assumere 2^N valori, che permettono di rappresentare 2^N informazioni
→ Quindi: Per rappresentare K informazioni, si devono usare N bit, in modo che 2^N ≥ K
È stato attribuito un significato particolare ai gruppi di 8 bit → 8 bit formano un byte → 8 bit = 2^8 = 256 informazioni diverse
Il byte viene utilizzato, insieme al bit, come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea.
Il bit è utilizzato per la velocità di trasmissione e il byte per la capacità di memoria.
Rappresentazione binaria/
Contiamo con i numeri binari
Massimo numero rappresentabile
= è il numero più grande esprimibile con un dato numero di cifre (decimali, binarie, …) → NON coincide con il numero di informazioni rappresentabili!
Per esempio, con 2 cifre decimali rappresento 100 numeri, ma il numero più grande (massimo numero rappresentabile) è 99 10 → (Si inizia a contare da 0)
Numeri a 2 cifre
o Sistema decimale: – 100 (10^2) numeri diversi
Numeri a N cifre
o Sistema decimale: – 10^N numeri diversi
→ 257 = 256 + 1 → cioè → 257 = 2^8 + 2^0 → Quindi sono a 1 i bit in posizione 8 e 0
→ 25710 = 100000001 2
Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere: uno standard è necessario per permettere lo scambio di informazioni testuali.
→ codice ASCII = American Standard Code for Information Interchange
Usa i 7 bit meno significativi di un byte → 2^7 = 128 diversi caratteri rappresentabili; rappresenta oltre ad altri caratteri le lettere dell’alfabeto anglosassone maiuscole e minuscole, le cifre, i segni di punteggiatura.
Nel codice ASCII le lettere maiuscole hanno un codice più piccolo delle lettere minuscole; di conseguenza, se chiediamo a un computer di ordinare alfabeticamente (lessicograficamente) le parole “abete” e “Zacinto”, le metterà in questo ordine:
Problema → insufficiente per rappresentare in 7 bit i comuni segni diacritici (per es. lettere accentate);
Soluzione → codice ASCII esteso = usa 8 bit, al massimo 2^8 (256 caratteri)
Esempio di codifica ASCII = parola “casa”
Esempio di decodifica ASCII = A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri:
011010010110110000100000010100000110111100101110
Si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte).
01101001 01101100 00100000 01010000 01101111 00101110 = i l P o.
Codifica ASCII dei numeri → le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi:
NON possono essere utilizzate per rappresentare quantità da utilizzare in calcoli aritmetici; Non è così strano: tutti i giorni usiamo i numeri telefonici, che sono sequenze di simboli, con essi non facciamo calcoli aritmetici; Di conseguenza, se chiediamo al computer di ordinare alfabeticamente (lessicograficamente) le stringhe (sequenze di caratteri) “3” e “20431”, le metterà in questo ordine:
Problema → 256 caratteri dell’ASCII esteso sono insufficienti per alcuni sistemi di scrittura (per es. quello cinese o giapponese)
Quindi non esiste un unico ASCII esteso, ma uno (o più) diverso per ogni lingua (per es., ISO 8859- per Europa occidentale, ISO 8859-2 per Mitteleuropa, ISO 8859-7 per Grecia, KOI-8 / ISO 8859-5 / CP1251 per Russia, EUC e Shift-JIS per Giappone, …)
Immagine suddivisa da una griglia
formata da linee a distanza costante
Ogni quadrato derivante da tale suddivisione viene chiamato pixel (picture element) e può essere codificato in binario con la convenzione che:
Problema: per avere una sequenza di bit, in quale ordine leggere i pixel? Occorre una convenzione: qui assumiamo da sx a dx, e dal basso verso l’alto → la rappresentazione della figura è quindi: 0000000 0111100 0110000 0100000
Non sempre il contorno della figura
corrisponde alle linee della griglia:
digitalizzando un’immagine, si ha
sempre un’approssimazione dell’
immagine stessa.
Problema: come avere un’immagine più fedele?
Soluzione: aumentiamo la risoluzione, cioè il numero di pixel, e rimpiccioliamo i quadratini della griglia di campionamento.
La rappresentazione di un’immagine mediante la codifica dei pixel viene chiamata “codifica bitmap ”.
Con un solo bit per pixel possiamo codificare solo due colori (tipicamente bianco e nero); per codificare più informazioni, dobbiamo usare più bit.
Ad esempio: tonalità di grigio → per ogni quadratino si definisce il livello medio di grigio; si codifica ogni livello di grigio (se uso 4 bit = 16 livelli di grigio; se uso 8 bit = 256 livelli di grigio; se uso k bit = 2^k livelli di grigio).
Problema: come associare una rappresentazione binaria a ogni possibile colore di un pixel? Il modello più usato è Truecolor (o RGB).
TRUECOLOR → Tre colori primari: rosso, verde e blu (Red, Green, Blue: RGB) → N.B.: sono diversi dai colori primari usati per gli inchiostri. Gli altri colori vengono ottenuti sommando i tre colori primari. Monitor e televisori funzionano così.
→ 256 valori possibili per ogni colore primario (da o a 255)
Codifica di sequenze di immagini (dette fotogrammi o frame). Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l’altro. Esistono vari formati, soprattutto lossy: mpeg, divx, avi (microsoft), quicktime (apple) (memorizzano anche i suoni).
Il suono è uno dei mezzi principali di comunicazione; anche i suoni possono essere codificati in digitale; un suono è un’onda di pressione che si ha in presenza di un mezzo (aria/acqua).
Quando un suono viene rilevato da un orecchio o da un microfono, esso viene trasformato in uno stimolo/segnale elettrico.
Durata, intensità e variazione nel tempo della pressione dell’aria sono le quantità fisiche che rendono un suono diverso da ogni altro.
Sull'asse delle ascisse ( x ) viene rappresentato il tempo; s ull'asse delle ordinate ( y ) viene rappresentata la variazione di pressione corrispondente al suono stesso
Si rappresenta quindi l’intensità del suono in funzione del tempo. Tempo e intensità sono quantità analogiche.
Problema: passare da rappresentazione analogica a rappresentazione digitale
Idea: si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli costanti di tempo) e si codificano in forma digitale le informazioni (numeriche) estratte da tali campionamenti
Il telefono usa 8000 campionamenti al secondo (8 kHz);
i CD audio usano 44100 campionamenti al secondo (44,1 kHz).
Analogamente alle immagini, maggiore è la frequenza dei campionamenti , migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale.
Qual è il campionamento più fedele?
Discretizzando esclusivamente sul tempo, abbiamo ancora campioni analogici (l’ampiezza è un valore analogico)
Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario
A ogni livello viene assegnata una sequenza binaria (diversa per ognuno); nell’esempio, non tutte le combinazioni di 4 bit sono visualizzate (e usate).