Πρωτάθλημα Προγραμματισμού & Πληροφορικής
Posted by Νεόφυτος Δημητρίου Mon, 18 Jun 2007 21:16:37 EEST
Μια από τις πολλές ιδέες που 'χω τελευταία είναι να ξεκινήσω κανένα πρωτάθλημα προγραμματισμού για μαθητές μέσης εκπαίδευσης (γυμνάσια, λύκεια). Πρωτάθλημα σημαίνει μια φορά το μήνα ώστε (α) να 'χουν χρόνο να διαβάζουν τα μαθήματά τους, (β) να βγαίνουν καμιά έξοδο και (γ) να 'ναι δυνατή η προετοιμασία των ασκήσεων (προβλήματα, εργασίες, κτλ). Ο λόγος που ξεκίνησα να το σκέφτομαι είναι επείδη που τα λίγα πράγματα που μ' ευχαριστούν είναι οι συναντήσεις-συζητήσεις με μερικούς φίλους που νομίζω σκέφτονται παρόμοια πράγματα ή μοιράζονται παρόμοιες εμπειρίες.
Απαραίτητο νομίζω είναι κάποιες από τις ασκήσεις να 'ναι προβλήματα αλγοριθμικής φύσης όπως και στους διεθνείς διαγωνισμούς προγραμματισμού αλλά, συγχρόνως, να υπάρχουν εργασίες που να εξετάζουν γενικές ή ειδικές γνώσεις από το χώρο της πληροφορικής (π.χ. κάποιος μπορεί να γράφει δημοφιλή προγραμματάκια/widgets, κάποιος άλλος μπορεί να είναι λινουξάς πρώτος). Εκείνα που μαθαίνουν στα σχολεία να μην είναι αρκετά — να χρειάζεται κάτι παραπάνω. Ιδανικά η κάθε ομάδα ή άτομο να 'χει ένα coach (εθελοντή δάσκαλο).
Βραβεία να μην υπάρχουν, ούτε χορηγοί (να μην υπάρχει χρηματικό ή άλλου είδους κίνητρο για κανένα — όποιος το κάμνει να το κάμνει επειδή έτσι θέλει κι έτσι του αρέσκει). Πρέπει να υπάρχουν επίσης διαιτητές, κάποιας μορφής επιστημονική επιτροπή που να βάλει τα θέματα και κάποια τεχνική ομάδα που θα δίνει support σε όλους τους υπόλοιπους. Στο τέλος κάθε χρονιάς να υπάρχει κάποιου είδους τελικός και ο νικητής και όσοι συμμετείχαν να έχουν κάποιας μορφής αναγνώριση (ένα δίπλωμα υπογραμμένο από όλους τους coach, την επιστημονική και την τεχνική ομάδα).
Τώρα τα δύσκολα: ποιος θ' αποφασίζει ποια θα είναι η επιστημονική επιτροπή, η τεχνική ομάδα, κτλ. Από τη μια, δεν γίνεται να υπάρχει αναρχία, από την άλλη θα πρέπει να υπάρχει ένας δίκαιος και δημοκρατικός μηχανισμός αποφάσεων. Για το μέλλον, σκεφτόμουν κάτι όπως το Top Gun (όποιος το κερδίσει μια χρονιά δικαιούται να ψηφίζει στο μέλλον). Για την αρχή δεν έχω σκεφτεί ακόμα τι μπορεί να γίνει αλλά συνήθως στην αρχή το δύσκολο να βρεις εθελοντές, όχι το αντίθετο. Από την άλλη φοβούμαι μην συγκρούονται αυτά που λέω, μ'αυτά που θέλω: π.χ. πως γίνεται να είναι δίκαιος και δημοκρατικός ο μηχανισμός και να μην συμμετέχω, πως γίνεται να βοηθήσεις να διαμορφωθεί ένας διαγωνισμός χωρίς να έχεις συμμετοχή;
Τα θέματα, τώρα που το σκέφτομαι, θα μπορούσαν να προταθούν από οποιοδήποτε και να τα εγκρίνει-ετοιμάσει μια επίλεκτη ομάδα (στο μέλλον θα απαρτίζεται από τους νικητές των προηγούμενων χρόνων). Τα προβλήματα του τελικού μπορούν να εξετάζουν την καλύτερη λύση ή να είναι τέτοιας φύσεως ώστε να υπάρχει κάποια "κόντρα" (π.χ. πιο δημοφιλές προγραμματάκι/widget ή διαγωνισμός τύπου robocup ή ποια θα είναι η πιο γρήγορη λύση σε σύνολο input data).
Reader's Comments
Εγώ υποστηρίζω να ξεκινήσει ο διαγωνισμός με κάτι απλό και ευχάριστο. Διαγωνισμούς τύπου robocup όπως τους ονόμασες. Δηλαδή, ο κάθε μαθητής θα γράφει το δικό του προγραμματάκι το οποίο θα συναγωνίζεται με τα προγραμματάκια των άλλων μέσω μιας βιβλιοθήκης και όποιος κάνει τις περισσότερες νίκες κερδίζει!
Η επιλογή των προβλημάτων αλγοριθμικής φύσεως είναι καλή επιλογή λόγω του ότι μπορεί να υπάρξει δίκαιη αξιολόγηση με τη χρήση αυτοματοποιημένων συστημάτων αλλά είναι πολύ πιθανόν να φανεί πληκτικό στους περισσότερους μαθητές.
Η επιλογή των προγραμμάτων/widgets είναι μεν πολύ ευχάριστη για τους μαθητές αλλά η αξιολόγηση θα είναι κάπως υποκειμενική. Είναι καλή η ιδέα με τους νικητές να γίνονται κριτές στο μέλλον αλλά το περιβάλλον της Κύπρου πιστεύω δεν είναι κατάλληλο για δίκαιη ανθρώπινη αξιολόγηση.
Πάρα πολύ καλή ιδέα πάντως. Πάρα πολύ ευχαρίστως να βοηθήσω στην οργάνωση τους!!
Πολύ καλή η ιδέα ο διαγωνισμός. Μπορείς να με υπολογίζεις στους εθελοντές και γενικά σε ότι χρειάζεται…
Φίλε Νεόφυτε, πολύ ωραία η ιδέα σου. Το ερώτημα που έχω θέσει και σε άλλου τέτοιου είδους διαγωνισμούς είναι το πως κάποιος βαθμολογεί ένα πρόγραμμα?
Το καλύτερο είναι και το πιο γρήγορο? Το καλύτερο είναι το πιο όμορφα γραμμένο? και αν είναι το πιο όμορφα γραμμένο τι ακριβώς εννοούμε? αυτός που έχει τα πιο καλά σχόλια? Για εμένα καλό πρόγραμμα είναι αυτό που δεν έχει σχόλια και μόνο με το όνομα των μεταβλητών να είναι κατανοητό το τι γίνετε.
Αν θες βοήθεια, είμαι μέσα.
Ελπίζω του χρόνου να επαναπατριστώ.
Πρώτα να πώς ότι κάθε βοήθεια είναι καλοδεχούμενη κι ότι θα υπάρξει συνέχεια σ'αυτό το θέμα.
Σε διαγωνισμούς με προβλήματα αλγοριθμικής φύσεως το ζητούμενο είναι η "καλύτερη" λύση-αλγόριθμος. Η αξιολόγηση γίνεται συνήθως με τη "λογική του μαύρου κουτιού" (black-box philosophy): ότι, δηλαδή, το πρόγραμμά σου είναι ένα μαύρο κουτί το οποίο δέχεται δεδομένα εισόδου και επιστρέφει την έξοδο σε συγκεκριμένο χρονικό διάστημα. Με κατάλληλη επιλογή του συνόλου εισόδου μπορούμε να έχουμε μια ένδειξη τόσο για την ορθότητα όσο και η αποδοτικότητα της υπόψη λύσης.
Το ίδιο (black-box philosophy) ισχύει και για τα άλλα δύο είδη διαγωνισμών. Για παράδειγμα, το robocup (ποδόσφαιρο με ρομπότ) δεν εξετάζει πως καταφέρνει μια ομάδα να νικήσει σ'ένα αγώνα αλλά ποια ομάδα έβαλε τα παραπάνω γκολ σ'ένα αγώνα. Σίγουρα υπάρχουν κανονισμοί που δεν πρέπει να παραβιάζονται…
Προτείνοντας τα προαναφερθέντα είδη ασκήσεων, ήθελα να δείξω ότι θα ήταν καλό να υπάρχει μια ολιστική προσέγγιση. Αν κάποιος θέλει να διαγωνιστεί μόνο σε μια κατηγορία καλώς ή αν θέλουμε να ξεκινήσουμε με μια κατηγορία και μετά να επεκταθούμε στις υπόλοιπες πάλι καλώς.
Τα ακόλουθα είναι ότι είχα υπόψη μου για κάθε κατηγορία: