Didattica

Ricevimento studenti
Giovedì dalle 16:30 alle 18:30.
Inviare una email con almeno due giorni di anticipo per prendere un appuntamento.
Si riceve risposta non appena mi è possibile assegnare un appuntamento.
NOTA: se non si riceve una risposta entro il giorno del ricevimento, significa che
non ci sono più appuntamenti disponibili. Non inviare ulteriori email. La richiesta slitta automaticamente al ricevimento successivo.
Tool [Oracle MySQL] e creazione del database
Per iniziare a programmare sul proprio computer,
scaricare l'installer di MySQL Community Server e MySQL Workbench seguendo i link nella colonna di destra di questa pagina.
Per sistemi operativi Windows, scaricare e lanciare l'installer.
Per sistemi operativi macOS e Linux, scaricare e installare prima
MySQL Community Server e successivamente MySQL Workbench.
Lanciare MySQL Workbench,
creare una connection a MySQL server (user: root; password: "scelta durante l'installazione", host: 127.0.0.1; port: 3306), aprire poi la connection e copiare questo script in un tab di MySQL Workbench e successivamente eseguirlo.
NOTA: questo database sarà usato dalla seconda lezione in poi.
Materiale didattico 2024-2025
Il materiale didattico sarà reso progressivamente disponibile in questa sezione.
Introduzione a MySQL, select statement, valori NULL, gestione delle date
Query multi-table: inner/outer/cross/self join e derived table
Raggruppamento, common table expressions
Subquery, stored procedure (1ª parte)
Stored procedure (2ª parte), DML
Trigger, event, materialized view
Window functions
Registri delle lezioni
Basi di dati (861II - 9CFU) A.A. 2024-2025
Registro
Basi di dati (861II - 9CFU) A.A. 2023-2024
Registro
Basi di dati (861II - 9CFU) A.A. 2022-2023
Registro
Basi di dati (861II - 9CFU) A.A. 2021-2022
Registro
Basi di dati (861II - 9CFU) A.A. 2020-2021
Registro
Basi di dati (861II - 9CFU) A.A. 2019-2020
Registro
Soluzioni degli esercizi
In quest'area saranno caricate le soluzioni degli esercizi delle esercitazioni.Database Clinica: Descrizione - Script
Esercizi 1
Esercizi 2
Esercizi 3
Esercizi 4
Esercizi 5
Esercizi 6
Testi d'esame
Tracce degli appelli precedenti.
2012-2013
22 Gennaio 2013 Testo - Soluzioni
11 Febbraio 2013 Testo - Soluzioni
1 Marzo 2013
Testo - Soluzioni
2013-2014
20 Giugno 2013
Testo - Soluzioni
10 Luglio 2013
Testo - Soluzioni
31 Luglio 2013
Testo - Soluzioni
23 Settembre 2013
Testo - Soluzioni
21 Gennaio 2014
Testo -Soluzioni
10 Febbraio 2014
Testo - Soluzioni
28 Febbraio 2014
Testo - Soluzioni
2014-2015
20 Giugno 2014
Testo - Soluzioni
10 Luglio 2014 Testo - Soluzioni
26 Luglio 2014
Testo - Soluzioni
25 Settembre 2014
Testo - Soluzioni
8 Gennaio 2015
Testo - Soluzioni
31 Gennaio 2015
Testo - Soluzioni
25 Febbraio 2015
Testo - Soluzioni
2015-2016
10 Giugno 2015
Testo - Soluzioni
29 Giugno 2015
Testo - Soluzioni
20 Luglio 2015
Testo - Soluzioni
26 Settembre 2015
Testo - Soluzioni
16 Gennaio 2016 Testo
9 Febbraio 2016
Testo
26 Febbraio 2016
Testo
2016-2017
15 Giugno 2016
Testo
6 Luglio 2016
Testo
23 Luglio 2016
Testo
Tracce recenti
5 Giugno 2019
Testo - Soluzioni
16 Settembre 2019
Testo - Soluzioni

Ricevimento studenti
Martedì pomeriggio dalle 16:30 alle 18:30.
Inviare una email con almeno due giorni di anticipo per prendere un appuntamento.
Si riceve risposta non appena mi è possibile assegnare un appuntamento per il martedì successivo.
Macchina virtuale
Per iniziare a programmare sul proprio computer,
scaricare la distribuzione Linux Debian 8.2 da qui
e installarla sulla propria macchina tramite un software di virtualizzazione (per esempio, VirtualBox) come spiegato a lezione.
Progetto
Il documento contenente le specifiche del progetto 2022-2023 è disponibile qui.
Materiale didattico 2022-2023
Il materiale didattico sarà reso progressivamente disponibile in questa sezione.
Introduzione a UNIX, shell e comandi base
Configurazione interfacce di rete, gateway, DNS
DHCP, ping, traceroute
Configurazione di un server DHCP su Unix + configurazione dei client
Introduzione al linguaggio C e alla programmazione distribuita
Programmazione distribuita in C (1ª parte): socket e relative system call
Programmazione distribuita in C (2ª parte): scambio di dati, protocolli text e binary, serializzazione
Server concorrenti - Appendice a send/recv
Socket nonblocking, I/O multiplexing, socket UDP
Firewall, NAT
Apache HTTP server
Algoritmi di routing
Soluzioni degli esercizi
In quest'area saranno caricate le soluzioni degli esercizi delle esercitazioni.Esercizio 1: configurazione di rete soluzioni
Esercizio 2: socket server - client
Esercizio 3: socket [server iterativo] server - client
Esercizio 3bis [chat] ver1. server - client, ver2. server - client
Esercizio 4: socket [server concorrente] server - client
Esercizio 5: socket TCP + I/O multiplexing [unica richiesta] server - client
Esercizio 6: socket TCP + I/O multiplexing [richieste multiple] server - client
Link utili:
Guida all'installazione di NetBeans su Debian
Guida all'installazione di Visual Studio Code su Debian
Registri delle lezioni
Reti informatiche (545II - 9 CFU) A.A. 2022-2023
Registro
Reti informatiche (545II - 9 CFU) A.A. 2021-2022
Registro
Reti informatiche (545II - 9 CFU) A.A. 2020-2021
Registro
Reti informatiche (545II - 9 CFU) A.A. 2019-2020
Registro

Overview
This course is about multiobjective optimization (MOO) and the most recent
evolutionary techniques and multi-objective genetic algorithms (MOGAs).
You will also learn how to handle constraints and deal with
particularly hard problems (non-differentiable, discontinuous, non-linear, integer and MILP).
Performance evaluation, statistical validation and
multi-criteria decision making techniques complete the set of topics
covered by the course.
Slides
The slides will be uploaded here.
Lecture 1 - Background on MOO and MOGAs, encoding, initialization, selection, crossover and mutation
Lecture 2 - Real encoding, k-point/linear/SBX crossover, Non-dominated Sorting Genetic Algorithm II
Lecture 3 - Constrained optimization problems
Lecture 4 - Tuners, performance evaluation, statistical validation
Lecture 5 - Multi-criteria decision making
Log of the lectures
A detailed description of all the topics covered by each lecture can be found here.
I will keep it constantly updated with the new topics by putting them in after each lecture.

Overview
The course starts giving a mathematical background on multi-objective optimization and genetic algorithms for real, integer and mixed-integer problems. The focus then moves to the main steps of Pareto-based GAs, and how to handle constraints and hyperparameters. The course ends introducing some decision-making techniques.
Slides
The slides will be uploaded here.
Lecture 1 - Preliminaries on GAs
Lecture 2 - NSGA-II
Lecture 3 - Handling constraints
Lecture 4 - Hyperparameters, MCDM