Sei sulla pagina 1di 22

Riassunto Introduzione all'Informatica per studenti di materie

umanistiche (M. Agosti, N. Orio)


1. Introduzione
Abilità informatica: capacità necessaria ad utilizzare gli strumenti informatici di produttività individuale di base
– capacità elementare di usare uno strumento di video scrittura, posta elettronica o applicativo web,
conoscenza di programma applicativi – è legata alla tecnologia in uso e all’utilizzo del calcolatore (non
garantisce l’abilità nei confronti di tecnologie future).

Formazione informatica: acquisizione di fondamenti di informatica di carattere generale e specifico –


conoscere l’approccio scientifico che sta alla basa della tecnologia (consente quindi di gestire al meglio la
tecnologia).

Terminologia: la rapidità evolutiva dell’informatica non ha consentito di sviluppare una terminologia


consistente – ci si affida all’inglese.

2. Concetti di base
Informatica: il termine fu introdotto nel 1968 come traduzione di informazione-automatica. L’obiettivo
principale dell’informatica quindi è il trattamento dell’informazione e la possibilità di compiere le
operazioni necessarie al suo trattamento in modo automatico.

L’informazione è un insieme di dati forniti dall’ambiente esterno a un essere vivente/macchina espressi in


maniera comprensibile in un particolare contesto – riguarda il modo in cui un sistema acquisisce
conoscenza dal mondo esterno.

1. È necessario che il sistema sia in grado di capire il linguaggio in cui l’info viene espressa;
2. È altrettanto importante il contesto (un dato acquista valore solo se posto in relazione ad altre info
che definiscono un determinato ambito).

 L’informatica è una disciplina sia scientifica che tecnologica che riguarda: progettazione,
costruzione, programmazione e utilizzo dei calcolatori elettronici (tecnologia) – in inglese
“computer science” = scienza che usa i calcolatori elettronici // “computing science” = scienza che
fa si che i calcolatori svolgano operazioni di calcolo  i calcolatori hanno permesso l’automazione
di processi per il trattamento dell’informazione  aspetto tecnologico (non è sufficiente)
 È quel settore scientifico disciplinare che si occupa della rappresentazione e dell’elaborazione
dell’informazione  è una SCIENZA che si occupa di costruire modelli per rappresentare aspetti
del mondo reale per poterli poi studiare meglio. Si basa sull’osservazione e formulazione leggi che
descrivono i fenomeni analizzati.
Campo di indagine scientifica: modo in cui l’info può essere rappresentata ed elaborata.

Sono necessari modelli che rappresentino i dati per permettere l’elaborazione dell’informazione.
L’insieme di rappresentazione ed elaborazione è anche detto “trattamento (automatico)
dell’informazione”.
Il rapporto tra informatica e tecnologia è ambivalente: si servono l’una dell’altra.

Lo standard è uno schema o un complesso di norme stabilito da un’autorità o basato su un generale


consenso che definisce un modello o un esempio di riferimento al quale uniformarsi. Nel caso delle
apparecchiature informatiche il problema non coinvolge solo la necessità di alimentarle ma anche di
metterle in comunicazione tra loro (casse, mouse, stampanti) – è necessario uno standard condiviso,
così anche per l’informazione che viene rappresentata all’interno di un calcolatore elettronico.
Lo standard deve tenere in considerazione:
• L’interesse di diversi organismi ad operare in modo che lo standard si diffonda;
• Possibilità che in futuro appaiano nuove esigenze che devono essere gestite.
Per questo gli standard vengono proposti da organismi internazionali di esperti.
1947: viene fondato l’International Organization for Standardization  ISO ente internazionale che si
occupa della standardizzazione. Organizzazione non governativa ONG (100 paesi, per ogni paese
partecipa l’organismo più rappresentativo). Il suo compito è la promozione nel mondo dello sviluppo
della standardizzazione con l’intenzione di facilitare lo scambio nazionale di beni e servizi e la
cooperazione economica, scientifica e tecnologica. Le attività producono accordi pubblicati come
standard internazionali. Anche per l’informazione (info numerica, suoni, immagini etc.) affinché risulti
comprensibile.

Primo passo: introduzione dell’approccio generale e definizione unità di misura.


Il bit (coniato nel 1948) deriva da “binary” e “digit” = cifra binaria: è l’unità elementare di informazione.
• Può assumere solamente due valori, solitamente associati alle cifre 0 e 1 (questi due valori sono
anche associati a “falso e vero”);
• Il bit è alla base di ogni codifica astratta dell’info;
• L’info viene trasformata in una sequenza finita di bit (sequenza finita di valori 0 e 1), questo porta
a 3 implicazioni fondamentali:
1) il calcolatore tratta l’informazione in modo uniforme a prescindere dal reale contenuto
rappresentato  semplificazione dell’elaborazione dell’info.
2) è necessario applicare delle convenzioni per strutturare l’informazione  codice / chiave
interpretativa.
3) la quantità di info che un elaboratore può gestire è limitata  sia la quantità di dati, sia le
semplificazioni da applicare.

La misura dell’informazione
È molto difficile quantificare un concetto astratto come l’informazione. Claude Shannon (padre della
moderna teoria dell’informazione) presentò il nuovo approccio al concetto di informazione (articolo del
1948). A lui si deve la definizione formale di bit: misurare la quantità permette di valutare risultati e
prestazione. La definizione data di bit come unità di informazione assume che l’informazione possa
essere misurata – la quantità di informazione è quindi in qualche modo legata al numero di bit necessari
per la sua rappresentazione. La lunghezza della sequenza è un indice della quantità.

Il byte
Anche in informatica vengono introdotte delle nuove unità di misura che sono basate su multipli di bit, un
multiplo molto usato è quello di 8 bit.
Una sequenza di 8 bit viene definita byte. La posizione di ogni bit all’interno della sequenza è significativa.
In un byte esistono al massimo 28 = 256 sequenze (8 termini che possono assumere solo 2 valori diversi).
I testi vengono rappresentati proprio utilizzando un byte per ogni segno grafico.
• Una successione di 4 bit si chiama nybble;
• Word: indica la dimensione dei dati trattati e dipende dal tipo di calcolatore di riferimento.
Una successione di 2 o 16 byte si chiama word per i piccoli calcolatori, 4 o 32 byte per i grandi calcolatori.
Il byte e il word rappresentano comunque una quantità di info troppo piccola per poter rappresentare le
grandezze utilizzate in informatica per questo sono stati introdotti ulteriori multipli (che vengono calcolati
sulle potenze di 210).
Kilo K Migliaio 2^10
Mega M Milione 2^20
Giga G Miliardo 2^30
Tera T Migliaia di miliardi 2^40
Peta P Milioni di miliardi 2^50
Exa E Miliardi di miliardi 2^60

Il file
Esistono molti casi per i quali è conveniente organizzare informazioni di contenuto simile,
rappresentandole all’interno di una stessa struttura  sequenza di bit. Viene introdotto il file (archivio o
schedario): struttura informativa che contiene un insieme di informazioni omogenee, organizzate in
forma sequenziale e trattate come unità. Il file è quindi un meccanismo di strutturazione delle
informazioni che permette di aggregare informazioni in strutture più complesse – così che esse non
perdano di significato e da poter intervenire sull’insieme di dati. L’organizzazione dei dati e il nome dei
file dipendono da chi li crea – si consiglia di evitare gli spazi o sostituirli con altri caratteri.
N.B.= i file vengono però considerati come formati da byte (unità di misura) e non da bit. Ad ogni file
viene associato il suo nome, il nome è anche il modo in cui il calcolatore elettronico fa riferimento ad
un’aggregazione di dati.

3. Architettura hardware e software


Componenti e caratteristiche dei calcolatori elettronici
I primi calcolatori elettronici sono stati realizzati nella seconda metà degli anni ‘40 del secolo scorso  la
tecnologia si è evoluta, maggiore potenza ma modelli per la realizzazione sono gli stessi.
SCOPO: un utente utilizza un calcolatore per effettuare un determinato compito. Per compito si intende una
qualsiasi attività tendente al conseguimento di un risultato desiderato.

Il concetto di algoritmo e di automa


Quando si richiede di svolgere un compito ad un calcolatore elettronico, è necessario esprimere le
informazioni necessarie allo svolgimento del compito stabilito. L’efficacia dell’operazione dipende dal fatto
che le operazioni vengano svolte correttamente e nel loro giusto ordine (non dalla loro comprensione).
Questo procedimento viene detto algoritmo.
• Algoritmo: un insieme di regole che eseguite secondo un ordine prestabilito, permettono la soluzione
di un problema in un numero finito di passi.
Soluzione di un problema = svolgimento di un determinato compito.
Regole = numero finito di operazioni (o passi)
N.B.= un algoritmo risolve una classe di problemi, non uno solo.

In informatica si presuppone che sia una macchina, l’automa, a mettere in pratica nel giusto ordine e in
maniera automatica le regole che costituiscono l’algoritmo stesso. L’automa deve conoscere il linguaggio in
cui sono descritte le operazioni per interpretarle e svolgerle automaticamente. L’informatica si occupa quindi
non solo di ideare algoritmi ma anche di ideare macchine in grado di interpretarli.

A queste due componenti teoriche (gli automi riconoscono determinati linguaggi e svolgono automaticamente
le operazioni / gli algoritmi servono a risolvere i problemi e svolgere determinati compiti) corrispondono due
componenti reali dei calcolatori elettronici:
1. Software: insieme delle istruzioni e dei programmi utilizzati per determinare le operazioni di un
calcolatore elettronico (tutto ciò che non è fisico ma che ne consente l’effettivo utilizzo – i programmi
che formano il software contengono le sequenze di istruzioni che descrivono come il calcolatore
debba svolgere un determinato compito e come l’informazione va trattata);
2. Hardware: insieme dei dispositivi meccanici, magnetici, elettronici ed ottici che costituiscono un
calcolatore elettronico (tutto ciò che è fisico).

Hardware
1945, John von Neumann schematizzò in un modello astratto, l’architettura e le caratteristiche per una
macchina per il calcolo automatico, cioè del calcolatore moderno. Un calcolatore elettronico può essere
pensato come uno strumento unitario costituito da un insieme di parti interconnesse tra loro:
• Periferiche o dispositivi di input che acquisiscono i dati dall’esterno, normalmente dall’utente (sistema
interfaccia);
• Processore indicato con la sigla CPU che esegue le elaborazioni sui dati, la sigla CPU indica l’elemento
fisico (sistema di elaborazione);
• Memoria principale/centrale che contiene le istruzioni necessarie per il processore per funzionare e i
dati sui quali effettuare le elaborazioni;
• Memoria secondaria/di massa che contiene dati e programmi memorizzati all’interno di file in modo
permanente (info mantenute anche a calcolatore spento);
• Periferiche o dispositivi di output che restituiscono all’esterno i dati elaborati dall’utente (sistema
interfaccia).
Le componenti del calcolatore sono collegate tra loro tramite delle linee di comunicazione chiamate bus,
che consentono il trasferimento dei dati dalla memoria principale al CPU e viceversa: sono delle linee
elettriche nelle quali i bit viaggiano sotto forma di impulsi elettrici.

Il processore: è la componente principale del calcolatore; tutte le operazioni eseguite sono svolte dallo
stesso. Il termine processore indica il componente funzionale all’interno del calcolatore, mentre CPU indica
l’elemento fisico. Il processore è in grado di eseguire delle operazioni elementari:
• Lettura, modifica, cancellazione di dati dalla memoria principale;
• Calcoli aritmetici sui dati;
• Confronto tra valori dei dati o analisi;
• Scelta della prossima operazione in base al risultato.
Il processore accede continuamente alla memoria centrale per le istruzioni e per reperire i dati. Il processore
ha delle zone di memoria interna chiamate registri per memorizzare temporaneamente i dati che sta
elaborando. Il processore implementa un automa e comprende un linguaggio molto semplice che combina le
operazioni elementari.
Le operazioni elementari sono organizzate in programmi che a loro volta implementano un determinato
algoritmo. I programmi vengono scritti utilizzando linguaggi articolati e tradotti automaticamente in assembly
da altri appositi programmi.
Ogni processore ha al suo interno una sorta di orologio che sincronizza le operazioni: clock. Con il termine
frequenza di clock che si misura in Hz, si indica il numero di operazioni elementari che un processore può
svolgere in un secondo (2GHz: due miliardi di operazioni in un secondo).
La potenza di un calcolatore elettronico dipende dal suo processore (più alta è la frequenza di clock più il
calcolatore è potente MA ricorda che incide sulla quantità di operazioni e non sulla qualità di esse). Il dover
dedicare tempo alle singole attività rallenta lo svolgimento dei compiti. Un approccio per aumentare la
potenza consiste nell’installare più di un processore (2 o 4 processori – i compiti vengono automaticamente
suddivisi tra di essi).

Memoria principale: ha un ruolo fondamentale, senza la memoria principale il processore non saprebbe
quali operazioni svolgere, ne avrebbe accesso ai dati. Contiene:
• La sequenza delle istruzioni elementari;
• I dati sui quali vanno fatte le elaborazioni.
Il suo ruolo è quindi quello di contenere le informazioni (bit) necessarie al processore per funzionare – a cui
accede in continuazione per svolgere i compiti per leggerne il contenuto e per modificarlo e salvare i dati
elaborati.
È composta da un numero elevatissimo di celle che contengono i valori del bit. Ognuna di queste celle da un
byte viene identificata in modo univoco grazie al suo indirizzo (rappresentato da un n. intero).
La memoria principale è denominata dalla sigla RAM (memoria ad accesso casuale, ossia il processore
può accedere in qualsiasi momento in qualsiasi cella – per questo motivo deve essere molto veloce).
La dimensione della memoria centrale coincide con il numero di celle che la costituiscono, e si calcola in
byte (misurate in gigabyte). Il costo dipende anche dalla sua dimensione.
Una caratteristica del RAM è che il suo contenuto è volatile: non viene mantenuto quando il calcolatore è
spento. Per questo esistono memorie di sola lettura (quindi non modificabili) chiamate ROM che hanno la
caratteristica di mantenere le info anche a calcolatore spento. Il contenuto viene stabilito dal costruttore, che
scrive il valore del byte contenuto in ogni singola cella. Il ROM contiene delle istruzioni principali dalle quali il
processore inizia a lavorare  dati che non verranno persi o modificati nel tempo: utile quando il calcolatore
viene acceso.

Memoria secondaria (o di massa): il compito della memoria secondaria è quello di mantenere


la memorizzazione dei dati anche a calcolatore spento. Anche questa rappresenta l’informazione sotto forma
di bit ed è in grado di contenere sia dati che programmi.
I dati sono organizzati all’interno di file quindi le operazioni di accesso alla memoria secondaria sono
operazioni di lettura e scrittura di file.
Ciò che differenzia la memoria secondaria dalla primaria è il supporto fisico. Per la secondaria ci sono
diversi tipi di dispositivo:
• Floppy disk: dischi di ridotte dimensioni (da 1 a 4 MB);
• Hard disk: dischi magnetici di dimensioni elevate (centinaia di GB). Venivano installati all’interno del
calcolatore senza poter essere rimossi, per questo vengono chiamati dischi fissi/rigidi; ora sono
disponibili anche come periferiche esterne;
• Pen drive: supporti rimovibili di ridotte dimensioni (alcuni GB). Si connettono tramite porta USB, per
questo vengono detti penne USB o USB stick. Questi dispositivi si basano su un tipo di tecnologia di
memorizzazione chiamata memoria flash che garantisce che i dati vengano mantenuti anche in
assenza di alimentazione esterna;
• CD-ROM: (650 MB) dischi ottici di sola lettura, prima la scrittura (masterizzazione) era possibile una
volta sola, ora riscrivibili;
• DVD-ROM: dischi ottici, il principio di funzionamento è lo stesso del CD ma capacità maggiore (da 4,7
a 17 GB)
• Nastri magnetici: principio simile a quello delle videocassette. La quantità di dati memorizzati dipende
dalla lunghezza del nastro (tempi estremamente lenti – bisogna svolgere il nastro fino al punto
desiderato). Vengono utilizzati per effettuare backup – salvataggi periodici dei dati.
Sono tutte molto più lente della RAM i dati e i programmi memorizzati in memoria secondaria devono essere
quindi trasferiti in memoria centrale per poter essere utilizzati dal processore – il costo però è inferiore.
Quando si fa riferimento alla memoria secondaria si parla di hard disk.
L’hard disk viene anche utilizzato per compensare le dimensioni ridotte della memoria principale  SWAP:
azione di passaggio (scambio o inversione) dei dati dalla memoria centrale a quella secondaria, perché è
possibile elaborare più informazione di quella che potrebbe essere contenuta nella RAM. Le dimensioni
dell’hard disk influenzano solo marginalmente le prestazioni del calcolatore. Ciò che è rilevante è la velocità
di accesso ai dati (tempo che intercorre tra la richiesta di un determinato file e il momento in cui i dati sono
caricati in memoria centrale per essere letti – avvio di un programma), che dipende dalla velocità di rotazione
dei dischi magnetici e determina il costo dell’hard disk.

Le periferiche: Il calcolatore deve essere in grado di ricevere i dati dall’utente e quindi di essere munito di
periferiche di ingresso (periferiche di input: forniscono dati – tastiera e mouse) e di uscita (periferiche di output
– monitor e stampante). Il loro compito è quello di trasformare l’informazione da una forma comprensibile per
il calcolatore ad una forma comprensibile per l’utente (tasti, suoni, numeri etc.).

La comunicazione tra processore e periferiche è asincrona, ovvero il processore e le periferiche non sono
sincronizzati quando inviano e ricevono dati. Inoltre hanno velocità diverse nella produzione e nell’utilizzo dei
dati. Queste due caratteristiche possono creare problemi di funzionamento e rallentare il sistema.
È necessario organizzare meglio le cose  un elemento intermedio tra il processore e le periferiche è la
memoria buffer (memoria tampone o cuscinetto): con una frequenza predeterminata il processore legge la
memoria buffer, questo permette al processore di non restare in costante attesa di dati dalle periferiche (sia
input, sia output – risolve il problema dell’asincronia e delle velocità diverse).
È possibile che al momento della progettazione di un calcolatore non siano disponibili tutte le info possibili
sulle periferiche (perché queste ultime possono essere prodotte da ditte diverse o entrare in commercio in
un momento successivo = per questo tutte le periferiche vengono vendute corredate di file che contengono
info per il processore su come avverrà la comunicazione – i file si chiamano driver).
In alcuni casi le periferiche (come la tastiera e il mouse) si adeguano ad uno standard quindi il processore
potrà fare riferimento ai driver generici.
Plug and Play (PnP) “connetti e gioca”: periferiche che al momento della prima connessione con un sistema
comunicano direttamente al processore le info necessarie per la corretta comunicazione – fornisce il driver
senza bisogno di supporti esterni.

Software
L’insieme dei programmi che vengono eseguiti da un calcolatore e necessari per il suo
funzionamento. Senza il software un calcolatore non potrebbe essere usato.
Tipologie: monoutente (un solo utente alla volta può accedere alle informazioni) o multiutente
(informazioni disponibili per più utenti).
Software di base: insieme di programmi di cui deve essere dotato un calcolatore per poter essere utilizzabile
– insieme di programmi che l’utente dovrebbe trovare già installati.
Opera direttamente con la macchina fisica, interagisce con i dispositivi del calcolatore e nasconde le
complessità di funzionamento; una componente essenziale è il sistema operativo (insieme di programmi che
gestiscono e mettono a disposizione dell’utente le memorie e le diverse periferiche del calcolatore) –
Windows della Microsoft e Linux per il personal computer – MAC OS della Apple – Unix per i calcolatori di
grandi dimensioni. I calcolatori sono venduti già muniti di sistema operativo.

Funzioni svolte dal sistema operativo:


1. Controllare e sincronizzare le applicazioni (che sono in funzione – o girano – contemporaneamente);
2. Gestire la memoria principale e la sua comunicazione col processore (la loro interazione ottimale);
3. Gestire tutti i tipi di periferiche (anche contemporaneamente);
4. Gestire i dati in memoria di massa;
5. Intrepretare le istruzioni che giungono dall’utente (decodifica delle informazioni utente)

Complessità molto elevata – per questo c’è un numero limitato di sistemi operativi. Per rendere trattabile la
complessità è necessario suddividere il problema in una serie di problemi più piccoli e quindi più semplici.
Questo approccio viene seguito anche nella progettazione e realizzazione dei sistemi operativi, applicando il
concetto di macchina virtuale  racchiude le funzionalità iniziali dell’hardware e quelle aggiuntive del
software. I sistemi operativi hanno una struttura a strati (onion skin) progettati indipendentemente,
realizzando ogni volta una nuova macchina virtuale che serve per gli strati superiori.

L’interprete dei comandi e l’interfaccia utente


L’interprete dei comandi ha la funzione di tradurre le intenzioni dell’utente in operazioni svolte dal
processore. Comandi = ogni operazione svolta dall’utente. Viene spesso associato all’interfaccia utente
(programma complesso che fornisce all’utente un ambiente virtuale sul quale agire e con il quale avere
un’interazione con il calcolatore)  tiene traccia delle operazioni, le traduce e mostra i risultati.

Gli utenti esperti fanno spesso uso di una interfaccia a caratteri attraverso la quale interagiscono direttamente
con il sistema operativo (interfaccia a linea di comando).

La maggior parte degli utenti utilizza invece delle interfacce utente grafiche (GUI – Graphical User Interface)
che rendono più semplice e interessante l’interazione con il sistema informatico, in quanto forniscono agli
utenti un contesto nel quale i dati acquistano significato – avviene tipicamente con il mouse.
Uno dei compiti dell’interfaccia è quello di fornire un contesto nel quale i dati assumono un significato.

Il file system
Un altro strato del sistema con cui l’utente interagisce è il sistema di gestione file o file system. Questo strato
ha il compito di gestire i file (un file è una sequenza di bit che deve essere memorizzata a lungo termine nella
memoria secondaria, recuperata su richiesta dell’utente e caricata in memoria centrale per essere eseguita).
È necessario che il file system identifichi in modo univoco ogni singolo file, in modo che sia sempre chiaro a
quale file l’utente si sta riferendo. Il suo compiti viene svolo in modo totalmente trasparente.
Meccanismo virtuale di organizzazione file: si realizzano dei contenitori virtuali chiamati directory (cartelle –
folder) = struttura gestita dal file system che contenere file o altre directory (subdirectory) e che può essere
vuota. C’è una sola directory che non viene contenuta in nessun’altra e viene chiamata radice/root. N.B. 1)
ogni directory non può contenere due oggetti con lo stesso nome;
2) non esistono due oggetti con lo stesso pathname (percorso necessario per raggiungere il file
partendo dalla radice).

Software applicativo: programmi che utilizzano le funzionalità dei software di base e consentono all’utente
di svolgere specifiche attività – programmi che l’utente deve aggiungere. Questi programmi specializzano un
sistema informatico affinché possa risolvere particolari problemi degli utenti.
Tutti i programmi applicativi si basano sulle funzionalità del sistema operativo per operare. Tutti i sistemi
operativi sono già corredati di un numero di programmi applicativi che contribuiscono al costo complessivo
del sistema operativo  si possono installare programmi con funzionalità più specifiche = plug-in.
Plug-in: software che viene innestato in un programma applicativo già installato per svolgere compiti
aggiuntivi (per trattare formati aggiuntivi, visualizzare informazioni in modo più efficiente).
Installazione dei programmi applicativi: operazione complessa
1. Creazione di una o più directory nell’hard disk del sistema (in una posizione indicata dall’utente –
servono ad organizzare le informazioni);
2. Copia dei file all’interno delle directory (i file contengono le istruzioni per il processore, ma anche
informazioni supplementari);
3. Notifica al sistema operativo della presenza di una nuova app;
4. Creazione di una o più icone associate all’applicazione.

L’installazione di un programma applicativo viene semplificata da un programma denominato wizard, che


guida l’utente lungo i vari passi dell’installazione tramite una serie di schermate guida.
Normalmente i wizard consentono tre tipologie di installazione:
1) base (per l’utente medio);
2) completa (installa tutte le componenti e richiede maggior spazio);
3) personalizzata (consente all’utente di scegliere quali componenti installare).
È consigliata l’installazione personalizzata, così da ottimizzare lo spazio sulla memoria e avere maggiore
controllo.

Esecuzione dei programmi applicativi: le applicazioni vengono eseguite su esplicita richiesta dell’utente. Nei
sistemi grafici la richiesta dell’utente può essere esplicita o implicita, mentre nei sistemi ad interazione
testuale la richiesta è sempre esplicita. In ogni caso la richiesta corrisponde ad alcune operazioni:
 Reperisce il file contenente le istruzioni per il processore (lo prende dalla memoria di massa);
 Trasferisce il file in memoria centrale;
 Inizia ad eseguire le istruzioni contenute nei file.
N.B.= tutte queste operazioni sono svolte dal processore. Inoltre, l’utente non può sapere l’effetto delle
istruzioni sul funzionamento del sistema stesso (mai installare cose di cui non si è sicuri, potrebbero essere
virus o malware).

Disinstallazione di programmi applicativi


Procedimento utile per liberare spazio da applicazioni che non interessano più o che precludono il buon
funzionamento di altri software.
L’operazione di disinstallazione è in molti casi più complicata di quella di installazione  la semplice
cancellazione dei file e delle directory associati al programma applicativo non è infatti sufficiente (per molti
programmatori è conveniente che sia più complicato, così che sia più probabile che l’utente torni ad usare
quell’applicazione).
La disinstallazione deve procedere effettuando in ordine inverso tutti i passi svolti durante l’installazione.
Anche qui alcune applicazioni forniscono un wizard che prima di cancellare dalla memoria di massa i file
dell’applicazione, rimuove anche i file di utilità e notifica al sistema operativo che l’app verrà rimossa;
esistono dei programmi applicativi appositamente creati per la disinstallazione.

Termini che si riferiscono alle caratteristiche dei programmi applicativi:


• Shareware: programmi distribuiti gratuitamente in versione dimostrativa, utilizzabili per un determinato
periodo di prova oppure con un numero ridotto di funzionalità (scelta di marketing – gli utenti finiranno
per acquistare il pacchetto a pagamento);
• Demoware: tipologia di programmi shareware per cui il numero di funzionalità a disposizione è così
limitato da servire all’utente solo per farsi un’idea (spesso distribuiti in CD-ROM o nelle pagine web);
• Freeware: programmi assolutamente gratuiti per cui non c’è un periodo di prova (sempre scelta di
marketing per attirare l’attenzione);
• Adware: programmi freeware che contengono messaggi pubblicitari;
• Malware: malicious ware  programmi con scopi malevoli che creano danni agli utenti e vengono definiti
come virus nel linguaggio comune;
• Spyware: programmi il cui scopo è spiare i dati privati dell’utente per fare spionaggio commerciale,
utilizzare l’identità dell’utente o svolgere operazioni illecite.
Altri termini sono shoveware (massa di programmi inutili distribuita tramite CD-ROM allegati a riviste di
informatica), vaporware (programmi che non svolgono in realtà le funzioni decantate dalla ditta che li
commercializza); middleware (programmi appositamente scritti per consentire a diverse componenti
software di comunicare tra loro. Ogni volta che due diversi sistemi informativi interagiscono è necessario
scrivere dei programmi aggiuntivi che traducano i diversi modi di rappresentazione elle informazioni,
funzionalità e servizi). Tutti questi -ware tendono ad essere interconnessi tra di loro (es. sono contenuti l’uno
nell’altro). Attenzione: shareware e freeware non sono sinonimi

Il software “open source”


Il software open source è un fenomeno in continua espansione. Abbiamo detto che il software è la
realizzazione pratica di un algoritmo che permette di risolvere un determinato problema, è la trascrizione
degli algoritmi che permettono di realizzare il sistema operativo e i programmi applicativi in una serie di
operazioni elementari comprensibili dal processore. L’insieme di queste istruzioni (e il modo in cui vengono
combinate) è detto linguaggio macchina, inutilizzabile/incomprensibile per gli esseri umani (perché troppo
elementare  molto vicini all’architettura fisica del calcolatore e lontano dal modo di pensare delle persone).
Per sviluppare i software i programmatori utilizzano dei linguaggi più vicini al nostro modo di ragionare, definiti
linguaggi ad alto livello. Per ogni linguaggio esiste una procedura automatica che effettua la traduzione da
alto a basso livello. Il programma ad alto livello risulta il “sorgente” (source), da cui si ottiene un “programma
eseguibile” (incomprensibile).
Una ditta di software ha interesse a non dare accesso ai sorgenti dei propri programmi, altrimenti la
concorrenza avrebbe accesso a tutti gli algoritmi (è interesse del programmatore non perdere la proprietà del
proprio lavoro).
Tuttavia ci sono molti programmatori che sono disposti a lasciare libero accesso ai sorgenti filosofia open
source, permette ad altri programmatori di accedere ed eventualmente utilizzarli per modificarli in modo da
poter collaborare (in base alle esigenze o per correggere errori).
I motivi per cui un software open source possa risultare di interesse anche per l’utente finale sono:
1. Sicurezza: si può leggere in chiarezza cosa siano e ridurre la circolazione di malware;
1. Affidabilità: è difficile che vi siano degli errori perché viene letto e testato da molte persone;
2. Costo: generalmente sono gratuiti (il costo è per il programmatore che lo adatta o personalizza);
3. Indipendenza: l’utente non è obbligato a servirsi sempre della stessa ditta perché l’open source può
essere modificato anche da altri programmatori;
4. Personalizzazione. Il programma può essere personalizzato anche da singoli programmatori.
L’open source rappresenta tuttavia ancora una nicchia (Linux è open source). I limiti:
 Gratuito: nessuno investe soldi in campagne pubblicitarie per un prodotto che non può vendere;
 Copie pirata di software non open source: utenti finali poco sensibili alla differenza tra software
gratuito e software illegale;
 Si presentano come più spartani e di difficile utilizzo perché gli aspetti di interfaccia vengono
poco curati.
È un mondo in continua espansione, promosso da università e centri di ricerca.

4. Codifica dell’informazione
L’informazione può avere forme diverse e quindi dev’essere rappresentata affinché il calcolatore possa
trattarla = codifica.
Codifica = rappresentazione dell’informazione.
Codifica di grandezze numeriche
Il caso più semplice di rappresentazione riguarda la codifica dei dati quantitativi di alcune grandezze, ovvero
il loro valore numerico. I numeri sono stati i primi ad avere una rappresentazione in informatica. Il termine
digitale indica la tecnologia alla base del funzionamento delle apparecchiature, dette anche apparecchiature
numeriche. Si ha una rappresentazione digitale quando si definisce l’informazione in termini numerici.
Le apparecchiature non digitali sono dette analogiche: si ha una rappresentazione analogica quando si
definisce l’informazione per comparazione di grandezze. Il termine deriva dal concetto di analogia tra
l’andamento di grandezze fisiche.
I numeri che si possono rappresentare all’interno di un calcolatore si riducono in due classi: numeri interi e
numeri con virgola.

Codifica di numeri interi


Notazione posizionale: un qualsiasi numero può essere rappresentato combinando tra loro un numero
prefissato e finito di cifre diverse; il contributo alla rappresentazione del numero da parte di ogni cifra dipende
non solo dal valore ma anche dalla sua posizione all’interno della notazione posizionale.
Si prende ad esempio la notazione decimale – in base 10: utilizza le cifre tra 0 e 9. Ogni posizione a sinistra
delle unità è associata ad una potenza crescente del numero 10.
Operazioni per calcolare il valore di un numero:
ogni cifra viene moltiplicata per la potenza di 10 associata alla sua posizione.
I risultati di tutte queste moltiplicazioni vengono sommati tra loro, ottenendo il valore effettivo del numero.
327 7 x 10^0 + 2 x 10^1 + 3 x 10^2 = 7+20+300 = 327
Cifre: numeri arabi  prima: numeri romani.
Notazione binaria (in base 2): così come la notazione decimale si basa su dieci cifre da 0 a 9, la notazione
binaria si basa sulle due cifre 0 e 1 (le uniche due cifre rappresentabili con un bit).
Tutti i numeri binari con più di due cifre saranno seguiti dal pedice 2 per non confondersi con i numeri
decimali, ogni cifra verrà moltiplicata per 2 con la sua potenza partendo da dx. 101 1 x 2^0 + 0 x 2^1 + 1 x
2^2 = 1+0+4= 5 N.B.= ogni numero elevato alla 0 fa 1. Essi assumono un significato diverso a seconda della
loro posizione e il loro valore è associato ad un elevamento a potenza il cui esponente cresce ma mano che
ci si sposta verso sinistra. Anche in questo caso i risultati vengono sommati ottenendo il valore.
Svantaggio: poco leggibile dagli utenti, i numeri necessitano di molte più cifre.

È possibile trasformare una cifra binaria in decimale, mentre il procedimento inverso è molto più complicato.

Codifica di sequenze di numeri interi


Grazie alla notazione binaria è possibile rappresentare un qualsiasi numero intero di grandezza finita tramite
una sequenza di bit di opportuna lunghezza. Utilizzare un unico numero è poco utile: si utilizzano sequenze,
con all’undicesimo posto un simbolo che funge da separatore (spazi, virgole, trattini, ecc.). Questo non è
possibile per il sistema binario che prevede solo due simboli (0 e 1).

Per risalire al contenuto informativo di una sequenza di bit associata ad una serie di numeri è necessario
conoscere il modo in cui questi sono stati codificati.
È tuttavia necessario (e molto utile) introdurre degli standard per la codifica dei numeri, ovvero dei formati
che siano universalmente riconosciuti e applicati per rappresentare le grandezze numeriche.

Quella più semplice per i numeri interi consiste nell’assegnare ad ogni numero una sequenza di bit di
lunghezza costante – in questo modo non sono necessari dei separatori (è noto a quale numero appartiene
ciascun bit e la posizione di ogni bit) MA ci sono dei limiti:
• Non è possibile rappresentare numeri di valore troppo elevato;
• A molti numeri viene associato un numero di bit superiore al necessario, sprecando così risorse.
Un buon compromesso è stato quello di utilizzare sequenze di 8 bit (ossia un byte). Con un byte sono
rappresentabili in un intervallo di 256 valori.

Codifica di numeri interi con segno


Il segno di un numero costituisce un’informazione che, per essere rappresentata, necessita di un solo bit
aggiuntivo. Infatti il segno può assumere solamente due valori (positivo e negativo) che possono essere
appunto rappresentati da un singolo bit. Se si usa una codifica con sequenze di lunghezza fissa, il bit che
rappresenta il segno influisce sulla più alta quantità rappresentabile.

Codifica di informazione testuale


La codifica testuale ha rapidamente seguito la codifica di grandezze numeriche.
Per decenni l’unico tipo di interazione consentito con il calcolatore è stato di tipo testuale – comunicazione
solo tramite tastiera e viceversa solo tramite stampante e poi video. Solo successivamente si sviluppò
l’interfaccia grafica come metodo di interazione.
Nell’informazione testuale si distingue tra:
• Contenuto: è dato dalla successione di parole che costituiscono un documento e che rappresentano i
concetti e la semantica espressi dal documento stesso (alfabeto finito di simboli noti a priori);
• Formato: indica il modo in cui le parole sono organizzate e rappresentate graficamente (dimensione,
forma, colore, carattere, posizionamento), sono info accessorie che possono aumentare la leggibilità del
documento ma non alterano il contenuto semantico.
Testo = successione di parole, delimitate da spazi o segni di interpunzione  natura lineare
dell’informazione.

Caratteri alfanumerici: lettere dell’alfabeto inglese (26 maiuscole e 26 minuscole), spazio che separa le
parole, 10 cifre di notazione decimale, segni di interpunzione e di delimitazione, operatori aritmetici, alcuni
segni specifici.
A questi si aggiungono i caratteri speciali (vocali accentati, umlaut, cediglia, ecc.).

Codifica di sequenze caratteri


Alla base vi è l’assunzione che i caratteri appartengano all’alfabeto (insieme finito noto a priori). L’approccio
più semplice alla codifica dei caratteri consiste nell’associare ad ogni carattere un numero intero e poi
utilizzare la codifica dei numeri interi per la loro rappresentazione (numerare tutti i simboli e associare ad
ognuno un numero crescente)
Si deve utilizzare un numero prefissato di bit per poter riconoscere un numero dal successivo. Il numero di
bit da dedicare dipende dal numero dei caratteri che costituiscono l’alfabeto.
N.B.= è possibile che alcuni bit vengano sprecati (se ho 5 simboli da rappresentare, avrò bisogno di tre cifre,
tuttavia con tre cifre ho 8 combinazioni quindi tre verranno sprecati).

Standard per la codifica del testo


Per i testi non si può fare affidamento su di un ordinamento naturale. In generale l’associazione tra simbolo
e codice, ovvero tra un carattere e la sequenza di bit che lo rappresenta, è arbitraria. Vi sono delle linee
generali e si devono mantenere i possibili ordinamenti già presenti nell’alfabeto.

L’informazione deve essere condivisa da tutti gli utenti e i sistemi che accedono ai dati testuali codificati non
esiste un modo naturale ed universalmente accettato per associare un simbolo ad un particolare codice
binario. Sono quindi necessari degli standard di codifica che fungono da modelli di riferimento e consentano
lo scambio di informazioni senza incorrere in errori di interpretazione.

Lo standard ASCII (American Standard Code for Information Interchange) proposto nel 1963
dall’ANSI (American National Standard Institute).
È stato creato per rappresentare l’alfabeto inglese: non comprende le vocali accentate né alcune lettere
dell’alfabeto francese, spagnolo, tedesco.
La prima versione prevedeva l’uso di 7 bit per la codifica del testo, con i quali sono rappresentabili 128 simboli
diversi – numeri da 0 a 127 (scelti per evitare di sprecare bit). Sono compresi tutti i caratteri alfanumerici +
alcuni codici per il controllo delle stampanti e l’impaginazione del documento.
La diffusione dello standard ha spinto l’ISO ha recepire la codifica a 7 bi come standard internazionale (codice
ISO646-1973  più brevemente ISO-7).

Lo standard ASCII esteso ha permesso di aumentare il numero dei simboli rappresentabili (necessità di
includere anche i caratteri speciali). Vengono usati 8 bit (1 byte) che permettono di rappresentare 256 simboli
suddivisi in due gruppi (per evitare problemi di compatibilità): i primi 128 sono identici all’ASCII a 7 bit; i
successivi 128 sono dedicati ai simboli addizionali.
Compatibilità all’indietro: ASCII a 8 bit può decodificare un testo ASCII a 7 bit, ma non è detto che possa
sempre avvenire il contrario.
Esistono diverse estensioni dell’ASCII a 8 bit a cui corrispondono diversi standard recepiti dall’ISO che fanno
parte della serie ISO-8859 (si differenziano per i simboli rappresentati)  consentono un’adeguata
rappresentazione di ogni singola lingua. MA inadeguato per quelle lingue che non si basano su di un alfabeto
(es. cinese o giapponese) + è di difficile estensione (non si può andare oltre i 256 caratteri).

Lo standard Unicode (nome del consorzio che lo ha proposto – collabora con l’ISO) fornisce un numero
unico ad ogni carattere e ad ogni simbolo, indipendentemente dal sistema informatico, indipendentemente
dall’applicazione, indipendentemente dalla lingua. Il progetto parte dal presupposto di rappresentare in
maniera univoca ogni possibile simbolo. Il numero totale dei simboli delle lingue parlate è molto elevato,
perché è necessario considerare tutte le varianti grafiche  il numero di codici necessari è elevatissimo e in
continua crescita (continua ad arrivare richieste per nuovi caratteri).
È una codifica a 16 bit (65536 simboli) – i primi 128 sono gli stessi di ISO-7. Questa versione è stata estesa
a 32 bit (più di 4 miliardi di simboli differenti). Dato che questi equivalgono a 4 byte, il testo richiederà il
quadruplo dello spazio. Per questo motivo non ci si riferisce a tutti e 32 i simboli ma a dei sottoinsiemi.
La rappresentazione del formato dei documenti testuali
Gli standard riguardano principalmente il contenuto, tralasciando il formato (che oggi sta assumendo sempre
più importanza – migliora la leggibilità e rende il testo più attraente e accattivante).

Livelli di strutturazione del testo: informazioni che definiscono il modo in cui il documento viene presentato
(documento completo o alcune sue parti/livelli).
4 livelli:
- Carattere: livello più basso (testo = successione i caratteri)  il formato indica come vengono
presentati (font, dimensione, corsivo, ecc.)
- Capoverso (paragraph): serie di parole che formano una parte coerente che tratta un concetto. È
indicato graficamente andando a capo o iniziando la riga un po’ più a destra. MA non è un paragrafo
(= suddivisione in parti di un capitolo)  modo in cui le linee dei capoversi sono presentate (interlinea,
allineamento, ecc.)
- Sezione: capitolo, paragrafo o sotto paragrafo in cui i capoversi sono organizzati  colonne, titoli,
numerazione pagine, ecc.
- Documento: livello più alto  dimensione spazio di stampa, intestazioni, orientamento, ecc.

Il formato può riguardare una parte o tutte e i livelli inferiori generalmente prendono quello del livello
superiore.

Approcci alla rappresentazione del formato


Diffusione di programmi o sistemi di videoscrittura (word processing), utili per scrivere, organizzare e
impaginare i documenti. Es. Microsoft Word.
Ogni sistema di videoscrittura codifica il formato in modo diverso e spesso tale codifica non viene resa nota
(formati proprietari).
Ci sono comunque 2 approcci:
1. What you see is what you get – il modo in cui viene codificato è nascosto e l’utente vede solo il risultato.
Le modifiche riguardano la visualizzazione e la stampa. Può essere usato un qualsiasi approccio. Molto
intuitivo ma proprietario: può essere scambiato solo tra utenti che usano lo stesso sistema.
2. Markup language – linguaggio basato su istruzioni che segnano o marcano le parti del testo.
L’informazione sul formato è espressamente indicata all’interno del testo. Usa il linguaggio HTML.

Problemi nella standardizzazione dei formati


Mancata standardizzazione:
- Motivi di carattere economico. È nell’interesse di chi crea questi sistemi di videoscrittura che essi
diventino standard de facto (anche se non ufficialmente) e quindi adottati dalla maggior parte degli utenti.
- Evoluzione tecnologica che rende i sistemi obsoleti in breve tempo.

Informazione non simbolica


L’informazione non simbolica non rende in mondo uguale se rappresentata tramite simboli perché è legata
alla percezione e all’interpretazione (soggettiva) – suoni, immagini.

Campionamento: suddivisione in parti più piccole (rappresentanti) nel tempo o nello spazio, per rendere i
risultati più attendibili (si presume non vi siano brusche variazioni). La densità dei campioni è detta frequenza
di campionamento – alta frequenza: campioni più fitti. Utilizzato per le analisi statistiche. In informatica è
usato per rappresentare l’informazione presente nel mondo reale.

Quantizzazione: arrotondamento di un valore ad un multiplo dell’unità di riferimento (facendo riferimento ad


una scala di grandezze). Il quanto indica il valore minimo, definito e indivisibile, di una grandezza fisica che
può variare solo per multipli di tale valore. In informatica è usato per rappresentare l’informazione presente
nel mondo reale  rappresenta i valori con numeri limitati di bit.
Rappresentazione di suoni
Primi esempi: 1955, ma per molto tempo solo esperimenti isolati. Prima codifica vera: 1962.
Fisica acustica: suoni prodotti con oscillazioni  si propagano nell’aria = onde acustiche  spostamenti o
deformazioni (l’oggetto o corpo elastico si deforma ogni volta). Per rappresentarlo quindi devono essere
rappresentate le oscillazioni.
Campionamento e quantizzazione dei suoni: i suoni variano nel tempo quindi devono essere campionati, in
modo fitto così che la codifica sia vicina al fenomeno reale. La frequenza di campionamento è misurata in
numero di campioni al secondo (unità di misura: Hertz) – essendo le oscillazioni molto veloci, la frequenza è
espressa in kilohertz. Una volta stabilita la frequenza il suono va quantizzato. La scelta di quanti bit usare
incide sulla qualità acustica. Oggi si tende ad usare quella a 16 bit.
Rappresentazione di immagini
Sviluppo rapidissimo. Primi esperimenti: 1956. “Computer graphics”: 1960. Primo film di animazione con
calcolatore: 1961.
Ottica e percezione visiva: luce composta da colori – percezione dipende dalla combinazione di tali colori.
Gli oggetti riflettono solo alcuni colori (ciò che noi percepiamo). La luce si propaga nell’aria e raggiunge la
pupilla. L’occhio tramite i bastoncelli registra come la luminosità è distribuita lungo la superficie dell’immagine
proiettata dalla retina; tramite i coni scompone la luce nelle tre componenti fondamentali (rosso, verde e blu).
Per rappresentare un’immagine si deve rappresentare il modo in cui luminosità e colori sono distribuiti lungo
una superficie.
Campionamento e quantizzazione delle immagini: luminosità e colori variano lungo le superfici in modo
continuo, quindi vanno campionati. L’immagine viene scomposta in tasselli: pixel (elementi dell’immagine,
detti anche punti). La frequenza del campionamento è misurata in numero di punti per unità lineare di
lunghezza – si misura in dots per inch (dpi – punti per pollice). Una volta deciso quanto questi pixel debbano
essere fitti, si passa alla quantizzazione (scelta dei bit).
Bianco e nero: un bit per pixel. Toni di grigio: numero maggiore di bit. Buon compromesso: un byte per ogni
pixel.
Colori: per ogni pixel si determina il colore da associare  tavolozza di riferimento (o palette) con un numero
fisso di colori associati a codici. Un altro approccio parte dalla suddivisione in Red, Green e Blue (3 pixel), a
cui poi vengono associati altri bit per determinare la quantizzazione e il numero di colori rappresentabili.
Il digitale sta rapidamente sostituendo l’analogico. Limite del digitale: l’informazione va campionata e
quantizzata  deterioramento della qualità. MA più indicato se si vuole qualità nel lungo periodo.
Nell’analogico la qualità tende ad essere migliore, ma comunque dipende a sua volta dalla qualità del
supporto  si può deteriorare nel tempo. MA più indicato se non si vogliono le approssimazioni dovute a
campionamento e quantizzazione.
Comprensione dell’informazione
Data una sequenza di bit che rappresenta una data informazione, le tecniche di comprensione consentono
di ottenere una sequenza di bit di dimensioni minori e inerente alla stessa informazione.
Vantaggi del comprimere l’informazione:
1) L’informazione occupa meno spazio
2) Viene trasferita più rapidamente
3) La sua elaborazione è più veloce.

5. Internet e web
Inserimento del calcolatore in una rete globale. Una rete di calcolatori elettronici è un insieme di calcolatori
elettronici automatici interconnessi fra loro in grado di scambiare informazioni rappresentate in forma digitale
 tramite lo scambio di flussi di dati in forma binaria.
La connessione può basarsi su cavi, fibra ottica, ponti radio, trasmissione satellitare.
La velocità di trasmissione si misura in bit al secondo (bps = bit per second). I dati vengono trasmessi raccolti
in pacchetti (sottoinsieme logici). Lo scambio tra calcolatori può avvenire se almeno uno dei due ha i
programmi adibiti alla condivisione di file, su richiesta e previa autenticazione  è detto calcolatore servente
(file server o solo server).

Modello cliente servente: quando almeno un calcolatore della rete può svolgere la funzione servente, gli altri
lo possono usare per acquisire file, ognuno in qualità di cliente (o client)  client server model.
Il server contiene file che vengono usati in modo condiviso da più utenti (pochi server, tanti client). Se vi è
un solo server, nel momento in cui si guasta, tutta la rete è inutilizzabile. È comunque possibile aggiungere
nel tempo più serventi  scalabilità della rete.

Architettura peer to peer: architettura dove tutti i calcolatori possono fornire servizi, comportandosi quindi
come server, e al tempo stesso richiedere servizi, comportandosi quindi da client, ad altri calcolatori  “peer”
significa in pari, si tratta di un’architettura da pari a pari. Non è una struttura centralizzata, i singoli possono
connettersi / disconnettersi – molto dinamica (numero variabile di utenti, file disponibili, file che non lo sono
più, ecc.).
File sharing = possibilità di scambiare file tra calcolatori.

Caratteristiche fisiche delle reti di trasmissioni di dati: vengono classificate in base alla tecnologia di
trasmissione dati e in base alle loro dimensioni o distanza tra i diversi calcolatori.
- LAN (local area network): rete di dimensioni contenute – limitata o locale, al massimo alcuni chilometri
(di solito usata negli edifici).
- MAN (metropolitan area network): rete più ampia, può coprire diversi edifici o una città.
- WAN (wide area network): può coprire una nazione o un continente. Calcolatori detti “hosts” che
eseguono programmi di interesse per gli utenti, sono collegati da sottoreti in cui sono inseriti apparecchi
adibite allo scambio di dati (router p packet switsching node).
- Wireless network: tecnologia che non richiede fili (il nome non fa riferimento alle dimensioni ma alla
tecnologia)
Nel tempo sono state inserite reti diverse, con la possibilità di connettere reti di diverso tipo tramite gateway
o porte. L’interconnessione è detta internetworking e un insieme di reti è detto internetwork o internet.
Internet con la I maiuscola indica una specifica ree di interconnessione mondiale di università,
organizzazione governative e private sviluppata a partire dalla rete ARPANET.

Il software delle reti di trasmissione dati: le reti si basano su software che rendono possibile lo scambio di
dati (separano e suddividono in pacchetti i dati, ricevono, ricompongono). Il software di rete è strutturato in
strati o livelli, il cui scopo è quello di essere specializzato per offrire servizi specifici al livello superiore. Ogni
strato parla con il livello corrispondente del software del calcolatore con cui si comunica: è necessario un
protocollo (insieme di regole e convenzioni che devono essere state concordate precedentemente per
capirsi). Se le regole vengono infrante la trasmissione diventa difficile o impossibile.
La struttura del software è decisa dai progettisti. Un insieme di livelli e protocolli costituisce un’architettura di
rete.
Modello di riferimento TCP/IP: nuova architettura adottata come modello. TCP – protocollo di trasferimento
dati (transfer control protocol), IP – protocollo che definisce il formato ufficiale del pacchetto dati da
trasmettere e le indicazioni di indirizzamento (internet protocol). Ha 4 livelli: applicazione (protocollo
applicativo), trasporto (protocollo TCP), rete (protocollo IP), Host-Rete (Protocollo Host-Rete).
All’utente interessa il livello più lontano dal mezzo fisico perché è dove operano i software applicativi che
permettono lo scambio di informazioni.

WEB – WORLD WIDE WEB: insieme di strumenti che permette di accedere a documenti collegati fra loro
ma distribuiti sulle migliaia di calcolatori che attualmente sono inseriti nella rete Internet. Progetto avviato al
CERN nel 1989. 1994: CERN e MIT fanno un accordo per creare il consorzio del web, con il compito di
sviluppare il web, standardizzare i protocolli e favorire l’interoperabilità fra siti.
Il WWW è un sistema servente (calcolatore che fa da archivio – software che gestisce le pagine web e invia
la pagina richiesta dal browser tra quelle che gestisce) e client (utenti  browser web: usato per navigare e
scorrere le informazioni disponibili tramite il web).

Il browser web: il primo è stato Mosic (1993). Netscape (1995). Poi Internet Explorer, Opera, Mozilla, ecc.
WEB: vasta collezione di documenti distribuiti su diversi calcolatori della rete internet, identificati come
pagine.
Il browser acquisisce la pagina richiesta dall’utente, la analizza per distinguere il testo dai comandi (scritti nel
linguaggio HTML) e interpretarli, presenta la pagina sullo schermo.

Server web: connessione – il cliente invia una richiesta e il servente una risposta – connessione rilasciata.
Comunicazione con protocollo http – prevede che si instauri un colloquio senza il mantenimento di
informazioni di stato. Ad ogni pagina si associa un nome detto URL, composto da nome del protocollo (http),
del dominio del computer dove è mantenuta la pagina (www.unipd.it), nome del file o pathname (index.html).
Un URL con meno parole al centro (nel dominio) è di gerarchia superiore.
Una pagina o nodo del web è costituita da testo (ASCII) preparato con un linguaggio di markup (di solito
HTML o XML).

Posta elettronica: servizio di trasferimento del messaggio dal mittente alla casella del destinatario e
mantenimento del messaggio. Server di posta in uscita, trasferisce i messaggi (server SMTP – simple mail
transfer protocol). Server di posta in entrata: accetta i messaggi, li mantiene e li consegna (server POP –
post office protocol). Per accedere a questi servizi, l’utente ha bisogno di un programma client (che fornisce
l’interfaccia grafica che permette di svolgere tutte le funzioni).
Caratteristiche:
- Il protocollo SMTP non prevede che il mittente si debba autenticare per accedere al messaggio (non c’è
controllo sulla sua identità – è semplice inviare pubblicità, catene o messaggi di frode)
- I server possono notificare problemi nella consegna – possono essere permanenti (indirizzo del mittente
incorretto) o temporanei (il server MSTP non riesce a contattare il POP).
- Sistema non sicuro: a volte la notifica non viene fatta e il messaggio non viene consegnato, ci
possono essere ritardi, ecc.
- Uno stesso messaggio può essere recapitato a più utenti (si può indicare il grado di interesse verso il
messaggio da parte dei destinatari)
- TO: destinatari principali
- CC: copia per conoscenza – destinatari coinvolti indirettamente (non necessariamente rispondono)
- BCC: destinatari il cui indirizzo non appare in modo esplicito
- Possibilità di allegare file

6. Il reperimento dell’informazione
Grazie a internet gli utenti hanno accesso ad una quantità infinita di informazioni  metodi per reperire solo
ciò che risulta interessante  Reperimento dell’informazione: settore dell’informatica che si occupa delle
attività / metodologie che permettono di ideare sistemi (di software) in grado di gestire, rappresentare,
ritrovare, scegliere, da una data collezione di documenti (digitali), quelli di interesse in relazione ad una
specifica esigenza informativa di una persona.
Obiettivo: aiutare a scegliere / selezionare.
Metodi di classificazione e soggettazione: permettono di descrivere il contenuto informativo dei documenti
della collezione – l’utente consulta solo la descrizione (non il documento)  risparmia tempo.
Elementi e metodi
Esistono diversi metodi a servizio dell’utente.
La catalogazione e la gestione possono essere automatizzate, con la progettazione di uno strumento di
reperimento dell’informazione denominato catalogo in linea per l’utenza finale (OPAC – online public access
catalogue).
Informazione = ciò che forma la conoscenza per risolvere i problemi degli utenti – non è misurabile, dipende
dall’utente, il suo valore è dato dalla sua utilità. Calcolatori usati come memorie di archiviazione in formato
digitale  sono stati sviluppati software che permettono la gestione delle rappresentazioni del contenuto.
L’utente deve quindi esprimere la sua esigenza informativa in modo comprensibile per il sistema: è
necessaria la rappresentazione dell’interrogazione (così che venga trattata in modo uniforme ai documenti
a cui viene associata).
Nel momento in cui è necessario un sistema automatico diventa necessario un sistema informatico: motore
di ricerca (sistema di reperimento nelle pagine web).
L’informazione viene rappresentata come documento = qualsiasi oggetto informativo che è individuabile
mediante un identificatore univoco (ossia che consente l’accesso al documento indipendentemente dal suo
contenuto) e che contiene dei dati che forniscono informazione (testi ma anche immagini e audio). Insieme
di documenti: collezione di documenti.
Rilevanza = proprietà di un documento di contenere dell’informazione importante, utile o necessaria a
soddisfare una specifica esigenza informativa di un utente. Essa non può essere determinata da una
macchina e dipende dal contesto, dall’utente e dal momento in cui essa viene giudicata.
Descrittori = dati che esprimono gli aspetti salienti del contenuto informativo del documento e
dell’interrogazione e che devono essere gestibili automaticamente da un sistema informatico – vengono
assegnati ad ogni documento e ad ogni interrogazione. Per i documenti testuali sono parole, per immagini o
suoni sono frammenti.
Indicizzazione = processo di descrizione e rappresentazione del contenuto informativo dei documenti della
collezione di interesse e delle interrogazioni.
I descrittori rappresentano l’informazione in modo automatico ma incompleto  sono dei surrogati. Errori
dovuti ad ambiguità terminologica: sinonimie (sostituibilità di un elemento linguistico senza che il significato
cambi) e polisemie (significati diversi per la stessa parola).
Più precisamente: il reperimento dell’informazione si occupa ella descrizione e del reperimento di documenti
che apportano informazioni rilevanti a qualsiasi esigenza informativa espressa in un’interrogazione da
qualsiasi persona. Se svolto in automatico è necessario un sistema che svolga queste attività.
Un sistema di reperimento è un sistema informatico progettato per svolgere compiti di reperimento in modo
efficace ed efficiente, anche per collezioni di grandi dimensioni, assicurando la descrizione dei documenti e
il reperimento di quelli ritenuti rilevanti alle esigenze informative espresse da interrogazioni poste dagli utenti
finali che lo utilizzano.
Efficacia: quantità di documenti rilevanti e non // Efficienza: velocità di funzionamento, quantità di risorse
usate e funzionalità di sistema. Esse dipendono dagli algoritmi usati  si lavora a livello di ideazione del
modello di reperimento dell’informazione (l’efficacia dipende dalla qualità del modello).
Componenti del reperimento dell’informazione
Collezione: insieme di documenti che costituisce una raccolta logicamente omogenea, gestito da un
sistema di reperimento. La sua dislocazione fisica è irrilevante (su uno o più calcolatori). Il contenuto
informativo al suo interno deve essere rappresentato.
PROCESSO: inserimento dei documenti (raccolta, costituzione collezione, rappresentazione contenuto,
costituzione archivio digitale) + fase di interrogazione dell’utente al sistema (uso di query).
Forma ad U: in un ramo l’inserimento, nell’altro l’interrogazione.
* fase di inserimento: processo di indicizzazione per rappresentare i documenti. Nell’interrogazione
l’utente rappresenta le proprie esigenze  viene fatto un confronto tra la richiesta e il contenuto dei
documenti.
COMPONENTI DI UNO STRUMENTO DI RICERCA: componente di indicizzazione, di gestione (gestione
complessiva) e di interazione utente-sistema.
Componente di indicizzazione: effettua la rappresentazione del contenuto informatico, permettendo una
risposta all’utente più rapida ed efficiente. Lo scopo è quello di produrre per ogni documento originale un
surrogato che ne rappresenti il suo contenuto informativo (si trattano documenti testuali).
Metodi di tipo statistico e linguistico (meno diffuso) per l’analisi del testo. Statistico  assunzioni di base: la
frequenza di una parola indica la sua capacità di rappresentarne il contenuto; la posizione relativa all’interno
di una frase delle parole fornisce una misura utile nel determinare l’importanza della frase.
I surrogati generati tramite processi di indicizzazione automatica sono detti indici – vengono preparati dal
software per descrivere i documenti, poi vengono confrontati con la frase dell’utente e viene fornita una
risposta. Devono permettere esaustività e specificità affinché il sistema di reperimento venga valutato in
modo più positivo dall’utente.
I surrogati vengono aggregati per creare gruppi di descrittori o parole chiave collegati tra loro e costituire
gruppi affini (per rendere il reperimento più efficiente).
Se si tratta di documenti testuali, il procedimento può essere svolto in automatico: l’indicizzazione automatica
di un documento è il processo che esamina automaticamente gli oggetti informativi che compongono il
documento e, utilizzando degli algoritmi appositi, produce un elenco di termini indici che può essere utilizzata
per la rappresentazione del contenuto informativo del documento di partenza.
Fasi:
1) Analisi lessicale: trasformazione di un flusso di caratteri in un flusso di parole (token = sistema di
caratteri che veicola uno specifico significato).
2) Rimozione delle parole comuni: eliminazione di quelle parole che servono poco nell’identificazione
del significato del documento e di quelle a basso potere discriminante.
3) Riduzione parole originali alle radici: riduzione delle parole alla loro radice per identificare la parte
comune delle parole (rimozione delle parti varianti). Il termine indice che viene mantenuto è quello
usato nel confronto tra interrogazioni e documenti.
4) Creazione dell’indice: viene preparato l’elenco dei termini indice che serve a mettere in relazione ogni
radice comune con i documenti all’interno.
5) Pesatura (automatica) dei termini indice. Essi possono essere assegnati ai documenti con un peso
(processo binario: 1 o 2 – presenza o meno del termine // determinazione esplicita della frequenza
del termine) o senza.
Componente di gestione: trasforma l’indice in una struttura dati che può essere mantenuta in modo
permanente su di un supporto e usata da un software nel reperimento di informazioni, mantiene i
collegamenti fra le radici.
L’insieme delle descrizioni dei documenti è una vera e propria base di dati, costituita da indici e documenti,
denominate base di dati degli indici e base di dati dei documenti  banca dati.
Caratteristiche: struttura complessiva degli archivi estremamente semplice, la rappresentazione di dati
testuali si può fare solo per le applicazioni di gestione di soli dati strutturati, l’utente finale usa la base dati
per estrarre informazioni, le ricerche dati sono sempre di un unico tipo (estrarre documenti che sono
pertinenti ad una certa esigenza informativa).
Componente di interazione utente-sistema: si occupa dell’interazione dell’utente, effettua il reperimento
dell’informazione, dispone strumenti per realizzare l’interfaccia di interrogazione (usata per porre le
domande) e la presentazione all’utente dei risultati.
Se i documenti non soddisfano l’utente: meccanismo di retroazione – continua ricerca di documenti: frase di
richiesta riformulata. Al termine il sistema deve poter offrire l’elenco completo dei documenti e la
visualizzazione di un qualunque documento dell’elenco.
Modello di reperimento dell’informazione: insieme di costrutti che sono formalizzati allo scopo di rendere
possibile la rappresentazione del contenuto informativo di documenti e interrogazioni, nonché definire
l’algoritmo di reperimento dei documenti (uno fra i primi modelli: modello booleano).
Modello: strumento concettuale per astrarre il funzionamento di un sistema di reperimento dell’informazione,
il contenuto dei documenti e l’esigenza informativa (non fornisce dati implementativi sul software).
Alcuni modelli, come quello booleano, suggeriscono come implementarlo.
Nella ricerca questi modelli si basano su parole metafora. Nella metafora del modello booleano i descrittori
individuano insiemi di documenti e le interrogazioni sono preposizioni logiche i cui operandi sono i descrittori
(insiemi di documenti) e gli operatori sono gli operatori della teoria degli insiemi.
La funzione di reperimento associa l’interrogazione al sottoinsieme di documenti che la rendono vera.
Il modello si basa su operazioni logiche tra proposizioni che possono essere vere o false.
Operatori usati:
- Somma logica (oppure / o – or): almeno una delle parole presenti nell’interrogazione e collegate
dall’operatore O deve essere presente nei documenti selezionati
- Moltiplicazione logica (e – and): entrambe le parole presenti nell’interrogazione collegate da E devono
essere presenti nei documenti
- Differenza logica (non – not): le parole non devono essere presenti nei documenti
Si aggiungono gli operatori di adiacenza (specifica parola adiacente ad un’altra), di relazione (=,<,>,ecc.),
che delimitano una sequenza.

Reperimento dell’informazione sul web


Il reperimento dell’informazione sul web è reso possibile tramite un programma di gateway, che mette in
relazione l’utente finale con il sistema di reperimento attraverso una pagina web di presentazione del servizio
di ricerca. Un client (o browser) svolge il ruolo di interfaccia che permette di effettuare ricerche.
Si tratta di un servizio di reperimento tradizionale in cui il programma di gateway mantiene la connessione e
rende possibile l’uso del servizio.
L’effettivo reperimento dal web riguarda le attività attuate per identificare nel web i documenti di interesse –
si considera come documento ogni pagina web (molto diverse dai documenti tradizionali).
Non si può dire quale sia la dimensione del web liberamente indicizzabile (= tutte le pagine web che possono
essere acquisite liberamente per essere indicizzate per la rappresentazione del loro contenuto informativo
ai fini di ricerca dell’informazione – sono escluse quelle che richiedono l’autenticazione, quelle per cui viene
richiesto dal creatore e quelle che vengono create a seguito di richiesta di informazioni).
La navigazione sul web comprende le richieste dirette di pagine web (si conosce l’URL), indiretta (uso del
collegamento ipertestuale) o acquisizione di una pagina tramite un servizio che produce la pagina richiesta
(pagina dinamica – prodotta solo al momento della richiesta).
Altri servizi per reperire l’informazione:
 Motore di ricerca: indica diversi tipi di strumenti software, anche molto complessi, che realizzano delle
funzionalità di reperimento d’informazione dal web, cioè strumenti di reperimento che usano come
collezione di documenti di interesse insieme di pagine web liberamente indicizzabili.
 Servizio di ricerca web: servizio di ricerca reso disponibile attraverso un cliente web. Si basa su un
motore di ricerca ma vi associa l’uso di altri motori di ricerca o software diversi (es. meta-motore di
ricerca: servizio che risponde ad un’interrogazione usando diversi motori di ricerca e combinando i
diversi risultati.
 Portale web: porta di ingresso su strumenti web disponibili attraverso la rete internet
* tutti i servizi per il reperimento sul web utilizzano motori di ricerca  strumento centrale.
Fasi principali:
1) Raccolta dei documenti e creazione della collezione: reperimento dell’informazione con l’obiettivo di
costruire la collezione (può essere sia fisica che virtuale) di documenti / pagine web che gli strumenti
software devono indicizzare. La collezione po' essere poi mantenuta dal motore di ricerca: diventa
fisica (virtuale se il motore non tiene copia delle pagine).
a. Le pagine web sono sottomesse al motore di ricerca – gli utenti contattano i gestori dei motori e
sottomettono le pagine
b. Le pagine web sono raccolte da uno strumento che opera in modo coordinato con il motore di
ricerca – diversi nome, tra questi agente di ricerca (richiama le caratteristiche software che stanno
alla base dello strumento, ma anche il suo obiettivo principale, che è quello di cercare le pagine
web.
2) Indicizzazione: ogni singolo documento viene usato come input e il contenuto viene rappresentato –
indicizzazione automatica. In base al livello di automatizzazione i motori di ricerca si distinguono in
strumenti di ricerca che organizzano le pagine che vengono loro sottoposte e operano catalogando
le pagine; e in motori di ricerca che rispondono a frasi di interrogazione degli utenti che basano il loro
operare sulla costruzione e sul mantenimento di indici per poi rispondere alle frasi di ricerca degli
utenti.
3) Interrogazione: gestisce l’interrogazione dell’utente e usa gli algoritmi per scegliere i documenti
4) Gestione dei documenti e dell’interazione utente-sistema: questa fase si sovrappone
all’indicizzazione e interrogazione, perché la gestione dei documenti è strettamente legata ad esse.
Si considera una fase separata perché la memorizzazione degli indici rappresenta una questione
separata.
Differenze dal processo tradizionale:
 Azione dell’agente di ricerca
 Costruzione della collezione automatica tramite il web
 Gestione della collazione che spesso è virtuale
Linee guida per la ricerca di informazioni disponibili su web
Obiettivi: acquisizione capacità di condurre una ricerca completa e di presentare in modo sintetico il
procedimento di ricerca.
Contenuti: scelta di un argomento, ricerca di informazioni relative e stesura di una relazione che sintetizza il
processo di ricerca.
Sviluppo della ricerca: identificazione dell’esigenza, trascrizione in forma scritta, identificazione delle
collezioni di documenti, scelta degli strumenti per il recupero dell’informazione, formulazione dell’esigenza
nel linguaggio artificiale degli strumenti scelti, considerazioni sugli strumenti usati e motivazioni delle scelte,
analisi della riscrittura ed evoluzione delle frasi di ricerca inizialmente formulate, uso di collegamenti,
valutazione attendibilità dei documenti e presentazione dei risultati ottenuti.

7. Informatica e sicurezza
Il calcolatore è diventato uno strumento insostituibile in quasi tutti i campi.
- Necessità che i pc siano dotati di hardware e software e che le persone abbiano la giusta conoscenza.
Gli schedari stanno facendo sempre più posto agli archivi informatici e la comunicazione aziendale può
essere sostituita dall’uso di messaggi in formato digitale. La facilità con cui l’informazione può essere
memorizzata e trasferita presenta degli aspetti rischiosi, visto che anche persone terze possono accedere ai
dati.
- È importante cautelarsi da malfunzionamenti, occasionali o indotti dall’esterno (VIRUS).
Salvaguardia da malfunzionamenti
Quando il sistema non risponde più ai comandi ed è quindi necessario spegnere / riaccendere il calcolatore,
si sa che l’informazione che non è stata salvata in memoria secondaria andrà persa (poiché la memoria
primaria è volatile).
Inoltre, i file potrebbero risultare illeggibili al momento dell’apertura se si verifica un malfunzionamento delle
unità di memorizzazione.

Le copie di salvaguardia
Da queste problematiche è possibile dedurre che è necessario che ogni sistema informatico sia fornito di un
insieme di procedure software ed apparecchiature hardware per limitare al massimo i danni causati dalla
perdita accidentale di dati.
Il primo approccio consiste nel creare una copia di salvaguardia  BACKUP = consiste nel salvare una
copia identica in uno o più supporti di memorizzazione alternativi, come precauzione nel caso il supporto di
memorizzazione principale avesse malfunzionamenti – salvataggio su di un supporto diverso dall’originale.
La scelta di quante volte fare il backup dipende dall’importanza dei dati da salvaguardare, oltre che alla
frequenza con cui i dati vengono modificati.
Le procedure di backup vengono effettuate comprimendo (reversibilmente) contestualmente l’informazione
(trasformando le sequenze di bit in sequenze più corte, occupano così meno spazio).
DATA RECOVERY: esiste la possibilità di svolgere le procedure di ripristino dei dati danneggiati utilizzando
delle apparecchiature apposite che leggono la superficie dei dischi danneggiati; molto costose e non
garantiscono il ripristino.

Riservatezza delle informazioni


Nessuno desidera che i propri dati personali siano accessibili anche ad altri, soprattutto quando il possesso
di queste informazioni può portare a atti illeciti (uso di denaro).
Si studiano tutt’ora strategie per proteggere le informazioni importanti, così come vengono studiati
stratagemmi per superare queste protezioni.
Gli approcci per PROTEGGERE LE INFORMAZIONI sono due e tra loro formano una sinergia:
- Solo le persone autorizzate possono accedere fisicamente ai dati
- Solo le persone in possesso di una chiave interpretativa possono leggere l’informazione

Controllo degli accessi


Per accedere alle informazioni riservate e per bloccare accessi non autorizzati, esiste la procedura di
autenticazione d’utente, dove si richiede all’utente di:
 Dichiarare la propria identità  login / username / nome utente / account  sequenza di lettere,
raramente comprende numeri o altri caratteri, di norma basata su standard ASCII 7bit
 Confermare l’identità  password / parola d’ordine  basata di norma su standard ASCII 7bit
Per minimizzare la possibilità che un software riesca a trovare una password per tentativi, bisogna:
- Non usare mai dati a cui è facile risalire (data di nascita, nome partner, ecc.)
- Usare password lunghe (almeno 8 caratteri)
- Intercalare lettere maiuscole e minuscole, usando anche numeri e/o caratteri speciali
- Cambiare password con una certa frequenza
Gli amministratori di sistema, per tutelare gli utenti, spesso bloccano l’accesso quando il numero di tentativi
per l’autenticazione è troppo elevato, facendo nascere dei sospetti.
Il sistema Login + Password funziona fintanto che l’informazione rimane nel sistema: il problema si pone
quando deve essere trasferita via internet.

Crittografia a chiave simmetrica


CRITTOGRAFIA SIMMETRICA: modifica sistematica delle lettere di un messaggio utilizzando una chiave
uguale e condivisa solo tra mittente e destinatario, in cui abbiamo:
- Trasformazione, basata sulla chiave, per cifrare il messaggio
- Trasformazione inversa, basata sulla stessa chiave, per decifrare il messaggio
Simmetrica  la chiave è sempre la stessa, sia per cifrare sia per decifrare

Esempio del codice di cesare  Frase originale Chiave selezionata: 7 VENI VIDI VICI
Trascrizione numerica: ogni lettera del messaggio viene sostituita con il
codice numerico corrispondente  22-05-14-09 22-09-04-09 22-09-03-09
Somma della chiave: ai numeri che costituiscono la successione di codici
viene sommato il valore della chiave (es.22+7)  29-12-21-16 29-16-11-
16 22-16-10-16
Frase cifrata: i numeri nuovi vengono trascritti sostituendoli con le lettere
corrispondenti  CLUP CPKP CPJP
Sottrazione della chiave: ai numeri che costituiscono la successione di
codici viene sottratto il valore della chiave (es.29-7)  29-12-21-16 29-16-
11-16 22-16-10-16
Frase originale: VENI VIDI VICI

Il difetto di questi sistemi è che prima di iniziare la comunicazione, la chiave deve essere comunicata tra
mittente e destinatario – per arrivare deve “viaggiare in chiaro”, ovvero non deve essere a sua volta cifrata.

Crittografia a chiave asimmetrica


CRITTOGRAFIA ASIMMETRICA: si basa sull’idea che esistano due chiavi denominate rispettivamente
CHIAVE PUBBLICA (chiave nota a tutti coloro con cui si vuole intrattenere una corrispondenza sicura) e
CHIAVE PRIVATA (chiave da tenere assolutamente al segreto).
Si avrà un processo per cui un messaggio cifrato con chiave pubblica potrà essere decifrato solamente con
la chiave privata (processo che vale anche al contrario).
Un vincolo di questo sistema, che riguarda la coppia di chiavi, è che non deve essere possibile calcolarne
una dall’altra. Per far ciò, ci si appoggia sulla proprietà dei numeri primi per i quali non è ancora stata trovata
una formula matematica in grado di calcolarli.
Esempio di comunicazione tramite chiave asimmetrica:
A chiede una coppia di chiavi, tiene la privata per sé ed invia in chiaro la pubblica a B, che la usa per
cifrare il messaggio e inviarlo. C intercetta e copia il messaggio ma non può decifrarlo senza chiave
privata. A può usare la chiave per leggere il messaggio. Se volesse rispondere dovrebbe richiedere
un’altra coppia e fare il procedimento inverso.
* A e B non devono concordare il messaggio, l’unica informazione in chiaro è la chiave pubblica.
* La richiesta delle chiave deve farla chi deve ricevere il messaggio.
Un’applicazione molto comune sono le transazioni effettuale nel web. Modalità comunicazione sicura: il
protocollo di comunicazione indicato nell’URL è HTTPS, dove S sta per sicuro. Il server invia al browser la
chiave pubblica da usare per trasferire dati in modo sicuro.
Nel mondo digitale, al contrario di quello reale, in particolare nella comunicazione attraverso la posta
elettronica, è impossibile risalire con certezza all’identità del mittente. I problemi che riguardano la
comunicazione sicura attraverso la posta elettronica sono risolti con la crittografia asimmetrica.
Se A e B si scambiano messaggi cifrati, C potrebbe intercettare e risponde al messaggio a nome di A usando
però una chiave privata. Per capire quale sia effettivamente il messaggio corretto, B dovrà usare la sua
chiave pubblica per decifrare il messaggio che corrisponde solo ad una chiave privata (quella di A).
La chiave privata quindi funge da firma digitale.

MALWARE: programma spesso creato per danneggiare il sistema in cui si installa, in grado di diffondersi,
installarsi ed eseguirsi all’insaputa dell’utente. Si tratta di un insieme di istruzioni, un software che è stato
scritto da un programmatore con intenti maligni o illeciti.
Come altri programmi, anche le istruzioni che costituiscono il funzionamento del malware vengono caricate
in memoria principale; queste vengono lette dal processore che esegue quanto scritto nelle istruzioni.
* Problemi come fughe di informazioni o accessi a zone private e apparentemente protette di sistemi
informatici sono spesso dovute a SPYWARE.
Le operazioni che esegue il malware sono:
 Ha uno scopo maligno e quindi con effetti negativi nel sistema informatico nel quale opera
 Si installa all’insaputa dell’utente
 Si replica automaticamente all’interno del sistema informatico, spesso con l’ignara complicità
dell’utente
 Prima di effettuare danni il malware cerca di raggiungere la massima diffusione all’interno del sistema
informatico
Chi scrive questi programmi viene definito pirata informatico o hacker.
I malware furono inizialmente inventati per punire chi copiava programmi con licenze a pagamento e li
passava ad altri utenti, ma può avere anche motivazioni di piacere vandalico / gusto della sfida / dimostrare
la propria bravura.
Tipologie di malware:
- Trojan horse: si presenta come un software innocuo, normalmente creato ad uso ricreativo o per
svolgere compiti d’utilità, che però nasconde poi lati del programma dannosissimi (istruzioni svolte di
nascosto) che possono arrivare anche alla completa distruzione di tutti i dati presenti nella memoria
di masso dopo alcuni giorni. Generalmente vengono utilizzati per analizzare i dati sul computer o per
abbassare le sue difese in modo che il creatore del malware possa accedere alle risorse / inserirsi
nel sistema. Il trojan è in grado di calcolare il lasso di tempo di installazione per garantirsi la massima
diffusione (di solito 30 giorni) prima di sferrare il suo attacco.

- Virus: piccoli programmi che si attaccano autonomamente ad altri programmi residenti nel sistema
dell’utente; le informazioni del virus sono sempre anteposte a quelle del programma, per cui passa
sempre di nascosto – le istruzioni del virus vengono eseguite per prime ogni volta che si avvia il
programma a cui esso si è attaccato.
A differenza del cavallo di troia però, il virus ha bisogno di garantire la propria diffusione poiché non
è un programma autonomo e per fare ciò cerca all’interno del sistema tutti i programmi già installati
e li attacca tutti. In questo modo “infetta” i programmi e si garantisce la massima diffusione. Anche il
virus è in grado di calcolare il lasso di tempo di installazione per garantirsi la massima diffusione (di
solito 30 giorni) prima di sferrare il suo attacco, che può essere un danno al computer, invio di dati.

Differenza trojan e virus: i primi sono legati al programma ospitante, i secondi si legano a qualsiasi
programma (si diffondono più rapidamente).

- Worm: forse la più pericolosa forma di malware, si diffonde attraverso i canali di comunicazione
internet, muovendosi da un calcolatore all’altro con modalità del tutto anonime, in molti casi senza
l’inconsapevole aiuto dell’utente.
Il più diffuso solitamente viaggia tramite posta elettronica, in particolare come allegato. Per non
essere riconosciuto si presenta come immagine, clip video o file di testo. Quando l’allegato viene
aperto, il worm controllo gli indirizzi di corrispondenza dell’utente e invia lo stesso messaggio a tutti,
garantendosi la massima diffusione.
In alternativa, i worm possono sfruttare gli errori nei programmi per la gestione dei sistemi operativi,
insediandosi nel sistema con la sola attivazione della rete internet.

- Spyware: ha lo scopo di raccogliere di nascosto informazioni sull’utente e spedirle al pirata


- Key Logger: registrano i tasti digitati e inviano le sequenze al pirata (es. furto di password)
- Rootkit: nascondono le tracce del pirata e del suo attacco ad un sistema informatico
- Dialers: modificano le impostazioni del modem facendogli chiamare dei numeri a pagamento – non
attacca chi si connette con ADSL
- Browser Hijacker: modificano le impostazioni del browser per dirottarlo verso pubblicità
- Wabbit: si replicano all’infinito fino a riempire l’hard disk

Cosa più pericolosa: furto di identità  furto di dati o Phishing = invio di una mail a nome di un servizio online
per truffare l’utente richiedendo pagamenti.
Protezione
- Evitare comportamenti a rischio: non scaricare programmi da siti non affidabili, non scambiarli con
altri utenti, fare attenzione agli allegati, evitare di visitare siti poco affidabili, aggiornare il software e
sfruttare le correzioni degli errori.
- Uso di antivirus (o antimalware / antispyware): ha lo scopo di riconoscere e cancellare i malware.
L’operazione di controllo è detta scansione del sistema e viene svolta con cadenza scelta dall’utente.
Gli antivirus scansionano le sequenze di bit e per riconoscere un malware devono conoscerlo. Per
questo è necessario continuare ad aggiornare l’antivirus.
- Uso di firewall: componente hardware utilizzato nella connessione di una rete locale per la quale
vengono applicate delle restrizioni  accesso controllato ad internet. Si comporta come un filtro:
blocca l’accesso ai siti non autorizzati.