Pre-corso di Informatica
Facoltà di Scienze MM.FF.NN.
a.a. 2006/2007
Che cos’è l’Informatica?
In Italiano: informazione + automatica
In Inglese: computer science
Quindi:
Studia i modi per automatizzare
l’elaborazione dell’informazione
Lo strumento primario per raggiungere
questo scopo è il computer
È una scienza, quindi adotta un approccio
sistematico e formale
Informatica
Concetti chiave
Informazione: oggetto primario
dell’informatica
Elaborazione:
In Italiano/Inglese si dice
calcolatore/computer
Organizzazione
Archiviazione
Ricerca
Calcolo
Interpretazione
Comunicazione
In Francese si dice ordinateur
Ciascuno di questi termini
sottolinea un aspetto particolare
delle operazioni di elaborazione
che si possono svolgere
Algoritmo: procedimento usato dal
computer per elaborare l’informazione
Informatica
Il concetto di Informazione
Informazione è qualunque cosa che
possa essere
Comunicata
Capita
Interpretata e assimilata
A questa idea corrispondono tre livelli di
definizione dell’informazione:
 livello sintattico
 livello semantico
 livello cognitivo
Informatica
Il concetto di Informazione
Livello sintattico:
L’informazione per essere comunicata ha
bisogno di:
Un linguaggio con cui esprimerla
 Esempi: l’italiano, il linguaggio dei segni, il
linguaggio matematico, …
Un messaggio (espresso in tale linguaggio) che la
codifica
 Esempio: un frase in Italiano
 Per comunicare un schedina del totocalcio mi basta
un linguaggio di tre simboli 12X e un messaggio è
una sequenza di tredici simboli
Informatica
Il concetto di Informazione
Esempio: il numero dieci
 In Italiano: dieci
 In Inglese: ten
 In notazione decimale: 10
 In numeri romani: X
 In notazione binaria: 1010
 In notazione ottale: 12
 In notazione esadecimale: A
Tutti questi messaggi esprimono il numero dieci,
ciascuno in un linguaggio diverso, ma nessuno
è il numero dieci
Informatica
Il concetto di Informazione
Livello semantico:
Definisce ciò che è rappresentato in un messaggio
 Nell’esempio precedente: il numero dieci (dal punto
di vista concettuale)
 Il livello semantico riguarda concetti e quindi
prevede un agente in grado di capire il
significato veicolato dal messaggio
 L’interpretazione semantica di un messaggio
prevede che il messaggio sia scritto secondo
una sintassi nota
 Se scrivo X, l’interpretazione cambia secondo che mi
stia esprimendo in italiano, in numeri romani o nel
linguaggio del totocalcio
Informatica
Il concetto di Informazione
In prima approssimazione, i computer
sono macchine completamente stupide
Non sono in grado di capire nessun
concetto, ma solo di manipolare simboli
(di un determinato linguaggio):
Spostare simboli
Confrontare simboli
Combinare simboli
In questo senso, il computer opera
sempre a livello puramente sintattico
Informatica
Il concetto di Informazione
 I programmi (che sono scritti da umani per
svolgere compiti specifici) fanno sì che il
computer manipoli l’informazione a livello
sintattico in modo coerente con il livello
semantico che a questa informazione è
associato (dagli umani, che lo capiscono)
 Il complesso computer/programma diventa un
po’ meno stupido: se il programma è scritto
correttamente, è in grado di veicolare
messaggi che sono coerenti con la semantica
ad essi attribuita (sempre dagli umani)
Informatica
Il concetto di Informazione
Esempio:
Se uso un motore di ricerca su Internet e
digito “Università di Genova”, il programma
che gestisce il motore non ha idea di cosa
sia l’università e del fatto che Genova sia
una città, ma mi restituirà comunque i
documenti che trova che contengono la
frase “Università di Genova”, che sono
esattamente quel che voglio ottenere.
Informatica
Il concetto di Informazione
Livello cognitivo:
Rigurda la conoscenza veicolata dal
messaggio e segue il livello semantico
Prevede l’integrazione
dell’informazione data dal messaggio
nel contesto della conoscenza propria
di chi lo riceve
Implica cioè l’idea di imparare
qualcosa di nuovo dai messaggi
ricevuti
Informatica
Il concetto di Informazione
Il livello cognitivo è proprio degli esseri
intelligenti
Il trattamento automatico dell’informazione a
questo livello viene studiato in alcune aree
interdisciplinari che coinvolgono l’informatica:
 Intelligenza artificiale
 Estrazione dell’informazione (information retrieval)
 Apprendimento automatico (machine learning)
Con i prodotti di queste discipline i computer
possono effettuare un trattamento
dell’informazione a livello cognitivo (possono
“imparare”) anche se restano ancora lontani
dall’essere “intelligenti”
Informatica
Il concetto di Informazione
Riassumendo:
 Il computer è una macchina che sa manipolare
sintatticamente simboli in un linguaggio
proprio e lo sa fare in modo molto efficiente
 Ci occuperemo di rappresentazione e
manipolazione dell’informazione a livello
sintattico (quel che fanno i computer)
 Vedremo i programmi (algoritmi) come
strumenti per istruire il computer a manipolare
l’informazione sintatticamente in modo
consistente con il livello semantico
 Rendere i computer in grado di “capire” e
“imparare” è molto complicato e la scienza sta
solo muovendo i primi passi in questa direzone
Informatica
Il concetto di Algoritmo
Un algoritmo è un procedimento formale per
ottenere la soluzione di un problema.
I problemi possono essere di qualunque natura:
 Calcolare la traiettoria per mandare in orbita un razzo
 Archiviare le fatture di un’azienda
 Far funzionare il vostro videogioco preferito
 Permettervi di scrivere una lettera
 Spedire un’email
 ……
Ciascun algoritmo risolve un problema specifico e
deve funzionare su qualunque istanza di tale
problema.
Informatica
Il concetto di Algoritmo
 Un algoritmo consta di una sequenza di
istruzioni che spiegano come affrontare il
problema in dipendenza dei dati
 I dati sono informazioni che definiscono l’istanza
del problema e che saranno manipolate
dall’algoritmo
 Cambiando i dati possono cambiare le azioni che
l’algoritmo prevede, ma tutto resta consistente
con l’idea generale di risolvere quel problema
specifico
 Per essere eseguito un algoritmo deve essere
codificato in un programma, che traduce le
istruzioni in un linguaggio comprensibile al
computer
Informatica
Il concetto di Algoritmo
Esempio:
scattare una foto con una macchina digitale
1. Se la macchina è spenta, accenderla
2. Inquadrare il soggetto
3. Finché il campo inquadrato non va bene
1. Se è troppo largo, aumentare lo zoom
2. Se è troppo stretto, diminuire lo zoom
4. Scattare
5. Controllare la foto sul visore
6. Se è venuta male
1. Cancellarla
2. Tornare al punto 2.
Informatica
Il concetto di Algoritmo
In generale:
 Un algoritmo è costituito di una sequenza di
passi
 Ci sono tre tipi di successione temporale dei
passi:
 Sequenziale: dopo un passo si effettua il successivo
 Condizionale: un passo viene eseguito solo se si
verifica una data condizione
 Iterativo: un passo viene ripetuto un certo numero di
volte
 Le istruzioni condizionali ed iterative consentono
di cambiare il flusso dell’algoritmo secondo quel
che succede (ossia secondo la situazione creata
dai dati su cui si sta lavorando)
Informatica
Ricapitolando…
 I computer sanno solo eseguire un numero
molto ridotto di operazioni sintattiche su simboli
di un dato linguaggio (i numeri binari, che
vedremo)
 Per funzionare, un computer ha bisogno di:
1. Un programma che lo istruisca su cosa fare
2. Dati sui quali agire
 Abbiamo quindi bisogno di tradurre sia gli
algoritmi che i dati in un linguaggio
“comprensibile” al computer
 Parleremo di rappresentazione e codifica
dell’informazione
Informatica
Rappresentazione dell’informazione
 Per rappresentazione intendiamo un modo di
associare alle informazioni (semantiche) delle
descrizioni sintattiche
 Il linguaggio naturale (per esempio, l’Italiano)
fornisce strumenti abbastanza completi per
rappresentare la realtà, ma
 È molto complicato
 È prolisso
 È ambiguo
 In ogni caso, posso veicolare un messaggio in
Italiano solo verso chi capisce l’Italiano
 Ossia: la rappresentazione deve essere
concordata tra chi produce il messaggio e chi lo
riceve
Informatica
Codifica dell’informazione
 Per rappresentare l’informazione in modo fruibile
dai computer abbiamo bisogno di codici che la
possano esprimere in modo semplice, sintetico e
non ambiguo.
 Un codice (o linguaggio) si basa su:
 Un alfabeto di simboli
 Una sintassi con cui comporre tali simboli in sequenze
valide (cioè sensate)
 Una semantica da associare a simboli o sequenze
valide di simboli
Nella codifica dei dati, la semantica resterà per lo più
dominio degli umani che tali dati interpretano
Nella codifica dei programmi, la semantica sarà interpretata
dal computer in termini di operazioni elementari che
questo è in grado di eseguire
Informatica
Codifica dell’informazione
 I computer hanno un grosso limite: possono
gestire solo rappresentazioni finite codificate
attraverso un insieme finito di simboli
 Dato qualunque insieme finito di n simboli,
questo può essere messo in relazione con i primi
n numeri interi (partendo da zero)
 Quindi basta trovare un modo efficiente e
opportuno (per il computer) di rappresentare i
numeri interi e si può in questo modo codificare
qualunque rappresentazione (finita)
Esempio delle carte
Informatica
Codifica dei numeri interi
 Codifica decimale:
 Alfabeto di dieci simboli (cifre): 0 1 2 3 4 5 6 7 8 9
 Assumiamo per il momento di rappresentare numeri di
non più di n cifre
 Ogni numero si rappresenta con una sequenza
(stringa) di n cifre
 A ogni cifra si assegna una semantica (quella solita)
 Ogni cifra ha una posizione nella sequenza e ad ogni
posizione di assegna una semantica: unità, decine,
centinaia, migliaia, ecc…
100000
10000
1000
100
Informatica
10
1
Codifica dei numeri interi
 Codifica decimale:
 La semantica di una stringa si ottiene moltiplicando
ciascuna cifra per la potenza di dieci corrispondente al
posto che occupa e sommando il tutto
0
0
0
1
2
7
100000
10000
1000
100
10
1
 7x1 + 2x10 + 1x100 = 127
 Attenzione: con questa regola il numero 127 si scriverà
in effetti 000127 e il numero più grande che si riesce a
rappresentare è il 999999
 Normalmente non abbiamo questi limiti perché
assumiamo l’esistenza di un simbolo separatore (ad
esempio lo spazio) che ci indica dove inizia e dove
finisce un numero
Informatica
Codifica dei numeri interi
Codifica binaria:
 Stesso meccanismo, ma
 l’alfabeto è di soli due simboli: 0 1
 La semantica assegnata alle posizioni in una stringa
di cifre binarie corrisponde (da destra a sinistra) a
potenze successive di due: 1, 2, 4, 8, 16, …
 La semantica di una stringa si ottiene moltiplicando
ciascuna cifra per la potenza di due corrispondente
al posto che occupa e sommando il tutto
 Quindi ad esempio il numero binario
11010110
corrisponde al numero decimale
0x1+1x2+1x4+0x8+1x16+0x32+1x64+1x128 = 214
Informatica
Numeri binari e computer
Qualunque informazione rappresentata
nel computer (sia dati che programmi)
viene codificata in forma binaria
Ragioni pratiche:
 I simboli 0 e 1 si fanno corrispondere a due
livelli di tensione elettrica e l’elaborazione
dell’informazione avviene attraverso
commutazioni tra questi due livelli di
tensione, operati da circuiti logici, fatti di un
numero elevatissimo di transistor
miniaturizzati, ciascuno molto semplice
 Conviene costruire molti circuiti molto
semplici piuttosto che meno circuiti più
complessi
Informatica
Numeri binari e computer
Ragioni filosofiche:
 La numerazione binaria è adeguata a
rappresentare il ragionamento creativo
(Leibnitz, XVII secolo): ogni cifra può
rappresentare una decisione (cfr istruzioni
condizionali)
 C’è corrispondenza tra la matematica in base
2 e la logica (Boole, XIX secolo), quindi
possiamo formalizzare il ragionamento
(logico) attraverso procedure algoritmiche
(matematiche)
 Si può ottenere un modello del cervello
umano rappresentando una rete di neuroni
ciascuno dei quali può assumere due stati
attivo/inattivo (McCulloch & Pitts, 1943)
Informatica
Numeri binari e computer
Una cifra binaria (rappresentata in un
computer) si chiama genericamente bit
(contrazione di binary digit = cifra
binaria)
Un gruppo di 8 bit si chiama byte
Il byte è l’unità di misura usata per
quantificare l’informazione rappresentata
in un computer (ad esempio, la capacità
della sua memoria)
I multipli del byte si ottengono
moltiplicandolo per potenze di 2 che si
avvicinano a potenze di 10
Informatica
Numeri binari e computer
Simbolo
Potenza
di 10
Potenza di
2
Valore
kilobyte
kB
103
210
1.024
megabyte
MB
106
220
1.048.576
gigabyte
GB
109
230
1.073.741.824
terabyte
TB
1012
240
1.099.511.627.776
Nome
Informatica
La memoria del computer
Una memoria è un contenitore fatto di
“scatolette” (celle) ciascuna delle quali
può contenere un gruppetto di bit
La capacità di una cella di memoria di
solito è di qualche byte (8, 16, 32 o 64
bit)
 8 bit = numeri da 0 a 255
 16 bit = numeri da 0 a 65.535
 32 bit = numeri da 0 a 4.294.967.295
 64 bit = numeri da 0 a circa 18,5 miliardi di
miliardi
Vantaggi e svantaggi di avere celle più o meno grandi
Informatica
I dati
I dati sono informazioni rappresentate
secondo una certa codifica
In ultima analisi, qualunque dato viene
codificato attraverso numeri binari
immagazzinati nelle celle di memoria del
computer
Per arrivare a questo possono essere
però necessari diversi passaggi, che
aumentano con la complessità strutturale
dei dati da rappresentare
Informatica
I dati
Esempio: i numeri naturali
 Dobbiamo prima di tutto decidere quanti ne
vogliamo rappresentare e quindi quanti bit
servono per rappresentarne uno
 Scelto che ci servano n bit, ciascun gruppo di
n bit viene interpretato come numero
attraverso la regola solita dell’aritmetica in
base 2
 Quindi per esempio se abbiamo scelto n=4
possiamo rappresentare solo numeri tra 0 e
15 e la sequenza 0010100011110001
rappresenta nell’ordine i numeri 2 8 15 1
Informatica
I dati
 Se scegliessimo n=8 la stessa sequenza
0010100011110001 rappresenterebbe
nell’ordine i numeri 40 e 241
 Quindi:
l’informazione codificata nei dati si
può recuperare solo se è nota la
semantica del codice utilizzato per
rappresentarli
Informatica
I dati
 Esempio: il testo
 Vogliamo rappresentare sequenze composte di
 lettere dell’alfabeto maiuscole e minuscole
 cifre decimali
 segni di punteggiatura
 parentesi varie
 simboli speciali
 spazi
…
 Servirebbero almeno 7bit per rappresentare ciascun
simbolo
 Con questo metodo è stata ottenuta la tabella ASCII,
largamente usata
Informatica
La tabella ASCII
Dec Hex Oct Char
Dec Hex Oct Char
Dec Hex Oct Char
Dec Hex Oct Char
------------------------------------------------------------------------0 00 000 NUL
32 20 040 Space 64 40 100 @
96 60 140 `
1 01 001 SOH
33 21 041 !
65 41 101 A
97 61 141 a
2 02 002 STX
34 22 042 "
66 42 102 B
98 62 142 b
3 03 003 ETX
35 23 043 #
67 43 103 C
99 63 143 c
4 04 004 EOT
36 24 044 $
68 44 104 D
100 64 144 d
5 05 005 ENQ
37 25 045 %
69 45 105 E
101 65 145 e
6 06 006 ACK
38 26 046 &
70 46 106 F
102 66 146 f
7 07 007 BEL
39 27 047 '
71 47 107 G
103 67 147 g
8 08 010 BS
40 28 050 (
72 48 110 H
104 68 150 h
9 09 011 HT
41 29 051 )
73 49 111 I
105 69 151 i
10 0A 012 LF
42 2A 052 *
74 4A 112 J
106 6A 152 j
11 0B 013 VT
43 2B 053 +
75 4B 113 K
107 6B 153 k
12 0C 014 FF
44 2C 054 ,
76 4C 114 L
108 6C 154 l
13 0D 015 CR
45 2D 055 77 4D 115 M
109 6D 155 m
14 0E 016 SO
46 2E 056 .
78 4E 116 N
110 6E 156 n
15 0F 017 SI
47 2F 057 /
79 4F 117 O
111 6F 157 o
16 10 020 DLE
48 30 060 0
80 50 120 P
112 70 160 p
17 11 021 DC1
49 31 061 1
81 51 121 Q
113 71 161 q
18 12 022 DC2
50 32 062 2
82 52 122 R
114 72 162 r
19 13 023 DC3
51 33 063 3
83 53 123 S
115 73 163 s
20 14 024 DC4
52 34 064 4
84 54 124 T
116 74 164 t
21 15 025 NAK
53 35 065 5
85 55 125 U
117 75 165 u
22 16 026 SYN
54 36 066 6
86 56 126 V
118 76 166 v
23 17 027 ETB
55 37 067 7
87 57 127 W
119 77 167 w
24 18 030 CAN
56 38 070 8
88 58 130 X
120 78 170 x
25 19 031 EM
57 39 071 9
89 59 131 Y
121 79 171 y
26 1A 032 SUB
58 3A 072 :
90 5A 132 Z
122 7A 172 z
27 1B 033 ESC
59 3B 073 ;
91 5B 133 [
123 7B 173 {
28 1C 034 FS
60 3C 074 <
92 5C 134 \
124 7C 174 |
29 1D 035 GS
61 3D 075 =
93 5D 135 ]
125 7D 175 }
30 1E 036 RS
62 3E 076 >
94 5E 136 ^
126 7E 176 ~
31 1F 037 US
63 3F 077 ?
95 5F 137 _
127 7F 177 DEL
Informatica
I dati composti
 I dati come numeri e caratteri di testi si dicono
elementari perché abbiamo una regola semplice
per definire come codificarli
 A partire da questi, si possono definire tipi di
dato più complessi, ottenuto per composizione
 Per esempio, la scheda di un cliente in un
archivio di contabilità potrà contenere diversi
campi di diverso tipo:




codice cliente (numero intero)
nome e cognome (stringhe di testo)
partita iva (numero intero)
ecc…
Informatica
I dati multimediali
 Per i dati tipo musica, immagini, filmati, segnali
di varia natura, il discorso è più complesso
 Questi dati sono per loro natura continui e
possono essere rappresentati esattamente solo
in modo analogico tramite altri segnali continui
 I computer possono rappresentare dati solo in
modo digitale attraverso operazioni di
campionamento e quantizzazione utilizzando
come rappresentazione sequenze finite e
discrete di numeri
 Pertanto la rappresentazione digitale dei dati
multimediali è sempre un’approssimazione
Esempio rappresentazione di un’onda – LP vs CD
Informatica
Segnale analogico
Informatica
Segnale campionato
Informatica
Struttura degli elaboratori
Un elaboratore elettronico è costituito di
varie parti (componenti):
Per elaborare informazioni (CPU)
Per immagazzinare informazioni (memoria,
dischi, …)
Per trasferire informazioni all’interno del
computer (Bus)
Per scambiare informazioni con l’esterno
(tastiera, mouse, schermo, stampante, …)
Informatica
Struttura degli elaboratori
 Le componenti centrali sono quelle
indispensabili per il funzionamento del
computer:
 Unità di elaborazione (CPU)
 Memoria primaria
 Costituiscono il nucleo principale e di solito
sono contenute su un’unica scheda detta
scheda madre (motherboard)
 In pratica è sempre indispensabile la presenza
di almeno qualche altro componente che
permetta all’elaboratore di scambiare
informazioni con l’esterno
Informatica
Struttura degli elaboratori
Le componenti periferiche aggiungono
altre funzionalità (spesso indispensabili
in pratica per un uso “normale”):
Dischi (hard disk, CD-ROM, DVD, …)
Componenti di I/O (tastiera, mouse,
schermo)
Schede di interfaccia (video, audio, modem,
rete, Bluetooth, USB, …)
Informatica
Architettura interna
Periferiche
Processore
(CPU)
Memoria
primaria
(RAM)
Bus
Informatica
Come funziona…
 Come già detto, il computer da solo sa fare
poche cose:
 spostare informazioni tra processore e
memorie/periferiche, passando attraverso il bus
 manipolare (confrontare, combinare, cambiare)
piccole unità di informazione all’interno del
processore
 Per funzionare, ha bisogno di essere istruito
da un programma
 I programmi:
 sono codificati in modo “comprensibile” al computer
 per lo più risiedono su disco
 per essere eseguiti, devono essere trasferiti in
memoria primaria e da lì, un’istruzione alla volta,
transitare nel processore
Informatica
Come funziona…
Il processore:
legge dalla memoria alternativamente
istruzioni (pezzi di programmi) e dati
scrive nella memoria dati che gli servono
per continuare le sue operazioni
può mandare risultati verso i dispositivi di
output
Tutte le comunicazioni avvengono
attraverso il Bus, che è il dispositivo
primario deputato a trasferire
informazioni all’interno del computer
Informatica
Come funziona…
Disco
Processore
(CPU)
Memoria
primaria
(RAM)
Esecuzione
istruzioni
Bus
Informatica
Caricamento
programma
Come funziona…
Disco
Processore
(CPU)
Memoria
primaria
(RAM)
Trasferimento
dati
Bus
Caricamento dati
Informatica
Come funziona…
Disco
Processore
Memoria
primaria
Bus
Risultati
Informatica
Disp.
Output
La memoria
 La memoria è organizzata a celle
 Ogni cella può contenere un’unità di
informazione (multiplo del byte)
 Le celle sono numerate a partire da zero
 Il numero d’ordine di una cella è il suo
indirizzo
 Il processore individua una cella attraverso il
suo indirizzo e può:
 leggere il suo contenuto
 scriverci dentro un nuovo contenuto
 La struttura logica è analoga per tutti i tipi di
memorie (RAM, dischi, …)
Informatica
Il bus
 Il bus connette tra loro i vari componenti del
computer
 Vi transitano tutte le informazioni che vengono
trasferite da un componente all’altro
 Ha una struttura a corsie:
 corsia per i dati
 corsia per gli indirizzi
 corsia per i comandi
Indirizzi
Dati
Comandi
Informatica
Il bus
 Lettura di un dato:
 nella corsia degli indirizzi compare l’indirizzo della
cella da cui il dato va letto
 nella corsia dei comandi compare un comando di
lettura
 nella corsia dati viene messo il dato ottenuto a
seguito della lettura
 in questo caso il destinatario della lettura è il
processore
Informatica
Il bus
 Scrittura di un dato:
 nella corsia degli indirizzi compare l’indirizzo della
cella in cui il dato va scritto
 nella corsia dei comandi compare un comando di
scrittura
 nella corsia dati viene messo il dato da scrivere
 in questo caso il destinatario della scrittura è la cella
di memoria
 Le periferiche vengono trattate in maniera
simile alla memoria
Informatica
Il processore (CPU)
Componenti principali:
Unità aritmetico-logica (ALU): esegue le
istruzioni che sono di tipo aritmetico (per
esempio, somma) oppure logico (per
esempio confrontare se due valori sono
uguali)
Unità di controllo: prende istruzioni e dati
dalla memoria e comanda la ALU, quindi
comanda il flusso dell’esecuzione
Registri: sono una (piccola) memoria
privata della CPU in cui immagazzina
temporaneamente i dati su cui sta
lavorando
Informatica
I programmi
 Già visto che:
 Sono sequenze di istruzioni che possono essere
eseguite dal computer
 Codificano algoritmi
 Vengono caricati in memoria ed eseguiti un’istruzione
alla volta
 Possono produrre risultati che vengono scritti o
visualizzati sulle periferiche
 Tipologie di programmi:
 batch: gira in modo autonomo (esempio: antivirus)
 interattivo: prevede azioni da parte di un utente
(esempio: videogioco, browser internet, posta
elettronica, …)
Informatica
Il sistema operativo
“Il programma dei programmi”:
permette al computer di funzionare
è il primo a partire quando si accende il
computer e l’ultimo a fermarsi
gestisce autonomamente tutta una serie di
processi batch
permette all’utente di interagire per lanciare
altri programmi
nei computer odierni, l’interazione avviene
attraverso un’interfaccia grafica (sistema a
finestre)
Informatica
Il sistema operativo
 Sistemi operativi per personal computer:
 Linux: per architettura PC, codice open source su base Unix,
diverse interfacce utente
 MacOS: per architettura Apple Macintosh, propretario su
base Unix (solo dalle ultime versioni)
 Windows: per architettura PC, proprietario
 Dal punto di vista dell’architettura possono essere molto
diversi uno dall’altro
 Dal punto di vista dell’utente, a grandi linee si somigliano
tutti, mentre differiscono nei dettagli, che possono anche
cambiare tra versioni diverse dello stesso sistema
 Un programma per funzionare deve essere compatibile
con l’architettura hardware e con il sistema operativo
 Spesso i programmi applicativi sono disponibili in diverse
versioni per i vari sistemi operativi
Informatica
Interfaccia grafica
 Modo intuitivo di gestire l’interazione tra
programma e utente
 Di solito basata su finestre, menu, cursori,
ecc…
 L’utente agisce con mouse e tastiera e vede un
effetto grafico delle sue azioni sull’interfaccia
grafica
 In realtà, il computer collega le azioni
compiute dall’utente con operazioni di
elaborazione dei dati che non sono sempre
immediatamente visibili
Esempi on-line
Informatica
I file
 I dati ed i programmi sono mantenuti su disco
in “contenitori” logici detti file
 Un file è una sequenza di codici (numeri
binari) organizzati in modo da essere
riconoscibili da un determinato programma
 Un file eseguibile codifica un programma ed è
riconosciuto come tale dal sistema operativo
 Un file di testo è visualizzabile e leggibile mediante
programmi per l’elaborazione di testi
 Ci sono file che codificano immagini, filmati, musica,
archivi, pagine internet, dati di diversa natura
necessari al funzionamento di programmi
Informatica
I file
 Ogni file ha un nome e può avere un’estensione
 L’estensione è un suffisso che aiuta a capire quali sono i
programmi in grado di riconoscere quel tipo di file











.exe : programma eseguibile
.txt : file di testo
.html : pagina web
.pdf : documento leggibile con programmi tipo Acrobat
reader
.doc : documento di testo gestibile con Word
.jpg : immagine codificata in formato jpeg
.wav : formato file audio campionato
.mp3 : formato file audio compresso
.avi : formato video visualizzabile con programmi appositi
.vob : formato video mpeg2 (standard DVD)
.zip : archivio compresso
Informatica
Le cartelle (directory)
Lo spazio su disco è organizzato
logicamente in modo gerarchico
mediante cartelle
Una cartella è un contenitore (come in
uno schedario) che può contenere file
oppure altre cartelle
Si accede ad un file specificando in che
cartella si trova e mediante il suo nome
(che deve essere unico all’interno di
tale cartella)
Esempi on-line
Informatica
Come opera un programma
interattivo
 Avvio (da interfaccia grafica, di solito mediante
doppio click del mouse sull’icona del
programma o di un file che è previsto sia
gestibile con quel programma):
 trasferimento del programma da disco a memoria
RAM
 il sistema operativo associa l’azione di avvio ad un file
eseguibile che è residente su disco
 copia il contenuto di tale file nella memoria RAM
 inizializzazione:
 la CPU incomincia ad eseguire le istruzioni in modo
autonomo
 di solito questa parte serve a compiere operazioni
preliminari che preparano il programma ed affrontare
l’interazione con l’utente
Informatica
Come opera un programma
interattivo
 Interazione:
 secondo i casi, il computer può aspettare che l’utente
faccia qualcosa, oppure continuare ad eseguire il codice
in modo autonomo, ma controllando allo stesso tempo
se ci sono azioni dell’utente
 ad ogni azione dell’utente corrisponde una reazione del
programma che può modificare i dati o produrre un
risultato
 le azioni dell’utente devono essere prevedibili, ossia il
programma assume che l’utente possa effettuare un
determinato numero di azioni elementari (spostare il
mouse, schiacciare un tasto, …) ed associa ad ognuna
di queste azioni un’insieme di operazioni che il
computer compie
 la reazione del computer può dipendere anche dal
momento in cui l’utente compie un’azione e dallo stato
in cui si trova il programma
Esempi videogioco e text editor
Informatica
Come opera un programma
interattivo
 Caricamento dati:
 se avvio il programma attraverso un file di dati, il
programma si mette a lavorare automaticamente su
quei dati
 altrimenti il programma prevede che l’utente possa
decidere di caricare un file di dati mediante un’azione
apposita
 Elaborazione dati:
 avviene in corrispondenza di determinate azioni
decise dall’utente
 in linea di massima il risultato delle elaborazioni è
volatile, cioè va perso se il programma termina
l’esecuzione
Informatica
Come opera un programma
interattivo
 Salvataggio dati:
 in conseguenza di un comando esplicito da parte
dell’utente, il programma salva su disco i risultati
dell’elaborazione effettuata
 in questo modo i risultati diventano permanenti
Informatica
File di testo e text editor
 Un file di testo codifica una sequenza di
caratteri (lettere, cifre, segni ortografici, spazi,
a-capo)
 Ogni carattere viene codificato secondo una
tabella predefinita (ad esempio la tabella
ASCII)
 Un programma di text editor permette di
gestire file di testo:
 visualizzare o stampare il testo
 aggiungere testo
 cancellare testo
 modificare testo
Informatica
File di testo e text editor
 Il testo è organizzato per righe
 Ciascuna riga è una sequenza di caratteri
 Il text editor capisce dove finisce una riga da simboli
speciali presenti nei dati
 Un cursore sul testo visualizzato rappresenta il punto
del testo in cui l’utente può intervenire
 Il cursore si sposta con il mouse o con le frecce sulla
tastiera
 Il text editor offre diversi ausilii tipo:
 possibilità di evidenziare una parte di testo e duplicarla
oppure spostarla in un punto diverso
 possibilità di cercare una parola nel testo e sostituirla con
un’altra
 ecc…
Esempio con notepad
Informatica
Word processor
 Programmi più evoluti permettono di gestire molte altre
caratteristiche della composizione di testi:
 uso di caratteri di diverse dimensioni e in diversi stili e
colori
 organizzazione in capitoli, paragrafi e per punti
 giustificazione del testo
 tabelle
 inserimento di disegni, immagini, …
 ecc…
 Questi programmi prevedono dati codificati in un
formato più complesso
 I codici che rappresentano i caratteri di testo sono
inframezzati da codici che dicono quale stile di carattere
usare, dove comincia un paragrafo, come è strutturata una
tabella, ecc…
Esempio con word
Informatica
Compressione dei file
 L’informazione codificata in un file non sempre
occupa il minimo indispensabile di spazio
 Esistono algoritmi (e programmi) per
comprimere file in modo da archiviarli
occupando meno spazio su disco
 Per essere utilizzato, un file compresso deve
prima essere decompresso
 Esistono due categorie di algoritmi di
compressione:
 lossless, cioè senza perdita di informazione
 lossy, cioè con perdita di informazione
Informatica
Compressione dei file
 Gli algoritmi lossless si possono applicare a
qualunque tipo di file, infatti il contenuto del
file può essere ripristinato al suo stato
originale mediante decompressione
 Gli algoritmi lossy
 si possono utilizzare solo per tipologie specifiche di
dati che siano immediatamente fruibili dall’utente
 di solito si applicano a: immagini (jpeg), filmati
(mpeg4, divx), musica (mp3), rappresentazioni di
oggetti geometrici, …
 alla perdita di informazione corrisponde un degrado
nella qualità dei dati, che spesso non è
immediatamente percepibile
 non si possono mai applicare a programmi o file di
dati utilizzati da programmi, che richiedono sempre
l’integrità di tutta l’informazione, bit per bit
Informatica
Le reti di calcolatori
 I computer si possono collegare tra loro per
formare reti
 Una rete permette ai computer di scambiare
tra loro informazioni e condividere risorse
(hardware, come dischi e stampanti, oppure
software, come programmi e basi di dati)
 Due tipi principali di reti:
 rete locale (LAN): gruppo limitato di computer
presenti in un edificio o un’area ristretta – Alta
condivisione di risorse
 rete geografica (WAN): molti computer su un’area
estesa
 Internet: la rete delle reti
Informatica
Internet e il World Wide Web
 Sviluppo:
 1962-1967: primi studi al MIT
 1967: progetto ARPANET del ministero della difesa USA
sulla sicurezza delle reti telefoniche
 concetto di nodo critico e resistenza ai guasti
 meccanismo di routing
 inizio anni 70: crescita di ARPANET e concetto di
internetworking (compatibilità tra gli standard di
comunicazione)
 Domain name system (DNS)
 Protocollo di comunicazione TCP/IP
 1984: National Science Foundation finanzia la
progettazione della prima rete nazionale civile che collega
tra loro moltissime reti private (tra cui ARPANET)
 1995: adozione del nome Internet
 Il World Wide Web è l’insieme di documenti ipertestuali
messi a disposizione su Internet (pagine web ecc.)
Informatica
Internet e il World Wide Web
 Nomi e indirizzi:
 ogni computer collegato a Internet costituisce un nodo
della rete
 ogni nodo ha un indirizzo univoco, detto numero IP
costituito di quattro numeri tra 0 e 255 separati da punti
 ad esempio 130.251.21.166 è il numero IP del server web
dell’Università di Genova
 i numeri IP sono amministrati da autorità nazionali
coordinate tra loro in modo che non ci siano doppioni
 un nodo che vuole rendere disponibile risorse sul web di
solito ha anche un nome costruito secondo la sintassi DNS
 ad esempio il server dell’Università di Genova si chiama
www.unige.it e quello della facoltà di scienze si chiama
www.scienze.unige.it
 non c’è relazione diretta tra un nome e il corrispondente
numero IP
 per risolvere l’associazione tra nome e numero IP sono
disponibili sulla rete nodi DNS che offrono questo servizio
Informatica
Come ci si collega a Internet
 Nel caso di una rete locale, serve un router
(apparato apposito per “uscire” dalla rete
locale) e un nodo già collegato alla rete con in
quale realizzare un collegamento diretto
 la rete locale di solito riceve un pool di numeri IP che
può assegnare ai suoi computer
 Nel caso di un privato, il router è sostituito da
un modem o altro apparato che permette di
collegarsi mediante rete telefonica ad un
internet provider che è collegato in rete e
fornisce il servizio di collegamento
 il numero IP assegnato dal provider di solito è
provvisorio e non è pubblico, nel senso che è visibile
solo all’interno della sottorete del provider
Informatica
Cosa offre Internet
 pagine web (protocollo http)
 posta elettronica (email) (protocollo smtp)
 trasferimento di file da un computer ad un
altro (protocollo ftp)
 uso di un computer da remoto (protocollo
telnet)
 gruppi di discussione (newsgroup) (protocollo
nntp)
 altri protocolli sono disponibili ad esempio per
videoconferenza, telefonia VoIP, sistemi di
condivisione file Peer-to-peer, videogiochi su
rete
Informatica
I browser per Internet
 programmi per accedere a Internet
 di solito gestiscono diversi protocolli (per lo
meno http)
 forniscono un’interfaccia grafica per la
visualizzazione di ipertesti
 spesso forniscono anche un’interfaccia per la
posta elettronica (smtp) e/o per trasferire file
(ftp)
 sono in grado di chiamare programmi
accessori (plugin) ad esempio per ascoltare
audio, vedere video, o eseguire programmi
 browser più comuni: Microsoft Internet
Explorer, Mozilla Firefox, Netscape Navigator,
Opera
Informatica
Navigare Internet con il browser
 si può accedere direttamente ad un sito
digitando il suo indirizzo (URL)
 di solito si accede a documenti ipertestuali che
possono contenere:
 testo
 immagini
 link ad altri documenti
 accesso a filmati e/o musica
 i link sono visualizzati come parti di testo o
immagini sulle quali su può fare click con il
mouse
 fare click su un link fa sì che il browser carichi
un altro documento a cui tale link fa
riferimento
Esempi on-line
Informatica
La posta elettronica
 Permette lo scambio di messaggi di testo
attraverso Internet
 Su una rete connessa a Internet può essere
attivo un server di posta elettronica
 Ogni utente di quella rete riceve un indirizzo
univoco di posta elettronica al quale può
ricevere messaggi
 nomeutente@indirizzomacchinaserver
 Per consultare la propria posta e spedire
messaggi è necessario un servizio di posta
elettronica connesso al server:
 programma per l’email (può essere incorporato nel
browser)
 oppure un servizio Web per l’email
Informatica
La posta elettronica
 I programmi di email devono essere collegati al server:
 pop o imap per ricevere la posta
 smtp per spedire la posta
 Devono essere inoltre configurati con i dati del mittente
(nome, indirizzo di email, ecc.)
 Permettono di:




controllare la lista dei messaggi ricevuti
leggere un messaggio
scrivere e spedire un messaggio a uno o più indirizzi
cancellare o archiviare messaggi




una cartella per i messaggi ricevuti
una per le copie di quelli inviati
una per quelli buttati (cestino)
diverse cartelle locali per quelli archiviati
 I messaggi sono organizzati in cartelle (come i file)
 Si possono spedire documenti (file) allegati ai messaggi
Informatica
I motori di ricerca
 Servizi Internet per reperire risorse sul Web tramite
parole chiave
 Si accede tramite una pagina Web:





www.altavista.com
www.excite.com
www.google.com (oppure www.google.it)
www.lycos.com
www.yahoo.com
 Questa prevede sempre uno spazio in cui l’utente può
inserire una query
 Una query è un insieme di parole chiave che designano
l’argomento che interessa all’utente
 Il motore di ricerca cerca su Internet tutti i documenti
ipertestuali che contengono quelle parole chiave e ne
riporta un elenco
Informatica
I motori di ricerca
 Come si struttura una query:
 in generale, il motore cerca i documenti che
contengono qualunque parola tra quelle inserite nella
query
 riporta i risultati in ordine di rilevanza, quindi ci
saranno prima quelli che contengono più parole e/o
in cui queste sono vicine nel testo
 se si vuole che un termine sia necessariamente nel
testo bisogna farlo precedere da un segno +
 se si vuole cercare un’intera frase bisogna scriverla
tra virgolette
 se si vuole escludere un termine dalla ricerca bisogna
farlo precedere da un segno –
 ci sono molti altri “trucchi” che si possono usare per
rendere più efficiente e precisa una ricerca
Informatica
Scarica

Pre-corso