Παιγνιώδης μάθηση και Παράλληλος προγραμματισμός σε Scratch
Σχεδιάζω, Υλοποιώ, Μοιράζομαι:
Καλές πρακτικές στη διδασκαλία της Πληροφορικής
Δευτέρα, 31 Ιανουαρίου 2022
Εισηγητής: Ψιλιάγκος Γιάννης ΠΕ86-03
Γιατί παράλληλος προγραμματισμός;
Κίνητρα-Ιστορικό-Δομή
προγραμματισμός στην πράξη
Το παιχνίδι είναι δημοφιλές και σε ακαδημαϊκά – εκπαιδευτικά περιβάλλοντα…
Οι παρακάτω διαφάνειες θα χωριστούν σε δύο τμήματα:
Γιατί παράλληλο προγραμματισμό;
Βήματα για τη δημιουργία του Pac-man (1o σχεδίαση του Pac-man)
Παράλληλα γίνεται μια μικρή αντιπαραβολή: γραφικά Bitmap vs Vector
Στο φύλλο εργασίας του βήματος 1 γίνεται μια σύντομη εισαγωγή στο Animation του Sprite
Βήματα για τη δημιουργία του Pac-�man (2o σχεδίαση του υποβάθρου)
Κίνηση του Pac-man ώστε να μη χτυπά σε τοίχους (1η εκδοχή όπου ο κώδικας στα πλήκτρα βέλους είναι επιβαρυμένος)
Μια επισκόπηση των προβλημάτω δίνει το παρακάτω βίντεο
Χαρακτηριστικό πρόβλημα στην ταυτόχρονη εκτέλεση κάποιων εντολών είναι τα Racing Conditions: Εδώ ένα χαρακτηριστικό παράδειγμα όταν αυξάνεται το βήμα μετακίνησης με τη βοήθεια επιτάχυνσης
Κίνηση του Pac-man ώστε να μη χτυπά σε τοίχους (2η εκδοχή)
Τελική εκδοχή του προγράμματος κίνησης του Sprite χωρίς τα προηγούμενα προβλήματα
Μια σημαντική βελτίωση του κώδικα στον παράλληλο προγραμματισμό είναι να εντοπίζονται σημεία όπου ο κώδικας ‘βελτιώνεται’ όταν σπάει σε δύο κομμάτια
Στο 3ο βήμα φροντίζουμε για τις εξόδους διαφυγής του Pac-man
Οι έξοδοι διαφυγής δίνουν μια ευκαιρία να εξεταστεί το σύστημα συντεταγμένων του παραθύρου του Scratch
Βήμα 4 Δημιουργία των cookies �(ή και peperoni)
Ο κώδικας της κλωνοποίησης γεμίζει με αυτόματο τρόπο το χώρο της πίστας
Εργασία βήματος 4
5ο βήμα :Προσοχή!:…φαντάσματα…
Πως τα φαντάσματα βρίσκουν τον Pac-man
Θα πρέπει να σημειωθεί ότι δεδομένου ότι τα sprites για το Pac-Man και τα φαντάσματα είναι μεγαλύτερα από ένα πλακίδιο σε μέγεθος, δεν περιέχονται ποτέ πλήρως σε ένα μόνο πλακίδιο. Εξαιτίας αυτού, για τους σκοπούς του παιχνιδιού, ο χαρακτήρας θεωρείται ότι καταλαμβάνει όποιο πλακίδιο περιέχει το κεντρικό του σημείο. Αυτή είναι σημαντική γνώση όταν αποφεύγετε τα φαντάσματα, καθώς ο Pac-Man θα συλληφθεί μόνο εάν ένα φάντασμα καταφέρει να μετακινήσει το κεντρικό του σημείο στο ίδιο πλακίδιο με αυτό του Pac-Man.
Λειτουργίες κίνησης φαντασμάτων
Η συγκεκριμένη υλοποίηση χρησιμοποιεί την παραπάνω τεχνική για τη Blinky (το γρήγορο φάντασμα)
Ενώ η Inky υλοποιείται με προ-αποθηκευμένες διαδρομές
Παράλληλος προγραμματισμός
Παραλληλία και ταυτόχρονη εκτέλεση (ταυτοχρονισμός-concurrency) στο Scratch
Πρακτικά προβλήματα κατά τον προγραμματισμό (1) : κίνηση μέσα από τοίχους
Πρακτικά προβλήματα κατά τον προγραμματισμό (2): ταυτόχρονη χρήση διαμοιραζόμενων μεταβλητών
Κατάσταση όπου 2 threads ανταγωνίζονται για το ίδιο resource
Αυτό είναι γνωστό και ως dining philosophers problem
Λύσεις στα προβλήματα παραλληλισμού μέσω Scratch
Η σειρά εκτέλεσης των Hat Εντολών
https://scratch.mit.edu/projects/18490761/
Μερικές βασικές αρχές για τον παράλληλο προγραμματισμό σε Scratch
Αποτίμηση του σεναρίου
Πηγές- ενδιαφέροντα projects