Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
softlab-thesis
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Antonios Angelakis
softlab-thesis
Commits
a5f2376d
Commit
a5f2376d
authored
Mar 16, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Edit first 2 chapters
parent
67ccb534
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
86 additions
and
74 deletions
+86
-74
thesis.bib
thesis.bib
+9
-2
thesis.tex
thesis.tex
+77
-72
No files found.
thesis.bib
View file @
a5f2376d
...
@@ -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},
}
thesis.tex
View file @
a5f2376d
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment