INGEGNERIA CIVILE E ARCHITETTURA (DICAR)Ingegneria Civile, Ambientale e GestionaleAnno accademico 2023/2024

1001000 - FONDAMENTI DI INFORMATICA M - Z

Docente: SALVATORE LONGOBARDI

Risultati di apprendimento attesi

Gli obiettivi formativi del corso, declinati secondo i descrittori di Dublino, sono i seguenti:

Conoscenza e comprensione: lo studente conoscerà i fondamenti dell'informatica come scienza che studia gli algoritmi, i principi del funzionamento e l'organizzazione di calcolatori, sistemi informativi e reti di calcolatori, e i fondamenti dei linguaggi di programmazione.

Capacità di applicare conoscenza e comprensione: lo studente sarà in grado di comprendere l'organizzazione e la logica del funzionamento dei moderni sistemi informativi, di sviluppare algoritmi per la soluzione di problemi di media complessità e di codificarli in linguaggio C.

Autonomia di giudizio: lo studente saprà valutare sia l'adeguatezza di strumenti informatici in ambito professionale, che le strutture dati e gli approcci al loro trattamento per la soluzione di problemi di elaborazione dati.

Abilità comunicative: lo studente sarà in grado di dialogare con specialisti informatici sull'organizzazione di un moderno sistema informativo, e descrivere il procedimento risolutivo di problemi di elaborazione di dati.

Capacità di apprendimento: lo studente sarà in grado di apprendere metodologie avanzate e nuovi linguaggi di programmazione, applicando con flessibilità i concetti di base forniti nel corso.


Modalità di svolgimento dell'insegnamento

Lezioni frontali alternate a esercitazioni al calcolatore da parte del docente. Il corso prevede anche esercitazioni pratiche svolte dagli studenti.

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

Prerequisiti richiesti

Nessuno

Frequenza lezioni

La frequenza è obbligatoria.

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. Progettazione 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 ricerca: Algoritmi di ricerca: ricerca sequenziale e binaria. (*)

Allocazione dinamica della memoria. (*)

Gestione di documenti di testo. (*)

Progettazione e gestione di fogli di calcolo. (*)

Introduzione alla progettazione e gestione di basi di dati. (*)

Testi di riferimento

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 del Docente - Libro di testo: Appendice D
2Architettura e funzionamento elementare del calcolatore. Esecuzione delle istruzioni. Interrupt. Algebra di Boole.- Dispense del Docente - Libro di testo: Capitolo 1
3Sistema operativo. Politiche di gestione della CPU, della memoria centrale e di massa.- Dispense del Docente - Libro di testo: Capitolo 2
4Algoritmi e programmi. Linguaggi di Programmazione.• Traduzione ed esecuzione dei programmi • Linker • Notazione grafica per la rappresentazione degli algoritmi: Diagrammi di flusso.- Dispense del Docente - Libro di testo: Capitoli 3 e 4
5Linguaggio C: Tipi di dato. Identificatori. Variabili. Classi di memorizzazione. Costanti. Operatori. Strutture di Controllo.Istruzioni di selezione, iterazione, salto,espressione, blocco. Preprocessore, include, define.- Dispense del Docente - Libro di testo: Capitoli 5, 6, 7, 8, 9, 23
6•Array •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- Dispense del Docente - Libro di testo: Capitoli 10, 13, 14, 16
7Funzioni •Istruzione return • Passaggio di Parametri •Ricorsione •Variabili locali, regole di visibilità e tempo di vita.- Dispense del Docente - Libro di testo: Capitoli 11, 15, 17, 19, 20
8Algoritmi di ricerca - Dispense del Docente - 
9Gestione di documenti di testo.- Dispense del Docente - 
10Fogli di calcolo- Dispense del Docente - 
11Introduzione alle basi di dati.- Dispense del Docente - 
12Esercizi sugli argomenti del corso- Dispense del Docente - 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame per il superamento del corso consta di due parti:

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


Esempi di domande e/o esercizi frequenti

La prova pratica al calcolatore consiste nella realizzazione di un programma in C in grado di gestire dati inseriti dagli utenti o memorizzati su file. Le conoscenze minime richieste per poterla superare con valutazione sufficiente sono le seguenti:

La prova potrà includere esercizi opzionali riguardanti:

Di seguito una lista (non esaustiva) di possibili domande teoriche.


English version