dc.contributor.advisor | Rangoussi, Maria | |
dc.contributor.author | Μπανάσιος, Γεώργιος | |
dc.date.accessioned | 2023-03-23T09:55:58Z | |
dc.date.available | 2023-03-23T09:55:58Z | |
dc.date.issued | 2023-03 | |
dc.identifier.uri | https://polynoe.lib.uniwa.gr/xmlui/handle/11400/4020 | |
dc.identifier.uri | http://dx.doi.org/10.26265/polynoe-3860 | |
dc.description.abstract | Data structures and the algorithms that manipulate and transform these data to solve problems are a fundamental subject in computer science, with wide-ranging applications in many different fields and classes of problems. Despite the fundamental role that algorithms play in computer science, students often struggle to understand this subject. There are several reasons why students struggle, including fear of programming (especially for those with no prior programming experience), lack of interest, and the abstract nature of the concepts involved, such as the concept of the complexity of an algorithm. These are the main causes of high drop-out and failure rates in core compulsory courses of the curriculum, such as courses in programming, data structures and complex algorithms. A related subject that is considered both difficult and important is the analysis and design of algorithms. To address this problem, many research studies have been conducted on how to improve the teaching and learning process of algorithms. As the volume of information increases rapidly, so does the need to sort data for better analysis and study, which gives increasing importance to sorting algorithms. These algorithms are also the main focus of this thesis. Sorting is a need that arises in the physical world, to facilitate the search for a specific entity within a large volume of data. Since ancient times, people have developed indexes, dictionaries, directories, and other forms to keep useful information organized, especially if the data set is dynamic, meaning if new data is constantly being generated while old data must be removed or deleted. Many and quite different sorting algorithms have been developed to improve performance in terms of computational complexity and ultimately the resources (time and space) required, depending on the size of the data. In comparative assessment between alternative algorithms, there are several factors to consider, such as the time complexity, the (extra) memory space that will be required, and the stability of each algorithm. Returning to the educational problem of optimal teaching and learning of the subject for today's students, based on research, Algorithm Visualization has been shown to have a positive impact on student learning. This thesis aims to design and develop a graphical tool for visualizing sorting algorithms that can be easily used by students. Visualization emphasizes the visual representation of steps and operations of an algorithm and is generally considered more effective than verbal or numerical presentations of the subject in terms of understanding and being a user-friendly process. Interactive visualization tools available today can be used effectively to teach and learn complex concepts. In particular, in the subject matter, graphically illustrating the steps and operations of algorithms, dynamically while they are running, can help students understand and compare different classification algorithms more effectively. The purpose of this thesis is, in the first place, to make a brief reference to the subject of algorithms and their different types, in order to understand their importance. Also, before designing the application, a brief reference will be made to the basic issues of the complexity of the algorithms. Complexity is used as a tool to measure the effectiveness of an algorithm, as it is fundamental to understanding the different requirements and performances between sorting algorithms. Based on this knowledge, the following sorting algorithms will then be presented: • Bubble Sort, • Selection Sort,
• Insertion Sort, • Merge Sort, and • Quick Sort.
This will help the reader and ultimately the student to gain a basic level of understanding of these methods, as a necessary basis for fully understanding them with the help of the visualization tool. Finally, an online, web-based application will be designed and implemented in which the user will be able, among other functions, to enter or select a sequence of positive integer input numbers and select a specific one of the 5 available sorting algorithms. By using a bar graph based visualization tool, the student will gain a better understanding of how the particular algorithm works. In addition, the student will be able to run it on its own data, or use the same "random" data to compare two or more algorithms. The design has emphasized functionality from an educational/teaching point of view, as the primary role of the application is to be a support tool for the teacher in a university department. | el |
dc.format.extent | 115 | el |
dc.language.iso | en | el |
dc.publisher | Πανεπιστήμιο Δυτικής Αττικής | el |
dc.rights | Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4.0 Διεθνές | * |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 Διεθνές | * |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 Διεθνές | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.subject | JavaScript | el |
dc.subject | CSS | el |
dc.subject | Algorithms | el |
dc.subject | Data structures | el |
dc.subject | Computational complexity | el |
dc.subject | Algorithm visualization | el |
dc.subject | Interactive learning | el |
dc.subject | Visualizer | el |
dc.subject | Web applications | el |
dc.subject | Διαδικτυακές εφαρμογές | el |
dc.subject | Αλγόριθμοι | el |
dc.subject | Υπολογιστική πολυπλοκότητα | el |
dc.subject | Οπτικοποίηση αλγορίθµων | el |
dc.subject | Διαδραστική μάθηση | el |
dc.subject | Οπτικοποιητής | el |
dc.subject | Δομές δεδομένων | el |
dc.title | Algorithms and data structures: Dynamic visualization of operation in a programming environment for educational purposes | el |
dc.title.alternative | Αλγόριθμοι και δομές δεδομένων: Δυναμική οπτικοποίηση λειτουργίας σε προγραμματιστικό περιβάλλον για εκπαιδευτικούς σκοπούς | el |
dc.type | Διπλωματική εργασία | el |
dc.contributor.committee | Μετάφας, Δημήτριος | |
dc.contributor.committee | Ζαχαριάδου, Αικατερίνη | |
dc.contributor.faculty | Σχολή Μηχανικών | el |
dc.contributor.department | Τμήμα Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών | el |
dc.description.abstracttranslated | Οι δομές δεδομένων καθώς και οι αλγόριθμοι που χειρίζονται και μετασχηματίζουν αυτά τα δεδομένα για την επίλυση προβλημάτων αποτελούν θεμελιώδες γνωστικό αντικείμενο στην επιστήμη των υπολογιστών, με ευρύτατες εφαρμογές σε πολλά και διαφορετικά πεδία και κατηγορίες προβλημάτων. Παρά το θεμελιώδη ρόλο που διαδραματίζουν οι αλγόριθμοι στην επιστήμη των υπολογιστών, οι φοιτητές συχνά δυσκολεύονται να κατανοήσουν αυτό το αντικείμενο. Υπάρχουν διάφοροι λόγοι για τους οποίους οι φοιτητές δυσκολεύονται, όπως ο φόβος για τον προγραμματισμό (ειδικά για εκείνους που δεν έχουν προηγούμενη εμπειρία προγραμματισμού), η έλλειψη ενδιαφέροντος και η αφηρημένη φύση των εννοιών που εμπλέκονται, όπως η έννοια της πολυπλοκότητας ενός αλγορίθμου. Αυτές είναι οι κύριες αιτίες υψηλών ποσοστών εγκατάλειψης και αποτυχίας σε βασικά υποχρεωτικά μαθήματα του προγράμματος σπουδών, όπως μαθήματα προγραμματισμού, δομών δεδομένων και πολυπλοκότητας των αλγορίθμων. Ένα συναφές αντικείμενο που θεωρείται ταυτόχρονα δύσκολο αλλά και σημαντικό είναι η ανάλυση και ο σχεδιασμός αλγορίθμων. Για να αντιμετωπιστεί αυτό το πρόβλημα, έχουν γίνει πολλές ερευνητικές μελέτες για τον τρόπο βελτίωσης της διαδικασίας διδασκαλίας και μάθησης των αλγορίθμων. Καθώς ο όγκος της πληροφορίας αυξάνεται με ταχείς ρυθμούς, αυξάνεται και η ανάγκη ταξινόμησης δεδομένων για καλύτερη ανάλυση και μελέτη, γεγονός που δίνει αυξανόμενη σπουδαιότητα στους αλγόριθμους ταξινόμησης. Αυτοί αποτελούν και το κύριο επίκεντρο της παρούσας διπλωματικής εργασίας. Η ταξινόμηση είναι μία ανάγκη που προκύπτει στο φυσικό κόσμο, για τη διευκόλυνση της αναζήτησης συγκεκριμένης οντότητας μέσα σε μεγάλο όγκο δεδομένων. Από τα αρχαία χρόνια οι άνθρωποι ανέπτυξαν ευρετήρια, λεξικά, καταλόγους και άλλες μορφές για να διατηρούν τη χρήσιμη πληροφορία ταξινομημένη, ειδικά αν το σύνολο δεδομένων είναι δυναμικό, δηλαδή νέα δεδομένα προκύπτουν διαρκώς ενώ παλιά πρέπει να αφαιρεθούν ή να διαγραφούν. Πολλοί και αρκετά διαφορετικοί μεταξύ τους αλγόριθμοι ταξινόμησης έχουν αναπτυχθεί για τη βελτίωση της απόδοσης όσον αφορά την υπολογιστική πολυπλοκότητα και εν τέλει τους πόρους (χρόνο και χώρο) που θα απαιτηθούν, σε συνάρτηση με το μέγεθος των δεδομένων. Στη συγκριτική αξιολόγηση μεταξύ εναλλακτικών αλγορίθμων, υπάρχουν διάφοροι παράγοντες που πρέπει να ληφθούν υπόψη, όπως η πολυπλοκότητα ως προς το χρόνο, ο (επιπλέον) χώρος μνήμης που θα απαιτηθεί καθώς και η σταθερότητα του κάθε αλγορίθμου. Επιστρέφοντας στο εκπαιδευτικό πρόβλημα της βέλτιστης διδασκαλίας και μάθησης του αντικειμένου για τους σημερινούς φοιτητές, με βάση έρευνες, η Οπτικοποίηση Αλγορίθμων έχει αποδειχθεί ότι έχει θετικό αντίκτυπο στην μάθηση των φοιτητών. Η παρούσα διπλωματική εργασία στοχεύει στη σχεδίαση και ανάπτυξη ενός γραφικού εργαλείου οπτικοποίησης αλγορίθμων ταξινόμησης που μπορούν να χρησιμοποιήσουν έυκολα οι φοιτητές. Η οπτικοποίηση δίνει έμφαση στην οπτική αναπαράσταση βημάτων και λειτουργιών ενός αλγορίθμου και γενικά θεωρείται πιο αποτελεσματική από τις προφορικές ή αριθμητικές παρουσιάσεις του αντικειμένου, όσον αφορά στην κατανόηση και στο γεγονός ότι είναι μία διαδικασία φιλική προς το χρήστη. Τα διαδραστικά εργαλεία οπτικοποίησης που διατίθενται σήμερα μπορούν να χρησιμοποιηθούν αποτελεσματικά για τη διδασκαλία και μάθηση σύνθετων εννοιών. Ειδικότερα, στο αντικείμενο της διπλωματικής, η γραφική απεικόνιση των βημάτων και των λειτουργιών των αλγορίθμων, δυναμικά ενώ εκτελούνται, μπορεί να βοηθήσει τους φοιτητές να κατανοήσουν και να συγκρίνουν διαφορετικούς αλγορίθμους ταξινόμησης πιο αποτελεσματικά. Σκοπός της παρούσας διπλωματικής εργασίας είναι κατ’ αρχήν να γίνει μία σύντομη αναφορά στο αντικείμενο των αλγορίθμων και των διαφορετικών τύπων τους, προκειμένουν να κατανοηθεί η σημασία τους. Επίσης, πριν από το σχεδιασμό της εφαρμογής, θα γίνει μία σύντομη αναφορά στα βασικά θέματα της πολυπλοκότητας των αλγορίθμων. Η πολυπλοκότητα, χρησιμοποιείται ως εργαλείο για την μέτρηση της αποτελεσματικότητας ενός αλγορίθμου, καθώς είναι θεμελιώδες για την κατανόηση των διαφορετικών απαιτήσεων και επιδόσεων μεταξύ των αλγορίθμων ταξινόμησης. Με βάση αυτή τη γνώση, στη συνέχεια θα γίνει παρουσίαση των εξής αλγορίθμων ταξινόμησης: • Bubble Sort, • Selection Sort, • Insertion Sort,
• Merge Sort, και • Quick Sort. Αυτό θα βοηθήσει τον αναγνώστη και τελικά το φοιτητή στην κατάκτηση ενός βασικού επιπέδου κατανόησης αυτών των μεθόδων, ως απαραίτηση βάση για την πλήρη κατανόησή τους με τη βοήθεια του εργαλείου οπτικοποίησης. Τέλος, θα σχεδιαστεί και θα υλοποιηθεί μία online, web-based εφαρμογή στην οποία ο χρήστης θα μπορεί, μεταξύ άλλων λειτουργιών, να εισάγει ή να επιλέξει μία ακολουθία θετικών ακεραίων αριθμών εισόδου και να επιλέξει έναν συγκεκριμένο από τους 5 διαθέσιμους αλγόριθμους ταξινόμησης. Χρησιμοποιώντας ένα εργαλείο απεικόνισης που βασίζεται σε ραβδόγραμμα, ο φοιτητής θα αποκτήσει καλύτερη κατανόηση της λειτουργίας του συγκεκριμένου αλγορίθμου. Επιπλέον θα μπορέσει να τον εκτελέσει σε δικά του δεδομένα, ή να χρησιμοποιήσει τα ίδια «τυχαία» δεδομένα για να συγκρίνει μεταξύ τους δύο ή περισσότερους αλγορίθμους. Η σχεδίαση έχει δώσει έμφαση στην λειτουργικότητα από πλευράς εκπαιδευτικής/διδακτικής, καθώς ο πρωτεύων ρόλος της εφαρμογής είναι να αποτελέσει εργαλείο υποστήριξης του διδάσκοντα σε ένα πανεπιστημιακό τμήμα. | el |