22
Fondamenti di Informatica Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso 1. Introduzione al corso Ing. Simona Colucci

Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Embed Size (px)

Citation preview

Page 1: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

1. Introduzione al corso1. Introduzione al corso

Ing. Simona Colucci

Page 2: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Informazioni utiliInformazioni utili

Ing. Simona Colucci:• Contatti:

SisInfLab. Dipartimento di Elettrotecnica ed Elettronica(DEE)mailto: [email protected] Tel: 0805963515http://sisinflab.poliba.it/colucci

• Ricevimento studenti:Mercoledì 11:30/13:30

Page 3: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Modalità d’esameModalità d’esame

• Prova scritta:- Composta di una parte teorica e di una applicativa- Obbligatoria per il superamento dell’esame- Sostituibile dal superamento di entrambe le prove di esonero dallo scritto da tenersi durante il corso

• Prova orale:- Facoltativa con il superamento della prova scritta

Page 4: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Composizione del corsoComposizione del corso

• Argomenti teorici di base- oggetto delle lezioni in aula- verificati tramite quesiti ed esercizi della prova scritta

• Programmazione in linguaggio C- oggetto sia delle lezioni in aula - verificata tramite problemi della prova scritta

Page 5: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Libri di testoLibri di testo

Testi di riferimento:• Ceri, Mandrioli, Sbattella. Informatica: arte e mestiere.

McGraw-Hill, 2004• Bellini, Guidi. Linguaggio C. Mc-Graw-Hill, 2006• Kerningham, Ritchie. Linguaggio C. Jackson Libri, 1989

Page 6: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

ProgrammaProgramma

• Architettura dei calcolatori Architettura dei calcolatori, codifica binaria dell’informazione,

algebra di Boole

• Algoritmi e strutture datiAlgoritmi, Programmazione

• Architettura dei sistemi informaticiIl sistema operativo, Basi di dati

• Attività di laboratorio

Page 7: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

InformaticaInformatica

• DefinizioneScienza della rappresentazionerappresentazione e dell’elaborazioneelaborazione dell’informazione

• Definizione Association of Computing Machinery(ACM)Studio sistematico degli algoritmi(sequenze precise di operazioni comprensibili e perciò eseguibili da uno strumento automatico) che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione

Page 8: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Concetto di algoritmoConcetto di algoritmo

• Sequenza di passi, definiti con precisione, che portano alla realizzazione di un compito.

• E’ essenziale che un algoritmo sia comprensibile al suo esecutore:es. il calcolatore(privo di buon senso) esegue algoritmi prodotti e codificati dagli informatici in programmi

• Proprietà degli algoritmi:- correttezza: capacità di arrivare alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale- efficienza: capacità di arrivare alla soluzione del compito cui è preposto nel modo più veloce possibile e/o usando la minima quantità di risorse fisiche, compatibilmente con la sua correttezza

Page 9: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempi di algoritmiEsempi di algoritmi

1. Lavaggio di capi resistenti in lavatrice2. Calcolo dell’imposta IRPEF relativa a un

contribuente, dato il reddito lordo e la tabella delle aliquote

3. Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno

4. Calcolo del Massimo Comun Divisore(M.C.D.)

Page 10: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempio 1Esempio 1

Problema: Lavaggio di capi resistenti in lavatriceSoluzione informale: lavatrice + programma “cotone 90”Algoritmo: Esecuzione in stretta sequenza dei seguenti passi:

-lavatrice

-ammollo-prelavaggio-lavaggio-candeggio-risciacquo-ammorbidente-centrifuga

Page 11: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempio 2Esempio 2

Problema: Calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote

Soluzione informale: data la tabella delle aliquote relative alle fasce di reddito e dato il reddito lordo, si applicano progressivamente le aliquote al reddito

Algoritmo:- acquisire reddito lordo- I=10% di R- Se R>3600 I=I+12%(R-3600)- Se R>7200 I=I+5%(R-7200)- Se R>15000 I=I+7%(R-15000)- Se R>30000 I=I+7%(R-30000)- Se R>75000 I=I+5%(R-75000)- Se R>150000 I=I+5%(R-150000)- I è l’imposta risultante

Inizio-fascia(€)

Fine_fascia (€)

Aliquota (%)

O 3600 10

3600.01 7200 22

7200.01 15000 27

15000.01 30000 34

30000.01 75.000 41

75000.01 150000 46

150000 51

Page 12: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempio 3Esempio 3

Problema: Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno

Soluzione informale: si confrontano i segni dei due operandi; nel caso di numeri concordi si effettua la somma dei moduli e il risultato è concorde con gli addendi; nel caso di numeri discordi si effettua la differenza tra modulo maggiore e minore e il risultato è concorde con l’addendo di modulo maggiore.

Algoritmo:- acquisizione dei due numeri a,b- se a,b sono concordi |s|=|a|+|b|- se a,b sono discordi

- se |a|<|b| si scambiano i valori di a e b- |s|=|a|-|b|

- la somma ha il segno di a e modulo |s|

Page 13: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempio 4Esempio 4

Problema: Calcolo del Massimo Comun Divisore tra due numeri a,b : MCD(a,b)

Soluzione di Euclide: “ogni divisore comune di a e b è divisore di a, b e del resto r della divisione tra a e b (a mod b), se questo non è nullo”

Algoritmo:1. acquisire due numeri a,b2. se b>a scambiare a con b3. se b= 0 MCD(a,b)=a a andare al passo 64. r= a mod b5. sostituire a con b, b con r ed andare al passo 26. Fine

Page 14: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Flusso di controlloFlusso di controllo

• L’ordine di esecuzione delle operazioni elementari è determinante per la soluzione del problema

• Le operazioni elementari(passi di algoritmi) vengono chiamate istruzioni nel linguaggio dei calcolatori e possono essere classificate in :- istruzioni non condizionate- istruzioni condizionate: l’esecuzione dipende da una condizione- istruzioni di controllo: esprimono le condizioni da cui dipende l’esecuzione delle istruzioni condizionate(dette pseudo-istruzioni perché controllano solo il flusso delle operazioni)

• Le istruzioni possono essere composte in blocchi o sequenze che risolvono sottoproblemi del problema principale e sono viste come un’istruzione elementare

Page 15: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

CostruttoCostrutto

• Insieme di istruzioni di controllo e controllate:- costrutto condizionale: insieme di condizione e istruzioni condizionate- costrutto iterativo: insieme di istruzioni la cui esecuzione viene ripetuta sotto il controllo di opportune istruzioni di controllo

Page 16: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Diagrammi di flussoDiagrammi di flusso

FLOW CHART: Formalismo grafico per rappresentare la sequenza(flusso)di istruzioni o operazioni elementari di un algoritmo:-operazioni(semplici o composte, condizionate o non condizionate) con rettangoli

-condizioni(scelta tra due possibilità) con rombi

-flusso (sequenza di esecuzione o controllo) con segmenti orientati che uniscono i blocchi

-inizio e fine dell’esecuzione con ellissi

Condizione?vero falso

Page 17: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Linguaggi di ProgrammazioneLinguaggi di Programmazione

• Linguaggi per la codifica di algoritmi: scrittura sotto forma di programmi che possano essere compresi da un elaboratore

• Dal linguaggio della macchina ai linguaggi di alto livello: sforzo di traduzione da linguaggio naturale a linguaggio macchina sempre più affidato alla macchina stessa

Page 18: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Sistema InformaticoSistema Informatico

• Oggetto complesso,che può assumere nature molto differenti, costituito da molte parti che interagiscono tra loro per eseguire algoritmi

• Classificazione a livello generico delle componenti:– Hardware: componenti fisici del sistema– Software: programmi eseguiti dal sistema

Il confine tra HW e SW è piuttosto sfumato se si pensa che le stesse funzioni possono essere svolte a seconda dei casi da

circuiti e dispositivi HW o da particolari microprogrammi(firmware) definiti dal costruttore del

calcolatore

Page 19: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

HardwareHardware

Insieme di elementi funzionali:

• Unità di elaborazione o processore: – esegue i programmi

• Memoria centrale:– memorizza dati e programmi per il funzionamento dell’elaboratore– capacità limitata– volatile– rapido acceso all’informazione

• Memoria secondaria (o di massa):– capacità significativa– persistente– Accesso all’informazione lento

• Bus di sistema:– collega gli elementi funzionali consentendo lo scambio di dati

• Unità periferiche:– fanno comunicare il calcolatore con l’ambiente esterno

Page 20: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Esempio di HW di sistema Esempio di HW di sistema informatico informatico

Personal computer: elaboratore dedicato ad un solo utente

• Corpo contenente:– unità di elaborazione – memoria centrale– memoria di massa: informazione organizzata in file

• Disco fisso(hard disk): inamovibile e di elevata capacità• Floppy disk, chiavi USB, dischi ottici(compact disk o CD-

ROM o DVD)

• Tastiera mouse e video collegati col corpo centrale

Page 21: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

SoftwareSoftware

• SW di base– dedicato alla gestione dell’elaboratore– opera direttamente al di sopra di HW e firmware– Esempi:

• SISTEMA OPERATIVO• Sistema di gestione di basi di dati• Protocolli di comunicazione:

garantiscono la corretta comunicazione sui canali di trasmissione che trasportano segnali(tipicamente elettrici), garantendo la trasmissione dei dati tra elaboratore e terminali o tra elaboratori collegati in rete

• SW applicativo:– dedicato alla realizzazione di specifiche esigenze applicative– Utilizza linguaggi di alto livello– opera al di sopra del SW di base– Non risente delle caratteristiche architetturali del sistema

informatico:trasportabile

Page 22: Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009 CDL in Ingegneria Meccanica - A.A. 2008-2009 1. Introduzione al corso Ing. Simona

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Meccanica - A.A. 2008-2009CDL in Ingegneria Meccanica - A.A. 2008-2009

Sistema OperativoSistema Operativo

• Funzioni:– Interpreta ed esegue comandi elementari– Organizza le risorse della macchina– Gestisce l’accesso alla rete

• Sia che sia venduto dal costruttore del sistema informatico che realizzato da ditte di SW, il SO non può essere modificato dall’utente nelle sue istruzioni ed è necessario come tramite d’uso tra la macchina fisica e l’utente

• Complessità crescente con quella del sistema informatico:– In sistemi multi-utente il SO distribuisce le parti del

calcolatore tra i vari utenti in maniera apparentemente “dedicata”