Corso di Fondamenti di Informatica
Corso di Laurea in Ingegneria Meccanica (A-K)
Introduzione al corso
Ing. Agnese Pinto
1 di 21
Introduzione al corso
Fondamenti di Informatica
Informazioni utili
A.A. 2011-12
Ing. Agnese Pinto:
• Contatti:
– Laboratorio di Sistemi Informativi (SisInfLab)
– Dipartimento di Elettrotecnica ed Elettronica (DEE)
– E-mail: [email protected],
– Telefono: 0805963515
– Web: http://sisinflab.poliba.it/pinto
• Ricevimento studenti:
– Mercoledì 11:30/13:30
2 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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
3 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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;
Esercitazioni:
•
Esempi di algoritmi numerici e non numerici:
–
•
ricerca sequenziale e dicotomica, ordinamento
Laboratorio:
–
4 di 21
utilizzo di un ambiente di programmazione per la stesura ed il test di programmi
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
•
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);
È 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
servizio di prenotazioni online del DEE o tramite il portale degli studenti (secondo prossima
comunicazione)
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
Fondamenti di Informatica
A.A. 2011-12
Periodi di esame
•
•
•
•
•
•
1° appello: al termine del 1° semestre (inizio febbraio);
2° appello: al termine del 1° semestre (fine febbraio);
3° appello: durante la pausa di metà semestre (maggio);
4° appello: al termine del 2° semestre (inizio luglio);
5° appello: al termine del 2° semestre (fine luglio);
6° appello: al termine della pausa estiva (inizio
settembre);
• 7° appello: al termine della pausa estiva (fine settembre);
• 8° appello: durante la pausa di metà semestre
(novembre);
6 di 21
Introduzione al corso
Fondamenti di Informatica
Libri di testo
A.A. 2011-12
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;
7 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
A.A. 2011-12
1.
2.
3.
4.
Esempi di algoritmi
Determinare l’area di una figura piana regolare
Calcolo del Massimo Comun Divisore (M. C. D.)
Algoritmo per il prelievo al bancomat
….
10 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
Calcola l’area di una figura piana
regolare
a
b
A= a*b
11 di 21
1. Inizio
2. Prendi il valore del primo
lato a
3. Prendi il valore del
secondo lato b
4. Calcola il valore dell’area A
5. Restituisci il valore
dell’area ottenuto A
6. fine
Introduzione al corso
A. Pinto
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
A.A. 2011-12
•
•
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
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
A.A. 2011-12
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, con parallelogramma posto dopo il blocco di
inizio:
15 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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:
–
–
–
16 di 21
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
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
Hardware (HW)
A.A. 2011-12
Insieme di elementi funzionali:
•
Unità di elaborazione o processore:
•
Memoria centrale:
•
Memoria secondaria (o di massa):
•
Unità periferiche:
•
Bus di sistema:
– 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
– consentono la comunicazione del calcolatore con l’ambiente esterno
– collega gli elementi funzionali consentendo lo scambio di dati
18 di 21
Introduzione al corso
Fondamenti di Informatica
A.A. 2011-12
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
Fondamenti di Informatica
Software
A.A. 2011-12
• 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
Fondamenti di Informatica
A.A. 2011-12
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