introduzione all’ informatica -...

35
Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010 Corso di Informatica A.A. 2009- 2010 Introduzione all’ informatica

Upload: vuongdat

Post on 30-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 1

Corso di Informatica A.A. 2009- 2010Corso di Informatica A.A. 2009- 2010

Introduzione all’ informatica

Page 2: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 2

Informazioni pratiche

•Studio N. Itaco: 1G17•Orario ricevimento: …….•Tel. 081-676447•email: [email protected]•Pagina web del corso:

http://people.na.infn.it/~itaco/informatica/corso.htm

Page 3: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 3

Testi Consigliati

G.M. Schneider, J.L. GerstingInformatica, APOGEO

Al Kelley, Ira PohlC: Didattica e Programmazione, ADDISON-WESLEY

Page 4: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 4

Svolgimento del corsoSvolgimento del corso

• Lezioni frontali

• Esercitazioni di laboratorio

Page 5: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 5

Svolgimento del corsoSvolgimento del corsoLa frequenza delle esercitazioni di laboratorio è obbligatoria

Al termine del corso le prove di laboratorio sono valutate complessivamente secondo il seguente schema• A ottimo• B buono• C sufficiente• D insufficiente

La valutazione contribuisce a determinare il voto finale

Page 6: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 6

Svolgimento del corsoSvolgimento del corsoEsame finale• Prova pratica in laboratorio• Colloquio orale

Page 7: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 7

PremessaPremessa

Corso fatto da Fisici per (futuri) Fisici:

Molto risalto agli aspetti applicativi e pratici

Il corso non presuppone conoscenzeinformatiche precedenti

Page 8: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 8

Ma a che serve Ma a che serve ………l’informatica ad un fisico ?

•Analisi dei dati•Simulazione di apparati e sistemi fisici complessi•Controllo di apparecchiature di laboratorio•Calcoli matematici complessi, sia numerici che simbolici•Diffusione di risultati e dati rilevanti attraverso le reti•Consultazione di archivi e ricerche bibliografiche•….

In tutti i settori della fisica teorica e sperimentale: subnucleare,nucleare, della materia, astrofisica, geofisica, biomedica,elettronica…

Page 9: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 9

Obiettivi del corsoObiettivi del corsoConoscere gli aspetti fondamentalidell’Informatica e della struttura deicalcolatori

Essere in grado di utilizzare uncalcolatore in ambienteUnix/Linux

Essere in grado di progettare unalgoritmo per risolvere un sempliceproblema e di implementarlo in unprogramma in linguaggio C

Page 10: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 10

Cos’è l’informatica ?

L’informatica è lo studio dei computer

L’informatica è la scienza della programmazione

L’informatica è lo studio degli usi e delle applicazionidei computer e del software

Page 11: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 11

Cos’è l’informatica ?

L’informatica è la scienza dellarappresentazione e dell’elaborazionedell’informazione

L’informatica è lo studio degli algoritmi:•delle loro proprietà formali e matematiche•delle loro realizzazioni hardware•delle loro realizzazioni linguistiche•delle loro applicazioni

Page 12: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 12

Che cos’è un algoritmo ?

Un insieme ordinato di operazioni nonambigue ed effettivamente calcolabili che,quando eseguito, produce un risultato etermina in una quantità di tempo finita.

Page 13: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 13

Esempi di algoritmiRicetta di cucina

Sequenza di operazioni per registrare un programma con un videoregistratore

Sequenza di operazioni per montare una tenda

Sequenza di operazioni per moltiplicare due numeri

Page 14: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 14

Che cos’è un algoritmo ?

Un insieme ordinato di operazioni nonambigue ed effettivamente calcolabili che,quando eseguito, produce un risultato etermina in una quantità di tempo finita.

Page 15: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 15

…operazioni non ambigue …

Un’operazione è non ambigua quando può essere compresa dall’agente di calcolo senza necessità di ulteriori semplificazioni o spiegazioni

Operazione non ambigua operazione primitiva

Page 16: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 16

La ricetta - Torta di mele1. Prepara la base

2. Prepara il ripieno di mele

3. Versa il ripieno sulla base

4. Cuoci in forno a 200° per 45’

Prepara la base1.1 Prendi una tazza di farina1.2 Setacciala1.3 Miscela Farina e 1/2 tazza

di burroe 1/4 di tazzad’acqua

1.4 Spianala in due basi dicirca 23 cm

Prepara il ripieno2.1 Prendi un vasetto da 100 gr

di ripieno per torte e versaloin una terrina

2.2 Aggiungi noce moscata,cannella e mescola

Page 17: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 17

… effettivamente calcolabili …Un’operazione si definisce eseguibile se esiste un processo computazionale che consenta all’agente di calcolo di completare l’operazione con successo

Esempio di operazione non effettivamente calcolabile

• Scrivi il valore decimale esatto di π

Page 18: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 18

Che cos’è un algoritmo ?

Un insieme ordinato di operazioni nonambigue ed effettivamente calcolabili che,quando eseguito, produce un risultato etermina in una quantità di tempo finita.

Page 19: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 19

Un algoritmo ben scrittoLa ricetta per cuocere 100 g di pasta:

1. Metti 1l di acqua in una pentola2. Poni la pentola sul fornello3. Accendi la fiamma del fornello4. Finchè l’acqua non bolle ripeti il passo 5.

5. Aspetta un minuto6. Aggiungi 10 g di sale grosso7. Leggi sulla confezione della pasta il tempo di cottura8. Versa la pasta nell’acqua bollente9. Aspetta il tempo di cui al punto 7.10. Scola la pasta11. Fine

Page 20: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 20

Scrivere un algoritmoLa ricerca del giusto algoritmo per la soluzione di undato problema è la parte più creativa del lavoro di uninformatico. (Carta e penna)

Ogni algoritmo può essere scomposto in tre tipifondamentali di operazioni:

• Operazioni sequenziali• Operazioni condizionali• Operazioni iterative

Page 21: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 21

Formalizzazione del concetto di algoritmo: perche’?

Se siamo in grado di specificare un algoritmo per risolvere unproblema, allora possiamo automatizzare la risoluzione delproblema

Una volta specificato formalmente un algoritmopossiamo infatti “costruire” un agente di calcolo cheesegua le operazioni primitive contenute nell’algoritmo.

Non tutti i problemi sono risolubili per via algoritmica(Kurt Gödel)

Page 22: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 22

Automatizzare i calcoliI primi mezzi automatici di calcolo compaiono nel XVII secoload opera di Pascal e Leibniz. Funzionano sulla base di ruotedentate.

La Pascalina(Addizione e sottrazione)

La Ruota di Leibniz(Addizione, sottrazione, moltiplicazione e divisione)

Page 23: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 23

Il primo programmaMa la prima macchina a disporre di un vero programma èil telaio di Jacquard costruito nel 1804 : il disegno dellatrama viene inserito tramite schede perforate e realizzatoautomaticamente dalla macchina.

Museo della Seta, S.Leucio (CE)

Page 24: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 24

Il primo calcolatoreIl primo progetto di un calcolatore vero e proprio, capace dieseguire programmi, si deve a Charles Babbage (1830)L’Analytic engine sfruttava le schede perforate di Jacquard, euna sofisticatissima tecnica meccanica già utilizzata nellaprecedente Difference engine.

Page 25: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 25

I primi calcolatori elettroniciMotivati principalmente da esigenze belliche i primi grandicalcolatori elettronici a valvole furono realizzati dallemaggiori potenze in conflitto nel corso degli anni 40.

ENIAC: 18000 valvole30 m lunghezza30 tonnellate

Page 26: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 26

Il calcolatore modernoIl principale problema dei calcolatori fino agli anni ’40 era lafondamentale differenza fra il modo in cui venivanomemorizzati i dati e quello in cui venivano realizzati iprogrammi, che non erano memorizzati, ma realizzatiesternamente usando connessioni, fili etc.

Fu il genio di Von Neumann che permise di progettare erealizzare, nel 1950, l’EDVAC, il primo calcolatore aprogramma memorizzato. L’EDVAC pesava 8 ton e aveva unamemoria di 1024 parole… ma non era nella sostanza diversodal computer usato per scrivere questa presentazione…

Page 27: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Introduzione allaIntroduzione allaprogrammazione in linguaggio Cprogrammazione in linguaggio C

Page 28: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 28

Breve storia del linguaggio CIl linguaggio C fu inventato da Dennis Ritchie presso i Bell Telephone Laboratories nel 1972. Il linguaggio nacque per progettare il sistema operativo UNIX, magrazie alla sua potenza e versatilità cominciò da subitoad essere ampiamente utilizzato anche al di fuori deiBell Laboratories.

Perché utilizzare il C ?• potente e flessibile• molto diffuso• portabile• possiede poche “parole”• modulare

Page 29: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 29

Sviluppo di un programma

1. Scrittura del codice sorgente mediante un editor2. Compilazione del codice sorgente e conseguente

produzione di un file oggetto (obj)3. Linking per ottenere il codice eseguibile4. Esecuzione del programma

Page 30: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 30

Page 31: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 31

Il primo programma in C

Funzioneprincipale

commento

Ogni istruzione inC va terminatacon un ;

Header dellalibreria

Page 32: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 32

FunzioniLa linea :

printf(“Io so programmare in C!”);

è una chiamata di funzione.In una chiamata di funzione, il nome della funzione è immediatamente seguito senza spazi da una parentesi aperta. Tra parentesi vi sono i dati da passare alla funzione (argomenti)

• funzioni di libreria• funzioni user-defined

Page 33: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 33

La funzione printf

Specifica distampa

Page 34: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 34

Funzione printfprintf e’ una funzione della libreria stdio che permette ad unprogramma di passare informazioni allo standard output, il cuidispositivo associato e’ tipicamente il terminale grafico. Ilformato con cui sono presentati i numeri e le stringhe di caratterie’ definito da un insieme di regole e simboli di formattazione.

printf(formato, arg1, arg2….);

formato : stringa di caratteri che contiene le informazioniper la formattazione, i descrittori del formato

arg1,arg2..: nomi di variabili di cui si vuole stampare ilcontenuto

Page 35: Introduzione all’ informatica - people.na.infn.itpeople.na.infn.it/~itaco/informatica/Lezione1.pdf · Corso Informatica 2009-2010 Lezione 1 1 Corso di Informatica A.A. 2009- 2010

Corso Informatica 2009-2010 Lezione 1 35