1. Concetti base dell`Informatica - Insegnamento di Informatica

1. Concetti base dell’Informatica
Insegnamento di Informatica
Elisabetta Ronchieri
Corso di Laurea di Economia, Universitá di Ferrara
I semestre, anno 2014-2015
Elisabetta Ronchieri (Universitá)
Insegnamento di Informatica
I semestre, anno 2014-2015
Argomenti
Cos’é l’Informatica
Informatica come scienza
Elementi dell’Informatica
Informazione
Rappresentazione
Elaborazione
Algoritmo
Un po’ di storia [Casadei]
All’inizio
E dopo
1 / 37
Argomenti
Cos’é l’Informatica
Informatica come scienza
Elementi dell’Informatica
Informazione
Rappresentazione
Elaborazione
Algoritmo
Un po’ di storia [Casadei]
All’inizio
E dopo
2 / 37
Alcune definizioni
Scienza ⇒ possiede specifiche interpretazioni della realtá,
metodologie per la risoluzione di problemi e approcci per lo
sviluppo di concetti.
Tecnologia ⇒ rivolta a comprendere le caratteristiche e il
funzionamento dei dispositivi hardware e software.
Strumento ⇒ orientata ad affrontare problemi con l’ausilio di
strumenti tecnologici.
3 / 37
Nell’accezione di tecnologia
I
I
É necessario tener conto dei nuovi modi di interazione con le
macchine.
Presume capacitá:
I
I
I
di ragionamento sulle modalitá di funzionamento;
di utilizzo di strumenti complessi come i sistemi software;
di verifiche sul campo.
4 / 37
Cosa non é
I
La scienza e la tecnica dei calcolatori.
I
Lo studio degli utilizzi e delle applicazioni dei calcolatori e del
software.
I
Lo studio su come scrivere i programmi per i calcolatori.
I
La scienza di Internet e dei siti Web.
Dicendo cosa non é, si capisce di cosa tratta l’Informatica.
5 / 37
Edsger W. Dijkstra (1930 - 2002)
Computer science is no
more about computers
than astronomy is
about telescopes.
Provenienza della figura
http://commons.wikimedia.org/
wiki/File:
Edsger_Wybe_Dijkstra.jpg
6 / 37
Leonardo da Vinci (1452 - 1519)
Quelli che s’innamorano
della pratica senza la
scienza, sono come i
nocchieri che entrano in
naviglio senza timone o
bussola, che mai hanno
certezza dove si
vadano. Sempre la
pratica dev’essere
edificata sopra la buona
teorica [...] e senza
questa nulla si fa bene
[Da Vinci, 1786].
7 / 37
Aristotele (384322 a.C.)
Noi riteniamo che il sapere e
l’intendere siano propri piú
all’arte che all’esperienza, e
giudichiamo coloro che
posseggono l’arte piú sapienti di
coloro
8 / 37
Epistemologia del termine Informatica
I
Non deriva dall’Inglese, ma dal Francese.
I
Combina i lemmi Information e Authomatique ⇒
Informatique.
I
Tratta in modo automatico le informazioni.
9 / 37
Informatica come scienza
É la rappresentazione e l’elaborazione dell’informazione
[Ceri, 2006].
10 / 37
Cosa é l’informazione
I
I
É un’entitá (come notizia, dato o elemento).
Consente all’uomo di:
I
I
conoscere, in modo piú o meno esatto, ció che lo circonda;
comunicare ed interpretare le proprie conoscenze ed esperienze.
I
Puó essere trattata anche da uno strumento.
I
Caratterizzata da contenuti.
I
Puó risultare piú o meno efficace in base allo strumento che la
gestisce.
11 / 37
Esempi d’informazione
I
Una valore numerico.
I
Un cartello stradale.
I
Una parola che identifica un oggetto, come chiave.
12 / 37
Cosa si intende per rappresentazione
I
É una funzione che associa ad ogni entitá una sequenza di
simboli.
I
É unica per ogni entitá.
I
Un simbolo puó essere espresso da una lettera dell’alfabeto.
13 / 37
Esempi di rappresentazione
TROPPO GENERICI
10
TROPPO GENERICO
Comprare del pane.
Meno GENERICO
Comprare 1 Kg di pane.
50110
18
Meno GENERICI
Giorno: 10
Numero di matricola: 50110
Voto Scritto: 18
14 / 37
Cosa si intende per elaborazione
I
É una trasformazione del tipo Y = F (X ):
I
I
I
I
I
X é l’insieme dei dati iniziali;
Y é l’insieme dei dati finali;
F é una regola che fa corrispondere Y a X ;
F si puó ottenere attraverso una o piú azioni elaborative che
devono essere eseguite per ottenere una trasformazione.
Avviene in modo sistematico e rigoroso ⇒ é ripetibile.
15 / 37
Esempio d’elaborazione
Problema: ricerca del numero di telefono a partire dal nome e
cognome di una persona.
I
Dati iniziali:
I
I
I
nome e cognome;
rubrica telefonica.
Dati iniziali:
I
I
nome e cognome;
elenco telefonico.
I
Regola di ricerca:
sequenziale nella pagina con
la letterina del nostro
cognome nella rubrica;
I
Regola di ricerca:
dicotomica nella pagina e
poi sequenziale in essa
nell’elenco.
I
Dato finale: numero di
telefono.
I
Dato finale: numero di
telefono.
16 / 37
Informatica come scienza
É lo studio sistematico degli algoritmi che descrivono e
trasformano l’informazione: la loro teoria, analisi,
progetto, efficienza, realizzazione e applicazione
(Association for Computing Machinery (ACM)).
http://www.acm.org/
17 / 37
Cosa si intende per algoritmo
I
I
I
I
I
É una sequenza finita di azioni elaborative che portano alla
realizzazione di un compito.
É l’insieme ordinato di azioni che risolvono un dato problema.
Descrive il metodo risolutivo del problema.
La sequenza di passi, se intrapresa da un esecutore, permette
di ottenere i risultati attesi a partire dai dati iniziali.
É eseguito da un’esecutore.
I
I
Il calcolatore o computer é un esempio di esecutore.
É in grado di automatizzare la risoluzione di un problema.
18 / 37
Esempi di algoritmi
I
Le istruzioni per montare un’apparecchiatura, come antenna.
I
Le istruzioni per impostare il ciclo di lavaggio di una
lavastoviglia.
I
Le indicazioni per gli origami.
I
Le istruzioni per prelevare contanti dal Bancomat.
I
Il metodo per il calcolo del massimo comun divisore.
I
La ricetta di cucina.
19 / 37
Proprietá principali dell’algoritmo
Non ambiguo ⇒ le istruzioni devono essere univocamente
interpretabili dall’esecutore.
Eseguibile ⇒ ogni istruzione deve essere eseguibile da parte
dell’esecutore dell’algoritmo.
Finito ⇒ per ogni input l’esecuzione dell’algoritmo deve
terminare in un tempo finito.
Corretto ⇒ se é finito, non ambiguo ed eseguibile.
20 / 37
Esempi di algoritmi non corretti
Algoritmo con output diversi e input uguali ⇒ ambiguo
Algoritmo con istruzioni complesse ⇒ non eseguibile
Algoritmo con operazioni cicliche ⇒ non finito.
21 / 37
Altre proprietá
Deterministico ⇒ Le istruzioni presenti in un algoritmo devono
essere definite senza ambiguitá.
Terminabile ⇒ L’esecutore deve terminare in tempo finito per
ogni insieme di valori in ingresso.
Realizzabile in pratica ⇒ L’esecutore deve essere in grado di
eseguire l’algoritmo con le risorse a sua disposizione
(informazioni + tecnologia).
Generale ⇒ Un algoritmo, compatibilmente con i vincoli
espressi dal problema, si occupa della risoluzione di
famiglie di problemi.
22 / 37
Esempio di algoritmi ambigui
Problema: pagare un bollettino di conto corrente postale.
I
Sequenza di azioni:
I
I
I
I
Andare ad un
ufficio postale;
Compilare il
bollettino di conto
corrente postale;
Effettuare il
pagamento.
Algoritmo ambiguo.
I
Sequenza di azioni:
I
I
I
I
I
Andare all’ufficio postale piú
vicino;
Compilare il bollettino;
Assicurarsi di avere la cifra da
pagare;
Effettuare il pagamento.
Algoritmo ancora ambiguo.
23 / 37
Esempio di algoritmi ambigui
Problema: cottura degli spaghetti.
Nota: algoritmo puramente sequenziale, le operazioni vengono
eseguite in un unico ordine preciso.
I
Sequenza di azioni:
I
I
I
I
I
I
Mettere l’acqua sul fuoco;
Attendere l’ebollizione;
Mettere il sale;
Buttare gli spaghetti;
Attendere x minuti;
Scolare la pasta.
I
Sequenza di azioni:
I
I
I
I
I
I
Mettere l’acqua sul fuoco;
Mettere il sale;
Attendere l’ebollizione;
Buttare gli spaghetti;
Attendere x minuti;
Scolare la pasta.
24 / 37
Cosa serve per definire un algoritmo
I
Condurre l’analisi del problema.
I
Individuare i possibili ingressi.
I
Determinare le uscite.
I
Definire completamente e dettagliatamente la sequenza dei
passi che portano alla soluzione del problema.
I
Scomporre la soluzione in piccoli passi.
25 / 37
Quali elementi definiscono l’Informatica
I
Informazione
I
Rappresentazione
I
Elaborazione
I
Algoritmo
26 / 37
Argomenti
Cos’é l’Informatica
Informatica come scienza
Elementi dell’Informatica
Informazione
Rappresentazione
Elaborazione
Algoritmo
Un po’ di storia [Casadei]
All’inizio
E dopo
27 / 37
Un po’ di storia
I
Nella storia l’uomo ha sempre cercato di rappresentare
l’informazione ed elaborarla per risolvere i problemi della
quotidianitá e di scienza.
I
Inizialmente sfruttava semplici strumenti, come tavolette di
pietra per riportare i calendari lunari o effettuare conteggi.
I
Successivamente creava strumenti in grado di rappresentare
numeri, come l’abaco.
I
Inventava macchinari in grado di automatizzare operazioni
aritmetiche.
I
Fino ad ideare e costruire il primo calcolatore elettronico.
28 / 37
Mil[iardi di, a] anni fa
14 miliardi di anni fa Con il Bing Bang nasce l’universo, composto
di materia, energia e informazione.
3 miliardi di anni fa Compaiono sulla terra microrganismi in grado
di replicarsi secondo regole codificate.
7 milioni di anni fa Inizia l’avventura dell’uomo.
40 mila anni fa Risale il primo prototipo di calendario, ritrovato in
una grotta dell’Africa meridionale.
9 e 6 mila anni fa Risalgono i primi conteggi, ritrovati in Africa.
29 / 37
a.C.
4000-3000 a.C. A Babilonia compare il primo strumento per la
rappresentazione dei numeri (tipo abaco).
3000 a.C. In Mesopotamia si usano le tavolette di argilla per
rappresentare simbolicamenti oggetti e numeri per
registrare le transazioni commerciali.
3000-2000 a.C. Ad Ebla in Siria, si costituisce la prima biblioteca,
esempio di file system.
1780 a.C. circa Si ha il primo esempio di programma dichiarativo,
il codice di Hammurabi.
30 / 37
a.C.
800 a.C. Si ha il primo simbolismo per rappresentare
l’informazione con alfabeto binario.
4 o 3 secolo a.C. Euclide descrive il metodo per trovare il massimo
comun divisore tra due numeri, esempio di
programma procedurale.
Metá del 3 secolo a.C. circa Ctesibio di Alessandria costruisce un
orologio ad acqua, la prima macchina a controllo
automatico che mantiene costante il flusso d’acqua
che lo alimenta
150-100 a.C. Compare il primo strumento (macchina di Anticitera)
per calcolare la posizione della luna, del sole e dei 5
pianeti allora conosciuti.
31 / 37
Subito dopo
1 secolo d.C. A Roma compare l’abaco tascabile.
Prima metá del 7 secolo Brahmagupta introduce regole formali
per usare lo zero e numeri negativi.
8 o 9 secolo A Baghdad Muhammad ibn Musa Alkhwarizmi scrive
libri di aritmetica e albegra.
1145 circa Compaiono per la prima volta i termini algoritmo e
algebra, grazie a Roberto di Chester che traduci i libri
di Akhwarizmi.
1494-1500 Leonardo Da Vinci progetta un robot umano, un
cavaliere in grado di alzarsi e di muovere le braccia.
1606 Galileo Galilei descrive il compasso, strumento di
calcolo.
1614 John Napier introduce algoritmi per semplificare
l’esecuzione delle moltiplicazioni.
32 / 37
Rivoluzione Industriale
1623 Wilhelm Schickard costruisce il primo strumento
automatico, l’orologio calcolatrice, usata per fare
calcoli astronomici.
1642-1645 Blaise Pascal costruisce la Pascalina, che esegue
addizioni e sottrazioni.
1671-1694 Gottfried Leibniz progetta il tamburo di Leibniz,
macchina per eseguire addizione, sottrazione,
moltiplicazione e divisione.
1733-1737 Jacques de Vaucanson costruisce il suonatore flauto
traverso, macchina automatica di notevole qualitá.
1805 Joseph Marie Jacquard costruisce il telaio Jacquard,
la prima macchina programmabile con schede
perforate.
1820 Charles Xavier Thomas de Colmar produce
l’Aritmometro, prima macchina calcolatrice di
successo su scala industriale.
1829 Austin Burt costruisce la Typographer, la prima
macchina da scrivere.
33 / 37
XIX secolo e metá XX
Maturazione delle tecnologie meccaniche ed elettromagnetiche.
1836-1839 Samuel Morse brevetta il telegrafo e propone alfabeto
Morse.
1842 Luigi Menabrea introduce il primo linguaggio di
programmazione.
1843 Alexander Bain brevetta l’antesignana del moderno
fax.
1867 William Thomson inventa un calcolatore analogico
programmabile per prevedere le alte maree.
1884 Herman Hollerith produce la prima tabulatrice
elettrica a schede perforate.
1885 Dorr Eugene Felt costruisce il primo prototipo di
registratore di cassa.
1894 Guglielmo Marconi trasmette e riceve il primo segnale
elettomagnetico senza fili.
1928 IBM introduce la prima scheda perforata con 80
colonne.
34 / 37
II guerra mondiale
Ulteriori progressi dovuti alle tecnologie militari.
1936 Alan Mathison Turing inventa la macchina di Turing.
1943 In Inghilterra esce il primo computer completamente
elettronico, Colussus, usato per decifrare i messaggi tedeschi.
1944 Ad Harvard viene installato Harvard Mark I (IBM), calcolatore
interamente automatico.
1946 ENIAC é il primo computer elettronico.
35 / 37
Dopo la II guerra mondiale
Maturazione dell’elettronica.
1947 Il primo transistor favorendo minor ingombro e
assorbimento di elettricitá.
1958 Nasce il modem per la trasmissione dei dati binari via
telefono.
1958 Nasce il microprocessore.
1960 PDP-1 primo computer commericale con monitor e
tastiera.
1961 Primo videogame (due giocatori si sparano con dei
laser).
1964 Doug Engelbart inventa il mouse.
1970 Floppy disk dell’IBM.
1971 Esce il microprocessore Intel 4004: intero PC su un
unico chip con 2300 transistor in 3 mm2 (oggi decine
di milioni di transistor).
36 / 37
Per ulteriori letture
Leonardo Da Vinci, Trattato della pittura, Nell’Istituto delle
scienze in Bologna (1786),
https://archive.org/details/trattatodellapit00leon
Stefano Ceri, Dino Mandrioli, Licia Sbattella, Informatica:
programmazione, McGraw-Hill Education (2006)
Giorgio Casadei, Antonio Teolis, Cronologia di Storia
dell’Informatica,
http://www.cs.unibo.it/casadei/poster/1.pdf
37 / 37