FONDAMENTI DI INFORMATICA P - Z

ING-INF/05 - 9 CFU - 2° semestre

Docenti titolari dell'insegnamento

LUCIA LO BELLO
GAETANO PATTI


Obiettivi formativi

Il corso ha la finalità di fornire conoscenze: - sulla rappresentazione dell’informazione nei calcolatori, sull’architettura dell’elaboratore, sul software di base, sul sistema operativo, sugli algoritmi, sui linguaggi di programmazione, su compilatori e interpreti e sulle reti di calcolatori - sulla programmazione strutturata e sulla programmazione in linguaggio C. Sviluppo di programmi in C per la gestione di strutture dati complesse (biblioteche, archivi, etc.).


Modalità di svolgimento dell'insegnamento

Lezioni frontali. Esercitazioni di laboratorio.


Prerequisiti richiesti

Notazione esponenziale o scientifica. Arrotondamento dei valori numerici. Numeri reali. Operazioni con numeri reali. Potenza ad esponente razionale e reale. Logaritmo di un numero reale positivo. Concetto di funzione. Vettori e Matrici: Operazioni con vettori e matrici.



Frequenza lezioni

La frequenza non è obbligatoria, ma fortemente consigliata, per sostenere sia le prove in itinere sia la prova d’esame.



Contenuti del corso

Rappresentazione dell'informazione: Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile. (*)

Struttura di un elaboratore: La struttura di un elaboratore: memoria centrale, unità centrale, funzionamento elementare dell'elaboratore. (*)

Sistema Operativo: Traduzione ed esecuzione di programmi. Ambiente di Programmazione. Compilatori vs. interpreti. Sistema Operativo. (*)

Algoritmi e Programmi: Elaborazione automatica dell'informazione. Algoritmi e programmi. Linguaggi di programmazione. Il progetto di un programma. (*)

Reti di Calcolatori e Internet: Reti di calcolatori. Reti locali. Reti geografiche. Internet e le più diffuse applicazioni di rete. (*)

Il linguaggio di programmazione "C": sintassi e semantica Controllo: Assegnazione. Strutture di controllo. Tipi di dato in C: tipi semplici (int, char, float, double) e strutturati (array e stringhe, strutture). Il tipo puntatore. Le funzioni. Campo d'azione degli identificatori. Dichiarazioni e campo d'azione degli identificatori. Variabili locali, globali e statiche. Tecniche di legame dei parametri. La ricorsione. I File: file di testo e file binari. Primitive di accesso ai file. (*)

Algoritmi di ordinamento: Algoritmi di ordinamento e ricerca. Ricerca sequenziale e binaria. (*)

Allocazione dinamica della memoria.(*)

Strutture dati: Liste. (*)

Strutture dati: Pile, Code ed Alberi.



Testi di riferimento


Altro materiale didattico

http://lobello.dieei.unict.it/fdi1819



Programmazione del corso

 ArgomentiRiferimenti testi
1Rappresentazione dell'Informazione. Sistema numerico binario. Conversione tra sistemi numerici. Rappresentazione dei numeri interi, reali. Codice ASCII. Architettura e funzionamento elementare del calcolatore. Algebra di Boole.Sistema operativo.Dispense della docente. Bellini Guidi: Capitolo 1,2 
2Algoritmi e programmi. Linguaggi di Programmazione.• Traduzione ed esecuzione dei programmi • Linker • Notazione grafica per la rappresentazione degli algoritmi: Diagrammi di flussoCapitolo 3,4. Dispense della Docente. 
3Linguaggio C: Tipi di dato. Identificatori. Variabili. Classi di memorizzazione. Costanti. Operatori. Strutture di Controllo.Istruzioni di selezione, iterazione, salto,espressione, blocco. Preprocessore, include, defineCapitolo 5,6,7,8,9,23 
4Array•Puntatori •Puntatori ad array •Stringhe •Strutture •Array di strutture • Lettura e scrittura di caratteri e stringhe •I/O formattato •File di testo • Allocazione dinamica della memoria •Puntatori a strutture Capitolo 10,13,14,16 
5Funzioni • Istruzione return • Passaggio di Parametri • Ricorsione • Variabili locali, regole di visibilità e tempo di vitaCapitolo 11,15,17,19,20 
6Puntatori a FunzioniCapitolo 20 
7Algoritmi di ricerca e di ordinamento Cap.12 
8Cenni sulla complessità computazionaleCap.12 
9Strutture dati lineari: Liste, Pile, CodeCapitolo 21 Caso di studio V Dispense della docente 
10Esercizi sugli argomenti svolti Caso di studio I, II, III, IV e V. Dispense della docente 
11Sistema esadecimale, sistema ottale • Esecuzione delle istruzioni. Interrupt. • Politiche di gestione della CPU, della memoria centrale e di massa.Dispense della docente. Bellini Guidi: Capitolo 1,2 
12Alberi.Cap.22. 


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

La prova d'esame è composta da una prova scritta e una prova orale (opzionale). La prova scritta è rappresentata da un elaborato al calcolatore (obbligatorio) della durata di due ore. L'elaborato consiste di vari quesiti, il cui punteggio è indicato esplicitamente nel compito (es. 4 funzioni da 6 punti ciascuna, etc.). La prova si considera superata se si ottiene una valutazione di almeno 18/30. Lo studente che lo desideri può integrare la prova scritta con la prova orale da svolgere in un qualunque appello regolare (entro la fine dell’a.a.), per il superamento dell’esame. Prenotazione obbligatoria tramite portale di Ateneo.

Sono previste due prove in itinere durante il corso. La prima, a risposte multiple, ha durata di un'ora, la seconda, al calcolatore, ha durata di due ore. Lo studente che abbia superato pienamente entrambe le prove in itinere, ossia ottenendo una valutazione complessiva di almeno 18/30, può accettare il voto proposto (media delle due prove) o, se lo desidera, può integrare le due prove in itinere con una prova orale da svolgere negli appelli regolari (entro la fine dell’a.a.), al fine di poter ottenere una migliore valutazione. Nel caso in cui una delle due prove sia superata pienamente (ossia, con voto maggiore di, o uguale a, 18/30) e l’altra con riserva (ossia, con voto superiore a 15/30, ma inferiore a 18/30) per il superamento dell’esame è prevista una prova integrativa (orale o al calcolatore), concordata con la Docente, che va svolta negli appelli regolari (entro la fine dell’a.a.).


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

Relativamente al linguaggio C:

- Funzioni e passaggio di parametri.

- Ricorsione ed esempio di funzioni ricorsive.

- Costruzione di menu' a scelta multipla.

- Implementazione di liste.




Apri in formato Pdf English version