Attività di Laboratorio
|
|
Regolamento d'esame del corso di Sistemi Operativi v.0.7
L'esame di Sistemi Operativi è composto da un progetto, una prova pratica in laboratorio, una prova scritta, e (opzionalmente) da una prova orale.
Progetto
Il progetto è diviso in due fasi obbligatorie più attività facoltative.
Le due fasi vengono consegnate a date stabilite, di norma la prima fase a fine febbraio e la seconda
con diverse scadenze poste fra giugno e agosto.
Il progetto verrà svolto da gruppi di 4 persone.
Il progetto verrà discusso separatamente (molto probabilmente alla presenza uno o due assistenti)
Prova Pratica
La prova pratica riguarderà shell scripting, programmazione di sistema e amministrazione di sistema.
Lo svolgimento della prova pratica
avviene in un laboratorio del dipartimento, e la consegna avviene tramite e-mail al docente. La prova pratica è seguita da una
discussione, il cui scopo è di verificare la vostra preparazione e che lo svolgimento sia farina del vostro sacco.
Prova Scritta
Ogni scritto è suddiviso in due "prove" indipendenti:
- programmazione concorrente
Il contenuto di questa prova non cambierà rispetto agli anni passati. Sarà richiesto di
risolvere alcuni problemi di concorrenza, utilizzando le primitive viste a lezioni (semafori, monitor,
etc.) Durante questo compito, sarà possibile consultare qualunque tipo di documentazione.
- parte generale
Questa prova è una sorta di pre-orale, che in alcuni casi potrà dare origine al voto
definitivo senza passare per l'orale vero e proprio. Per questo motivo, non sarà possibile
consultare documentazione durante questa prova. Le domande verteranno su tutto il corso, e potranno
richiedere un certo ragionamento (ovvero, non saranno solo nozionistiche).
Con indipendenti, si intende che durante uno scritto uno studente può partecipare ad una o a
entrambe le prove. Se partecipate ad una prova, perdete ogni voto acquisito in precedenza
relativamente a quella prova, anche in caso di ritiro.
Al termine dello svolgimento della prova verrà immediatamente
mostrata la soluzione. A questo punto è possibile ritirare il compito
per impedirne la valutazione. Compiti non ritirati che risultino gravemente
insufficienti comportano una penalizzazione nella prima prova consegnata
successivamente.
È caldamente consigliato allo studente di prendere visione del compito
consegnato una volta corretto. Il compito può essere visionato il
giorno degli orali oppure a ricevimento se lo studente potrà documentare
impegni improrogabili per il giorno degli orali.
Questo suggerimento serve a voi studenti per forzarvi a prendere coscienza dei
vostri errori nella speranza che non vengano ripetuti in futuro.
Durante il corso,
si svolgeranno uno o due midterm (scritti parziali) relativi agli argomenti di concorrenza e parte generale.
La logica dietro questa scelta è incentivare lo studio durante il periodo delle
lezioni non quella di creare ulteriori appelli durante
l'anno (fra l'altro, questo comportamento è espressamente vietato dal regolamento di corso di studi,
per evitare interruzioni nella continuità didattica).
Prova Orale
Per accedere all'orale, è necessario conseguire una votazione di almeno 18 in tutte le prove. Il
voto finale dello scritto è dato dalla media dei due voti. Per il voto dello scritto, è
previsto una sorta di sbarramento: se prendete un voto scritto inferiore a 24, potete registrare il voto
senza passare per l'orale. Se vi sentite più preparati del voto dello scritto, potete comunque fare
l'orale. Nel caso prendiate un voto superiore o uguale a 24, è necessario fare l'orale per
confermarlo. Altrimenti, prendete il voto massimo che si può ottenere senza fare l'orale, ovvero 23.
Nel caso facciate l'orale e vi dimostriate molto insufficienti, è possibile che i voti degli scritti
siano annullati.
Il docente si riserva la possibilità di
ammettere all'orale studenti che abbiano conseguito votazioni
lievemente inferiori a 18, secondo regole che verranno comunicate
di volta in volta.
Il "programma dello studente di SO" è il seguente (se alla fine del corso di SO non sapete capire
questo programma, allora siete nei guai!)
// Inizializzazione
int votoSO = 0;
int votoConcorrenza = 0;
int votoParteGenerale = 0;
int votoProgetto = 0;
int votoProvaPratica = 0;
// Ripeto finchè non passo l'esame di SO
do {
// Partecipo alle prove fino a quando non ottengo la
sufficienza e non sono sono soddisfatto
cobegin {
// Svolgo il progetto
voto_Phase1= do_consegna_phase1()
voto_Phase2= do_consegna_phase2()
if (voglio fare la parte facoltativa)
voto_Phase3= do_consegna_phase3()
else
voto_Phase3=0
votoProgetto = (voto_Phase1 * 0.2) + (voto_Phase2 * 0.8)
if (votoProgetto > 27 && voto_Phase3 > 18)
votoProgetto += funzionediscrezionale(votoProgetto,voto_Phase3)
if (votoProgetto < 18)
return failure
// Supero la Prova Pratica
do {
votoProvaPratica = do_Prova_Pratica()
while (votoProvaPratica < 18 || non sono soddisfatto del voto della Prova Pratica)
} // {
do {
if (votoConcorrenza < 18 || non sono soddisfatto del voto di concorrenza)
votoConcorrenza = partecipoScrittoConcorrenza();
if (votoParteGenerale < 18 || non sono soddisfatto del voto di parte generale)
votoParteGenerale = partecipoScrittoParteGenerale();
} while (votoConcorrenza < 18 || votoParteGenerale
< 18 || non sono soddisfatto);
}
// Calcola la media
voto_proposto = votoProgetto * 0.2 + votoProvaPratica * 0.2 + votoConcorrenza * 0.3 + votoParteGenerale * 0.3;
// Decido se partecipare o meno all'orale
if (voto_proposto < 24) {
if (sono
soddisfatto di un voto mediocre)
votoSO = voto_proposto;
else
votoSO = partecipoOrale();
} else {
if (non
voglio partecipare all'orale) {
votoSO = 23;
else
votoSO = partecipoOrale();
}
// Se ho partecipato all'orale e prendo un voto gravemente
insufficiente,
// il docente può decidere di annullare gli
scritti
if (votoSO molto minore
di 18) {
votoConcorrenza = 0;
votoParteGenerale = 0;
}
} while (votoSO < 18);
Esempi:
Lo studente Tizio partecipa al primo mid-term (programmazione concorrente). Ottiene una votazione di 27, e
è soddisfatto. Partecipa anche al secondo mid-term (parte generale), e prende 21. Non ritiene
sufficiente questo voto, e in gennaio, in corrispondenza del primo appello, partecipa solo alla prova
relativa alla parte generale. Questa volta, prende come voto 29.
Ha inoltre preso 26 nella prova pratica e 30 nel Progetto. La media pesata è 28.
Può accedere all'orale. Se non vuole partecipare all'orale, prende 23.
Lo studente Caio partecipa al primo mid-term. La votazione che ottiene è 17. In seguito, partecipa
anche al secondo mid-term, e questa volta ottiene 25. Purtruppo, essendo 17 non sufficiente, non può
ancora accedere all'orale. In gennaio, decide di partecipare di nuovo ad entrambe le prove. Entrambi i voti
precedenti vengono cancellati. Questa volta, prende 20 e 22. Al progetto ottiene la valutazione di 25 ma alla
prova pratica prende 18. La media è 21.2, e può partecipare all'orale, oppure registrare 21 come voto finale.
Iscrizione all'esame
- Gli esami (scritti, orali, prove pratiche) vengono annunciati tramite newsgroup, tramite questo sito
e tramite il sito informatica.unibo.it.
- L'iscrizione avviene secondo le modalità annunciate nel newsgroup; leggete attentamente il
messaggio.
- In difetto di iscrizione, non è possibile partecipare allo scritto.
Validità degli esami
Vi sono alcune regole per quanto riguarda la validità delle varie prove. Alcune regole aggiuntive
possono essere trovate nelle prossime sezioni, riguardanti regole transitorie.
Progetto:
- ogni anno, vengono presentati progetti diversi; gli studenti sono tenuti a lavorare al progetto
dell'a.a. corrente, e non quello dell'a.a. in cui (per la prima volta) hanno partecipato al corso
- il voto ottenuto per il progetto è valido unicamente nei sei appelli previsti per l'anno
accademico corrente (da giugno 2010 a febbraio 2011)
- gli studenti che hanno consegnato il progetto dell'anno corrente ma non hanno superato la prova pratica entro
febbraio 2011 perdono tutte le prove di Sistemi Operativi
(compreso il progetto) e
dovranno lavorare al progetto dell'a.a. successivo; il motivo di
questa scelta sono due: vogliamo evitare di complicare una contabilità di esami, progetti, prove,
etc. già molto complessa, e vogliamo punire chi affronta questo esame in un periodo di tempo
troppo lungo.
- verranno proposti due tipi differenti di progetto. Il progetto
"guidato" (uno per anno) verrà discusso durante
tutto il corso, fornendo le specifiche e rispondendo alle domande
degli studenti a lezione durante l'anno. Prevede la consegna
di una prima fase a gennaio/febbraio e di una seconda fase
a giugno/luglio. Non vi saranno altre date disponibili per la
consegna del progetto. È il tipo di progetto più
caldamente consigliato.
- il secondo tipo di progetto è quello
"libero". Saranno date le specifiche di 5 progetti
liberi per chi intenda consegnare il progetto negli appelli
di settembre 2008 o di gennaio/febbraio 2009. Per i progetti
liberi non verrà dato supporto in aula. Eventuali dubbi
o domande sulla realizzazione verranno considerati solamente a
ricevimento. Tale forma di progetto è didatticamente
meno valida e quindi sconsigliata, in quanto separa il momento
dello studio della teoria da quello dell'implementazione.
Vecchia Laurea 3+2
Gli studenti della laurea 3+2 (DM 509/99) dovranno fare tutte le prove
previste per gli studenti del nuovo ordinamento (DM 270/2004) e inoltre
dovranno scrivere e discutere una breve tesina da concordare col docente.
Vecchia quinquennale e vecchia laurea quadriennale
Contattare il docente per concordare le modalità di esame.
"Cheating policies"
Ovvero, quali sono le nostre politiche nel caso vi sorprendiamo a copiare? Innanzitutto, copiare è
come giocare alla lotteria . E' ovvio (e lo ammettiamo tranquillamente) che è impossibile scoprire
ogni fenomeno di copiatura. Quindi se copiate, c'è una probabilità non nulla che non siate
scoperti. In questo caso, non ci sono particolari punizioni; "vincete" qualche punto in più
all'esame, perdete l'opportunità di studiare e capire una parte del corso. Ma se venite scoperti,
quello che potete "vincere" è un'espulsione dallo scritto, un certo numero di punti al voto finale,
o addirittura (nei casi più gravi, come la copiatura dei progetti) la sospensione dell'esame
nell'intero anno accademico. Negli Stati Uniti (ma non qui, purtroppo), le "cheating policies" includono
addirittura l'espulsione dall'Università, in caso di eventi ripetuti.
Queste sono le politiche:
- Durante i compiti scritti, è proibito comunicare in qualunque modo con gli altri studenti (sia
verbalmente, che in forma scritta o elettronica - bigliettini, SMS, rete wireless, infrarossi, etc), per
qualunque motivo (anche fosse solo per chiedere una penna). Nel caso veniate sorpresi a comunicare, sia
durante il compito che al momento della consegna, il compito verrà annullato. L'annullamento
riguarda entrambi gli estremi della comunicazione, sia la sorgente che la destinazione.
- Il compito potrà essere annullato anche in caso di manifesta copiatura scoperta nel corso
della correzione degli scritti. Anche in questo caso, l'annullamento riguarda sia chi copia che chi ha
permesso di copiare.
- Le esercitazioni periodiche devono essere svolte singolarmente. Sebbene sia caldamente consigliato
consultarsi con i colleghi per risolvere difficoltà, consigliarsi a vicenda, copiare "pari pari"
il codice di un vostro collega non è tollerato.
- Per quanto riguarda i lavori di gruppo, questi devono essere svolti dai componenti del gruppo. Questo
significa che tutti devono contribuire al progetto, e devono essere a conoscenza delle varie parti dello
stesso. Il voto dato al progetto è personale: ovvero, se il vostro gruppo consegna un buon
progetto, ma non siete in grado di dimostrare di aver partecipato alla sua realizzazione, il vostro voto
potrà essere inferiore a quello degli altri componenti, o, nei casi più gravi, vi
potrà essere richiesto di ripresentare un nuovo progetto.
Durante i compiti
- Nel compito di concorrenza e nella prova pratica, è consentito consultare libri, quaderni e
ogni documentazione; è anche possibile utilizzare qualsiasi apparato. Eccezioni:
-
- non è consentito consultare persone.
- gli apparati non devono consentire comunicazione (cellulari, laptop o palmtop con interfaccia
radio o infrarosso...).
- si può consultare o utilizzare solo materiale proprio, è vietato lo scambio di
qualsiasi oggetto (penna, gomma, foglio, libro o altro).
- Nel compito sulla parte generale non è possibile consultare alcun tipo di documentazione. E'
come fare un orale.
- In caso venga scoperto uno scambio di informazione fra studenti sia durante il compito sia durante la
consegna, l’elaborato degli studenti coinvolti verrà annullato.
- Non è consentito uscire durante lo svolgimento del compito.
- Il compito deve essere consegnato. Se desiderate che il vostro compito non venga valutato scrivete
nel primo foglio “NON VALUTARE” .
- Non sono accettate domande sul testo dopo la spiegazione pubblica iniziale.
- Gli esercizi devono essere svolti negli spazi assegnati. Tutto ciò che verrà scritto al
di fuori degli spazi assegnati non è soggetto a correzione. Non sono accettati fogli
aggiuntivi.
- Esistono nel compito due esercizi standard: l’esercizio 0 (Scrivere correttamente il proprio
nome e cognome e numero di matricola su tutti i fogli) e l’esercizio -1 (essersi iscritti
correttamente per svolgere la prova). L'esercizio 0 va svolto per primo, prima di ogni altro esercizio,
appena ricevuto il testo del compito.Durante lo svolgimento del compito si deve lasciare sul tavolo il
libretto universitario.
- I testi del compito vengono resi pubblici alla fine della prova. Chi desidera una copia residua del
testo la potrà avere solamente quando tutti i colleghi avranno consegnato.
- Gli esercizi devono essere scritti a penna blu o nera (il rosso lo usiamo noi). Non è gradito
l’uso di bianchetto e simili correttori.
- I compiti verranno forniti ai rispettivi autori durante la correzione pubblica perchè possano
controllare gli errori compiuti e chiedere eventuali spiegazioni ma vanno restituiti.
- Quando un esercizio richiede di utilizzare uno specifico paradigma per la programmazione concorrente
(monitor, semafori, message-passing, regioni critiche condizionali) si deve usare solo il paradigma
richiesto. Busy wait non deve essere mai usato con semafori, monitor(!) e message passing. Le variabili
condition sono signal-urgent e i semafori FIFO, salvo diversamente specificato.
|