ݺߣ

ݺߣShare a Scribd company logo
Διαδικαςία Επιλογήσ Τεχνολογικήσ Λύςησ
                                                   για τη
                Δημιουργία Online Πλατφόρμασ Διεξαγωγήσ
                           Διαγωνιςμών Προγραμματιςμού


ΠΜΣ Πληροφικής – ΑΠΘ
Αγαθή Δεληγιαννάκου ΑΕΜ 390
Αναστασία Παπαβασιλείου ΑΕΜ 402
Γιάννης Παπαδόπουλος ΑΕΜ 406


                                                            1
http://mooshak.dcc.fc.up.pt/
 Σύςτημα για διαχείριςη διαγωνιςμών προγραμματιςμού ςτο
  Web.
 Βαςικά χαρακτηριςτικά:
    Αυτόματη κρίςη υποβληθέντων προγραμμάτων (μη-
     ολοκληρωμένη, απαιτείται και ανθρώπινοσ έλεγχοσ)
    Απαντήςεισ ςε διευκρινιςτικέσ ερωτήςεισ ςχετικά με την
     εκφώνηςη των προβλημάτων
    Επανεκτίμηςη των προγραμμάτων
    Διεπαφή διαγωνιζόμενου – κριτή – διαχειριςτή
 Απαιτήςεισ
    Λειτουργικό ςύςτημα Linux
    Έκδοςη του Apache 1.2 ή νεότερη
    Έκδοςη Tcl 1.8 ή νεότερη

                                                              2
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
http://www.codechef.com/
 Το CodeChef είναι μια πλατφόρμα διαγωνιςμών, και
  επιπλέον μια κοινότητα έμπνευςησ για τουσ
  προγραμματιςτέσ.
 Είναι μη κερδοςκοπικόσ οργανιςμόσ που ιδρύθηκε από την
  Directi, μια Ινδική εταιρεία λογιςμικού.
   Φιλοξενεί online διαγωνιςμούσ, ςεμινάρια και εκδηλώςεισ για
    προγραμματιςτέσ από όλο τον κόςμο.
   Υποςτηρίζει όποιον θέλει να δημιουργήςει ένα
    Πανεπιςτημιακό Μάθημα CodeChef ή να φιλοξενήςει το δικό
    του διαγωνιςμό.
   Διαθέτει Wiki, Forum, Blog, Facebook Group & Application,
    Twitter, που βοηθούν τα 25.000 μέλη του να ενημερώνονται.
                                                                  4
Απαιτήςεισ για Hosting
 Αναγνώριςη του CodeChef ωσ«Προγραμματιςτικό Συνεργάτη»,
    τοποθέτηςη του logo ςε όλα τα διαφημιςτικά έντυπα.
   Πληροφορίεσ ςχετικά με την ημ/νία, το μέγεθοσ ςυμμετοχήσ και αν θα
    είναι ανοιχτόσ ή κλειςτόσ διαγωνιςμόσ.
   Τα προγράμματα θα πρέπει να ανταποκρίνονται ςτο επίπεδο δυςκολίασ του
    CodeChef, ειδικά αν πρόκειται για ανοιχτό διαγωνιςμό, και έτςι αποφαςίζει
    το ίδιο αν τα προβλήματα θα είναι αποδεκτά ή όχι.
   Ο κώδικασ των λύςεων πρέπει να ςυντάςςεται με ςυγκεκριμένο τρόπο,
    καθώσ ελέγχονται αυτόματα από υπολογιςτή με καθοριςμένα αρχεία
    ειςόδου/εξόδου.
   Αν το Codechef ςυμβάλλει ςτη δημιουργία του ςετ προβλημάτων, θα
    πρέπει να γίνει διαμοίραςη του οικονομικού κόςτουσ που προκύπτει από
    αυτή τη διαδικαςία.
   Απαιτεί την αποςτολή 2 προβλημάτων-δείγμα που θεωρεί ο διοργανωτήσ
    «δύςκολα», και γραμμένα ςύμφωνα με μια ςυγκεκριμένη μορφή που
    περγράφεται ςτο FAQ for Program Setters.
   Η διοργάνωςη του διαγωνιςμού διαρκεί περίπου 2 μήνεσ.
                                                                                5
PC^2
http://pc2.ecs.csus.edu/
 Σύςτημα λογιςμικού για διαχείριςη διαγωνιςμών
  προγραμματιςμού (όχι ςτο Web).
 Διεξαγωγή διαγωνιςμού μεταξύ πολλαπλών ιδρυμάτων
  διάφορων χωρών.
 Βαςικά χαρακτηριςτικά:
   Αυτόματη κρίςη υποβληθέντων προγραμμάτων από το
    λογιςμικό.
   Υποβολή διευκρινιςτικών ερωτήςεων και αποριών ςχετικά με
    την περιγραφή των προβλημάτων και απαντήςεισ των
    διαχειριςτών ςτισ ομάδεσ.
   Προςαρμογή του ςυςτήματοσ ςε ενέργειεσ του διαγωνιςμού
    από τουσ διαχειριςτέσ(π.χ. αριθμόσ ομάδων)
   Αυτόματη ενημέρωςη τησ ομάδασ για τα αποτελέςματα των
    υποβολών τουσ.
                                                               6
PC^2
    Απαιτήςεισ Συμμετοχήσ
 Δημιουργία ομάδων τριών ατόμων.
 Οι ομάδεσ πρώτα ςυμμετέχουν ςε περιφερειακούσ
    διαγωνιςμούσ που πραγματοποιούνται ςε όλο τον κόςμο από τον
    Σεπτέμβριο έωσ τον Νοέμβριο κάθε έτουσ.
   Οι ςυμμετέχοντεσ πρέπει να έχουν λιγότερο από πέντε χρόνια
    ςτην πανεπιςτημιακή εκπαίδευςη πριν από το διαγωνιςμό.
   Οι φοιτητέσ που έχουν ςυμμετάςχει ςε δύο παγκόςμιουσ
    τελικούσ ή ςε πέντε περιφερειακούσ δεν επιλέγονται.
   Ένασ φοιτητήσ μπορεί να ςυμμετέχει για ένα μόνο ίδρυμα ςτη
    διάρκεια ενόσ έτουσ του διαγωνιςμού.
   Διάρκεια 5 ωρών για την επίλυςη 8-12 προβλημάτων
    προγραμματιςμού τησ επιλογήσ των διαχειριςτών πλατφόρμασ.
                                                             7
http://dwite.ca/
 Online Πλατφόρμα Διαγωνιςμών Προγραμματιςμού.
 Προετοιμαςία μαθητών δευτεροβάθμιασ εκπαίδευςησ ςτον
  Καναδά για τουσ διαγωνιςμούσ CCC (Canadian Computing
  Competition) και ECOO (Educational Computing
  Organization of Ontario).
 Απαιτήςεισ
   Ομάδεσ 1-4 ατόμων.
   Εγγραφή 72 ώρεσ πριν τον διαγωνιςμό.
   Συγκεκριμένοσ εξοπλιςμόσ:
     - ένασ υπολογιςτήσ ανά ομάδα
     - μία αριθμομηχανή
     - ένα βιβλίο με αναφορά ςε ςυγκεκριμένη γλώςςα.

                                                         8
Prototype-
Δημιουργία
Ιςτοςελίδασ
  Ανάπτυξη πρωτοτύπου-πλατφόρμασ
     Χρήςη τεχνολογίασ Joomla 1.7
  Δημιουργία των εξήσ ενοτήτων:
     Διαγωνιςμόσ-ενςωμάτωςη codepad (iframe)
     Κοινότητα ςυνεργαςίασ-φόρουμ μαθητών
     Ανακοινώςεισ-Μενού ανάρτηςησ αςκήςεων και ανακοίνωςησ
      των διαγωνιςμών.
     Σύγχρονη online ςυνομιλία – chat.
  Το πρωτότυπο “ανεβάςαμε” ςτον server Pegasus.
  Μειονέκτημα:
     Ο server Pegasus
     Διαφορετικόσ χώροσ από τον ιςτότοπο του μαθήματοσ


                                                              9
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
Codepad (2/2)
Συνεργατικότητα
             Το Codepad υποςτηρίζει τη δυνατότητα
              ςυνεργαςίασ ςε κάθε project (URL).
             Ο κάθε χρήςτησ μπορεί να ςχολιάςει το
              project   κάποιου      άλλο     είτε     να
              “επικολλήςει” το δικό του project ςτην ίδια
              ςελίδα.
             Το κάθε project μπορεί να είναι ιδιωτικό ή
              δημόςιο οπότε δίνεται η δυνατότητα
              διεξαγωγήσ “κλειςτών” διαγωνιςμών. Στα
              ιδιωτικά projects η ταυτότητα του κάθε
              χρήςτη πιςτοποιείται από το ςύςτημα
              (username,password)
             To κάθε project υποςτηρίζει περιγραφή
              οπότε μπορούμε να δημιουργήςουμε
              projects χωρίσ να έχουμε επικολλήςει
              κώδικα, απλά με την εκφώνηςη κάποιασ
              άςκηςησ.
                                                     11
Πηλζασ και Codepad
 Στον Πηλέα υπάρχει ήδη το μάθημα «Βαςικέσ Αρχέσ
  Προγραμματιςμού». Έτςι, δεν χρειάςτηκε να εξοικειωθούν
  οι φοιτητέσ με κάποιο άλλο περιβάλλον.
 Ο Πηλέασ παρέχει ήδη τα απαραίτητα εργαλεία για
  διαξεγωγή ενόσ διαγωνιςμού.
 Δεν παρέχει αυτόματη διόρθωςη, γι’ αυτό ςυνδυάςτηκε με
  το Codepad (ωσ iframe) ώςτε να δίνεται η δυνατότητα
  ςτουσ φοιτητέσ να ελέγχουν τον κώδικά τουσ.
 Το codepad δεν απαιτεί τη ςύνταξη του κώδικα με
  ςυγκεκριμένη μορφή – ελέγχει απλώσ την ορθή ή μη
  ςύνταξη.
                                                           12
1ο   Πρωτότυπο τησ πλατφόρμασ




                            13
Forum ςυζητήςεων




Εργαςίεσ προετοιμαςίασ




                         14
Εκφώνηςη
Προβλήματοσ
Διαγωνιςμού &
Διάρκειάσ του




                15
Codepad
ενςωματωμένο ςτον
ΠΗΛΕΑ
                    16
ΕӬτήςεισ?




             17

More Related Content

Τεχνολογική επισκόπηση

  • 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
  • 13. 1ο Πρωτότυπο τησ πλατφόρμασ 13