Sei sulla pagina 1di 20

Informatica: cenni storici

Il concetto di algoritmo
Informatica
Docente: Giuliano Armano
Corso di Laurea in Ing. Meccanica e Ing. Ambiente
A.A. 2011/2012

Per gentile concessione di Giorgio Fumera

La preistoria dell'informatica

calculus

Primi strumenti di ausilio al calcolo

abaco romano (circa 2000 anni fa)

Primi strumenti meccanici

regolo calcolatore (XII sec.)


pascalina (XVII sec.)

macchina di Leibniz (XVII sec.)

Strumenti meccanici moderni

I primi calcolatori (computer)

I primi calcolatori elettromeccanici

Mark I (1944)

Il primo calcolatore elettronico

ENIAC
(1946)

La nascita dell'informatica

Alan Turing (1912 - 1954)

John von Neumann (1903 - 1957)

Quali calcoli possono essere svolti


da una macchina?
Il concetto di algoritmo

Come progettare una macchina in grado


di eseguire qualsiasi algoritmo?
Concetto di calcolatore programmabile

Informatica
Disciplina che studia in modo sistematico gli
algoritmi che descrivono e trasformano
l'informazione: la loro teoria, analisi, progetto,
efficienza, realizzazione e applicazione

In italiano: Informatica: elaborazione automatica dell'informazione


In inglese: computer science (scienza del calcolo)

Evoluzione dei calcolatori...


Tecnologia:

meccanica (XVII sec. - anni 30 XX sec.)

elettromeccanica (anni 30-40 XX sec.)

elettronica (anni 40 XX sec. - oggi)

Conseguenze:

riduzione dei costi di produzione, del consumo di energia, delle


dimensioni
incremento della velocit di calcolo e della capacit di
memorizzazione
estensione degli ambiti applicativi e del numero di utenti

... e dell'informatica
Grafica
computerizzata
(informatica grafica)

Intelligenza
artificiale

Ingegneria del
software

Architettura dei
calcolatori

Algoritmi e
strutture dati

Sistemi operativi e
software di rete

Linguaggi di
programmazione

Basi di dati e sistemi per il


recupero di informazioni

Algoritmo: definizione informale


Descrizione della sequenza di azioni
che portano alla realizzazione
di un dato compito in un tempo finito

Esempi di compiti descrivibili da algoritmi

preparare una torta di mele

usare un videoregistratore

prelevare denaro da uno sportello Bancomat

cercare un nome in un elenco telefonico

disporre una sequenza di nomi in ordine alfabetico

trovare il percorso pi breve tra due citt attraverso una mappa


stradale

sommare due numeri interi

estrarre la radice quadrata di un numero reale non negativo

calcolare gli zeri di unequazione di secondo grado a coefficienti


reali

Algoritmi ed esecutori
Scopo principale della formulazione di algoritmi:
comunicare a un esecutore (unaltra persona,
o una macchina) il procedimento per
realizzare un dato compito
Due problemi principali:

quale linguaggio conosce?

quali azioni sa eseguire?

Algoritmo: definizione formale


Descrizione del procedimento per la realizzazione di un
dato compito,
espressa in modo non ambiguo,
in un linguaggio comprensibile dallesecutore,
in termini di una sequenza finita di operazioni che
l'esecutore sia in grado di eseguire

Algoritmi e informatica
Quali sono i compiti di interesse per linformatica?
Elaborazione di informazione

dati di ingresso

un procedimento
risolutivo

risultati

Esercizio
Quali dei seguenti compiti possono essere formulati come
problemi di elaborazione di informazione?
Ove possibile, indicare i dati di partenza e il risultato
preparare una torta di mele
usare un videoregistratore
prelevare denaro da uno sportello Bancomat
cercare un nome in un elenco telefonico
disporre una sequenza di nomi in ordine alfabetico
trovare il percorso pi breve tra due citt tramite una mappa stradale
sommare due numeri interi
estrarre la radice quadrata di un numero reale non negativo
calcolare gli zeri di unequazione di secondo grado a coefficienti reali

Esercizio
Formulare un algoritmo per la risoluzione del seguente problema:
ordinare in senso crescente una sequenza di cinque numeri interi

Esercizio
Formulare un algoritmo per la risoluzione del seguente problema:
ordinare in senso crescente una sequenza di cinque numeri interi
Traccia:

quali operazioni eseguireste voi?

come potreste descriverle?

la vostra descrizione un algoritmo?


- chi lesecutore?
- in grado di comprendere il linguaggio che avete usato?
- la vostra descrizione presenta delle ambiguit?
- lesecutore in grado di eseguire tutte le operazioni indicate?
- il numero di operazioni richieste finito?

il vostro algoritmo corretto? cio, consente di ordinare come


richiesto qualsiasi sequenza di cinque numeri interi?