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.
Progetto
Il documento contenente le specifiche del progetto di Basi di dati per l'anno accademico 2022-2023 sarà reso disponibile durante il corso.
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 2022-2023
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. 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 A.A. 2022-2023
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