You are on page 1of 4

ScratchGraph: Ένα εργαλείο ανάλυσης της επικοινωνίας

έργων Scratch
Νικολός Δημήτρης1, Κόμης Βασίλης2
dimnikolos@sch.gr, komis@upatras.gr
1
Εκπαιδευτικός Πληροφορικής
2
Καθηγητής, ΤΕΕΑΠΗ, Πανεπιστήμιο Πατρών

Περίληψη
Καθώς οι μαθητές προγραμματίζουν με τη γλώσσα Scratch είναι δεδομένο πως θα χρησιμοποιήσουν κάποιες
μορφές επικοινωνίας μεταξύ αντικειμένων, όπως μηνύματα, καθολικές μεταβλητές και λίστες, ή θα υλοποιήσουν
την επικοινωνία μέσω της αλλαγής του υποβάθρου. Το περιβάλλον της Scratch δεν παρέχει ικανοποιητική
οπτικοποίηση για αυτού του είδους την επικοινωνία. Στην εργασία παρουσιάζεται το διαδικτυακό εργαλείο
ScratchGraph το οποίο υλοποιήθηκε για να μελετηθεί η επικοινωνία και ο συντονισμός μεταξύ αντικειμένων στα
προγράμματα Scratch. Το εργαλείο αυτό παρέχει μια αναφορά για την επικοινωνία μεταξύ των αντικειμένων ενός
έργου Scratch και αντίστοιχη οπτική αναπαράσταση με την μορφή γράφου. Στην εργασία παρουσιάζεται μια
μελέτη περίπτωσης έργου και ένα σενάριο χρήσης του εργαλείου.
Λέξεις κλειδιά: Scratch, Οπτικοποίηση, Επικοινωνία

Εισαγωγή
Η επικοινωνία μεταξύ αντικειμένων υλοποιείται με διάφορους τρόπους σε όλα τα εισαγωγικά
περιβάλλοντα προγραμματισμού (Νικολός & Κόμης, 2010). Στη γλώσσα προγραμματισμού Scratch
(Resnick, 2009) η επικοινωνία υλοποιείται κυρίως, αλλά όχι αποκλειστικά, με την μετάδοση
(broadcast) μηνυμάτων. Τα μηνύματα ήταν μια από τις έννοιες της γλώσσας προγραμματισμού
Scratch που χρησιμοποιήθηκαν περισσότερο από μαθητές Α΄ Λυκείου (Σαρημπαλίδης, 2012) και οι
μαθητές Ε΄ και Στ΄ Δημοτικού φαίνεται να τα κατανοούν (Κατσούλας κ.α., 2013). Τα μηνύματα είναι
αναγκαία για την ανάπτυξη μεγάλων έργων (Maloney, et al., 2008), επίσης ανήκουν στις έννοιες της
επιστήμης των υπολογιστών που προσεγγίζονται μέσω της Scratch (Armoni & Ben-Ari, 2013). Στην
τελευταία έκδοση της Scratch, την Scratch 2.0 (Γλέζου κ.α., 2014), εκτός από τα μηνύματα,
υπάρχουν άλλοι τρεις βασικοί τρόποι επικοινωνίας μεταξύ αντικειμένων: οι μεταβλητές, οι λίστες και
τα υπόβαθρα.
Το περιβάλλον της Scratch δεν παρέχει οπτικοποίηση για αυτές τις δομές. Ο προγραμματιστής δεν
μπορεί εύκολα να ανακαλύψει ποια αντικείμενα στέλνουν ένα συγκεκριμένο μήνυμα, ή ποια
αντικείμενα διαβάζουν μια συγκεκριμένη μεταβλητή. Τέτοιες ερωτήσεις δεν μπορούν να απαντηθούν
εύκολα στον οπτικό προγραμματισμό επειδή δεν είναι εύκολη η αναζήτηση για μια λέξη κλειδί όπως
π.χ. το όνομα του μηνύματος. Ο προγραμματιστής θα πρέπει να ανιχνεύσει την εντολή μέσα στο
πρόγραμμα, το οποίο είναι πιθανό να μην μπορεί να εμφανιστεί ολόκληρο σε μία οθόνη. Η
επικοινωνία και ο συντονισμός ενός έργου δεν οπτικοποιούνται στο Γραφικό Περιβάλλον
Επικοινωνίας, κάτι που θα ήταν επιθυμητό (Green & Petre, 1996). Οι μηχανισμοί αυτοί βρίσκονται εξ
ολοκλήρου στο νοητικό μοντέλο που δημιουργεί ο προγραμματιστής για το έργο του.
Είναι λοιπόν αναγκαία η ανάπτυξη ενός εργαλείου για την αναπαράσταση της επικοινωνίας έργων
Scratch. Ένα τέτοιο εργαλείο παρουσιάζεται στην επόμενη ενότητα με τη χρήση ενός παραδείγματος.
Στην τρίτη ενότητα παρουσιάζεται μια μελέτη περίπτωσης καθώς και ένα σενάριο χρήσης του
εργαλείου στην εκπαιδευτική διαδικασία.

Πρακτικά Εργασιών 9ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Καστοριά, 24-26 Απριλίου 2015
2 9ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής

Το εργαλείο ScratchGraph
Το εργαλείο ScratchGraph βρίσκεται στη διεύθυνση http://scratchgraph.herokuapp.com
ο χρήστης μπορεί να εισάγει την διεύθυνση του έργου (URL) από την κοινότητα της Scratch
(scratch.mit.edu), εναλλακτικά ο χρήστης μπορεί να ανεβάσει (upload) το αρχείο του Scratch 2.0
(κατάληξη .sb2). Αφού καταχωρηθεί το έργο, το εργαλείο παράγει μια αναφορά για την επικοινωνία
και μια οπτική αναπαράστασή της. Η αναφορά περιλαμβάνει όλες τις μονάδες επικοινωνίας καθώς
και τα αντικείμενα που αλληλεπιδρούν με αυτές.
Η οπτική αναπαράσταση είναι ένας γράφος με έναν κόμβο για κάθε αντικείμενο, λίστα και
μεταβλητή ενώ υπάρχει και ένας κόμβος για το σκηνικό. Αν ένα αντικείμενο στέλνει ένα μήνυμα,
στη Scratch τα μηνύματα στέλνονται προς όλους, και ένα άλλο αντικείμενο το λαμβάνει
δημιουργείται μια σύνδεση από τον κόμβο του αντικειμένου που στέλνει το μήνυμα προς τον κόμβο
του αντικειμένου που το λαμβάνει. Αν ένα αντικείμενο αλλάζει την τιμή μιας μεταβλητής τότε
δημιουργείται μια σύνδεση από τον κόμβο του αντικείμενου προς τον κόμβο της μεταβλητής. Αν ένα
αντικείμενο διαβάζει την τιμή μιας μεταβλητής τότε δημιουργείται μια σύνδεση από τον κόμβο της
μεταβλητής προς τον κόμβο του αντικειμένου. Αντίστοιχα δημιουργούνται και οι συνδέσεις για τις
λίστες και το σκηνικό.

Παράδειγμα
Οι κώδικες για κάθε αντικείμενο ενός προγράμματος Scratch φαίνονται στο Σχήμα 1. Το αντικείμενο
Sprite1 γράφει στη μεταβλητή και τη λίστα, στέλνει ένα μήνυμα και αλλάζει το σκηνικό. Κάθε ένα
από τα υπόλοιπα αντικείμενα ανιχνεύει αυτές τις αλλαγές. Το Sprite2 λαμβάνει το μήνυμα, το Sprite3
διαβάζει την μεταβλητή, το Sprite4 διαβάζει την λίστα και το Sprite5, ανιχνεύει την αλλαγή του
σκηνικού. Για το παράδειγμα αυτό το εργαλείο ScratchGraph παράγει τον Πίνακα 1. Σε αυτόν
φαίνεται πως για κάθε μια μονάδα επικοινωνίας αναγράφονται τα αντικείμενα που αλληλεπιδρούν
(senders για τα μηνύματα και writers για τις άλλες περιπτώσεις) και τα αντικείμενα που ανιχνεύουν
τις αλλαγές (receivers για τα μηνύματα και readers για τις άλλες περιπτώσεις). Σε αυτό το
παράδειγμα δύο αντικείμενα επικοινωνούν μεταξύ τους για κάθε μονάδα επικοινωνίας, ωστόσο
γενικότερα θα μπορούσε κάποια μονάδα επικοινωνίας να περιλαμβάνει και περισσότερα των δύο
αντικείμενα.

Sprite1 Sprite2

Sprite3 Sprite4

Sprite5
Σχήμα 1. Περιγραφή του έργου του παραδείγματος
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Καινοτόμες Παιδαγωγικές 3
Πρακτικές

Εκτός από τον την αναφορά το εργαλείο ScratchGraph παράγει και την οπτικοποίηση της
επικοινωνίας (Σχήμα 2). Σε αυτό το σχήμα φαίνεται με οπτικό τρόπο ότι το Sprite1 επικοινωνεί με το
sprite2 μέσω του μηνύματος message1, με το sprite3 μέσω της μεταβλητής metablete, με το sprite4
μέσω της λίστας lista και με το sprite5 μέσω του σκηνικού (THE SCENE). Τα ονόματα των
μεταβλητών, των λιστών και των μηνυμάτων μετατρέπονται σε ANSI κωδικοποίηση επειδή η
βιβλιοθήκη που χρησιμοποιήθηκε για την απεικόνιση δεν υποστηρίζει Unicode. Για αυτόν τον λόγο η
μεταβλητή «μεταβλητή» εμφανίζεται ως «metablete». Στον πίνακα εμφανίζεται με το Unicode όνομά
της. Από τον γράφο φαίνεται ότι το Sprite1 συντονίζει όλα τα υπόλοιπα αντικείμενα.

Πίνακας 1. Παράδειγμα αναφοράς ScratchGraph


message: message1 scene: scene
Receivers: sprite2 Readers: sprite5
Senders: Sprite1 Writers: Sprite1
list: λίστα variable: μεταβλητή
Readers: sprite4 Readers: sprite3
Writers: Sprite1 Writers: Sprite1

Σχήμα 2. Παράδειγμα γράφου ScratchGraph

Μελέτη περίπτωσης
Για τη μελέτη περίπτωσης χρησιμοποιήθηκε ένα έργο που ανέπτυξε μια τριτοετής φοιτήτρια του
Τμήματος Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική Ηλικία στο Πανεπιστήμιο
Πατρών. Πρόκειται για την τελική εργασία της μετά από δέκα (10) μαθήματα με τη γλώσσα
προγραμματισμού Scratch με ένα πρόγραμμα σπουδών παρόμοιο με αυτό που προτάθηκε στο
(Νικολός & Κόμης, 2010), με τη χρήση της Scratch παρατηρήσαμε ότι οι φοιτητές παράγουν
πολύπλοκα έργα και δείχνουν μια κατανόηση βασικών προγραμματιστικών εννοιών (Φεσάκης &
Σεραφείμ, 2009).
Στο Σχήμα 3 φαίνεται η οπτική αναπαράσταση της επικοινωνίας ενός έργου. Παρατηρούμε πως
υπάρχουν πολλές μονάδες επικοινωνίας και πως η επικοινωνία μεταξύ των αντικειμένων είναι ένα
βασικό στοιχείο του έργου. Στον γράφο φαίνεται πως το σκηνικό παίζει τον βασικότερο ρόλο στην
επικοινωνία, αφού με αυτό αλληλεπιδρούν σχεδόν όλα τα υπόλοιπα αντικείμενα. Τέτοιου είδους
συμπεράσματα είναι χρήσιμα για τον εκπαιδευτικό για να κατανοήσει τον τρόπο σκέψης των
μαθητών καθώς συντονίζουν τα προγράμματά τους.
Ένα πιθανό σενάριο χρήσης του εργαλείου από τον μαθητή είναι η αποσφαλμάτωση ενός μεγάλου
έργου Scratch. Στο εργαστήριο, χρησιμοποιήθηκε μια πρώτη έκδοση του προγράμματος για να
εντοπιστεί ποιό αντικείμενο στέλνει ένα μήνυμα ενώ δεν θα έπρεπε, το αντικείμενο εντοπίστηκε και
διορθώθηκε το σφάλμα. Η διαδικασία αυτή θα ήταν δυσκολότερη χωρίς το ScratchGraph δεδομένου
4 9ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής

ότι υπήρχαν 46 αντικείμενα στο συγκεκριμένο έργο και ο προγραμματιστής θα έπρεπε να ελέγξει τον
κώδικα όλων των αντικειμένων χωρίς να υπάρχει αυτόματος τρόπος όπως η αναζήτηση.

Σχήμα 3. Μελέτη περίπτωσης (http://scratch.mit.edu/projects/21325210/)

Με το εργαλείο ScratchGraph οπτικοποιείται η επικοινωνία που έχει κωδικοποιηθεί μέσα σε έργα


Scratch. Το ScratchGraph βρίσκεται υπό ανάπτυξη, έχει υλοποιηθεί σε Python 2.7, με χρήση του
Django Framework και φιλοξενείται στην πλατφόρμα Heroku. Η οπτικοποίηση υλοποιήθηκε με την
Javascript βιβλιοθήκη Dracula Graph. Ο κώδικας της εφαρμογής διανέμεται σαν Ελεύθερο
Λογισμικό / Λογισμικό Ανοικτού Κώδικα στο Github (https://github.com/dimnikolos/scratchgraph).

Αναφορές
Armoni, M., Ben-Ari, M. (2013). Computer Science Concepts in Scratch. Weizmann Institute of Science: Israel.
Green, T. R. G., Petre, M. (1996). Usability Analysis of Visual Programming Environments: a ‘cognitive
dimensions’ framework. Journal of Visual Languages and Computing. pp.131-174.
Maloney, J., Peppler, K., Kafai, Y. B., Resnick, M., & Rusk, N. (2008). Programming by Choice: Urban Youth
Learning Programming with Scratch. SIGCSE ’08, 367–371. doi:10.1145/1352135.1352260
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum,
E., Silver, J., Silverman, B., Kafai, Y. (2009). "Scratch: programming for all." Communications of the ACM
52.11. pp. 60-67.
Γλέζου, Κ., Ιωσηφίδου, Μ., Μαστρογιάννης, Ι., Σωτηρίου Σ. (2014). Δημιουργώνγτας Ψηφιακές Αφηγήσεις στο
Scratch 2.0. 3ο Πανελλήνιο Εκπαιδευτικό Συνέδριο Ημαθίας. σελ. 373-378.
Κατσούλας, Κ., Κατσούλας, Σ., Κατσούλας, Χ. (2013). Διερεύνηση της μάθησης εννοιών προγραμματισμού με το
Scratch από μαθητές Ε’ και ΣΤ’ Δημοτικού με βάση μια μεικτή ταξινομία Bloom και SOLO. Πρακτικά
Εργασιών 3ου Πανελλήνιου Συνεδρίου «Ένταξη των ΤΠΕ στην Εκπαιδευτική Διαδικασία». Πειραιάς.
Νικολός, Δ., Κόμης, Β. (2013). Επικοινωνία μεταξύ αντικειμένων σε σύγχρονα περιβάλλοντα εισαγωγής στον
προγραμματισμό. Πρακτικά 7ου Πανελληνίου Συνεδρίου Εκπαιδευτικών Πληροφορικής. Θεσσαλονίκη.
Νικολός, Δ., Κόμης, Β. (2010). Μια διδακτική πρόταση για τη γλώσσα προγραμματισμού Scratch. Στο Μ.
Γρηγοριάδου (επιμ.) 5ο Πανελλήνιο Συνέδριο Διδακτικής της Πληροφορικής, σελ. 15-24. Αθήνα.
Σαρημπαλίδης, Ι. (2012). Μάθηση Προγραμματισμού Η/Υ από μαθητές Α΄ Λυκείου με το Scratch. 6ο Πανελλήνιο
Συνέδριο Διδακτικής της Πληροφορικής. Φλώρινα.
Φεσάκης, Γ., Σεραφείμ, Κ. (2009). Μάθηση προγραμματισμού ΗΥ από εκκολαπτόμενους εκπαιδευτικούς με το
SCRATCΗ, 1ο Εκπαιδευτικό Συνέδριο «Ένταξη και χρήση των ΤΠΕ στην εκπαιδευτική διαδικασία». Βόλος.

You might also like