Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
1. Introduzione al corso1. Introduzione al corso
Ing. Simona Colucci
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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 delle lezioni e delle esercitazioni in aula - verificata tramite problemi della prova scritta
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
Libri di testoLibri di testo
Testi di riferimento:• Ceri, Mandrioli, Sbattella. Informatica: arte e mestiere.
McGraw-Hill, 2008• Bellini, Guidi. Linguaggio C. Mc-Graw-Hill, 2006• Kerningham, Ritchie. Linguaggio C. Jackson Libri, 1989
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
ProgrammaProgramma
• Lezioni frontali (5 crediti, 40 ore):– Architettura dei calcolatori (4 ore)– Codifica binaria dell’informazione, algebra di Boole (4 ore)– Algoritmi e Programmazione Strutturata (2 ore)– Codifica degli algoritmi in linguaggio C (12 ore)– Funzioni e procedure (4 ore)– Programmazione ricorsiva (2 ore)– Gestione dei file (2 ore)– Il sistema operativo(4 ore)– Le Reti di Calcolatori(4 ore)
• Esercitazioni in aula (1 Credito, 16 ore)– Progettazione di Algoritmi (2 ore) – Codifica di Algoritmi in Linguaggio C (6 ore)– Progettazione e Codifica Algoritmi di Ordinamento e Ricerca (4 ore)– Uso di funzioni e procedure e gestione dei file (4 ore)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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.)
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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|
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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
Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari
Fondamenti di InformaticaFondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A. 2010-2011CDL in Ingegneria Gestionale (B)- A.A. 2010-2011
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”