L’esame è suddiviso in due parti:
Domande di verifica teorica su argomenti trattati a lezione (peso sul voto finale ~15%).
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.
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.
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]"
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.
Il linguaggio di riferimento è Java 8.
Durante l’esame è possibile accedere a:
https://oop.polito.it/svn/OOPLabs/s######/
)https://oop.polito.it/svn/OOP2018/...
)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.
Avviate il PC a cui siete assegnati ed effettuate il login usando le credenziali ufficiali del Politecnico
Avviare Eclipse (Oxygen 2)
(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:
tutti gli studenti devono avere la webcam accesa,
domande e risposte di chiarimento del testo vengono fatte nella chat pubblica
eventuali correzioni al testo sono pubblicate sulla chat che deve essere consultata periodicamente dagli studenti
i docenti possono chiedere, in qualunque momento, a studenti a campione di condividere schermo per verificare quanto stanno facendo
Avviate la vostra installazione di Eclipse (versione 2020-12)
Durante l’esame
Requisiti.html
all’interno del progetto (Click-destro, Open With, Web Bowser)Dopo l’esame
La valutazione si basa su due diverse versioni del programma
La votazione della prova di programmazione si basa su due componenti:
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)
Dati i criteri di valutazione, valgono le seguenti raccomandazioni:
System.exit()
import
estranei alle classi standard per evitare errori di compilazione.