Fondamenti di Programmazione

Modalità d'Esame

Modalità Homework

Questa è la modalità consigliata. Durante il corso saranno assegnati 6 homework (cioè, esercizi da fare a casa) di cui 3 prima della prova intermedia e 3 dopo. La valutazione di ogni homework dà luogo a un punteggio da 0 a un punteggio massimo. I punteggi massimi sono riportati nella tabella:

hw 1 hw 2 hw 3 hw 4 hw 5 hw 6
15 45 45 45 45 45

La somma dei punteggi ottenuti nei 6 homework è il punteggio_totale che corrisponde a un voto in trentesimi calcolato tramite la formula:

voto = round(punteggio_totale/7.0)

Però affinché le soluzioni conegnate siano considerate valide devono superare il cheating test e devono essere convalidate.

La prova intermedia consiste nel colloquio di convalida dei primi 3 homework, se però non è stato superato il cheating test, la prova intermedia consiste nella prova speciale (se si è ammessi a sostenerla). La stessa procedura è applicata agli ultimi 3 homework e la relativa convalida o la prova speciale si svolgeranno nel primo appello dopo la fine del corso. Negli appelli successivi gli homework non sono più validi e l'esame è espletato secondo la modalità senza homework descritta più avanti.

Per spiegare in modo preciso la procedura, ecco un programma in Python che la implementa:

def cheating_test(sol):
    '''Ritorna True se le soluzioni sol superano il cheating test'''
    . . .

def prova_speciale(stu, sol):
    '''Ritorna True se lo studente stu e' ammesso a sostenere la prova
    speciale per le soluzioni sol e la supera'''
    . . .

def convalida(stu, sol):
    '''Ritorna True se lo studente stu passa la convalida delle
    soluzioni sol'''
    . . .

stu = . . .   # Studente
sol_1 = . . . # Soluzioni consegnate primi 3 homework
sol_2 = . . . # Soluzioni consegnate ultimi 3 homework
valid = True
punteggio_totale = 0
if cheating_test(sol_1):
    if convalida(stu, sol_1):
        punteggio_totale += punteggio(sol_1)
elif prova_speciale(stu, sol_1):
    punteggio_totale += punteggio(sol_1)
else:
    valid = False
if valid:
    if cheating_test(sol_2):
        if convalida(stu, sol_2):
            punteggio_totale += punteggio(sol_2)
    elif prova_speciale(stu, sol_2):
        punteggio_totale += punteggio(sol_2)
    else:
        valid = False
if valid:
    voto = round(punteggio_totale/7.0)
    if voto >= 18:
        print 'Esame superato con voto:', voto
    else:
        print 'Voto insufficiente'
else:
    print "Non puo' sostenere l'esame tramite gli homework!"

Modalità senza Homework

Se non si vuole o si è costretti a sostenere l'esame senza homework, l'esame consiste in una prova in laboratorio con uno o più esercizi di programmazione relativi a tutti gli argomenti svolti a lezione. Superare l'esame tramite questa prova potrebbe risultare più difficile perché gli esercizi sono della stessa difficoltà degli ultimi homework ma devono essere risolti in un tempo più limitato.

Codice di Comportamento

Gli studenti possono discutere con altri le soluzioni degli homework ma poi ognuno deve scrivere la soluzione per proprio conto. La discussione con gli altri non solo è permessa ma è anche incoraggiata perché è molto utile per mettere a confronto le proprie idee, per chiarire dubbi e per rendere più gradevole e stimolante lo studio. Però poi le soluzioni vanno interamente pensate, o ripensate, e scritte per proprio conto senza copiarle in tutto o in parte da altri. Anche passare la soluzione ad altri non è permesso. Infatti, sia chi ha copiato che chi si è fatto copiare incapperà nel cheating test. E allora sarà a discrezione del docente permettergli o meno di continuare a sostenere l'esame con la modalità degli homework.