Commit a5f2376d authored by Antonios Angelakis's avatar Antonios Angelakis

Edit first 2 chapters

parent 67ccb534
...@@ -83,8 +83,6 @@ ...@@ -83,8 +83,6 @@
publisher={Pearson Education} publisher={Pearson Education}
} }
@MastersThesis{Tsiamitros, @MastersThesis{Tsiamitros,
author={Νικόλαος Τσιαμήτρος}, author={Νικόλαος Τσιαμήτρος},
title={Σχεδίαση και Υλοποίηση Καταναμημένου Συστήματος για την Αυτόματη title={Σχεδίαση και Υλοποίηση Καταναμημένου Συστήματος για την Αυτόματη
...@@ -93,3 +91,12 @@ ...@@ -93,3 +91,12 @@
address={Ελλάδα}, address={Ελλάδα},
year={2015}, year={2015},
} }
@MastersThesis{Rozhkov,
author={Рожков М.},
title={Система автоматического тестирования программ и организации соревнований по программированию},
school={FEFU},
address={Russia},
year={2004},
}
...@@ -87,29 +87,30 @@ Software development, Free and open source software. ...@@ -87,29 +87,30 @@ Software development, Free and open source software.
Ο σκοπός της παρούσας διπλωματικής εργασίας είναι ο σχεδιασμός και η υλοποίηση Ο σκοπός της παρούσας διπλωματικής εργασίας είναι ο σχεδιασμός και η υλοποίηση
νέων δυνατοτήτων σε ένα σύστημα αυτόματης αξιολόγησης προγραμματιστικών νέων δυνατοτήτων σε ένα σύστημα αυτόματης αξιολόγησης προγραμματιστικών
ασκήσεων. Το σύστημα που τροποποιήθηκε, όπως θα περιγραφεί παρακάτω, ασκήσεων. Το σύστημα που τροποποιήθηκε χρησιμοποιείται τόσο από το Εργαστήριο
χρησιμοποιείται τόσο από το Εργαστήριο Τεχνολογίας Τεχνολογίας Λογισμικού \footnote{http://grader.softlab.ntua.gr}, για
Λογισμικού\footnote{http://grader.softlab.ntua.gr} όσο και από την Ελληνική προγραμματιστικές ασκήσεις και εξετάσεις, όσο και από την Ελληνική Εταιρεία
Εταιρεία Επιστημόνων και Επαγγελματιών Πληροφορικής και Επικοινωνιών Επιστημόνων και Επαγγελματιών Πληροφορικής και Επικοινωνιών (ΕΠΥ)
(ΕΠΥ)\footnote{http://hellenico.gr/grader} για τη διοργάνωση των Πανελλήνιων \footnote{http://hellenico.gr/grader} για τη διοργάνωση των Πανελλήνιων
Διαγωνισμών Πληροφορικής. Διαγωνισμών Πληροφορικής.
\bigskip \bigskip
Το σύστημα αυτόματης αξιολόγησης (Grader) δέχεται τις υποβολές των Το σύστημα αυτόματης αξιολόγησης (Grader) δέχεται τις υποβολές των
διαγωνιζομένων σε συγκεκριμένα προβλήματα που ανήκουν σε διαγωνισμούς, διαγωνιζομένων σε συγκεκριμένα προβλήματα που ανήκουν σε διαγωνισμούς, ώστε να
ώστε να τις χαρακτηρίσει ενεργές ή όχι, αξιολογώντας τις χαρακτηρίσει ενεργές ή όχι, αξιολογώντας το αποτέλεσμα και την απόδοση τους
το αποτέλεσμα και την απόδοση τους σε συγκεκριμένα αρχεία ελέγχου. σε συγκεκριμένα αρχεία ελέγχου. Έπειτα, αφού κλείσουν οι υποβολές,
Έπειτα, αφού κλείσουν οι υποβολές, επαναξιολογεί όλες τις ενεργές επαναξιολογεί όλες τις ενεργές υποβολές αυτόματα, ώστε να παράξει τα τελικά
υποβολές αυτόματα, ώστε να παράξει τα τελικά αποτελέσματα. αποτελέσματα.
\bigskip \bigskip
Ο Grader, στην πρότερη κατάσταση του, επέτρεπε μόνο τη δημιουργία Ο Grader, στην πρότερη κατάσταση του, επέτρεπε μόνο τη δημιουργία μεμονωμένων
μεμονωμένων αρχείων ελέγχου και όχι συνδυαστικών ομάδων καθιστώντας αρχείων ελέγχου και όχι συνδυαστικών ομάδων περιορίζοντας την ευελιξία των
δύσκολη τη δημιουργία προβλημάτων με δυαδικά αποτελέσματα, π.χ. σωστό/λάθος. διαχειριστών και μην επιτρέποντας οποιαδήποτε ομαδοποίηση ή χαρακτηρισμό των
Επιπροσθέτως, δεν υπήρχε η επιλογή για προσθήκη αρχείων ελέγχου αξιολόγησης αρχείων. Επιπροσθέτως, ήταν εμφανής η έλλειψη ενός τύπου εκτέλεσης αρχείου ελέγχου
χωρίς επιρροή στην αρχική αξιολόγηση μιας υποβολής ως θετική ή αρνητική. που να μην προκαθορίζει την αξιολόγηση μιας υποβολής ως θετική ή αρνητική ανεξάρτητα
από την έκβαση του.
\bigskip \bigskip
...@@ -117,15 +118,15 @@ Software development, Free and open source software. ...@@ -117,15 +118,15 @@ Software development, Free and open source software.
αξιολόγησης για διαγωνισμούς πληροφορικής, για να χρησιμοποιηθεί κυρίως από την αξιολόγησης για διαγωνισμούς πληροφορικής, για να χρησιμοποιηθεί κυρίως από την
ΕΠΥ. Ως αποτέλεσμα, κάθε πρόβλημα αντιστοιχίζεται σε έναν μόνο διαγωνισμό και τόσο ΕΠΥ. Ως αποτέλεσμα, κάθε πρόβλημα αντιστοιχίζεται σε έναν μόνο διαγωνισμό και τόσο
οι διαγωνιζόμενοι όσο και οι υποβολές τους συνδέονται με το πρόβλημα. Για τη χρήση οι διαγωνιζόμενοι όσο και οι υποβολές τους συνδέονται με το πρόβλημα. Για τη χρήση
του Grader σε εργασίες προγραμματισμού, θα μας ήταν προτιμότερο να υπάρχει του Grader σε εργασίες προγραμματισμού, θα μας ωφελούσε η ύπαρξη διαχωρισμού
διαχωρισμός προβλήματος και υποβολών ώστε τα προβλήματα να μπορούν να προβλήματος και υποβολών ώστε τα προβλήματα να μπορούν να επαναχρησιμοποιηθούν
επαναχρησιμοποιηθούν ευκολότερα. ευκολότερα, χωρίς να "κουβαλάνε" τις υποβολές που έχουν γίνει σε αυτά.
\bigskip \bigskip
Επιπλέον, κρίθηκε σημαντικό να προστεθεί η Python στις διαθέσιμες γλώσσες Επιπλέον, κρίθηκε σημαντικό να προστεθεί η Python στις διαθέσιμες γλώσσες
υποβολής καθώς πρόκειται για μια από τις πλέον δημοφιλείς γλώσσες και υποβολής καθώς πρόκειται για μια από τις πλέον δημοφιλείς γλώσσες και
χρησιμοποιείται ως εισαγωγική γλώσσα προγραμματισμού σε σημαντικά ακαδημαϊκά χρησιμοποιείται ως εισαγωγική γλώσσα προγραμματισμού σε σπουδαία ακαδημαϊκά
ιδρύματα, όπως είναι το MIT και το Stanford \cite{website:popularpython}. ιδρύματα, όπως είναι το MIT και το Stanford \cite{website:popularpython}.
Τέλος, ήταν απαραίτητο να γίνουν μικρές βελτιστοποιήσεις στη λογική του Grader, Τέλος, ήταν απαραίτητο να γίνουν μικρές βελτιστοποιήσεις στη λογική του Grader,
να προστεθούν μικρότερες δυνατότητες που επιδιώκουν τη βελτίωση της ευκολίας να προστεθούν μικρότερες δυνατότητες που επιδιώκουν τη βελτίωση της ευκολίας
...@@ -142,22 +143,24 @@ Software development, Free and open source software. ...@@ -142,22 +143,24 @@ Software development, Free and open source software.
\begin{itemize} \begin{itemize}
\item \textbf{Κεφάλαιο 2}: Συστήματα Αυτόματης Αξιολόγησης \\ \item \textbf{Κεφάλαιο 2}: Συστήματα Αυτόματης Αξιολόγησης \\
Παρουσιάζουμε κάποια γνωστά συστήματα αυτόματης αξιολόγησης με παρόμοια Παρουσιάζουμε κάποια γνωστά συστήματα αυτόματης αξιολόγησης με παρόμοια
λειτουργία και σκοπό όπως ο Grader. Γίνεται επίσης μια σύγκριση με τις λειτουργία και σκοπό με το Grader.
δυνατότητες του παρόντος συστήματος.
\item \textbf{Κεφάλαιο 3}: Περιγραφή Grader - Kewii \\ \item \textbf{Κεφάλαιο 3}: Περιγραφή Grader - Kewii \\
Περιγράφεται η υπάρχουσα δομή και λειτουργία του Grader, αναλύοντας τα Περιγράφονται τα βασικά δομικά στοιχεία και έννοιες του συστήματος που
διαφορετικά μέρη του και τις σχέσεις μεταξύ τους. μελετούμε. Αναλύεται το σύστημα αξιολόγησης Kewii, η διαδικτυακή
εφαρμογή Grader και η επικοινωνία μεταξύ τους.
\item \textbf{Κεφάλαιο 4}: Προσθήκη Ομάδων Αρχείων Ελέγχου \\ \item \textbf{Κεφάλαιο 4}: Προσθήκη Ομάδων Αρχείων Ελέγχου \\
Αναλύεται η σχεδιαστική λογική και η υλοποίηση της νέας δυνατότητας του Περιγράφεται αρχικά η προσθήκη του blue tag, ενός νέου τύπου εκτέλεσης
συστήματος, για ομαδοποίηση των αρχείων ελέγχου των προβλημάτων. αρχείων ελέγχου. Αναλύεται η σχεδιαστική λογική και η υλοποίηση της νέας
δυνατότητας του Grader με σκοπό την ομαδοποίηση των αρχείων ελέγχου.
\item \textbf{Κεφάλαιο 5}: Σχεδίαση για διαχωρισμό Προβλημάτων - Διαγωνισμών \\ \item \textbf{Κεφάλαιο 5}: Σχεδίαση για διαχωρισμό Προβλημάτων - Διαγωνισμών \\
Περιγράφεται η υλοποίηση της συγκεκριμένης τροποποίησης για την βελτίωση της Περιγράφεται η υλοποίηση της τροποποίησης του συστήματος για την βελτίωση
λειτουργίας του Grader στο πλαίσιο προγραμματιστικών ασκήσεων. της λειτουργίας του Grader στο πλαίσιο προγραμματιστικών ασκήσεων.
\item \textbf{Κεφάλαιο 6}: Λοιπές Προσθήκες \\ \item \textbf{Κεφάλαιο 6}: Λοιπές Προσθήκες \\
Στο συγκεκριμένο κεφάλαιο παρατίθενται βελτιώσεις και προσθήκες μικρότερου Στο συγκεκριμένο κεφάλαιο παρατίθενται βελτιώσεις και προσθήκες μικρότερου
μεγέθους. μεγέθους: Προσθήκη της Python, μαζικό ανέβασμα αρχείων/ομάδων και αλλαγή
επέκτασης MySQL.
\item \textbf{Κεφάλαιο 7}: Συμπεράσματα \\ \item \textbf{Κεφάλαιο 7}: Συμπεράσματα \\
Στο τελευταίο κεφάλαιο παρουσιάζονται κάποιες παρατηρήσεις σχετικά με τη Στο τελευταίο κεφάλαιο παρουσιάζονται παρατηρήσεις σχετικά με τη
διπλωματική και αναφέρονται ιδέες για περαιτέρω ανάπτυξη του συστήματος. διπλωματική και αναφέρονται ιδέες για περαιτέρω ανάπτυξη του συστήματος.
\end{itemize} \end{itemize}
...@@ -174,14 +177,14 @@ O Grader έχει σκοπό τη διοργάνωση προγραμματισ ...@@ -174,14 +177,14 @@ O Grader έχει σκοπό τη διοργάνωση προγραμματισ
Προτιμήθηκε να ελεγχθούν μόνο συστήματα ελεύθερου λογισμικού και ανοιχτού Προτιμήθηκε να ελεγχθούν μόνο συστήματα ελεύθερου λογισμικού και ανοιχτού
κώδικα διότι μας προσφέρουν σημαντικά πλεονεκτήματα. Αρχικά, μας επιτρέπουν να κώδικα διότι μας προσφέρουν σημαντικά πλεονεκτήματα. Αρχικά, μας επιτρέπουν να
ερευνήσουμε τον τρόπο που είναι σχεδιασμένα και να πάρουμε ιδέες για τον ερευνήσουμε τον τρόπο που είναι σχεδιασμένα και να πάρουμε ιδέες για τον
Grader. Επιπλέον, είναι πιθανό να παρέχουν καλύτερη ασφάλεια, καθώς Grader. Επιπλέον, πολλές φορές παρέχουν καλύτερη ασφάλεια, καθώς οποιοσδήποτε
οποιοσδήποτε μπορεί να ελέγξει τον κώδικα για ευπάθειες. Φυσικά, το τελευταίο μπορεί να ελέγξει τον κώδικα για ευπάθειες. Φυσικά, το τελευταίο ισχύει υπό την
ισχύει υπό την προϋπόθεση ότι υπάρχει πρωτοβουλία για έλεγχο της ασφάλειας προϋπόθεση ότι υπάρχει πρωτοβουλία για ανεξάρτητο έλεγχο της ασφάλειας (audit),
(audit), αφού η απλή δημοσιοποίηση του κώδικα μπορεί να δίνει την ψευδαίσθηση αφού η απλή δημοσιοποίηση του κώδικα μπορεί να δίνει την ψευδαίσθηση (όπως
(όπως αναφέρεται στο \cite{hansen2002open}). Τέλος, η σύγκριση του Grader με τα αναφέρεται στο \cite{hansen2002open}). Τέλος, η μελέτη των εν λόγω συστημάτων
συγκεκριμένα συστήματα έχει μεγάλη σημασία γιατί θα μπορούσε οποιοδήποτε από είναι απαραίτητη αφού, χάρη στην ελευθερία χρήσης που προσφέρουν, μπορούν να
αυτά να τον αντικαταστήσει χωρίς μεγάλο κόστος (κυρίως αυτό της μετάβασης) σε αντικαταστήσουν το Grader χωρίς μεγάλο κόστος (κυρίως αυτό της μετάβασης) σε
περίπτωση που θεωρηθεί ανώτερο. περίπτωση που κριθούν ως ανώτερα.
\bigskip \bigskip
...@@ -201,14 +204,14 @@ Grader. Επιπλέον, είναι πιθανό να παρέχουν καλύ ...@@ -201,14 +204,14 @@ Grader. Επιπλέον, είναι πιθανό να παρέχουν καλύ
\section{CMS} \section{CMS}
Το πρώτο σύστημα που θα μελετήσουμε είναι το Contest Management System, CMS εν Το πρώτο σύστημα που θα μελετήσουμε είναι το Contest Management System, CMS εν
συντομία. Πρόκειται για ένα κατανεμημένο σύστημα διαχείρισης και διεξαγωγής συντομία \footnote{https://cms-dev.github.io/}. Πρόκειται για ένα κατανεμημένο σύστημα διαχείρισης και διεξαγωγής
διαγωνισμών το οποίο σχεδιάστηκε αρχικά για την Διεθνή Ολυμπιάδα Πληροφορικής διαγωνισμών το οποίο σχεδιάστηκε αρχικά για την Διεθνή Ολυμπιάδα Πληροφορικής
του 2012. Αποτελείται από ένα πλήθος μικρο-υπηρεσιών που συνθέτουν το συνολικό του 2012. Αποτελείται από ένα πλήθος μικρο-υπηρεσιών που συνθέτουν το συνολικό
σύστημα. σύστημα.
\bigskip \bigskip
Είναι, πιθανότατα, το πιο ολοκληρωμένο σύστημα για διαγωνισμούς δεδομένου του Είναι, πιθανότατα, το πιο ολοκληρωμένο σύστημα για διαγωνισμούς, δεδομένου του
μεγάλου αριθμού διαπιστευτηρίων που κατέχει, συμπεριλαμβανομένης της χρήσης του μεγάλου αριθμού διαπιστευτηρίων που κατέχει, συμπεριλαμβανομένης της χρήσης του
σε όλες σχεδόν τις Διεθνείς Ολυμπιάδες από το 2012. Οι δημιουργοί του είχαν ως σε όλες σχεδόν τις Διεθνείς Ολυμπιάδες από το 2012. Οι δημιουργοί του είχαν ως
στόχο τη δημιουργία ενός συστήματος ασφαλούς, ανθεκτικού σε σφάλματα λογισμικού στόχο τη δημιουργία ενός συστήματος ασφαλούς, ανθεκτικού σε σφάλματα λογισμικού
...@@ -226,8 +229,8 @@ Public License), η οποία επιτρέπει εμπορική χρήση, ...@@ -226,8 +229,8 @@ Public License), η οποία επιτρέπει εμπορική χρήση,
Το CMS είναι γραμμένο σε Python και αποτελείται από πολλά μικρά κομμάτια που Το CMS είναι γραμμένο σε Python και αποτελείται από πολλά μικρά κομμάτια που
αναλαμβάνουν μια ξεχωριστή λειτουργία. Αυτά μπορούν να έχουν εγκατασταθεί σε αναλαμβάνουν μια ξεχωριστή λειτουργία. Αυτά μπορούν να έχουν εγκατασταθεί σε
διαφορετικούς εξυπηρετητές, σε απομακρυσμένα συστήματα. Οι υπηρεσίες-κομμάτια, από διαφορετικούς εξυπηρετητές, ακόμα και σε απομακρυσμένα συστήματα. Οι
τα οποία αποτελείται είναι τα παρακάτω: υπηρεσίες-κομμάτια, από τα οποία αποτελείται είναι τα παρακάτω:
\begin{itemize} \begin{itemize}
\setlength\itemsep{0em} \setlength\itemsep{0em}
...@@ -247,6 +250,7 @@ Public License), η οποία επιτρέπει εμπορική χρήση, ...@@ -247,6 +250,7 @@ Public License), η οποία επιτρέπει εμπορική χρήση,
τις βαθμολογίες. τις βαθμολογίες.
\item ProxyService \\ \item ProxyService \\
Στέλνει τις βαθμολογίες στον εξυπηρετητή Αποτελεσμάτων. Στέλνει τις βαθμολογίες στον εξυπηρετητή Αποτελεσμάτων.
(\cite{maggiolo2014cms})
\item PrintingService \\ \item PrintingService \\
Αναλαμβάνει την εκτύπωση των εγγράφων. Αναλαμβάνει την εκτύπωση των εγγράφων.
\item ContestWebServer \\ \item ContestWebServer \\
...@@ -266,8 +270,9 @@ Public License), η οποία επιτρέπει εμπορική χρήση, ...@@ -266,8 +270,9 @@ Public License), η οποία επιτρέπει εμπορική χρήση,
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[scale=0.4,trim=4 4 4 4,clip]{Figures/cmsarchitecture.png} \includegraphics[scale=0.4,trim=4 4 4 4,clip]{Figures/cmsarchitecture.png}
\caption[Η αρχιτεκτονική του CMS]{Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους. \caption[Η αρχιτεκτονική του CMS]{Οι κυριότερες υπηρεσίες του CMS και οι
Βασισμένο στο σχήμα 1 του \cite{maggiolo2012introducing}.} σχέσεις μεταξύ τους. Βασισμένο στο σχήμα 1 του
\cite{maggiolo2012introducing}.}
\end{figure} \end{figure}
\bigskip \bigskip
...@@ -285,12 +290,12 @@ EvaluationService και να εκτελεστούν στο ασφαλές πε ...@@ -285,12 +290,12 @@ EvaluationService και να εκτελεστούν στο ασφαλές πε
\bigskip \bigskip
Η βάση που χρησιμοποιεί το CMS είναι PostgreSQL και η λειτουργία του βασίζεται Η βάση που χρησιμοποιεί το CMS είναι PostgreSQL και η λειτουργία του βασίζεται
στα χαρακτηριστικά της, οπότε μόνο αυτή υποστηρίζεται. Οι γλώσσες προγραμματισμού σε αποκλειστικά χαρακτηριστικά της (LO, Large Object), οπότε μόνο αυτή
που υποστηρίζει η ευσταθής έκδοση του είναι οι: C, C++, PHP, Pascal, Java και υποστηρίζεται. Οι γλώσσες προγραμματισμού που υποστηρίζει η ευσταθής έκδοση του
Python2. Στην τελευταία έκδοση υπό ανάπτυξη (development) υποστηρίζονται επίσης είναι οι: C, C++, PHP, Pascal, Java και Python2. Στην τελευταία έκδοση υπό
C\#, Haskell, Python3 και Rust. Για την επέκταση του με παραπάνω γλώσσες αρκεί ανάπτυξη (development) υποστηρίζονται επίσης C\#, Haskell, Python3 και Rust.
η προσθήκη ενός αρχείου προδιαγραφών για κάθε νέα γλώσσα. Για την επέκταση του με παραπάνω γλώσσες αρκεί η προσθήκη ενός αρχείου
προδιαγραφών για κάθε νέα γλώσσα.
\subsection{Εγκατάσταση και Χρήση} \subsection{Εγκατάσταση και Χρήση}
...@@ -303,12 +308,12 @@ C\#, Haskell, Python3 και Rust. Για την επέκταση του με π ...@@ -303,12 +308,12 @@ C\#, Haskell, Python3 και Rust. Για την επέκταση του με π
\bigskip \bigskip
Για να τρέξει επίσης το σύστημα θα πρέπει να γίνουν οι απαραίτητες ρυθμίσεις Για να τρέξει, επίσης, το σύστημα θα πρέπει να γίνουν οι απαραίτητες ρυθμίσεις
στην βάση αλλά και στο CMS. Μόλις ολοκληρωθεί κι αυτό το βήμα, οι διαχειριστές στην βάση αλλά και στο CMS. Μόλις ολοκληρωθεί κι αυτό το βήμα, οι διαχειριστές
μπορούν να δημιουργήσουν διαγωνισμούς και προβλήματα με τρεις τρόπους: μέσω της μπορούν να δημιουργήσουν διαγωνισμούς και προβλήματα με τρεις τρόπους: μέσω της
διεπαφής Admin, κατευθείαν από το σύστημα αρχείων τους περιγράφοντας με αρχείο διεπαφής Admin, κατευθείαν από το σύστημα αρχείων τους περιγράφοντας με αρχείο
προδιαγραφών τη μορφή τους ή με απευθείας εισαγωγή προηγούμενου διαγωνισμού που προδιαγραφών τη μορφή τους ή με απευθείας εισαγωγή προηγούμενου διαγωνισμού που
εξάχθηκε. εξάχθηκε από CMS.
\bigskip \bigskip
...@@ -355,20 +360,21 @@ ContestWebServer. Εκεί βλέπουν για κάθε πρόβλημα τη ...@@ -355,20 +360,21 @@ ContestWebServer. Εκεί βλέπουν για κάθε πρόβλημα τη
\section{Mooshak 2.0} \section{Mooshak 2.0}
Το Mooshak 2.0 είναι κι αυτό ένα σύστημα διαχείρισης διαγωνισμών με αυτόματη Το Mooshak 2.0 \footnote{https://mooshak2.dcc.fc.up.pt/} είναι κι αυτό ένα
αξιολόγηση για τις υποβολές. Αποτελεί τη νεότερη υλοποίηση του Mooshak, με μεταφορά σύστημα διαχείρισης διαγωνισμών με αυτόματη αξιολόγηση για τις υποβολές.
του κώδικά από C++ και Tcl σε Java με χρήση της εργαλειοθήκης Google Web Toolkit. Αποτελεί τη νεότερη υλοποίηση του Mooshak, με μεταφορά του κώδικά από C++ και
H αρχική έκδοση του Mooshak δημιουργήθηκε το 2000 και βασίζεται σε ένα παλαιότερο Tcl σε Java με χρήση της εργαλειοθήκης Google Web Toolkit. H αρχική έκδοση του
διαδικτυακό σύστημα εκμάθησης, το Ganesh. Ο κώδικας του διατίθεται επίσης ελεύθερα Mooshak δημιουργήθηκε το 2000 και βασίζεται σε ένα παλαιότερο διαδικτυακό
με χρήση της άδειας Artistic License, η οποία δεν προϋποθέτει την διατήρηση σύστημα εκμάθησης, το Ganesh. Ο κώδικας του διατίθεται επίσης ελεύθερα με χρήση
άδειας ελεύθερου λογισμικού σε μελλοντική τροποποίηση και διανομή. της άδειας Artistic License, η οποία δεν προϋποθέτει την διατήρηση άδειας
ελεύθερου λογισμικού σε μελλοντική τροποποίηση και διανομή.
\bigskip \bigskip
Οι βασικές του προδιαγραφές βασίζονται στους κανόνες των διαγωνισμών ICPC, αλλά Οι βασικές του προδιαγραφές βασίζονται στους κανόνες των διαγωνισμών ICPC, αλλά
υποστηρίζει και άλλες μορφές διαγωνισμών, όπως είναι οι Ολυμπιάδες πληροφορικής. υποστηρίζει και άλλες μορφές διαγωνισμών, όπως είναι οι Ολυμπιάδες πληροφορικής.
Έχει χρησιμοποιηθεί σε πληθώρα τοπικών και διεθνών διαγωνισμών αλλά και σταθερά Έχει χρησιμοποιηθεί σε πληθώρα τοπικών και διεθνών διαγωνισμών αλλά και σταθερά
στο πλαίσιο εκμάθησης και αξιολόγησης φοιτητών. στο πλαίσιο εκμάθησης και αξιολόγησης φοιτητών (\cite{leal2008using}).
\subsection{Τεχνικά Χαρακτηριστικά} \subsection{Τεχνικά Χαρακτηριστικά}
...@@ -395,7 +401,7 @@ H αρχική έκδοση του Mooshak δημιουργήθηκε το 2000 ...@@ -395,7 +401,7 @@ H αρχική έκδοση του Mooshak δημιουργήθηκε το 2000
στην αποθήκευση όλων των δεδομένων του στο σύστημα αρχείων. Οι γλώσσες στην αποθήκευση όλων των δεδομένων του στο σύστημα αρχείων. Οι γλώσσες
προγραμματισμού που υποστηρίζει περιλαμβάνουν τις C, C++, Java, Pascal, Perl, προγραμματισμού που υποστηρίζει περιλαμβάνουν τις C, C++, Java, Pascal, Perl,
Python, Haskell, Haskell και Prolog, ενώ η επέκταση του ώστε να υποστηρίξει Python, Haskell, Haskell και Prolog, ενώ η επέκταση του ώστε να υποστηρίξει
πρόσθετες γλώσσες δεν αποτελεί δύσκολη διαδικασία. πρόσθετες γλώσσες δεν αποτελεί δύσκολη διαδικασία (\cite{ribeiro2008early}).
\bigskip \bigskip
...@@ -406,15 +412,15 @@ Python, Haskell, Haskell και Prolog, ενώ η επέκταση του ώστ ...@@ -406,15 +412,15 @@ Python, Haskell, Haskell και Prolog, ενώ η επέκταση του ώστ
λειτουργίας στατικής ανάλυσης του πηγαίου κώδικα της υποβολής και αξιολόγησης λειτουργίας στατικής ανάλυσης του πηγαίου κώδικα της υποβολής και αξιολόγησης
του με χρήση κριτηρίων ορισμένων από τους διαχειριστές του διαγωνισμού. Αυτό του με χρήση κριτηρίων ορισμένων από τους διαχειριστές του διαγωνισμού. Αυτό
επιτρέπει τη χρήση του Mooshak, παραδείγματος χάρη για ένα διαγωνισμό τύπου επιτρέπει τη χρήση του Mooshak, παραδείγματος χάρη για ένα διαγωνισμό τύπου
code golf, δηλαδή επίτευξης της λύσης με το λιγότερο κώδικα. code golf, δηλαδή επίτευξης της λύσης με το λιγότερο δυνατό κώδικα.
\subsection{Εγκατάσταση και Χρήση} \subsection{Εγκατάσταση και Χρήση}
Η εγκατάσταση του Mooshak 2 δεν έχει πολλές απαιτήσεις. Συγκεκριμένα, Η εγκατάσταση του Mooshak 2 δεν έχει πολλές απαιτήσεις. Συγκεκριμένα,
χρειάζεται μόνο το περιβάλλον της Java και το λογισμικό του εξυπηρετητή. Σε χρειάζεται μόνο το περιβάλλον της Java και το λογισμικό του εξυπηρετητή. Μόλις
αυτό το σημείο, μπορούν να στηθούν επίσης επιπλέον κόμβοι εάν είναι επιθυμητό, γίνει αυτό, μπορούν να στηθούν επίσης επιπλέον κόμβοι εάν είναι επιθυμητό,
τοπικά ή απομακρυσμένα. Μόλις στηθεί το σύστημα, η δημιουργία των διαγωνισμών τοπικά ή απομακρυσμένα. Η δημιουργία των διαγωνισμών και των προβλημάτων
και των προβλημάτων γίνεται μέσω της δικτυακής διεπαφής του Διαχειριστή. γίνεται μέσω της δικτυακής διεπαφής του Διαχειριστή.
\bigskip \bigskip
...@@ -450,9 +456,10 @@ code golf, δηλαδή επίτευξης της λύσης με το λιγό ...@@ -450,9 +456,10 @@ code golf, δηλαδή επίτευξης της λύσης με το λιγό
\section{CATS} \section{CATS}
To CATS είναι το τρίτο σύστημα που θα αναλυθεί. Αφορά και αυτό τη διεξαγωγή και To CATS \footnote{imcs.dvfu.ru/cats?lang=en} είναι το τρίτο σύστημα που θα
τον έλεγχο προγραμματιστικών διαγωνισμών και συντηρείται από τον Alexander Klenin αναλυθεί. Αφορά και αυτό τη διεξαγωγή και τον έλεγχο προγραμματιστικών
του Far Eastern Federal University. Χρησιμοποιείται τόσο για μεγάλες διοργανώσεις, διαγωνισμών και συντηρείται από τον Alexander Klenin του Far Eastern Federal
University (\cite{Rozhkov}). Χρησιμοποιείται τόσο για μεγάλες διοργανώσεις,
όπως είναι το ICPC Ρωσίας και Άπω Ανατολής, καθώς και για πλήθος ακαδημαϊκών όπως είναι το ICPC Ρωσίας και Άπω Ανατολής, καθώς και για πλήθος ακαδημαϊκών
μαθημάτων και διαγωνισμών. Κατέχει άδεια GPL 2.0 επιτρέποντας την ελεύθερη μαθημάτων και διαγωνισμών. Κατέχει άδεια GPL 2.0 επιτρέποντας την ελεύθερη
χρήση, τροποποίηση και διανομή του. χρήση, τροποποίηση και διανομή του.
...@@ -501,8 +508,6 @@ CATS. Το CATS δημιουργεί την οθόνη του προβλήματ ...@@ -501,8 +508,6 @@ CATS. Το CATS δημιουργεί την οθόνη του προβλήματ
Οι γλώσσες προγραμματισμού που υποστηρίζονται είναι οι C, C++, delphi, VB, Java, Οι γλώσσες προγραμματισμού που υποστηρίζονται είναι οι C, C++, delphi, VB, Java,
C\#, Perl, Python, Ruby, PHP, Erlang, Javascript και SQL. C\#, Perl, Python, Ruby, PHP, Erlang, Javascript και SQL.
%TODO mipws valw kai ta site twn sistimatwn
%TODO paper rozhkov
\subsection{Εγκατάσταση και Χρήση} \subsection{Εγκατάσταση και Χρήση}
Η εγκατάσταση του CATS είναι αρκετά εύκολη, καθώς έχει πολύ λίγες εξαρτήσεις Η εγκατάσταση του CATS είναι αρκετά εύκολη, καθώς έχει πολύ λίγες εξαρτήσεις
...@@ -514,9 +519,9 @@ C\#, Perl, Python, Ruby, PHP, Erlang, Javascript και SQL. ...@@ -514,9 +519,9 @@ C\#, Perl, Python, Ruby, PHP, Erlang, Javascript και SQL.
Η διαδικασία εμφάνισης των ορισμών των προβλημάτων, υποβολής των λύσεων και Η διαδικασία εμφάνισης των ορισμών των προβλημάτων, υποβολής των λύσεων και
διαχείρισης των διαγωνισμών από τους διαχειριστές είναι παρόμοια με τα προηγούμενα διαχείρισης των διαγωνισμών από τους διαχειριστές είναι παρόμοια με τα προηγούμενα
συστήματα και παρουσιάζεται με φωτογραφίες παρακάτω. Είναι ενδιαφέρουσα και χρήσιμη συστήματα και παρουσιάζεται με φωτογραφίες παρακάτω. Άξια αναφοράς είναι
η δυνατότητα του CATS για διαχείριση διαγωνισμών, αξιολόγηση και παρουσίαση των η δυνατότητα του CATS για διαχείριση διαγωνισμών, αξιολόγηση και παρουσίαση των
αποτελεσμάτων απ᾽ευθείας μέσω της γραμμής εντολών μέσω του API που προσφέρεται. αποτελεσμάτων απ᾽ευθείας μέσω της γραμμής εντολών μέσω ενός API που προσφέρεται.
\FloatBarrier \FloatBarrier
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment