Καλημέρα,
Ακολουθούν μερικές διευκρινίσεις και σκέψεις μας σχετικά με την εργαστηριακή εξέταση του μαθήματος, σε απάντηση σχετικών e-mail που δεχθήκαμε.
Πέραν των παρακάτω και για την αποφυγή εκπλήξεων, υπενθυμίζουμε ότι πάγια τακτική στα μαθήματα του προγραμματισμού είναι ότι υποβληθείσες λύσεις θα μηδενίζονται αν κατά τη γνώμη των διδασκόντων θεωρούνται προϊόντα αντιγραφής ή συνεργασίας (με ανθρώπους ή μηχανές, εδώ που έχουμε φτάσει).
-
"Εξαιτίας ενός μικρού λάθους στην υποβολή, πήρα μηδέν."
Η αξιολόγηση των φοιτητών σε αυτό το μάθημα, όπως και στο αντίστοιχο του πρώτου εξαμήνου, συμπεριλαμβάνει σε κάποιο βαθμό την αποδεδειγμένη ικανότητα στον προγραμματισμό, προφανώς με τη χρήση ηλεκτρονικού υπολογιστή και όχι επί χάρτου. Συγκεκριμένα, όπως είναι εξ αρχής γνωστό και για τα δύο μαθήματα: 2 μονάδες προέρχονται από τις ασκήσεις που οι φοιτητές υποβάλλουν στον grader κατά τη διάρκεια του εξαμήνου, 2 μονάδες από την εργαστηριακή εξέταση, που πάλι υποβάλλεται στον grader, και 7 μονάδες από την τελική γραπτή εξέταση.
Οι ασκήσεις που υποβάλλονται στον grader ελέγχονται αυτόματα: μεταγλωττίζονται και εκτελούνται με ένα σύνολο περιπτώσεων ελέγχου (test cases) και ο βαθμός προκύπτει από το άθροισμα των βαθμών των επιτυχημένων test cases. Αν ένα πρόγραμμα δε μεταγλωττιστεί επιτυχώς, βαθμολογείται με μηδέν. Επίσης, αν δεν εκτυπώσει το σωστό αποτέλεσμα σε κάποιο test case, βαθμολογείται με μηδέν σε αυτό το test case. Αυτό μπορεί να συμβεί είτε γιατί το πρόγραμμα είναι λάθος, είτε γιατί εκτυπώνει το αποτέλεσμα με διαφορετική μορφή (ή ακόμα γιατί εκτυπώνει κάτι περισσότερο από αυτό που ζητείται). Αυτό έχει ως αποτέλεσμα ένα πρόγραμμα από το οποίο λείπει ένα semicolon ή ένα πρόγραμμα που εκτυπώνει μια περιττή αλλαγή γραμμής να βαθμολογούνται με μηδέν. Μερική βαθμολογία επιτυγχάνεται μόνο από προγράμματα που μεταγλωττίζονται σωστά και περνούν επιτυχώς κάποιο υποσύνολο των test cases.
Αντίθετα, η τελική γραπτή εξέταση βαθμολογείται με μη αυτόματο τρόπο. Στα θέματα που ζητούν να γράψετε κώδικα, εκεί εξετάζουμε την απάντησή σας και βαθμολογούμε τις γνώσεις και την ικανότητά σας. "Συγχωρούμε" τυχόν μικρολάθη που έχετε κάνει και αξιολογούμε ανάλογα τα σοβαρότερα λάθη. Δίνουμε μερική βαθμολογία σε λύσεις που δεν είναι σωστές, με έμφαση στην πρόθεσή σας, την ιδέα και τη λογική πίσω από τις λύσεις σας.
Δεδομένου λοιπόν ότι αυτοί είναι οι κανόνες του παιχνιδιού, λυπούμαστε αν το πρόγραμμα που υποβάλατε στην εργαστηριακή εξέταση ήταν κατά βάση σωστό αλλά είχε ένα μικρολαθάκι και τελικά πήρε μηδέν. Αυτή είναι η χειρότερη και πιο άτυχη/άδικη για σας περίπτωση. Επί της ουσίας, όμως, το πολύ που θα σας στοιχίσει είναι οι 2 μονάδες της εργαστηριακής εξέτασης. Μπορείτε ακόμα να πάρετε 9 στο μάθημα.
-
"Δεν έχω ενεργή υποβολή και δε θέλω να βαθμολογηθεί η πιο πρόσφατη αλλά κάποια άλλη."
Κατ’ αρχάς να εξηγήσουμε πώς προέκυψε αυτό το πρόβλημα. Ο grader ταξινομεί τα test cases ενός προβλήματος σε διάφορες κατηγορίες.
-
Μία πρώτη κατηγορία είναι τα test cases "της εκφώνησης". Σε αυτά μπορεί να είναι ορατή η είσοδος και η έξοδος, ώστε κατά την υποβολή σας να μπορείτε να δείτε τι δεν πάει καλά και να βοηθηθείτε στο debugging του προγράμματός σας. Αν όμως η υποβολή αποτύχει σε κάποιο από αυτά, τότε δε θεωρείται επιτυχής (εμφανίζεται ως κόκκινη) και, υπό φυσιολογικές συνθήκες, δε βαθμολογείται.
-
Μία δεύτερη κατηγορία είναι τα test cases που εκτελούνται κατά την υποβολή και μπορείτε να δείτε αν πέτυχαν ή όχι, δεν μπορείτε όμως να δείτε την είσοδο και την έξοδο. Αν η υποβολή αποτύχει σε κάποια από αυτά, εξακολουθεί να θεωρείται επιτυχής (εμφανίζεται ως πράσινη) και βαθμολογείται.
-
(Μία τρίτη κατηγορία, που δε μας ενδιαφέρει εδώ, είναι τα test cases που δεν τρέχουν κατά την υποβολή, αλλά αργότερα.)
Ο διαχωρισμός των δύο πρώτων κατηγοριών είναι μία από τις γνωστές αδυναμίες του grader. Κάνει δύσκολη την επιλογή προβλημάτων στα οποία θέλουμε συγχρόνως να δείχνουμε την είσοδο και την έξοδο, κατά τις υποβολές, και επίσης να επιτρέπουμε μερική βαθμολογία αν κάποιες από αυτές αποτύχουν. Ακριβώς αυτή ήταν η περίπτωση των προβλημάτων της εργαστηριακής εξέτασης, όπου σε καθένα υπήρχαν περισσότερα υποπροβλήματα και μία υποβολή μπορεί να έλυνε σωστά μόνο κάποια από αυτά.
Για να ξεπεράσουμε αυτή την αδυναμία, επιλέξαμε στην αρχή της εξέτασης να τοποθετήσουμε τα πρώτα test cases στην πρώτη κατηγορία, ώστε να είναι ορατή η είσοδος και η έξοδος. Κατά τα τελευταία 15 λεπτά της εξέτασης, κατόπιν σαφούς προειδοποίησης, τα μεταφέραμε στη δεύτερη κατηγορία, έτσι ώστε να θεωρούνται επιτυχείς υποβολές με μερική βαθμολογία και να μπορείτε να επιλέξετε ποια θέλετε να είναι ενεργή. Για τους περισσότερους από εσάς, αυτό δούλεψε καλά. Για κάποιους όχι. Θα εξετάσουμε λοιπόν μία-μία τις υποβολές σας και θα βαθμολογήσουμε την ευνοϊκότερη για εσάς. Από την πλευρά σας, δε χρειάζεται καμία άλλη ενέργεια.
Εκ μέρους των διδασκόντων.