Σχεδιασμός και Ανάπτυξη Εφαρμογής για ανάθεση και βαθμολόγηση προγραμματιστικών εργασιών στη γλώσσα Java

Design and Development of Web application for the assignment and automatic grading of JAVA programmatic exercises (Αγγλική)

  1. MSc thesis
  2. ΑΡΜΑΝΙΔΗ, ΕΥΘΥΜΙΑ
  3. Μεταπτυχιακή Εξειδίκευση στα Πληροφοριακά Συστήματα (ΠΛΣ)
  4. 19 Σεπτεμβρίου 2020 [2020-09-19]
  5. Ελληνικά
  6. 137
  7. ΜΑΥΡΟΜΜΑΤΗΣ, ΓΕΩΡΓΙΟΣ
  8. ΑΜΠΑΤΖΟΓΛΟΥ, Απόστολος | ΟΡΦΑΝΟΥΔΑΚΗΣ, ΘΕΟΦΑΝΗΣ
  9. Έλεγχος μονάδας | JUNIT | προγραμματιστικές ασκήσεις | PROGRAMMING EXERCISES | αυτόματη βαθμολόγηση | AUTOMATED GRADING | διαχείριση μαθημάτων | ASSIGNMENT MANAGEMENT | διαχείριση εργασιών | EXERCISE MANAGEMENT | javassess | javassess
  10. 4
  11. 10
  12. Κατάλογος Εικόνων / Σχημάτων Εικόνα 1 Διάγραμμα βασικότερων περιπτώσεων χρήστης 7 Εικόνα 2 Διάγραμμα ακολουθίας – Δημιουργία Εργασίας - φάση A] 10 Εικόνα 3 Διάγραμμα ακολουθίας – Δημιουργία Εργασίας - φάση Β] 12 Εικόνα 4 Περιπτώσεις χρήσης χρήστη 13 Εικόνα 5 Περιπτώσεις χρήσης διαχειριστή 14 Εικόνα 6 Περιπτώσεις χρήσης καθηγητή 15 Εικόνα 7 Περιπτώσεις χρήσης μαθητή 16 Εικόνα 8 Διάγραμμα βασικών δομικών στοιχείων 16 Εικόνα 9 Αναλυτικό διάγραμμα frontend 17 Εικόνα 10 Αναλυτικό διάγραμμα backend 18 Εικόνα 11 Μοντέλο πεδίου εφαρμογής 21 Εικόνα 12 Σχήμα Βάσης Δεδομένων 24 Εικόνα 13 Λογότυπο Spring 26 Εικόνα 14 Λογότυπο VueJs 29 Εικόνα 15 Reactivity 30 Εικόνα 16 Σύστημα στοιχείων σε VueJs 30 Εικόνα 17 Λογότυπο Nodejs 31 Εικόνα 18 Σύστημα αρχείων φακέλων καθηγητή 78 Εικόνα 19 Πίνακας «Εργασία» στην Βάση Δεδομένων 79 Εικόνα 20 Πίνακας «Ασκήσεις» στην Βάση Δεδομένων 79 Εικόνα 21 Πίνακας «Τεστ» στην Βάση Δεδομένων 79 Εικόνα 22 Πίνακας «Υποβολή» στην Βάση Δεδομένων 79 Εικόνα 23 Πίνακας «Βαθμοί» στην Βάση Δεδομένων 79 Εικόνα 24 Σύστημα αρχείων φάκελου φοιτητή 80 Εικόνα 25 Πίνακας «Υποβολές» στην Βάση Δεδομένων 80 Εικόνα 26 Πίνακας «Βαθμοί» στην Βάση Δεδομένων 80 Κατάλογος Οθονών Οθόνη 1 Σύνδεση Χρήστη 32 Οθόνη 2 Πλήρης οθόνη – Μενού 34 Οθόνη 3 Μικρή οθόνη - Μενού 34 Οθόνη 4 Προβολή προφίλ χρήστη 35 Οθόνη 5 Προβολή χρηστών 40 Οθόνη 6 Φόρμα δημιουργίας νέου χρήστη 41 Οθόνη 7 Ανανεωμένη λίστα χρηστών 41 Οθόνη 8 Επιλογή χρήστη 42 Οθόνη 9 Φόρμα τροποποίησης χρήστη 42 Οθόνη 10Μήνυμα επιτυχούς τροποποίησης 42 Οθόνη 11 Ανανεωμένη λίστα χρηστών 43 Οθόνη 12 Προβολή μαθημάτων 43 Οθόνη 13 Επιλογή μαθήματος 44 Οθόνη 14 Φόρμα δημιουργίας μαθήματος 44 Οθόνη 15 Προβολή ανανεωμένης λίστας μαθημάτων 45 Οθόνη 16 Φόρμα ανάθεσης φοιτητών 45 Οθόνη 17 Βασικό μενού καθηγητή 49 Οθόνη 18 Προβολή λίστας μαθημάτων 50 Οθόνη 19 Προβολή λίστας εργασιών 50 Οθόνη 20 Φόρμα δημιουργίας εργασίας 51 Οθόνη 21 Φόρμα δημιουργίας άσκησης 52 Οθόνη 22 Επιλογή κώδικα άσκησης καθηγητή 53 Οθόνη 23 Επιλογή λύσης & ανάθεση βαθμών (1) 54 Οθόνη 24 Συμπληρωμένη φόρμα δημιουργίας νέας εργασίας 55 Οθόνη 25 Φόρμα δημιουργίας νέας άσκησης (1) 56 Οθόνη 26 Φόρμα δημιουργίας νέας άσκησης (2) 57 Οθόνη 27 Συμπληρωμένη φόρμα δημιουργίας εργασίας 58 Οθόνη 28 Επιλογή λύσης & ανάθεση βαθμών (2) 59 Οθόνη 29 Ανανεωμένη λίστα εργασιών 60 Οθόνη 30 Λίστα ασκήσεων 60 Οθόνη 31 Λίστα υποβολών ασκήσεων 61 Οθόνη 32 Εμφάνιση εργασίας 61 Οθόνη 33 Βασικό μενού φοιτητή 65 Οθόνη 34 Προβολή λίστας μαθημάτων 66 Οθόνη 35 Προβολή λίστας εργασιών 66 Οθόνη 36 Προβολή εργασίας 67 Οθόνη 37 Προβολή λίστας ασκήσεων 67 Οθόνη 38 Επιλεγμένη «Not submitted» άσκηση 68 Οθόνη 39 Επιλεγμένη «Submitted» άσκηση 68 Οθόνη 40 Υποβολή λύσης άσκησης 69 Οθόνη 41 Προσωρινή απεικόνιση σκορ 69 Οθόνη 42 Ανανεωμένη λίστα ασκήσεων 70
    • Στόχος αυτής της διπλωματικής εργασίας είναι η δημιουργία μιας εφαρμογής αυτόματης βαθμολόγησης προγραμματιστικών ασκήσεων στη γλώσσα Java. Τα τελευταία χρόνια έχει πραγματοποιηθεί μεγάλη πρόοδος στο θέμα του ελέγχου του κώδικα. Οι κατευθύνσεις της έρευνας σε αυτό το κομμάτι είναι κυρίως δύο: o έλεγχος της συμπεριφοράς ενός κώδικα και ο έλεγχος της σύνταξής του. Στην πρώτη περίπτωση, ο κώδικας αντιμετωπίζεται σαν μαύρο κουτί, εξετάζονται οι έξοδοι που παράγονται για διάφορες εισόδους δεδομένων και δεν εξετάζεται καθόλου εσωτερικά. Στη δεύτερη γίνεται ανάλυση του κώδικα και ελέγχονται συγκεκριμένα κομμάτια του, ως προς τη σύνταξή τους και ως προς την έξοδό τους. Σε αυτή την περίπτωση, θεωρείται δεδομένο ότι υπάρχει γνώση του εσωτερικού του κώδικα. Η παρούσα διπλωματική εργασία βασίζεται κατά κύριο λόγο στο ευρέως χρησιμοποιούμενο εργαλείο ελέγχου «JUnit», ώστε να επιτευχθεί τόσο συντακτική ανάλυση όσο και έλεγχος της εξόδου. Συγκεκριμένα, έχει υλοποιηθεί μια εφαρμογή, η «Intelligrader», στην οποία δίνεται η δυνατότητα διαχείρισης μαθημάτων και χρηστών από τον διαχειριστή, ανάθεσης προγραμματιστικών ασκήσεων από τον καθηγητή στους φοιτητές και μεταφόρτωση των απαντήσεων από τους φοιτητές. Η εφαρμογή/πλατφόρμα αναλαμβάνει στην συνέχεια να βαθμολογήσει αυτόματα τις ασκήσεις των φοιτητών, ανάλογα με τους ελέγχους που έχει συμπεριλάβει ο καθηγητής στις ασκήσεις του. Αυτή η εφαρμογή, εκτός από το προφανές πλεονέκτημα της απλοποίησης της διαδικασίας διόρθωσης από των καθηγητή και την εξοικονόμηση χρόνου προς όφελος πιο δημιουργικών εκπαιδευτικών δραστηριοτήτων εκ μέρους του, παρέχει και ευελιξία ως προς το είδος των ελέγχων. Στην παρούσα διπλωματική παρέχεται παράδειγμα, που ο καθηγητής ελέγχει πρώτον την ύπαρξη συγκεκριμένων κλάσεων με συγκεκριμένα χαρακτηριστικά (π.χ. κληρονομικότητας, πολυμορφισμού κ.λπ.), δεύτερον ελέγχει την έξοδο συγκεκριμένης μεθόδου με βάση συγκεκριμένα δεδομένα εισόδου και τρίτον χρησιμοποιεί ένα εργαλείο στατικής ανάλυσης για τον έλεγχο των ποιοτικών χαρακτηριστικών του κώδικα. Η συγκεκριμένη εφαρμογή έχει αναπτυχθεί με τις πιο νέες τεχνολογίες και η αρχιτεκτονική της, την καθιστά ευέλικτη προς επέκταση.
    • The aim of this dissertation was to create an application for automating programming exercises in the Java language. Much progress has been made in recent years in the area of source code testing. The directions of research in this part are mainly two: controlling the behavior of a code and controlling its syntax. In the first field, the source code is treated like a black box and it focuses on examining its outputs given various data inputs. Internally it is not examined at alll. In the second section, the source code is analyzed and specific parts of it are checked both in terms of their syntax and in terms of their output. In this case, it is assumed that there is knowledge of its internal code. This dissertation is mainly based on the widely used testing tool "JUnit", in order to achieve both syntactic analysis and output testing. Specifically, "Intelligrader" is an application that has been developed for this purpose and allows the administrator to manage courses and users, allow teavhers to assign programming exercises to students and finally allow students to upload their solutions. The application / platform then undertakes to automatical grading of the students' exercises, based on the tests that the teacher has included in his exercises and the grades that she has assigned on each test. This application, in addition to the obvious advantage of simplifying the correction process by the teacher and saving time for more creative educational activities, it also provides flexibility in the type of tests. In this dissertation, it is provided an example, in which the teacher first checks the existence of specific classes with specific characteristics (eg inheritance, polymorphism, etc.), secondly checks the output of a specific method based on specific input data and thirdly uses a static analysis tool to check of the quality features of the code. This application has been developed with the latest technology trends and its architecture allows a potentially flexible expansion.
  13. Αναφορά Δημιουργού 4.0 Διεθνές