Δημιουργία συστήματος "Online Judge" για την αυτόματη αξιολόγηση προγραμματιστικών ασκήσεων
Abstract
Κυριότερος στόχος του συστήματος που αναπτύχθηκε ήταν να προσφέρει αυτάρκεια στους καθηγητές και μαθητές που ασχολούνται με την Ολυμπιάδα Πληροφορικής όσο αφορά την προετοιμασία τους. Το σύστημα προσφέρει τη δυνατότητα στους καθηγητές να ανεβάσουν ασκήσεις, οι οποίες μπορούν να λυθούν από τους μαθητές και να αξιολογηθούν αυτόματα από το σύστημα. Επίσης έχουν δημιουργηθεί ασκήσεις με τα κατάλληλα test cases που θα βοηθήσουν τους μαθητές να καταλάβουν βασικές αλγοριθμικές τακτικές και μεθοδολογίες. Το σύστημα οργανώνει τις ασκήσεις με βάση τη θεματολογία καθώς και με βάση το επίπεδο δυσκολίας τους. Επιπλέον για κάθε θεματολογία αναπτύχθηκε σχετική θεωρία ώστε οι μαθητές να έχουν συγκεντρωμένο υλικό το οποίο θα πρέπει να διαβάσουν. Τόσο οι ασκήσεις όσο και η θεωρία θα μπορεί να εμπλουτίζεται αλλά και να διορθώνεται από τους καθηγητές. Στο σημείο αυτό θα ήθελα να τονίσω τη μεγάλη σημασία που έχει η σωστή επιλογή των test cases για κάθε άσκηση, ώστε να καλύπτονται όλες οι πιθανές περιπτώσεις. Πριν προχωρήσουμε στην ανάπτυξη του συστήματος έγινε επισκόπηση παρόμοιων συστημάτων και μελετήσαμε τις απόψεις διοργανωτών, καθηγητών και μαθητών που εμπλέκονται στις ολυμπιάδας πληροφορικής, τόσο στην Κύπρο όσο και στο εξωτερικό. Η δημιουργία του συστήματος ήταν μεγάλη πρόκληση τόσο σχεδιαστικά όσο και προγραμματιστικά. Η μεθοδολογία που ακολουθήθηκε ήταν η ακόλουθη:
Προκαταρτική έρευνα. Εξακριβώθηκε η αναγκαιότητα του συστήματος.
Εξακρίβωση των αναγκών και καθορισμός των απαιτήσεων. Έγινε με συνεντεύξεις, ερωτηματολόγια και μελέτη υπαρχόντων συστημάτων.
Καταγραφή των προδιαγραφών. Έγινε μια τυποποιημένη καταγραφή των προδιαγραφών του συστήματος
Σχεδιασμός του συστήματος. Η φάση αυτή περιλάμβανε τη σχεδίαση της βάσης δεδομένων, του interface και της αρχιτεκτονικής του συστήματος
Υλοποίηση. Στην υλοποίηση εφαρμόσαμε όσα σχεδιάστηκαν στην προηγούμενη φάση έχοντας πάντα υπόψη τις προδιαγραφές που θέσαμε.
Έλεγχος. Ετοιμάστηκε ένας κατάλογος ελέγχων που θα πρέπει να περάσει το σύστημα.