Alfabetizzazione Informatica
Le dispense per le lezioni di informatica del prof…
Informazioni di base sull’informatica: le parole che si usano, i concetti ricorrenti, la storia da cui si arriva ai giorni nostri
–
I concetti di base dell’informatica! L’hardware, la sua struttura di base, i componenti principali. Il software, i sistemi operativi, i programmi applicativi
–
Una suite da ufficio libera, gratuita e multipiattaforma! Impariamo le operazioni di base con i più comuni software da ufficio!
–
Prime cose
Il modo più giusto per iniziare un corso di informatica di base è secondo me è quello di partire spiegando le parole principali, per essere sicuri che tutti capiscano perfettamente il significato dei termini di uso comune.
Se durante il corso troveremo altri termini importanti da aggiungere in questo primo assaggio, lo faremo ☺️
Informatica
Era chiaro che questa doveva essere la prima parola… informatica è un neologismo che deriva dalla fusione dei termini “informazione” e “automatica”.
L’informatica è la scienza applicata che si occupa dell’elaborazione e della trasmissione delle informazioni mediante procedure automatizzabili.
Se questa è la definizione della disciplina, capite chiaramente come questa non sia in realtà la Scienza dei Computer, come vogliono farci credere gli Americani…
ma una disciplina che mette al centro di essa il concetto di informazione, il suo trattamento e la sua trasmissione.
D’altro canto, risulta evidente che in questo momento storico, i computer sono lo strumento principe per raggiungere tale scopo.
A rifletterci attentamente, risulta comunque chiaro come i dispositivi utilizzati siano in rapidissima evoluzione tecnologica: ad esempio, se per me e i vostri genitori, computer significa Personal Computer (portatile o fisso che sia), per i ragazzi della vostra generazione potrebbe più facilmente essere pensato come smartphone e/o il cervellone che sta dietro alla nuova AI… Il mondo cambia rapidamente, ma l’informatica continua ad essere la scienza dell’informazione.
Hardware
Nel linguaggio (inglese) comune, hardware indica genericamente un manufatto di metallo. L’hardware shop è tipicamente una ferramenta.
In ingegneria, elettronica e informatica con il termine hardware si indica la parte fisica di un personal computer, ovvero tutte quelle parti elettroniche, meccaniche, magnetiche, ottiche che ne consentono il funzionamento; più in generale il termine si riferisce a qualsiasi componente fisico di una periferica o di una apparecchiatura elettronica.
Software
In contrapposizione alla parola hardware è stato creato il neologismo software, che rappresenta la parte logica (e quindi leggera, soft) che compone il personal computer: sistema operativo, driver e applicazioni in genere.
L’unione e la collaborazione di hardware e software è la formula che permette ai moderni dispositivi elettronici di funzionare. L’hardware è indispensabile per eseguire il software; il software è indispensabile per trasformare l’hardware da essere un blocco metallico ad una scatola magica.
Sistema binario
Il sistema binario è un sistema di numerazione posizionale a due cifre, solitamente ZERO e UNO, che sta alla base della moderna informatica ed elettronica, basata su tecnologie elettriche o magnetiche che ben si schematizzano con la logica binaria (zero oppure uno, corrente oppure no, accesso oppure spento, vero oppure falso, polo nord oppure polo sud).
bit
Un bit, contrazione dell’inglese binary digit, è una cifra binaria che può essere dunque rappresentata con due singoli stati: lo zero (0) oppure l’uno (1). E’ l’informazione più piccola che si può discernere e viene utilizzato solitamente, insieme ai suoi multipli, per misurare la quantità di dati che si riesce a “spostare” nell’unità di tempo.
Byte
Un byte, il cui nome deriva dalla parola inglese bite (boccone, morso; coniato anche per assonanza col termine bit ma rinominato per evitare confusioni accidentali di pronuncia con questo), è una sequenza di 8 bit diversi, da cui si deduce che sia in grado di assumere 28 = 256 possibili valori (da 0 a 255).
La scelta degli 8 bit per identificare un byte ha radici storiche: servono ad esempio circa 200 livelli di grigio per passare dal bianco al nero perché l’occhio umano pensi di vedere una sfumatura continua, servono circa 200 caratteri diversi (lettere accentate comprese) per scrivere un qualsiasi testo di una lingua occidentale, servono circa 200 livelli di intensità per riprodurre un suono abbastanza fedele.
Il byte è la quantità di memoria necessaria per codificare un “singolo carattere di testo” in un computer, ed è perciò divenuto l’elemento base nell’indirizzamento nelle architetture dei computer e viene considerato come l’unità di misura dell’informazione.
Il Byte e i suoi multipli
I multipli del byte vengono calcolati con una logica binaria, quindi ad esempio il kilobyte non rappresenta 1000, bensì 210 byte! Se consideriamo però che 210 = 1024, con una piccola approssimazione riusciamo a capire le grandezze dei suoi multipli.
Vediamo la tabella:
| Multiplo | Potenza | Descrizione | |
|---|---|---|---|
| kilobyte | KB | 210 B | Circa 1000 byte |
| megabyte | MB | 220 B | Circa 1000 KB, circa 1.000.000 byte |
| gigabyte | GB | 230 B | Circa 1000 MB… |
| terabyte | TB | 240 B | Circa 1000 GB… |
| petabyte | PB | 250 B | … |
| exabyte | EB | 260 B | … |
| zettabyte | ZB | 270 B | … |
Breve storia dell’informatica
Se abbiamo capito che l’informatica è la scienza che studia l’automazione dell’elaborazione e della trasmissione delle informazioni sarà facile dedurre come i primi strumenti informatici (gli “antenati” dei computer) non siano altro che calcolatori…
Gli antenati dei computer
L’abaco (1200 A.C)
E’ lo strumento più antico di calcolo di cui si conosca traccia. I primi esemplari risalgono al 1200 A.C. in Cina e Mesopotamia. (https://it.wikipedia.org/wiki/Abaco). Usato anche da greci e romani. E alle elementari…

I calcolatori meccanici (1600-1800)
La Pascalina è il nome della prima calcolatrice meccanica, che deve il nome al suo inventore, il matematica, fisico e filosofo francese Blaise Pascal, che nel 1643 realizzò una macchina in grado di fare meccanicamente addizioni e sottrazioni.

Charles Babbage, matematico inglese, costruì nel 1834 il primo calcolatore digitale automatico di uso generale (addizioni, sottrazioni, divisioni, moltiplicazioni e altre operazioni), che chiamò macchina analitica e costituì un modello per tutti i successivi calcolatori digitali.

Note
Vista l’imponenza degli ingranaggi che aveva progettato, Babbage decise di utilizzare un telaio da sartoria per la struttura portante della macchina.
Inoltre il suo progetto comprende il primo esempio di “scheda perforata”, ovvero il primo esempio di codice memorizzato in un hard disk.
Tip
L’assistente di Babbage, Ada Lovelace è diventata anche più famosa di lui nella storia dell’informatica.
Avendo creato un sistema teorico per la programmazione della macchina analitica, viene considerata la prima programmatrice della storia (NON il primo programmatore donna, la prima in assoluto!!!).
In suo onore nel 1979 è stato inventato il linguaggio di programmazione ADA!
I calcolatori elettronici (ventesimo secolo)
L’ingegnere giapponese Akira Nakajima nel 1930 intuisce il legame fra l’algebra booleana (la teoria del vero/falso) e la logica dei circuiti elettronici: nascono i primi circuiti elettronici in grado di risolvere operazioni logiche e quindi si apre l’era dei calcolatori elettronici.
Nel 1924 nasce IBM, la prima azienda a fare dell’informatica il suo core business, che darà una forte spinta alla progettazione di hardware “in miniatura” (i calcolatori elettronici del 1930 erano grandi come una casa! Circa 6 stanze…).
Le idee illuminanti
Più di qualsiasi altra cosa sono ancora le idee a cambiare il mondo!!! Le due più importanti per la storia dell’informatica sono:
La macchina di Turing (1936)
Alan Turing è un famoso matematico inglese fissato con le mele che il governo inglese assume per decriptare i messaggi cifrati dall’esercito tedesco con la celebre macchina ENIGMA.
Per riuscire in questo intento implementa nel calcolatore “Colossus”, costruito nel 1943, seguendo i dettami dello strumento teorico da lui stesso concepito qualche anno prima: La Macchina di Turing (1936)!
La MdT è una macchina ideale che è in grado di manipolare dati presenti in un ipotetico nastro infinito, alterandoli secondo un insieme prefissato di regole prestabilite, per raggiungere uno scopo.
L’architettura di Von Neumann (1945)

Fino a questo traguardo della scienza umana i computer non erano altro che “calcolatrici molto veloci”. Certo, potevi decidere che tipo di operazione fare, potevi fare un sacco di operazioni a velocità incredibili (per l’epoca), ma niente che avvicinasse quei mastodonti a ciò che noi oggi chiamiamo computer.
Fino a questa idea.
L’idea è quella di progettare un dispositivo generico in grado di eseguire potenzialmente qualunque operazione. L’hardware gli permetterà di ragionare, mentre le istruzioni per farlo dovranno venire dal software! L’architettura di Von Neumann descrive come dovrebbe essere fatto questo hardware. Non è una “architettura” in senso stretto, è un progetto da implementare.
Nasce il computer moderno, come lo conosciamo noi.
Dopo la creazione del modello di Von Neumann si comprende come la Macchina di Turing sia l’anello mancante che permette di automatizzare l’esecuzione degli algoritmi! Ecco l’idea su cui si basa l’implementazione delle moderne CPU!
Tutti i dispositivi informatici di oggi (computer, notebook, smartphone, tablet, smart TV, etc…) sono basati sull’architettura di Von Neumann ed eseguono programmi come implementazioni di una Macchina di Turing!
I Sistemi Operativi
UNIX, il primo sistema operativo (1960-1975)
Negli anni ’60 le aziende che più di tutte utilizzavano l’informatica erano le aziende telefoniche, in particolare il colosso americano AT&T. Nei suoi laboratori di ricerca, i Bell Laboratories, succedono le cose più interessanti per la storia informatica del periodo.

Lì, Kevin Thompson progetta il sistema operativo UNIX, che dovrà gestire tutto il traffico telefonico dei centralini d’America.
In quegli stessi laboratori il suo collega Dennis Ritchie sviluppa il linguaggio C (terzo tentativo dopo i linguaggi… capito no?), un linguaggio procedurale altamente performante.
Quando i due iniziano a collaborare, UNIX viene completamente riscritto in linguaggio C, diventando un sistema operativo multiutente e multiprocesso, con supporto al networking e quindi allo scambio di informazioni fra 2 sistemi UNIX.
In quel periodo le aziende non avevano ancora chiaro come il software potesse essere una proprietà intellettuale molto rilevante: AT&T distribuisce gratuitamente il codice del sistema operativo di loro proprietà alle università per permettere loro di studiarlo ed eventualmente migliorarlo!
Tip
UNIX oggi!
UNIX è l’antenato di tutti i sistemi operativi moderni (Linux, Android, MacOS, iOS, BSD: praticamente tutti tranne Windows).
I componenti fondamentali di tutti questi sistemi operativi sono ancora scritti in linguaggio C!!!
Nasce l’informatica moderna!!!
BSD e i suoi derivati (1977 in avanti)
La versione di UNIX rivisitata, rielaborata e modificata dai docenti e studenti dell’università di Berkeley della California del Sud viene nominata BSD (Berkeley Software Distribution).
Il sistema operativo BSD non è più utilizzato e sviluppato, ma da esso è partita una famiglia di sistemi operativi liberi molto diffusi, soprattutto in ambito mainframe e network management, fra cui vale la pena ricordare:
- FreeBSD, su cui si basa il firewall/proxy del liceo
- FreeNAS, utilizzato su dispositivi di archiviazione di rete
- DarwinOS, sistema libero sovvenzionato da Apple, su cui si basa Mac OS
- Orbis OS, il sistema operativo della PlayStation
Valeva la pena citarli, vero??
Tip
L’ho detto che anche il servizio Netflix si basa su FreeBSD?
E che lo stesso vale anche per i server Whatsapp?
Apple (1976 in avanti)
Nel 1976 Steve Jobs, Steve Wozniak e Ronald Wayne fondano la Apple Computers, azienda produttrice di hardware prima e successivamente di hardware e software.

Nel garage di casa Jobs, questa “startup” inizia la sua guerra personale contro il colosso del tempo: la IBM, iniziando su piccolissima scala la produzione di computer destinati agli hobbisti e non più ad aziende e lavoratori.
I prodotti del primo periodo sono basati su processori PowerPC e su un sistema operativo proprietario scritto da zero all’interno dell’azienda: il Macintosh.
Dopo la prima grande crisi con Steve Jobs e al suo reintegro circa un anno dopo, nascono i prodotti del secondo periodo, basati su processori Intel e un sistema operativo
proprietario basato però su Darwin OS: il sistema Mac OS X.
Dopo la seconda grande crisi e l’ennesimo reintegro di Jobs, parte il progetto iPhone: Apple produce il primo smartphone al mondo, basato su sistema operativo iOS, anch’esso
derivato da Darwin OS.
Microsoft (1975 in avanti)
Microsoft è stata fondata da Bill Gates e Paul Allen. Ben presto si unirà a loro l’amico Steve Ballmer a formare il trio che renderà la Microsoft un’azienda leader a livello mondiale nel settore dell’Informatica.

Al contrario di Apple, Microsoft produce unicamente software, dapprima programmi specializzati per i fogli di calcolo e per la programmazione in BASIC, poi un sistema operativo completo e una suite da ufficio.
All’inizio degli anni ’80, il primo mattone che farà le fortune di Microsoft: acquista un sistema operativo di base da una piccola società di Seattle, lo migliora un pò e con esso stringe un accordo di fornitura con IBM, per distribuirlo su tutti i loro computer.
Anni dopo la mossa che cambia per sempre le sorti dell’azienda e la storia (dell’informatica): esce il nuovo sistema operativo Windows con supporto per la grafica e il mouse.
Nel frattempo un altro dei progetti Microsoft ha fortuna: la suite da ufficio Microsoft Office, che diventerà il loro secondo progetto di punta.
Note
Gates e Jobs
Apple e Microsoft e i loro leader carismatici caratterizzeranno la storia dell’informatica (e non solo) degli anni a venire. Il loro successo sta nel fatto di essere riusciti a portare l’informatica nelle case di tutte le persone!
Prima di Steve Jobs e Bill Gates l’informatica era una scienza settoriale a cui si dedicavano solo aziende specializzate. Con la loro discesa in campo l’informatica diventa uno strumento alla portata di tutti.
GNU, Linux (1991 in avanti) e Android
Il problema del sistema operativo UNIX era il fatto di essere un sistema operativo proprietario: poteva essere studiato in ambito universitario, ma non utilizzato in qualunque ambito all’esterno della AT&T.
Nel 1984 Richard Stallman, promotore della Free Software Foundation, avvia il Progetto GNU
per riscrivere tutte le parti di UNIX allo scopo di ottenere un sistema operativo completo e libero, utilizzabile da chiunque.
Tip
L’acronimo GNU
GNU è un acronimo ricorsivo, che significa G.N.U. = GNU is Not Unix.
Umorismo informatico ☺️
Nel 1991 lo studente finlandese Linus Torvalds completa il progetto GNU progettando il kernel, denominato Linux per il sistema operativo libero e aperto
che verrà chiamato appunto GNU/LININUX.

Il suo progetto sarà talmente innovativo che diventerà il kernel di sistemi che vanno dal piccolo smartphone con sistema operativo Android, ai server dei maggiori servizi della rete Internet, fino ad arrivare a (tutti i) Top500 supercomputers.
Sì… tutti i 500 computer più potenti del mondo funzionano con kernel Linux.
L’era di Internet
A metà degli anni ’70 Il dipartimento della difesa americano commissiona ai laboratori Bell,
dove Thompson e Ritchie lavoravano, la creazione di una rete di collegamento fra i centri strategici militari
in grado di scambiare velocemente informazioni anche in caso di attacco armato:
nasce la rete ARPAnet, l’antenata di Internet.
Negli anni ottanta negli Stati Uniti si termina lo sviluppo della rete ARPANET, pubblicando le specifiche della suite di protocolli TCP/IP,
che segnano l’inizio dell’era di Internet.
Nel 1989, al CERN di Ginevra, il fisico Tim Berners Lee inventa uno strumento per diffondere in tempo reale informazioni e articoli
scientifici: nasce il World Wide Web, basato sul protocollo HTTP, lo schema URL e il linguaggio HTML.
Nel 1994 esce il primo browser a diffusione mondiale: Netscape Navigator.
L’anno dopo Microsoft risponde con il sistema operativo Windows 95 con incluso il browser Internet Explorer:
in questo modo gli utenti Windows sono “guidati” ad usare Il browser Microsoft invece che installare Netscape, che perde importanti quote di mercato.
Undici anni dopo Microsoft perderà il processo per concorrenza sleale, quando ormai Netscape era fallita…
era iniziata la guerra dei browser!
L’egemonia di Internet Explorer sarà spezzata anni dopo dal browser Mozilla Firefox.
E adesso? Siamo forse in una nuova egemonia??
Nel 2017 ho iniziato a scrivere queste righe per voi. Spero vi siano piaciute.
Rappresentazione delle Informazioni
In questo capitolo vedremo come funziona sommariamente il sistema di numerazione binario e lo utilizzeremo per cercare di rappresentare alcune delle informazioni di base più importanti!
Il sistema binario
Il sistema di numerazione binario è un sistema numerico posizionale e in base 2, cioè che utilizza solo 2 cifre, solitamente 0 e 1, per la rappresentazione di tutti i numeri.
Un sistema di numerazione posizionale è quello che da valore alle cifre di un numero a seconda della posizione che queste vi occupano.
Ad esempio nel numero decimale 37 tutti sappiamo benissimo che nonostante la cifra 3 sia più piccola della cifra 7, questa valga di più perché occupa la posizione delle decine, mentre la cifra più grande vale meno perché occupa la posizione delle unità
37 = 3 x 10 + 7 x 1
Questo modo di ragionare e di scrivere i numeri deriva dal fatto che siamo abituati a lavorare in base 10, poiché abbiamo 10 dita e fin da bambini il 10 era sempre il punto d’arrivo della conta sulla dita.
Nonostante ciò, altri modi di contare si sono sviluppati nella storia. Ad esempio le uova si contano a dozzine (per questo si vendono solitamente a gruppi di 6: due gruppi = una dozzina), i minuti e i secondi si contano a gruppi di sessanta, le ore a gruppi di 24 e così via.
Nell’aritmetica decimale esistono 10 cifre diverse (da 0 a 9) e quando si deve indicare un numero più grande di 9, si comincia a raggruppare mettendo in evidenza “a gruppi di 10”. Ecco che
37 = 3 decine + 7 unità
Allo stesso modo si continua con le centinaia, che sono formate da 10 decine e così via. Ad esempio:
582 = 500 + 80 + 2
= 5 centinaia + 8 decine + 2 unità
= 5 x 100 + 8 x 10 + 2x1
= 5 x 10 alla 2 + 8 x 10 alla 1 + 2 x 10 alla 0
Notiamo soprattutto l’ultima rappresentazione. In questo modo si può indicare ogni gruppo con un indice dato dalla potenza da assegnare alla base per ottenerne il peso. Infatti le unità sono il gruppo 0 (100 = 1), le decine sono il gruppo 1 (101 = 10), le centinaia il gruppo 2 (102 = 100) e così via praticamente all’infinito.
Se lavoriamo in base 2 con solo 2 cifre, gli unici numeri facili da rappresentare saranno proprio 0 e 1, mentre per 2 dovremo già iniziare a raggruppare. Così ad esempio:
3 = 1 coppia + 1 unità
5 = 1 doppia coppia + 0 coppie + 1 unità
Vediamo i primi 10 numeri rappresentati nel sistema di numerazione binaria:
| Decimale | Binario |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
Seguendo l’esempio precedente potremo stabilire una rappresentazione dei valori indicati in un numero binario:
1001 =
= 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 =
= 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1 =
= 8 + 0 + 0 + 1 = 9
In questo modo dato un qualsiasi numero binario (una sequenza di zeri e uni), potremo stabilire quale quantità esso rappresenti in decimale semplicemente applicando la metodologia appresa.
Quale valore rappresenta il numero binario 101011?
101011 =
= 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 =
= 1 x 32 + 0 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 =
= 32 + 0 + 8 + 0 + 2 + 1 =
= 43
Al contrario se vogliamo capire qual è la rappresentazione binaria di un numero decimale dobbiamo utilizzare la tecnica delle divisioni (intere) successive.
Ad esempio, dato il numero 35, la sua rappresentazione binaria si ottiene dividendo (con resto) successivamente il numero fino ad ottenere quoziente zero; alla fine si prende la fila dei resti ottenendo una sequenza di zeri e uni che sono il numero binario.
35 / 2 = 17 con resto di 1
17 / 2 = 8 con resto di 1
8 / 2 = 4 con resto di 0
4 / 2 = 2 con resto di 0
2 / 2 = 1 con resto di 0
1 / 2 = 0 con resto di 1
da cui si desume che
35 (in base 10) = 100011 (in base 2)
Esercizi
Esercizio 301
Convertire in binario i seguenti numeri decimali:
23, 65, 109, 15, 48, 77, 12
Esercizio 302
Convertire in decimale i seguenti numeri binari:
10, 100, 1100, 10101010, 11001100, 11110000, 10010010, 10010110
Il sistema esadecimale
Il sistema di numerazione esadecimale (a base 16) viene molto utilizzato in informatica per la sua relazione diretta fra una cifra decimale e quattro cifre binarie. Questa deriva direttamente dal fatto che 16 è una potenza di 2 (24 = 16).Viene dunque spesso utilizzato come “intermediario”, cioè come strumento di rappresentazione dei numeri binari quando questi sono troppo lunghi.
Essendo un sistema a 16 cifre si utilizzano nella sua rappresentazione anche le prime 6 lettere dell’alfabeto (A, B, C, D, E, F).
| DEC (base 10) | BIN (base 2) | HEX (base 16) |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Vista la contemporanea frequenza di numeri e lettere, per indicare che una sequenza è un numero esadecimale, si usa preporre la sigla 0x, così che il numero 0x11 sia il numero esadecimale 11 (e non ad esempio l’11 decimale o il 3 binario).
Per convertire un numero esadecimale in binario, basta solo consultare la tabella e apportare le opportune sostituzioni, in modo che, ad esempio, il numero esadecimale 0x3F5,
corrisponda al numero binario:
3 ==> 0011
F ==> 1111
5 ==> 0101
Da cui
0x3F5 = 0011.1111.0101
Analogamente se il nostro obiettivo è trasformare un numero binario in esadecimale basterà solo suddividere le sue cifre a gruppi di 4 e osservare la tabella.
Ad esempio, il numero binario 11101 si può dividere nei due gruppi da 4 0001 e 1101: il gruppo più a sinistra si può solitamente rendere da 4 aggiungendo zeri a piacere.
Da cui:
0001 ==> 1
1101 ==> D
Quindi la sequenza binaria 11101 si rappresenta in esadecimale come 1D:
0001.1101 = 11101 = 0x1D
Ok… adesso facciamo qualche esercizio per assicurarci che tutti abbiano capito :)
Esercizi
Esercizio 311
Convertire i seguenti numeri in binario e rappresentarli secondo la notazione esadecimale:
10, 100, 150, 1000, 2000, 0, 32767, 1024, 127, 255
Esercizio 312
Calcolare il numero binario e il numero decimale corrispondente al seguente numero esadecimale:
0x0123, 0xAD45, 0x98A1, 0x1824, 0x8FFF, 0xFFFF, 0x0001, 0x9999
Rappresentazioni binarie
Nella prossima disamina andremo a vedere le applicazioni principali dei sistemi di numerazione binario ed esadecimale in informatica.
I concetti di base sono facili: le memorie funzionano con tecnologie di tipo elettrico (acceso/spento) oppure elettromagnetico (polo positivo/polo negativo), quindi ogni tipo di dato, per essere memorizzato, deve essere convertito in binario.
Di seguito alcune spiegazioni su come sono convertiti in binario alcuni tipi di dati. Si inizia con i numeri, interi e reali, si passa ai caratteri, fino ad arrivare ai file veri e propri.
Cominciamo!
I Numeri interi
In informatica i numeri interi sono un sottoinsieme finito dei numeri interi così come sono definiti in matematica. Questo ovviamente perché lo scopo della trattazione dei numeri interi in informatica, così come di ogni altro tipo di dato è la mera digitalizzazione, elaborazione e memorizzazione su supporto fisico.
In genere lo spazio destinato ad un numero intero è uno spazio fisso, grande come la lunghezza di parola della CPU che lo dovrà elaborare. Attualmente le più comuni CPU in commercio hanno una lunghezza di parola di 64 bit.
Vediamo di mettere bene in evidenza le differenze fra ciò che in matematica siamo soliti chiamare un numero intero e ciò che questo è in informatica:
| In matematica | In informatica |
|---|---|
| l’insieme degli interi è infinito | l’insieme degli interi è finito e ben definito |
| Ogni numero viene rappresentato solo con il numero di cifre necessarie | Tutti i numeri interi hanno lo stesso numero di cifre |
| I segni +/- vengono indicati, solitamente davanti al numero (es: -17, + 13) | I segni +/- sono compresi nella rappresentazione del numero intero |
Note
Semplificazione
Per semplificare calcoli e ragionamenti, gli esempi sottostanti sono sviluppati con parole di 16 bit invece di 64!!!
I concetti si capiscono ugualmente… ma i calcoli sono molto più semplici (e le sequenze di zeri e/o di uni hanno un termine!)
Per la rappresentazione dei numeri interi, occorre distinguere fra numeri positivi e negativi.
Il caso dei numeri positivi è molto semplice, dato un numero, ad esempio 35, bisognerà prima di tutto verificare se appartiene al range dei numeri rappresentabili
(a 16 bit sono rappresentabili numeri fino a 5 cifre, positivi e negativi. A 64 bit si sale fino a numeri di 20 cifre…) .
In seguito procedere alla trasformazione binaria:
35 = 100011
Ovviamente, davanti a questa cifra dobbiamo mettere un botto di zeri, fino a rappresentare un numero con 16 cifre! Capite bene la comodità della rappresentazione esadecimale :smile:
35 = 0000.0000.0010.0011 = 0x0023
Nel caso di numeri negativi, ad esempio -19, verificata l’appartenenza al range di rappresentazione, bisognerà utilizzare la cosiddetta tecnica del “complemento a due”,
eseguendo le seguenti operazioni:
-
prendere la parte positiva e trasformarla in binario:
da -19 si prende la parte positiva che è 19. La rappresentazione binaria di 19 è:
19 = 10011 -
Riempire il numero con gli zeri davanti fino a 16 cifre:
19 = 0000.0000.0001.0011
- Rovesciare la rappresentazione, invertendo ZERI e UNI
0000.0000.0001.0011 diventa
1111.1111.1110.1100
- Si aggiunge UNO
1111.1111.1110.1100 +
1 =
-------------------
1111.1111.1110.1101
Da cui, la rappresentazione del numero diventa:
-19 = 1111.1111.1110.1101 = 0xFFED
Con la tecnica del complemento a due, il primo bit a sinistra è indice del segno del numero rappresentato e precisamente tutti i numeri che iniziano con ZERO sono positivi, mentre tutti i numeri che iniziano per UNO sono negativi.
I Numeri reali (standard IEEE 754)
L’insieme dei numeri reali è un insieme infinito e denso; in matematica “denso” significa che presi comunque due numeri reali, esistono sempre infiniti numeri compresi fra loro.
I numeri reali rappresentabili in informatica (e memorizzabili nelle memorie dei PC) sono però chiaramente solo un insieme finito e discreto (il contrario di denso). Questo significa che i numeri rappresentabili sono tutti compresi in un intervallo finito e che anche all’interno di quell’intervallo sono una minuscola parte di numeri può essere rappresentata.
In ogni caso, la rappresentazione dei reali è uno dei argomenti più dibattuti e su cui si sono concentrati gli sforzi negli anni. A livello di rappresentazione, il concetto che ha avuto la meglio sugli altri è il metodo definito “a virgola mobile” o floating point number, rinominato in standard IEEE 754.
Vediamo il procedimento di trasformazione di un numero reale nella sua rappresentazione.
- Il numero reale deve essere prima rappresentato in binario, convertendo opportunamente la parte intera e la parte frazionaria.
- Il numero binario così ottenuto viene trasformato in notazione esponenziale normalizzata, cioè nella forma:
±M x 2E
dove 1.0 ≤ M ≤ 2.0
Usando la forma esponenziale normalizzata, per identificare un numero sono necessarie 3 informazioni:
- segno (S)
- esponente (E)
- mantissa (M)
Lo standard IEEE 754 prevede che un numero reale venga rappresentato con 64 bit così suddivisi:
- 1 bit per il segno
- 11 bit per l’esponente
- 52 bit per la mantissa
Basta! Mi fermo qui. Mi sembra sufficiente…
I caratteri
Una codifica per i caratteri che si vogliono rappresentare è definita dalla corrispondenza tra l’insieme di caratteri che si vogliono rappresentare e le parole di un codice.
Nel nostro caso il codice utilizza cifre binare con un numero di bit non sempre predefinito. L’insieme di caratteri che si vuole rappresentare invece è formato da tutte le lettere, le cifre e i simboli (genericamente, caratteri) necessari per formare le parole di un linguaggio.
Per un certo insieme di caratteri possono esistere quindi codifiche diverse: con un numero diverso di bit per la codifica, con una corrispondenza diversa codice-carattere e così via.
In generale, per definire un set di caratteri occorre:
- l’insieme di codici utilizzato
- l’insieme di caratteri da rappresentare
- una corrispondenza fra questi.
Codifica US ASCII

La codifica US ASCII (American Standard Code for Information Interchange) è il primo set di caratteri congegnato che ha avuto diffusione internazionale.
Nella sua versione estesa, essa rappresenta un set di 256 caratteri utilizzando numeri binari a 8 cifre. Infatti con 8 cifre binarie si possono rappresentare 28 = 256 numeri diversi.
La codifica ASCII utilizza quindi una corrispondenza biunivoca carattere-codice, ove:
- Gli elementi da 0 a 31 sono i cosiddetti “caratteri di controllo”.
- Gli elementi da 32 a 126 sono i cosiddetti “caratteri stampabili” (vedi tabella a fianco).
- Gli elementi da 128 a 255 fanno parte del cosiddetto set esteso di caratteri.
Standard ISO 8859
Osservando meglio la tabella ASCII ci si accorge della carenza di molti caratteri in uso nelle lingue più comuni; citando solo l’italiano, mancano ad esempio tutte le lettere accentate. Di fatto solo per inglese, latino e swahili sono sufficienti i 128 caratteri di base e per colmare questa mancanza si utilizzano codici a 8 bit in cui anche il bit più significativo cambia valore.
Nella realtà però non esiste un unico codice (ASCII “esteso”) a 8 bit, ma ne esistono tanti, chiamati anche tabelle di codici. Tutti le tabelle di codici sono comunque compatibili con ASCII, cioè rimangono identiche nella rappresentazione dei primi 127 caratteri.
Vediamo un elenco degli standard ISO 8859 più famosi e utilizzati in qualche parte del mondo:
| ISO 8859-1 | Lingue europee occidentali |
|---|---|
| ISO 8859-2 | Lingue europee orientali |
| ISO 8859-5 | Cirillico |
| ISO 8859-6 | Arabo |
| ISO 8859-8 | Ebraico |
| ISO 8859-11 | Thailandese |
| ISO 8859-15 | Lingue europee occidentali con l’Euro |
Questo significa che ognuno di queste codifiche ha gli stessi caratteri nei primi 128 posti (numeri binari a 8 bit con cifra più significativa uguale a zero), mentre rappresentano caratteri diversi
Codifica UNICODE
La codifica ISO 646 a 8 bit non è adatta per le lingue orientali che usano migliaia di ideogrammi ciascuno dei quali corrisponde non ad una lettera, ma ad un intero concetto.
Per questo è necessaria una codifica che utilizzi almeno 16 bit (e possa rappresentare quindi fino a 65.536 caratteri).
La risposta a questa necessità sta nella cosiddetta codifica UNICODE. Questa codifica viene utilizzata nei sistemi operativi Microsoft Windows (per la memorizzazione dei nomi dei file e dei simboli) e dal linguaggio di programmazione Java per la codifica di tutti i caratteri.
Inoltre Unicode ha l’importante proprietà che i suoi primi 128 caratteri sono identici a quelli del codice ASCII e i primi 256 allo standard ISO 8859-1.
Tuttavia però due serie di motivi hanno portato Unicode a non affermarsi quale standard unico e assoluto, come i suoi creatori avrebbero voluto. Questi problemi sono:
- Retrocompatibilità. Poiché Unicode utilizza sempre 16 bit per ogni carattere, la compatibilità con i set a 8 bit non è sempre banale.
- Spreco di spazio. Poiché ogni carattere sarebbe passato da dimensione 1 a 2 byte, tutti i file sarebbero automaticamente aumentati, a volte raddoppiati di dimensione, molto spesso senza alcuna necessità.
Codifica UTF-8
UTF-8 è una codifica dei caratteri UNICODE in sequenze di lunghezza variabile di byte (da 1 a 4). Questo significa che tramite UTF-8 è possibile rappresentare tutti i caratteri esistenti per tutte le lingue conosciute esattamente come con UNICODE, ma mentre quello prevede una lunghezza fissa dei caratteri a 2 bytes, con UTF-8 la codifica varia da 1 a 4 bytes (4 sole possibili alternative; niente pezzi di byte).
Per esempio un solo byte è necessario per rappresentare i primi 128 caratteri ASCII, rendendo queste due importanti codifiche vagamente compatibili tra loro.
L’organismo IETF (Internet Engineering Task Force), la comunità di tecnici e specialisti che si occupa dello sviluppo e della promozione delle tecnologie del web, richiede che tutti i protocolli internet identifichino la codifica di caratteri che utilizzano e che siano compatibili almeno con UTF-8.
Esercizi
Esercizio 321 (interi)
Scrivere la rappresentazione esadecimale (a 16bit) dei seguenti numeri interi:
-25, +63, -139, +17, -48, +72
Esercizio 322 (reali)
Scrivere la rappresentazione esadecimale (a 16bit) dei seguenti numeri reali:
-1.23, +1078.01, -139.99, +0.00042, -0.091, +73.73
Esercizio 323 (caratteri)
Convertire in byte, secondo la specifica ASCII le seguenti frasi:
frase 1) "un, due, tre, stella!"
frase 2) "abracadabra"
frase 3) "ASCII si pronuncia aschi, come il cane"
Formati dei file
In informatica, il formato di un file è la convenzione che viene utilizzata per organizzare, memorizzare e recuperare i contenuti di un file. Questo, per l’utente che utilizza il sistema, si traduce nella possibilità di poter visualizzare, interpretare e modificare (più o meno) a piacimento i contenuti di un file.
Poiché un file rimane sempre e comunque una sequenza ordinata di byte (ed esistono solo 256 byte diversi) i formati stabiliscono una convenzione di interpretazione per il gruppo di byte che compone il file in questione.
L’identificazione di un formato (testo, immagine, multimedia, ecc..) viene di solito ottenuta dal Sistema Operativo, tramite una (o più insieme) di queste tecniche:
Estensione del file
si è soliti indicare alla fine del nome del file, una sequenza (lunga 3 lettere per motivi storici) che ne identifica il formato. Ad esempio il file “pippo.txt” è un file di testo, mentre il file “pluto.jpg” una immagine.
Magic number
I primi due o più byte di un file fanno da identificatori di un tipo di file. Ad esempio la sequenza 0x3533 identifica uno script di shell (linux), mentre la sequenza 0xFFD8 identifica una immagine .jpg
Metadati
Alcuni filesystem (ad esempio HFS) affiancano informazioni relative ad esso, tra cui il formato.
Qua nel seguito introduciamo, almeno in parte, tre tra i formati più semplici e famosi, per meglio interpretare i concetti introdotti.
Il formato plain text
Il formato plain text è il più semplice formato di file esistente. È un formato di puro testo con corrispondenza (quasi sempre) 1 a 1 tra i byte contenuti e una particolare codifica come ASCII o ISO 8859.
Ovviamente lo scopo per cui sono nati i file di testo, e tutt’ora un utilizzo molto frequente, è la lettura/scrittura diretta da parte degli utenti. La mancanza di formattazione li rende poveri dal punto di vista estetico, ma in compenso grazie a questa semplicità non occorrono particolari programmi per leggerli, e spesso possono essere trasferiti direttamente da un sistema operativo all’altro.
Per questo quasi tutti i software sono accompagnati da un file di testo semplice che ne dà una breve descrizione, spesso chiamato leggimi (o README in inglese). Anche il codice sorgente dei programmi viene scritto in puro testo.
Ci sono alcune limitazioni all’universalità dei file di testo:
- La codifica non è sempre ovvia, e quando il sistema non la riconosce o non la supporta, il file diventa illeggibile.
- I maggiori sistemi usano notazioni diverse per il carattere di a capo: MAC OS usa CR (Carriage Return, ASCII 13), UNIX usa LF (Line Feed, ASCII 10), Windows usa CR/LF.
Immagini bmp
Il formato di file BITMAP, come dice il nome, prevede una semplice mappa dei bit che compongono l’immagine.
La struttura del file è molto semplice, perché è possibile suddividerla in tre parti:
- bitmap file header (14 byte), che contiene informazioni come la grandezza del file (es: 1000x500);
- bitmap info header (40 byte), con informazioni tipo la mappa dei colori usata e la sua profondità (quanti byte per un colore?)
- mappa dei pixel (altezza x larghezza x profondità del colore) la struttura che identifica l’immagine.
Gestione dei colori

Si rappresentano in informatica in 2 modalità:
Sintesi Additiva (RGB)
La sintesi delle luci: se punti una luce rossa nello stesso punto di una luce verde, vedi un colore giallo.
I colori fondamentali sono Rosso (Red), Verde (Green), Blu (Blue).
La somma dei 3 colori fondamentali fa il BIANCO!!!
Ogni colore fondamentale costa un byte, quindi ogni colore “pesa” 3 byte, ovvero sono rappresentabili 224 colori diversi: circa 16 milioni di colori!
Il web utilizza questa sintesi dei colori.
La sua rappresentazione è data dai 3 byte, tipicamente indicati con la sintassi esadecimale:
# RRGGBB
Ad indicare che i primi 2 numeri rappresentano il byte che indica la quantità di rosso presente, i secondi la quantità di verde, gli ultimi la quantità di blu.
Sintesi Sottrattiva (CMYK)
La sintesi dei colori a tempera: mischi rosso e giallo e viene arancione.
I colori fondamentali sono i colori complementari dei colori primari della sintesi additiva: Blu Ciano (C) come complementare del Rosso, Rosso Magenta (M) complementare del Verde e Giallo (Y) complementare del Blu. In questa sintesi inoltre si indica anche il grigio (K).
La somma dei 3 colori fondamentali fa il NERO!!!!
Ogni colore fondamentale costa un byte, quindi ogni colore “pesa” 4 byte, ovvero sono rappresentabili 232 colori diversi: circa 4 miliardi di colori!
Questa particolare sintesi, seppure più pesante della precedente, permette di arrivare ad un numero quasi incredibile di colori diversi. La presenza del grigio come colore primario permette nella realtà una implementazione dei colori Nero e Bianco più che perfetta: avete mai sentita la pubblicità delle TV che fanno vedere un nero bellissimo?! Bene… quelle TV “colorano” lo schermo di nero invece di tenerle spente. Usano CMYK!!!
Introduzione
I computer moderni sono dispositivi elettronici che funzionano come sistemi, ovvero come un insieme di parti che interagiscono fra loro per un obiettivo comune.
Le parti che realizzano questi incredibili sistemi sono genericamente catalogabili in due grandi gruppi:
-
hardware(HW), ovvero tutte quelle parti fisiche, elettroniche, elettriche, meccaniche, magnetiche, ottiche che consentono il funzionamento di un computer. -
software(SW), ovvero tutte quelle parti non tangibili: il sistema operativo, le applicazioni, i driver, etc…
In questa piccola introduzione faremo chiarezza sui concetti di base dietro a queste definizioni, faremo prove di laboratorio con alcuni di questi e proveremo ad informarci sullo stato dell’arte dell’informatica ai giorni nostri.
Iniziamo!!!
Hardware
Nella nostra piccola disamina sulla storia dell’informatica abbiamo già detto come
oggigiorno ci si riferisca comunemente al computer come ad un
dispositivo elettronico e digitale, programmabile e a scopo generico,
costruito secondo la cosiddetta Architettura di Von Neumann e
funzionante secondo la logica indotta dalla Macchina di Turing.
Ovviamente l’implementazione fisica di questi concetti è progredita enormemente col passare del tempo. Quello che non è ancora cambiato è la base di partenza del processo di progettazione dei dispositivi.
Architettura di Von Neumann
L’architettura di Von Neumann, basata sul suo famoso modello, è uno schema di progettazione di calcolatori elettronici che prende nome dal matematico John von Neumann e che fu sviluppato per il sistema IAS machine dell’Institute for Advanced Study nella metà degli anni 40.
Lo schema si basa su cinque componenti fondamentali:
-
La CPU: Central Processing Unit. Il “cervello” operativo della macchina.
-
La Main Memory: La memoria principale, utilizzata come memoria di lavoro.
-
Il Bus. Un canale che collega tutti i componenti fra loro.
-
Le Periferiche di Input: Servono per l’inserimento utente dei dati da eleborare.
-
Le Periferiche di Output: Servono per visualizzare all’utente i risultati delle elaborazioni.
L’idea dietro alla architettura di Von Neumann è semplicemente quella di descrivere il flusso dei dati a partire dal momento in cui sono immessi, al momento in cui questi sono elaborati, fino al momento in cui questa elaborazione viene restituita in output all’utente.

CPU
La Central Processing Unit, il componente principale del computer, è
l’implementazione della Macchina di Turing.
Il nastro infinito per le sue elaborazioni prende informazioni e scrive risultati
sulla memoria centrale: tutte le interazioni della CPU sono solo e verso
la memoria centrale.
La Main Memory
La memoria centrale rappresenta il collegamento della CPU con il resto del mondo. È una memoria di tipo RAM che funziona secondo principi elettrici: le sue uniche capacità sono quelle di leggere, ovvero di copiare qualcosa dall’esterno su di essa, e di scrivere, ovvero di copiare una parte di se stessa da qualche parte.
Tip
il resto del mondo (dell’hardware)
Con i due attori principali fatti a questo modo… come si fa a gestire tutte le funzionalità che vediamo mostrare un computer?
Beh… il trucco è far credere a CPU e Main Memory che tutto sia un file!!!
Vuoi scrivere sullo schermo? Scrivi su questo file qui.
Vuoi sapere cosa ho digitato sulla tastiera? Leggi quel file.
Vuoi stampare? Scrivi su quest’altro file.
Vuoi vedere cosa mi sta arrivando dalla Rete? Leggi quell’altro file ancora…
Le periferiche
Le periferiche di Input/Output fanno esattamente questo: implementano una funzionalità dal punto di vista fisico (ad esempio “stampano” o “visualizzano luci”) e interagiscono con il computer secondo la logica descritta prima.
Il Bus
Il nome che è stato scelto da proprio l’idea del trasporto… solo che questo bus non trasporta le persone, ma i dati, i comandi e le informazioni!!!
La CPU

L’unità centrale di elaborazione (CPU) è la parte di un computer che esegue le istruzioni di un programma per computer, per eseguire le operazioni aritmetiche di base, logico, e di input / output del sistema.
Dal 1970 ad oggi, sempre migliorando le dimensioni e le prestazioni totali delle stesse, le CPU sono state implementate come microprocessori digitali basati su un’architettura a registri generali.
La CPU è un microprocessore general purpose in grado di eseguire un set limitato di istruzioni chiamato Linguaggio Macchina.
Per semplificare i paradigmi di costruzione, le parole che una CPU è in grado di leggere hanno lunghezza fissa: questa lunghezza caratterizza di fatto l’intera CPU!!! Esempi di lunghezza di parola sono 8 bit, 16 bit, 32 bit, 64 bit.
La CPU è in grado di eseguire ognuna delle istruzioni appartenenti al suo set di base, leggendo l’istruzione, caricando eventuali dati di input, facendo l’elaborazione richiesta e scrivendo in output il risultato della sua elaborazione. A questo punto la CPU è pronta a leggere la prossima istruzione… e cosi via dal momento che viene accesa fino al momento dello spegnimento!
Questa ripetizione continua viene definita ciclo del processore. Il numero di cicli che una CPU è in grado di eseguire in un secondo viene definita la frequenza di una CPU e si calcola in Hz (più probabilmente con un suo multiplo: MHz o GHz).
!!! warning “Completa le conoscenze”
* Che cosa è un (micro)processore?
* Che differenza c'è fra un (micro)processore e un (micro)controllore?
* Come si determinano le prestazioni di una CPU? Come si calcola la sua velocità?
* Cosa significa fare un *benchmark* della tua CPU??? Come è possibile farlo?
* Quali sono le CPU attualmente in commercio? Quanto costano?
* Architetture per la CPU: x86 vs ARM
* CPU per i computer fissi, per i portatili, per i tablet, per gli smartphone
* Quali sono le aziende che producono CPU? Dove si trovano? Quali tipologie di processori producono?
Le memorie
Le memorie sono la parte del computer destinata a conservare informazioni per un certo periodo di tempo.
In questa breve disamina, prima proveremo ad evidenziare tutte le caratteristiche principali che dovremmo conoscere sulle memorie, poi andremo a studiare un pò i tipi di memoria più comuni, osservandoli anche alla luce delle nuove conoscenze acquisite.
Iniziamo!
Le memorie possono essere classificate secondo vari criteri:
-
Volatilità
-
le memorie volatili perdono Tipicamente tutte le completamente le informazioni in esse contenute non appena si interrompe l’alimentazione elettrica.
-
le memorie permanenti mantengono le informazioni anche senza essere alimentate da corrente elettrica.
-
-
Tipo di accesso
Secondo questa classificazione ritroviamo tre tipi di memorie:
-
le memorie ad accesso sequenziale possono essere lette e scritte solamente all’indirizzo immediatamente successivo all’indirizzo a cui è avvenuto l’accesso precedente. I principali esempi di memorie ad accesso sequenziale sono i nastri magnetici.
-
Le memorie ad accesso casuale possono essere lette e scritte a qualunque indirizzo, ma con lo stesso tempo di accesso.
-
le memorie ad accesso semi-casuale sono organizzate come le memorie ad accesso casuale, ma non per qualunque indirizzo in memoria: infatti i “blocchi” casuali sono molto grandi e al loro interno le informazioni vengono accedute sequenzialmente.
-
-
Possibilità di scrittura
-
memorie a lettura-scrittura: possono essere sia lette che scritte.
-
memorie a sola lettura (ROM: Read Only Memory)
-
memorie WORM (Write Once, Read Many): memorie che possono essere scritte una sola volta e poi diventano in sola lettura.
-
-
Tecnologia di costruzione
Attualmente i principi di costruzione attualmente in uso si basano sulle seguenti tecnologie:
-
Elettriche: si basano sulle capacità elettriche ed elettroniche di alcuni componenti come condensatori e semiconduttori.
-
Magnetica: si basano sulle capacità magnetiche di alcuni materiali.
-
Ottica: si basano su principi ottici e di riflessione/rifrazione della luce per memorizzare le informazioni.
-
Memorie RAM

Acronimo per “random access memory”, ovvero “memoria ad accesso casuale”, è la memoria in cui vengono caricati i dati che devono essere utilizzati dal calcolatore per elaborare.
La RAM è il tipico esempio di memoria volatile (si cancella spontaneamente ed ha bisogno di essere aggiornata continuamente): ovviamente il principio di costruzione di una memoria volatile è quello elettico.
Le RAM sono le tipiche memorie che implementano la Main Memory e sono quindi le memorie di primo utilizzo da parte della CPU.
Memorie ROM
Acronimo per “read only memory”, ovvero “memoria in sola lettura” (o solamente leggibile), è una memoria permanente (cioè ha un contenuto fisso che non può essere cancellato; ovviamente non è una memoria volatile), presente sulla scheda madre, che contiene le istruzioni che la CPU deve caricare per consentire l’avvio del sistema e le routine di gestione dell’hardware che prendono il nome di BIOS (Basic I/O System).
Dischi magnetici

Composti da uno o più dischi (i disk pack) ricoperti di materiale ferromagnetico, vengono “letti e scritti” (cioè su questi dischi vengono salvati e recuperati i dati) mediante un braccio mobile dotato della “testina di lettura/scrittura”.
I dati vengono trasferiti ai dischi magnetici tramite un buffer nella memoria centrale ed occupano successive posizioni lungo le tracce, sotto forma di differenti stati di magnetizzazione.
I settori dei dischi vengono letti e scritti interamente utilizzando il numero della superficie, della traccia e del settore. Il tempo di accesso ai dischi magnetici è superiore rispetto a quello della memoria centrale, ma i costi, a parità di quantità di informazione memorizzata, sono decisamente più bassi.
Warning
E… le altre memorie?
Esistono tanti altri tipi di memorie: le penne USB, le memorie flash, i dischi SSD, etc…
Come si fa a studiarli tutti???
Note
La formattazione delle memorie
Per poter utilizzare una memoria, occorre formattarla. Ma… cosa significa questa cosa? Che cosa fa esattamente questa operazione?
Documentiamoci dai…
Le periferiche
Per studiare le periferiche, faremo una ricerca (a coppie) in cui dovrete produrre un testo di circa 3 pagine oppure una presentazione con 8-10 slides. Vale inserire 2 o 3 immagini, non vale il copia e incolla, non vale soprattutto basarsi su ciò che si trova su Wikipedia e via.
Il lavoro va svolto in laboratorio, a coppie, in due/quattro ore di tempo. Ogni gruppo dovrà relazionare alla classe in max 5 minuti sulla ricerca effettuata. Va consegnata al termine del tempo assegnato (una copia per gruppo, il file o il link) e sarà valutata insieme alla relazione di gruppo.
Temi da selezionare (uno per gruppo):
- Monitor e display - Tecnologie (CRT, Plasma, LCD, LED, OLED), risoluzioni, refresh rate, schermi touch
- Schede video e GPU - Architetture, VRAM, connettori (HDMI, DisplayPort), applicazioni (gaming, grafica, rendering)
- Dispositivi di input: tastiere e tavolette grafiche - Tipologie meccaniche/a membrana, layout (QWERTY, AZERTY), connettori, tavolette per disegno digitale
- Dispositivi di puntamento - Mouse (ottici, laser, gaming), touchpad, trackball, trackpoint
- Schede madri e architetture - Chipset, socket, BUS (PCI, PCIe), form factor (ATX, Mini-ITX, Micro-ATX, Nano-ITX)
- Memorie RAM - Tecnologie (DRAM, SRAM, SDRAM), evoluzione DDR (DDR3, DDR4, DDR5), timing e frequenze
- Storage a stato solido - SSD (SATA, NVMe, M.2), schede SD, microSD, penne USB
- Storage magnetico e ottico - Hard disk (HDD), CD, DVD, Blu-Ray, tecnologie di registrazione
- Audio e periferiche sonore - Schede audio integrate/dedicate, microfoni, cuffie, auricolari, speaker, DAC
- Alimentatori e gestione energetica - Wattaggio, efficienza (80 Plus), modulari, UPS, protezioni
- Sistemi di raffreddamento - Dissipatori ad aria, liquid cooling (AIO, custom loop), ventole, paste termiche
- Networking e connettività - Schede di rete (Ethernet, Wi-Fi), adattatori wireless, Bluetooth, modem
- Periferiche di stampa e digitalizzazione - Stampanti (inkjet, laser, 3D), scanner, plotter, multifunzione
- Periferiche gaming e multimedia - Controller, gamepad, joystick, volanti, webcam, streaming equipment
- Case, sicurezza e accessori - Cabinet (tipologie, airflow), lettori biometrici, card reader, hub USB, docking station
Il software
Software e’ un termine generico che definisce programmi e procedure utilizzati per far eseguire ad un dispositivo elettronico un determinato compito. Il termine è un neologismo del ventesimo secolo inventato in contrapposizione al termine “hardware”, dunque un componente (-ware) “soft”, mordibo, leggero.
I primi “software” possono essere datati 1941, quando il sistema di controspionaggio inglese, capitanato da Alan Turing, lavorava alla decriptazione dei messaggi inviati dall’esercito tedesco con la macchina Enigma. Le istruzioni di decriptazione erano scritti su carta solubile, in modo da poter essere distrutti semplicemente in pochi secondi (“software”).
Nel mondo di oggi, una moltitudine di oggetti viene controllata da esso: computer, tablet, smartphones, automobili, TV, lavatrici ed elettrodomestici in genere.
È possibile classificare il software in due grandi macro-aree:
-
software di base, indispensabile al funzionamento del computer. È ciò che fa la differenza fra avere una scatola di ferro e plastica fra le mani e quello che noi chiamiamo “computer”. Viene solitamente identificato con il sistema operativo;
-
software applicativo. Comprende i programmi che il programmatore realizza utilizzando le possibilità che il sistema operativo offre. Tutti i programmi che solitamente utilizziamo fanno parte di questa categoria.
I sistemi operativi

I sistemi operativi (spesso abbreviato con OS) sono un insieme di applicazioni di base (vedi sopra) che da un lato si occupano di gestire l’hardware su cui sono installati, dall’altro rendono disponibili ai software applicativi le risorse di cui hanno bisogno per eseguire le proprie operazioni.
I sistemi operativi sono installati su tutti i dispositivi elettronici avanzati (PC desktop, notebook, tablet, smartphones, console per videogiochi, lettore mp3…) e sono dunque grossolanamente classificabili in base al dispositivo a cui sono rivolti.
Vediamo una carrellata dei sistemi operativi più famosi: per piattaforma desktop, troviamo la famiglia di sistemi operativi Microsoft Windows, oppure il sistema operativi Mac OS di Apple e le innumerevoli distribuzioni GNU/Linux.
Per dispositivi mobili, dominano la scena i sistemi operativi Android, della “Open Handset Alliance” capitanata da Google e iOS di Apple.
Note
Quanti sistemi operativi conosci? Quanti ne esisteranno secondo te?
Proviamo a cercare su Internet informazioni sui sistemi operativi. Ci interessa sapere:
- il loro nome
- che simbolo hanno
- se sono per desktop, mobile o dispositivi particolari
- vedere uno screenshot di come sono fatti
Proviamo a fare una piccola ricerca su Internet e a riempire un foglio di Libreoffice Writer con queste informazioni. Dieci minuti di tempo…
Vediamo qui di seguito una carrellata dei sistemi operativi più conosciuti, almeno ad oggi (Settembre 2017).
Windows 10

Windows 10 è il decimo OS prodotto da Microsoft e a sentire le loro dichiarazioni, doveva anche essere l’ultimo…
Nella strategia di Microsoft, questo doveva essere il sistema operativo in cui far convergere tutti i dispositivi: desktop, tablet, smartphone, console.
Invece…
Mac OS

MacOS è il nome dato al sistema operativo desktop prodotto da Apple.
Sebbene Apple sia una delle aziende pioniere della storia dell’informatica, questo OS è stato riscritto da zero solo nel 2001, abbracciando una derivata UNIX-like della famiglia BSD e mantenendo l’aspetto grafico originario.
Una delle caratteristiche principali di macOS è che è progettato specificatamente per l’hardware dei (pochi) dispositivi che Apple produce.
Distribuzioni GNU/Linux

Una distribuzione Linux è una raccolta di software tipicamente libero e opensource basata sul kernel GNU/Linux e l’X Window System.
In generale una distribuzione Linux rappresenta un sistema operativo UNIX-like, formato tramite la raccolta e la libera distribuzione di software libero selezionato.
Ma chi fa questa selezione? Chi distribuisce questa raccolta di software?
Esistono tipicamente due categorie di distribuzioni: quelle implementate da aziende, quali Red Hat, Novell, Mandriva, Canonical… che realizzano la loro distribuzione per uno scopo ben preciso oppure quelle divulgate da comunità libere di hobbisti, quali Debian, Slackware, Gentoo, etc…
Sistemi BSD
I sistemi operativi della Berkeley Software Distribution sono una variante originale del sistema UNIX sviluppata (indovina un po’…) presso l’università di Berkeley della California.
Il sistema operativo BSD non è più utilizzato e sviluppato, ma da esso è partita una famiglia di sistemi operativi liberi molto diffusi, soprattutto in ambito mainframe e network management, fra cui vale la pena ricordare:
- FreeBSD, su cui si basa il firewall/proxy del liceo
- FreeNAS, utilizzato su dispositivi di archiviazione di rete
- DarwinOS, sistema libero sovvenzionato da Apple, su cui si basa Mac OS
- Orbis OS, il sistema operativo della PlayStation
Valeva la pena citarli, vero??
PS: L’ho detto che anche il servizio Netflix si basa su FreeBSD? E che anche i server Whatsapp lo stesso?
Android

Android è un sistema operativo per dispositivi mobili derivato da Linux (praticamente è come un’altra distribuzione Linux) e sviluppato principalmente da Google e da tutta la Open Handset Alliance.
Originariamente progettato per smartphone e tablet, possiede interfacce utente specializzate per vari devices quali automobili (Google Auto), occhiali (Google Glass), orologi da polso (Android Wear) e TV (Android TV).
Ad oggi (Settembre 2017) Android è il sistema operativo mobile più diffuso al mondo con oltre il 60% del mercato.
iOS

iOS è un sistema operativo sviluppato da Apple per i dispositivi che lei stessa produce: iphone, ipad, ipod.
Come macOS, è un sistema operativo derivato da DarwinOS, ma ridisegnato per adeguarlo ai particolari dispositivi che andrà a gestire.
Questa caratterizzazione, soprattutto nelle librerie grafiche, rende le applicazioni per i due OS prodotti da Apple incompatibili fra di loro.
A settembre 2017 iOS ha superato il 30% di presenza nel mercato mobile mondiale.
Note
Lavoro di gruppo sui Sistemi Operativi
Il prof ha una proposta per voi…
Compiti di un OS
Un sistema operativo è un insieme di software di base che realizza i compiti di gestione del dispositivo e dell’interfacciamento utente.
In particolare esso si occupa:
- della gestione dell’hardware di cui è composto il dispositivo;
- dell’esecuzione dei programmi, con particolare attenzione alla distribuzione delle risorse (CPU e memoria di base) ai processi che ne richiedono l’utilizzo;
- alla gestione dell’interfaccia utente, in modo che quest’ultimo possa impartire al sistema i suoi comandi e visualizzare ciò che ne consegue;
- alla gestione del file system, tramite il quale i dati possono essere memorizzati e acceduti dal sistema.
Mi rendo conto che questa descrizione è un po’ stringata e “criptica”. Provo a spiegare quali sono i compiti principali di un OS, partendo dalle parole chiave che trovate sottolineate nel testo.
Hardware
Se siete arrivati a leggere fino a qua, cosa è l’hardware dovreste già saperlo… passiamo veloci alla prossima definizione.
Programmi e Processi
Programma è sinonimo di software, ovvero un file memorizzato nel filesystem che è eseguibile direttamente dal sistema operativo. Per questo motivo i programmi vengono detti anche “eseguibili” e su Windows sono i file con estensione “.exe”.
I processi sono i programmi attualmente in esecuzione. Proviamo a spiegare la differenza con un esempio: sul mio computer ho installato una copia di MS Word, che è ovviamente un programma. Se clicco su 2 file .doc e si aprono 2 finestre di Word per visualizzare e modificare questi file, avrò in esecuzione 2 processi dello stesso programma. Il programma è uno (MS Word), ma i processi per questo esempio sono 2. Ovviamente le risorse (CPU e memoria di base) vanno ai processi, NON ai programmi!
Risorse
Una risorsa è un componente fisico o virtuale che offre una determinata
funzionalità e di cui si ha una disponibilità limitata.
Nei nostri esempi, le risorse sono le memorie di base, che purtroppo
sono sempre limitate e la CPU che è tipicamente una!!!
Le risorse vanno distribuite fra tutti i processi che le richiedono: più
OS realizza bene questo compito e più il sistema appare “scattante” e
“responsivo”. Chiaro?
File system
Un file system è un meccanismo di organizzazione dei dati che costituiscono i file all’interno dei dispositivi di archiviazione (le memorie di massa). Tramite il filesystem diventano possibili tutte le operazioni sui file, quali lettura, scrittura, modifica, organizzazione gerarchica, navigazione e accesso.
Capite bene che un sistema operativo che non gestisca un filesystem è incredibilmente limitato nelle sue funzionalità.
Spiegati i termini, spero sia più facile capire quelli che sono i compiti di base di un OS. Allora vi chiedo… tornate su e rileggeteli!!!
Poi andiamo avanti.
Licenze Software
In ambito informatico, una licenza è il contratto tramite il quale chi produce il software determina le condizioni di distribuzione e di utilizzo dello stesso per coloro che vogliono servirsene.
Ogni software ha sempre una propria licenza e quindi per ogni software che si utilizza sul PC, sullo smartphone, sul tablet o in rete bisognerebbe conoscere sempre le limitazioni che il produttore del software, il quale agli occhi della legge rimane l’unico proprietario, impone.
Esistono varie tipologie di licenze software, classificabili genericamente nelle due macro-categorie:
- licenze per il software proprietario
- licenze per il software libero
Licenze per il software proprietario
Viene definito “proprietario” il software prodotto da aziende per (evidenti) motivi di lucro. Tipicamente (ma non sempre) questa tipologia di software coincide con il software “closed source”, ovvero quello per cui il codice sorgente non viene rilasciato al pubblico e quindi se ne rende impossibile ogni tipo di studio, modifica o ridistribuzione.
Le licenze disponibili in questa categorie sono solitamente di 3 tipi:
EULA
L’End User License Agreement è un contratto che descrive in quale modo il produttore mantenga i “diritti” sul software che ha creato e non lo “venda” all’utente finale, ma che gli permetta di utilizzarlo. La non accettazione implica l’impossibilità per quest’ultimo perfino di installare il programma.
Freeware
Le licenze di questo tipo concedono gratuitamente l’utilizzo e la ridistribuzione del software all’utente finale. Le aziende che scelgono questo tipo di licenza lo fanno chiaramente per favorire la distribuzione di massa del software stesso e rientrano degli utili chiedendo delle donazioni agli utenti che hanno apprezzato il software o utilizzandolo come veicolo pubblicitario per terze parti (ad-ware).
Shareware
Le licenze di questo tipo permettono all’utente finale di scaricare semplicemente e gratuitamente una versione di prova o con funzionalità limitate del software (trial), chiedendo dopo poco tempo il pagamento di una somma (riscatto) per continuare ad usufruire dello stesso.
Licenze per il software libero
Viene definito “libero” quel software pubblicato tramite una licenza che ne permetta l’utilizzo, l’analisi del codice, la modifica e la redistribuzione (anche modificato, evidenziando le proprie modifiche).
Si intende chiaramente che software libero implichi software “open source”, ovvero quel tipo di software che oltre all’eseguibile, ovvero il programma da installare e utilizzare, distribuisce anche i codici sorgenti che compilati generano quel programma.
Il software libero è più di ogni altra cosa una filosofia di vita, che secondo me i vostri figli se faranno il liceo si ritroveranno tra gli argomenti di filosofia dell’ultimo anno… per quanto vi riguarda, se l’argomento vi interessa, vi suggerisco due letture brevi sull’argomento tratte da Wikipedia:
Per quanto riguarda le licenze più comuni di software libero esse sono:
GPL
La General Public License è la licenza di base del software libero, scritta dalla Free Software Foundation e si basa sulle cosiddette “4 libertà fondamentali del software”:
- Libertà 0: Libertà di eseguire il programma per qualunque scopo
- Libertà 1: Libertà di studiare il codice del programma e modificarlo
- Libertà 2: Libertà di redistribuire copie del software a chiunque
- Libertà 3: Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti
Licenze BSD
Le licenze BSD riflettono al meglio il concetto di free in quanto gratuito. Esse garantiscono che il codice rilasciato con questa licenza sia attribuito al suo autore e possa essere studiato, ridistribuito e modificato, ma non obbligano nessuno a ridistribuire pubblicamente le modifiche che si fanno ad esso.
In questo modo gli autori intendono considerare il codice rilasciato con licenza BSD come un dono che l’autore fa al mondo, senza richiede nulla in cambio anche se qualcuno utilizza il suo codice per scopi di lucro.
I sistemi operativi della famiglia BSD sono tutti basati su questa licenza. I sistemi operativi di Apple sono tutti basati su BSD grazie a questa particolare licenza con cui essi (i sistemi BSD) sono rilasciati.
Tip
Le aziende e il software opensource
Molto del software che utilizziamo quotidianamente (ad esempio, la PlayStation, Whatsapp, Netflix) sono basati su BSD.
Infatti, la licenza BSD permette a chiunque di costruire il proprio servizio a pagamento sopra un sistema operativo BSD senza dover condividere pubblicamente il proprio codice come sarebbe stato obbligatorio in caso di progetto derivato da uno con licenza GPL.
Creative Commons
Le CC sono licenze di diritto d’autore (quindi applicabili ad ogni opera dell’ingegno) organizzate secondo una schema di concessione in cui l’autore decide quale libertà concedere a chi vuole usufruire dell’opera.
L’unica libertà “obbligatoria” da concedere è il diritto di copiare e distribuzione l’opera (share), mentre l’unico diritto obbligatorio che si ottiene con questa licenza è l’attribuzione all’autore.
Le altre possibilità sono regolate secondo il seguente schema (copiato da Wikipedia)

Combinando opportunamente alcune di queste clausole si ottengono le licenze CC. Date un occhio al fondo pagina delle dispense del prof per vederne un esempio…
Software applicativi
I software applicativi sono quei software utilizzati per specifiche operazioni, quali la scrittura di un documento, un calcolo, un disegno, la navigazione su internet, la visione di un contenuto audio o video, ecc.
Ognuno di questi software dunque può essere catalogato per il tipo di funzione che svolge. Per svolgere la loro funzione inoltre, i software hanno bisogno di interagire con i dati che gli utenti alla fine vogliono visualizzare. Altrimenti perché usare quel software?

Cerchiamo allora di dare una prima categorizzazione al software, ponendo attenzione anche al formato di dati che esso è in grado di trattare.
Note
Lavoro di gruppo sul Software
Ne arriva un’altra…
LibreOffice
LibreOffice è una suite di programmi per l’ufficio: contiene un editor di documenti, un foglio elettronico, un programma per le presentazioni multimediali, un database manager, un programma di disegno, uno per le formule matematiche… insomma, più o meno tutto quello che possa servire di fare in un ufficio quando si hanno a che fare con dati e documenti.
Le sue caratteristiche peculiari sono che tutta la suite è un software rilasciato con licenza libera e gratuita e che supporta attualmente tutti i maggiori sistemi operativi desktop: Windows, Mac, Linux.
![]()
Nell’ordine dall’alto a sinistra, le icone di:
- LibreOffice Writer, per i documenti
- LibreOffice Calc, per i fogli elettronici
- LibreOffice Impress, per le presentazioni multimediali
- LibreOffice Draw, per il disegno vettoriale
- LibreOffice Base, per i database
- LibreOffice Math, per le formule matematiche
Dalla versione 6, LibreOffice comprende anche una interfaccia iniziale, chiamata semplicemente LibreOffice e che viene identificata dall’icona qui sotto!
![]()
Una pagina di storia
La suite Libreoffice appartiene al grande filone delle suite da ufficio
Questa tipologia di software si sviluppa sin dagli anni ’80, con i mitici WordStar, Lotus 1-2-3, dBase III, Harvard Graphics; rispettivamente il primo editor di documenti, foglio elettronico, database manager e software per il disegno vettoriale.
Microsoft capisce da subito l’importanza di sviluppare software di questo tipo per i propri sistemi operativi e dapprima incoraggia lo sviluppo della prima suite di programmi da Ufficio, la “Lotus Symphony” per MS-DOS, poi, alla fine degli anni ’80, entra in campo direttamente con la celebre suite Microsoft Office, per sistemi Windows: 10 anni dopo Office diventerà la suite per ufficio più utilizzata a livello mondiale e contribuirà enormemente al successo del sistema operativo Windows.
Negli anni 2000 arrivano le prime suite di produttività opensource ad intaccare il monopolio Windows/Office: prima OpenOffice e 10 anni dopo, la neonata suite LibreOffice.
LibreOffice è una suite da ufficio libera e opensource, sviluppata dalla “The Document Foundation” (https://www.documentfoundation.org/), una fondazione no-profit che promuove l’utilizzo di software e formati opensource per la gestione dei dati nei documenti.
La Document Foundation è sostenuta fin dalla sua fondazione da importanti aziende del mondo informatico, quali Novell, Red Hat, Canonical e Google.
Chiudo questa prima pagina con una domanda e una esortazione: perché secondo loro è così importante utilizzare software e soprattutto formati opensource per la gestione dei dati nei documenti? Beh… pensaci! In fin dei conti, è roba tua!
Formato standard aperto
Spiegare quanto è importante che il formato dei dati sia uno standard, ovvero esista un modello di riferimento a cui attenersi per la trattazione dei dati e che questo standard sia aperto, ovvero sia disponibile per sempre per tutti gratuitamente… è veramente difficile.
Per provare a farlo ho pensato a due immagini che si riferiscono a fatti reali.
La prima illustra quello che succede quando ci si dimentica di applicare uno standard:

La seconda illustra quello che può succedere utilizzando standard chiusi:

Insomma… a me sembra molto chiaro…
LibreOffice utilizza il formato standard e aperto definito “Open Document Format”, che viene curato dalla OASIS, una organizzazione no-profit (in cui partecipa anche Microsoft) per lo sviluppo di uno standard aperto per i documenti.
L’Open Document Format è stato pubblicato come standard ISO/IEC 26300 – Open Document Format for Office Applications.
Contiene le seguenti estensioni:
| Tipologia | Estensione | Descrizione |
|---|---|---|
| Testo | ODT | Open Document Text |
| Foglio Elettronico | ODS | Open Document SpreadSheet |
| Presentazione | ODP | Open Document Presentation |
| Disegno | ODG | Open Document Graphics |
| Grafico Business | ODC | Open Document Chart |
| Immagine | ODI | Open Document Image |
| Database | ODB | Open Document (data)Base |
| Formula Matematica | ODF | Open Document Formula |
Scaricare LibreOffice
LibreOffice è una suite per ufficio gratuita, opensource e multipiattaforma.
Il suo sito di riferimento è https://www.libreoffice.org/.
E’ disponibile per l’installazione su sistemi Windows, Mac OS, GNU/Linux mentre sono attualmente in lavorazione una versione online del prodotto (gratuitamente installabile su qualunque server web: la propria web suite) e una versione per Android. Non ci sono piani di supporto per iOS vista la natura chiusa dell’ecosistema Apple per le app scaricabili dall’Apple Store.
La pagina di download è https://www.libreoffice.org/download/
Interfaccia comune
Come abbiamo già detto, LibreOffice presenta una interfaccia comune a tutti i suoi software che permette di accedere facilmente ai vari programmi della suite e alla cronologia dei file già editati con qualunque di questi.

Da essa (e da qualunque dei suoi software) è possibile accedere alle impostazioni, che tutti almeno in minima parte dovrebbero personalizzare!
Quello che ci interessa nel nostro caso è la modifica dei DATI UTENTE: così facendo tutti i documenti editati da noi, in quel computer con quell’utente, risulteranno firmati con quei dati utente inseriti lì!
Per accedere alle impostazioni, dovete selezionare il menù STRUMENTI e scegliere la voce OPZIONI: vi troverete davanti una interfaccia come questa.

Nella scheda DATI UTENTE del gruppo LIBREOFFICE inserite i vostri dati: compilate i campi che volete, ma almeno il nome e il cognome dovete inserirli!

Da questo momento qualsiasi documento che create sarà etichettato con i vostri dati!
Per verificare che sia così, in qualsiasi dei programmi LibreOffice, dal menù FILE scegliete la voce PROPRIETA’.
Libreoffice Writer, un Editor di Documenti
Un editor di documenti è un software per la composizione di testi in formato elettronico.
Mentre alcuni editor semplici, come il Blocco Note di Windows, permettono di scrivere solo testo puro, senza alcun tipo di formattazione, gli editor di documenti permettono di inserire in un documento, oltre ovviamente al testo, una formattazione completa e differenziata dello stesso, come di inserire immagini, link e altri contenuti per arricchire il documento stesso.
Esempi di editor di documenti sono i comunissimi Microsoft Word e LibreOffice Writer. Noi qui (lo avrete capito) approcciamo un po’ l’editor LibreOffice Writer.

Operazioni di base
Non starò qui a spiegare come si apre, si crea, si salva e si chiude un documento: sono operazioni basilari che dovremmo già aver recepito semplicemente usando qualsiasi tipo di software.
Vorrei solo far notare che Writer, oltre alla possibilità banale di partire da un documento vuoto, ha la possibilità di:
-
creare lettere, fax e altro tramite una procedura guidata,

-
partire da un modello di base salvato nel PC,

-
scaricare un modello gratuito a piacimento dal sito https://extensions.libreoffice.org/templates.
Basta provare ;)
Stili per il testo
Questo capitolo è il più complicato da spiegare di tutto il corso su Writer, perché fa notare delle ovvietà che ai più non sono affatto ovvie. Del resto… chi ha mai studiato come si usa un editor di testo? Cosa ci vuole… basta aprirlo, scrivere e ricordarsi di salvare alla fine!
Se vuoi scrivere un titolo bello grosso, come quello Stili su in alto, basta modificarne il font (il tipo di carattere), la dimensione e metterlo grassetto, giusto?!
No!
Per diventare un titolo bisogna modificarne lo stile! Guardate la figura sotto (è orribile, lo so).

Per ottenere un titolo, bisogna modificarne lo stile da “Corpo del testo” o “Stile predefinito” in “Titolo 1” oppure “Titolo 2”… non basta modificarne font e dimensione!
Ogni titolo del nostro testo deve avere applicato uno degli stile titolo disponibili. Così i paragrafi che compongono un capitolo devono essere tutti di stile “Corpo del testo” oppure uno stile derivato da questi.
Note
Il menù per gli stili
A un certo punto In Writer è comparso addirittura un menù dedicato agli stili per permettere agli utenti di gestire al meglio questo importantissimo aspetto della formattazione dei documenti.
Esagerando un po’, si potrebbe dire che, deciso quello che si vuole scrivere, prima di scriverlo nel documento, bisognerebbe decidere come scriverlo, creando e modificando degli stili adatti al layout che vogliamo creare. Infine si passa alla digitazione vera e propria del testo con la semplice applicazione dello stile appropriato sul testo scritto.
Non è semplice, me ne rendo conto. Ma è il modo in cui un utente di buon livello dovrebbe usare un editor avanzato come Writer o Word per la stesura di qualsiasi documento non banale.
Come si crea uno stile, si modifica e si applica ad un documento lo vediamo a lezione.
Gli stili si applicano ad un contesto. E i contesti in un editor di documenti sono solitamente tre:
- Carattere
- Paragrafo
- Pagina
Stili per carattere
Come si fa a scrivere una parola in grassetto sottolineato? Semplice! Si evidenzia la parola e si clicca su uno dei pulsanti sopra. Si possono anche sovrapporre più modifiche, ad esempio:
Questo testo viene scritto in font: “Dejavu Sans”, dimensione 14,
corsivo e sottolineato. E la parola testo è barrata.
Quando si seleziona una parola o più, lo stile che vi si applica viene applicato per carattere: ogni carattere della selezione viene modificato secondo quanto stabilito, ogni carattere non selezionato non viene modificato affatto (e quindi mantiene lo stile originale).
E se volessimo avere il controllo di tutti gli stili applicabili ad un carattere???
Seleziona una parola qualsiasi, poi apri il menù FORMATO e scorri fino a CARATTERE: lì trovi tutti gli stili che Writer può applicare ad un carattere.
Stili per paragrafo
Uno stile viene applicato ad un paragrafo quando tutte le parole che fanno parte di quel paragrafo ottengono immediatamente lo stile dello stesso. Qui stiamo dando per scontato che voi sappiate cosa sia un paragrafo… beh… per Writer un paragrafo è quella porzione di informazioni (testo, immagini, tabelle, etc…) compresa fra 2 “invio”.
Ognuno degli stili predefiniti come “Titolo 1”, “Corpo del testo”, etc… sono stili per paragrafo, in questa sua accezione più “estesa”.
Se mettete il cursore su un paragrafo, anche senza evidenziare niente, e poi aprite il menù FORMATO e scorrete fino a PARAGRAFO vedrete che ogni modifica che fate lì viene applicata immediatamente a TUTTO il paragrafo!
Stili per pagina
Ormai avrete capito che per modificare lo stile della pagina basta andare sul menù FORMATO e selezionare PAGINA. Lì trovate tutti gli stili che si possono applicare alle pagine del vostro documento, tra cui l’intestazione (di pagina) e il piè di pagina, che vedremo fra poco.
Ricordate solo che ogni modifica allo stile di pagina si applica non alla pagina corrente, ma a tutte le pagine del documento!
Intestazioni e piè di pagina
Tip
In Inglese L’intestazione di pagina si chiama header, Il piè di pagina si definisce footer.
Continuando l’analogia, il corpo della pagina viene chiamato body

L’intestazione e il piè di pagina sono due aree separate del foglio che si trovano rispettivamente sopra e sotto il corpo centrale della pagina.
Queste due aree appartengono allo stile della pagina e saranno quindi ripetute costantemente in tutte le pagine del documento.
Per inserirle in un documento, seleziona, dal menù INSERISCI, la voce
INTESTAZIONE E PIE' DI PAGINA; poi cliccare dentro ognuna di esse per
inserire informazioni che saranno ripetute in tutto il documento.
Queste zone particolari di ogni pagina sono solitamente costellate di informazioni generiche be definite (ad esempio: il titolo del documento, l’autore, il titolo del capitolo, etc…) oppure informazioni che vengono calcolate in tempo reale (ad esempio: la data di ultima modifica, il numero della pagina, il totale delle pagine, etc…).
Come si gestiscono tutte queste informazioni automatiche è oggetto del prossimo argmento.
Comandi di campo
Un comando di campo è una istruzione che impone a Writer di desumere
un’informazione dal documento stesso e di visualizzarla nel punto ove il
comando viene applicato. Per inserirla nel documento (di solito si usano
nelle intestazioni e nei piè di pagina) selezionare il punto prescelto,
poi dal menù INSERISCI selezionare COMANDO DI CAMPO.
Sono disponibili i seguenti comandi di campo:
- Numero di pagina
- Conteggio pagine
- Data
- Orario
- Titolo
- Primo autore
- Oggetto
Indice Generale e Indice Analitico
Un indice generale è un elenco di tutti i titoli presenti nel nostro documento, in ordine di apparizione e con il numero di pagina vicino. Writer crea l’indice inserendo un collegamento in ognuno dei titoli, in modo tale che “cliccandoci” si possa raggiungere il capitolo corrispondente.
Un indice analitico è un elenco strutturato e ordinato di tutti i capitoli e gli oggetti (immagini, tabelle, note, etc…) presenti nel documento.
Una bibliografia è un elenco di testi, solitamente con un riferimento o un link per ognuno, ordinato secondo la volontà dell’autore. Solitamente la bibliografia di un documento contiene tutte le sue fonti.
Nella nostra trattazione ci occuperemo semplicemente dell’indice generale.
Per inserire un indice generale nel nostro documento, dal menù INSERISCI, aprire
il sottomenù INDICE GENERALE E INDICE ANALITICO, poi selezionare la voce
INDICE GENERALE, ANALITICO O BIBLIOGRAFIA.
Dall’interfaccia che appare, selezionare “Indice Generale” e premere invio. L’indice generale viene creato automaticamente nella posizione selezionata controllando tutti i titoli presenti nel proprio documento.
Warning
Dopo aver creato l’indice generale, questo non si aggiorna automaticamente!!
Dopo aver aggiunto pagine, titoli e/o contenuti devi ritornare sull’indice generale, cliccare col tasto destro su di esso e dal menù contestuale selezionare
AGGIORNA!Ricordatelo!
Se modifichiamo gli stili dei titoli questi non saranno inseriti automaticamente nell’indice, ma dovranno essere inseriti dall’interfaccia grafica selezionandone il nome ed indicando il livello

Dalla finestra di inserimento indice, mettete la spunta su “stili aggiuntivi”, poi dal pulsante “Assegna Stili” andate ad indicare il livello dello stile che avete creato: 1 se volete che il vostro stile sia un Titolo1, 2 se volete un Titolo2, etc…
Inserimento oggetti speciali
In un documento LibreOffice si possono inserire vari tipi di oggetti speciali: immagini, video, grafici business, formule matematiche, forme geometriche e oggetti grafici in genere, cornici, fontwork, etc…
Vediamo l’inserimento di alcuni degli oggetti più comuni
Collegamenti
I collegamenti ipertestuali (i link) si possono assegnare su LibreOffice ad un qualunque oggetto (un testo, una immagine, etc…). Per inserire un collegamento, selezionate prima l’oggetto e poi dal menù INSERISCI scegliete COLLEGAMENTO!
A quel punto dovete solo inserire l’URL di destinazione, ovvero l’indirizzo del sito che volete aprire quando si clicca l’oggetto!
Warning
In Writer, click e doppio click selezionano un oggetto!
Per aprire un collegamento fate click su di esso tenendo premuto CTRL !!!
Tabelle
Le tabelle sono una caratteristica peculiare dei documenti con formattazione: sono molto utili e permettono di organizzare le informazioni con semplicità.
Writer possiede un menù e una toolbar dedicati espressamente alle tabelle. Il menù è qui in alto mentre la toolbar si attiva automaticamente quando si lavora su una tabella…
Tra gli esercizi ce ne sono alcuni espressamente dedicati a lavorare con le tabelle.
Immagini
Inserire un’immagine è molto semplice: dal menù INSERISCI, selezionare IMMAGINE, da qui selezionare il file e premere invio.
Per permettere all’immagine di posizionarsi correttamente secondo il nostro volere bisogna considerare alcune cose:
| Proprietà | Descrizione |
|---|---|
| Ancoraggio | Stabilisce come l’immagine è legata al testo. |
| Scorrimento | Stabilisce il modo in cui il testo scorre sull’immagine e se può attraversarla. |
| Allineamento | Stabilisce l’allineamento dell’immagine rispetto all’ancoraggio. |
| Bordi e distanza dal testo | Sono parametri che si possono modificare dalle proprietà dell’immagine. |
Fontwork
I Fontwork sono font speciali tramite le quali inserire un testo accattivante e molto evidente dei documenti. È una possibilità utilizzata raramente nei documenti e solitamente riservata ai volantini, biglietti di auguri, etc…
Per inserire un fontwork con scritto WRITER, dal menù INSERISCI selezionare FONTWORK; nella finestra che viene aperta selezionare un fontwork fra quelli mostrati.
Nel fontwork inserito (con la scritta di default FONTWORK) fare doppio click e procedere alla modifica del testo da visualizzare. ESC per concludere. Clic sinistro sopra la scritta per attivare i bordi di ridimensionamento. Tutto qui :)
Esercizi
Gli esercizi sono… nel PC del prof. Qui trovate elencati solo il codice dell’esercizio (ad esempio: W01) e gli argomenti su cui esso si basa.
Esercizi W0x
Esercizi con gli stili predefiniti, sommario, intestazione e piè di pagina.
Esercizi W1x
Esercizi con gli stili personali (da creare).
Esercizi W2x
Esercizi con le immagini
Esercizi W3x
Esercizi con le tabelle
Esercizi W4x
Esercizi complessi, contenenti tutte le cose studiate, simili alla verifica.
LibreOffice Calc, gestire i fogli elettronici
Un foglio elettronico è una tipologia di software da ufficio in grado di manipolare automaticamente una o più sequenze di dati.
Esso è in grado di operare su essi tutta una serie di operazioni matematiche, logiche, di confronto e di elaborarne riassunti anche in forma grafica.
Storicamente si deve al foglio elettronico il passaggio del PC, nell’immaginario collettivo, da strumento di svago per hobbisti ad uno degli strumenti di lavoro più efficaci.
Il foglio elettronico più diffuso al mondo è Microsoft Excel, ma fra i software liberi e opensource il migliore è sicuramente LibreOffice Calc. Quale sia il migliore fra tutti… è una partita aperta!

Gestione Files
LibreOffice Calc è in grado di gestire un numero incredibile di formati di files, sia in lettura (ovvero per aprire e visualizzare il contenuto di un foglio elettronico), sia in scrittura (ovvero per salvare un file secondo un certo formato.
I formati principali che Calc è in grado di gestire sono:
| Formato | Descrizione | |
|---|---|---|
| Il formato .ods | (Open Document SpreadSheet) | Il formato predefinito di Calc, aperto, standard della Open Document Foundation. |
| Il formato .xlsx | (Excel 2007 – Office 365) | Il formato predefinito di Excel (dalla versione 2007), standard supportato da Microsoft. |
| Il formato .xls | (Excel 97 – 2003) | Il formato predefinito di Excel prima del 2007, binario (non standard) e proprietario Microsoft. |
| Il formato .csv | (Comma Separated Values) | Un formato di testo molto semplice molto diffuso, utile per l’esportazione dei valori. |
Le caselle del Foglio Elettronico
Ogni file di Calc contiene almeno un foglio elettronico (sheet). Ogni foglio è suddiviso in tante caselle (cell). Tante quante? Esattamente 17.179.869.184! O per meglio dire 234. Infatti le righe, che sono indicate con un numero crescente, vanno da 1 fino a 1.048.576 (cioè 220), mentre le colonne, che sono indicate con una combinazione di lettere da A fino ad XFD, sono 16.384 (cioè 214). E il prodotto di 2 potenze con la stessa base è un calcolo molto semplice…
Con tante caselle a disposizione dovremmo capire subito un concetto fondamentale:
Tutte le caselle di un foglio elettronico dovrebbero contenere solo informazioni elementari
Ad esempio, se memorizzassimo in esso i nomi dei nostri compagni di classe (l’elenco della classe) dovremmo inserire in una casella il nome e in quella adiacente il cognome e organizzare i dati in modo tale che in una colonna ci siano tutti i nomi e in un’altra tutti i cognomi.
Insomma… un concetto importante sì… difficile no!
L’importanza di questo concetto sta nel fatto che organizzando i dati in informazioni elementari, essi diventano facilmente elaborabili, ordinabili, facili da ricercare e modificare.
Insomma, in questo modo il foglio elettronico può lavorare alla massima potenza!
Ogni casella del foglio elettronico è individuabile incrociando le sue coordinate

Nello screenshot a fianco, è stata selezionata la casella B2, le cui coordinate sono state ottenute prendendo la colonna (B) e la riga (2) in cui la casella si trova.

In questa immagine invece, abbiamo una selezione rettangolare, ottenuta selezionando un gruppo di caselle con il mouse e identificabile con le coordinate delle caselle:
“in alto a sx” : “in basso a dx”
Nel nostro esempio l’area selezionata di individua con le coordinate B2:D8.
Tanti fogli per un solo File
Quando si apre un foglio elettronico vuoto, esso si presenta con un unico Foglio (sheet) presente.
Esso contiene da solo tutte le funzionalità e caratteristiche di cui abbiamo parlato fino ad ora!
Il suo nome di default è “Foglio1”.

Se fai doppio click sopra al nome, appare una finestra in cui puoi modificare il nome a tuo piacere.

Come si vede dall’immagine è possibile aggiungere altri fogli allo stesso file, semplicemente cliccando sul + evidenziato nel disegno!
Chi è curioso dei numeri sappia che ogni file LibreOffice Calc supporta fino a 10.000 fogli!!
Credo possano bastare… per una vita! Non solo per un file…
Formato dei dati (nelle caselle)
Ogni casella di Calc può gestire dati in un diverso formato, che è possibile specificare tramite l’opzione “Formatta celle…” dal menù Formato oppure più semplicemente, dal menù contestuale.
I formati disponibili sono i seguenti:
| Formato | Descrizione |
|---|---|
| Numero | Indica un numero, con o senza virgola. |
| Percentuale | Un numero reale tale che 1 corrisponde al 100% |
| Valuta | Un numero che indica una quantità monetaria, con accanto il simbolo della moneta selezionata. |
| Data | Valore per data e ora |
| Ora | Valore per orario |
| Scientifico | Un numero in notazione scientifica |
| Testo | Un valore per una stringa di testo |
| Personalizzato | Un formato personalizzabile dall’utente |
Adesso bisogna solo provare!
Operazioni e Riferimenti
I concetti di operazioni e riferimenti sul foglio elettronico sono un tipico esempio di qualcosa che non si può imparare leggendo, ma si deve capire provando con il foglio elettronico sotto. La spiegazione che segue è quindi organizzata esattamente come io la farei in laboratorio: per seguire bene dovete aprire il foglio elettronico e provare man mano che vado avanti con gli esempi e le spiegazioni.
Esempio 1: moltiplicazioni
Per prima cosa scrivete un “1” in una casella del foglio elettronico.

Se rimanete sopra di esso con la selezione
vedete in alto a sinistra il riferimento alla casella selezionata (C4) e in alto a destra della figura, nella barra della formula, il valore 1 ripetuto.
A questo punto avvicinate il mouse alla casella selezionata, precisamente al quadratino evidenziato in basso a sinistra di essa, fino a che il puntatore non diventa un “mirino” ( + ).

Con il puntatore a mirino, trascinate la casella selezionata, quella con l’uno, verso il basso.
Come vedete 1 è diventato 2, poi 3 e così via fino a che non ho smesso di scorrere verso il basso.
Mi sono fermato a 10.
Voglio provare a fare la stessa cosa adesso con una parola.
Come vedete, ho scritto “per” di fianco al numero 1. Metto il puntatore vicino al quadratino basso della selezione e con il mirino tiro verso il basso.

Questa volta le parole sono state semplicemente copiate, senza alcuna modifica o incremento.

Tip
Riassumendo
- il trascinamento dei numeri in modalità “mirino” funziona in senso incrementale
- il trascinamento delle parole in modalità “mirino” copia in maniera identica il contenuto delle caselle.
Adesso proviamo a modificare il comportamento predefinito. Scriviamo un numero di fianco alla scritta “per” (nel mio esempio 5), posizioniamo il puntatore vicino al quadratino basso della selezione per la modalità “mirino” e teniamo premuto ++ctrl++ sulla tastiera.
Il trascinamento copierà i numeri come fossero parole

Aggiungiamo una nuova stringa con il solito trascinamento e passiamo alla novità di adesso.
Nella casella del risultato (G4, nel mio esempio) vado a scrivere:
= C4 * E4
Così come lo vedete qui e come appare sulla barra della formula.

L’uguale all’inizio di una casella induce il foglio elettronico ad eseguire una operazione.
Tramite i riferimenti C4 ed E4 e il simbolo della moltiplicazione ho indicato cosa dovesse fare. Nella casella trovate il risultato; se osservate la barra della formula, trovate (appunto) la formula.
Proviamo adesso a trascinare verso il basso la formula in G4 così come abbiamo fatto con gli altri valori.
Incredibilmente il foglio elettronico “aggiorna” la formula con i riferimenti relativi alla attuale sinistra di ogni colonna!
E le operazioni hanno improvvisamente senso…

C’è un’altra caratteristica importantissima che ha a che fare con operazioni e riferimenti e che il foglio elettronico ci offre. Provate a modificare a mano alcuni dei valori numerici delle prime due colonne e guardate cosa succede alle caselle con le formule…
Esempio 2: tabelline
Compresi i concetti del primo esempio, aumentiamo un po’ la velocità.
Preparate un nuovo foglio in questo modo:
- colonna di numeri da 1 a 10
- la scritta “tabellina del” sopra
- una casella dove inserire la tabellina da calcolare
- una formula per calcolare la tabellina con una moltiplicazione, pronta per il trascinamento

Il trascinamento è ok, ma i risultati… no! Man mano che “abbassiamo” la formula, i numeri della colonna da 1 a 10 vengono “trasportati” correttamente ma il riferimento al 6 in alto si “sposta” verso il basso.
I riferimenti relativi (quelli dell’esempio 1, ad esempio la casella G2) si muovono durante il trascinamento delle formule.

In questo caso occorre un’altra strategia.

Per avere un riferimento “fisso” devi inserire i “dollari” $ davanti a righe e colonne del riferimento!

Mi spiego: un riferimento relativo, ad esempio G2 è un riferimento perché individua una casella, quella che si trova all’incrocio della colonna G con la riga 2, da cui G2.
Per ottenere un riferimento assoluto dobbiamo anteporre i simboli del dollaro a righe e colonne, quindi G2 diventa $G$2.
Un riferimento assoluto individua una casella esattamente come il riferimento relativo, ma con una importante differenza:
rimane fisso durante i trascinamenti nelle formule!
Ecco allora che trascinando la nuova formula scritta con il riferimento assoluto per la casella G4, otteniamo la tabellina come la volevamo!
Provate a fare due esperimenti:
- Osservate la formula che è stata “trascinata” dentro la casella G13
- Provate a modificare il valore nella casella G2
Grafici
I grafici sono un must per chi utilizza i fogli elettronici perché permettono di rappresentare i dati in modo chiaro, conciso e velocemente comprensibile.
Creare un buon grafico per visualizzare la situazione dei dati è un’arte… noi attualmente ci preoccupiamo solo di capire come poterli inserire nei nostri fogli.
La cosa più semplice da fare quando si vuole creare un grafico è selezionare prima i dati che devono essere rappresentati. In questo modo durante la creazione ci si potrà concentrare solo sulla parte… grafica :)
Partiamo da una tabella qualunque…

Selezioniamo i dati interessanti, da rendere in un grafico. Nel nostro caso, volendo rappresentare i voti per materia di Pinco Pallino vado a selezionare le caselle A2 : B6

A questo punto andiamo a inserire il grafico con l’azione GRAFICO dal menù INSERISCI:

A questo punto si presenta la finestra di selezione grafico. Cosa vi devo dire? Scegliete quello che vi piace di più…

Ci sono 4 step in questa procedura guidata, ma i due complicati, Area dati e Serie di dati, sono stati compilati automaticamente grazie al fatto che avete inserito il grafico con i dati già selezionati!
Passate all’ultima scheda per decidere il titolo e la posizione della legenda e premete FINE!

Ecco fatto!
Avete creato il vostro primo grafico con LibreOffice Calc!
Con la pratica impareremo meglio ma così siamo già operativi per gli esercizi ;)
Funzioni
LibreOffice Calc fornisce una miriade di funzioni e vi assicuro che ci toccherà studiarne parecchie! La prima cosa da sapere sulle funzioni è che sono talmente tante da essere classificate per categoria!
Le categorie di funzioni presenti in LibreOffice Calc sono:
| Categoria | Descrizione |
|---|---|
| Database | Funzioni che consentono di gestire i dati organizzati in una sola riga per un solo record. |
| Data&Orario | Funzioni per inserire e modificare valori di data e orario. |
| Finanza | Funzioni di matematica finanziaria |
| Informazione | Funzioni che ritornano informazioni sul foglio elettronico, sul sistema operativo e sul sistema in genere. |
| Logica | Funzioni per la logica proposizionale. |
| Matematica | Funzioni di matematica: aritmetica, geometria, trigonometria. |
| Matrice | Funzioni per l’elaborazione dei dati in forma matriciale. |
| Statistica | Funzioni statistiche |
| Foglio elettronico | Funzioni generiche per operazioni sul foglio elettronico. |
| Testo | Funzioni di manipolazione del testo. |
| Add in | Funzioni aggiuntive disponibili. |
Ovviamente noi ne studieremo solo una accurata selezione e neanche per tutti le categorie disponibili. Però faremo in modo che diventiate autonomi nello studio di eventuali nuove funzioni che potrebbero interessarvi in futuro…
Le funzioni si inseriscono selezionando prima di tutto la CASELLA ove si vuole compiere una operazione e poi selezionando l’apposita pulsante della barra della formula per l’inserimento guidato di una funzione.

A questo punto:
- si cerca la funzione per nome con l’apposita casella di ricerca
- trovata la funzione, si legge la descrizione su di essa che l’interfaccia fornisce
- si segue la procedura guidata per la creazione della funzione selezionata

Certo… più o meno è proprio così… e se fosse così facile in un paio di settimane potremmo fare subito la verifica!
In realtà non è molto complicato, ma è meglio studiare volta per volta le funzioni che andremo ad utilizzare per non dover ogni volta ricominciare da zero.
Di certo però non posso presentarvi la procedura guidata per ognuna delle funzioni che studieremo! Ci mettereste di più a studiare che ad esercitarvi :)
Le funzioni (e le relative esercitazioni) che andremo a studiare (e ad affrontare) sono organizzate nella seguente modalità:
- Funzioni Somma, Min, Max
- Funzione Se
- Funzioni conta: conta.se, conta.valori, conta.vuote
- Ordinamento dati
- Importazione da CSV
- Formattazione condizionale
- Formule composte
- Filtri, subtotali, tabelle pivot