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.
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.
Nessuno
E' fortemente consigliata la partecipazione delle lezioni.
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.
Fondamenti di Informatica per Ingegneria Industriale, a cura di: Daniela Giordano, Salvatore Cavalieri e Concetto Spampinato. McGraw-Hill.
Linguaggio C - 5a ed. - Guida alla programmazione con elementi di Objective-C, a cura di Bellini, Guidi.
Argomenti | Riferimenti testi | |
---|---|---|
1 | Codifica dell'informazione | |
2 | Introduzione al C | |
3 | Variabili | |
4 | Algoritmi | |
5 | Operatori ed espressioni | |
6 | Casting ed istruzioni condizionali | |
7 | Linguaggi di programmazione | |
8 | Computabilità e algebra di Boole | |
9 | Switch | |
10 | CPU e memorie | |
11 | Istruzioni iterative | |
12 | Sistemi operativi | |
13 | Array | |
14 | Matrici e stringhe | |
15 | Reti di calcolatori | |
16 | Struct | |
17 | Puntatori | |
18 | Vettori e puntatori; puntatori a vettori e a struct | |
19 | Funzioni; passaggio di parametri per valore | |
20 | Passaggio di parametri per indirizzo | |
21 | Allocazione dinamica | |
22 | Ricorsione e file |
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.
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.