slides - Università degli Studi di Milano

Laboratorio di Informatica
Introduzione
Laboratorio di Informatica
AA 2008/2009
1
Scopo della lezione
• Introdurre le nozioni base della materia
• Definire le differenze tra hardware e
software
• Individuare le applicazioni e le aree
disciplinari
Laboratorio di Informatica
AA 2008/2009
2
Informatica: definizione
• Informatica: disciplina che cerca di dare
un fondamento scientifico ad argomenti
come la progettazione di computer, la
programmazione, l’elaborazione delle
informazioni, le soluzioni algoritmiche dei
problemi, il processo algoritmico stesso.
Laboratorio di Informatica
AA 2008/2009
3
Concetti base
• Algoritmo (informalmente): sequenza di passi
che definiscono il modo in cui viene eseguita
un’operazione (es. ricetta).
• Primi algoritmi Æ ambito matematico, es.
algoritmo della divisione (serie di operazioni ben
codificate che permettono di calcolare il risultato
della divisione ed il resto).
• Spesso l’esecuzione di un algoritmo implica il
ripetersi di una serie di operazioni elementari.
Laboratorio di Informatica
AA 2008/2009
4
Concetti base
• Un algoritmo necessita di un esecutore
(es. cuoco per algoritmo ricetta).
• L’algoritmo deve essere rappresentato in
forma tale da garantire che l’esecutore
comprenda le istruzioni dell’algoritmo.
• Ogni rappresentazione di un algoritmo è
detta programma.
Laboratorio di Informatica
AA 2008/2009
5
Algoritmo di Euclide
• Dati due numeri interi e positivi m e n,
calcola il più grande intero che li divide
1. dividere m per n, e sia r il resto della divisione
(con 0 ≤ r < n)
2. se r = 0 allora la risposta è n e STOP
3. porre m ← n e n ← r e ripetere il passo 1
Laboratorio di Informatica
AA 2008/2009
6
Programma_euclide
#include <stdio.h>
void main( );
int m = 0, n = 0, a, b, r, q;
{
printf(“dammi il dividendo\n”);
if scanf(“%d”, &m) == 0 {
printf(“errore, fine programma\n”);
exit(-1);
}
printf(“dammi il divisore\n”);
if scanf(“%d”, &n) == 0 {
printf(“errore, fine programma\n”);
exit(-1);
}
a = m;
b = n;
do
q = m/n;
r = m - q*n;
m = n;
n = r;
while r <> 0;
printf(“il MCD tra %d e %d e` %d\n”,
a,b,n);
}
Laboratorio di Informatica
AA 2008/2009
7
Il computer è…
• Il computer è un esecutore di algoritmi!
Laboratorio di Informatica
AA 2008/2009
8
Algoritmo vs procedura di
calcolo
• Gli algoritmi definiscono un insieme finito di
istruzioni che danno luogo a una sequenza
finita di operazioni
• Il processo di ripetizione di cicli deve terminare
– nell’algoritmo di Euclide, la sequenza dei resti r
• sequenza di numeri interi positivi decrescenti
• Se il requisito non e` soddisfatto, si parla di
procedure di calcolo
Laboratorio di Informatica
AA 2008/2009
9
Concetti base
• L’esecutore deve essere in grado di capire
l’algoritmo Æ necessaria un’opportuna
codifica dell’algoritmo
• Es. ricetta per cuoco, linguaggio macchina
per un elaboratore.
• Programmazione = sviluppo di un
programma, codifica in un opportuno
formato, inserimento nella macchina.
Laboratorio di Informatica
AA 2008/2009
10
Concetti di base
• Hardware
• Software
– Esecutore (cuoco,
circuiti elettronici,
…)
– Programmi (insiemi
di algoritmi)
Programmazione
Laboratorio di Informatica
AA 2008/2009
11
Cosa studia l’informatica?
• L’informatica studia:
– i calcolatori, nati in risposta all’esigenza di
eseguire “meccanicamente” operazioni
ripetitive inizialmente il calcolo matematico
– gli algoritmi, nati in risposta all’esigenza di
definire procedure “meccaniche” per la
soluzione di problemi
– le applicazioni, in risposta all’esigenza di
sviluppare sistemi di supporto in varie aree
Laboratorio di Informatica
AA 2008/2009
12
Cosa studia l’informatica?
… tutto quello che sta tra
l’hardware …
(equipaggiamento fisico
del computer)
.. e il software
(equipaggiamento logico
del computer)
Laboratorio di Informatica
AA 2008/2009
13
Distinzione Hw/Sw
HARDWARE
equipaggiamento fisico del computer, costituito
da componenti meccanici, elettrici, ed
elettronici che fanno svolgere al calcolatore un
insieme di funzioni generiche
(si puo` prendere a calci!)
SOFTWARE
equipaggiamento logico del computer,
costituito da programmi che utilizzano i
componenti dell’hardware integrandoli al fine di
svolgere compiti specifici
(si puo` solo imprecargli contro!)
Laboratorio di Informatica
AA 2008/2009
14
Obiettivi dell’informatica
• Progettare calcolatori
– sempre più potenti e veloci
– sempre più aperti a possibili integrazioni con altri
artefatti tecnologici
– sempre più facilmente utilizzabili da chiunque
• Progettare software
– per migliorare l’uso attuale
– per impiegare il calcolatore in aree nuove
– per aiutare la ricerca in altre discipline scientifiche
Laboratorio di Informatica
AA 2008/2009
15
Un po’ di storia…
• Nascono gli algoritmi (es. divisione)…
• … Mancano delle “macchine calcolatrici” per
eseguirli!
• Prima “macchina calcolatrice”: abaco (al tempo
dei Greci / Romani) + essere umano.
• L’abaco ha capacità di memorizzazione, ma le
istruzioni vengono eseguite dall’operatore
umano.
Laboratorio di Informatica
AA 2008/2009
16
Un po’ di storia…
• Utilizzo di ingranaggi meccanici per la
memorizzazione e l’elaborazione dei dati
(Pascal, XVII sec.; Leibniz, XVII-XVIII sec.;) –
“linguaggio”: posizione degli ingranaggi. Le
macchine eseguono operazioni prestabilite (non
programmabili).
• Babbage, XVIII sec.: macchina analitica,
trascrizione su carta dei risultati,
programmazione tramite schede perforate di
cartone.
Laboratorio di Informatica
AA 2008/2009
17
Un po’ di storia…
• Censimento degli Stati Uniti, 1890: Hollerith,
schede di cartone preforate per velocizzare
l’elaborazione dei dati Æ nascita dell’IBM.
• Prima metà del ‘900: macchine
elettromeccaniche (relè meccanici controllati
elettronicamente).
• Fine anni ’40, ENIAC (Electronic Numerical
Integrator and Calculator), primo calcolatore.
Laboratorio di Informatica
AA 2008/2009
18
Un po’ di storia
• Anni ’50 – ’70: computer per grandi aziende,
amministrazioni pubbliche, militari, …
• Fine anni ’70: nascita del personal computer
(PC), Apple.
• 1981: PC della IBM, software della Microsoft.
• Oggi: Reti di calcolatori, Internet, …
Laboratorio di Informatica
AA 2008/2009
19
Il calcolatore
• Composto da
– processore, o CPU (Central Processing Unit)
o microprocessore
– memoria centrale, o RAM (Random Access
Memory)
– periferiche
Laboratorio di Informatica
AA 2008/2009
20
Il calcolatore
Periferiche
Monitor
Tastiera Mouse
Memorie
di massa
Memoria CPU
centrale
BUS
Input
Output
Laboratorio di Informatica
AA 2008/2009
Input/Output (I/O)
21
Il calcolatore
• Il processore, o CPU, esegue i programmi
• La memoria contiene dati e programmi
memorizzati allo stesso modo
• Il calcolatore svolge funzioni diverse in base al
programma eseguito
• Il calcolatore e` una macchina di Von
Neumann
Laboratorio di Informatica
AA 2008/2009
22
La macchina di von Neumann
memoria
programma gestionale
programma editor
processore
periferiche
compilatore C
dati sugli stipendi
libro di testo
programma sorgente in C
Modello di macchina a programma memorizzato
- lo stesso dagli anni 1940 ad oggi
Laboratorio di Informatica
AA 2008/2009
23
Il software
• Equipaggiamento logico del calcolatore
• Costituito dai programmi che fanno
svolgere al calcolatore un insieme di
funzioni
• Si distingue quello di sistema e quello
applicativo
Laboratorio di Informatica
AA 2008/2009
24
Il software
di sistema
• per la gestione delle
risorse del sistema
• per il supporto nella
stesura di programmi
applicativi
• per la comunicazione
con l’utente
applicativo
• programmi destinati
all’utente finale
(videoscrittura, fogli
elettronici, posta
elettronica, browser,
ecc.)
Laboratorio di Informatica
AA 2008/2009
25
Il software - Esempi
di sistema
• sistema operativo
• compilatori
• driver di I/O
• interfaccia utente
applicativo
• videoscrittura
• gestione biblioteca
• controllo impianto
industriale
• sequenziazione
genoma
• progettazione (CAD)
• previsioni finanziarie
Laboratorio di Informatica
AA 2008/2009
26
Il software - Esempi
compilatori
Software
di sistema
S.O.
utilità
HW
CAD
biblioteca
videoscrittura
Software
applicativo
Laboratorio di Informatica
AA 2008/2009
27
Quindi l’informatica per…
i
d
i
l
g o…
o
F ol
c
l
ca
e
r
P
d
r
…
o
r
W so
s
e
c
o
pr
Laboratorio di Informatica
AA 2008/2009
…
i
n
o
i
z
a
t
n
e
s
n
o
n
Ma lo…
so
28
Analisi del respiro / saturazione O2, CO2
durante l’attività sportiva
•
E:\_Ricerca_BiomeccanicaArrampicata\2007.09.27 BergamoScienza2007 - Postazione multimediale\Filmati\Filmato02.pps
• Un “minicomputer” (processore, sistema operativo)
portatile che sia in grado di analizzare in tempo reale il
respiro dell’atleta.
• I dati vengono registrati in una periferica di archiviazione
di massa (ad esempio, hard disk).
Laboratorio di Informatica
AA 2008/2009
29
Acquisizioni a campo della
pressione plantare durante la
sciata, mediante un sistema
portatile di solette a sensori di
pressione.
•
E:\_Ricerca_BiomeccanicaArrampicata\2007.09.27 BergamoScienza2007 - Postazione multimediale\Filmati\Filmato03.pps
• Una rete wireless è necessaria per la
comunicazione tra soletta e PC.
Laboratorio di Informatica
AA 2008/2009
30
Archiviazione di immagini in un
ospedale
Sistemi PACS: in un
ospedale moderno è
necessaria
un’infrastruttura (leggi
rete) per la trasmissione
di immagini ed un SW
(database) per
l’archiviazione ordinata.
Laboratorio di Informatica
AA 2008/2009
31
Elaborazione del segnale acustico
per l’esaltazione delle frequenze
del parlato
Algoritmi per l’elaborazione digitale del
segnale (identificazione automatica del
parlato - amplificazione delle frequenze
corrispondenti).
Laboratorio di Informatica
AA 2008/2009
32