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
672c4998
Commit
672c4998
authored
Feb 11, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More writing in chapter 4
parent
e2fad9dd
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
88 additions
and
14 deletions
+88
-14
test.tex
test.tex
+88
-14
No files found.
test.tex
View file @
672c4998
...
...
@@ -292,27 +292,81 @@ Kewii και Grader, δηλαδή backend και frontend.
διαγωνισμό που ανήκουν όσο και με τις υποβολές που έχουν γίνει σε αυτά. Κάθε
πρόβλημα μπορεί να ανήκει μόνο σε ένα διαγωνισμό.
\bigskip
Σε επόμενο κεφάλαιο θα διερευνηθεί και θα περιγραφεί η υλοποίηση ενός εναλλακτικού
σχεδιασμού που επιτρέπει την χρήση των προβλημάτων σε διάφορους διαγωνισμούς και
την αλλαγή της σύνδεσης των υποβολών από το πρόβλημα προς τους διαγωνισμούς.
\subsection
{
Διαγωνισμοί
}
Οι διαγωνισμοί αντιστοιχούν σε πραγματικούς διαγωνισμούς, εξετάσεις ή σειρές
ασκήσεων. Εμπεριέχουν προβλήματα και είναι ενεργοί/ορατοί σε ένα χρονικό διάστημα
όπου οι διαγωνιζόμενοι μπορούν να υποβάλλουν τις λύσεις τους. Μόλις
,
ολοκληρωθεί η
όπου οι διαγωνιζόμενοι μπορούν να υποβάλλουν τις λύσεις τους. Μόλις ολοκληρωθεί η
διεξαγωγή τους, ο διαχειριστής μπορεί να εκκινήσει την τελική αξιολόγηση, κατά την
οποία βαθμολογούνται οι ενεργές υποβολές των διαγωνιζόμενων σε όλα τα προβλήματα του
διαγωνισμού. Μόνο επιλεγμένοι χρήστες μπορούν να έχουν πρόσβαση και δικαίωμα
συμμετοχής στους διαγωνισμούς.
διαγωνισμού. Οι διαγωνισμοί μπορούν να είναι ορατοί μόνο από επιλεγμένους χρήστες ή από όλους.
\subsection
{
Αρχεία Ελέγχου
}
Τα αρχεία ελέγχου είναι ζευγάρια αρχείων εισόδου και εξόδου και ανήκουν σε
προβλήματα.
προβλήματα. Μια σωστή υποβολή/λύση θα πρέπει για κάθε αρχείο εισόδου
που δέχεται, να παράγει έξοδο ίδια με αυτή του αντίστοιχου αρχείο εξόδου.
Κάθε αρχείο ελέγχου χαρακτηρίζεται από τον τύπο του, αναφορικά με το πότε
εκτελείται και αν είναι ορατό στους χρήστες. Οι τύποι εκτέλεσης αντιστοιχούν
σε χρώματα. Αυτά είναι τα παρακάτω:
\begin{itemize}
\item
\textit
{
Πορτοκαλί
}
TODO μηπως φωτο εδω;
\\
Το αρχείο ελέγχου χρησιμοποιείται σε κάθε υποβολή για το συγκεκριμένο πρόβλημα
αλλά δεν είναι ορατό στους χρήστες.
\item
\textit
{
Κίτρινο
}
\\
Το αρχείο ελέγχου χρησιμοποιείται σε κάθε υποβολή για το συγκεκριμένο πρόβλημα
και είναι ορατό στους χρήστες.
\item
\textit
{
Πράσινο
}
\\
Το αρχείο ελέγχου χρησιμοποιείται μόνο κατά την τελική αξιολόγηση.
\item
\textit
{
Μωβ
}
\\
Το αρχείο ελέγχου δεν χρησιμοποιείται.
\end{itemize}
Σε επόμενο κεφάλαιο θα δημιουργηθεί άλλος ένας τύπος εκτέλεσης. Επιπλέον, θα
αλλάξει ριζικά ο τρόπος αξιολόγησης καθώς θα εισαχθεί η έννοια των ομάδων
αρχείων ελέγχου και τα αρχεία θα έχουν νόημα μόνο μέσα σε αυτές.
\subsection
{
Χρήστες/Διαγωνιζόμενοι
}
Οι χρήστες ή διαγωνιζόμενοι είναι τα άτομα που αλληλεπιδρούν με το σύστημα με σκοπό
την υποβολή λύσεων στους διαγωνισμούς που συμμετέχουν. Οι διαχειριστές αποτελούν
κι αυτοί χρήστες, με τη διαφορά ότι έχουν δικαίωμα πρόσβασης στις σελίδες διαχείρισης
διαγωνισμών και προβλημάτων. Οι τελευταίοι έχουν επίσης δικαίωμα να εισάγουν νέους
χρήστες από ένα αρχείο, να ορίσουν την ορατότητα των διαγωνισμών για συγκεκριμένους
διαγωνιζόμενους και να απαντήσουν σε μηνύματα αυτών.
\subsection
{
Υποβολές
}
Η υποβολή μιας λύσης εμπεριέχει το "ανέβασμα" του κώδικα του διαγωνιζόμενου για
να γίνει η μεταγλώττιση του στον εξυπηρετητή, να εκτελεστεί από τον Kewii για
κάθε αρχείο ελέγχου που αντιστοιχεί στο είδος της υποβολής και να αξιολογηθεί η
ορθότητα της εξόδου. Οι υποβολές χωρίζονται σε δύο κύριες κατηγορίες, την
κανονική και την τελική. Ουσιαστικά, όλες οι υποβολές των διαγωνιζόμενων είναι
κανονικές και εφόσον υπάρχει, για έναν διαγωνιζόμενο, τουλάχιστον μία υποβολή
που περνάει όλα τα αρχεία ελέγχου στα οποία αξιολογήθηκε, αυτή θεωρείται ενεργή
για αυτόν. Όταν ολοκληρωθεί η περίοδος ανοιχτών υποβολών ενός διαγωνισμού, όλες
οι ενεργές υποβολές για κάθε πρόβλημα του διαγωνισμού επαναυποβάλλονται για την
τελική αξιολόγηση τους.
\subsection
{
Προγράμματα Αξιολόγησης
}
Οι υποβολές σε κάθε πρόβλημα αξιολογούνται με σύγκριση της εξόδου του υποβληθέντος
προγράμματος με αυτήν του αρχείου ελέγχου για την αντίστοιχη είσοδο. Εξαίρεση σε
αυτό τον τρόπο αξιολόγησης, αποτελούν τα προβλήματα που διαθέτουν το δικό τους
πρόγραμμα αξιολόγησης το οποίο αναλαμβάνει να συγκρίνει την αναμενόμενη έξοδο
με αυτήν που παρήγαγε το υποβληθέν πρόγραμμα και να βαθμολογήσει αυτή την έξοδο
στην κλίμακα [0, 1]. Το πρόγραμμα αξιολόγησης είναι και αυτό αποθηκευμένο στον
εξυπηρετητή και μεταγλωττίζεται και εκτελείται από τον Kewii.
\section
{
Σύστημα αξιολόγησης Kewii
}
Ο Kewii είναι μια εφαρμογή γραμμένη σε γλώσσα C και τρέχει στον εξυπηρετητή
...
...
@@ -367,28 +421,48 @@ Kewii και Grader, δηλαδή backend και frontend.
(TODO σχημα εδώ)
\bigskip
Γενικά, ο Kewii περιορίζεται στις έννοιες των προβλημάτων και των υποβολών
αγνοώντας
\bigskip
Γενικά, ο Kewii περιορίζεται στο να δέχεται υποβολές για συγκεκριμένα προβλήματα
με συγκεκριμένα αρχεία ελέγχου (και σε μερικές περιπτώσεις συγκεκριμένο πρόγραμμα
αξιολόγησης). Αξιολογεί την κάθε υποβολή με 0 - λάθος και 1 - σωστό για κάθε αρχείο
ή αναθέτει την αξιολόγηση στο αρμόδιο πρόγραμμα που θα επιστρέψει μια τιμή ανάμεσα
στα 0 και 1. Τότε οι "ευθύνες" του τελειώνουν, δηλαδή δεν ασχολείται με την συνολική
αξιολόγηση των διαγωνισμών και των προβλημάτων και ποια υποβολή θεωρείται ενεργή,
ούτε με το ποια αρχεία ελέγχου θα επιλεγούν κατά την υποβολή. Τα παραπάνω κρίνονται
σημαντικά γιατί θα μας επιτρέψουν να επανασχεδιάσουμε τον αλγόριθμο της υποβολής,
δημιουργώντας ομάδες αρχείων ελέγχου, όπως και άλλα κομμάτια του Grader χωρίς να
χρειαστεί να τροποποιήσουμε τον Kewii.
\section
{
Διαδικτυακή εφαρμογή Grader
}
Ο Grader είναι μια web εφαρμογή υλοποιημένη σε PHP και HTML/CSS/JS, η οποία αποτελεί
το frontend και μέρος του backend του συστήματος μας. Ως frontend εφαρμογή
αναλαμβάνει να παρουσιάσει σε διαγωνιζόμενους και διαχειριστές τις σελίδες
διαχείρισης, υποβολών και αποτελεσμάτων, ενώ ως backend αναλαμβάνει την υλοποίηση της
λογικής του συστήματος, των διάφορων αλγορίθμων και ροών και την επικοινωνία με τη
βάση δεδομένων και τον Kewii.
\chapter
{
Προσθήκη Ομάδων Αρχείων Ελέγχου
}
\chapter
{
Σχεδίαση για διαχωρισμό Προβλημάτων - Διαγωνισμών
}
\chapter
{
Λοιπές Προσθήκες
}
\section
{
Προσθήκη γλώσσας προγραμματισμού Python
}
\section
{
Προσθήκη blue tag για μη απαραίτητα αρχεία ελέγχου
}
\chapter
{
Συμπεράσματα
}
\section
{
Καταληκτικές Παρατηρήσεις
}
\section
{
Μελλοντική Έρευνα
}
%%% Bibliography
\bibliographystyle
{
softlab-thesis
}
...
...
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