Modalità d’Esame

L’esame è suddiviso in due parti:

  1. Domande di verifica teorica su argomenti trattati a lezione (peso sul voto finale ~15%).

  2. Lo sviluppo di un programma in Java, utilizzando l’ambiente Eclipse (peso sul voto finale ~85%).

Il voto complessivo verrà pubblicato sul portale con la possibilità di rifiutarlo.


Domande Teoriche

Gli argomenti oggetto delle domande sono quelli teorici di Software Engineering e le caratteristiche generali del linguaggio Java.

Il livello di approfondimento richiesto è limitato alla conoscenza dei concetti principali e non richiede la conoscenza mnemonica dei dettagli più particolari.

Modalità di risposta

Le domande sono accessibili in un file di testo all’interno del progetto JAva Eclipse. Tutte le domande possono avere zero o più risposte corrette.

Le domande proposte saranno quattro:

Tra le diverse opzioni presentate si richiedere di selezionare quelle che si ritengono corrette (eventualmente nessuna).

Un esempio di questionario con le domande è disponibile qui di seguito:

1.  Quali di queste affermazioni sono valide per un'interfaccia Java?
[ ] A1.1 - Un'interfaccia può contenere normali attributi
[ ] A1.2 - Un'interfaccia può contenere dei metodi astratti 
[ ] A1.3 - Un'interfaccia può contenere dei metodi statici
[ ] A1.4 - Un'interfaccia può essere vuota
[ ] A1.5 - Un'interfaccia deve contenere almeno un metodo astratto
2. A cosa serve l'operatore `->`?
[ ] A2.1 - a definire un'espressione condizionale
[ ] A2.2 - a definire un'assegnazione inversa
[ ] A2.3 - a implementare un'interfaccia funzionale
[ ] A2.4 - a definire un *method reference*
[ ] A2.5 - a estendere una classe
3. Che metodo usa SVN per risolvere conflitti?
[ ] A3.1 - Lock-Unlock-Modify
[ ] A3.2 - Lock-Modify-Unlock
[ ] A3.3 - Check-out/Check-in
[ ] A3.4 - Check-out/Commit
[ ] A3.5 - Copy-Modify-Merge
4. Cosa contiene la sezione centrale di una classe UML?
[ ] A4.1 - Nome della classe
[ ] A4.2 - Implementazione
[ ] A4.3 - Interfacce
[ ] A4.4 - Metodi
[ ] A4.5 - Attributi

Per selezionare una risposta inserire una "X" tra le "[ ]" --> "[X]"

Valutazione

Le risposte alle domande vengono valutate con un punteggio secondo le seguenti regole:

Per risposte parziali o che includono elementi errati saranno assegnati punteggi intermedi con una formula basata sulla accuratezza della risposta.

Tempo

Programmazione

Regole generali

Il linguaggio di riferimento è Java 8.

Durante l’esame è possibile accedere a:

L’esame deve essere svolto in autonomia, senza l’aiuto di altre persone. In caso di sospetta violazione di questa regola l’esame sarà annullato in maniera inappellabile.

Per poter sostenere l’esame occorre essere in grado di:

Durante l’esame non sarà fornita assistenza su questi argomenti.

Occorre accedere al repository e svolgere il compito da un unico dispositivo ed utilizzando la stessa connessione, in caso di problemi tecnici è necessario avvertire e spiegare la natura dei problemi.

I repository personali, precedentemente disabilitati, verranno abilitati allo stesso orario per tutti e viene comunicato l’inizio dell’esame a tutti.

ATTENZIONE Le credenziali sono disponibili da prima del compito: si tratta dei repository personali già utilizzati durante i laboratori (chi non fosse in possesso delle credenziali deve contattare i docenti almeno 2 giorni in anticipo)

ATTENZIONE Nella giornata dell’esame, prima dell’inizio dello stesso i repository personali non saranno accessibili.

Procedura - Avvio Lab

Procedura - Avvio Remoto

(Solo per chi per motivi verificati ha il permesso di sostenere l’esame a distanza)

La parte di programmazione è svolta sul proprio PC da casa. Durante l’esame è obbligatorio essere presenti nella VC di supporto il cui link sarà inviato via email a tutti gli iscritti all’esame.

All’interno della VC di supporto:

Procedura Comune

Durante l’esame

Dopo l’esame

Criteri di valutazione

La valutazione si basa su due diverse versioni del programma

La votazione della prova di programmazione si basa su due componenti:

  1. la percentuale di test superati dalla versione esame
  2. l’inverso della quantità di modifiche applicate al programma per poter superare tutti i test (ovvero la differenza tra la versione home e la versione esame)

Il programma viene ricompilato con il compilatore standard javac in ambiente linux. Se il programma causa errori di compilazione il numero di test superati viene automaticamente considerato pari a 0 (zero).

La percentuale di test superati è rinormalizzata in base all’andamento generale dell’esame. In ogni caso il programma consegnato da casa deve superare tutti i test.

Se il programma home non supera tutti i test, l’esame non verrà valutato, e lo studente verrà considerato ritirato.

Non verrà in alcun modo tenuto conto della correlazione tra i fallimenti di test diversi: non importa se più test falliscono per uno stesso errore, conta il numero di test passati/falliti. Ovviamente se la correzione di un solo errore permette di superare diversi test che fallivano nella versione exam questo comporterà un numero minore di modifiche (quindi porterà un valore maggiore per la seconda componente del voto)

Raccomandazioni

Dati i criteri di valutazione, valgono le seguenti raccomandazioni: