Informatica per le discipline
umanistiche 2
– lezione 14 –
Torniamo ai concetti
base dellʼinformatica.
Abbiamo sinora affrontato diversi
problemi: avere unʼidentità online,
cercare pagine Web, commentare il
contenuto di un blog, cifrare un
messaggio, individuare lʼargomento di
un testo, codificare una canzone
oppure unʼimmagine.
Molte volte abbiamo riportato casi di
successo, in cui i sistemi informatici
forniscono il servizio desiderato. Altre
volte abbiamo sottolineato i limiti del
calcolatore, mettendo in luce certi
aspetti, anche banali, della vita
quotidiana degli esseri umani che non
riescono ad essere trattati in ambito
informatico.
I limiti del computer
Finora sono stati sempre
indicati in maniera indiretta: 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.
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. Le capacità del computer
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)dopo
lʼesecuzione
di
ogni
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
sovietico,
che
nel
1980
festeggiava il 1200° anniversario
della nascita di al-Kwarizhmi.
?
!
Programma
Un algoritmo scritto in maniera tale da
poter essere eseguito da un computer:
1)tutte le operazioni consistono in
elaborazioni di simboli;
2)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. 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
da
delle
freccie,
che
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
sì
no
output
fine dellʼalgortimo
La freccia entrante in un blocco
rappresenta lʼistante in cui
lʼoperazione descritta dal blocco
sta per essere eseguita.
Allʼinterno di ogni blocco,
lʼoperazione da eseguire è
descritta in un linguaggio a
scelta, purché compreso dal
destinatario del diagramma di
La freccia uscente da un blocco flusso.
rappresenta lʼistante in cui
lʼoperazione descritta dal blocco
è stata eseguita e si passa a Tutti i blocchi hanno una freccia
in ingresso e una in uscita,
quella successiva.
tranne il blocco di inizio (una
sola freccia uscente), il blocco
di fine (una sola freccia
entrante) e il blocco di controllo
(una freccia in ingresso, due in
uscita:
una
per
ciascun
possibile esito del controllo). 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
Tale
algoritmo
non
può
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
esprimibile
in
termini
di 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
della
text
summarization.