Commit 672c4998 authored by Antonios Angelakis's avatar Antonios Angelakis

More writing in chapter 4

parent e2fad9dd
...@@ -274,9 +274,9 @@ MIT και το Stanford (TODO citation needed). Τέλος, ήταν απαρα ...@@ -274,9 +274,9 @@ MIT και το Stanford (TODO citation needed). Τέλος, ήταν απαρα
\section{Στοιχεία και έννοιες του συστήματος} \section{Στοιχεία και έννοιες του συστήματος}
Στην ενότητα αυτή θα περιγραφούν συνοπτικά τα συστατικά στοιχεία του συστήματος Στην ενότητα αυτή θα περιγραφούν συνοπτικά τα συστατικά στοιχεία του συστήματος
μας. Η γνώση τους είναι απαραίτητη για να γίνει αντιληπτός ο διαχωρισμός μεταξύ μας. Η γνώση τους είναι απαραίτητη για να γίνει αντιληπτός ο διαχωρισμός μεταξύ
Kewii και Grader, δηλαδή backend και frontend. Kewii και Grader, δηλαδή backend και frontend.
\subsection{Προβλήματα} \subsection{Προβλήματα}
...@@ -289,30 +289,84 @@ Kewii και Grader, δηλαδή backend και frontend. ...@@ -289,30 +289,84 @@ Kewii και Grader, δηλαδή backend και frontend.
του είναι το άθροισμα των επιδόσεων του στα προβλήματα του διαγωνισμού. Η του είναι το άθροισμα των επιδόσεων του στα προβλήματα του διαγωνισμού. Η
αρχική σχεδίαση του συστήματος είχε ως στόχο τη χρήση αυτού σε διαγωνισμούς αρχική σχεδίαση του συστήματος είχε ως στόχο τη χρήση αυτού σε διαγωνισμούς
πληροφορικής, οπότε τα προβλήματα είναι συνδεδεμένα στενά τόσο με τον πληροφορικής, οπότε τα προβλήματα είναι συνδεδεμένα στενά τόσο με τον
διαγωνισμό που ανήκουν όσο και με τις υποβολές που έχουν γίνει σε αυτά. Κάθε διαγωνισμό που ανήκουν όσο και με τις υποβολές που έχουν γίνει σε αυτά. Κάθε
πρόβλημα μπορεί να ανήκει μόνο σε ένα διαγωνισμό. πρόβλημα μπορεί να ανήκει μόνο σε ένα διαγωνισμό.
\bigskip
Σε επόμενο κεφάλαιο θα διερευνηθεί και θα περιγραφεί η υλοποίηση ενός εναλλακτικού
σχεδιασμού που επιτρέπει την χρήση των προβλημάτων σε διάφορους διαγωνισμούς και
την αλλαγή της σύνδεσης των υποβολών από το πρόβλημα προς τους διαγωνισμούς.
\subsection{Διαγωνισμοί} \subsection{Διαγωνισμοί}
Οι διαγωνισμοί αντιστοιχούν σε πραγματικούς διαγωνισμούς, εξετάσεις ή σειρές Οι διαγωνισμοί αντιστοιχούν σε πραγματικούς διαγωνισμούς, εξετάσεις ή σειρές
ασκήσεων. Εμπεριέχουν προβλήματα και είναι ενεργοί/ορατοί σε ένα χρονικό διάστημα ασκήσεων. Εμπεριέχουν προβλήματα και είναι ενεργοί/ορατοί σε ένα χρονικό διάστημα
όπου οι διαγωνιζόμενοι μπορούν να υποβάλλουν τις λύσεις τους. Μόλις, ολοκληρωθεί η όπου οι διαγωνιζόμενοι μπορούν να υποβάλλουν τις λύσεις τους. Μόλις ολοκληρωθεί η
διεξαγωγή τους, ο διαχειριστής μπορεί να εκκινήσει την τελική αξιολόγηση, κατά την διεξαγωγή τους, ο διαχειριστής μπορεί να εκκινήσει την τελική αξιολόγηση, κατά την
οποία βαθμολογούνται οι ενεργές υποβολές των διαγωνιζόμενων σε όλα τα προβλήματα του οποία βαθμολογούνται οι ενεργές υποβολές των διαγωνιζόμενων σε όλα τα προβλήματα του
διαγωνισμού. Μόνο επιλεγμένοι χρήστες μπορούν να έχουν πρόσβαση και δικαίωμα διαγωνισμού. Οι διαγωνισμοί μπορούν να είναι ορατοί μόνο από επιλεγμένους χρήστες ή από όλους.
συμμετοχής στους διαγωνισμούς.
\subsection{Αρχεία Ελέγχου} \subsection{Αρχεία Ελέγχου}
Τα αρχεία ελέγχου είναι ζευγάρια αρχείων εισόδου και εξόδου και ανήκουν σε Τα αρχεία ελέγχου είναι ζευγάρια αρχείων εισόδου και εξόδου και ανήκουν σε
προβλήματα. προβλήματα. Μια σωστή υποβολή/λύση θα πρέπει για κάθε αρχείο εισόδου
που δέχεται, να παράγει έξοδο ίδια με αυτή του αντίστοιχου αρχείο εξόδου.
Κάθε αρχείο ελέγχου χαρακτηρίζεται από τον τύπο του, αναφορικά με το πότε
εκτελείται και αν είναι ορατό στους χρήστες. Οι τύποι εκτέλεσης αντιστοιχούν
σε χρώματα. Αυτά είναι τα παρακάτω:
\begin{itemize}
\item \textit{Πορτοκαλί} TODO μηπως φωτο εδω; \\
Το αρχείο ελέγχου χρησιμοποιείται σε κάθε υποβολή για το συγκεκριμένο πρόβλημα
αλλά δεν είναι ορατό στους χρήστες.
\item \textit{Κίτρινο} \\
Το αρχείο ελέγχου χρησιμοποιείται σε κάθε υποβολή για το συγκεκριμένο πρόβλημα
και είναι ορατό στους χρήστες.
\item \textit{Πράσινο} \\
Το αρχείο ελέγχου χρησιμοποιείται μόνο κατά την τελική αξιολόγηση.
\item \textit{Μωβ} \\
Το αρχείο ελέγχου δεν χρησιμοποιείται.
\end{itemize}
Σε επόμενο κεφάλαιο θα δημιουργηθεί άλλος ένας τύπος εκτέλεσης. Επιπλέον, θα
αλλάξει ριζικά ο τρόπος αξιολόγησης καθώς θα εισαχθεί η έννοια των ομάδων
αρχείων ελέγχου και τα αρχεία θα έχουν νόημα μόνο μέσα σε αυτές.
\subsection{Χρήστες/Διαγωνιζόμενοι} \subsection{Χρήστες/Διαγωνιζόμενοι}
Οι χρήστες ή διαγωνιζόμενοι είναι τα άτομα που αλληλεπιδρούν με το σύστημα με σκοπό
την υποβολή λύσεων στους διαγωνισμούς που συμμετέχουν. Οι διαχειριστές αποτελούν
κι αυτοί χρήστες, με τη διαφορά ότι έχουν δικαίωμα πρόσβασης στις σελίδες διαχείρισης
διαγωνισμών και προβλημάτων. Οι τελευταίοι έχουν επίσης δικαίωμα να εισάγουν νέους
χρήστες από ένα αρχείο, να ορίσουν την ορατότητα των διαγωνισμών για συγκεκριμένους
διαγωνιζόμενους και να απαντήσουν σε μηνύματα αυτών.
\subsection{Υποβολές} \subsection{Υποβολές}
Η υποβολή μιας λύσης εμπεριέχει το "ανέβασμα" του κώδικα του διαγωνιζόμενου για
να γίνει η μεταγλώττιση του στον εξυπηρετητή, να εκτελεστεί από τον Kewii για
κάθε αρχείο ελέγχου που αντιστοιχεί στο είδος της υποβολής και να αξιολογηθεί η
ορθότητα της εξόδου. Οι υποβολές χωρίζονται σε δύο κύριες κατηγορίες, την
κανονική και την τελική. Ουσιαστικά, όλες οι υποβολές των διαγωνιζόμενων είναι
κανονικές και εφόσον υπάρχει, για έναν διαγωνιζόμενο, τουλάχιστον μία υποβολή
που περνάει όλα τα αρχεία ελέγχου στα οποία αξιολογήθηκε, αυτή θεωρείται ενεργή
για αυτόν. Όταν ολοκληρωθεί η περίοδος ανοιχτών υποβολών ενός διαγωνισμού, όλες
οι ενεργές υποβολές για κάθε πρόβλημα του διαγωνισμού επαναυποβάλλονται για την
τελική αξιολόγηση τους.
\subsection{Προγράμματα Αξιολόγησης} \subsection{Προγράμματα Αξιολόγησης}
Οι υποβολές σε κάθε πρόβλημα αξιολογούνται με σύγκριση της εξόδου του υποβληθέντος
προγράμματος με αυτήν του αρχείου ελέγχου για την αντίστοιχη είσοδο. Εξαίρεση σε
αυτό τον τρόπο αξιολόγησης, αποτελούν τα προβλήματα που διαθέτουν το δικό τους
πρόγραμμα αξιολόγησης το οποίο αναλαμβάνει να συγκρίνει την αναμενόμενη έξοδο
με αυτήν που παρήγαγε το υποβληθέν πρόγραμμα και να βαθμολογήσει αυτή την έξοδο
στην κλίμακα [0, 1]. Το πρόγραμμα αξιολόγησης είναι και αυτό αποθηκευμένο στον
εξυπηρετητή και μεταγλωττίζεται και εκτελείται από τον Kewii.
\section{Σύστημα αξιολόγησης Kewii} \section{Σύστημα αξιολόγησης Kewii}
Ο Kewii είναι μια εφαρμογή γραμμένη σε γλώσσα C και τρέχει στον εξυπηρετητή Ο Kewii είναι μια εφαρμογή γραμμένη σε γλώσσα C και τρέχει στον εξυπηρετητή
...@@ -367,28 +421,48 @@ Kewii και Grader, δηλαδή backend και frontend. ...@@ -367,28 +421,48 @@ Kewii και Grader, δηλαδή backend και frontend.
(TODO σχημα εδώ) (TODO σχημα εδώ)
\bigskip Γενικά, ο Kewii περιορίζεται στις έννοιες των προβλημάτων και των υποβολών \bigskip
αγνοώντας
Γενικά, ο Kewii περιορίζεται στο να δέχεται υποβολές για συγκεκριμένα προβλήματα
με συγκεκριμένα αρχεία ελέγχου (και σε μερικές περιπτώσεις συγκεκριμένο πρόγραμμα
αξιολόγησης). Αξιολογεί την κάθε υποβολή με 0 - λάθος και 1 - σωστό για κάθε αρχείο
ή αναθέτει την αξιολόγηση στο αρμόδιο πρόγραμμα που θα επιστρέψει μια τιμή ανάμεσα
στα 0 και 1. Τότε οι "ευθύνες" του τελειώνουν, δηλαδή δεν ασχολείται με την συνολική
αξιολόγηση των διαγωνισμών και των προβλημάτων και ποια υποβολή θεωρείται ενεργή,
ούτε με το ποια αρχεία ελέγχου θα επιλεγούν κατά την υποβολή. Τα παραπάνω κρίνονται
σημαντικά γιατί θα μας επιτρέψουν να επανασχεδιάσουμε τον αλγόριθμο της υποβολής,
δημιουργώντας ομάδες αρχείων ελέγχου, όπως και άλλα κομμάτια του Grader χωρίς να
χρειαστεί να τροποποιήσουμε τον Kewii.
\section{Διαδικτυακή εφαρμογή Grader} \section{Διαδικτυακή εφαρμογή Grader}
Ο Grader είναι μια web εφαρμογή υλοποιημένη σε PHP και HTML/CSS/JS, η οποία αποτελεί
το frontend και μέρος του backend του συστήματος μας. Ως frontend εφαρμογή
αναλαμβάνει να παρουσιάσει σε διαγωνιζόμενους και διαχειριστές τις σελίδες
διαχείρισης, υποβολών και αποτελεσμάτων, ενώ ως backend αναλαμβάνει την υλοποίηση της
λογικής του συστήματος, των διάφορων αλγορίθμων και ροών και την επικοινωνία με τη
βάση δεδομένων και τον Kewii.
\chapter{Προσθήκη Ομάδων Αρχείων Ελέγχου} \chapter{Προσθήκη Ομάδων Αρχείων Ελέγχου}
\chapter{Σχεδίαση για διαχωρισμό Προβλημάτων - Διαγωνισμών} \chapter{Σχεδίαση για διαχωρισμό Προβλημάτων - Διαγωνισμών}
\chapter{Λοιπές Προσθήκες} \chapter{Λοιπές Προσθήκες}
\section{Προσθήκη γλώσσας προγραμματισμού Python} \section{Προσθήκη γλώσσας προγραμματισμού Python}
\section{Προσθήκη blue tag για μη απαραίτητα αρχεία ελέγχου} \section{Προσθήκη blue tag για μη απαραίτητα αρχεία ελέγχου}
\chapter{Συμπεράσματα} \chapter{Συμπεράσματα}
\section{Καταληκτικές Παρατηρήσεις} \section{Καταληκτικές Παρατηρήσεις}
\section{Μελλοντική Έρευνα} \section{Μελλοντική Έρευνα}
%%% Bibliography %%% Bibliography
\bibliographystyle{softlab-thesis} \bibliographystyle{softlab-thesis}
......
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