Στόχος αυτής της διπλωματικής εργασίας είναι η δημιουργία μιας εφαρμογής αυτόματης βαθμολόγησης προγραμματιστικών ασκήσεων στη γλώσσα 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.
Σχεδιασμός και Ανάπτυξη Εφαρμογής για ανάθεση και βαθμολόγηση προγραμματιστικών εργασιών στη γλώσσα Java Περιγραφή: 137997_ΑΡΜΑΝΙΔΗ_ΕΥΘΥΜΙΑ.pdf (pdf)
Book Reader Άδεια: Αναφορά Δημιουργού 4.0 Διεθνές Πληροφορίες: primary:true Μέγεθος: 5.9 MB
Σχεδιασμός και Ανάπτυξη Εφαρμογής για ανάθεση και βαθμολόγηση προγραμματιστικών εργασιών στη γλώσσα Java - Identifier: 78141
Internal display of the 78141 entity interconnections (Node labels correspond to identifiers)