Versione 1.0 – 2017-05-11 – Fulvio Corno
Nell’ordinamento DM270 è prevista una prova finale del valore di 3 crediti (corrispondenti a circa 2-3 settimane di lavoro a tempo pieno), a fronte della presentazione di un elaborato ad un relatore assegnato dal Collegio di Ingegneria Gestionale.
Questo breve documento delinea i requisiti e le modalità per svolgere la prova finale sugli argomenti trattati nel corso di Tecniche di Programmazione, per gli studenti che intendessero approfondire tali tematiche.
La prova finale consiste nella analisi, progettazione, realizzazione e test di un applicativo software in grado di affrontare e risolvere un problema algoritmico di rilevante interesse gestionale.
L’argomento dovrà essere proposto dallo studente, che potrà prendere spunto dagli argomenti trattati nei propri corsi di studio, nel tirocinio, o grazie ad eventuali esperienze personali o lavorative.
L’argomento proposto dallo studente dovrà avere le seguenti caratteristiche:
- Affrontare un problema di rilevante interesse per gli ingegneri gestionali
- Richiedere l’adozione di algoritmi di simulazione, ricerca o ottimizzazione
- Essere applicato a data-set (tipicamente memorizzati all’interno di basi di dati relazionali) di dimensioni significative, possibilmente reali o quantomeno realistici
- Essere realizzato sotto forma di applicazione Desktop, redatta in linguaggio Java, e dotata di interfaccia grafica.
Gli studenti che desiderano proporre un argomento per la prova finale dovranno inviare un breve documento di specifica, redatto secondo il modello di proposta. La consegna dovrà avvenire almeno un mese prima della sessione di laurea; preferibilmente con maggiore anticipo. La proposta dovrà essere caricata come "nuova issue" in questo progetto GitHub.
Entro una settimana dalla ricezione, la proposta verrà analizzata, accettata o rifiutata (sulla base del soddisfacimento delle caratteristiche sopra esposte e della chiarezza e completezza della proposta compilata). In caso di problemi, sarà possibile interagire (attraverso i messaggi della issue) per migliorare la proposta.
Non appena la proposta sarà approvata, verrà creato un progetto GitHub, da utilizzarsi per lo sviluppo e la consegna del progetto. All'approvazione della proposta, lo studente dovrà fare la richiesta di inizio prova finale sul Portale della Didattica.
I lavori sono strettamente personali, non è ammesso svolgerli in gruppo.
L’eventuale superamento (o meno) dell’esame non è in alcun modo influente sull’assegnazione dei lavori.
Il lavoro verrà svolto in autonomia dallo studente. In caso di necessità, i docenti del corso sono disponibili per eventuali consulenze.
Gli strumenti, le tecnologie e le librerie utilizzate potranno essere quelle illustrate durante il corso, ma questo non è un requisito vincolante: in funzione del problema affrontato, si potranno anche adottare soluzioni tecniche diverse, nel rispetto dei vincoli sopra descritti.
Lo sviluppo dovrà essere condotto utilizzando il repository GitHub appositamente creato.
Entro 10 giorni prima della data prevista per la laurea, lo studente dovrà consegnare il lavoro terminato. La consegna deve comprendere:
- Una relazione tecnica, in formato PDF ed in formato sorgente (doc, odt, tex, ...), che comprenda le informazioni elencate nella struttura della relazione. Tale documentazione dovrà essere caricata in una sottocartella
documenti
del progetto GitHub - Un breve video (screencast), caricato su YouTube (o su altri siti analoghi), di non più di 5 minuti, che dimostri il funzionamento del programma.
- L'intero progetto, comprendente i sorgenti del software sviluppato, copia degli eventuali data-set e di un file README.txt contenente le istruzioni per l’installazione ed il test del software. Tale codice dovrà essere caricato nel progetto GitHub assegnato.
Contestualmente alla consegna, lo studente dovrà fare domanda sul portale della didattica per la valutazione e registrazione dei crediti (area "prove finali").
Ai fini di massimizzare la possibilità di riuso del materiale prodotto, sia da parte dello studente che dei docenti, si richiede che:
- La relazione tecnica sia rilasciata con licenza Creative Commons (preferibilmente BY-NC-SA).
- Il software sia rilasciato con licenza Open Source (preferibilmente Apache 2.0).
- I data-set utilizzati siano accompagnati dalla descrizione della fonte da cui provengono, con indicazione esplicita delle eventuali modalità permesse per un loro riutilizzo e/o ridistribuzione (particolarmente importante nel caso in cui provengano da un’azienda). In particolare, si suggerisce di anonimizzare eventuali dati personali o aziendali nella versione del data-set allegato al progetto.