title: Σχεδίαση και ανάπτυξη ενός γραφικού εκπαιδευτικού εργαλείου για την δημιουργία και προσομοίωση μηχανών Turing
title: Design and development of a graphical educational tool for the creation and simulation of Turing machines
Creators: name: Κοντουλης Παρασκευας-Θεοφανης
Publisher: name: Technical University of Crete
Year: 2023

description: Η Μηχανή Turing είναι μια θεωρητική μηχανή που εφευρέθηκε από τον Alan Turing για χρήση ως μοντέλο σε μαθηματικούς υπολογισμούς. Θεωρείται ακρογωνιαίος λίθος της θεωρητικής επιστήμης των υπολογιστών και είχε βαθύ αντίκτυπο στην ανάπτυξη της επιστήμης των υπολογιστών και της τεχνητής νοημοσύνης. Πρόκειται για μια απλή μηχανή που μπορεί να εκτελέσει οποιονδήποτε υπολογισμό που μπορεί να εκφραστεί ως αλγόριθμος. Παρά την απλότητά της, έχει αποδειχθεί ότι η Μηχανή Turing είναι υπολογιστικά ισοδύναμη με οποιοδήποτε άλλο παρόμοιο μοντέλο υπολογισμού, καθιστώντας την ένα ισχυρό εργαλείο για την κατανόηση των θεμελίων του υπολογισμού. Τα τελευταία χρόνια, υπάρχει αυξανόμενο ενδιαφέρον για τη χρήση των Μηχανών Turing ως εργαλείο διδασκαλίας για την επιστήμη των υπολογιστών, τη θεωρία υπολογισμού και τα μαθηματικά. Μία από τις προκλήσεις της διδασκαλίας σχετικά με τις Μηχανές Turing είναι ότι παρουσιάζονται ως νοητά κουτιά, που καθιστούν δύσκολη την κατανόηση της λειτουργίας τους από τους φοιτητές. Για την αντιμετώπιση αυτής της πρόκλησης, υπήρξε μια αυξανόμενη ανάγκη για εκπαιδευτικά εργαλεία που διευκολύνουν την κατανόηση και τη διερεύνηση της συμπεριφοράς των Μηχανών Turing. Η παρούσα διπλωματική εργασία παρουσιάζει την ανάπτυξη μιας διαδικτυακής εφαρμογής που επιτρέπει στο χρήστη να σχεδιάζει και να προσομοιώνει Μηχανές Turing. Ο στόχος της εφαρμογής είναι να παρέχει σε φοιτητές και εκπαιδευτικούς έναν διαδραστικό και προσιτό τρόπο για να εξερευνήσουν τη συμπεριφορά των Μηχανών Turing και να κατανοήσουν τις θεμελιώδεις έννοιες της Θεωρίας Υπολογισμού. Η εφαρμογή επιτρέπει στους χρήστες να δημιουργούν και να προσομοιώνουν μηχανές Turing, χρησιμοποιώντας την σημειογραφία και γραφική αναπαράσταση των Lewis και Παπαδημητρίου, να οπτικοποιούν τη συμπεριφορά της μηχανής και να πειραματίζονται με διαφορετικούς αλγόριθμους. Η εφαρμογή αναπτύχθηκε σε Javascript και έχει σχεδιαστεί για να είναι απλή και φιλική προς τον χρήστη, καθιστώντας την προσβάσιμη σε φοιτητές όλων των υποβάθρων και επιπέδων δεξιοτήτων. Παρέχοντας έναν διαδραστικό και προσιτό τρόπο εξερεύνησης των μηχανών Turing, αυτή η εφαρμογή έχει τη δυνατότητα να βελτιώσει σημαντικά τον τρόπο με τον οποίο οι φοιτητές μαθαίνουν για την επιστήμη των υπολογιστών.
description: A Turing Machine is a theoretical machine invented by Alan Turing for use as a model in mathematical calculations. It is considered a cornerstone of theoretical computer science and had a profound impact on the development of computer science and artificial intelligence. It is a simple machine that can perform any calculation that can be expressed as an algorithm. Despite its simplicity, the Turing Machine has been shown to be computationally equivalent to any other similar model of computation, making it a powerful tool for understanding the fundamentals of computation. In recent years, there has been growing interest in using Turing Machines as a teaching tool for computer science, theory of computation, and mathematics. One of the challenges of teaching about Turing Machines is that they are presented as theoretical boxes, making it difficult for students to understand how they work. To address this challenge, there has been a growing need for educational tools that facilitate understanding and investigating the behavior of Turing Machines. This thesis presents the development of a web application that allows the user to design and simulate Turing Machines. The goal of the app is to provide students and educators with an interactive and accessible way to explore the behavior of Turing Machines and understand the fundamental concepts of Theory of Computation. The application allows users to create and simulate Turing machines, using Lewis and Papadimitriou's notation and graphical representation, visualize the machine's behavior, and experiment with different algorithms. The application was developed in Javascript and is designed to be simple and user-friendly, making it accessible to students of all backgrounds and skill levels. By providing an interactive and accessible way to explore Turing machines, this app has the potential to significantly improve the way students learn about computer science.