Università degli Studi di
Salerno
Ing. Fabio Clarizia
Informatica
Introduzione all’Informatica e alla
rappresentazione dell’informazione
Introduzione all'Informatica e alla rappresentazione dell'informazione
n
Cosa è l'informatica
n
Rappresentazione dell'informazione
n
Codifica dell'informazione
n
Definizione dei concetti di bit e di byte
n
Il calcolatore: principi di base
n
Il concetto di algoritmo
n
I linguaggi naturali e i linguaggi di programmazione
n
I connettivi logici
Cos’è l’informatica
La parola Informatica…
•
deriva
dal francese
“Informatique”e
dall’unione
di
due
termini
infor(mazione) + (auto)matica.
•
è
stat
a
coniata per
denotare
la
disciplina che studia
l’uso dei
calcolatori
elettronici per elaborare l’informazione
.
e quindi l’Informatica
…
•
è quella scienza che studia come rappresentare, organizzare,
manipolare l’
informazione
•
può
essere
vista
come corrispondente
dell’inglese
Computer
Science
(Scienza dei Calcolatori).
L’
Information & Communication Technology (ICT) indica
l’insieme
delle
tecnologie
che uniscono le
funzioni dell’informatica alla trasmissione
dei
dati
,
in modo da poter realizzare applicazioni distribuite
attraverso
la
cooperazione
di
più computer.
Il concetto di Informazione e sua rappresentazione
Esistono molte definizioni del (difficile/facile?) concetto di informazione….
Ogni messaggio utilizza un codice che deve essere comune a chi lo trasmette e a chi lo riceve, e sulla cui base il messaggio stesso deve essere interpretato.
I codici utilizzano un certo numero di simboli di base e costruiscono messaggi complessi combinando fra loro i simboli di base sulla base di apposite regole di combinazione.
Stabilire esattamente quali siano i simboli semplici e quali siano le combinazioni ammesse può essere assai difficile, soprattutto nel caso delle lingue storico-naturali (i simboli di base saranno le singole lettere, le parole che troviamo in un dizionario, o qualcos'altro ancora? Sembra naturale pensare che chi codifica un messaggio lo faccia attraverso una successione
di scelte, scelte effettuate fra i simboli semplici e le combinazioni di simboli semplici messe
a sua disposizione dal codice che sta utilizzando
Il concetto di Informazione e sua rappresentazione
..Noi assumeremo quella che vede l’informazione come
scelta
tra diverse
alternative, situata in un
contesto
che ne consente
l’interpretazione
esempio di
testo
la
donna
è immobile
qual
piuma
al
vento
esempio di
immagine
esempio di
numeri
12
3x
254
181+23
32/4
Partit o Musica le W la mu sica f(x)dx 0 ∞$
Via col Vento@
esempio di
simboli
Nota importante:I simboli hanno una forma ben precisa che ci consente di distinguerli l’uno dall’altro.
Livelli di Informazione
Pragmatica Semantica Sintattica$
α
β
A
B
C
parole
suoni
immag
ini
Do
Re
Mond
o7
dell'ar9
e
Mondo7della7
musica
Livello dei contesti
Livello dei significati
Livello dei simboli
Mondo7dello7
spe;acolo
$
Livelli di Informazione: esempio
Guernica, Pablo Picasso
Macchie di inchiostro Caratteri
Parole Nomi
Il contesto (essere in un museo) completa l’informazione e i nomi diventano il titolo e l’autore di un quadro famoso
Codifica dell’informazione [1]
•
L’associazione tra un insieme di simboli e un insieme di
significati si chiama CODIFICA
•
La codifica realizza una corrispondenza tra i simboli e il
significato.
•
In base a questa associazione, il simbolo porta
l’informazione (anche se non è l’informazione in se)
•
Ad esempio, il simbolo “3” è associato al numero tre
•
L’insieme dei simboli utilizzati viene detto alfabeto e la
regola di associazione viene detta codice
Codifica dell’informazione [2]
Tutti noi siamo
abituati a codificare
l’informazione.
Pensate alla lingua scritta: un
(piccolo) insieme di simboli, i
caratteri dell’alfabeto, vengono
utilizzati per comporre parole e
frasi che possono
esprimere
qualunque concetto.
Gli stessi
simboli vengono usati
di
volta in volta per esprimere
matematica, poesia, letteratura,
economia,
leggi, ecc., ecc.
L’informazione
è codificata
da questi simboli.
a, b, c, d, e...z 0,1,2...9
amore, cuore, capanna, mamma, dolore, professore, zibaldone,
procellaria, pinguino, leone, ecc. ecc. 31, 25, 888, 313, 1024
La mia banda suona il rock, ma è un rock bambino…
La donzelletta che vien dalla campagna…
E= mc2
Gli investimenti effettuati
nel triennio 2003 2006 possono essere considerati... 31 simboli: 21 caratteri 10 cifre centinaia di migliaia di parole ed infiniti numeri milioni di frasi per milioni di concetti
Codifica dell’informazione [3]
Combinando i 21
simboli dell’alfabeto italiano ed
i 10 simboli delle cifre decimali si possono
codificare parole, frasi e numeri.
ma l’alfabeto italiano non
è l’unico codice
possibile…
…c’è l’alfabeto
greco, cirillico, arabo,ecc.
A, b, c, … z
Α, β, χ, ... ζ
Nota importante:
Al concetto di “numero tre” possono corrispondere diverse rappresentazioni simboliche: “3”, “III”, “tre”, “three”, “trois” È possibile passare da una codifica a un’altra, operazione che viene chiamata transcodifica
Codifica dell’informazione [4]
Tra i vari possibili codici, il più
semplice è quello binario.
Il codice binario è composto
da
soli
due simboli
“0”
e “1”
Usando opportune combinazioni
(stringhe) di bit è possibile
codificare qualsiasi informazione.
Dunque possiamo codificare in
binario sia i dati che
vogliamo
elaborare che le istruzioni che ci
dicono come farlo.
0,1 00010110101000101 10010011001000010001 11110010010010001001001 due simboli stringhe di bit informazioni La do nna è mo bile qual piuma al vent o 123 x 245 = 281 +333 =
Definizione delle nozioni di bit e byte [1]
gli stati sono assimilabili al concetto di circuito aperto e circuito chiuso dell’elettronica.
•
Se l’informazione è scelta, la più piccola quantità di informazione
è quella associabile a una scelta binaria
•
Questa informazione elementare viene detta bit (dall’inglese
binary digit = numero binario)
•
Occorreranno infatti due soli simboli da associare alle due possibilità offerte dalla scelta binaria: “0” e “1”
•
Il PC parla un linguaggio fatto di sole 2 cifre ovvero 0 e 1 che sono gli
stati del bit
Qualsiasi dato, qualsiasi programma, qualsiasi
contenuto multimediale, ecc. memorizzato in
un computer non è altro che una lunga
Definizione delle nozioni di bit e byte [2]
Infatti, si può sempre ricondurre una scelta tra molte possibilità a una
sequenza
di scelte binarie
Voglio scegliere lun nell’insieme [ lun, mar, mer, gio, ven, sab, dom]
[ lun, mar, mer, gio] [ven, sab, dom]
[ lun, mar] [mer, gio]
[ lun] [mar]
Ripeto il procedimento
divido l’insieme di partenza in due
sottoinsiemi e ne scelgo uno
Ancora una volta
La scelta di lun equivale alle tre scelte binarie indicate dalla sequenza
000
Un insieme di 8 bit quanti valori diversi può contenere?
Risposta: 2
8= 256 Da 0 a 11111111
Definizione delle nozioni di bit e byte [3]
Alcune semplici leggi combinatorie ci consentono di capire quanti bit sono necessari per rappresentare un certo numero di oggetti
Quanti oggetti posso codificare con k bit?
‣ 1 bit ⇒ 2 combinazioni (0, 1) ⇒ 2 oggetti
‣ 2 bit ⇒ 4 combinazioni (00, 01, 10, 11) ⇒ 4 oggetti
‣ 3 bit ⇒ 8 combinazioni (000, 001, …, 111) ⇒ 8 oggetti
‣ …
‣ k bit ⇒ 2k combinazioni ⇒ 2k oggetti
Quanti bit mi servono per codificare N oggetti?
N ≤ 2k ⇒ k ≥ log
Definizione delle nozioni di bit e byte [4]
bit solo due stati, 0 oppure 1
Byte 8 bit, quindi 28 = 256 stati
KiloByte [KB] 210 Byte = 1024 Byte ~ 103 Byte
MegaByte [MB]
220 Byte = 1'048'576 Byte ~ 106 Byte GigaByte [GB] 230 Byte ~ 109 Byte
TeraByte [TB] 240 Byte ~ 1012 Byte
PetaByte [PB] 250 Byte ~ 1015 Byte
ExaByte [EB] 260 Byte ~ 1018 Byte
Il più famoso multiplo del bit è il
byte
costituito da
8
bit. Su questa base possiamo
introdurre i multipli successivi:
Definizione delle nozioni di bit e byte [5]
Mentre noi umani contiamo con 10 dita, il PC ne usa solo 2:
..e come è in grado di rappresentare il numero 123???
Facciamo allora un passo indietro…
i numeri vengono rappresentati con la notazione posizionale pesata:
123 = 1 x 100 + 2 x 10 + 3 x 1
- Ogni cifra assume un peso diverso in base alla sua posizione
- Il peso è una potenza intera della base di numerazione
Definizione delle nozioni di bit e byte [3]
‣
Esempio Base 10:
b = 10, cifre = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } rappresentazione di sedici: 16 Infatti: 16 = 1*101 + 6 x 100= 10 + 6 rappresentazione di duecentododici: 212 Infatti: 212 = 2*102 + 1 x 101+2 x 100 = 200 + 10 + 2Esempio Base 2:
b = 2, cifre = { 0 , 1 } rappresentazione di quindici: 1111 Infatti: 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15 rappresentazione di duecentododici: 11010100 Infatti: 11010100 =1*27 +1*26 +0*25 +1*24 +0*23+1*22+0*21+0*20 = 128 + 64 + 16 + 4 = 212Definizione delle nozioni di bit e byte [3]
‣
Base di rappresentazione (b)
‣
Si usano b cifre (simboli associati ai numeri da 0 a b -1)
‣
Se ad esempio voglio rappresentare il numero
n = a
m×
b
m+ a
m-1×
b
m -1+
…
+
a
1×
b
1+ a
0×
b
0=
∑
ia
i×
b
i‣
Userò la rappresentazione:
a
ma
m -1…
a
1a
0‣
In queste ipotesi la rappresentazione è unica
Definizione delle nozioni di bit e byte [3]: Codifica Esadecimale
A
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
□ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 □ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 □ 20, 21, 22, 23, 24, 25, 26, 27, 28, 19, 2A, 2B, 2C, 2D, 2E, 2F 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47Il calcolatore: principi di base [1]
Il mezzo che permette l’elaborazione e la fruizione delle
informazioni è il calcolatore elettronico o computer.
Il computer come noi lo conosciamo nasce da studi condotti
durante la seconda guerra mondiale ed ha poco più di 60 anni di vita.
Si tratta certamente di una delle macchine di maggior successo nella storia delle
scienze ed oggi conta innumerevoli campi di applicazione. Ecco una lista di alcuni
settori nei quali l’introduzione del calcolatore ha avuto un impatto molto significativo:
q calcolo scientifico;
q automazione industriale;
q didattica multimediale;
q comunicazione (posta elettronica, internet);
q grafica computerizzata;
q commercio elettronico;
q intrattenimento (videogames);
Il calcolatore: principi di base [2]
§
Uno dei punti di forza del computer consiste nella sua duplice
natura
hardware e software.
§
Possiamo iniziare lo
studio del nostro
calcolatore osservando che il
computer
non
è altro che un elaboratore
elettronico
, cioè una macchina
in grado di
elaborare le informazioni
utilizzando componenti
elettrici,
elettronici e meccanici
.
§
Anche se oggi la cosa ci appare del tutto naturale, fino a pochi anni fa l’idea di
una macchina fisica in grado di manipolare una cosa immateriale come
Elaborazione dell’informazione: Concetto di algoritmo [1]
Abbiamo visto fino ad ora come rappresentare l’informazione
Ora vogliamo studiare come elaborarla per risolvere problemi
L’informatica consiste in larga
parte in questo: trovare soluzioni a problemi, assicurandosi che tali soluzioni possano essere attuate da una macchina
Di fronte a molti problemi, ci limitiamo a considerare la procedura risolutiva come una scatola chiusa, che prende dei dati in input e restituisce degli output
Noi vogliamo scoperchiare la scatola e scoprire cosa c’è dentro!
Dati in input Dati in output (soluzione) ELABORAZION E ELABORAZIONE
Elaborazione dell’informazione: Concetto di algoritmo [2]
Abbiamo un istruttore, che sa come risolvere il problema, che esprime la sua conoscenza sotto forma di sequenza di operazioni elementari che un
esecutore è in grado di eseguire
cuoco ricetta io
Sa fare una torta So fare alcune operazioni elementari (accendere il forno, sbattere le uova…)
Elaborazione dell’informazione: Concetto di algoritmo [3]
q Ambiguità della lingua italiana. Cosa vuol dire «montare le uova»?
q Misure imprecise: quanto grande è il bicchierino di latte? Cosa significa
«zucchero a velo quanto basta»?
q Informazioni incomplete: che forma deve avere la teglia?
q Casi non contemplati: cosa devo fare se le uova sono marce?
q La ricetta può essere facilmente seguita da un essere umano, nonostante
presenti numerosi problemi…
q Descrivere la fase di elaborazione (la procedura risolutiva del nostro problema)
consiste quindi nell’elencare una serie di operazioni elementari da effettuare in sequenza (la ricetta)
q Tuttavia siamo abituati a soluzioni incomplete e imprecise, e dobbiamo fare ricorso alle
nostre conoscenze per colmare queste lacune
q Con un computer dovremo essere più rigorosi!
Esprimere la soluzione di un problema in termini di
operazioni elementari, in
maniera corretta, completa e
non ambigua, affinché sia
possibile automatizzarla (farla eseguire da un computer!)
Elaborazione dell’informazione: Concetto di algoritmo [4]
Algoritmo:Sistema di regole e procedure di
calcolo ben definite che portano alla soluzione di un problema con un numero finito di operazioni
PROGRAMMA: descrizione di un algoritmo in un
linguaggio comprensibile dall’elaboratore
La definizione di un algoritmo è basata sulla
disponibilità di INPUT e implica la loro
trasformazione per la produzione di un OUTPUT Esempi:
q Ricetta per realizzazione di un piatto
q Istruzioni di montaggio di un elettrodomestico
q Prelievo bancomat
IN
GREDIENTI
RICETTA
UTENSILI
T
ORTA
S
oftware
Hardware
a
lgoritmo
Concetto di algoritmo [2]
Gli algoritmi sono espressi mediante un linguaggio e sono realizzati da un esecutore
(uomo o macchina)
Nell’elaboratore gli algoritmi per la soluzioni di particolari problemi sono espressi mediante un linguaggio di programmazione.
Linguaggio di programmazione = linguaggio formale che l’elaboratore è in grado
di comprendere
Elaboratore
INPUT
OU
T
PUT
Trasformazione dei dati di ingresso seguendo le prescrizioni specificate da un opportuno algoritmo
descritto mediante un linguaggio di programmazione Umano
(che definisce l’algoritmo)
Elaboratore
che conosce solo alcune azioni elementari: es. confronto tra due numeri, operazioni aritmetiche
programma
Insieme di dati ammissibili
Insieme di dati desiderati
I linguaggi naturali e i linguaggi di programmazione [1]
L’elaboratore esegue programmi
Un programma eseguibile dal computer è una sequenza di istruzioni macchina
comprensibili da quel computer.
Usando combinazioni diverse di istruzioni e dati possiamo far fare al
computer le cose più disparate.
I linguaggi di programmazione permettono di scrivere programmi con una
I linguaggi naturali e i linguaggi di programmazione [2]
Analogie:
Nella semantica della composizione del testo:
• Sia una frase che un’istruzione possono essere corrette
grammaticalmente e sintatticamente, pur non avendo significato e non potendo essere eseguita.
Una "corretta" composizione di frasi non necessariamente dà luogo
a frasi sensate,come successioni di istruzioni corrette non danno necessariamente luogo a un programma completo.
Differenze:
Una frase comprensibile può essere scorretta (sintatticamente), mentre la programmazione può essere portata al fallimento dal minimo errore (sintattico).
Una frase può essere ambigua in un contesto e non esserlo in un
altro, mentre non c’è interdipendenza tra le istruzioni dei linguaggi di programmazione ed il contesto.
Nel linguaggio naturale uno stesso termine può avere un
valore diverso all’interno di una frase (sinonimo), mentre in un linguaggio di programmazione ben concepito ogni simbolo ha
I connettivi logici [1]
Per poter isolare la struttura logica del linguaggio naturale, valutare la correttezza di un ragionamento, di una deduzione, di una argomentazione espressa in linguaggio
naturale è utile selezionare una plausibile struttura logica del discorso naturale, lasciando perdere altri aspetti.
A causa delle vastissime risorse espressive del linguaggio naturale, questa operazione avrà necessariamente l’aspetto di uno sfrondamento, di una riduzione all’essenziale, di una riformulazione che acquista univocità ma che perde sfumature.
Questa operazione, detta ascesa sintattica, arriva alla costruzione di un linguaggio artificiale noto come il linguaggio della logica dei predicati.
I connettivi logici [1]
Una
Proposizione
è
ogni
espressione linguistica
per la
quale
abbia
senso
chiedersi
se è vera o falsa
Assumiamo che i termini naturali "se ... allora ...", "oppure" , "e" , "non" (e sinonimi, ad es. "implica", "o"...) abbiano un ruolo centrale nella combinazione logica delle
proposizioni e associamo ad essi i simboli - detti connettivi logici:
¬ (non) ∧ (e)
→ (se … allora) ∨ (o,oppure)
I connettivi logici [2]
La
negazione (NOT)
è il connettivo che inverte il valore di verità di una proposizione
La tavola di verità per la negazione è
ovvia:
La disgiunzione (AND) di due proposizioni A e B è la proposizione vera se entrambe
A e B sono vere, falsa in tutti gli altri casi. La tavola di verità per la congiunzione:
A B A ∧ B
V V
V
V F
F
F V
F
F
F
F
A
¬ A
V
F
F
V
I connettivi logici [3]
La
congiunzione (OR) di
due proposizioni A e B è la proposizione vera se almeno
una delle due fra A e B è vera, falsa se entrambe sono false
La tavola di verità per la
disgiunzione:
Il
condizionale materiale
è traducibile (indicativamente) con l’espressione
italiana “se..allora”. Un enunciato condizionale è falso nel caso in cui il suo
antecedente sia vero e il conseguente falso
La tavola di verità per il
condizionale materiale
(
→
):
A B A ∨ B
V V
V
V F
V
F V
V
F
F
F
A B A→B
V V
V
V F
F
F V
V
F
F
V
I connettivi logici [3]
1) A : «4 è un numero pari»
B : «5 è un numero dispari»
2) A : «Eros Ramazzotti è un ballerino»
B : «Fabio Capello è un cantante»
3) A: «8 è un multiplo di 4»
B: «9 è un multiplo di 5»
A B A ∨ B
V V
V
F F
F
V F
V
A B A→B
A B A ∧ B
V V
V
F F
F
V F
F
Il concetto di hardware e software [1]
§
L’
hardware
è l’insieme dei dispositivi
fisici, elettronici e meccanici
che costituiscono l’elaboratore e che permettono l’esecuzione
materiale delle operazioni.
§
Di solito
si dice che è la parte che
si
può
“toccare” o
“prendere
a calci”.
§
In realtà l’hardware non
comprende solo
l’esterno del calcolatore, ma
anche il suo
interno.
Se
provassimo
a costruire una
lista di componenti
hardware
potremmo
elencare:
• Processore (CPU); • Hard Disk (HD); • Scheda video; • Scheda di rete; • Monitor; • Tastiera; • Webcam; • Mouse;Il concetto di hardware e software [2]
§
Il software è l’insieme delle applicazioni, dette anche programmi, finalizzate alla risoluzione di un determinato problema o allo svolgimento di particolari attività.
§
Il software consiste in una serie di istruzioni date alla macchina hardware affinchè essa svolga determinati compiti.
§
Il punto di forza dei computer (l’idea di fondo alla base del loro successo) sta nel fatto che queste istruzioni possono essere codificate e conservate nella macchina stessa.
ma
anche nel fatto che...
§
Il software cambia a seconda dell’utilizzo che se ne deve fare!
§
In questo modo la stessa macchina hardware diviene, di volta in volta, una
macchina diversa.
§
Per fissare questo concetto pensiamo a come il nostro personal computer
divenga una macchina da scrivere, uno strumento per disegnare, una consolle
Il concetto di hardware e software [4]
E’ possibile distinguere due principali categorie di software: • software di sistema;
• software applicativo.
Il software di sistema, il cui esempio principale è il cosiddetto Sistema Operativo, ha lo
scopo di permettere all’utente di interagire facilmente con l’hardware, sfruttandone a pieno le potenzialità. Esempi di SO sono: Microsoft Windows (Xp, 7, Vista, 10,ecc.);
Il concetto di hardware e software [5]
Il software applicativo è formato dall’insieme di programmi che permettono lo svolgimento di uno specifico compito. Alcuni esempi di software applicativi sono:
• il pacchetto Office della Microsoft, che permette la scrittura (Word), la gestione di
database (Access), la creazione di presentazioni (Power Point) e la gestione di Fogli Elettronici (Excel);
• Firefox, Internet Explore, Google Chrome famosi browser ovvero un software che
permettono la navigazione in Internet (Rete di reti);
• Eudora, Microsoft Outlook, ThunderBird notissimi programmi che gestiscono la