1. Διαδικαςία Επιλογήσ Τεχνολογικήσ Λύςησ
για τη
Δημιουργία Online Πλατφόρμασ Διεξαγωγήσ
Διαγωνιςμών Προγραμματιςμού
ΠΜΣ Πληροφικής – ΑΠΘ
Αγαθή Δεληγιαννάκου ΑΕΜ 390
Αναστασία Παπαβασιλείου ΑΕΜ 402
Γιάννης Παπαδόπουλος ΑΕΜ 406
1
2. http://mooshak.dcc.fc.up.pt/
Σύςτημα για διαχείριςη διαγωνιςμών προγραμματιςμού ςτο
Web.
Βαςικά χαρακτηριςτικά:
Αυτόματη κρίςη υποβληθέντων προγραμμάτων (μη-
ολοκληρωμένη, απαιτείται και ανθρώπινοσ έλεγχοσ)
Απαντήςεισ ςε διευκρινιςτικέσ ερωτήςεισ ςχετικά με την
εκφώνηςη των προβλημάτων
Επανεκτίμηςη των προγραμμάτων
Διεπαφή διαγωνιζόμενου – κριτή – διαχειριςτή
Απαιτήςεισ
Λειτουργικό ςύςτημα Linux
Έκδοςη του Apache 1.2 ή νεότερη
Έκδοςη Tcl 1.8 ή νεότερη
2
3. http://mooshak.dcc.fc.up.pt/
Για να χρηςιμοποιηθεί ςτην παρούςα προςπάθεια το Mooshak, θα
έπρεπε
να εγκαταςταθεί ςε Linux server αρχικά μια εικονική μηχανή (Virtual
Box)
πάνω ςτην εικονική μηχανή να εγκαταςταθεί το Ubuntu 8.10 (ή
νεότερο)
Στη ςυνέχεια να εγκαταςταθεί ο Apache και η Tcl και,
Ενδεχομένωσ να χρειαςτεί η εγκατάςταςη C compiler και
configuration του Apache.
Τα παραπάνω έπρεπε να γίνουν με εντολέσ ςε Linux. Το Mooshak
ςτισ διαθέςιμεσ οδηγίεσ παρείχε παλιέσ εντολέσ που δεν
χρηςιμοποιούνται πια.
Τέλοσ, ο διαθέςιμοσ server – pegasus – πιθανότατα να μην
μπορούςε να υποςτηρίξει ταυτόχρονη ςύνδεςη για περιςςότερα
από 10-15 άτομα.
3
4. http://www.codechef.com/
Το CodeChef είναι μια πλατφόρμα διαγωνιςμών, και
επιπλέον μια κοινότητα έμπνευςησ για τουσ
προγραμματιςτέσ.
Είναι μη κερδοςκοπικόσ οργανιςμόσ που ιδρύθηκε από την
Directi, μια Ινδική εταιρεία λογιςμικού.
Φιλοξενεί online διαγωνιςμούσ, ςεμινάρια και εκδηλώςεισ για
προγραμματιςτέσ από όλο τον κόςμο.
Υποςτηρίζει όποιον θέλει να δημιουργήςει ένα
Πανεπιςτημιακό Μάθημα CodeChef ή να φιλοξενήςει το δικό
του διαγωνιςμό.
Διαθέτει Wiki, Forum, Blog, Facebook Group & Application,
Twitter, που βοηθούν τα 25.000 μέλη του να ενημερώνονται.
4
5. Απαιτήςεισ για Hosting
Αναγνώριςη του CodeChef ωσ«Προγραμματιςτικό Συνεργάτη»,
τοποθέτηςη του logo ςε όλα τα διαφημιςτικά έντυπα.
Πληροφορίεσ ςχετικά με την ημ/νία, το μέγεθοσ ςυμμετοχήσ και αν θα
είναι ανοιχτόσ ή κλειςτόσ διαγωνιςμόσ.
Τα προγράμματα θα πρέπει να ανταποκρίνονται ςτο επίπεδο δυςκολίασ του
CodeChef, ειδικά αν πρόκειται για ανοιχτό διαγωνιςμό, και έτςι αποφαςίζει
το ίδιο αν τα προβλήματα θα είναι αποδεκτά ή όχι.
Ο κώδικασ των λύςεων πρέπει να ςυντάςςεται με ςυγκεκριμένο τρόπο,
καθώσ ελέγχονται αυτόματα από υπολογιςτή με καθοριςμένα αρχεία
ειςόδου/εξόδου.
Αν το Codechef ςυμβάλλει ςτη δημιουργία του ςετ προβλημάτων, θα
πρέπει να γίνει διαμοίραςη του οικονομικού κόςτουσ που προκύπτει από
αυτή τη διαδικαςία.
Απαιτεί την αποςτολή 2 προβλημάτων-δείγμα που θεωρεί ο διοργανωτήσ
«δύςκολα», και γραμμένα ςύμφωνα με μια ςυγκεκριμένη μορφή που
περγράφεται ςτο FAQ for Program Setters.
Η διοργάνωςη του διαγωνιςμού διαρκεί περίπου 2 μήνεσ.
5
6. PC^2
http://pc2.ecs.csus.edu/
Σύςτημα λογιςμικού για διαχείριςη διαγωνιςμών
προγραμματιςμού (όχι ςτο Web).
Διεξαγωγή διαγωνιςμού μεταξύ πολλαπλών ιδρυμάτων
διάφορων χωρών.
Βαςικά χαρακτηριςτικά:
Αυτόματη κρίςη υποβληθέντων προγραμμάτων από το
λογιςμικό.
Υποβολή διευκρινιςτικών ερωτήςεων και αποριών ςχετικά με
την περιγραφή των προβλημάτων και απαντήςεισ των
διαχειριςτών ςτισ ομάδεσ.
Προςαρμογή του ςυςτήματοσ ςε ενέργειεσ του διαγωνιςμού
από τουσ διαχειριςτέσ(π.χ. αριθμόσ ομάδων)
Αυτόματη ενημέρωςη τησ ομάδασ για τα αποτελέςματα των
υποβολών τουσ.
6
7. PC^2
Απαιτήςεισ Συμμετοχήσ
Δημιουργία ομάδων τριών ατόμων.
Οι ομάδεσ πρώτα ςυμμετέχουν ςε περιφερειακούσ
διαγωνιςμούσ που πραγματοποιούνται ςε όλο τον κόςμο από τον
Σεπτέμβριο έωσ τον Νοέμβριο κάθε έτουσ.
Οι ςυμμετέχοντεσ πρέπει να έχουν λιγότερο από πέντε χρόνια
ςτην πανεπιςτημιακή εκπαίδευςη πριν από το διαγωνιςμό.
Οι φοιτητέσ που έχουν ςυμμετάςχει ςε δύο παγκόςμιουσ
τελικούσ ή ςε πέντε περιφερειακούσ δεν επιλέγονται.
Ένασ φοιτητήσ μπορεί να ςυμμετέχει για ένα μόνο ίδρυμα ςτη
διάρκεια ενόσ έτουσ του διαγωνιςμού.
Διάρκεια 5 ωρών για την επίλυςη 8-12 προβλημάτων
προγραμματιςμού τησ επιλογήσ των διαχειριςτών πλατφόρμασ.
7
8. http://dwite.ca/
Online Πλατφόρμα Διαγωνιςμών Προγραμματιςμού.
Προετοιμαςία μαθητών δευτεροβάθμιασ εκπαίδευςησ ςτον
Καναδά για τουσ διαγωνιςμούσ CCC (Canadian Computing
Competition) και ECOO (Educational Computing
Organization of Ontario).
Απαιτήςεισ
Ομάδεσ 1-4 ατόμων.
Εγγραφή 72 ώρεσ πριν τον διαγωνιςμό.
Συγκεκριμένοσ εξοπλιςμόσ:
- ένασ υπολογιςτήσ ανά ομάδα
- μία αριθμομηχανή
- ένα βιβλίο με αναφορά ςε ςυγκεκριμένη γλώςςα.
8
9. Prototype-
Δημιουργία
Ιςτοςελίδασ
Ανάπτυξη πρωτοτύπου-πλατφόρμασ
Χρήςη τεχνολογίασ Joomla 1.7
Δημιουργία των εξήσ ενοτήτων:
Διαγωνιςμόσ-ενςωμάτωςη codepad (iframe)
Κοινότητα ςυνεργαςίασ-φόρουμ μαθητών
Ανακοινώςεισ-Μενού ανάρτηςησ αςκήςεων και ανακοίνωςησ
των διαγωνιςμών.
Σύγχρονη online ςυνομιλία – chat.
Το πρωτότυπο “ανεβάςαμε” ςτον server Pegasus.
Μειονέκτημα:
Ο server Pegasus
Διαφορετικόσ χώροσ από τον ιςτότοπο του μαθήματοσ
9
10. Codepad (1/2)
Λειτουργίεσ To Codepad είναι ένασ online
compliler/interpreter που μπορεί να
ενςωματωθεί εύκολα ςαν frame ςε κάθε
ςελίδα.
Με το Codepad μπορούμε να ελέγχουμε άμεςα
την ορθότητα του κάθε προγράμματοσ που
έχει γραφεί ςε μία από τισ παρακάτω γλώςςεσ:
C, C++, D, Haskell, Lua, OCaml, PHP, Perl,
Python, Ruby, Scheme, Tcl.
Το αποτέλεςμα εκτέλεςησ του προγράμματοσ
είναι η έξοδοσ των δεδομένων αν είναι
ςυντακτικά ορθό. Σε διαφορετική περίπτωςη
επιςτρέφει το είδοσ και το ςημείο του κάθε
λάθουσ.
Επιπλέον υπάρχει η δυνατότητα online
αποθήκευςησ του project και το Codepad
παράγει το αντίςτοιχο URL του κάθε project.
10
11. Codepad (2/2)
Συνεργατικότητα
Το Codepad υποςτηρίζει τη δυνατότητα
ςυνεργαςίασ ςε κάθε project (URL).
Ο κάθε χρήςτησ μπορεί να ςχολιάςει το
project κάποιου άλλο είτε να
“επικολλήςει” το δικό του project ςτην ίδια
ςελίδα.
Το κάθε project μπορεί να είναι ιδιωτικό ή
δημόςιο οπότε δίνεται η δυνατότητα
διεξαγωγήσ “κλειςτών” διαγωνιςμών. Στα
ιδιωτικά projects η ταυτότητα του κάθε
χρήςτη πιςτοποιείται από το ςύςτημα
(username,password)
To κάθε project υποςτηρίζει περιγραφή
οπότε μπορούμε να δημιουργήςουμε
projects χωρίσ να έχουμε επικολλήςει
κώδικα, απλά με την εκφώνηςη κάποιασ
άςκηςησ.
11
12. Πηλζασ και Codepad
Στον Πηλέα υπάρχει ήδη το μάθημα «Βαςικέσ Αρχέσ
Προγραμματιςμού». Έτςι, δεν χρειάςτηκε να εξοικειωθούν
οι φοιτητέσ με κάποιο άλλο περιβάλλον.
Ο Πηλέασ παρέχει ήδη τα απαραίτητα εργαλεία για
διαξεγωγή ενόσ διαγωνιςμού.
Δεν παρέχει αυτόματη διόρθωςη, γι’ αυτό ςυνδυάςτηκε με
το Codepad (ωσ iframe) ώςτε να δίνεται η δυνατότητα
ςτουσ φοιτητέσ να ελέγχουν τον κώδικά τουσ.
Το codepad δεν απαιτεί τη ςύνταξη του κώδικα με
ςυγκεκριμένη μορφή – ελέγχει απλώσ την ορθή ή μη
ςύνταξη.
12