30
Informatica per le discipline umanistiche 2 – lezione 14 –

Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Informatica per

le discipline umanistiche 2– lezione 14 –

Page 2: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Torniamo ai concetti base dellʼinformatica.

Page 3: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

Page 4: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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

Page 5: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM
Page 6: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Software

Page 7: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

Page 8: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Un computer è un insieme di dispositivi elettronici: un computer è hardware.

Senza il software, lʼhardware è un inutile agglomerato di plastica, silicio e metalli.

Un computer diventa però utile solo quando fornisce un servizio, e ciò è possibile solo quando lʼhardware è controllato mediante il software.

Senza lʼhardware, il software è solo unʼidea che potrebbe essere messa in pratica.

Page 9: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

Page 10: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

VS.

Page 11: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

Page 12: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

I concetti base

Page 13: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

? Problema

Un ostacolo, un impedimento, una difficoltà che desideriamo eliminare.

Page 14: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

! Soluzione

Eliminazione del problema.

Page 15: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Computer

Elaboratore automatico di simboli.

Page 16: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

? ! Se vogliamo che sia il computer a raggiungere la soluzione, il problema deve essere espresso sotto forma di simboli che il computer può elaborare.

Il problema si dice risolvibile quando esiste un modo per raggiungere la soluzione.

Page 17: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

! 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).

?

Page 18: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Muḥammad ibn Mūsā al-Khwārizmī(780 – 850)

Page 19: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

Page 20: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

! 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.

?

Page 21: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

! Processo

Un programma in esecuzione su un computer.

?

Solitamente i programmi risiedono nellʼhard disk di un computer, ed i processi nella RAM.

Page 22: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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.

? !

Page 23: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Diagrammi di flusso

Page 24: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Notazione grafica per esprimere gli algoritmi.

Diagramma di flusso

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.

Page 25: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

inizio dellʼalgoritmo

operazione

sì no

controllo di condizione

input

output fine dellʼalgortimo

Page 26: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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 flusso. La freccia uscente da un blocco

rappresenta lʼistante in cui lʼoperazione descritta dal blocco è stata eseguita e si passa a quella successiva.

Tutti i blocchi hanno una freccia in ingresso e una in uscita, 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).

Page 27: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

acqua in pentola

pentola sul fuoco

bolle? sì no

sale

pasta

attendi

attendi cotta?

no

sì scola

Algoritmo per cuocere la pasta

pasta

acqua, pentola,

sale, pasta

Page 28: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Tale algoritmo non può diventare un programma.

Perché?

Page 29: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

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 quale fuoco va messa la pentola? Come va messa la pentola sul fuoco?)

Inoltre, lʼalgoritmo non è esprimibile in termini di elaborazione di simboli: si tratta di vera acqua e vere pentole, e un computer non ha lʼhardware per manipolare tali oggetti. Forse un robot con telecamere,

sensori, e braccia meccaniche adeguate potrebbe risolvere il problema della pasta, ma serve comunque il software per comandarlo.

Page 30: Informatica per le discipline umanistiche 2 – lezione 14 14.pdf · 2011-12-14 · Lezione 14 Author: Mario Verdicchio Created Date: 12/14/2011 8:08:24 AM

Disegnare il diagramma di flusso dellʼalgoritmo della text summarization.

Esercizio