Corso di Fondamenti di Informatica
Corso di Laurea in Ingegneria Gestionale (L-Z)
1. Introduzione al corso
Ing. Michele Ruta
1 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Informazioni utili
Ing. Michele Ruta:
• Contatti:
– Laboratorio di Sistemi Informativi (SisInfLab)
– Dipartimento di Elettrotecnica ed Elettronica (DEE)
– E-mail: [email protected], [email protected]
– Telefono: 0805963515
– Web: http://sisinflab.poliba.it/ruta
• Ricevimento studenti:
– Lunedì ore 18.30-20.30
– Mercoledì 11:30/13:30
2 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Obiettivi formativi
Il corso si propone di introdurre:
• architettura di un calcolatore elettronico, con alcuni cenni alla
codifica dell’informazione e all’algebra di Boole;
• algoritmi;
• linguaggi di programmazione e codifica di programmi (linguaggio
C);
• strutture astratte e concrete di dati;
• file e le operazioni di I/O;
• conoscenze di base sui sistemi operativi, sulle reti di calcolatori e
sulle basi di dati.
3 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Programma
Lezioni teoriche:
•
•
•
•
•
•
•
•
•
•
Architettura calcolatori: 4 ore;
Codifica binaria ed algebra di Boole: 2 ore;
Algoritmi e progettazione “in piccolo”: 4 ore;
Codifica degli algoritmi e linguaggio C: 4 ore;
Tipi di dati, strutture di controllo, funzioni e procedure, ricorsione: 8 ore;
Strutture di dati: 6 ore;
Gestione dei file: 4 ore;
Sistemi operativi: 4 ore;
Reti di calcolatori: 2 ore;
Basi di dati: 2 ore.
Esercitazioni:
•
Esempi di algoritmi numerici e non numerici:
–
•
ricerca sequenziale e dicotomica, ordinamento: 8 ore.
Laboratorio:
–
4 di 21
utilizzo di un ambiente di programmazione per la stesura ed il test di programmi: 12 ore.
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
•
Prova scritta:
–
–
–
–
–
–
–
•
Modalità d’esame
Composta di una parte teorica e di una applicativa (la prima parte prevede la risposta a
quesiti e la soluzione di esercizi, la seconda richiede la progettazione di un algoritmo);
Obbligatoria per il superamento dell’esame (con votazione pari ad almeno 18/30);
Può essere sostituita dal superamento di entrambe le prove di esonero previste durante il
corso (se entrambe superate con votazione media pari ad almeno 15/30, consentono di
accedere direttamente alla prova orale in uno qualsiasi degli appelli disponibili dell’anno
accademico corrente);
È severamente vietata la consultazione di appunti, manuali, testi in genere, nonché l'utilizzo
di qualsiasi supporto elettronico, pena l'esclusione dalla prova stessa;
Il risultato sarà reso noto mediante avviso pubblicato sul sito del docente prima dell'inizio
della prova orale;
La partecipazione alla prova scritta richiede prenotazione preventiva, effettuata attraverso il
“registro delle prenotazioni”, dislocato nell’atrio del Dipartimento di Elettrotecnica ed
Elettronica (DEE) ed auto-gestito dagli interessati;
La partecipazione ad una prova scritta implica l'annullamento di un’eventuale altra prova
superata in uno qualsiasi degli appelli precedenti.
Prova orale:
–
5 di 21
Facoltativa (previo superamento della prova scritta con voto almeno pari a 18/30) e relativa
ai contenuti del programma ufficiale dell'anno accademico in cui è stata superata la prova
scritta.
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
•
•
•
•
•
•
•
•
•
•
6 di 21
1°
2°
1°
2°
3°
4°
5°
6°
7°
8°
Periodi di esame
esonero: durante la pausa di metà semestre (novembre);
esonero: al termine del semestre (inizio febbraio);
appello: al termine del 1° semestre (inizio febbraio);
appello: al termine del 1° semestre (fine febbraio);
appello: durante la pausa di metà semestre (maggio);
appello: al termine del 2° semestre (inizio luglio);
appello: al termine del 2° semestre (fine luglio);
appello: al termine della pausa estiva (inizio settembre);
appello: al termine della pausa estiva (fine settembre);
appello: durante la pausa di metà semestre (novembre);
Introduzione al corso
M. Ruta
Fondamenti di Informatica
Libri di testo
A.A. 2009-10
Testi di riferimento principali:
•
D. Mandrioli, S. Ceri, L. Sbattella, P. Cremonesi, G. Cugola, Informatica:
arte e mestiere, terza edizione, McGraw-Hill, 2008;
Manuali di programmazione:
•
•
A. Bellini, A. Guidi, Linguaggio C, guida alla programmazione, 3/ed,
McGraw-Hill, 2006;
Deitel&Deitel, C: corso completo di programmazione, Apogeo libri
Ulteriori testi suggeriti:
•
•
C. Batini, L. Carlucci Aiello, M. Lenzerini, A. Marchetti Spaccamela, A. Miola,
Fondamenti di Programmazione dei Calcolatori Elettronici, Franco Angeli
D. Ritchie, B. Kernighan, Il linguaggio C: Corso di programmazione, Prentice
Hall - Pearson, 2002
7 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
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”
8 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Algoritmo
• Sequenza di passi, definiti con precisione, che portano
alla realizzazione di un compito
• E’ essenziale che un algoritmo sia comprensibile al suo
esecutore
• 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ù rapido possibile e/o usando la minima
quantità di risorse fisiche, compatibilmente con la sua
correttezza
9 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Esempi di algoritmi
1. Calcolo dell’imposta IRPEF relativa a un
contribuente, dato il reddito lordo e la tabella
delle aliquote
2. Calcolo del Massimo Comun Divisore (M. C. D.)
3. Determinare l’area di una figura piana regolare
4. Cercarsi un/una fidanzato/a…
10 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Algoritmo: calcolo dell’IRPEF
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:
Inizio fascia(€)
Fine fascia (€)
Aliquota (%)
0
3600
10
3600.01
7200
22
7200.01
15000
27
15000.01
30000
34
30000.01
75.000
41
75000.01
150000
46
150000
11 di 21
51
-
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
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Algoritmo: calcolo del M. C. D.
Problema: calcolo del Massimo Comun Divisore tra due numeri a e 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.
2.
3.
4.
5.
6.
12 di 21
acquisire due numeri a,b
se b>a scambiare a con b
se b=0 MCD(a,b) = a e andare al passo 6
r = a mod b
sostituire a con b, b con r ed andare al passo 2
Fine
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
•
•
Flusso di controllo
L’ordine di esecuzione delle operazioni elementari è determinante per la
soluzione del problema
Le operazioni elementari (passi) di un algoritmo 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 possono essere
considerate come un’istruzione elementare
Si definisce COSTRUTTO l’insieme di istruzioni di controllo e istruzioni
controllate:
– costrutto condizionale: insieme di condizione e istruzioni condizionate
– costrutto iterativo: insieme di istruzioni la cui esecuzione viene ripetuta
previa verifica di opportune istruzioni di controllo
13 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
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:
14 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Diagrammi di flusso (flow chart)
-Input (inserimento dall’esterno di dati utili allo sviluppo dell’algoritmo,
p. es. inserimento da tastiera) con rettangoli con l’angolo superiore
destro smussato:
- Output (recupero dall’interno di dati/risultati prodotti dall’algoritmo, p.
es. stampa a schermo) con rettangoli con l’angolo inferiore destro
smussato:
- Dichiarazione (menzione delle grandezze variabili o costanti da
adoperare nell’algoritmo, p. es. Reddito (v. algoritmo precedente) come
variabile espressa in €) con parallelogramma posto dopo il blocco di
inizio:
15 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Linguaggi di programmazione
• Linguaggi per la codifica di algoritmi:
– consentono la scrittura sotto forma di codice di algoritmi
(programmi) in modo che possano essere “processati” da un
elaboratore
•
Da linguaggio ad alto livello a linguaggio macchina:
–
–
–
•
sforzo di traduzione da linguaggio naturale in istruzioni
macchina
uso di sintassi intermedie e di interpreti e compilatori
la procedura di traduzione prevede passi intermedi gestiti in
modo automatico
Orientamento al problema nella scelta dei linguaggi di
programmazione
–
16 di 21
linguaggi general purpose e orientati all’applicazione
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Sistema informatico
• Oggetto complesso,che può assumere nature molto
differenti, costituito da componenti che interagiscono tra
loro per eseguire algoritmi
• Classificazione 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
17 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
Hardware (HW)
A.A. 2009-10
Insieme di elementi funzionali:
•
Unità di elaborazione o processore:
•
Memoria centrale:
•
Memoria secondaria (o di massa):
•
Bus di sistema:
•
Unità periferiche:
– esegue i programmi
–
–
–
–
mantiene dati e programmi a beneficio dell’unità di elaborazione
capacità ridotta
volatile
rapido acceso all’informazione
– capacità significativa
– persistente
– accesso all’informazione lento
– collega gli elementi funzionali consentendo lo scambio di dati
– consentono la comunicazione del calcolatore con l’ambiente esterno
18 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Personal Computer (PC)
• Elaboratore genericamente dedicato ad un solo utente
• Nasce dopo la “rivoluzione dei sistemi desktop” (primi
anni 80)
– incontro tra Microsoft (ed il suo MS-DOS) e IBM (e il suo PS-2)
per produrre macchine a larga diffusione e di semplice utilizzo
• Costituenti fondamentali:
– Unità centrale:
•
•
•
•
•
unità di elaborazione (CPU)
memoria centrale
memoria di massa: informazione organizzata in file e directory
disco fisso (hard disk): inamovibile e di elevata capacità
floppy disk, dongle USB, dischi ottici (CD/DVD-ROM), dischi
elettronici
– Tastiera, mouse e monitor collegati all’unità centrale
19 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
Software
A.A. 2009-10
• SW di base
– Dedicato alla gestione dell’elaboratore
– Opera direttamente al di sopra di HW e firmware
– Esempi:
• SISTEMA OPERATIVO
• SW applicativo:
– Dedicato alla realizzazione di specifiche esigenze applicative
– Utilizza linguaggi di alto livello
– Opera al di sopra del SW di base
20 di 21
Introduzione al corso
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Sistema Operativo (S.O.)
• Funzioni:
– Interpreta ed esegue comandi elementari
– Organizza e gestisce le risorse della macchina
– Gestisce multi-utenza e multi-tasking
• Funge da tramite d’uso tra la macchina fisica e l’utente
con le relative applicazioni
• Complessità crescente con quella del sistema
informatico:
– In sistemi multi-utente il S.O. distribuisce le risorse del
calcolatore tra i vari utenti in maniera apparentemente
“dedicata”
21 di 21
Introduzione al corso
M. Ruta