FONDAMENTI DI INFORMATICA P - Z

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

Docenti titolari dell'insegnamento

LUCIA LO BELLO
GAETANO PATTI


Obiettivi formativi

Conoscenza e comprensione

Conoscenze sulla rappresentazione dell’informazione nei calcolatori e sull’architettura dell’elaboratore.

Comprensione del funzionamento di un elaboratore.

Conoscenze sul software di base e sul sistema operativo.

Comprensione di algoritmi.

Conoscenza sui linguaggi di programmazione e su compilatori e interpreti.

Conoscenza sulle reti di calcolatori.

Conoscenza sulla programmazione strutturata e sulla programmazione in linguaggio C.

Capacità di applicare conoscenza e comprensione

Sviluppo di programmi in linguaggio C per la gestione di strutture dati complesse (biblioteche, archivi, etc.).


Modalità di svolgimento dell'insegnamento

Lezioni frontali. Esercitazioni. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere
introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare
il programma previsto e riportato nel syllabus.


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.



Contenuti del corso

Gli asterischi (*) indicano le competenze minime.

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

Il materiale didattico sarà fornito su Studium (https://studium.unict.it) nell'area dedicata al corso.



Programmazione del corso

 ArgomentiRiferimenti testi
1Rappresentazione dell'Informazione. Sistema numerico binario. Sistema esadecimale, sistema ottale. Conversione tra sistemi numerici. Rappresentazione dei numeri interi, reali. Codice ASCII.Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Appendice D. 
2Architettura e funzionamento elementare del calcolatore. Esecuzione delle istruzioni. Interrupt. Algebra di BooleDispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Capitolo 1. 
3Sistema operativo. Politiche di gestione della CPU, della memoria centrale e di massa.Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Capitolo 2 
4Algoritmi 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 su STUDIUM, nell'area dedicata all'insegnamento. 
5Linguaggio 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 
6Array•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 
7Funzioni • Istruzione return • Passaggio di Parametri • Ricorsione • Variabili locali, regole di visibilità e tempo di vitaCapitolo 11,15,17,19,20 
8Puntatori a FunzioniCapitolo 20 
9Algoritmi di ricerca e di ordinamento Cap.12 
10Strutture dati lineari: Liste, Pile, CodeCapitolo 21 Caso di studio V Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. 
11Esercizi sugli argomenti svolti Caso di studio I, II, III, IV e V. Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. 
12Cenni su Alberi.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.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.


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