Sei sulla pagina 1di 23

Introduzione all'Informatica

INFORMATICA
Corsi di Educazione, Ed. Comunità, Comunicazione e
Psicologia
a.a. 2010/2011
ing. Orazio Gambino
Introduzione 1/2
• L’informatica è una tra le discipline scientifiche
più giovani e stimolanti
• Evoluzione continua:
– Realtà virtuale
– Telemedicina
– Supercalcolatori
– Monitoraggio ambientale

DICGIM ing. Orazio Gambino


Introduzione 2/2
• Non sempre intuitivamente si riesce a
comprendere gli argomenti che sono oggetto
dell’informatica
• INFORMazione automATICA

DICGIM ing. Orazio Gambino


Malintesi 1/2
• Primo malinteso
– L’informatica è lo studio dei calcolatori
• Secondo malinteso
– L’informatica è lo studio di come scrivere
programmi per calcolatori
• Terzo malinteso
– L’informatica è lo studio degli utilizzi e delle
applicazioni dei calcolatori e del software

DICGIM ing. Orazio Gambino


Malintesi 2/2
• Fellows and Parberry, Computing Research
News, 1993
– L’informatica non riguarda i calcolatori più che
l’astronomia i telescopi, la biologia i microscopi o
la chimica storte e provette. La scienza non
riguarda i dispositivi: riguarda il modo in cui li
utilizziamo e che cosa scopriamo utilizzandoli

DICGIM ing. Orazio Gambino


La definizione di informatica 1/2

• Il concetto centrale nell’informatica è il concetto


di algoritmo
• Gibbs&Tucker, Communications of the ACM,
29(3), 1986
– Informatica: lo studio degli algoritmi, che
comprende:
• Le loro proprietà formali e matematiche
• Le loro realizzazioni hardware
• Le loro realizzazioni linguistiche
• Le loro applicazioni

DICGIM ing. Orazio Gambino


La definizione di informatica 2/2
• Algoritmo
(da Abu Ja’far Muhammad ibn-Musa Al-
Khwarizmi, 850-780 a.c.)
– Una procedura per risolvere matematicamente un
problema in un numero finito di passi, che spesso
comprende ripetizioni di una operazione.
– In generale: un metodo passo-passo per eseguire
un dato compito.

DICGIM ing. Orazio Gambino


Algoritmi nella vita di tutti i giorni

 Programmare un VCR • Pseudocodice


1. Se orologio e calendario non sono • Operazioni sequenziali
configurati vai a pag. 9
– Realizza un solo compito ben
2. Inserisci una videocassetta nuova nel VCR definito
3. Ripeti i passi da 4 a 7, per tutti i canali da
– Il controllo passa all’operazione
registrare fino a un massimo di 10
successiva quando il compito è
4. Inserisci il numero canale da finito
registrare e premi CHAN
– Frase dichiarativa
5. Inserisci l’ora di inizio spettacolo e
• Operazioni condizionali
premi TIME-START
6. Inserisci l’ora di fine spettacolo e – Selezionano l’operazione
premi TIME-FINISH successiva sulla base di una
domanda
7. Lo spettacolo sarà registrato. Se non
vuoi registrare altri spettacoli premi • Operazioni iterative
END-PROG – Eseguono un ciclo di istruzioni
8. Premi TIMER. Il VCR ora è pronto fino a quando la condizione di
uscita è verificata

DICGIM ing. Orazio Gambino


Esempio precedente: sistemi
embedded
In informatica, con il termine sistema embedded
(generalmente tradotto in italiano con sistema immerso o
incorporato) si identificano genericamente tutti quei sistemi
elettronici a microprocessore progettati appositamente per
una determinata applicazione (special purpose) ovvero non
riprogrammabili dall'utente per altri scopi, spesso con una
piattaforma hardware ad hoc, integrati nel sistema che
controllano ed in grado di gestirne tutte o parte delle
funzionalità.
Un esempio diffuso di Sistema embedded sono le centraline
elettroniche installate a bordo degli autoveicoli per il controllo
del motore e dell'ABS.
Fonte : Wikipedia.
DICGIM ing. Orazio Gambino
Algoritmi 1/2
• I matematici utilizzano continuamente
algoritmi;
• Gran parte del lavoro svolto dai primi
scienziati greci, romani, persiani e indiani
comportava la scoperta di algoritmi per
importanti problemi della geometria e
dell’aritmetica
– Es., l’algoritmo di Euclide per trovare il massimo
divisore comune di due numeri interi positivi

DICGIM ing. Orazio Gambino


Algoritmi 2/2

• Abbiamo studiato vari Per es., alle elementari


algoritmi perfino alle abbiamo imparato un
scuole elementari, algoritmo per sommare
anche se non lo due numeri come
sapevamo 47 +
25 =
____
72

DICGIM ing. Orazio Gambino


Somma di due numeri 1/2
• Le istruzioni ricevute dall’insegnante:
1. prima somma la colonna di numeri più a destra
(7 + 5), ottenendo il valore 12.
2. Scrivi il 2 sotto la linea e riporta l’1 nella colonna
a sinistra.
3. Ora passa alla colonna a sinistra sommando (4 +
2) con il valore riportato di 1, ottenendo 7.
4. Scrivi questo valore sotto la linea, così ottieni la
soluzione: 72.

DICGIM ing. Orazio Gambino


Algoritmo per sommare due numeri dì m cifre
Dati: m≥1 e due numeri positivi ognuno contenente m cifre am-1 ,
am-2,..,a0 e bm-1 , bm-2,..,b0 ; Trovare: cm ,cm-1 , cm-2,..,c0 dove
cm ,cm-1 , cm-2,..,c0 = (am-1 , am-2,..,a0 )+(bm-1 , bm-2,..,b0)
Algoritmo:
Passo 1 Imposta il valore di riporto a 0.
Passo 2 Imposta il valore di i a 0
Passo 3 Finché il valore di i è minore o uguale a m - 1, ripeti te-
istruzioni dei passi da 4 a 6.
Passo 4 Somma le due cifre ai e bi al valore corrente di riporto
per ottenere ci
Passo 5 Se ci ≥ 10, allora riporta ci a (ci - 10) e imposta il valore
di riporto a 1; altrimenti, imposta il nuovo vatore di riporto= 0.
Passo 6 Somma 1 a i, spostandoti di una colonna a sinistra.
Passo 7 Imposta cm al valore di riporto.
Passo 8 Stampa te soluzione finale, cm ,cm-1 , cm-2,..,c0
Passo9 Stop.
Somma (47+25): m = 2 ; a1= 4 a0 = 7 b1 = 2 b 0 =5
Passo 1: riporto = 0.
Passo 2: i =0.
Passo 3: ripeti i passi da 4 a 6 finché i è minore o uguale a 1.
Prima ripetizione del ciclo (i ha il valore 0, riporto ha valore 0)
Passo 4: Somma (a0 + b0 + riporto), che è 7 + 5 + 0. perciò c0=12.
Passo 5: Poiché c0 ≥ 10. reimposta c0 a 12-10=2 e riporto a 1.
Passo 6: Reimposta i a (0+1) = 1. Poiché i è minore o uguale a 1.
toma al passo 4.
Seconda ripetizione del ciclo (i ha il valore 1,riporto ha valore 1)
Passo 4: Somma (a1+ b1+riporto), che è 4 + 2 + 1. perciò c1 = 7.
Passo 5: Poiché c1 ≤ 10, reimposta riporto a 0.
Passo 6: Reimposta i a (1 + 1) = 2. Poiché i è maggiore di 1, non
ripetere il ciclo ma vai al passo 7.
Passo 7: Imposta c2 = 0.
Passo 8: Stampa il risultato c2 c1 c0 = 072 (valori in grassetto).
Passo 9: Stop.
DICGIM ing. Orazio Gambino
Importanza degli algoritmi
• Se siamo in grado di specificare un algoritmo
per risolvere un problema, allora siamo in
grado di automatizzarne la soluzione.
• Nella terminologia informatica la macchina, il
robot, la persona o l’entità che esegue i
passaggi dell’algoritmo si chiama agente di
calcolo
– Agente di calcolo: chi o cosa realizza l’algoritmo

DICGIM ing. Orazio Gambino


Non tutto si può risolvere …

• Problemi non risolubili con approccio


algoritmico. Teorema di incompletezza di
Göedel:
“Per ogni sistema formale di regole ed
assiomi è possibile arrivare a proposizioni
indecidibili (cioè né vere, né false), usando
gli assiomi dello stesso sistema formale.”

DICGIM ing. Orazio Gambino


Non tutto si può risolvere …
• Si rifletta sul significato dell'affermazione
“QUESTA FRASE E’ FALSA".
Qual è il suo significato ?
Se la frase è vera allora è vero che è falsa e,
quindi, non può essere vera; se, invece, la
frase è falsa allora è falso che la frase è falsa e
quindi deve essere vera. La frase è
semplicemente indecidibile, ovvero è sia falsa
che vera e sia non-falsa che non-vera.

DICGIM ing. Orazio Gambino


Non tutto si può risolvere …

• Due tipi di infinito: infinito matematico ed infinito fisico.


Seguono due definizioni intuitive:
– Infinito matematico: è possibile contare gli elementi di un insieme
ma non esiste un limite. Es: contare tutti i numeri naturali.
– Infinito fisico: è possibile contare gli elementi di un insieme, esiste
un limite, ma il tempo richiesto supera il tempo utile (tempo utile:
vita umana, esistenza della civiltà umana…).
Es: contare tutti i granelli di sabbia del pianeta Terra.
• Problemi risolvibili con algoritmi, ma non in maniera
efficiente (tempo infinito matematico di calcolo)

– Esempio:
Calcolo di tutti i numeri primi.

DICGIM ing. Orazio Gambino


Non tutto si può risolvere …

• Problemi risolubili con approcci non


algoritmici (procedimento euristico):

“Nelle scienze ipotetico-deduttive, come la


matematica, si dice di procedimento non
rigoroso (approssimativo, intuitivo, analogico)
che permette di conseguire un risultato da
verificare poi in modo rigoroso.”

fonte: dizionario Garzanti


DICGIM ing. Orazio Gambino
Non tutto si può risolvere …

Esempio di problema
risolvibile con
approccio euristico
anziché algoritmico:
Il labirinto.

DICGIM ing. Orazio Gambino


Non tutto si può risolvere …
• I problemi risolvibili con approccio euristico e
richiedono spesso un tempo di calcolo più
lungo di quello algoritmico o addirittura un
tempo infinito fisico, se non matematico.
• I problemi non risolvibili efficientemente sono
utilissimi nel campo della sicurezza
informatica:
– Esempio: Password di un sistema, sistemi
crittografici …

DICGIM ing. Orazio Gambino


Definizione Formale di Algoritmo
• Un insieme ben ordinato di operazioni non
ambigue ed effettivamente calcolabili che,
eseguito, produce un risultato e termina in
una quantità finita di tempo.
– Insieme ben ordinato
– Operazioni non ambigue e calcolabili
– Produce un risultato
– Termina in una quantità finita di tempo

DICGIM ing. Orazio Gambino


Definizione Formale di Algoritmo
Dati Informazioni
Algoritmo

• Un programma è l’implementazione su
elaboratore di un algoritmo tramite
linguaggio di programmazione.
• Anche un programma necessita, quindi, di
dati in ingresso per generare informazione
in uscita.
DICGIM ing. Orazio Gambino