Introduzione al corso, programma e modalità d`esame

1. Introduzione al corso
Ing. Simona Colucci
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Informazioni utili
Ing. Simona Colucci:
• Contatti:
SisInfLab. Dipartimento di Elettrotecnica ed Elettronica(DEE)
mailto: [email protected] Tel: 0805963515
http://sisinflab.poliba.it/colucci
• Ricevimento studenti:
Mercoledì 11:30/13:30
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Modalità d’esame
• Prova scritta:
- Composta di una parte teorica e di una applicativa
- Obbligatoria per il superamento dell’esame
• Prova orale:
- Facoltativa con il superamento della prova scritta
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Composizione 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Libri 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
•
Lezioni frontali (5 crediti, 40 ore):
–
–
–
–
–
–
–
–
•
Programma
Architettura dei calcolatori (4 ore)
Codifica binaria dell’informazione, algebra di Boole (4 ore)
Algoritmi e Programmazione Strutturata (4 ore)
Codifica degli algoritmi in linguaggio C (14 ore)
Funzioni e procedure (6 ore)
Programmazione ricorsiva (2 ore)
Gestione dei file (2 ore)
Il sistema operativo(4 ore)
Esercitazioni in aula (1 Credito, 16 ore)
–
–
–
–
Progettazione di Algoritmi (2 ore)
Codifica di Algoritmi in Linguaggio C (4 ore)
Progettazione e Codifica Algoritmi di Ordinamento e Ricerca (4 ore)
Uso di funzioni e procedure e gestione dei file (6 ore)
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Informatica
• Definizione
Scienza della rappresentazione e dell’elaborazione
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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Concetto 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempi di algoritmi
1. Lavaggio di capi resistenti in lavatrice
2. 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.)
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempio 1
Problema: Lavaggio di capi resistenti in lavatrice
Soluzione informale: lavatrice + programma “cotone 90”
Algoritmo: Esecuzione in stretta sequenza dei seguenti passi:
-lavatrice
-ammollo
-prelavaggio
-lavaggio
-candeggio
-risciacquo
-ammorbidente
-centrifuga
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempio 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
Inizio-fascia(€) Fine_fascia (€)
Aliquota (%)
- I=10% di R
O
3600
10
- Se R>3600 I=I+12%(R-3600)
3600.01
7200
22
- Se R>7200 I=I+5%(R-7200)
7200.01
15000
27
- Se R>15000 I=I+7%(R-15000)
15000.01
30000
34
- Se R>30000 I=I+7%(R-30000)
30000.01
75.000
41
- Se R>75000 I=I+5%(R-75000)
75000.01
150000
46
- Se R>150000 I=I+5%(R-150000)
150000
51
- I è l’imposta risultante
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempio 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|
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempio 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,b
2. se b>a scambiare a con b
3. se b= 0 MCD(a,b)=a a andare al passo 6
4. r= a mod b
5. sostituire a con b, b con r ed andare al passo 2
6. Fine
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Flusso 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Costrutto
• 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Diagrammi 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
vero
Condizione?
falso
-flusso (sequenza di esecuzione o controllo) con segmenti orientati che
uniscono i blocchi
-inizio e fine dell’esecuzione con ellissi
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Linguaggi 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Sistema 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Hardware
Insieme di elementi funzionali:
•
Unità di elaborazione o processore:
– esegue i programmi
•
Memoria centrale:
•
Memoria secondaria (o di massa):
•
Bus di sistema:
•
Unità periferiche:
–
–
–
–
memorizza dati e programmi per il funzionamento dell’elaboratore
capacità limitata
volatile
rapido acceso all’informazione
– capacità significativa
– persistente
– accesso all’informazione lento
– collega gli elementi funzionali consentendo lo scambio di dati
– fanno comunicare il calcolatore con l’ambiente esterno
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Esempio di HW di sistema 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Software
• 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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012
Sistemi Informativi
DEE - Politecnico di Bari
Sistema 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”
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A. 2011-2012