Gli obiettivi del corso sono:

  • Sviluppo della capacità di comprendere agli aspetti essenziali del ragionamento matematico;
  • Saper leggere un testo matematico;
  • Comprensione della metodologia della matematica.
Conoscenza e capacità di comprensione
Conoscenza degli aspetti fondamentali della logica e dell’analisi.

Conoscenza e capacità di comprensione applicate
Alla fine del corso, lo studente sarà in grado di leggere testi avanzati di logica e di analisi.

Autonomia di giudizio
Lo studente sarà in grado di esprimere giudizi su aspetti rilevanti della matematica.

Abilità comunicative
Gli studenti saranno tenuti a comunicare teorie sofisticate sia formalmente sia intuitivamente.

Capacità di apprendere
Lo studente potrà comprendere la natura del ragionamento matematico.

Il corso è organizzato in due moduli. L’obiettivo del primo modulo del corso di Reti di calcolatori e sicurezza è quello di far comprendere e conoscere agli studenti le architetture e le principali problematiche di progettazione delle moderne reti di calcolatori. A tal fine si approfondiranno le caratteristiche ed il funzionamento dei protocolli di rete più diffusi. Sarà inoltre prevista una attività di laboratorio basata sull’utilizzo di emulatori di rete e analizzatori di traffico.

L’obiettivo del secondo modulo del corso di Reti di calcolatori e sicurezza è quello di far comprendere e conoscere agli studenti le principali tecnologie per la programmazione su reti. Nel secondo modulo saranno discusse tecnologie di base per la creazione di applicazioni client-server fino ad arrivare a framework avanzati per lo sviluppo di applicazioni basate sul web.


Conoscenza e capacità di comprensione 
Acquisizione delle conoscenze fondamentali di base sulle architetture nonché sulle principali problematiche di progettazione e gestione delle moderne reti di calcolatori anche in riferimento alla programmazione su reti.

Capacità di applicare conoscenza e comprensione 
Capacità di valutare le modalità di funzionamento delle reti di calcolatori e le difficoltà di programmazione su reti per una piena comprensione delle soluzioni tecniche utilizzate.

Autonomia di giudizio 
Capacità di analizzare e valutare l’architettura di una rete di calcolatori secondo i componenti che la costituiscono. Capacità di progettare e implementare applicazioni client-server.  

Abilità comunicative 
Capacità di descrivere soluzioni di progettazione di una rete di calcolatori mediante l’analisi delle specifiche tecniche fornite. Capacità di progettare applicazioni client-server, incluse applicazioni basate sul web.

Capacità d’apprendimento  
Capacità di aggiornamento con la consultazione di testi avanzati. Capacità di seguire, utilizzando le conoscenze acquisite nel corso, sia corsi di master di primo livello, che corsi di laurea magistrali.

Acquisizione delle competenze teoriche e metodologiche necessarie per la progettazione e l’analisi degli algoritmi con particolare riferimento ai concetti di complessità computazionale e correttezza. 
Il corso prende in esame le tecniche classiche di progettazione ed analisi di un algoritmo che saranno introdotte mediante lo studio dei problemi classici di ordinamento, selezione, moltiplicazione tra matrici, ricerca della sottosequenza più lunga e code con priorità. 
Sarà altresì evidenziata la centralità della organizzazione dei dati nella progettazione di algoritmi efficienti, questo attraverso lo studio delle strutture dati semplici (Liste, Pile, Code, Grafi ed Alberi) e dei problemi classici della Ricerca, dell’Union Find, dell’MST e dello SP.

Conoscenza e capacità di comprensione 
Lo studente, al termine dell’attività didattica, avrà conoscenza degli aspetti teorici e pratici utili per la progettazione e l’analisi degli algoritmi.

Conoscenza e capacità di comprensione applicate
Gli aspetti teorici troveranno applicazione nello studio del problemi classici che saranno, in tal senso, realmente analizzati attraverso quegli strumenti matematici utili per determinare la complessità e la correttezza.

Autonomia di giudizio 
Lo studente raggiungerà le competenze necessarie per individuare la giusta soluzione algoritmica a specifici problemi ben formalizzati.

Abilità comunicative 
Lo studente sarà in grado di esprimere in maniera formale e rigorosa concetti di analisi avanzata quali complessità e correttezza di un algoritmo.

Capacità di apprendere
Lo studente avrà possesso delle nozioni e degli strumenti utili per operare nell’area dell’analisi degli algoritmi attraverso i quali potrà individuare la giusta soluzione algoritmica per la risoluzione di problemi reali.

Lo studente, in coerenza con gli obiettivi del corso di studio, svilupperà le essenziali relative a fondamenti, concetti, metodi e tecniche per il progetto e l'utilizzo delle basi di dati e dei sistemi di gestione delle basi di dati.

Lo studente, alla fine del primo modulo dell’attività didattica, sarà in grado di comprendere e utilizzare le nozioni e strumenti basilari connessi alla progettazione e realizzazione delle basi di dati relazionali.
Al termine del secondo modulo, lo studente conoscerà l’estensione del modello dei dati relazionale basato sulla logica ed in particolare la sua implementazione computazionale attraverso Datalog e Prolog, l’utilizzo delle ontologie al fine di rappresentare la conoscenza in domini complessi e la loro complementarità rispetto alla rappresentazione relazionale dei dati e avrà una comprensione delle principali caratteristiche dei database NoSql e delle motivazioni del loro utilizzo soprattutto in contesti di “Big Data”.


Il corso di livello elementare è rivolto a studenti universitari di biologia, informatica e scienze naturali. L'obiettivo è quello di fornire le conoscenze, le competenze e gli strumenti per comprendere semplici fenomeni fisici che si presentano in natura e per descrivere alcune semplici applicazioni tecniche della fisica, di cui gli studenti avranno bisogno nel proseguire gli studi scientifici e, allo stesso tempo, di trasmettere l'emozione della ricerca del fisico per capire la natura al suo livello più profondo. Si basa sulla convinzione che tutti gli studenti possano e debbano prendere confidenza con le idee di base della fisica e, per questo motivo, sottolinea i principi senza perdere comunque di vista la vita quotidiana e situazioni concrete.

Il corso ha l'obiettivo di fornire conoscenze di metodi numerici e di tecniche di implementazione al fine di costruire algoritmi e codici per la risoluzione efficiente di problemi di calcolo scientifico. Iniziare gli studenti ad ambienti di calcolo scientifico che potranno rivelarsi utili nel proseguimento degli studi di informatica.

Lo studente, alla fine dell’attività didattica, conoscerà gli aspetti teorici e pratici inerenti a sorgenti e propagazione degli errori, metodi numerici e algoritmi per la risoluzione di sistemi lineari e di equazioni non lineari, per l’approssimazione di dati e funzioni e per la risoluzione di equazioni non lineari. Avrà conoscenze dell’ambiente di calcolco Matlab/Scilab.

Lo studente, in coerenza con gli obiettivi del corso di studio, svilupperà competenze specifiche essenziali per la formazione di un profilo professionale necessario per operare a livello ingegneristico nel settore dell'industria del software. Il corso fornisce un quadro dei problemi, della teoria, dei modelli, delle tecniche e delle tecnologie che caratterizzano la produzione e la vita del software, con particolare riferimento alla progettazione del software orientata agli oggetti.

Lo studente, alla fine dell’attività didattica, conoscerà gli aspetti teorici e pratici sui principi di definizione, modellazione, progettazione, implementazione e verifica di sistemi software di complessità medio-elevata (programming in the large).