Ανάπτυξη λογισμικού για δημιουργία ωρολογίου προγράμματος και προγράμματος εξεταστικής

Loading...
Thumbnail Image

Date

2026-07-08

Authors

Μιχαλάκης, Παντελεήμων

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Η κατάρτιση των ωρολογίων προγραμμάτων διδασκαλίας και εξετάσεων συγκαταλέγεται στα πλέον απαιτητικά διοικητικά καθήκοντα ενός ακαδημαϊκού τμήματος. Πρόκειται, κατ’ ουσίαν, για ένα συνδυαστικό πρόβλημα βελτιστοποίησης με περιορισμούς (constraint optimization problem), η χειροκίνητη επίλυση του οποίου είναι χρονοβόρα, επιρρεπής σε σφάλματα και δυσχερώς προσαρμόσιμη στις διαρκείς μεταβολές των δεδομένων ενός τμήματος. Καθώς το πλήθος των μαθημάτων, των διδασκόντων και των διαθέσιμων αιθουσών αυξάνεται, ο χώρος των πιθανών λύσεων διογκώνεται εκθετικά, καθιστώντας την ανεύρεση ενός έγκυρου και ταυτόχρονα ποιοτικού προγράμματος ιδιαίτερα δύσκολη υπόθεση. Η παρούσα διπλωματική εργασία παρουσιάζει τον σχεδιασμό και την υλοποίηση του ceid-timetabling-system, μιας ολοκληρωμένης διαδικτυακής εφαρμογής (full-stack web application) για την αυτόματη κατάρτιση των ωρολογίων προγραμμάτων μαθημάτων και εξεταστικής περιόδου του Τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής (ΤΜΗΥΠ) του Πανεπιστημίου Πατρών. Το σύστημα διατυπώνει το πρόβλημα ως μοντέλο βελτιστοποίησης με περιορισμούς και το επιλύει αξιοποιώντας τον μηχανισμό επίλυσης Timefold Solver. Οι περιορισμοί διακρίνονται σε σκληρούς (hard), που εκφράζουν τις απαράβατες απαιτήσεις εγκυρότητας (όπως οι συγκρούσεις διδασκόντων και αιθουσών ή οι κανόνες καταλληλότητας τύπου αίθουσας) και σε μαλακούς (soft), που εκφράζουν επιθυμητά ποιοτικά χαρακτηριστικά, όπως η ελαχιστοποίηση των κενών και η ικανοποίηση προτιμήσεων. Σε τεχνολογικό επίπεδο, το backend υλοποιείται σε Java 21 με χρήση του Spring Boot και αξιοποιεί τη σχεσιακή βάση δεδομένων PostgreSQL 16, με τη διαχείριση του σχήματος να πραγματοποιείται μέσω versioned migrations με το Flyway. Το frontend αναπτύσσεται σε React 19 με TypeScript και Vite. Η αρχιτεκτονική του συστήματος διέπεται από ορισμένες θεμελιώδεις σχεδιαστικές αποφάσεις που διασφαλίζουν την ακεραιότητα και τη μακροπρόθεσμη συντήρηση των δεδομένων: την τεχνική snapshot-on-write, βάσει της οποίας κάθε αποθηκευμένο πρόγραμμα διατηρεί ένα αυτοτελές στιγμιότυπο των δεδομένων προβολής του, την υιοθέτηση λογικής διαγραφής (soft-delete) αντί της φυσικής, καθώς και τον διαχωρισμό της ατομικής (transactional) αποθήκευσης της λύσης από την ίδια τη χρονοβόρα διαδικασία επίλυσης. Το σύστημα αναπτύχθηκε και δοκιμάστηκε επί πραγματικών δεδομένων του Τμήματος, τα οποία περιλαμβάνουν εκατό δεκαοκτώ (118) μαθήματα του Προγράμματος Προπτυχιακών Σπουδών, τις κατευθύνσεις σπουδών και τα στοιχεία των διδασκόντων, και αποτελεί υποψήφια λύση για επίσημη χρήση από το Τμήμα. Πέραν της λειτουργικής του πληρότητας, το έργο επιδιώκει υψηλή ποιότητα μηχανικής λογισμικού, με συστηματικό έλεγχο ορθότητας μέσω αυτοματοποιημένων δοκιμών και διαδικασία συνεχούς ενσωμάτωσης (continuous integration).

Description

Keywords

Κατάρτιση ωρολόγιων προγραμμάτων, Βελτιστοποίηση με περιορισμούς, Διαδικτυακές εφαρμογές, Αυτοματοποίηση ακαδημαϊκού προγραμματισμού

Citation