Prof. Andrea Trentini
UNIMI
AA 2006-07
1
COS’E` L’INFORMATICA
2
COS’E` L’INFORMATICA
LOGISTICA
• [email protected]
Informatica
corso di laurea in Scienze Geologiche
LEZIONE 1 - Cos’è l’informatica
• Scrivere SOLO da [email protected]
• Ricevimento su appuntamento (mail)
• www.sl-lab.it
• seguire “WIKI” e poi “Informatica geologi”
• Esame: teoria + lab
• Teoria nella pausa, Lab a fine corso
• Appelli a giugno, luglio, settembre, novembre (pausa),
gennaio, febbraio
• Iscrizione via SIFA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
3
COS’E` L’INFORMATICA
Bibliografia
• J. G. Brookshear
• Informatica: una panoramica generale - 7a ed.
• Sciuto, Buonanno, Fornaciari, Mari
• Introduzione ai sistemi informatici - 3a ed.
• Curtin, Foley, Sen, Morin
• Informatica di base - 3a ed.
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
4
COS’E` L’INFORMATICA
Scopo della lezione
• Introdurre le nozioni base della materia
• Definire le differenze tra hardware e
software
• Individuare le applicazioni e le aree
disciplinari
• Lagana`, Righi, Romani
• Informatica: concetti e sperimentazioni
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
1
Prof. Andrea Trentini
UNIMI
AA 2006-07
5
COS’E` L’INFORMATICA
6
L’Informatica - def. 1
• Scienza che studia l’informazione
• l’elaborazione dei dati
• il trattamento dei dati mediante elaboratore
elettronico (computer)
L’informatica - def. 2
• È la disciplina scientifica che 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
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
7
COS’E` L’INFORMATICA
Ovvero …
… tutto quello che sta tra
COS’E` L’INFORMATICA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
8
COS’E` L’INFORMATICA
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!)
l’hardware …
(equipaggiamento fisico
del computer)
.. e il software
(equipaggiamento logico
del computer)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
2
Prof. Andrea Trentini
9
UNIMI
AA 2006-07
COS’E` L’INFORMATICA
10
COS’E` L’INFORMATICA
Il calcolatore
Il calcolatore
Periferiche
• Composto da
• processore, o CPU (Central Processing Unit) o
microprocessore
• memoria centrale, o RAM (Random Access
Memory)
• periferiche
Monitor
Tastiera Mouse
Memorie
di massa
Memoria CPU
centrale
BUS
Input
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
11
COS’E` L’INFORMATICA
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
Output
Input/Output (I/O)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
12
COS’E` L’INFORMATICA
La macchina di von Neumann
memoria
programma gestionale
processore
programma editor
compilatore C
periferiche
dati sugli stipendi
libro di testo
programma sorgente in C
Modello di macchina a programma memorizzato
- lo stesso dagli anni 1940 ad oggi
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
3
Prof. Andrea Trentini
13
UNIMI
AA 2006-07
COS’E` L’INFORMATICA
14
Classificazione dei calcolatori
• Criteri
COS’E` L’INFORMATICA
Classi di computer
• Mainframe
• numero di utenti che vi possono accedere
“contemporaneamente”
• capacità di memoria
• velocità di elaborazione
• affidabilità
• costo
• grande capacità di memoria e di elaborazione
• accessibili da centinaia di utenti
“contemporaneamente”
• utenti: grandi imprese, enti pubblici
• Minicomputer
• elevata capacità di elaborazione
• accessibili da decine di utenti
“contemporaneamente”
• utenti: medie e grandi imprese
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
15
COS’E` L’INFORMATICA
Classi di computer (2)
• Workstation
• elevata capacità di elaborazione
• accessibili da pochi utenti “contemporaneamente”
• utenti: piccole imprese, laboratori di ricerca
• Personal computer
• buona capacità di elaborazione
• accessibile da un solo utente alla volta
• automazione di ufficio, uso personale
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
16
COS’E` L’INFORMATICA
Classi di computer (3)
• Supercalcolatori
• grande capacità di elaborazione
• elaborazione scientifica, modelli matematici
• in via di estinzione per elevato rapporto
costo/prestazioni
• Sistemi multiprocessore
• grande capacità di elaborazione
• elaborazione scientifica, modelli matematici
• rapporto costo/prestazioni inferiore rispetto ai
supercalcolatori
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
4
Prof. Andrea Trentini
UNIMI
AA 2006-07
17
COS’E` L’INFORMATICA
18
Una cosmogonia
Mainframes
…Proprietary software
…FORTRAN, COBOL
…Batch, time-sharing
Minicomputers
…DEC, Data Gen, HP
…PDP, Vax
Microcomputers
…C, Unix
…Hand calculators
…TRS, Apple, IBM
Supercomputers
…Hobby kits -> PCs
…Vector processors
…Parallel processors
…Massively parallel
Networking
…LANs, Ethernet
…Client-server systems
…Arpanet, NFSnet, Internet
Batch → Time-sharing → Personal → Collaborative
~1950
~1970
2000
Il software
• Equipaggiamento logico del calcolatore
• Logiciel in francese
• Costituito dai programmi che fanno
svolgere al calcolatore un insieme di
funzioni
• Si distingue quello di sistema e quello
applicativo
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
19
COS’E` L’INFORMATICA
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.)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
COS’E` L’INFORMATICA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
20
COS’E` L’INFORMATICA
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
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
5
Prof. Andrea Trentini
UNIMI
AA 2006-07
21
COS’E` L’INFORMATICA
22
COS’E` L’INFORMATICA
Il software - Esempi
compilatori
S.O.
HW
Software
di sistema
utilità
Il software
• Componente algoritmica
• strutture dati e loro manipolazione
• Codifica in un programma
• linguaggio di programmazione
• compilato vs interpretato
CAD
biblioteca
• interazione con l’ambiente di esecuzione
videoscrittura
Software
applicativo
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
23
COS’E` L’INFORMATICA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
24
COS’E` L’INFORMATICA
Algoritmi
• Un algoritmo e` una procedura per risolvere
un problema (matematico) in un numero
finito di passi che implicano frequenti
ripetizioni di un'operazione
• Concetto fondamentale e centrale
dell'informatica
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Algoritmi - Esempi
• Algoritmi (o procedure) per
•
•
•
•
calcolare il Massimo Comun Divisore
ordinare un insieme di oggetti
azionare la lavatrice
suonare una melodia al piano (espressa in un
insieme di simboli negli spartiti)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
6
Prof. Andrea Trentini
UNIMI
AA 2006-07
25
COS’E` L’INFORMATICA
26
Programmi
Algoritmo di Euclide
• Un programma è la codifica di un algoritmo
in un particolare linguaggio comprensibile
ad un calcolatore
• Dati due numeri interi e positivi m e n,
calcola il più grande intero che li divide
• implementazione dell’algoritmo
• dettaglia aspetti quali l’acquisizione dei dati di
ingresso e la visualizzazione dei risultati
• può dover tener conto dell’architettura della
macchina
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
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
27
COS’E` L’INFORMATICA
COS’E` L’INFORMATICA
Schema di programma
• Leggi i dati
• Elabora i dati - realizza l’algoritmo
• La parte piu` difficile
• Stampa il risultato
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
28
COS’E` L’INFORMATICA
Programma_euclide
#include <stdio.h>
void main( );
int m = 0, n = 0, a, b, r, q;
{
/** leggi i dati **/
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);
}
/** elabora i dati **/
a = m;
b = n;
do
q = m/n;
r = m - q*n;
m = n;
n = r;
while r <> 0;
/** stampa il risultato **?
printf(“il MCD tra %d e %d e` %d\n”,
a,b,n);
}
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
7
Prof. Andrea Trentini
29
UNIMI
AA 2006-07
COS’E` L’INFORMATICA
30
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 dei cicli deve
terminare
Algoritmi - Ricerca
• La ricerca di algoritmi è stata una grande parte
del lavoro dei matematici nei secoli
• non tutti i problemi sono risolubili mediante un
algoritmo
• realizzare un programma che dato un qualunque programma e il
relativo input e` in grado di decidere se il programma termina su
quell’input
• paradossi logici
– questa frase e` falsa; questa frase contiene sei parole; questa frase non
contiene sei parole
• 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
• La loro esecuzione non richiede la comprensione
dei principi su cui si fonda
• Il computer è un esecutore di algoritmi
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
31
COS’E` L’INFORMATICA
Algoritmi - Ricerca
• Verificarne/dimostrarne la correttezza
• Valutarne la bonta` in termini di uso delle
risorse di calcolo e memoria
• Individuare i problemi che non ammettono
una soluzione generale in tempi ragionevoli
COS’E` L’INFORMATICA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
32
COS’E` L’INFORMATICA
Programmi
• L’algoritmo va espresso in un sistema formale
comprensibile dalla macchina che lo esegue
• I linguaggi di programmazione sono sistemi formali
piu` facili da usare del linguaggio macchina
(sequenze di 0 e 1) ma piu` rigidi del linguaggio
naturale
• il linguaggio macchina è quello che la macchina può
eseguire direttamente
• la traduzione da un linguaggio ad un altro puo` essere svolta
automaticamente
• Non esiste un unico approccio per affrontare il
processo della programmazione
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
8
Prof. Andrea Trentini
33
UNIMI
AA 2006-07
COS’E` L’INFORMATICA
34
COS’E` L’INFORMATICA
Obiettivi dell’informatica
Integrazione tra artefatti
• 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
(Fonte: http://www.ubiq.com/weiser)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
35
COS’E` L’INFORMATICA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
36
COS’E` L’INFORMATICA
Applicazioni - Esempi
•
•
•
•
•
•
•
•
Calcolo scientifico
Grafica
Musica e video
Archivi e sistemi informativi
Medicina e altre scienze
Robotica e controllo di processi industriali
Comunicazione
…
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
Aree disciplinari - Esempi
• Aree di base
•
•
•
•
•
Informatica teorica
Algoritmi
Linguaggi di programmazione
Sistemi operativi
Architettura dei calcolatori
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
9
Prof. Andrea Trentini
37
UNIMI
AA 2006-07
COS’E` L’INFORMATICA
Aree disciplinari - Esempi
• Aree applicative
• Reti di telecomunicazione
• Basi di dati
• Multimedialita`
• Grafica
• Video
• Suono
• Interazione uomo-macchina
• Intelligenza artificiale, apprendimento automatico
• Software engineering
• Sicurezza
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informatica
Corso di laurea in Scienze Geologiche
10