FONDAMENTI DI INFORMATICA F - O

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

Docenti titolari dell'insegnamento

SIMONE PALAZZO
SALVATORE LONGOBARDI


Obiettivi formativi

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, 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

Nessuno



Frequenza lezioni

E' fortemente consigliata la partecipazione delle lezioni.



Contenuti del corso

Introduzione: Algoritmi e Programmi

Elaborazione automatica dell'informazione. Algoritmi e programmi. Un linguaggio di programmazione. Il progetto di un programma. La programmazione strutturata. Diagrammi di flusso e pseudocodice.

Rappresentazione dell'informazione

Sistemi di codifica. Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile. Rappresentazione di dati multimediali.

Architettura di un sistema di elaborazione

La struttura di un elaboratore: memoria centrale, unità centrale, funzionamento elementare dell'elaboratore (ciclo macchina). Dispositivi periferici e memorie di massa. Classificazione dei sistemi di elaborazione.

Reti di Calcolatori e Internet
Generalità sulle reti di calcolatori. Reti locali. Reti geografiche. I protocolli di rete. Cenni su Internet e sulle più diffuse applicazioni di rete.

Software di base e Sistemi Operativi

Traduzione ed esecuzione di programmi. Ambiente di Programmazione. Compilatori vs. interpreti. Architettura e funzionalità del Sistema Operativo. Gestione dei processi. Gestione della memoria. Gestione del file system.

Il linguaggio di programmazione C: sintassi e semantica

Istruzioni di 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.

Algoritmi di ordinamento e ricerca

Ricerca sequenziale e binaria. Algoritmi di ordinamento.

Allocazione dinamica

Strutture dati dinamiche. Allocazione dinamica della memoria.



Testi di riferimento

  1. Fondamenti di Informatica per Ingegneria Industriale, a cura di: Daniela Giordano, Salvatore Cavalieri e Concetto Spampinato. McGraw-Hill.

  2. Linguaggio C - 5a ed. - Guida alla programmazione con elementi di Objective-C, a cura di Bellini, Guidi.


Altro materiale didattico

Le slide delle lezioni saranno pubblicate su Teams.



Programmazione del corso

 ArgomentiRiferimenti testi
1Codifica dell'informazione 
2Introduzione al C 
3Variabili 
4Algoritmi 
5Operatori ed espressioni 
6Casting ed istruzioni condizionali 
7Linguaggi di programmazione 
8Computabilità e algebra di Boole 
9Switch 
10CPU e memorie 
11Istruzioni iterative 
12Sistemi operativi 
13Array 
14Matrici e stringhe 
15Reti di calcolatori 
16Struct 
17Puntatori 
18Vettori e puntatori; puntatori a vettori e a struct 
19Funzioni; passaggio di parametri per valore 
20Passaggio di parametri per indirizzo 
21Allocazione dinamica 
22Ricorsione e file 


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 scritta 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.




Apri in formato Pdf English version