Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών...

45
ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ ΣΜΗΜΑ ΠΛΗΡΟΥΟΡΙΚΗ ΠΡΟΓΡΑΜΜΑ ΜΕΣΑΠΣΤΦΙΑΚΩΝ ΠΟΤΔΩΝ Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού ΕΠΙΜΕΛΕΙΑ: Αγαθονίκη Δεληγιαννάκου Αναστασία Παπαβασιλείου Ιωάννης Παπαδόπουλος ΤΠΕΤΘΤΝΟ ΚΑΘΗΓΗΣΗ: ΣΙΑΣΟ ΘΡΑΤΒΟΤΛΟ Θεσσαλονίκη 2011-2012

description

 

Transcript of Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών...

Page 1: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ

ΣΜΗΜΑ ΠΛΗΡΟΥΟΡΙΚΗ

ΠΡΟΓΡΑΜΜΑ ΜΕΣΑΠΣΤΦΙΑΚΩΝ ΠΟΤΔΩΝ

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

ΕΠΙΜΕΛΕΙΑ:

Αγαθονίκη Δεληγιαννάκου

Αναστασία Παπαβασιλείου

Ιωάννης Παπαδόπουλος

ΤΠΕΤΘΤΝΟ ΚΑΘΗΓΗΣΗ:

ΣΙΑΣΟ ΘΡΑΤΒΟΤΛΟ

Θεσσαλονίκη 2011-2012

Page 2: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 2

Ειδικά Θέματα CSCL

Πίνακας Περιεχομένων 1. ΕΙΑΓΩΓΗ ........................................................................................................................................ 4

1.1 Περίληψη ........................................................................................................................................... 4

1.2 Εισαγωγή στις πλατφόρμες online διαγωνισμών ............................................................................ 4

2. ΤΛΛΟΓΗ ΑΠΑΙΣΗΕΩΝ ................................................................................................................ 7

2.1 Μέθοδοι υλλογής Απαιτήσεων ....................................................................................................... 7

2.2 Ερωτηματολόγιο υλλογής Απαιτήσεων ......................................................................................... 8

2.3 Αποτελέσματα ερωτηματολογίου ................................................................................................... 11

2.4 Απαιτήσεις ........................................................................................................................................ 12

3. ΣΕΦΝΟΛΟΓΙΚΗ ΑΝΑΚΟΠΗΗ .................................................................................................. 14

3.1 Mooshak (http://mooshak.dcc.fc.up.pt/) .................................................................................. 14

3.1.1 Εισαγωγή στο Mooshak ........................................................................................................... 14

3.1.2 Επισκόπηση Απαιτήσεων και Λειτουργιών ............................................................................ 15

3.1.3 υμπεράσματα ......................................................................................................................... 16

3.2 PC^2 (http://www.ecs.csus.edu/pc2) ........................................................................................ 17

3.2.1 Εισαγωγή στο PC^2.................................................................................................................. 17

3.2.2 Απαιτήσεις του PC^2 ............................................................................................................... 17

3.2.3 υμπεράσματα ......................................................................................................................... 18

3.3 CodeChef (http://www.codechef.com) ........................................................................................ 19

3.3.1 Εισαγωγή στο CodeChef .......................................................................................................... 19

3.3.2 Διόρθωση Προγραμμάτων ........................................................................................................ 19

3.3.3 Παροχές και απαιτήσεις του CodeChef ................................................................................. 20

3.3.4 υμπεράσματα ......................................................................................................................... 20

3.4 DWITE (http://dwite.ca/) ............................................................................................................. 21

3.4.1Εισαγωγή στη DWITE ............................................................................................................... 21

3.4.2 Απαιτήσεις της DWITE ............................................................................................................ 21

3.4.3 υμπεράσματα ......................................................................................................................... 22

3.5 Δημιουργία Ιστότοπου..................................................................................................................... 22

3.6 CodePad (http://codepad.org/) ................................................................................................... 22

3.6.1 Εισαγωγή στο Codepad ........................................................................................................... 23

3.6.2 Φαρακτηριστικά του Codepad ................................................................................................ 23

3.6.3 Δυνατότητες υνεργατικότητας ............................................................................................... 23

3.7 Πηλέας ............................................................................................................................................. 23

3.8 υγκεντρωτικός Πίνακας ................................................................................................................ 24

4. ΕΝΑΡΙΟ ........................................................................................................................................ 25

4.1 Περιγραφή........................................................................................................................................ 25

4.2 Μαθησιακοί τόχοι ......................................................................................................................... 25

4.3 Περιπτώσεις Φρήσης και Λειτουργικές Απαιτήσεις...................................................................... 25

4.4 Διάγραμμα Ροής Γεγονότων – Flow of Events.............................................................................. 33

5. 1Η ΕΚΔΟΗ ΣΗ ΠΛΑΣΥΟΡΜΑ – ΜΑΘΗΜΑ «ΔΙΑΓΩΝΙΜΟΙ» .............................................. 34

5.1 Διεπαφή Υοιτητή ............................................................................................................................. 34

5.2 Διεπαφή Καθηγητή .......................................................................................................................... 35

6. ΑΞΙΟΛΟΓΗΗ ................................................................................................................................ 36

Page 3: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 3

Ειδικά Θέματα CSCL

6.1 Μέθοδοι Αξιολόγησης ..................................................................................................................... 36

6.2 Ερωτηματολόγιο Αξιολόγησης ........................................................................................................ 37

6.3 Αποτελέσματα Αξιολόγησης............................................................................................................ 39

6.4 υμπεράσματα ................................................................................................................................ 42

7. ΕΠΙΛΟΓΟ ..................................................................................................................................... 44

8. ΒΙΒΛΙΟΓΡΑΥΙΑ .............................................................................................................................. 45

Page 4: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 4

Ειδικά Θέματα CSCL

1. ΕΙΑΓΩΓΗ

1.1 Περίληψη τα πλαίσια του μαθήματος «Ειδικά Θέματα υνεργατικών υστημάτων Μάθησης»

γεννήθηκε η ανάγκη για τη δημιουργία μιας πλατφόρμας για διεξαγωγή online διαγωνισμών προγραμματισμού για τους προπτυχιακούς φοιτητές του Σμήματος Πληροφορικής ΑΠΘ. το παρόν άρθρο περιγράφεται η διαδικασία που ακολουθήθηκε για την ανάπτυξη αυτού του συστήματος.

Αρχικά, γίνεται μια εισαγωγή σε γενικές πληροφορίες σχετικές με πλατφόρμες διαγωνισμών προγραμματισμού, για μια πρώτη γνωριμία με την πολυπλοκότητα του θέματος, αλλά και για να γίνουν ξεκάθαροι οι ερευνητικοί σκοποί αυτής της προσπάθειας. Αναλύεται η μέθοδος συλλογής απαιτήσεων από τους εμπλεκόμενους στο σύστημα (διαγωνιζόμενους- καθηγητές) και παρατίθενται οι απαιτήσεις που συλλέχθηκαν. τη συνέχεια, εμφανίζονται τα αποτελέσματα από την τεχνολογική ανασκόπηση που έγινε, κατά τη διαδικασία εύρεσης της κατάλληλης τεχνολογίας. Δίνονται οι λειτουργικές λεπτομέρειες κάθε συστήματος και περιγράφονται οι λόγοι για τους οποίους χρησιμοποιήθηκε ή απορρίφθηκε το κάθε ένα, σύμφωνα πάντα με τα ερευνητικά ερωτήματα που τέθηκαν αρχικά. Η αναφορά προχωρά με την παρουσίαση του τελικού σεναρίου, των περιπτώσεων χρήσης και των λειτουργικών απαιτήσεων που προέκυψαν, αλλά και με την εμφάνιση της πρώτης έκδοσης με την οποία διεξήχθη ο πρώτος διαγωνισμός. Σέλος, προβάλλονται τα αποτελέσματα από την αξιολόγηση που διενεργήθηκε. Λέξεις Κλειδιά: Online διαγωνισμός προγραμματισμού, αυτόματη διόρθωση, συνεργασία ομάδων

1.2 Εισαγωγή στις πλατφόρμες online διαγωνισμών Μια Web εφαρμογή διαχείρισης διαγωνισμών προγραμματισμού σχεδιάζεται για να

υποστηρίζει την εκτέλεση διαγωνισμών σε πραγματικό χρόνο, όπου οι κριτές και οι διαγωνιζόμενοι μπορούν να βρίσκονται σε διαφορετικές τοποθεσίες. Η οπτική γωνία του κριτή και η οπτική γωνία του διαγωνιζόμενοι είναι οι βασικές διεπαφές του συστήματος. Οι φοιτητές μπορούν να δουλεύουν πάνω σε προβλήματα, να αποσφαλματώνουν τις λύσεις τους και να τις υποβάλλουν στους κριτές, και οι κριτές μπορούν να λαμβάνουν τις απαντήσεις σε πραγματικό χρόνο και να χρησιμοποιούν web εργαλεία για να τις αξιολογήσουν. Σο σύστημα θα πρέπει να υποστηρίζει και διαγωνισμούς που διαρκούν ίσως και μερικές μέρες. Είναι γενικά αποδεκτό ότι οι απαιτήσεις ενός offline διαγωνισμού είναι υποσύνολο των αντίστοιχων ενός online διαγωνισμού· για το λόγο αυτό η έρευνα επικεντρώνεται στις online απαιτήσεις. Ωστόσο, ένα σημαντικό στοιχείο των offline διαγωνισμών είναι ότι οι συμμετέχοντες μπορούν να συμμετέχουν σε ομάδες, και αυτή η συνεργασία σε ένα διαγωνισμό είναι ένα ζήτημα προς διερεύνηση.

Σα βασικά χαρακτηριστικά που πρέπει να πληροί ένα τέτοιο σύστημα είναι, σε γενικές γραμμές, τα εξής: Α) Για τους διαγωνιζόμενους: Να πιστοποιούνται με την είσοδό τους στο διαγωνισμό. Να βλέπουν την ομάδα των προβλημάτων. Να βλέπουν τις γενικές πληροφορίες του διαγωνισμού. Να ξέρουν το χρόνο που απομένει. Να διαλέγουν πρόβλημα. Να γράφουν τον κώδικα επίλυσης τους προβλήματος. Να κάνουν αποσφαλμάτωση και να βλέπουν την έξοδο του προγράμματός τους. Να υποβάλλουν την λύση τους μέσω ενός browser, σε μια γλώσσα προγραμματισμού και με

την ανάλογη μορφοποίηση. Να βλέπουν την τρέχουσα κατάταξή τους. Να έχουν επικοινωνία με τους κριτές. Β) Για τους κριτές: Να πιστοποιούνται με την είσοδό τους στο σύστημα. Να βλέπουν την ομάδα προβλημάτων. Να βλέπουν τις γενικές πληροφορίες του διαγωνισμού. Να ξέρουν το χρόνο που απομένει.

Page 5: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 5

Ειδικά Θέματα CSCL

Να διαλέγουν και να βλέπουν μια απάντηση. Να αποσφαλματώνουν τον κώδικα και να βλέπουν την έξοδο. Να συγκρίνουν την έξοδο με την αντίστοιχη αναμενόμενη. Να αξιολογούν την απάντηση σύμφωνα με μια κλίμακα βαθμολόγησης. Να σχολιάζουν τις απαντήσεις. Να βλέπουν την τρέχουσα κατάταξη. Να συνομιλούν με τους διαγωνιζόμενους. Γ) Για το σύστημα: Να ειδοποιεί τους συμμετέχοντες για κάθε ενέργεια που τους αφορά. Να διορθώνει, προαιρετικά, τα προγράμματα με κάποιον αυτοματοποιημένο τρόπο (για διευκόλυνση της ανθρώπινης κρίσης, ειδικά αν έχουμε μεγάλο αριθμό συμμετεχόντων (Chu).

Σα δυο πολύ βασικά ζητήματα που πρέπει να ληφθούν υπόψη κατά τη σχεδίαση ενός συστήματος διαχείρισης online διαγωνισμών είναι η ασφάλεια και η αυτοματοποιημένη κρίση/διόρθωση του κώδικα των απαντήσεων.

Ασφάλεια: Σο ζήτημα της ασφάλειας των υπολογιστών μπορεί να θεωρηθεί ως ένα παιχνίδι μεταξύ των εισβολέων και των προστατευτών του συστήματος – όπου και οι δυο προσπαθούν να σκεφτούν πιθανές εισβολές που οι μεν προσπαθούν να τις εφαρμόσουν και οι δε να τις εμποδίσουν. Αυτό το σημείο στο παρελθόν δεν απέσπασε την αρμόζουσα προσοχή, αν και θεωρείται πια από τα πιο κρίσιμα. Σο σύστημα θα πρέπει να είναι σε θέση να περιορίσει την πρόσβαση σε κάποιες πληροφορίες, να προστατεύσει την ακεραιότητα των αποθηκευμένων αποτελεσμάτων κ.ο.κ. .

Αναμένεται το ζήτημα της ασφάλειας να παίξει σημαντικότερο ρόλο στο μέλλον. Ειδικά σε μεγάλους διαγωνισμούς η εμπιστοσύνη του συστήματος είναι πολύ βασικό θέμα. Είναι ξεκάθαρο ότι η τρέχουσα κατάσταση έχει πολλά μειονεκτήματα για όλη την κοινότητα πίσω από τους προγραμματιστικούς διαγωνισμούς. Η ίδια δουλειά (σχεδίαση και ανάπτυξη συστημάτων) και τα ίδια λάθη επαναλαμβάνονται ξανά και ξανά. Δεν υπάρχει διαμοίραση της εμπειρίας και σχεδόν καθόλου επαναχρησιμοποίηση των συμβάντων των συστημάτων διαγωνισμού (Forisek, Security of Programming Contest Systems).

Αυτόματη Κρίση: Ένα πολύ βασικό ερώτημα αναφέρεται στο ποιοι είναι οι στόχοι που προσπαθεί να εκπληρώσει η αυτόματη διόρθωση. Μετά από πολλές συζητήσεις με τη Διεθνή Ολυμπιάδα Πληροφορικής (International Olympiads in Informatics – IOI), καταλήγουμε στους παρακάτω στόχους:

• Correctness: Οι διαγωνιζόμενοι αναμένεται να βρουν και να εφαρμόσουν έναν σωστό αλγόριθμο. Για παράδειγμα, ο αλγόριθμός τους θα πρέπει να λύνει σωστά όλες τις περιπτώσεις του δοσμένου προβλήματος. Ο διαγωνιζόμενος που βρήκε και εφάρμοσε έναν λογικό, αποδοτικό αλγόριθμο, θα πρέπει να πάρει μεγαλύτερο βαθμό από κάποιον που βρήκε έναν λανθασμένο αλγόριθμο.

• Efficiency: Ο αριθμός των πόντων που συγκεντρώνει ένας διαγωνιζόμενος για έναν σωστό αλγόριθμο εξαρτάται και από την πολυπλοκότητα χρόνου.

• Maintainability: Ο κώδικας θα πρέπει να είναι σαφής, κατανοητός, με σχόλια και κατάλληλη μορφοποίηση (Cheang, Kurnia, Lim, & Oon).

• Σέλος, αρκετοί πόντοι θα πρέπει να αφαιρούνται και για μικρότερα λάθη (π.χ. εσφαλμένη διαχείριση των ακραίων περιπτώσεων).

Ας σημειωθεί ότι αυτοί είναι μόνο οι γενικοί κανόνες. Μπορεί να υπάρχουν διαφορετικοί τύποι ασκήσεων, π.χ. ασκήσεις ανοιχτών δεδομένων ή ασκήσεις βελτιστοποίησης, όπου πρέπει να χρησιμοποιηθεί διαφορετική βαθμολογική κλίμακα. κοπίμως, παραλείπονται, σε αυτή την περιληπτική παράγραφο, λεπτομέρειες όπως «πολυπλοκότητα χειρότερης και μεσαίας περίπτωσης» και «πολυπλοκότητα έναντι αποδοτικότητας μέσα στα επιτρεπτά όρια». Παρόλα αυτά, τέτοια σημεία μπορεί να εφαρμοστούν σε μια πολύ μεγάλη γκάμα ασκήσεων του IOI, και γενικότερα σε πολλά προγραμματιστικά προβλήματα.

Ο κανονικός τρόπος για να επιτευχθούν οι παραπάνω στόχοι είναι μια προσεκτική προετοιμασία των εισόδων ελέγχου. Οι είσοδοι ελέγχου σχεδιάζονται με τρόπο που ένα λανθασμένο πρόγραμμα θα αποτύχει στο να λύσει κάποιες, αν όχι όλες, τις περιπτώσεις. Σέλος, χρησιμοποιούνται διαφορετικά μεγέθη αρχείων εισόδου για να ξεχωρίσουν τα σωστά προγράμματα με διαφορετική αποδοτικότητα χρόνου.

ύμφωνα με τα παραπάνω καταλήγουμε στο γενικότερο συμπέρασμα ότι για να επιτευχθεί ένα σύστημα αυτοματοποιημένης κρίσης θα πρέπει το πρόγραμμα να εκτελεί τον κώδικα ενός προγράμματος και να συγκρίνει την έξοδό του με την αναμενόμενη. Από τη

Page 6: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 6

Ειδικά Θέματα CSCL

στιγμή που ελέγχεται προσεκτικά η φύση των προβλημάτων και τα ζητήματα ασφαλείας, είναι εύκολο να καρπωθούμε τα οφέλη της αυτοματοποιημένης κρίσης. Οι φοιτητές μπορούν να ελέγχονται σε περισσότερα προγράμματα απ‟ ότι αν υπήρχαν μόνο οι άνθρωποι αξιολογητές, γεγονός ιδιαίτερης σημασίας στη μάθηση της τέχνης του προγραμματισμού (Forisek, On the Suitability of Programming Tasks for Automated Evaluation, 2006).

Έχοντας κάνει μια διεξοδική έρευνα για τη φιλοσοφία των συστημάτων των online διαγωνισμών, καταλήγουμε στα ερωτήματα που θέλουμε να ερευνήσουμε με τη διενέργεια ενός τέτοιου συστήματος, τα οποία είτε δεν έχουν απαντηθεί, είτε δεν έχουν τεκμηριωθεί πλήρως. Σο βασικό θέμα που προκύπτει είναι εάν ένας διαγωνισμός βοηθάει τους φοιτητές να βελτιώσουν τις προγραμματιστικές τους ικανότητες και, επιπλέον, ποια θα ήταν τα κίνητρα του καθενός για να συμμετάσχει. Ένα δεύτερο θέμα είναι αν η συμμετοχή τους σε ομάδες είναι καταρχήν επιθυμητή από τους ίδιους και κατά πόσο τελικά είναι εφικτή η συνεργασία στα πλαίσια ενός διαγωνισμού· οδηγεί σε βελτίωση των φοιτητών στο μάθημα του προγραμματισμού; Σρίτον, ένα ερώτημα που τίθεται για την επιλογή της τεχνολογικής λύσης είναι το αν θα διαθέτει αυτοματοποιημένη κρίση και αν ναι, κατά πόσο θα είναι αντικειμενική. Σέλος, βασικό κριτήριο είναι το σύστημα που θα επιλεγεί να εξασφαλίζει την ασφάλεια.

Μετά από αυτή την εισαγωγή στον τομέα των online διαγωνισμών προγραμματισμού και τη διατύπωση των βασικών ερευνητικών θεμάτων και κριτηρίων, ξεκινήσαμε τη συλλογή των συγκεκριμένων απαιτήσεων των χρηστών με τον τρόπο που περιγράφεται στο επόμενο κεφάλαιο.

Page 7: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 7

Ειδικά Θέματα CSCL

2. ΤΛΛΟΓΗ ΑΠΑΙΣΗΕΩΝ

2.1 Μέθοδοι υλλογής Απαιτήσεων Η διαδικασία συλλογής απαιτήσεων είναι η πρώτη φάση ανάπτυξης λογισμικού κατά την

οποία καθορίζονται όλες οι δυνατότητες και οι συνθήκες στις οποίες το σύστημα πρέπει να συμμορφώνεται. Είναι όλες οι λειτουργίες που απαιτούν να έχει το σύστημα οι ενδιαφερόμενοι (stakeholders). Διακρίνονται στις λειτουργικές απαιτήσεις που καθορίζουν τι θέλουμε να κάνει το κάθε σύστημα και στις μη-λειτουργικές οι οποίες καθορίζουν τα ποσοτικά χαρακτηριστικά των λειτουργικών απαιτήσεων. Μερικές μεθόδους συλλογής απαιτήσεων θα παρουσιάσουμε παρακάτω.

Περιπτώσεις Φρήσης: Οι περιπτώσεις χρήσης είναι μια πολύ καλή μεθοδολογία συλλογής απαιτήσεων που συμβαδίζει με την ανάπτυξη UML διαγραμμάτων και είναι πολύ διαδεδομένη τεχνική στην βιομηχανία ανάπτυξης λογισμικού. τις περιπτώσεις χρήσεις αναπτύσσουμε ένα μοντέλο περιπτώσεων χρήσης που είναι το σύνολο όλων των πιθανών περιπτώσεων χρήσης του συστήματος. Σα συστατικά στοιχεία του μοντέλου περιπτώσεων χρήσης είναι ο „ηθοποιός‟ που είναι οποιαδήποτε οντότητα με συμπεριφορά (άνθρωπος, υπολογιστής, οργάνωση), η περίπτωση χρήσης που είναι ο τρόπος με τον οποίο αλληλεπιδρά ένας χρήστης με το σύστημα και τα σενάρια όπου είναι μια ακολουθία αλληλεπιδράσεων μεταξύ των ηθοποιών και του συστήματος, ένα μονοπάτι μίας περίπτωσης χρήσης. Μια τυπική περίπτωση χρήσης αποτελείται από πολλά σενάρια.

Δομημένος ή Αδόμητος Διάλογος: Η πιο απλή μέθοδος συλλογής απαιτήσεων είναι ο αδόμητος διάλογος δηλαδή η συζήτηση μεταξύ των ενδιαφερομένων και της ομάδας ανάπτυξης λογισμικού ή μεταξύ του ειδικού και της ομάδας ανάπτυξης λογισμικού. Μια πιο δομημένη μορφή διαλόγου μπορεί να προκύψει από ερωτηματολόγια όπου περιορίζουν τις απαντήσεις των ενδιαφερομένων έτσι ώστε να υπάρχει κάποιος μεγαλύτερος έλεγχος. Η μία μέθοδος δεν αποκλείει την άλλη καθώς θα μπορούσαν να χρησιμοποιηθούν ανοιχτοί τύποι ερωτήσεων σε κάποιο ερωτηματολόγιο συμπληρωματικά με ερωτήσεις πολλαπλών επιλογών για μεγαλύτερες δυνατότητες διευκρίνησης.

υνεργατική Ανάπτυξη Εφαρμογής: Επιτρέπει την συνεργασία των προγραμματιστών με τους ενδιαφερόμενους του συστήματος να δουλέψουνε μαζί για να καθορίσουν τις απαιτήσεις του συστήματος. Αυτός ο τρόπος συλλογής απαιτήσεων μειώνει κατά πολύ την πιθανότητα εξαγωγής λάθους απαίτησης. Επίσης ο „μεσολαβητής‟ καθορίζει την επικοινωνία ανάμεσα στην ομάδα ανάπτυξης και τους ενδιαφερόμενους βοηθώντας με την τεχνική ορολογία ή άλλα ζητήματα που προκύπτουν.

Παρατήρηση: Η επιτόπια παρατήρηση των διαδικασιών που λαμβάνουν μέρος σε κάποιον οργανισμό ή σύστημα πολλές φορές έχει αρκετά πλεονεκτήματα. Για παράδειγμα μπορούμε μόνοι μας να παρατηρήσουμε την λειτουργία του συστήματος αντί να την περιγράφουν οι χρήστες. Πολλές φορές χρησιμοποιούμε αυτή την μέθοδο κατά την ανάλυση των απαιτήσεων για την επικύρωση της ορθότητας αυτών.

Ανάπτυξη Πρωτοτύπου: Η ανάπτυξη πρωτοτύπου πραγματοποιείται συνήθως ως μια συμπληρωματική μέθοδος αφότου έχει γίνει κάποια αρχική εκτίμηση των βασικών απαιτήσεων. Με την μέθοδο αυτή αναπτύσσουμε συνεχώς κάποια πρωτότυπα του συστήματος έτσι ώστε κάθε φορά να έχουμε ανατροφοδότηση από τους ενδιαφερόμενους, τους testers ή και από κάποιο δείγμα χρηστών για την λειτουργικότητα του συστήματος-πρωτοτύπου. ε κάθε ανάπτυξη πρωτοτύπου προσθέτουμε παραπάνω λειτουργικότητα ξεκινώντας πάντα από τις πιο σημαντικές απαιτήσεις του συστήματος.

την παρούσα φάση, για την συλλογή των απαιτήσεων επιλέχθηκε ο δομημένος διάλογος με τους φοιτητές με τη μορφή ερωτηματολογίου, καθώς και ο αδόμητος διάλογος με τους ειδικούς, δηλαδή με

Εικόνα 1 Διάγραμμα Ροής υλλογής Απαιτήσεων

Page 8: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 8

Ειδικά Θέματα CSCL

τους καθηγητές του μαθήματος. την Εικόνα 1 βλέπετε ένα διάγραμμα ροής που απεικονίζει τη διαδικασία συλλογής απαιτήσεων.

2.2 Ερωτηματολόγιο υλλογής Απαιτήσεων Σο ερωτηματολόγιο που δόθηκε στους φοιτητές είναι το εξής:

ΠΡΟΓΡΑΜΜΑ ΜΕΣΑΠΣΤΦΙΑΚΩΝ ΠΟΤΔΩΝ ΣΗΝ ΠΛΗΡΟΥΟΡΙΚΗ Κατεύθυνση «Σεχνολογίες Πληροφορίας και Επικοινωνιών στην Εκπαίδευση –

ΣΠΕΕ» Σμήμα Πληροφορικής Α.Π.Θ.

Θεσσαλονίκη 16/12/2011

ΕΡΩΣΗΜΑΣΟΛΟΓΙΟ

Σηα πιαίζηα εξγαζίαο ηνπ καζήκαηνο «Ειδικά Θέμαηα Σσνεργαηικών Σσζηημάηων Μάθηζης» κε ππεύζπλν

θαζεγεηή ηνλ κ. Θραζύβοσλο Τζιάηζο, δεκηνπξγήζεθε έλαο πηινηηθόο ρώξνο δηεμαγωγήο online δηαγωληζκώλ

πξνγξακκαηηζκνύ. Ο απώηεξνο ζηόρνο είλαη λα δηελεξγνύληαη δηαγωληζκνί όπνπ νη θνηηεηέο κέζω ηεο

ζπκκεηνρήο ηνπο ζα εμαζθνύλ ηηο πξνγξακκαηηζηηθέο ηνπο ηδηόηεηεο θαη ζα πξηκνδνηνύληαη ζηελ ηειηθή

βαζκνινγία ηνπ καζήκαηνο.

Σθνπόο ηνπ εξωηεκαηνινγίνπ είλαη λα ζπγθεληξώζεη πιεξνθνξίεο γηα ην πξνγξακκαηηζηηθό επίπεδν ηωλ

θνηηεηώλ πνπ δύλαηαη λα ζπκκεηάζρνπλ ζε δηαγωληζκό, θαζώο θαη ζηνηρεία πνπ ζα πεξίκελαλ λα πεξηέρεη ε

πιαηθόξκα θαη ν ηξόπνο δηεμαγωγήο ηωλ δηαγωληζκώλ.

Τα εξωηεκαηνιόγηα είλαη αλώλπκα. Παξαθαινύκε ζπκπιεξώζηε κε αθξίβεηα.

Σπκπιεξώζηε βάδνληαο έλα Χ ζηελ απάληεζε πνπ ζαο εθθξάδεη πεξηζζόηεξν.

Η βαζκνινγηθή θιηκαθα είλαη ε εμήο:

Καζόινπ Λίγν Μέηξηα Αξθεηά Πνιύ Δε Γλωξίδω/Δελ απαληώ

1. Πώο πηζηεύεηε όηη αμηνινγνύληαη (ζε γεληθέο γξακκέο) νη δεμηόηεηέο ζαο ζηνλ πξνγξακκαηηζκό;

2. Έρεηε ζπκκεηάζρεη ζε online δηαγωληζκό πξνγξακκαηηζκνύ ζην παξειζόλ;

α) Ναη

β) Όρη

Page 9: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 9

Ειδικά Θέματα CSCL

3. Πόζν πηζηεύεηε όηη ζα βνεζνύζε κηα ζπλεξγαζία πξηλ από θάπνηνλ δηαγωληζκό κέζω θάπνηαο

θνηλόηεηαο (πρ forum);

4. Πόζν ζα ζαο βνεζνύζε λα επηηύρεηε ζην δηαγωληζκό αλ ζπκκεηέρεηε αλά νκάδεο θαη ζπλεξγάδεζηε κε

άιινπο ζπκθνηηεηέο ζαο;

5. Πνηόο ζα ήηαλ ν ζθνπόο ζπκκεηνρήο ζαο ζε έλαλ δηαγωληζκό πξνγξακκαηηζκνύ;

Page 10: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 10

Ειδικά Θέματα CSCL

6. Πόζν ρξόλν ζα ζπαηαινύζαηε γηα εμάζθεζε πξηλ από έλα δηαγωληζκό;

7. Πόζν ρξόλν ζα αθηεξώλαηε ζε κία θνηλόηεηα ζπλεξγαζίαο πξηλ από θάπνηνλ δηαγωληζκό;

8. ε γεληθέο γξακκέο πηζηεύεηε όηη έλαο δηαγωληζκόο πξνγξακκαηηζκνύ ζα ήηαλ ρξήζηκνο γηα λα

αλαπηύμεηε ηηο γλώζεηο ζαο ζηνλ πξνγξακκαηηζκό;

Παξαθαινύκε ζπκπιεξώζηε ην παλεπηζηεκηαθό ζαο e-mail όζνη ζα ζέιαηε λα ζπκκεηάζρεηε ζε δνθηκαζηηθό

δηαγωληζκό.

*Πξναηξεηηθό

αο επραξηζηνύκε γηα ην ρξόλν ζαο!

Page 11: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 11

Ειδικά Θέματα CSCL

2.3 Αποτελέσματα ερωτηματολογίου

7,9% : Ελλιπείς

34,2% : Μέτρια

55,3% : Αρκετά καλά

2,6% : Άριστα

Σο 85% (11/13) των

φοιτητών που

συμπλήρωσαν τα e-

mail τους για να

συμμετάσχουν σε δοκιμαστικό

διαγωνισμό, δήλωσαν

ότι αξιολογούν αρκετά

καλά τις δυνατότητές

τους, ενώ το 15% (2/13) δήλωσαν ότι τις

αξιολογούν μέτρια.

100% : Όχι

0% : Ναι

Κανείς δεν είχε

συμμετάσχει σε

διαγωνισμό

προγραμματισμού στο

παρελθόν.

55,3% :

Πολύ

42,1% :

Αρκετά 2,6% : Λίγο

0% :

Καθόλου

Πάνω από το 50% των

ερωτηθέντων πιστεύει πως η

ανταλλαγή απόψεων θα

συνέβαλε πολύ θετικά στο να αναπτύξουν τις δεξιότητές τους

και να λύσουν τις απορίες τους.

34,2% : Πολύ

50% : Αρκετά

15,8% : Λίγο

0% : Καθόλου

Οι μισοί από τους

ερωτηθέντες πιστεύουν

πως κάτι τέτοιο θα

βοηθούσε στην ανάπτυξη των προγραμματιστικών

δεξιοτήτων τους και στην

επιτυχία του

διαγωνισμού. Έτσι,

υπάρχει ανάγκη ομαδικής μάθησης η

οποία θα πρέπει να

υποστηρίζεται από τον

διαγωνισμό.

Page 12: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 12

Ειδικά Θέματα CSCL

13,1% : Bonus

υμμετοχής

0% :

Ανταγωνισμός

μέσα στην

ομάδα

15,8% : υμμετοχή σε συνεργατική δραστηριότητα

71,1% : Προσδιορισμός

επιπέδου γνώσεων και

ανάπτυξη δεξιοτήτων

15,8% : Πολύ 52,6% : Αρκετά

26,3% : Λίγο

5,3% : Καθόλου

Οι περισσότεροι από τους ερωτηθέντες θα

περνούσαν χρόνο

για να

προετοιμαστούν.

13,2% : Πολύ

52,6% : Αρκετά

31,6% : Λίγο

2,6% : Καθόλου

Πάνω από το 50% των

ερωτηθέντων θα αφιέρωνε

χρόνο για αναζήτηση και

απάντηση σε θέματα

σχετικά με το διαγωνισμό.

31,5% : Πολύ

55,3% : Αρκετά

13,2% : Λίγο

0% : Καθόλου

2.4 Απαιτήσεις Α) Οι απαιτήσεις που συλλέχθηκαν από τα 38 ερωτηματολόγια είναι οι εξής: 1. Ο διαγωνισμός να βασιστεί σε ασκήσεις αρκετά καλού επιπέδου προγραμματισμού. 2. ωστές και αναλυτικές οδηγίες για την διεκπεραίωση του διαγωνισμού καθώς οι φοιτητές

δεν γνωρίζουν την διαδικασία. 3. Θα πρέπει να υπάρχει κάποιος χώρος για συνεργασία πριν από κάθε διαγωνισμό. 4. Θα δίνεται bonus στη βαθμολογία για να υπάρχει κίνητρο ακόμα και για τους λιγότερο

ενδιαφερόμενους. 5. υχνή διοργάνωση διαγωνισμών ώστε να δίνεται η δυνατότητα σε αυτούς που θέλουν, να

εξασκήσουν τις ικανότητές τους και να ανταλλάξουν απόψεις. 6. Πριν από κάθε διαγωνισμό πρέπει να μπαίνουν παρόμοιες ασκήσεις για εξάσκηση των

διαγωνιζόμενων. 7. Θα πρέπει να υπάρχει εύλογο χρονικό διάστημα για προετοιμασία πριν από το

διαγωνισμό ανάλογα και με τη δυσκολία της άσκησης. Β) Οι απαιτήσεις που συλλέχθηκαν από τη μη-δομημένη συνέντευξη με τους ειδικούς/καθηγητές του μαθήματος «Βασικές Αρχές Προγραμματισμού», είναι οι εξής:

Page 13: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 13

Ειδικά Θέματα CSCL

8. Έγκαιρη ενημέρωση για τη διεξαγωγή του διαγωνισμού και ανακοίνωση στο σύστημα ώστε όλοι να έχουν χρόνο προετοιμασίας και δυνατότητα συμμετοχής.

9. Οι φοιτητές της κάθε ομάδας θα πρέπει να έχουν παρόμοιο επίπεδο γνώσεων και προγραμματιστικών δεξιοτήτων ώστε να μην έρχονται σε σύγκρουση κατά τη διάρκεια της συνεργασίας.

10. Καλό θα είναι να διενεργούνται διαγωνισμοί στους οποίους να συμμετέχουν οι διαγωνιζόμενοι ανά ομάδες.

11. Σο σύστημα να υποστηρίζει συνεργασία κατά την προετοιμασία των φοιτητών μέσω μιας κοινότητας μάθησης, όπου οι φοιτητές θα λειτουργούν ομαδικά για να βρουν και να δομήσουν τη λύση ενός προβλήματος.

12. Θα πρέπει να φαίνονται τα σχόλια που κάνει ο καθένας στις λύσεις των προβλημάτων ώστε να αξιολογείται κατά πόσο συνεισφέρει στην ομάδα, άρα θα γίνεται ταυτοποίηση των χρηστών. Επομένως, κάθε ομάδα θα έχει το δικό της χώρο για προετοιμασία πριν το διαγωνισμό.

13. Να δίνεται η δυνατότητα μετά το τέλος του διαγωνισμού να σχολιάζει ή να ψηφίζει η μια ομάδα τη λύση της άλλης, ώστε να βλέπουν και να αξιολογούν λύσεις που ίσως δεν είχαν σκεφτεί αλλά και όσοι δεν είχαν υποβάλει καλή λύση να πάρουν ιδέες και να βελτιωθούν.

14. Να υπάρχει κίνητρο για όλους ώστε να συμμετάσχουν στο διαγωνισμό, επομένως θα δίνεται bonus βαθμολογικό σε όλους όσους συμμετέχουν, αλλά και επιπλέον bonus για τους νικητές.

Όσον αφορά στην απαίτηση 10, επειδή είναι ένα λεπτό ζήτημα ο τρόπος διαχωρισμού των

μαθητών σε ομάδες, παραθέτουμε ορισμένα στοιχεία που υπάρχουν μέχρι στιγμής για αυτό το θέμα. Η κάθε ομάδα θα πρέπει να αποτελείται από 3-4 μέλη. Σο μέγεθος της ομάδας εξαρτάται από την ηλικία των φοιτητών που στην περίπτωσή μας είναι παρόμοια, το είδος της εργασίας, το συνολικό αριθμό των φοιτητών στην τάξη καθώς και το διαθέσιμο χρόνο για την συγκεκριμένη εργασία (όσο πιο μεγάλη είναι η ομάδα τόσο πιο πολύ χρόνο χρειάζεται για να ολοκληρώσει την εργασία της). Επίσης ένα από τα κριτήρια δημιουργίας ομάδων είναι η νοητική ικανότητα και η επίδοση των φοιτητών, οπότε στη συγκεκριμένη περίπτωση οι φοιτητές της κάθε ομάδας θα πρέπει να έχουν παρόμοιο επίπεδο γνώσεων και προγραμματιστικών δεξιοτήτων ώστε να μην έρχονται σε σύγκρουση κατά τη διάρκεια της συνεργασίας (Σριλιανός).

Page 14: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 14

Ειδικά Θέματα CSCL

3. ΣΕΦΝΟΛΟΓΙΚΗ ΑΝΑΚΟΠΗΗ ε αυτό το σημείο της έρευνας, και μετά τη συλλογή των απαιτήσεων από τους χρήστες,

παρουσιάστηκε η ανάγκη για ανασκόπηση των πιθανών τεχνολογικών λύσεων αντί για διερεύνηση των λειτουργικών απαιτήσεων. Αυτή η διαφορετική πορεία στη διαδικασία της έρευνας έγινε εξαιτίας των πολλαπλών ζητημάτων που αναδύθηκαν σχετικά με το τι θα μπορούσε, τι θα ήταν χρήσιμο και τι θα ήταν εφικτό να χρησιμοποιηθεί σε έναν online διαγωνισμό προγραμματισμού. Θεωρήθηκε απαραίτητο να γίνει αρχικά μια έρευνα για τις λειτουργίες που εξυπηρετούν και εφαρμόζουν τα ήδη υπάρχοντα συστήματα, και έπειτα να αποφασιστεί ποιές δυνατότητες μπορούν να υιοθετηθούν στην παρούσα προσπάθεια, ποιές μπορούν να επεκταθούν και, τέλος, ποιές θα πρέπει να απορριφθούν. Με τον τρόπο αυτό αποφεύχθηκε μια ανώφελη συλλογή λειτουργικών απαιτήσεων, οι οποίες δεν θα μπορούσαν ποτέ να υλοποιηθούν, στα πλαίσια πάντα της συγκεκριμένης εργασίας.

τη συνέχεια του κεφαλαίου, παρουσιάζονται οι πιο διαδεδομένες πλατφόρμες διαγωνισμών προγραμματισμού, αναφέρονται τα βασικά χαρακτηριστικά και οι απαιτήσεις της κάθε μιας και εξηγούνται οι λόγοι για τους οποίους τελικά απορρίφθηκε ή επιλέχτηκε να χρησιμοποιηθεί στην παρούσα εργασία.

3.1 Mooshak (http://mooshak.dcc.fc.up.pt/)

Εικόνα 2 Η αρχική σελίδα του Mooshak

3.1.1 Εισαγωγή στο Mooshak Σο Mooshak είναι ένα Web-based, multi-site σύστημα διαγωνισμών προγραμματισμού.

Για όσους δε γνωρίζουν τη μυθολογία Hindu, ο λόρδος Ganesh είναι ο Θεός με το κεφάλι ελέφαντα, με σπασμένο χαυλιόδοντα, που πάντα τον συντρόφευε ένα μικρό ποντίκι με το όνομα Mooshak.

ε έναν τυπικό διαγωνισμό του Mooshak, ομάδες αποτελούμενες από τρεις προπτυχιακούς φοιτητές παίρνουν ένα σύνολο από εννέα προβλήματα που πρέπει να λύσουν σε πέντε ώρες, από έναν υπολογιστή και προγραμματίζοντας σε C, C++, Pascal ή Java. Κατά τη διάρκεια του διαγωνισμού οι ομάδες μπορούν να υποβάλλουν λύσεις, σε πηγαίο κώδικα, για τα δοσμένα προβλήματα. Οι υποβολές τυπικά αξιολογούνται από ανθρώπινη κρίση, κάτι που περιλαμβάνει μεταγλώττιση του προγράμματος, εκτέλεσή του με ένα σύνολο προκαθορισμένων εισόδων, σύγκριση των αποτελεσμάτων με τα αναμενόμενα και στη συνέχεια βαθμολόγηση του προγράμματος σύμφωνα με μια κλίμακα βαθμολόγησης. Μια υποβολή θεωρείται αποδεκτή μόνο όταν περνά επιτυχώς όλες τις περιπτώσεις ελέγχου. υνήθως υπάρχει μέγιστος αριθμός εκτελέσεων που σχετίζεται με τους ελέγχους και έτσι, για να θεωρηθεί ένα πρόβλημα αποδεκτό δε φτάνει μόνο να δίνει τα σωστά αποτελέσματα, αλλά θα πρέπει να το κάνει και μέσα σε συγκεκριμένα χρονικά όρια. Αυτό βεβαιώνει ότι οι λύσεις που παράγονται από τις ομάδες είναι λογικά αποδοτικές και όχι απλά μια προσέγγιση brute force.

Η προετοιμασία και διεξαγωγή διαγωνισμών προγραμματισμού με πολλές διαγωνιζόμενες ομάδες είναι τεράστιο έργο. Η σχεδίαση του κατάλληλου περιβάλλοντος για τη διαμεσολάβηση της επικοινωνίας μεταξύ ομάδων και κριτών, είναι μεγάλη πρόκληση· θα πρέπει να επιτρέπει τους μεν να κάνουν ερωτήσεις, να υποβάλλουν τις λύσεις τους και να λαμβάνουν πληροφορίες· και τους δε να απαντούν στις ερωτήσεις, να κρίνουν τις απαντήσεις τους και να αναφέρουν τα αποτελέσματα της αξιολόγησής τους.

Page 15: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 15

Ειδικά Θέματα CSCL

Σο σύστημα δρα ως ολοκληρωμένος διαχειριστής διαγωνισμών και ως αυτόματος κριτής των προγραμμάτων. Είναι ένα ανοιχτό σύστημα, εφαρμοσμένο σε λειτουργικό σύστημα Linux, που χρησιμοποιεί τον Apache HTTP server και τη scripting γλώσσα Tcl, επικοινωνώντας μέσω του πρωτοκόλλου CGI. Είναι διαθέσιμο στην ιστοσελίδα http://www.ncc.up.pt/mooshak· σε αυτή τη σελίδα ο αναγνώστης μπορεί να χρησιμοποιήσει μια δημόσια έκδοση του Mooshak, και ως διαγωνιζόμενος και ως κριτής, να διαβάσει την online βοήθεια και να κατεβάσει ένα φάκελο που περιέχει το σύστημα. Σο Mooshak διανέμεται από την ονομαζόμενη «Καλλιτεχνική Άδεια – Artistic License» και έτσι πιστοποιείται ως λογισμικό ανοιχτού κώδικα από το Open Source Initiative.

Σο Mooshak καινοτομεί με διάφορους τρόπους: έχει κλιμακωτή αρχιτεκτονική που μπορεί να χρησιμοποιηθεί από μικρούς διαγωνισμούς μεμονωμένων εξυπηρετητών μέχρι πολύπλοκους multi-site διαγωνισμούς με ταυτόχρονους online δημόσιους διαγωνισμούς· διαθέτει ισχυρό σύστημα διαχείρισης δεδομένων το οποίο ευνοεί απλές διαδικασίες για αποθήκευση, αναπαραγωγή, δημιουργία αντιγράφων ασφαλείας και ανάκτηση δεδομένων· έχει δυνατότητες αυτόματης κρίσης που βοηθούν την ανθρώπινη κρίση στην αξιολόγηση των προγραμμάτων· έχει ενσωματωμένα μέτρα ασφαλείας που εμποδίζει τους χρήστες να εμπλέκονται με την ομαλή πρόοδο των διαγωνισμών.

3.1.2 Επισκόπηση Απαιτήσεων και Λειτουργιών Σο Mooshak είναι μια client-server εφαρμογή για ολοκληρωμένη διαχείριση και

εκτέλεση διαγωνισμών προγραμματισμού. Είναι, επίσης, web-based και γι‟ αυτό όλες του οι λειτουργικότητες είναι διαθέσιμες μέσω διεπαφών που προβάλλονται σε έναν φυλλομετρητή, ανεξάρτητα από το λειτουργικό σύστημα πάνω στο οποίο τρέχει ο φυλλομετρητής. Αυτές οι διεπαφές χρησιμοποιούν την HTML 4.0 και δεν πραγματοποιείται κάποια διεργασία στο φυλλομετρητή, εκτός από ορισμένες εισαγωγές δεδομένων. Η Java και τα plug-ins αποφεύχθηκαν σκοπίμως για να απλοποιηθεί η χρήση της διεπαφής από οποιαδήποτε μηχανή στο Internet.

Σο Mooshak φιλοξενεί έναν αριθμό από οπτικές γωνίες προσανατολισμένες στο χρήστη, με διαφορετικές απαιτήσεις συστήματος και διαφορετικά δικαιώματα πρόσβασης στα δεδομένα. Οι χρήστες που υποστηρίζονται προς το παρόν είναι οι διαγωνιζόμενοι, οι κριτές, οι διαχειριστές και οι επισκέπτες. Η πρόσβαση του χρήστη ελέγχεται με πιστοποίηση (authentication) εκτός από τους επισκέπτες.

Η αρχιτεκτονική του Mooshak είναι όπως μιας τυπικής εφαρμογής Web: ένα πλαίσιο πελάτη-εξυπηρετητή που συνδέει τους χρήστες με το μηχάνημα στο οποίο καταγράφονται, αναλύονται και επικυρώνονται οι υποβολές. Η Εικόνα 2 αναπαριστά την αρχιτεκτονική του Mooshak, δομημένη σε κάθετα και οριζόντια επίπεδα. Σο επίπεδο διεπαφής χρήστη στην κορυφή, περιλαμβάνει τους υπολογιστές που χρησιμοποιούν οι ομάδες, οι κριτές, οι διαχειριστές και οι επισκέπτες για να μπουν στο σύστημα. Η γραφική διεπαφή χρήστη αποδίδεται σε HTML και τα δεδομένα αλληλεπίδρασης κοινοποιούνται πίσω σε ένα διακομιστή στο επίπεδο εφαρμογής που χρησιμοποιεί το πρωτόκολλο HTML. Σο επίπεδο εφαρμογής συντίθεται από ένα σύνολο διακομιστών, που ο καθένας χρησιμοποιεί το δικό του σύστημα διαχείρισης δεδομένων.

Εικόνα 3 Η αρχιτεκτονική του Mooshak

Ο διακομιστής Mooshak είναι ένας Apache HTML διακομιστής, εκτεταμένος με εξωτερικά προγράμματα που χρησιμοποιούν το πρωτόκολλο CGI, και τρέχει σε λειτουργικό σύστημα

Page 16: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 16

Ειδικά Θέματα CSCL

Linux. Ο Apache είναι υπεύθυνος για την επικοινωνία, την πιστοποίηση, τον έλεγχο πρόσβασης και την κρυπτογράφηση. Σα εξωτερικά προγράμματα (CGIs) είναι υπεύθυνα για την παραγωγή των διεπαφών HTML και την επεξεργασία των δεδομένων φόρμας. Εφαρμόζονται σε Tcl και διαχειρίζονται τα δεδομένα χρησιμοποιώντας επίμονα αντικείμενα πάνω στο σύστημα φακέλων. Η Tcl επιλέχθηκε ως η scripting γλώσσα με ισχυρά εργαλεία για τη διαδικασία διαχείρισης και για τη διασύνδεση των συστημάτων αρχείων. Αυτά τα χαρακτηριστικά απαιτούνται για να εφαρμοστεί η αυτοματοποιημένη κρίση και η διαχείριση των δεδομένων.

Η αυτόματη κρίση είναι ο ακρογωνιαίος λίθος του Mooshak. Ο ρόλος της είναι να ταξινομεί μια υποβολή σύμφωνα με ένα σύνολο κανόνων και να παράγει μια αναφορά με την αξιολόγηση που θα επικυρωθεί από ανθρώπινη κρίση. Η υποβολή αποτελείται από στοιχεία που απαιτούνται για την αξιολόγηση, όπως ο πηγαίος κώδικας του προγράμματος, το id της ομάδας και η γλώσσα προγραμματισμού (η οποία συνάγεται αυτομάτως από την επέκταση του αρχείου του πηγαίου κώδικα). Οι υποβολές διορθώνονται αυτόματα και σχεδόν ταυτόχρονα προβάλλονται στις ομάδες, έστω και σε κατάσταση εκκρεμότητας αρχικά. Οι ανθρώπινη κρίση έχει την ευθύνη να επικυρώνει τις εκκρεμείς υποβολές, να τις μετατρέπει στην τελική κατάταξη, και περιστασιακά να διορθώνει την αρχική ταξινόμηση. Μια κατάταξη ίσως χρειαστεί να τροποποιηθεί ως αποτέλεσμα αλλαγών στις συνθήκες μεταγλώττισης και εκτέλεσης (π.χ. αλλαγές στις περιπτώσεις ελέγχου). Η επαναξιολόγηση παράγει μια άλλη αναφορά που πρέπει να συγκριθεί με τις προηγούμενες.

Μια τυπική Web εφαρμογή χρησιμοποιεί ένα σχεσιακό σύστημα διαχείρισης βάσης δεδομένων (RDBMS) για τη διαχείριση επίμονων δεδομένων (τα επίμονα αντικείμενα είναι συνεδρίες ή εφαρμογές μεταβλητών που παραμένουν ενεργές μέχρι να τερματιστεί η εφαρμογή ή η συνεδρία του χρήστη). Σο Mooshak αντίθετα, βασίζει τη διαχείριση των δεδομένων του απευθείας πάνω στο σύστημα αρχείων. Σο βασικό κίνητρο ήταν ότι τα δεδομένα που χρησιμοποιεί το Mooshak είναι βολικά για να αναπαρασταθούν σε απλά αρχεία – πηγαία προγράμματα, αρχεία δεδομένων, HTML αρχεία και εικόνες. Ο αριθμός των αρχείων που απαιτούνται από το Mooshak και ο αριθμός των διαδικασιών που τα διαβάζει και τα γράφει μας ανάγκασε να ορίσουμε μια μεθοδολογία που θα μεσολαβήσει την αλληλεπίδραση με το σύστημα αρχείων. Η μεθοδολογία αυτή, που ονομάζεται επίμονα αντικείμενα, δίνει μια γεύση αντικειμενοστρέφειας στο Mooshak δεδομένου ότι ενσωματώνει τα αρχεία δεδομένων με τις μεθόδους που τα διαχειρίζονται (Leal & Silva, 2003).

3.1.3 υμπεράσματα ε αυτό το κεφάλαιο δείξαμε τη σχεδίαση και εφαρμογή του Mooshak, ενός συστήματος

που φιλοδόξησε να γίνει ένα ολοκληρωμένο σύστημα διαχείρισης διαγωνισμών προγραμματισμού. Σο σύστημα δοκιμάστηκε επιτυχώς και με επίσημους διαγωνισμούς, και αποδείχθηκε ευέλικτο στη διαχείριση διαγωνισμών με διαφορετικές απαιτήσεις, αρκετά εύρωστο καθώς υποστηρίζει επιτυχώς υψηλά φορτία συναλλαγών, και ακριβές στις ικανότητες αυτόματης κρίσης. Επιπρόσθετα, το σύστημα δεν απαιτεί μεγάλο αριθμό ανθρώπινης υποστήριξης κατά τη διάρκεια του διαγωνισμού.

Για να χρησιμοποιηθεί στην παρούσα προσπάθεια το Mooshak, θα έπρεπε να εγκατασταθεί σε Linux server αρχικά μια εικονική μηχανή (Virtual Box). τη συνέχεια, πάνω στην εικονική μηχανή να εγκατασταθεί το Ubuntu 8.10 (ή νεότερο). Μετά να εγκατασταθεί ο Apache και η Tcl και, ενδεχομένως να χρειαζόταν η εγκατάσταση C compiler και configuration του Apache.

Σα παραπάνω έπρεπε να γίνουν με εντολές σε Linux. Σο Mooshak στις διαθέσιμες οδηγίες της ιστοσελίδας του παρείχε παλιές εντολές που δεν χρησιμοποιούνται πια. Σέλος, ο διαθέσιμος server – pegasus – πιθανότατα να μην μπορούσε να υποστηρίξει ταυτόχρονη σύνδεση για περισσότερα από 10-15 άτομα. Έτσι, λόγω έλλειψης κατάλληλης υποδομής και έλλειψης χρόνου για την εγκατάστασή της, και κυρίως λόγω της πολυπλοκότητας εγκατάστασης που προέκυψε από την σχετικά παλιά έκδοση του Mooshak, δεν θεωρήθηκε η κατάλληλη τεχνολογική λύση στην παρούσα φάση και απορρίφθηκε.

το μέλλον προβλέπεται επιπλέον βελτίωση του συστήματος με τη νέα έκδοση, κυρίως όσον αφορά στην αξιολόγηση, την ταξινόμηση και το διαμοιρασμό δεδομένων.

Page 17: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 17

Ειδικά Θέματα CSCL

3.2 PC^2 (http://www.ecs.csus.edu/pc2)

Εικόνα 4 Η αρχική σελίδα του PC^2

3.2.1 Εισαγωγή στο PC^2 Σο PC^2 αναπτύχθηκε στο πανεπιστήμιο Sacramento (CSUS) στην Καλιφόρνια, για την

υποστήριξη των Διαγωνισμών Προγραμματισμού Τπολογιστών της ACM (Association for Computing Machinery), και κυρίως για το Διεθνές υλλογικό Διαγωνισμό Προγραμματισμού της ACM(ACM International Collegiate Programming Contest-ICPC) και των περιφερειακών διαγωνισμών της σε όλο τον κόσμο.

Είναι ένα σύστημα λογισμικού που έχει σχεδιαστεί για να υποστηρίζει τους διαγωνισμούς προγραμματισμού σε διάφορα υπολογιστικά περιβάλλοντα. Επιτρέπει στους διαγωνιζόμενους (ομάδες) να υποβάλουν προγράμματα μέσω δικτύου στους διαχειριστές του διαγωνισμού. Οι διαχειριστές μπορούν να μεταγλωττίσουν το υποβληθέν πρόγραμμα, να το εκτελέσουν , να δουν τον πηγαίο κώδικα ή / και τα αποτελέσματα εκτέλεσης, και να στείλουν μια απάντηση πίσω στην ομάδα. Σο σύστημα υποστηρίζει επίσης μια "αυτόματη κρίση" , όπου η αξιολόγηση γίνεται από το λογισμικό και όχι από τους διαχειριστές.

Σο σύστημα επιτρέπει την υποβολή αρχείων αυτόματα, συντηρεί και εμφανίζει την τρέχουσα βαθμολογία των διαγωνισμών με ποικίλους τρόπους, και επιτρέπει στους διαχειριστές να ανακτούν και να επανεκτελούν τα αρχεία. Παρέχει επίσης ένα μηχανισμό για τους διαγωνιζόμενους να υποβάλλουν τις διευκρινίσεις και τις απορίες τους στους διαχειριστές, και για τους διαχειριστές να απαντήσουν σε ερωτήσεις και να υποβάλλουν ανακοινώσεις που μεταδίδονται στις ομάδες. Επιπλέον, το PC^2 υποστηρίζει διαγωνισμούς που διεξάγονται ταυτόχρονα σε πολλαπλές τοποθεσίες με την αυτόματη μετάδοση πληροφοριών των διαγωνισμών μεταξύ των χώρων και δημιουργώντας έναν ενιαίο διαγωνισμό σε έναν πίνακα αποτελεσμάτων κατάταξης σε κάθε απομακρυσμένη τοποθεσία.

Μια ευρεία ποικιλία των επιλογών ρύθμισης επιτρέπουν στον διαχειριστή του διαγωνισμού να προσαρμόζει το σύστημα σε συγκεκριμένες ενέργειες του διαγωνισμού. Για παράδειγμα, ο αριθμός των ομάδων, τα προβλήματα και οι γλώσσες του διαγωνισμού, τα σκορ, ποια προβλήματα αντιμετωπίζονται και από ποιόν διαχειριστή, αν οι ομάδες ειδοποιούνται αυτόματα για τα αποτελέσματα της υποβολής και τη συχνότητα των αυτόματων ενημερώσεων του πίνακα αποτελεσμάτων. Τπάρχουν επίσης μηχανισμοί που επεξεργάζονται την εσωτερική βάση δεδομένων των σκορ, και ανακτώνται από διάφορους τύπους μικρών και μεγάλων λαθών. Σο σύστημα έχει σχεδιαστεί για να επιτρέπει στις ομάδες να χρησιμοποιούν οποιοδήποτε εργαλείο ανάπτυξης γλώσσας το οποίο μπορεί να επιλεγεί από μια γραμμή εντολών και να παράγει ένα εκτελέσιμο αρχείο (Richmond, Bosley, & Meyers).

3.2.2 Απαιτήσεις του PC^2 Ο διαγωνισμός είναι δύο επιπέδων μεταξύ των ομάδων των μαθητών που εκπροσωπούν

ιδρύματα της τριτοβάθμιας εκπαίδευσης. Οι ομάδες αρχικά συμμετέχουν σε περιφερειακούς διαγωνισμούς που πραγματοποιούνται σε όλο τον κόσμο από τον επτέμβριο έως τον

Page 18: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 18

Ειδικά Θέματα CSCL

Νοέμβριο κάθε έτους. Η νικήτρια ομάδα από κάθε περιφερειακό διαγωνισμό πληροί τις προϋποθέσεις για να προχωρήσει στον ACM International Collegiate Programming Contest World Finals, ο οποίος κατά κανόνα πραγματοποιείται τον επόμενο Μάρτιο έως τα μέσα Απριλίου. Επιπλέον υψηλόβαθμες ομάδες μπορούν να κληθούν στο World Finals.

Κάθε ομάδα έχει έναν αρχηγό, ο οποίος συνήθως είναι μέλος ΔΕΠ του ιδρύματος και εγγράφει πλήρως τις ομάδες εντός της προθεσμίας που καθορίζεται από τους κανόνες οι οποίοι, για όλους τους περιφερειακούς διαγωνισμούς, είναι το αργότερο την προηγούμενη ημέρα από τις 7 ημέρες πριν το διαγωνισμό και τις 8 Νοεμβρίου. ύμφωνα με τους ισχύοντες κανόνες κάθε ομάδα αποτελείται από τρεις φοιτητές. Οι συμμετέχοντες πρέπει να έχουν λιγότερο από πέντε χρόνια στην πανεπιστημιακή εκπαίδευση πριν από το διαγωνισμό και κάθε φοιτητής μπορεί να συμμετέχει για ένα μόνο ίδρυμα στη διάρκεια ενός έτους του διαγωνισμού.

Κατά τη διάρκεια του διαγωνισμού, οι ομάδες έχουν 5 ώρες για να επιλύσουν 8-12 προβλήματα προγραμματισμού. Σα προβλήματα είναι διαφορετικής δυσκολίας. Προβλήματα που θα μπορούν να επιλυθούν μέσα σε μια ώρα από πρωτοετείς ή δευτεροετείς φοιτητές , προβλήματα που θα μπορούν να επιλυθούν σε μια ώρα από τριτοετείς φοιτητές, και προβλήματα που θα καθορίσουν τους νικητές . Σα προβλήματα είναι προβλήματα πραγματικής ζωής, όπως προβλήματα που αναζητούν ένα χαμένο σκάφος στη θάλασσα, κωδικοποιημένα μηνύματα ή αποκωδικοποιημένα, έξοδο από ένα λαβύρινθο, επεξεργασία δορυφορικών εικόνων, ένα πρόβλημα μαθηματικών, και ούτω καθεξής. Οφείλουν να υποβάλουν λύσεις όπως τα προγράμματα σε C, C + + ή Java. Εάν ένα πρόγραμμα αποτυγχάνει να δώσει μια σωστή απάντηση, η ομάδα μπορεί να υποβάλει ένα άλλο πρόγραμμα.

Ο νικητής είναι η ομάδα που επιλύει σωστά τα περισσότερα προβλήματα. Η κατάταξη των ομάδων καθορίζεται από το άθροισμα των χρόνων σε κάθε σημείο που υποβάλλονται σωστές λύσεις και επιπλέον 20 λεπτά για κάθε υποβολή του προβλήματος που απορρίφθηκε αλλά τελικά λύθηκε. ε σύγκριση με άλλους διαγωνισμούς προγραμματισμού (για παράδειγμα, Διεθνής Ολυμπιάδα Πληροφορικής-IOI), το PC^2 χαρακτηρίζεται από ένα μεγάλο αριθμό προβλημάτων (8 ή περισσότερα προβλήματα σε μόλις 5 ώρες). Ένα άλλο χαρακτηριστικό είναι ότι κάθε ομάδα μπορεί να χρησιμοποιήσει μόνο έναν υπολογιστή, αν και οι ομάδες έχουν τρεις μαθητές. Αυτό καθιστά την πίεση χρόνου ακόμη μεγαλύτερη. Καλή ομαδική συνεργασία και ικανότητα στην αντοχή της πίεσης είναι τα κύρια χαρακτηριστικά που χρειάζονται για να κερδίσει μια ομάδα.

3.2.3 υμπεράσματα Σο PC^2 παρέχει στους σπουδαστές την ευκαιρία να αλληλεπιδρούν με φοιτητές από

άλλα πανεπιστήμια και να αναπτύσσουν την ικανότητά τους στην επίλυση προβλημάτων προγραμματισμού, τις δεξιότητές τους και την ομαδική συνεργασία. Ο διαγωνισμός ενθαρρύνει και εστιάζει την προσοχή του κοινού για την επόμενη γενιά των επαγγελματιών πληροφορικής, δεδομένου ότι επιδιώκει την αριστεία.

ύμφωνα όμως με τις απαιτήσεις του το PC^2 είναι λογισμικό ικανό να πραγματοποιήσει διαγωνισμούς μόνο σε πραγματικό τοπικό χρόνο , αλλά δεν μπορεί να φιλοξενήσει διαγωνισμούς προγραμματισμού σε απευθείας σύνδεση. Η γλώσσα του διαγωνισμού είναι η αγγλική. Όλα τα γραπτά περιεχόμενα του διαγωνισμού είναι στα αγγλικά. Άλλες γλώσσες μπορούν να χρησιμοποιηθούν μόνο στους περιφερειακούς διαγωνισμούς. Επίσης οι φοιτητές πρέπει να είναι σε ομάδες αποκλειστικά των τριών ατόμων και να αντιπροσωπεύουν ένα πανεπιστήμιο καθώς συμμετέχουν στον διαγωνισμό ανά ίδρυμα και χώρα και ανταγωνίζονται ομάδες άλλων χωρών και πανεπιστημίων και όχι ομάδες συμφοιτητών τους στο ίδιο πανεπιστήμιο και στην ίδια χώρα στα πλαίσια ενός μαθήματος προγραμματισμού. Πρέπει αρχικά να συμμετέχουν σε περιφερειακούς διαγωνισμούς σύμφωνα με τους κανόνες του συστήματος και θα καλούνται να επιλύουν προβλήματα προγραμματισμού της επιλογής των διαχειριστών της πλατφόρμας και όχι των καθηγητών των μαθημάτων πληροφορικής. ύμφωνα με τις απαιτήσεις που πρέπει να πληρούν οι επιλεγόμενοι διαγωνιζόμενοι πρέπει ο χρόνος φοίτησής τους να είναι συγκεκριμένος και να είναι γεννημένοι σε συγκεκριμένη ημερομηνία.

υμπερασματικά η πλατφόρμα διεξαγωγής διαγωνισμών προγραμματισμού PC^2 αποτελεί μια καλή ευκαιρία για τους άριστους προγραμματιστές του κόσμου να εξασκήσουν τις προγραμματιστικές τους δεξιότητες και να ανταγωνιστούν άλλους προγραμματιστές μέσα

Page 19: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 19

Ειδικά Θέματα CSCL

από ομάδες αναπτύσσοντας τις ομαδικές τους ικανότητες. Η χρήση της συγκεκριμένης πλατφόρμας στα πλαίσια εκμάθησης προγραμματισμού σε πρωτοετείς φοιτητές ενός τμήματος πληροφορικής συγκεκριμένου πανεπιστημίου και χώρας κρίθηκε πως δεν θα συνεισφέρει αποτελεσματικά στους στόχους του μαθήματος και για τους λόγους αυτούς απορρίφθηκε.

3.3 CodeChef (http://www.codechef.com)

Εικόνα 5 Η αρχική σελίδα του CodeChef

3.3.1 Εισαγωγή στο CodeChef To CodeChef είναι μια παγκόσμια κοινότητα προγραμματισμού. Υιλοξενεί διαγωνισμούς,

σεμινάρια και εκδηλώσεις για προγραμματιστές από όλο τον κόσμο. Ο στόχος του είναι να προσφέρει μια πλατφόρμα συνάντησης για όλους τους προγραμματιστές ώστε να ανταγωνιστούν αλλά και να διασκεδάσουν. Είναι ένας μη-κερδοσκοπικός οργανισμός που ιδρύθηκε από την Directi, μια εταιρεία λογισμικού της Ινδίας με έδρα τη Βομβάη.

Σο CodeChef δεν είναι απλά μια πλατφόρμα διαγωνισμών· είναι μια κοινότητα έμπνευσης για τους προγραμματιστές. Υιλοξενεί online και μη διαγωνισμούς, υποστηρίζει όποιον θέλει να δημιουργήσει ένα Πανεπιστημιακό μάθημα στο CodeChef ή το δικό του διαγωνισμό. Διαθέτει Wiki, Forum, Blog, Facebook Group & Facebook App, Twitter stream, βοηθώντας έτσι στην ενημέρωση όλων των συμμετεχόντων. Έχει μέχρι στιγμής 25.000 μέλη και φιλοδοξεί να αποκτήσει περισσότερα.

Σο CodeChef ευελπιστεί να δημιουργήσει μια διεθνή κοινότητα που προωθεί τη μάθηση και το φιλικό ανταγωνισμό. την Ινδία συνεργάζεται με κολέγια και ομάδες για να δημιουργήσουν τοπικά CodeChefs και συναντήσεις. Επιπλέον, είναι χορηγός διαγωνισμών προγραμματισμού αλλά και ομάδων της Ινδίας.

3.3.2 Διόρθωση Προγραμμάτων Ο κώδικας των προγραμμάτων διορθώνεται αυτόματα από έναν υπολογιστή, όχι από

ανθρώπινη κρίση, και, επομένως, θα πρέπει τα προγράμματα να συντάσσονται με συγκεκριμένο τρόπο, που περιγράφεται στο FAQ for Program Setters.

Για κάθε πρόβλημα, το CodeChef έχει ένα ή περισσότερα αρχεία εισόδου, το καθένα σύμφωνα με τις προδιαγραφές που περιγράφονται στην περιγραφή του προβλήματος, και αντίστοιχα, σωστά αρχεία εξόδου. Σο CodeChef τρέχει το κάθε πρόγραμμα που υποβάλλεται με όλα τα αρχεία εισόδου, ανακατευθύνοντας την καθορισμένη ροή εισόδων σε ένα αρχείο εισόδου, και την καθορισμένη ροή εξόδου σε ένα άλλο αρχείο. Η έξοδος από το πρόγραμμα θα πρέπει να είναι ακριβώς ίδια με την καθορισμένη έξοδο, ώστε να κριθεί το πρόγραμμα «σωστό».

Κάποιες συνέπειες από τα παραπάνω είναι: Α) Αν το πρόγραμμα που υποβάλλει κάποιος ξεκινάει τυπώνοντας «Δώσε έναν αριθμό»

αλλά η εκφώνηση δεν ζητάει κάτι τέτοιο, επομένως δεν ταιριάζει με την καθορισμένη έξοδο, το πρόγραμμα δεν θα θεωρηθεί σωστό, ανεξάρτητα από το τι κάνει ο υπόλοιπος κώδικας.

Page 20: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 20

Ειδικά Θέματα CSCL

Β) Από τη στιγμή που το μόνο που μετράει είναι να συμπίπτουν οι έξοδοι, δεν έχει σημασία σε ποιο σημείο της εκτέλεσης του κώδικα είναι γραμμένη αυτή η έξοδος. Έτσι, δεν χρειάζεται να διαβαστούν όλα τα δεδομένα και μετά να εκτυπωθούν· είναι σύνηθες να εκτυπώνονται αμέσως μόλις διαβαστούν.

Γ) Αν χρησιμοποιηθεί άλλη μέθοδος για ανάγνωση των καθορισμένων δεδομένων, πχ από τη γραμμή εντολών, ανάγνωση από αρχείο, άνοιγμα ενός παραθύρου διαλόγου ή αλλιώς, τότε το πρόγραμμα δεν θα κριθεί ποτέ ως «σωστό».

3.3.3 Παροχές και απαιτήσεις του CodeChef Ένας από τους βασικούς στόχους του CodeChef είναι να ενισχύσει τη μάθηση και την

ανάπτυξη των ανθρώπων που είναι παθιασμένοι με τον προγραμματισμό μέσω του υγιούς ανταγωνισμού και του διαμοιρασμού γνώσης. Έτσι, κάθε κολέγιο, φεστιβάλ, εκδήλωση, ομάδα χρηστών, κλαμπ, εταιρεία ή πανεπιστήμιο που θέλει να κάνει ένα διαγωνισμό στο CodeChef, είναι ευπρόσδεκτο.

Σο CodeChef προσφέρει τα εξής στους διοργανωτές:

Υιλοξενεί και δημοσιεύει το διαγωνισμό στο CodeChef δωρεάν.

Ο διαγωνισμός μπορεί να δεχτεί λύσεις σε 35 γλώσσες προγραμματισμού (πχ C, C++, Java, Python κλπ).

Μοιράζει δώρα για το διαγωνισμό, όπως μπλουζάκια CodeChef, αυτοκόλλητα κλπ.

Μπορεί να σχεδιάσει banners για την αρχική σελίδα, καθώς και ξεχωριστή σελίδα για το διαγωνισμό.

Ανακοινώνει το διαγωνισμό στο newsletter του, το οποίο αποστέλλεται σε 20.000 και πάνω χρήστες.

Διαβεβαιώνει πως οι χορηγοί του διαγωνισμού θα λάβουν τη βέλτιστη ορατότητα μέσω του CodeChef.

Από την άλλη, το CodeChef έχει και ορισμένες απαιτήσεις από τους φιλόδοξους διοργανωτές. Από τη στιγμή που είναι μια μη-κερδοσκοπική πρωτοβουλία, ζητά να αναγνωρισθεί ως «Προγραμματιστικός υνεργάτης» του διαγωνισμού, και να τοποθετηθεί το λογότυπό του σε όλα τα διαφημιστικά υλικά (πχ posters, banners) στο σημείο των συνεργατών και όχι των χορηγών.

Σο CodeChef θα πρέπει να ενημερωθεί για την ημερομηνία, τη διάρκεια διεξαγωγής, τη συμμετοχή που αναμένεται στο διαγωνισμό, καθώς και για το αν πρόκειται για ανοιχτό ή κλειστό διαγωνισμό. Επίσης, οι διοργανωτές πρέπει να ενημερωθούν από προηγούμενους διαγωνισμούς για το επίπεδο των προβλημάτων, καθώς το CodeChef ζητά οι συντάκτες να αναπτύσσουν ενδιαφέροντα, προκλητικά προβλήματα που να ανταποκρίνονται στο επίπεδο δυσκολίας. Για το λόγο αυτό, ο υποψήφιος διοργανωτής θα πρέπει να επιλύσει 1 ή 2 προβλήματα που είναι διαθέσιμα στο CodeChef, αλλά και να αποστείλει 1 ή 2 εκφωνήσεις προβλημάτων ως δείγματα, για να ελεγχθούν από το CodeChef και να αποφασιστεί αν συμβαδίζουν με το επιθυμητό επίπεδο.

Ανοιχτοί Διαγωνισμοί: ε έναν δημόσιο διαγωνισμό είναι πολύ σημαντικό τα προβλήματα που τίθενται να ανταποκρίνονται στο επίπεδο δυσκολίας του CodeChef. Η διαδικασία σχεδίασης και οργάνωσης του διαγωνισμού παίρνει περίπου 3 με 5 εβδομάδες, γι‟ αυτό οι διοργανωτές πρέπει να έλθουν σε επαφή με το CodeChef το λιγότερο 2 μήνες πριν το διαγωνισμό. Αν υπάρχει ανάγκη, το CodeChef μπορεί να βοηθήσει στη συγγραφή των προβλημάτων. Ωστόσο, κάτι τέτοιο γεννάει κάποιο κόστος το οποίο πρέπει να μοιραστούν οι διοργανωτές με το CodeChef, από τη στιγμή που είναι μη-κερδοφόρα επιχείρηση.

Κλειστοί Διαγωνισμοί: Μπορεί να περιοριστεί η πρόσβαση στο διαγωνισμό με e-mail ids, για μια κλειστή ομάδα ατόμων. Ο πήχης δυσκολίας είναι πιο χαλαρός για έναν κλειστό διαγωνισμό, για παράδειγμα μιας ομάδας φοιτητών ενός κολεγίου. Σο CodeChef θ συνεισφέρει πλήρως σε όλες τις ερωτήσεις των συντακτών των προβλημάτων και δεν θα διεκδικήσει την ευθύνη για το επίπεδο του διαγωνισμού (Codechef).

3.3.4 υμπεράσματα τη διαδικασία εύρεσης κατάλληλης τεχνολογίας για τη διοργάνωση του διαγωνισμού, το

CodeChef φάνηκε ως μια πολύ καλή επιλογή. Παρόλα αυτά, τόσο τα χρονικά περιθώρια (έπρεπε να έλθουμε σε επαφή μαζί τους 2 μήνες πριν το διαγωνισμό), όσο και το γεγονός ότι ο κώδικας των προγραμμάτων πρέπει να συντάσσεται σύμφωνα με συγκεκριμένο τρόπο, ο

Page 21: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 21

Ειδικά Θέματα CSCL

οποίος πρέπει να μελετηθεί προσεκτικά από τους συμμετέχοντες, οδήγησε στην απόρριψη του CodeChef για τη συγκεκριμένη προσπάθεια.

3.4 DWITE (http://dwite.ca/)

Εικόνα 6 Η αρχική σελίδα του DWITE

3.4.1 Εισαγωγή στη DWITE Η DWITE (Do While If Then Else) είναι μια πλατφόρμα διεξαγωγής διαγωνισμών

προγραμματισμού σε απευθείας σύνδεση και ο πρωταρχικός της ρόλος είναι να προετοιμάσει τους μαθητές της δευτεροβάθμιας εκπαίδευσης στον Καναδά για διαγωνισμούς προγραμματισμού όπως ο CCC (Canadian Computing Competition) και ο ECOO (Educational Computing Organization of Ontario).

Ο CCC , είναι ένας διαγωνισμός προγραμματισμού για μαθητές της δευτεροβάθμιας εκπαίδευσης στον Καναδά και έχει ως στόχο να ωφελήσει τους μαθητές που ενδιαφέρονται για τον προγραμματισμό. Είναι μια ευκαιρία για τους μαθητές να δοκιμάσουν την ικανότητά τους στο σχεδιασμό, την κατανόηση και την εφαρμογή των αλγορίθμων. Επίσης χρησιμοποιείται για να καθορίσει τη συμμετοχή στη Διεθνή Ολυμπιάδα Πληροφορικής (IOI). Φρηματοδοτείται από το Πανεπιστήμιο του Waterloo, και πραγματοποιείται μία φορά τον χρόνο (Waterloo).

Ο ECOO είναι ένας διαγωνισμός προγραμματισμού για μαθητές της δευτεροβάθμιας εκπαίδευσης στο Οντάριο. Όλοι οι διαγωνισμοί είναι δωρεάν για φοιτητές και αποτελείται από τέσσερα προβλήματα τα οποία πρέπει να επιλυθούν μέσα σε τρεις ώρες. Κάθε ομάδα μπορεί να έχει τέσσερα μέλη το μέγιστο από το ίδιο σχολείο. Ο διαγωνισμός ECOO αποτελείται από τρία μέρη: τον Διαγωνισμό Προγραμματισμού Boardwide, τον Περιφερειακό Διαγωνισμό Προγραμματισμού και τον Τελικό Διαγωνισμό Προγραμματισμού (Sherry).

3.4.2 Απαιτήσεις της DWITE Όπως έχει προαναφερθεί ο βασικός στόχος της πλατφόρμας DWITE είναι η προετοιμασία

των μαθητών της δευτεροβάθμιας εκπαίδευσης στον Καναδά καθώς αφορά διαγωνισμούς πρακτικής. Κάθε ομάδα μπορεί να έχει έως και τέσσερις μαθητές. Οι μαθητές πρέπει να δημιουργούν τον λογαριασμό τους και την ομάδα τους τουλάχιστον 72 ώρες πριν από την ώρα έναρξης του διαγωνισμού, καθώς οι καταχωρήσεις που γίνονται μετά από αυτές τις ώρες δεν εγκρίνονται για την συμμετοχή τους στον διαγωνισμό. Οι ομάδες πρέπει να ισχύουν για κάθε διαγωνισμό μέσω του id τους.

Ο διαγωνισμός διαρκεί 3 ώρες ακριβώς, οπότε τυχόν παρατηρήσεις που υποβάλλονται μετά την λήξη του διαγωνισμού δεν αξιολογούνται. Οι μαθητές δεν πρέπει να αντιγράφουν τα προγράμματά τους , δεν πρέπει να χρησιμοποιούν έτοιμους αλγορίθμους ή κώδικες και δεν πρέπει να υπάρχει καμία επικοινωνία με μέλη που δεν ανήκουν στην ομάδα τους. Επίσης κάθε ομάδα πρέπει να χρησιμοποιεί έναν υπολογιστή, που θα είναι εγκατεστημένος με τη γλώσσα προγραμματισμού που θα χρησιμοποιήσει.

Οι γλώσσες προγραμματισμού που μπορούν να χρησιμοποιούν οι ομάδες είναι οι εξής: C, C++, Delphi, Java, Pascal, Python, Perl, Ruby, PHP, DOS Turing, Turing 3.x to 4.1, VB6, VC6, VBN. Όσον αφορά την βαθμολόγηση των υποβληθέντων προγραμμάτων, στην καλύτερη περίπτωση, επιτρέπονται 2 επιτυχημένα προγράμματα ανά πρόβλημα και το καλύτερο σκορ θα παρακάμψει το σκορ της πρώτης υποβολής. Η υποβολή βαθμολογείται με βάση ενός

Page 22: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 22

Ειδικά Θέματα CSCL

συνόλου 5 απαιτούμενων αποτελεσμάτων, το καθένα αξίζει 20 μονάδες. Δίνονται 10 βαθμοί bonus στην πρώτη υποβολή με τα 5 απαιτούμενα αποτελέσματα τα οποία είναι σωστά και δεν έχει υποβληθεί άλλη υποβολή για το θέμα (Targonski, Servos, Servos, & Zhang, 2002).

3.4.3 υμπεράσματα τη διαδικασία εύρεσης κατάλληλης τεχνολογίας για τη διοργάνωση του διαγωνισμού, το

DWITE δεν επιλέχτηκε καθώς αφορά αποκλειστικά μαθητές του Καναδά, του Οντάριο και των γύρω περιοχών του. Επίσης είναι μια πλατφόρμα που δεν υποστηρίζει την συνεργασία μεταξύ των ομάδων και απαιτεί συγκεκριμένο εξοπλισμό που θα χρησιμοποιούν οι μαθητές κατά την διάρκεια επίλυσης των προβλημάτων. Ένας ακόμα λόγος απόρριψης της συγκεκριμένης πλατφόρμας είναι ο τρόπος βαθμολόγησης και τα bonus τα οποία είναι συγκεκριμένα και δεν επιτρέπουν την αξιολόγηση των αποτελεσμάτων από καθηγητές παρά μόνο από τους διαχειριστές της πλατφόρμας.

3.5 Δημιουργία Ιστότοπου

Εικόνα 7 Σο logo της ιστοσελίδας

Η διαδικασία ανάπτυξης λογισμικού που ακολουθήσαμε ήταν η prototyping. Μετά την συλλογή απαιτήσεων, αναπτύξαμε μία πλατφόρμα-πρότυπο για να ανακτήσουμε ανατροφοδότηση από τους ενδιαφερόμενους του συστήματος (“stakeholders”) έτσι ώστε να προσθέσουμε, να αφαιρέσουμε ή και να τροποποιήσουμε κάποιες αρχικές απαιτήσεις. Για την ανάπτυξη της πλατφόρμας χρησιμοποιήσαμε την τεχνολογία Joomla 1.7. Δημιουργήσαμε τις εξής ενότητες: Διαγωνισμός, Κοινότητα συνεργασίας, Ανακοινώσεις, ύγχρονη συνομιλία. την ενότητα Διαγωνισμός ενσωματώσαμε το Codepad σαν iFrame για να δώσουμε την δυνατότητα στους διαγωνιζόμενους να ελέγχουν την ορθότητα του προγράμματος που θα καταθέσουν. την κοινότητα συνεργασίας οι μαθητές μπορούν να ανταλλάξουν απόψεις σχετικά με κάποια προβλήματα προγραμματισμού που δίδονται ως ασκήσεις πριν τον διαγωνισμό και δώσαμε την δυνατότητα ο καθένας να μπορεί να ψηφίσει το σχόλιο που κάνει κάποιος άλλος. Οι ανακοινώσεις είναι μία απλή ενότητα ανάρτησης των ασκήσεων και ανακοινώσεων σχετικά με νέους διαγωνισμούς και αποτελέσματα. Επιπλέον δώσαμε και την δυνατότητα σύγχρονης επικοινωνίας μεταξύ των χρηστών του συστήματος (chat).

To πρότυπο το ανεβάσαμε στον διακομιστή της σχόλης Pegasus αλλά παρουσιάστηκαν τεχνικές δυσκολίες καθώς η πλατφόρμα δεν είχε τους κατάλληλους υπολογιστικούς πόρους για την σωστή λειτουργία με πάνω από κάποιον μικρό αριθμό χρηστών.

3.6 CodePad (http://codepad.org/)

Εικόνα 8 Η αρχική σελίδα του Codepad

Page 23: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 23

Ειδικά Θέματα CSCL

3.6.1 Εισαγωγή στο Codepad Ο Hazel ανέπτυξε το Codepad (Hazel) το οποίο είναι ένας online compiler/interpreter

που επιτρέπει τον έλεγχο ορθότητας σε δώδεκα διαφορετικές γλώσσες. Σο Codepad βασίζεται στην λογική του paste-bin, μίας εφαρμογής του διαδικτύου που επιτρέπει το ανέβασμα αρχείων κώδικα ή κειμένου με σκοπό να διαμοιράζονται και να τα βλέπουν οι χρήστες (Piscuc, 2010).

3.6.2 Φαρακτηριστικά του Codepad Με το Codepad μπορούκε να ελέγχουμε άκεσα την ορθόηητα του κάζε προγράκματος που

έρει γραφεί σε μια από τις παρακάηω γλώζσες: C, C++, D, Haskell, Lua, OCaml, PHP, Perl, Python, Ruby, Scheme, Tcl. Σο γεγονός ότι είναι μια online πλατφόρμα, καθιστά εύθολη την

ενσωμάτωση σε κάποιο άλλο σύστημα (π.χ. σαν iframe). Σο αποτέιεσμα εκτέιεσης του προγράκματος είλαι η εκτύπωση των δεδομέλων του

προγράμματος αν αυτό είλαι συντακτικά ορθό. ε διαφορετική περίπτωση το εργαλείο επιστρέθει το είδος και το σημείν του κάζε λάζους. Επιπλένν υπάξχει η δυνατόηητα online αποθήθευσης του project και το Codepad παράγει το αντίζτοιχο URL. Ένα ακόμη χαρακτηριστικό του online εργαλείου είναι η δυνατότητα εξαγωγής του κώδικα κάθε προγράμματος στο αντίστοιχο αρχείο της γλώσσας που συγγράφεται. Ένα από τα λίγα μειονεκτήματα που έχει είναι ότι δεν υποστηρίζει την αντίθετη διαδικασία, την εισαγωγή ενός αρχείου κώδικα (Danic, Radosevic, & Orehovacki, 2011).

3.6.3 Δυνατότητες υνεργατικότητας Σο Codepad υποστηρίζει τη δυνατότητα συνεργασίας σε κάθε project και παράγει για το

καθένα ένα μικρό URL το οποίο εμφανίζεται στην σελίδα με τα προσφάτως επικολλημένα project (“Resent Pastes”) μαζί με το όνομα του κάθε χρήστη. Ο κάθε χρήστης έχει την δυνατότητα να σχολιάσει το project κάποιου άλλου είτε να «επικολλήσει» το δικό του project στο URL ενός άλλου χρήστη. Σο κάζε project μπορεί να είναι ιδιωτικό ή δημόσιο οπότε δίνεται

η δυνατότητα διεξαγωγής «κλειστών» διαγωνισμών. τα ιδιωτικά projects η ταυτότητα του κάθε χρήστη πιστοποιείται από το σύστημα. Ακόμη το κάθε project υποστηρίζει εισαγωγή σχολίων (π.χ. εκφώνηση μιας άσκησης) οπότε μπορούμε να δημιουργήσουμε projects χωρίς να έχουμε επικολλήσει κάποιο κώδικα και να εκμεταλλευτούμε την λειτουργία αυτή για διενέργεια διαδικτυακών διαγωνισμών.

3.7 Πηλέας

Εικόνα 9 Πηλέας

Σο σύστημα Πηλέας είναι η μεταφρασμένη έκδοση της εκπαιδευτικής πλατφόρμας Moodle, που χρησιμοποιείται για την οργάνωση του Προγράμματος Προπτυχιακών πουδών του τμήματος Πληροφορικής του Αριστοτέλειου Πανεπιστημίου Θεσσαλονίκης (ΑΠΘ) (ΕΛ/ΛΑΚ). Σο σύστημα αυτό υποστηρίζει και το μάθημα «Βασικές Αρχές Προγραμματισμού», του οποίου οι φοιτητές επρόκειτο να συμμετάσχουν στον 1ο δοκιμαστικό διαγωνισμό και να τον αξιολογήσουν.

Ο πρώτος λόγος για τον οποίο αποφασίστηκε η χρήση του Πηλέα για να φιλοξενήσει το σύστημα των διαγωνισμών, ήταν για να είναι η πλατφόρμα ενσωματωμένη στο χώρο διαχείρισης όλων των μαθημάτων του Σμήματος Πληροφορικής. Έτσι, αυξάνονται τα κίνητρα για επιπλέον έρευνα και επέκταση, ώστε να δημιουργηθεί ένα ολοκληρωμένο σύστημα online διαγωνισμών προγραμματισμού που θα ανήκει στο Σμήμα Πληροφορικής του ΑΠΘ.

Επιπλέον, τα χρονικά περιθώρια ήταν τέτοια που η εξοικείωση των φοιτητών με ένα εντελώς καινούργιο σύστημα θα δημιουργούσε προβλήματα στην ολοκλήρωση της έρευνας. Ο

Page 24: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 24

Ειδικά Θέματα CSCL

επιθυμητός στόχος δεν ήταν η πλατφόρμα καθεαυτή, αλλά η επιτυχής υποστήριξη του συστήματος διαγωνισμών.

Ο Πηλέας διαθέτει τα βασικά χαρακτηριστικά που χρειάζονται για ένα τέτοιο σύστημα, όπως πιστοποίηση χρηστών (οι φοιτητές ήδη διέθεταν κωδικούς εισαγωγής στον Πηλέα), διαχωρισμός καθηγητών – φοιτητών, υποβολή λύσεων και απαντήσεων, ανάρτηση τελικής κατάταξης του διαγωνισμού κ.ά.

Αυτό το οποίο δεν προσφέρει ο Πηλέας είναι η αυτόματη διόρθωση. Αυτό το κενό ήρθε να συμπληρώσει το Codepad. Από τη στιγμή που ο Πηλέας επιτρέπει την ενσωμάτωση του codepad ως i-frame, λύθηκε το σημαντικό αυτό ζήτημα για online συντακτική διόρθωση των προγραμμάτων. Οι φοιτητές θα μπορούν να το χρησιμοποιούν για να βλέπουν τα λάθη τους, αλλά και οι καθηγητές ακόμα θα μπορούν να το χρησιμοποιήσουν για να διευκολυνθούν στην εύρεση συντακτικών λαθών και έπειτα να προχωρήσουν στη σημασιολογική ορθότητα των προγραμμάτων.

Για όλους αυτούς τους λόγους, θεωρήθηκε πως η καλύτερη επιλογή σε αυτή τη φάση για να υποστηρίξει τεχνικά το σύστημα online διαγωνισμών, ήταν ο Πηλέας σε συνδυασμό με το Codepad.

3.8 υγκεντρωτικός Πίνακας τον παρακάτω πίνακα φαίνονται συγκεντρωτικά τα πλεονέκτημα και τα μειονεκτήματα

των προγραμμάτων που εξετάσθηκαν ως πιθανές λύσεις για τη διεξαγωγή του διαγωνισμού. Με αυτόν τον πίνακα φαίνεται ξεκάθαρα πως ο Πηλέας σε συνδυασμό με το Codepad συγκέντρωνε τα περισσότερα επιθυμητά χαρακτηριστικά ώστε να γίνει η τελική μας επιλογή για την τεχνολογική λύση στην ανάπτυξη της πλατφόρμας online διαγωνισμών.

Πίνακας 1 υγκεντρωτικός πίνακας χαρακτηριστικών κάθε πλατφόρμας

Πλατφόρμα

Διεξαγωγής Διαγωνισμώ

ν

Ασκήσεις

καλού επιπέδου προγραμματισμού

Αναλυτικέ

ς οδηγίες διαγωνισμ

ού

Φώρος υνεργα

σίας

υμμετοχή σε ομάδες

Bonus Βαθμολογί

ας

υχνότητ

α Διεξαγω

γής

Ασκήσεις προετοιμ

ασίας

Εύλογο χρονικό

διάστημα για

προετοιμασία

Mooshak ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΦΙ ΝΑΙ ΟΦΙ ΟΦΙ

PC^2 ΝΑΙ ΝΑΙ ΟΦΙ ΝΑΙ ΟΦΙ ΟΦΙ ΟΦΙ ΟΦΙ

CodeChef ΟΦΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΦΙ ΝΑΙ ΝΑΙ ΝΑΙ

Dwite ΟΦΙ ΝΑΙ ΟΦΙ ΝΑΙ ΝΑΙ ΟΦΙ ΟΦΙ ΟΦΙ

Δημιουργία

Ιστότοπου ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΦΙ ΝΑΙ ΝΑΙ

ΠΗΛΕΑ & Codepad ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ

Page 25: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 25

Ειδικά Θέματα CSCL

4. ΕΝΑΡΙΟ Μετά από τη συλλογή των απαιτήσεων και την έρευνα για επιλογή της πιο κατάλληλης,

υπάρχουσας τεχνολογίας, δηλαδή του Πηλέα σε συνδυασμό με το CodePad, καταλήξαμε στο σενάριο που περιγράφεται σ‟ αυτό το κεφάλαιο.

4.1 Περιγραφή Οι 1οετείς φοιτητές του μαθήματος «Βασικές Αρχές Προγραμματισμού» που θα

εγγράφονται στην πλατφόρμα ΠΗΛΕΑ και στο μάθημα «Διαγωνισμοί – ΔΙΑΓΠ», θα καλούνται να επιλύουν ασκήσεις διαφόρων γλωσσών προγραμματισμού, στα πλαίσια συμμετοχής τους σε online διαγωνισμούς. Επιπλέον, πριν από κάθε διαγωνισμό θα μπαίνουν ασκήσεις προετοιμασίας στις οποίες οι φοιτητές θα δουλεύουν συνεργατικά, μέσω της κοινής συζήτησης και επίλυσης στο φόρουμ της αντίστοιχης εργασίας προετοιμασίας. Όσοι φοιτητές συμμετάσχουν θα κερδίζουν bonus στην τελική βαθμολογία του μαθήματος «Βασικές Αρχές Προγραμματισμού».

4.2 Μαθησιακοί τόχοι

Να εμπλακούν οι φοιτητές σε δραστηριότητες προγραμματισμού.

Να βελτιώσουν τις προγραμματιστικές τους ικανότητες μέσω της συνεργατικής εξάσκησης αλλά και του συναγωνισμού.

Να καταστούν προβιβάσιμοι στο μάθημα μέσω της συμμετοχής τους και της εξάσκησής τους.

4.3 Περιπτώσεις Φρήσης και Λειτουργικές Απαιτήσεις

Περίπτωση Φρήσης 1: ύνδεση του διδάσκοντα στο σύστημα

Page 26: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 26

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 2: Ανάρτηση άσκησης προετοιμασίας από τον διδάσκοντα

Λειτουργίες:

1. Προσθήκη εκπαιδευτικού forum

γενικής χρήσης

2. Αποθήκευση εκφώνησης και άλλων

ρυθμίσεων

3. Ανακοίνωση ανάρτησης

4. Σροποποίηση/Διαγραφή

Διάγραμμα:

Page 27: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 27

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 3: Δημιουργία Διαγωνισμού από τον διδάσκοντα

Λειτουργίες:

1. Προσθήκη νέας εργασίας

2. Αποθήκευση εκφώνησης και άλλων

ρυθμίσεων

3. Προσθήκη στο ημερολόγιο

4. Ανακοίνωση στο forum

Διάγραμμα:

Page 28: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 28

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 4: Αποστολή μηνύματος από τον διδάσκοντα στους φοιτητές

Περίπωση Φρήσης 5: Τποστήριξη από το Codepad

Λειτουργίες:

Page 29: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 29

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 6: ύνδεση φοιτητή στο σύστημα (login)

Λειτουργίες:

1. Είσοδος: Ο φοιτητής πιστοποιείται από το σύστημα και εισάγεται στην πλατφόρμα.

2. Είσοδος ως επισκέπτης: Ο χρήστης μπορεί να μπει ως επισκέπτης σε ορισμένα μαθήματα του ΠΗΛΕΑ. Σο μάθημα «Διαγωνισμοί» δεν επιτρέπει την είσοδο σε επισκέπτες.

3. Ναι, βοηθήστε με να συνδεθώ: Αν υπάρχει πρόβλημα με το όνομα χρήστη ή το κωδικό

πρόσβασης, ο φοιτητής οδηγείται στην ακόλουθη οθόνη και δίνονται οδηγίες για την

ανάκτηση του κωδικού.

Περίπτωση Φρήσης 7: Ανάγνωση μηνύματος από τον φοιτητή

Page 30: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 30

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 8: υμμετοχή στο forum ειδήσεων

Περίπτωση Φρήσης 9: υμμετοχή φοιτητή στις ασκήσεις προετοιμασίας

Λειτουργίες:

1. Επιλογή της Εργασίας για ανάγνωση

της εκφώνησης

2. Ανάρτηση απάντησης

Διάγραμμα:

Page 31: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 31

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 10: υμμετοχή φοιτητή στο διαγωνισμό

Λειτουργίες:

1. Έλεγχος ανακοινώσεων

2. Κατέβασμα εκφώνησης

3. Τποβολή απάντησης (Επιλογή &

Αποστολή)

Διάγραμμα:

Page 32: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 32

Ειδικά Θέματα CSCL

Περίπτωση Φρήσης 11: Βαθμολόγηση των εργασιών από το διδάσκοντα

Λειτουργίες:

1. Κατέβασμα απαντήσεων

2. Διόρθωση προγραμμάτων 3. Βαθμολόγηση προγραμμάτων

4. Ανάρτηση βαθμών

Διάγραμμα:

Όνομα

περίπτωσης

Χρήσης

Βαθμολόγηση των υποβληθέντων

εργασιών των φοιτητών από τον

διδάσκοντα

Περιγραφή Δραστηριότητα απαραίτητη για την ανάδειξη των

καλύτερων απαντήσεων.

Χειριστές

(Actors)

Καθηγητές πληροφορικής στο μάθημα «Βασικές

Αρχές Προγραμματισμού».

Προϋποθέσεις Ο διδάσκων πιστοποιείται από το σύστημα.

Βήματα 1. Ο διδάσκων «κατεβάζει» τις υποβληθέντες

εργασίες όλων των φοιτητών στον

υπολογιστή του.

2. Ο διδάσκων ελέγχει και διορθώνει τα

προγράμματα.

3. Ο διδάσκων βαθμολογεί τις εργασίες με

άριστα το 1.

4. Ο διδάσκων ανακοινώνει τη βαθμολογία

των φοιτητών με σειρά κατάταξης από

την υψηλότερη στη χαμηλότερη.

5. Ο διδάσκων δίνει bonus (στην τελική

βαθμολογία του μαθήματος):

-από 0,5 έως 0,9 σε όσους συμμετείχαν

στο διαγωνισμό και ανάλογα με την

επίδοσή τους

-και 1 μονάδα παίρνει ο νικητής του

διαγωνισμού.

Page 33: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 33

Ειδικά Θέματα CSCL

4.4 Διάγραμμα Ροής Γεγονότων – Flow of Events

Εικόνα 10 Διάγραμμα Ροής Εργασιών στην πλατφόρμα

Page 34: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 34

Ειδικά Θέματα CSCL

5. 1Η ΕΚΔΟΗ ΣΗ ΠΛΑΣΥΟΡΜΑ – ΜΑΘΗΜΑ «ΔΙΑΓΩΝΙΜΟΙ»

το κεφάλαιο αυτό παρουσιάζουμε την πρώτη έκδοση του συστήματος που αναπτύχθηκε με χρήση του Πηλέα σε συνδυασμό με το Codepad. τις εικόνες που ακολουθούν φαίνονται οι δραστηριότητες που έλαβαν χώρα κατά τη διάρκεια του 1ου online διαγωνισμού σε γλώσσα προγραμματισμού C. Οι συμμετέχοντες ήταν φοιτητές του μαθήματος «Βασικές Αρχές Προγραμματισμού» του 1ου εξαμήνου του Σμήματος Πληροφορικής ΑΠΘ. Επίσης, τα screenshots διαχωρίζονται, με βάση την ιδιότητα του χρήστη, στη διεπαφή του φοιτητή-διαγωνιζόμενου και στη διεπαφή του καθηγητή-διαχειριστή της πλατφόρμας.

Η πρώτη οθόνη που εμφανίζεται μόλις πληκτρολογήσει κάποιος στον browser το url της πλατφόρμας (http://pileas.csd.auth.gr/login/index.php), είναι κοινή και για τους φοιτητές και για τους καθηγητές. Μόλις γίνεται η σύνδεση το σύστημα αναγνωρίζει από το username αν πρόκειται για καθηγητή ή για φοιτητή και του εμφανίζει την αντίστοιχη διεπαφή.

Εικόνα 11 ύνδεση στο σύστημα

5.1 Διεπαφή Υοιτητή την Εικόνα 12 φαίνεται η διεπαφή του φοιτητή, από την οποία έχει πρόσβαση σε όλες

τις λειτουργίες και φάσεις του διαγωνισμού.

Εικόνα 12 Διεπαφή Υοιτητή

Όπως βλέπουμε μπορεί να δει από το forum ειδήσεων όλες τις ανακοινώσεις του καθηγητή σε σχέση με το διαγωνισμό. τη δεξιά στήλη εμφανίζονται οι πιο πρόσφατες ανακοινώσεις.

Η δεύτερη επιλογή του φοιτητή είναι ο Online Compiler, δηλαδή το codepad, το οποίο είναι ενσωματωμένο και φαίνεται στην Εικόνα 13. Εδώ οι φοιτητές μπορούν να δοκιμάζουν την ορθότητα των προγραμμάτων τους, αλλά και να βλέπουν και να σχολιάζουν τις λύσεις των συμφοιτητών τους.

Page 35: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 35

Ειδικά Θέματα CSCL

Εικόνα 13 Σο codepad στον Πηλέα

Επιπλέον, ο φοιτητής μπορεί να δει τις εργασίες προετοιμασίας που καλείται να επιλύσει πριν τη διεξαγωγή του διαγωνισμού, το πρόβλημα του διαγωνισμού μόλις ανακοινωθεί, καθώς και όλες τις άλλες λειτουργίες όπως περιγράφηκε στις περιπτώσεις χρήσης στο κεφάλαιο 4 (ανάγνωση μηνυμάτων, τελική βαθμολογία κλπ).

Εικόνα 14 Οι εργασίες προετοιμασίες και το πρόβλημα του διαγωνισμού

5.2 Διεπαφή Καθηγητή την Εικόνα 15 βλέπουμε τη διεπαφή του καθηγητή μόλις εισαχθεί στο μάθημα

Διαγωνισμοί του Πηλέα. Από τη μεσαία στήλη μπορεί να διαχειριστεί όλες τις ενότητες του μαθήματος. Να προσθέσει μια νέα ανακοίνωση, εργασία προετοιμασίας, το πρόβλημα του διαγωνισμού, αλλά και να επεξεργαστεί ή να διαγράψει μια ήδη υπάρχουσα ενότητα. τη δεξιά στήλη μπορεί να αναρτήσει απευθείας ένα νέο θέμα στο forum ειδήσεων, όπου θα ενημερώνει τους φοιτητές για οποιαδήποτε δραστηριότητα, ή, ακόμα, να επισυνάπτει ένα αρχείο (π.χ. με την τελική βαθμολογία των φοιτητών στο διαγωνισμό). Γενικότερα, μπορεί να έχει πρόσβαση σε όλες τις λειτουργίες που περιγράφηκαν στις περιπτώσεις χρήσεις σχετικά με τον καθηγητή. Εικόνα 15 Διεπαφή Καθηγητή

Page 36: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 36

Ειδικά Θέματα CSCL

6. ΑΞΙΟΛΟΓΗΗ Μετά την ολοκλήρωση του 1ου διαγωνισμού, το τελευταίο βήμα που έπρεπε να γίνει ήταν

η αξιολόγηση του συστήματος. Με κάποιον τρόπο θα έπρεπε να δούμε αν τελικά το σύστημα που αναπτύχθηκε ανταποκρίθηκε στις απαιτήσεις των χρηστών και κατά πόσο ήταν χρήσιμο και εύχρηστο. Έπρεπε, με λίγα λόγια, να δούμε πώς απαντήθηκαν τα ερευνητικά ερωτήματα που τέθηκαν εξ αρχής.

Για να αποφασιστεί ο τρόπος με τον οποίο θα γίνει η αξιολόγηση, προχωρήσαμε σε μια επισκόπηση των μεθόδων αξιολόγησης, έτσι ώστε να επιλεχθεί η καταλληλότερη μέθοδος στην παρούσα εργασία. Παρακάτω γίνεται μια σύντομη αναφορά στις μεθόδους αξιολόγησης.

6.1 Μέθοδοι Αξιολόγησης Ζωτικής σημασίας για τους εκπαιδευτικούς είναι να χρησιμοποιήσουν την αξιολόγηση

τόσο για την ενημέρωση όσο και για την καθοδήγηση των μαθητών. Φρησιμοποιώντας μια ευρεία ποικιλία των εργαλείων αξιολόγησης ο εκπαιδευτικός μπορεί να καθορίσει ποιες διδακτικές στρατηγικές είναι αποτελεσματικές και ποιες πρέπει να τροποποιηθούν. Με τον τρόπο αυτόν, η αξιολόγηση μπορεί να χρησιμοποιηθεί για τη βελτίωση των πρακτικών διδασκαλίας στην τάξη, του προγράμματος σπουδών αλλά και της έρευνας του ίδιου του εκπαιδευτικού για τις πρακτικές διδασκαλίας. Σα στοιχεία αξιολόγησης πρέπει να δίνουν έμφαση στην ικανότητα του μαθητή να ερευνά, να δίνει επιστημονικές αιτιολογίες, να εφαρμόζει έννοιες της επιστήμης σε καταστάσεις του πραγματικού κόσμου και να επικοινωνούν αποτελεσματικά με το τι ο μαθητής γνωρίζει για την επιστήμη. Η αξιολόγηση επιστημονικών δεδομένων, εννοιών και θεωριών πρέπει να επικεντρώνεται όχι μόνο στη μέτρηση της γνώσης του αντικειμένου που εξετάζεται αλλά και στο πώς η γνώση εποικοδομεί την ικανότητα εφαρμογής των επιστημονικών αρχών σε καθημερινή βάση. Ο ρόλος του εκπαιδευτικού στο μεταβαλλόμενο τοπίο της αξιολόγησης απαιτεί την αλλαγή του ρόλου ενός απλού συλλέκτη δεδομένων σε έναν άνθρωπο που διευκολύνει τους μαθητές να μάθουν τις επιστημονικές αρχές (Badders, 2000).

Σα κλειδιά που βοηθάνε στην επιλογή της μεθόδου αξιολόγησης είναι τρία. Σο πρώτο κλειδί είναι να γνωρίζουμε εκ των προτέρων πώς σκοπεύουμε να χρησιμοποιήσουμε τα αποτελέσματα της αξιολόγησης. Μερικές φορές μπορούμε να τα χρησιμοποιήσουμε για να προωθήσουμε τη μάθηση και άλλες φορές για να ελέγξουμε αν έχει πραγματοποιηθεί μάθηση, δηλαδή αν έχουν επιτευχθεί οι στόχοι μας. Σο δεύτερο κλειδί αφορά την ποιότητα της μάθησης, για τον λόγο αυτό οι αξιολογήσεις πρέπει να είναι σχεδιασμένες έτσι ώστε να αντανακλούν την ποικιλία των στόχων επίτευξης η οποία στηρίζεται στα εξής πρότυπα: μάθηση του περιεχομένου της γνώσης, ικανότητα χρήσης της γνώσης, παρουσίαση των δεξιοτήτων απόδοσης και ανάπτυξης του αντικειμένου που εξετάζεται. Σο τρίτο κλειδί αφορά την αξιολόγηση της ποιότητας του αντικειμένου μέσα στην τάξη όπως πώς να σχεδιαστούν οι αξιολογήσεις έτσι ώστε να καλύπτουν τους στόχους μας και να εξυπηρετούν τους σκοπούς μας (Stiggins, Arter, Chappuis, & Chappuis, 2004).

Εικόνα 16 Διάγραμμα Αξιολόγησης

Page 37: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 37

Ειδικά Θέματα CSCL

Ο σκοπός της αξιολόγησης είναι να εξεταστούν τα σημαντικότερα στοιχεία τα οποία είναι: (Υουντουλάκη):

•Απόδοση (efficiency) – πώς εκτελούνται οι λειτουργίες με τους λιγότερους πόρους. •Αποτελεσματικότητα (effectiveness) – πόσο καλά εκτελούνται οι λειτουργίες σε σχέση με

τους στόχους. •Επιτυχία •Ικανοποίηση •Κόστος •Όφελος •Ποιότητα Παρόλο που οι παραλλαγές των μεθόδων αξιολόγησης είναι ποικίλες, οι τέσσερις βασικές

κατηγορίες μεθόδων είναι οι εξής: Επιλεγμένη απάντηση και σύντομη απάντηση(ερωτηματολόγιο): τη μέθοδο

επιλεγμένης απάντησης και σύντομης απάντησης οι μαθητές επιλέγουν τη σωστή ή τη καλύτερη απάντηση από μια λίστα απαντήσεων που παρέχεται. Η μέθοδος αυτή περιλαμβάνει ερωτήσεις πολλαπλής επιλογής, σωστού/λάθους, ταιριάσματος, σύντομης απάντησης, και συμπλήρωσης ερωτήσεων. Για όλες τις επιλέξιμες απαντήσεις αξιολόγησης, οι βαθμολογίες των μαθητών υπολογίζονται από τον αριθμό ή το ποσοστό των ερωτημάτων που έχουν απαντηθεί σωστά.

Εκτεταμένη γραπτή απάντηση: την συγκεκριμένη μέθοδο οι μαθητές πρέπει να κατασκευάσουν μια γραπτή απάντηση ως απάντηση σε μια ερώτηση και δεν διαλέγουν από μία λίστα επιλογών.

Αξιολόγηση της απόδοσης: Είναι μια μέθοδος αξιολόγησης που βασίζεται στην παρατήρηση και την κρίση ως προς την ποιότητα του αντικειμένου που εξετάζεται.

Προσωπική επικοινωνία-συνέντευξη: Η μέθοδος αξιολόγησης με προσωπική συνέντευξη έχει ως σκοπό να μάθουμε τι έχουν μάθει οι μαθητές μέσα από την αλληλεπίδραση μαζί τους. Είναι μια άτυπη συχνή διαδικασία της οποίας τα αποτελέσματα καταγράφονται για μελλοντική χρήση. Ωστόσο, όσο οι στόχοι μάθησης και τα κριτήρια αξιολόγησης της ποιότητας είναι σαφής, οι πληροφορίες μέσα από τις προσωπικές συνεντεύξεις μπορούν να χρησιμοποιηθούν για να παρέχουν στους μαθητές μια περιγραφική ανατροφοδότηση, ένα εκπαιδευτικό σχεδιασμό, αυτό-προβληματισμούς και καθορισμό στόχων.

την αξιολόγηση της διεξαγωγής online πλατφόρμας διαγωνισμού προγραμματισμού χρησιμοποιήθηκε η μέθοδος της επιλεγμένης απάντησης και σύντομης απάντησης (ερωτηματολόγιο) στην οποίο οι διαγωνιζόμενοι κλήθηκαν να απαντήσουν σε ερωτήσεις σχετικά με την δομή και την σχεδίαση της πλατφόρμας, τον έλεγχο αλληλεπίδρασης με τον χρήστη, την εμφάνιση οθόνης, την ενημέρωση και τις παρεχόμενες οδηγίες, τον τρόπο διεξαγωγής του διαγωνισμού και τον τρόπο υποβολής των απαντήσεών τους. Επίσης, τέθηκαν ερωτήματα σχετικά με το επίπεδο δυσκολίας του διαγωνισμού, κατά πόσο οδήγησε σε βελτίωση των δεξιοτήτων, αν επιτεύχθηκε η συνεργασία και σε ποιο βαθμό και τέλος για τη χρησιμότητα του codepad. κοπός των ερωτημάτων που τέθηκαν ήταν να καταλήξουμε σε συμπεράσματα που αφορούν τα ερευνητικά ερωτήματα που τέθηκαν εξ αρχής, σχετικά με το πόσο χρήσιμος είναι ένας διαγωνισμός, αν οι συμμετέχοντες αποκόμισαν κάποιο όφελος, κατά πόσο η προετοιμασία και η συνεργασία ήταν χρήσιμη και, τέλος, αν τους φάνηκε χρήσιμο και εύχρηστο το Codepad.

6.2 Ερωτηματολόγιο Αξιολόγησης ΠΡΟΓΡΑΜΜΑ ΜΕΣΑΠΣΤΦΙΑΚΩΝ ΠΟΤΔΩΝ ΣΗΝ ΠΛΗΡΟΥΟΡΙΚΗ Κατεύθυνση «Σεχνολογίες Πληροφορίας και Επικοινωνιών στην Εκπαίδευση – ΣΠΕΕ» Σμήμα Πληροφορικής Α.Π.Θ. Θεσσαλονίκη 22/01/2012

Ερωτηματολόγιο Αξιολόγησης Σο παρόν ερωτηματολόγιο διατίθεται σε όσους εγγράφηκαν στο μάθημα «Διαγωνισμοί» του ΠΗΛΕΑ και συμμετείχαν στον online διαγωνισμό προγραμματισμού σε γλώσσα C, για την αξιολόγηση του συστήματος. Παρακαλώ, συμπληρώστε σύμφωνα με την παρακάτω βαθμολογική κλίμακα και αποστείλετε με e-

Page 38: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 38

Ειδικά Θέματα CSCL

mail στο [email protected]

Βαθμολογική Κλίμακα

Δε

Γνωρίζω/

Δεν

Απαντώ

Καθόλου Λίγο Μέτρια Πολύ Πάρα πολύ

Δ 1 2 3 4 5

Απαράδεκτη Μη

ικανοποιητική Μέτρια Ικανοποιητική Πολύ καλή

Αμηνινγήζηε ηηο αθόινπζεο πξνηάζεηο ζεκεηώλνληαο Χ ζην ηεηξαγωλάθη πνπ ζαο εθθξάδεη πεξηζζόηεξν:

Δ 1 2 3 4 5

1. Ήταν σαφείς οι όροι του διαγωνισμού;

2. ας φάνηκε εύχρηστο το μενού επιλογών;

3. Πόσο εύκολη ήταν η πλοήγηση στο μάθημα;

4. Ήταν εύκολη η μετάβαση σε διαφορετικά μέρη της πλατφόρμας;

5. Η πλοήγηση στο μάθημα απαιτεί σημαντικό χρόνο προσαρμογής;

6. Τπήρχε δυνατότητα εξόδου από την πλατφόρμα από οποιοδήποτε σημείο;

7. Τπήρξε έγκαιρη ενημέρωση (με ανακοινώσεις ή e-mail) για τη

διεξαγωγή του διαγωνισμού;

8. Μπορούσατε να επικοινωνήσετε με τον διδάσκοντα για τυχόν απορίες/οδηγίες;

9. Τπήρξε έγκαιρη απάντηση για τις απορίες/οδηγίες;

10. Πώς αξιολογείτε το επίπεδο δυσκολίας της εργασίας που

επιλύσατε;

11. ας φάνηκαν χρήσιμες οι εργασίες προετοιμασίας;

12. Πώς αξιολογείτε τη δυνατότητα συνεργασίας πριν το διαγωνισμό μέσω των ασκήσεων προετοιμασίας;

13. Ήταν σαφής ο τρόπος συνεργασίας με τους συμφοιτητές σας;

14. Θα θέλατε να υπάρχουν περισσότερες δυνατότητες συνεργασίας;

15. ας βοήθησαν οι ασκήσεις προετοιμασίας στην επίλυση της άσκησης του διαγωνισμού;

16. ας φάνηκαν χρήσιμες οι ανακοινώσεις σχετικά με το διαγωνισμό;

17. Φρησιμοποιήσατε τον online compiler (codepad) για να λύσετε τις ασκήσεις;

18. ας φάνηκε χρήσιμος ο online compiler (codepad);

19. Ήταν κατανοητή η χρήση του online compiler (codepad);

20. Ήταν επαρκής ο χρόνος διεξαγωγής του διαγωνισμού;

21. Ήταν εύκολος ο τρόπος υποβολής της απάντησής σας;

22. Θα θέλατε να επαναληφθεί ο διαγωνισμός;

23. Θεωρείτε πως αποκομίσατε κάτι θετικό από τη συμμετοχή σας στο διαγωνισμό;

24. Θεωρείτε πως η συμμετοχή σας στον διαγωνισμό σας βοήθησε να αναπτύξετε τις προγραμματιστικές σας δεξιότητες;

25. Πώς αξιολογείτε σε γενικές γραμμές το μάθημα «Διαγωνισμοί»;

26. ας ενδιαφέρει να κερδίσετε το διαγωνισμό;

Παρατηρήσεις και χόλια

Page 39: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 39

Ειδικά Θέματα CSCL

6.3 Αποτελέσματα Αξιολόγησης Σα αποτελέσματα αξιολόγησης που προέκυψαν από τα ερωτηματολόγια, τα οποία

δόθηκαν στους φοιτητές που συμμετείχαν στον διαγωνισμό μέσω e-mail είναι τα εξής:

Σο μεγαλύτερο ποσοστό των φοιτητών (55.56%)

θεωρεί πως οι όροι του διαγωνισμού ήταν πολύ σαφής , ενώ το 33,3% και το 11,1% θεωρούν

ότι οι κανόνες διεξαγωγής του διαγωνισμού

ήταν ικανοποιητικά και μέτρια σαφείς

αντίστοιχα.

Σο 44,4% των διαγωνιζομένων πιστεύει ότι το

μενού επιλογών ήταν πολύ εύχρηστο για την συμμετοχή τους και την διεξαγωγή του

διαγωνισμού προγραμματισμού.

Οι περισσότεροι μαθητές (55,56%) θεωρούν ότι

η πλοήγησή τους στο μάθημα πριν και κατά την διάρκεια του διαγωνισμού ήταν

ικανοποιητική, ενώ ένα μικρό ποσοστό (11,1%)

θεωρεί ότι ήταν μέτρια η πλοήγησή του.

Σο ποσοστό των φοιτητών που μετέβαιναν

ικανοποιητικά σε διαφορετικά μέρη της πλατφόρμας ισούται με το ποσοστό εκείνων

που μετέβαιναν πολύ εύκολα στα μέρη της

πλατφόρμας (44,4%).

Page 40: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 40

Ειδικά Θέματα CSCL

Μεγάλο ποσοστό των διαγωνιζομένων (44,4%) χρειάζονταν λίγο χρόνο προσαρμογής στο

μάθημα και τις απαιτήσεις του, ενώ μικρά

είναι τα ποσοστά των διαγωνιζομένων (11,1%)

που χρειάζονταν μέτριο ή πολύ χρόνο

προσαρμογής.

Οι περισσότεροι διαγωνιζόμενοι (66,67%) θεωρούν ότι υπήρχε πολύ μεγάλη πιθανότητα

εξόδου από την πλατφόρμα σε οποιοδήποτε

σημείο και όποτε επιθυμήσουν.

ύμφωνα με τους περισσότερους διαγωνιζόμενους (55,56%), η ενημέρωση

διεξαγωγής του διαγωνισμού είτε μέσω των

ανακοινώσεων είτε μέσω e-mail ήταν

ικανοποιητική.

Σο 44,4% των φοιτητών μπορούσε πολύ καλά να επικοινωνήσει με τον διδάσκοντα για τυχόν

απορίες ή οδηγίες και το 33,3% δε γνώριζαν αν

θα μπορούσαν να επικοινωνήσουν.

Σο 44,4% των φοιτητών θεωρούν ότι υπήρξε πολύ καλή έγκαιρη ενημέρωση για τις απορίες

τους/οδηγίες. Οι περισσότεροι διαγωνιζόμενοι θεωρούν πως το επίπεδο δυσκολίας της

άσκησης που επίλυσαν ήταν μέτριο, ενώ μικρό ποσοστό αυτών (11,1%) θεωρούν την

άσκηση του διαγωνισμού πολύ δύσκολη.

Page 41: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 41

Ειδικά Θέματα CSCL

ε ένα αρκετά μεγάλο και ικανοποιητικό ποσοστό των διαγωνιζομένων (55,56%) οι

εργασίες προετοιμασίας φάνηκαν πολύ χρήσιμες. Σο 22,2 % των συμμετεχόντων θεωρούν

ότι η συνεργασία πριν τον διαγωνισμό είναι μέτρια και ικανοποιητική, ενώ το μεγαλύτερο

ποσοστό αυτών δεν γνωρίζουνε.

Σο ποσοστό των συμμετεχόντων που θεωρούν ότι ο τρόπος συνεργασίας με τους

συμφοιτητές τους ήταν πολύ σαφής είναι ίσο με το ποσοστό αυτών που δεν γνωρίζουν αν ο

τρόπος συνεργασίας ήταν σαφής, ενώ το 33,3% αυτών θέλουν να υπάρχουν περισσότερες

δυνατότητες συνεργασίας.

Οι ασκήσεις προετοιμασίας βοήθησαν ικανοποιητικά το 33,3 % των διαγωνιζομένων για να

επιλύσουν την άσκηση του διαγωνισμού. Σο μεγαλύτερο ποσοστό (66,67%) των

συμμετεχόντων θεωρούν πολύ χρήσιμες τις ανακοινώσεις σχετικά με τον διαγωνισμό.

Σο 44,4% των συμμετεχόντων χρησιμοποίησε το codepad για να λύσει τις ασκήσεις ενώ

ένα μεγάλο ποσοστό αυτών (33,3%) θεωρούν ότι δεν τους φάνηκε χρήσιμος ο online

compiler (codepad).

Page 42: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 42

Ειδικά Θέματα CSCL

Σο ποσοστό των συμμετεχόντων που κατανόησαν ικανοποιητικά και πολύ καλά την χρήση του codepad είναι ίδιο και ο χρόνος διεξαγωγής του διαγωνισμού ήταν πάρα πολύ επαρκής

σύμφωνα με το 66,67% των συμμετεχόντων.

Σο 77,78% των διαγωνιζομένων θεωρούν ότι ήταν πάρα πολύ εύκολος ο τρόπος υποβολής

της απάντησής τους και παραπάνω από τους μισούς συμμετέχοντες (55,56%) θέλουνε να επαναληφθεί ο διαγωνισμός.

Οι περισσότεροι φοιτητές θεωρούν ότι αποκομίσανε κάτι θετικό από την συμμετοχή τους

στο διαγωνισμό προγραμματισμού και το 33,3% αυτών πιστεύουν ότι η συμμετοχή τους

στον διαγωνισμό τους βοήθησε να αναπτύξουν τις προγραμματιστικές τους δεξιότητες.

Σέλος, μεγάλο ποσοστό των φοιτητών (55,56%) θεωρούν πως το μάθημα «Διαγωνισμοί» ήταν

ικανοποιητικό και το μικρότερο ποσοστό αυτών δεν τους ενδιαφέρει να κερδίσουν στον

διαγωνισμό.

6.4 υμπεράσματα ύμφωνα με τα αποτελέσματα αξιολόγησης οι συμμετέχοντες θεωρούν ότι η δομή και η

σχεδίαση της πλατφόρμας είναι πολύ καλή καθώς το μενού επιλογών τους ήταν εύχρηστο. Η αλληλεπίδρασή τους με την πλατφόρμα ήταν, επίσης, ικανοποιητική και μπορούσαν εύκολα

Page 43: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 43

Ειδικά Θέματα CSCL

να πλοηγηθούν στο μάθημα και να μεταβούν σε διαφορετικά σημεία της· γι‟ αυτόν το λόγο δεν χρειάστηκαν μεγάλο χρόνο για προσαρμογή. Αυτό σημαίνει πως η επιλογή του Πηλέα για τη φιλοξενία του διαγωνισμού ήταν επιτυχής.

Οι όροι του διαγωνισμού και οι ανακοινώσεις ήταν σαφείς και εμφανείς στην οθόνη, γι‟ αυτό ο χρόνος και ο τρόπος υποβολής των ασκήσεων κατά την διάρκεια του διαγωνισμού ήταν επιτυχείς. Όσον αφορά το επίπεδο δυσκολίας της άσκησης ήταν μέτριο και γι αυτό τον λόγο πολλοί από τους συμμετέχοντες δεν γνώριζαν αν θα μπορούσαν να επικοινωνήσουν με τον διδάσκοντα καθώς δεν χρειάστηκε, αλλά σε λίγες περιπτώσεις διευκρινιστικών απαντήσεων, οι απαντήσεις ήταν έγκαιρες.

Επίσης, εξαιτίας των εύκολων ασκήσεων προετοιμασίας και του μικρού χρονικού διαστήματος μεταξύ της ανακοίνωσης των ασκήσεων προετοιμασίας και της έναρξης του διαγωνισμού, πολλοί από τους συμμετέχοντες δεν γνώριζαν αν ήταν ικανοποιητική η δυνατότητα συνεργασίας. Αυτό συνέβη διότι ήταν ξεκάθαρες οι απαιτήσεις του προβλήματος και δεν χρειαζόταν να αναπτύξει ο καθένας τις ιδέες του ή να κάνει ερωτήσεις σχετικά με τις λύσεις του προβλήματος. Επομένως, συμπεραίνουμε πως για να υπάρξουν μεγαλύτερα κίνητρα για συνεργασία, θα πρέπει το επίπεδο δυσκολίας του διαγωνισμού να είναι αρκετά ανεβασμένο, ώστε να χρειάζονται ο ένας τη βοήθεια του άλλου. Αν ισχύει αυτό, τότε θα έχει νόημα και ο διαχωρισμός των φοιτητών σε ομάδες. Διαφορετικά, αν όλοι είναι σε θέση να λύσουν μόνοι τους το πρόβλημα, δεν υπάρχει λόγος συνεργασίας· υπάρχει μόνο ανταγωνισμός. Βλέπουμε πως υπάρχει μια αναλογική σχέση δυσκολίας του προβλήματος και συνεργασίας, ωστόσο είναι ένα σημείο που χρήζει περαιτέρω έρευνας για να διαπιστωθεί αν πράγματι ένα δυσκολότερο πρόβλημα ευνοεί τη συνεργασία των φοιτητών, στα πλαίσια πάντα ενός διαγωνισμού όπου θα υπάρξει ανακοίνωση του νικητή.

Ο χρόνος διεξαγωγής του διαγωνισμού ήταν αρκετός σύμφωνα με το επίπεδο της άσκησης και η χρήση του codepad τους φάνηκε εύκολη και ικανοποιητική, καθώς αρκετοί από τους συμμετέχοντες το χρησιμοποίησαν για να ελέγξουν τις λύσεις τους.

Οι συμμετέχοντες επιθυμούν να επαναληφθεί ο διαγωνισμός καθώς τον βρήκαν πολύ ενδιαφέρων και θεωρούν ότι αποκόμισαν θετικά αποτελέσματα για τις προγραμματιστικές τους ικανότητες χωρίς να τους ενδιαφέρει η νίκη. Αν και υπήρξε το κίνητρο του bonus στην τελική βαθμολογία του μαθήματος, φάνηκε πως οι περισσότεροι ήθελαν να συμμετάσχουν για να βελτιώσουν τις δεξιότητές τους και ίσως να επιδείξουν τις γνώσεις τους.

Παρακάτω παρατίθενται ορισμένα χαρακτηριστικά σχόλια των ερωτηθέντων στην αξιολόγηση του συστήματος:

«Σε γενικές γραμμές οι εντυπώσεις μου είναι πολύ θετικές και με χαρά θα ήθελα να

συμμετάσχω και σε μελλοντικούς διαγωνισμούς.» «Τέτοιου είδους διαγωνισμοί είναι πολύ χρήσιμοι και βοηθάνε εμάς τους νέους

προγραμματιστές να γινόμαστε καλύτεροι και να εξοικειωνόμαστε με το αντικείμενο μας. Χαίρομαι ιδιαίτερα που υπάρχουν τέτοιες πρωτοβουλίες και ελπίζω να υπάρχουν γιατί όχι και περισσότεροι διαγωνισμοί τα επόμενα χρόνια. Θα συμμετείχα πρόθυμα.»

«Ήταν ωραία η κίνηση του διαγωνισμού και θα έπρεπε να συμμετέχουν περισσότεροι

φοιτητές κατά τη γνώμη μου. Θα ήταν καλό να υπήρχε μεγαλύτερη επικοινωνία μεταξύ φοιτητών σε αυτό το θέμα και να ήταν πιο προσιτό και προσωπικό. Χρειάζονται περισσότερες ασκήσεις και πιό έξυπνες. Ήταν μετρίου επιπέδου, ιδίως για διαγωνισμό. Ο χρόνος ήταν παραπάνω από αρκετός για να λύσουμε αυτό το θέμα.»

Page 44: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 44

Ειδικά Θέματα CSCL

7. ΕΠΙΛΟΓΟ την αναφορά αυτή παρουσιάσαμε κάποιες πλατφόρμες online διαγωνισμών, συλλέξαμε

από αυτές κάποιες βασικές απαιτήσεις και στην συνέχεια αναπτύξαμε μια δικιά μας πλατφόρμα online διαγωνισμών προγραμματισμού στον Πηλέα. Φρησιμοποιήσαμε κάποιες από τις μεθόδους συλλογής απαιτήσεων που αναφέρθηκαν τόσο ανοιχτού τύπου (διάλογος με τον ειδικό) όσο και κλειστού τύπου (ερωτηματολόγια σε χρήστες του συστήματος). Αυτές τις μεθόδους τις συνδυάσαμε με την ανάπτυξη πρωτοτύπου για να πιστοποιήσουμε κατά πόσο οι αρχικές απαιτήσεις μας ήταν σωστές και με ποιον τρόπο απαντήθηκαν τα ερευνητικά θέματα που θέσαμε εξ αρχής. Σο πρωτότυπο-ιστοσελίδα που αναπτύχθηκε δεν χρησιμοποιήθηκε στην τελική πλατφόρμα όπως και προτείνεται από την μεθοδολογία αυτή. ε αντίθεση χρησιμοποιήσαμε το εργαλείο Codepad υποστηρικτικά ως έναν online compiler για τον έλεγχο ορθότητας των προγραμμάτων των διαγωνιζομένων.

την έρευνα που κάναμε βρήκαμε αρκετά εργαλεία διαδικτυακών διαγωνισμών (Mooshak, PC^2, Codechef, DWITE) τα οποία και εξηγήσαμε τους λόγους για τους οποίους απορρίφθηκαν. Μερικά συστήματα είχαν έλλειψη υποστήριξης και δυσκολία στην εγκατάσταση και ήταν απαρχαιωμένα καθώς δεν υπήρχαν νέες εκδόσεις, άλλα έθεταν περιορισμούς ατόμων, γεωγραφικούς περιορισμούς, περιορισμούς στα προβλήματα προγραμματισμού καθώς έπρεπε να εντάσσονται σε συγκεκριμένες κατηγορίες προβλημάτων και τέλος ορισμένα ήταν εμπορικές πλατφόρμες. Για τους παραπάνω λόγους καταλήξαμε στο Codepad όπου είναι μια μη εμπορική διαδικτυακή πλατφόρμα που ελέγχει την ορθότητα προγραμμάτων.

Μια από τις απαιτήσεις που συλλέξαμε από τους χρήστες ήταν η δυνατότητα συνεργασίας και επίλυσης προβλημάτων προγραμματισμού πριν από κάθε διαγωνισμό. Για το λόγο αυτό δημιουργήσαμε μια κοινότητα μάθησης και συνεργασίας στον Πηλέα και ανεβάσαμε κάποιες ασκήσεις προγραμματισμού έτσι ώστε να μπορούν οι διαγωνιζόμενοι να εξασκούνται και να συζητούν πάνω σε θέματα προγραμματισμού. Επίσης, μέσω του συστήματος δίνεται η δυνατότητα συνεργασίας ανά ομάδες, κάτι που ήταν στις αρχικές απαίτηση προς διερεύνηση.

Όσον αφορά στις απαιτήσεις των ειδικών, η πιο σημαντική είναι να φαίνονται τα σχόλια του κάθε διαγωνιζομένου για να εντοπίζεται η συνεισφορά του στην ομάδα. Αυτή η απαίτηση υλοποιήθηκε καθώς μπορούμε να δημιουργήσουμε ξεχωριστούς χώρους συνεργασίας ανά ομάδες μέσω ανάπτυξης ιδιωτικών project στο Codepad. Μια άλλη απαίτηση που υλοποιήθηκε μόνο στο πρωτότυπο ήταν να αξιολογεί ο καθένας την λύση του άλλου μέσω ψηφοφορίας μετά το πέρας του διαγωνισμού. Αυτή η απαίτηση δεν υλοποιήθηκε στην τελική πλατφόρμα καθώς υπήρχαν κάποιοι τεχνικοί περιορισμοί από τον Πηλέα.

Μια μελλοντική βελτίωση που θα μπορούσε να υλοποιηθεί στο σύστημα είναι ο έλεγχος λογοκλοπής (plagiarism) και συγκεκριμένα αντιγραφής προγραμμάτων έτσι ώστε το σύστημα να γίνει περισσότερο αυτοματοποιημένο. Παρόλα αυτά λόγω στενών χρονικών περιθωρίων, αλλά και δυσκολίας στην ανεύρεση τέτοιων λογισμικών, αυτή λειτουργία δεν υλοποιήθηκε. Ωστόσο, μετά από έρευνα βρήκαμε το εργαλείο Jplag (Kroll & Kwemou, 2005) το οποίο είναι μια μη εμπορική διαδικτυακή εφαρμογή που εντοπίζει ομοιότητες μεταξύ φυσικής γλώσσας και των γλωσσών προγραμματισμού: Java, C και C++, θέτοντας ένα κατώφλι ομοιότητας πάνω από το οποίο γίνεται αναφορά κλοπής κώδικα μεταξύ ενός συνόλου προγραμμάτων. Σο εργαλείο αυτό θα μπορούσε να ενσωματωθεί σε οποιαδήποτε διαδικτυακή πλατφόρμα διαγωνισμών.

Page 45: Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού

Δημιουργία Πλατφόρμας Διεξαγωγής Online Διαγωνισμών Προγραμματισμού 45

Ειδικά Θέματα CSCL

8. ΒΙΒΛΙΟΓΡΑΥΙΑ

Badders, W. (2000). Education Place - Methods of Assessment. Ανάκηηζη από Houghton Mifflin Company Web site: http://www.eduplace.com/science/profdev/articles/badders.html Cheang, B., Kurnia, A., Lim, A., & Oon, W.-C. Automated Grading for Programming Assignments. Singapore. Chu, V. Programming Contest Management. Project Overview. Codechef, T. (n.d.). Codechef beta. Ανάκηηζη από A Directi Educational Initiative: http://www.codechef.com/ Danic, M., Radosevic, D., & Orehovacki, T. (2011). Evaluation of Student Programming Assignments in Online Environments. Faculty of Organization and Informatics , 111-116. Forisek, M. (2006). On the Suitability of Programming Tasks for Automated Evaluation. Informatics in Education , 5 (1), 63-76. Forisek, M. Security of Programming Contest Systems. Comenius University, Department of Informatics, Bratislava. Hazel, S. (n.d.). Sauce Labs. Ανάκηηζη January 10, 2012, από Codepad: http://codepad.org/ Kroll, M., & Kwemou, E. (2005). JPlag. (G. Malpohl, & M. Cocheteau, Επιμ.) Ανάκηηζη January 9, 2012, από Detecting Software Plagiarism: https://www.ipd.uni-karlsruhe.de/jplag/ Leal, J. P., & Silva, F. (2003). Mooshak: a Web-based multi-site programming contest system. Software: Practice and Experience , 33 (6), 567-581. Piscuc, P. (2010). Integration of open source tools in Vitual Interpreter/Compiler for C and C++. Open Source Science Journal , 2 (1). Richmond, M., Bosley, D., & Meyers, P. (n.d.). An Overview of PC2, V9. Ανάκηηζη από PC2: http://www.ecs.csus.edu/pc2 Sherry, B. (n.d.). Educational Computing Organization of Ontario. Ανάκηηζη από Computer Programming Contests: http://ecoo.org/index.php?option=com_content&task=view&id=26&Itemid=57 Stiggins, R. J., Arter, J. A., Chappuis, J., & Chappuis, S. (2004). Classroom assessment for student learning: doing it right, using it well. (R. L. Marcum, Επιμ.) Portland, Oregon: Assessment Training Institute. Targonski, T., Servos, D., Servos, D., & Zhang, C. (2002, May). DWITE. Ανάκηηζη από Online Computer Programming Contest: http://dwite.ca/ Waterloo, F. (n.d.). Mathematics and Computing Contests. Ανάκηηζη από Waterloo Mathematics: http://cemc.math.uwaterloo.ca/contests/computing.html ΕΛ/ΛΑΚ. (n.d.). Ανάκηηζη 2012, από Ελληνοποίηζη Πλαηθόρμας Moodle: http://www.ellak.gr/index.php?option=com_openwiki&Itemid=103&id=ellak:greek_translation_of_moodle Τριλιανός. (n.d.). Απιστοτέληρ. Ανάκηηζη 2011, από Σύλλογος Εκπαιδεσηικών "Ο Αριζηοηέλης": http://www.dakearistotelis.gr/Greek_1.0.11/images/stories/ylliko_MMDE/ergitiki_mathisi_trilianos.pdf Φοσνηοσλάκη, Α. Μέθοδοι Αξιολόγησηρ Πληπουοπιακών Σςστημάτων. Πανεπιζηήμιο Παηρών, Τμήμα Μητανολόγων και Αερονασπηγών Μητανικών, Πάηρα.