Informatica per la comunicazione"
- lezione 3 Il problema del
buonsenso."
Quello del buonsenso (o “common
sense” in inglese) diventa un
problema nel momento in cui devo
fare un elenco esaustivo di tutta
l’informazione che lo compone per
poter istruire in maniera adeguata
una macchina di Turing per poterla
considerare intelligente secondo il
gioco proposto da Turing stesso.!
Il problema del buonsenso
è stato già più e più volte
affrontato in passato, senza
che si fosse trovata una
soluzione soddisfacente.
Di seguito riportiamo un
esempio ben più illustre di
quelli della mensa,
p r o p o s t o d a l fi l o s o f o
Dreyfus, professore presso
l’Università di Berkeley in
California.!
Hubert Dreyfus
Today was Jack's birthday. Penny and Janet went to the store.
They were going to get presents.
Janet decided to get a kite. "Don't
do that," said Penny. "Jack has a kite. He will make you
take it back.""
Il significato del breve racconto appare chiaro ai nostri
occhi, ma provate a controllare quante cose abbiamo
dato per scontato e che non sono esplicitamente dette nel
testo. La seguente lista non ha affatto la pretesa di essere
completa.
1) I regali si comprano nei negozi
2) I compleanni si festeggiano con regali
3) Janet e Penny vogliono comprare un regalo per Jack
4) Jack non vuole avere due aquiloni
5) Jack farà riportare indietro l’aquilone nuovo, non quello
vecchio
6) L’aquilone sarà riportato indietro al negozio dove è
stato acquistato!
Abbiamo visto qualche limite (importante) del
computer: si esamina un problema p, e si mostra
che un computer non è in grado di risolvere p. !
Tipico esempio: capire il significato di una parola. Eppure i computer sono in grado di eseguire molte
operazioni, e di risolvere un gran numero di
problemi (mostrarci le pagine di un libro,
connetterci con amici sui social network, scaricare
e ascoltare brani musicali, organizzare la nostra
agenda, guardare film, etc.)!
E’ arrivato il momento di delineare esplicitamente il
campo di lavoro dei computer.!
Esaminiamo che cosa hanno in comune tutte le
soluzioni che un computer è in grado di offrire. !
Software
Si definisce software il complesso di comandi che fanno
eseguire al computer delle operazioni.!
Il termine si contrappone ad hardware, che invece designa
tutto ciò che è materiale e tangibile in un computer.!
Un computer è un insieme di dispositivi elettronici: un computer
è hardware.!
Un computer diventa però utile solo quando fornisce un
servizio, e ciò è possibile solo quando l’hardware è controllato
mediante il software.!
Senza il software, l’hardware è un inutile agglomerato di
plastica, silicio e metalli.!
Senza l’hardware, il software è solo un’idea che potrebbe
essere messa in pratica.!
Tale idea dovrebbe essere la soluzione a un problema.!
E’ facile vedere che non tutti i problemi possono essere risolti mediante il software di
un computer.!
La natura stessa dei computer stabilisce il tipo di problemi che essi sono in grado di
risolvere.!
VS."
Se c’è una differenza nell’hardware, ci sarà probabilmente una differenza anche nello
spettro dei problemi che si possono risolvere.!
Anche il software è coinvolto, perché comunque l’hardware deve essere controllato in
maniera adeguata.!
Ricordatevi che la “matica” in “informatica” viene da “automatica”: il funzionamento
dell’accoppiata hardware-software deve avvenire col minor intervento umano
possibile.!
Tutte queste considerazioni ci aiutano a definire ciò che un computer è in grado di
eseguire.!
I concetti base
?"
Problema"
Un ostacolo, un impedimento, una
"
difficoltà che desideriamo eliminare."
"
"
"
"
!"
Soluzione"
Eliminazione
del problema."
"
"
"
"
"
Computer"
Elaboratore automatico di simboli."
"
"
"
"
"
?"
!"
Il problema si dice risolvibile quando esiste un modo
per raggiungere la soluzione."
Se vogliamo che sia il computer a raggiungere la
soluzione, il problema deve essere espresso sotto
forma di simboli che il computer può elaborare. "
?"
!"
Algoritmo"
Un modo per raggiungere
la soluzione
"
che ha le seguenti
caratteristiche:
1) è una sequenza finita di operazioni
"
ben definite;
2 ) d o p o l ’ e s
e c u z i o n e d i o g n i
operazione, " è chiaro qual è la
successiva (determinismo)."
Muḥammad ibn Mūsā al-Khwārizmī
(780 – 850) Il termine “algoritmo” deriva dal
nome del matematico persiano
al-Kwarizhmi."
"
"
Tra i suoi numerosi meriti, il più
grande è forse quello di aver
importato in occidente il sistema
numerico decimale dall’India.
(Come saprete, gli antichi
Romani non avevano un simbolo
per lo zero.)"
"
Un altro termine che ha le sue radici nel nome di questo matematico è “algebra”."
"
"
"
"La figura nella slide precedente
si trova su un francobollo
s o v i e t i c o , c h e n e l 1 9 8 0
"festeggiava il 1200° anniversario
della nascita di al-Kwarizhmi."
?"
!"
Programma"
Un algoritmo scritto
in maniera tale da
"
poter essere eseguito
da un computer:
3) tutte le operazioni consistono in
"
elaborazioni di simboli;
4) tutte le operazioni
sono eseguibili
dal computer." "
"
?"
!"
Processo"
Un programma in esecuzione su un
"
computer.
"
"
Solitamente
i programmi
risiedono nell’hard
disk
di un computer,
" ed i processi nella RAM. "
"
?"
!"
Attenzione: il computer non è in grado di trovare una soluzione
da solo. L’algoritmo deve essere concepito prima, e poi trasferito
nel computer sotto forma di programma, per essere eseguito e
fornire la soluzione. "
Informatica per la comunicazione"
- lezione 4 Diagrammi di flusso
Diagramma di flusso"
Notazione
grafica per esprimere
gli algoritmi."
"
Esiste" un elemento grafico
(chiamato
blocco) per ogni
"passaggio fondamentale negli
"
algoritmi."
"
I blocchi sono tra loro collegati
"d
a d e l l e f r e c c i e , c h e
"
simboleggiano il flusso di
esecuzione,
ossia la sequenza di
"
operazioni che vengono svolte
una dopo l’altra."
"
"
inizio dell’algoritmo
"
input"
"
operazione"
"
"
"
"controllo di
condizione"
"
"
no!
sì!
"
"
output"
"
fine dell’algortimo"
"
"
La freccia entrante in un blocco
rappresenta l’istante in cui
l’operazione descritta dal blocco All’interno di ogni blocco,
sta per essere eseguita."
l’operazione da eseguire è
descritta in un linguaggio a
scelta, purché compreso dal
destinatario del diagramma di
"
flusso."
"
La freccia uscente da un blocco rappresenta
l’istante in cui l’operazione
descritta dal blocco "
"
Tutti i blocchi hanno una o più
è stata eseguita e si passa a
frecce
in ingresso e una sola in
"
quella successiva.
uscita, tranne il blocco di inizio
"
(zero entranti, una sola uscente),
"il blocco di fine (una o più
"
entranti, zero uscenti) e il blocco
di controllo (una o più entranti,
"
due uscenti: una per ciascun
possibile esito del controllo). "
I cerchi gialli rappresentano
l’inizio dell’algoritmo e la fine
dell’algoritmo. Per mantenere il
determinismo di un algoritmo ci
può essere solo un inizio,
mentre ci possono essere più
blocchi di fine (a seconda del
percorso che è stato seguito)."
Input:
informazione oppure
entità
più concrete arrivano
"
dall’esterno del contesto
"
dell’esecuzione
dell’algoritmo
per
poter essere elaborate."
Un’operazione da eseguire è
descritta all’interno di un blocco
rettangolare, a meno che non si
tratti di un tipo speciale di
o p e r a z i o n e : i n p u t
(parallelogramma), output
(foglietto), o controllo di
condizione (rombo)."
"
Output: un risultato (parziale o
finale)
dell’algoritmo viene
"inviato verso l’esterno per
fruito dagli utenti del
"Controllo di condizione: una essere
"
"condizione viene verificata e a sistema."
seconda del risultato della "
"
verifica l’algoritmo segue un
percorso o l’altro."
"
"
Algoritmo per
cuocere la pasta"
acqua,
pentola,
sale, pasta "
acqua in pentola!
"
pentola sul fuoco!
"
attendi!
sì!
bolle?!
no!
sale!
no!
attendi!
pasta!
cotta?!
sì!
pasta!
scola!
Ta l e a l g o r i t m o n o n p u ò
diventare un programma."
"
"
"
Perché?"
"
Innanzitutto l’algoritmo è
descritto in italiano. Per
diventare un programma
dovrebbe essere riscritto in un
linguaggio comprensibile al
computer. "
Tale traduzione risulta molto
difficile da realizzare, a causa
delle descrizioni molto
approssimative delle varie
operazioni, che solo un essere
umano riesce a gestire. (Ad es.:
dove si prende l’acqua? Su
"
Inoltre, l’algoritmo non è quale fuoco va messa la
"
e s p r i m i b i l e i n t e r m i n i d i pentola? Come va messa la
elaborazione
di simboli: si tratta pentola sul fuoco?)"
di
" vera acqua e vere pentole, e
un computer non ha l’hardware
Forse un robot con telecamere,
per manipolare tali oggetti."
sensori, e braccia meccaniche
adeguate potrebbe risolvere il
problema della pasta, ma serve
"
comunque il software per
comandarlo."
"
Esercizio"
Disegnare il
diagramma di flusso
dell’algoritmo
del calcolo della
"
media degli esami di un libretto.
"
"
"
"
"
Soluzione"
Una possibile
soluzione è quella
di prendere" il libretto, andare alla
parte dedicata ai voti e, se ci
"
sono dei voti,
contarli, farne la
somma e infine dividere la
somma per"il numero dei voti per
ottenere la media, che è il
risultato cercato."
Il tipo di operazioni di cui è
composta questa soluzione"
input
"
"
controllo
"
condizione
"
"
"
Una possibile soluzione è quella
"
di prendere il libretto, andare alla
parte dedicata "ai voti e, se ci
sono dei voti, contarli, farne la
somma e infine dividere la
"
somma per il numero dei voti per
ottenere la media, che è il
risultato cercato."
output "
"
"
operazione "
"
"
Algoritmo per
calcolare la
media dei voti di
un libretto"
libretto vai alla sezione voti!
"
sì!
"
n ç conto i voti "
s ç sommo i voti
m ç s/n
m!
ci sono voti?
!
no!
s ç sommo i voti
Un’operazione del tipo
mostrato sopra è complessa perché in
" passaggio. Il primo passaggio è quello
realtà include più di un
descritto a destra della freccia e indica un’operazione che
"
tipicamente produce un risultato. La freccia rappresenta il
secondo passaggio: il
risultato ottenuto deve essere conservato
"
per poter essere utilizzato
in un momento successivo. La lettera
o il nome a sinistra delle freccia rappresenta il “luogo” dove il
risultato viene salvato e può essere utilizzato come riferimento
per richiamarlo."
In informatica, i “luoghi” dove vengono salvati i risultati delle
operazioni si chiamano variabili. Un termine mutuato dalla
matematica che vuole indicare che tale luogo può contenere, a
seconda delle situazioni, valori differenti, variabili e non
costanti."
Variabili
Nel caso dell’algoritmo
del calcolo della media dei voti abbiamo
"
usato tre variabili.
n per conservare il numero dei voti nel libretto;
"
s per conservare la somma dei voti;
m per conservare il valore
della media, ottenuta richiamando i
" una divisione tra loro."
valori di s e n e facendo
Come ultima operazione dell’algoritmo, visto che l’obiettivo era
quello di calcolare la media dei voti, richiamiamo il vlaore di m e
lo mandiamo in output."
Ora entriamo dentro il computer
per studiarne i componenti
principali e le loro funzionalità."
Hardware
Componenti
di un computer"
In questo contesto non intendiamo
“computer” nell’accezione originale
di persona che calcola di cui
vogliamo astrarre le operazioni
principali…!
…ma proprio come calcolatore dei
nostri giorni.!
Il componente più importante è la CPU (Central Processing Unit), il processore
in italiano. Nella metafora della persona che fa di conto, la CPU corrisponde al
cervello, perché è la parte del computer che esegue le operazioni.!
CPU"
La CPU è un circuito elettronico costituito da un notevole numero di transistor.
Ogni transistor, per come è costruito, reagisce a stimoli elettrici in ingresso con
una specifica tensione elettrica in uscita (Vout in figura). Quando diciamo che la
CPU esegue delle operazioni, intendiamo dire che le arrivano segnali elettrici
in ingresso che rappresentano i dati e indicano l’operazione da eseguire.!
I transistor della CPU reagiscono agli stimoli e mandano in uscita altri segnali
elettrici, che rappresentano il risultato delle operazioni eseguite.!
I transistor in una CPU sono molto numerosi (oggi
arrivano ai 2 miliardi per processore), e hanno
continuato a crescere di numero da quando le prime
CPU sono state costruite. L’andamento è
curiosamente costante, e prevede un raddoppio ogni
anno e mezzo. Il primo ad accorgersi di questa
tendenza è stato Gordon Moore, co-fondatore di
Intel, una delle più grandi società prodruttrici di CPU,
che ha quindi dato il nome a questo fenomeno, noto
come “legge di Moore”.!
Gordon E. Moore"
3"
La CPU in realtà non è un blocco unitario, ma
possiamo distinguere due parti in base alla loro
funzione. La ALU (Arithmentic-Logical Unit, o unità
aritmetico-logica) esegue le operazioni aritmetiche e
logiche, appunto. !
+"
8"
5"
ALU"
stampa su
schermo"
La CU (Control Unit, o unità di controllo) è invece quella
parte che comanda il trasferimento di informazione da
una parte all’altra del computer. Di fatto, tutto ciò che
avviene nel computer avviene perché dei segnali elettrici
sono stati emessi dalla CU: anche l’ingresso di dati nella
ALU, per esempio, è comandato dalla CU che esegue le
istruzioni scritte nei programmi dati al computer.!
“ciao”"
CU"
Scarica

ICO 2013-14 Appunti 3-4 - Università degli Studi di Bergamo