Επικοινωνία μεταξύ αντικειμένων σε σύγχρονα περιβάλλοντα εισαγωγής στον προγραμματισμό

Σχετικά έγγραφα
Εξοικείωση με τη γλώσσα προγραμματισμού Scratch και το ρομποτικό πακέτο Lego WeDo

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

Διδασκαλία προγραμματισμού μέσω σχεδίασης ηλεκτρονικών παιχνιδιών: Η περίπτωση του Game Maker

«Η Επιμόρφωση εκπαιδευτικών Β επιπέδου: η περίπτωση του κλάδου ΠΕ19/20»

Η χρήση διαφορετικών κατηγοριών δραστηριοτήτων στη διδασκαλία της δομή επιλογής στο Scratch

Μαθητές δημοτικού μαθαίνουν προγραμματισμό δημιουργώντας παιχνίδια στο Scratch

Η ΕΚΠΑΙΔΕΥΤΙΚΗ ΡΟΜΠΟΤΙΚΗ ΣΤΟ ΔΗΜΟΤΙΚΟ ΣΧΟΛΕΙΟ

Εργαστηριακή εισήγηση. «Φύλλα Εργασίας για την διδασκαλία του μαθήματος Πληροφορικής Γυμνασίου Η Γλώσσα Προγραμματισμού LOGO»

Δυσκολίες μαθητών Δημοτικού με τη γλώσσα προγραμματισμού Scratch

Διδακτική της Πληροφορικής: ερευνητικές προσεγγίσεις στη μάθηση και στη διδασκαλία (ΜΠΣ)

«Το Λογισμικό Αράχνη Επικουρικό Εργαλείο στην Διδασκαλία του Προγραμματισμού»

Κατερίνα Χατζηφωτεινού. Αλγοριθμικά παιχνίδια & Kodu

Ενότητα 13: Διδασκαλία Οντοκεντρικού Προγραμματισμού. Διδάσκων: Βασίλης Κόμης, Καθηγητής

Η Δομή Επιλογής στη Γλώσσα Προγραμματισμού Scratch: Μια Μελέτη Περίπτωσης με Μαθητές Γυμνασίου

Μάθημα: Διδακτική της Πληροφορικής. Περιγραφή μαθήματος. Διδάσκων: Παλαιγεωργίου Γ. Διαλέξεις: Παρασκευή 17:00-20:00

Πώς το λένε Computer game στο Scratch

Δυσκολίες μαθητών Δημοτικού με τη γλώσσα προγραμματισμού Scratch

Scratch Δημοτικό 5: Οι μεταβλητές σαν ιδιότητες αντικειμένων στη γλώσσα προγραμματισμού Scratch

Βασίλειος Κοντογιάννης ΠΕ19

Η χρήση της Logo για τη διδασκαλία της δομής επανάληψης σε σύγκριση με τη χρήση των LEGO Mindstorms : μελέτη περίπτωσης με μαθητές Γυμνασίου

Scratch Δημοτικό 4: Οι μεταβλητές στη γλώσσα προγραμματισμού Scratch (οι μεταβλητές σαν απαριθμητές)

Στέλιος Ξυνόγαλος Επίκουρος Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

Πληροφορική Γυμνασίου. Δρ. Κοτίνη Ισαβέλλα Σχ. Σύμβουλος Πληροφορικής Πέλλας, Ημαθίας και Πιερίας

Δραστηριότητες Scratchκαι LegoWeDoγια το Δημοτικό

Ενότητα 12: Θέματα Διδακτικής Προγραμματισμού: Διδασκαλία αλγοριθμικής προσέγγισης

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Κωνσταντίνος Δελησταύρου. Fulbright Education Network Greece «Αξιοποιώντας την αφήγηση στη Διδασκαλία» 20/5/2017 YouthLab, Ξάνθη

Μάθηση Προγραμματισμού Η/Υ από μαθητές Α Λυκείου με το Scratch

Περιγραφή μαθήματος. Εαρινό εξάμηνο Διδάσκων: Παλαιγεωργίου Γ. Διαλέξεις: Δευτέρα 14:00-18:00

Διδακτικό σενάριο στις βασικές δομές ακολουθίας και επανάληψης με χρήση του Scratch

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

12:00-13:00 Έναρξη Συνεδρίου Χαιρετισμοί Αμφιθέατρο Προεδρείο: Μ. Γρηγοριάδου, Β. Κόμης, Α. Μικρόπουλος

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Εργαστηριακή Εισήγηση. «Οι μεταβλητές στη γλώσσα προγραμματισμού Scratch»

Διδακτική της Πληροφορικής

Ο προγραμματισμός Η/Υ στο νέο Πρόγραμμα Σπουδών της υποχρεωτικής εκπαίδευσης στο πλαίσιο του μαθήματος για τον Πληροφορικό Γραμματισμό

Μαθαίνοντας τις βασικές έννοιες προγραμματισμού με τη βοήθεια της εκπαιδευτικής ρομποτικής

Παίζουμε μπάσκετ; Εκπαιδευτική δραστηριότητα ρομποτικής στο προγραμματιστικό περιβάλλον Lego Mindstorms

«Μαθαίνω Την Προπαίδεια» Εφαρμογή Σε Microwords Pro

«Εισαγωγή στην ανάπτυξη 3Δ ψηφιακού εκπαιδευτικού παιχνιδιού»

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Εφαρμογές πολυμέσων για τη διδασκαλία των Μαθηματικών

Ταυτότητα εκπαιδευτικού σεναρίου

Scratch Δημοτικό 2 : Εισαγωγή στις βασικές εντολές και λειτουργίες της Scratch

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΠΑΡΑΠΟΜΠΕΣ ΚΑΙ ΑΝΑΦΟΡΕΣ

Η Διδασκαλία της Έννοιας της Διαδικασίας με Χρήση του Ρομπότ Karel σε Μαθητές Γυμνασίου: μια μελέτη περίπτωσης

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ LOGO

"Το λογισμικόgreenfoot ως εκπαιδευτικό εργαλείο"

Ανάπτυξη Παιχνιδιών Γνώσεων με το Scratch: Μια Διαθεματική Προσέγγιση Προγραμματισμού και Μουσικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Διδακτική της Πληροφορικής

Προγραμματισμός. Το περιβάλλον του scratch

Μια Μελέτη Περίπτωσης της Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση με τα LEGO Mindstorms

Ο προγραμματισμός Η/Υ στο νέο Πρόγραμμα Σπουδών της υποχρεωτικής εκπαίδευσης στο πλαίσιο του μαθήματος για τον Πληροφορικό Γραμματισμό

Εισαγωγή στη Δομή Επιλογής με το Προγραμματιστικό Περιβάλλον SCRATCH

Εισάγοντας την έννοια της μεταβλητής στον προγραμματισμό με το λογισμικό «Χελωνόσφαιρα»

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Μάθηση προγραμματισμού ΗΥ από εκκολαπτόμενους εκπαιδευτικούς με το SCRATCH

Η ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΔΗΜΟΤΙΚΟ ΣΧΟΛΕΙΟ

ΔΗΜΙΟΥΡΓΙΑ ΓΕΩΜΕΤΡΙΚΩΝ ΣΧΗΜΑΤΩΝ ΣΕ LOGO

Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη

Διδακτικές Προσεγγίσεις και Εργαλεία για τη Διδασκαλία της Πληροφορικής

1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο;

Διδακτική της Πληροφορικής ΙΙ

Διδασκαλία των δομών επιλογής και επανάληψης με εργαλείο την εκπαιδευτική ρομποτική: μια μελέτη περίπτωσης

ΕΚΠΑΙ ΕΥΤΙΚΟ ΣΕΝΑΡΙΟ

ΔΗΜΙΟΥΡΓΙΑ ΓΕΩΜΕΤΡΙΚΩΝ ΣΧΗΜΑΤΩΝ ΣΕ LOGO

Διδακτική Προσέγγιση για τον Αντικειμενοστρεφή Προγραμματισμό: εφαρμογή στο BlueJ

River IQ Game Computer Game σε Scratch

2 η Παράλληλη Συνεδρία: Προτάσεις Διδασκαλίας & Μελέτες Περίπτωσης στη Δευτεροβάθμια Εκπαίδευση Ι Αίθουσα: A2 Προεδρείο: Ε. Κανίδης, Α.

ΠΡΟΓΡΑΜΜΑ ΕΠΙΜΟΡΦΩΣΗΣ Β ΕΠΙΠΕΔΟΥ ΠΕ19 20 ΑΠΡΙΛΙΟΣ 2013

Τεχνολογίες Πληροφορίας & Επικοινωνιών στην Εκπαίδευση (ΤΠΕ-Ε)

«Robo-πολη» Μια πρόταση για τη διδακτική αξιοποίηση συστημάτων ρομποτικής στο Δημοτικό Σχολείο

Οδηγίες Μορφοποίησης Εργασιών

ΘΕΜΑ : «Από την ΜicroWorlds Pro στην Python. Μια Βιωματική Διδακτική Πρόταση.»

Παρουσίαση διδακτικού σεναρίου: Εισαγωγή στον αντικειμενοστραφή προγραμματισμό μέσω του προγραμματιστικού περιβάλλοντος Scratch

ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Προγραμματιστικό Περιβάλλον, Αλγοριθμικές Δομές, Ψευδοκώδικας, Πρόγραμμα

Διδακτική της Πληροφορικής

Εισαγωγή στη δομή επιλογής στο προγραμματιστικό περιβάλλον SCRATCH.

Δημιουργία παιχνιδιού με το ΜΙΤ AppInvnentor (Πινγκ - Πονγκ).

Αντικειμενοστραφής Προγραμματισμός

Slalom Race Computer Game on Scratch

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH.

Η παραδοσιακή ή κλασική προσέγγιση στην διδασκαλία του Προγραμματισμού. Προβλήματα και λύσεις.

ΘΕΜΑ : Μια βιωματική διδακτική πρόταση στην Πληροφορική Γ Γυμνασίου με θέμα: «Από τον Αλγόριθμο στον Προγραμματισμό σε περιβάλλον MicroWorlds Pro»

Σενάριο 15: Ενεργός Μετεωρολογικός Χάρτης

Κατερίνα Γλέζου Ph.D., M.Sc., M.Ed. Εκπαιδευτικός ΠΕ04/19

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Διδακτική της Πληροφορικής

e-εκπαιδευτησ Περίληψη Η παρούσα εισήγηση αφορά την παρουσίαση του εκπαιδευτικού λογισμικού με τίτλο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Διδακτική της Πληροφορικής


«Δημιουργώντας ψηφιακά παιχνίδια με αξιοποίηση του Scratch 2.0 στην τάξη - Παρουσίαση εργασιών μαθητών»

Συνοπτική παρουσίαση του σεναρίου. Εναλλακτικά περιβάλλοντα προγραμματισμού (2/5) Διδακτικές δραστηριότητες. Διδακτικό υλικό

«Το Υλικό Του Υπολογιστή». Εκπαιδευτικό Λογισμικό Σε Microwords Pro

ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΟΣΟ ΣΥΝΘΗΚΗ ΕΠΑΝΑΛΑΒΕ.ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Κοκκαλάρα Μαρία ΠΕ19

Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro

Transcript:

Επικοινωνία μεταξύ αντικειμένων σε σύγχρονα περιβάλλοντα εισαγωγής στον προγραμματισμό Νικολός Δημήτρης 1, Κόμης Βασίλης 2 dimnikolos@sch.gr, komis@upatras.gr 1 Εκπαιδευτικοί Πληροφορικής 2 Καθηγητής, Τμήμα Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική Ηλικία, Πανεπιστήμιο Πατρών Περίληψη Τα σύγχρονα περιβάλλοντα προγραμματισμού περιλαμβάνουν την έννοια του αντικειμένου ώστε οι μαθητές να μπορούν να υλοποιούν εφαρμογές που να έχουν νόημα για τους ίδιους, λ.χ. παιχνίδια. Οι μαθητές επιθυμούν να προγραμματίζουν πολλά αντικείμενα στις εφαρμογές τους και έτσι θα πρέπει να υλοποιούν και τις αλληλεπιδράσεις μεταξύ τους. Οι μηχανισμοί με τους οποίους προγραμματίζεται η αλληλεπίδραση μεταξύ των αντικειμένων ποικίλλει από περιβάλλον σε περιβάλλον, ενώ κάθε μηχανισμός μπορεί να επηρεάζει τον τρόπο με τον οποίο οι μαθητές μαθαίνουν να προγραμματίζουν. Στην εργασία αυτή επιχειρείται μια επισκόπηση των βασικών τρόπων με τους οποίους υλοποιείται η επικοινωνία μεταξύ αντικειμένων στα εισαγωγικά περιβάλλοντα προγραμματισμού. Από την επισκόπηση φάνηκε ότι το απλό παράδειγμα που επιλέχθηκε δεν μπορεί να υλοποιηθεί με την ίδια προσέγγιση σε όλα τα περιβάλλοντα καταδεικνύοντας έτσι την ανάγκη μελέτης των μηχανισμών επικοινωνίας μεταξύ αντικειμένων. Λέξεις κλειδιά: Logo-like, περιβάλλοντα εισαγωγής στον προγραμματισμό, επικοινωνία μεταξύ αντικειμένων Εισαγωγή Στα ελληνικά προγράμματα σπουδών ο προγραμματισμός εντάσσεται στην Ε' και την Στ' Δημοτικού στα σχολεία με Ενιαίο Αναμορφωμένο Εκπαιδευτικό Πρόγραμμα, με τη χρήση Logo-like περιβαλλόντων (ΦΕΚ 1139/28-6-2010). Η Logo υπάρχει επίσης, στο αναλυτικό πρόγραμμα του μαθήματος της Πληροφορικής της Γ' Γυμνασίου. Το περιβάλλον που χρησιμοποιείται στο βιβλίο είναι το Microworlds Pro αλλά προτείνεται να χρησιμοποιηθεί οποιαδήποτε Logo-like περιβάλλον ελεύθερης διανομής ο εκπαιδευτικός θεωρεί κατάλληλο (Έγγραφο του Υπουργείου Παιδείας με Α.Π. 98600/Γ2/02-09-2011). Τα περιβάλλοντα αυτά επιτρέπουν την προσέγγιση νέων εννοιών προγραμματισμού, όπως είναι το αντικείμενο. Η έννοια του αντικειμένου όπως ορίζεται στα πλαίσια του αντικειμενοστραφούς προγραμματισμού, σαν μια οντότητα που έχει πεδία δεδομένων και μεθόδους, υπάρχει σε όλα τα σύγχρονα εισαγωγικά περιβάλλοντα προγραμματισμού. Τα αντικείμενα μπορεί να ονομάζονται διαφορετικά, π.χ. πράκτορες στο Agentsheets, μορφές στη Scratch ή χελώνες στο Microworlds Pro, αλλά αποτελούν το βασικό δομικό συστατικό των προγραμμάτων που δημιουργεί ο μαθητής. Καθώς ο μαθητής προγραμματίζει είναι δεδομένο πως θα ζητήσει κάποιου είδους αλληλεπίδραση μεταξύ των αντικειμένων, είτε για να δημιουργήσει ένα παιχνίδι ή μια ενδιαφέρουσα ψηφιακή ιστορία, ή μια προσομοίωση. Ο τρόπος με τον οποίο υλοποιείται αυτή η αλληλεπίδραση ποικίλει από περιβάλλον σε περιβάλλον. Ο μηχανισμός με τον οποίο το κάθε περιβάλλον επιτρέπει την επικοινωνία μεταξύ αντικειμένων επηρεάζει τις προγραμματιστικές έννοιες που θα χρειαστεί ο μαθητής να κατακτήσει για να υλοποιήσει πολύπλοκες εφαρμογές. Αν ο μαθητής για να εκτελέσει μια μέθοδο ενός άλλου αντικειμένου χρησιμοποιήσει τον τελεστή της τελείας ".", τότε κατακτά μια έννοια πιο κοντά στον τυπικό αντικειμενοστραφή προγραμματισμό. Αν χρησιμοποιήσει μηνύματα τότε κατακτά ένα μηχανισμό που χρησιμοποιείται σε άλλα προγραμματιστικά παραδείγματα. Επίσης, οι μαθητές Πρακτικά Εργασιών 7 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Θεσσαλονίκη, 12-14 Απριλίου 2013

2 7 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής πιθανόν να δυσκολεύονται περισσότερο να κατακτήσουν κάποιους τρόπους επικοινωνίας σε σχέση με άλλους. Για τον προγραμματισμό με τη Scratch παρατηρήθηκε πως οι φοιτητές δυσκολεύτηκαν περισσότερο στον συγχρονισμό με χρήση μεταβλητών σε σχέση με τον συγχρονισμό με χρήση μηνυμάτων (Νικολός & Κόμης, 2010). Ο συγχρονισμός των αντικειμένων και των διεργασιών από τους μαθητές είναι βασικός στην κατανόηση και την ανάπτυξη των προγραμμάτων τους, όπως έδειξε μια σχετική έρευνα που για την εκμάθηση της γλώσσας Scratch (Meerbaum-Salant, 2011). Είναι πιθανόν και σε άλλες γλώσσες η επικοινωνία μεταξύ αντικειμένων να είναι το ίδιο σημαντική. Για να απαντηθούν ερωτήματα σαν τα παραπάνω χρειάζεται μια επισκόπηση των εισαγωγικών περιβαλλόντων προγραμματισμού και των τρόπων με τους οποίους αντιμετωπίζουν την επικοινωνία μεταξύ αντικειμένων. Στην επόμενη ενότητα γίνεται μια αναφορά στα διαθέσιμα περιβάλλοντα και αυτά που επιλέχθηκαν για την παρούσα εργασία περιγράφονται εκτενέστερα. Στην τρίτη ενότητα, δίνεται η υλοποίηση ενός απλού παραδείγματος συγχρονισμού σε κάθε περιβάλλον και στην τελευταία ενότητα διατυπώνονται τα συμπεράσματα της επισκόπησης. Περιβάλλοντα εισαγωγής στον προγραμματισμό Στην κατηγοριοποίηση που προτάθηκε στο (Φεσάκης & Δημητρακοπούλου, 2006) τα εκπαιδευτικά περιβάλλοντα προγραμματισμού χωρίζονται στις κατηγορίες: Οικογένεια Logo, Γενικευμένοι Χελωνόκοσμοι, Περιβάλλοντα εκπαιδευτικής ρομποτικής, Περιβάλλοντα Αυτόματου Ελέγχου, Περιβάλλοντα Γλωσσών Χαμηλού Επιπέδου. Στην παρούσα εργασία δε θα χρησιμοποιηθούν λογισμικά που προγραμματίζουν ρομποτικές συσκευές, αφού τα αντικείμενα που λειτουργούν ανεξάρτητα είναι λίγα και αφορούν τους, συνήθως λίγους σε αριθμό, αισθητήρες και κινητήρες που υπάρχουν στην κάθε ρομποτικό πακέτο. Θα εξαιρεθεί και το λογισμικό Karel, μιας και προγραμματίζεται η συμπεριφορά ενός και μόνο αντικειμένου. Οι κατηγορίες "Περιβάλλοντα Αυτόματου Ελέγχου" και "Περιβάλλοντα Γλωσσών Χαμηλού Επιπέδου" είναι ειδικού σκοπού δεν εντάσσονται σε αυτή τη μελέτη. Έχουν συμπεριληφθεί περιβάλλοντα τα οποία αναφέρονται στη διεθνή βιβλιογραφία και είναι αρκετά διαδεδομένα για τη διδασκαλία του προγραμματισμού. Πίνακας 1. Περιβάλλοντα εισαγωγής στον προγραμματισμό Περιβάλλον Προγραμματιστικό Διάθεση Πλατφόρμε Ελληνική Οπτικός παράδειγμα ς γλώσσα προγραμματισμός Προγραμματισμός AgentSheets βασισμένος σε κανόνες Εμπορικό Windows, Mac (rule based programming) Alice Αντικειμενοστραφής Windows, Δωρεάν προγραμματισμός Mac, Linux GameMaker Αντικειμενοστραφής Εμπορικό Windows, προγραμματισμός Mac Greenfoot Αντικειμενοστραφής Ανοικτού Windows, προγραμματισμός (Java) κώδικα Mac, Linux Προγραμματισμός Kodu βασισμένος σε κανόνες (rule based programming) Δωρεάν Windows Microworlds Logo Εμπορικό Windows, Mac Scratch Logo like Ανοικτού Windows, κώδικα Mac, Linux Squeak etoys Logo like Ανοικτού Windows, κώδικα Mac, Linux Starlogo Logo like Ανοικτού Windows, κώδικα Mac, Linux Yenka Προγραμματισμός με διαγράμματα ροής Εμπορικό Windows, Mac, Linux

Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Προκλήσεις και Προοπτικές 3 Μερικά εισαγωγικά περιβάλλοντα προγραμματισμού είναι τα Alice, Greenfoot, Microworlds, Scratch, Squeak και Starlogo (Hazzan et al., 2011, p. 136). Τα περιβάλλοντα αυτά ανήκουν στις κατηγορίες "Οικογένεια Logo" και "Γενικευμένοι Χελωνόκοσμοι". Στην έρευνα αυτή θα συμπεριληφθούν επίσης και τα λογισμικά Microsoft Kodu, AgentSheets και GameMaker από την κατηγορία "Περιβάλλοντα Ανάπτυξης Παιχνιδιών". Επίσης, θα ενταχθεί και το Yenka που θα μπορούσε να κατηγοριοποιηθεί στους γενικευμένους χελωνόκοσμους. Αντί για την απλή Squeak που είναι μια εξέλιξη της Smalltalk, θα χρησιμοποιηθεί το εκπαιδευτικό περιβάλλον Squeak etoys. Στον πίνακα 1 φαίνονται τα περιβάλλοντα που θα μελετηθούν μαζί με τα βασικά τους χαρακτηριστικά. Συγχρονισμός αντικειμένων σε περιβάλλοντα εισαγωγής στον προγραμματισμό Στην ανάλυση που ακολουθεί χρησιμοποιείται ένα απλό παράδειγμα συγχρονισμού αναφέρεται στο (Νικολός & Κόμης, 2010). Το πρόγραμμα αποτελείται από ένα κουμπί και μια γάτα και θα πρέπει όταν πατηθεί το κουμπί να κινηθεί η γάτα. Με αυτό τον τρόπο η πυροδότηση ενός γεγονότος (trigger) αφορά ένα αντικείμενο, το κουμπί, ενώ το ίδιο το γεγονός (event) αφορά ένα δεύτερο αντικείμενο, τη γάτα. Κρίνεται σκόπιμο να μη μελετηθούν πιο σύνθετα παραδείγματα συγχρονισμού, π.χ. με αριθμητικές παραμέτρους, δεδομένου ότι τέτοια προβλήματα δεν είναι πιθανόν να αντιμετωπιστούν σε εισαγωγικά μαθήματα προγραμματισμού (δημοτικό ή γυμνάσιο). Agentsheets Το περιβάλλον Agentsheets χρησιμοποιείται για τη δημιουργία προσομοιώσεων από ένα ευρύ φάσμα προγραμματιστών, από αρχάριους έως επαγγελματίες. Βασικό στοιχείο του προγραμματισμού με το Agentsheets είναι οι πράκτορες. Οι πράκτορες έχουν μια γραφική απεικόνιση στο περιβάλλον και μπορούν να προγραμματιστούν με κανόνες που διέπουν τη συμπεριφορά των πρακτόρων (Σπυρόπουλος & Δαγδιλέλης, 2005). Οι συνθήκες και οι εντολές έχουν τοπικό χαρακτήρα, δηλαδή αφορούν τον πράκτορα στον οποίο αναφέρονται. Ωστόσο, έχει υλοποιηθεί η εντολή "εκπέμπω" (μετάδοση μηνύματος) με την οποία ένας πράκτορας μπορεί να δώσει εντολή σε κάποιον άλλο πράκτορα (Σχήμα 1). Alice Σχήμα 1. Επικοινωνία μεταξύ πρακτόρων στο περιβάλλον Agentsheets Στο περιβάλλον Alice προγραμματίζεται ένας ιδεατός κόσμος όπου "κατοικούν" αντικείμενα με τη μορφή τρισδιάστατων μοντέλων. Τα αντικείμενα αυτά έχουν προγραμματιζόμενη συμπεριφορά. Η Alice μοιράζεται πολλά χαρακτηριστικά με τις συνήθεις γλώσσες αντικειμενοστραφούς προγραμματισμού και έτσι το κάθε αντικείμενο έχει ιδιότητες και μεθόδους (Cooper et al., 2000). Στο Alice μια μέθοδος μπορεί να καλέσει μια μέθοδο ενός άλλου αντικειμένου. Αν και η υλοποίηση γίνεται με γραφικά, σέρνοντας δηλαδή το αντίστοιχο μπλοκ μέσα στο σώμα της μεθόδου, το

4 7 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής αντικείμενο στο οποίο αναφέρεται η κάθε μέθοδος διαχωρίζεται από τη μέθοδο με τον τελεστή της τελείας που είναι συνηθισμένος στις αντικειμενοστραφείς γλώσσες προγραμματισμού. Στο Σχήμα 2 φαίνεται με ποιο τρόπο μπορεί το αντικείμενο button να καλέσει μια μέθοδο του αντικειμένου sittingcat. Σχήμα 2. Η μέθοοδς process του αντικειμένου button καλεί τη μέθοδο move του αντικειμένου sittingcat μέσω του τελεστή της τελείας "." GameMaker Το GameMaker είναι ένα περιβάλλον οπτικού προγραμματισμού στο οποίο μπορούν να προγραμματιστούν παιχνίδια με γραφικά δύο διαστάσεων. Ο προγραμματισμός γίνεται μέσω αντικειμένων των οποίων η συμπεριφορά προγραμματίζεται (Hernandez et al., 2010). Στο GameMaker δημιουργούνται γεγονότα (events) για τα αντικείμενα που αποτελούν το πρόγραμμα. Ένα trigger που αφορά ένα αντικείμενο μπορεί να δώσει εντολή σε ένα άλλο αντικείμενο να εκτελέσει μια ενέργεια. Για τον σκοπό αυτό έχει υλοποιηθεί η επιλογή «Applies to» που σε αυτή την περίπτωση σημαίνει «Εφαρμόζεται σε». Στο Σχήμα 3, όταν πατηθεί με το ποντίκι το κουμπί (αντικείμενο button1) τότε μπορεί να δοθεί η εντολή move fixed η οποία θα εφαρμοστεί στη γάτα (αντικείμενο cat1). Greenfoot Σχήμα 3. Υλοποίηση του απλού παραδείγματος με GameMaker Το περιβάλλον Greenfoot ο μαθητής προγραμματίζει αντικείμενα, που ονομάζονται Ηθοποιοί (Actors), τα οποία βρίσκονται σε έναν Κόσμο (World). Το περιβάλλον έχει δημιουργηθεί με βάση το BlueJ και χρησιμοποιείται η γλώσσα προγραμματισμού Java (Al-Bow et al., 2008). Στο περιβάλλον αυτό ορίζονται κλάσεις και στιγμιότυπα, είναι ένα περιβάλλον που υλοποιεί πλήρως το αντικειμενοστραφές προγραμματιστικό παράδειγμα. Στο περιβάλλον Greenfoot ένα αντικείμενο μπορεί να δώσει εντολή σε κάποιο άλλο αντικείμενο να εκτελέσει μια εντολή. O προγραμματιστής θα πρέπει να βρει πρώτα το όνομα του στιγμιότυπου στο οποίο θέλει να αναφερθεί και στη συνέχεια να χρησιμοποιήσει τον τελεστή της τελείας. Η Greenfoot υλοποιεί τη συνάρτηση getobjects για τον σκοπό αυτό (Σχήμα 4). Σε αυτό το περιβάλλον δίνεται η δυνατότητα να οριστούν ιδιωτικές (private) μέθοδοι και σε αυτή την περίπτωση δεν προσπελαύνονται από άλλα αντικείμενα.

Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Προκλήσεις και Προοπτικές 5 Σχήμα 4: Η μέθοδος Act() για το αντικείμενο Button καλεί την μέθοδο move του αντικειμένου cat1. Kodu Με τη γλώσσα προγραμματισμού Kodu δημιουργούνται εικονικοί κόσμοι. Στους κόσμους αυτούς εισάγονται αντικείμενα τα οποία μπορούν να προγραμματιστούν. Ο προγραμματισμός γίνεται με συγκεκριμένους κανόνες-συνθήκες, τις οποίες καθορίζει ο χρήστης και πρέπει να ικανοποιούνται μόνες ή συνδυαστικά (Κολόσακα κ.α., 2011). Στη Kodu, κανένα αντικείμενο δεν μπορεί να δεχθεί εντολές από κάποιο άλλο αντικείμενο. Ωστόσο, τα αντικείμενα μπορούν να ανιχνεύσουν γεγονότα που δεν τα αφορούν. Στο Σχήμα 5 η μορφή Kodu ανιχνεύει το γεγονός «έγινε κλικ με το ποντίκι σε έναν κόκκινο πιεστήρα» και εκτοξεύει μια βολή. Microworlds Pro Σχήμα 5. Το Kodu ανιχνεύει ένα γεγονός που αφορά ένα άλλο αντικείμενο Στο σχολικό βιβλίο του Γυμνασίου το περιβάλλον του Microworlds Pro δίνεται ένα παράδειγμα προγραμματισμού με περισσότερα αντικείμενα (χελώνες) όπου το ένα αντικείμενο είναι «Γάτα» και το άλλο «Σκύλος». Ένα αντικείμενο μπορεί να δώσει σε οποιοδήποτε άλλο μια εντολή με τη χρήση του τελεστή κόμμα,. Ένα παράδειγμα φαίνεται στο Σχήμα 6. Από πλευράς σύνταξης ο τελεστής αυτός μοιάζει με τον τελεστή της τελείας που χρησιμοποιήθηκε στις γλώσσες που ήταν πλησιέστερες στα αντικειμενοστραφή παραδείγματα.

6 7 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Σχήμα 6. Η διεργασία ότανπατηθεί εκτελείται όταν γίνει κλικ στο αντικείμενο «κουμπί» Scratch Στη Scratch ο μαθητής προγραμματίζει τη συμπεριφορά του σκηνικού και των μορφών που αποτελούν την εφαρμογή του. Ο χειρισμός των πολυμέσων είναι διαισθητικός και υπάρχουν εντολές που αλλάζουν την εμφάνιση των μορφών η αναπαράγουν κάποιον ήχο. Εξωτερικές εικόνες και ήχοι μπορούν να εισαχθούν στις εφαρμογές και ο προγραμματιστής ελέγχει τον τρόπο με τον οποίο εμφανίζονται στην κατασκευή του (Resnick et al., 2009). Ο άμεσος τρόπος συγχρονισμού μεταξύ των αντικειμένων είναι τα μηνύματα (Νικολός & Κόμης, 2010). Στο Σχήμα 7 όταν το «κουμπί» πατηθεί στέλνει ένα μήνυμα που η «γάτα» το λαμβάνει και κινείται. Το μήνυμα δεν απευθύνεται στη «γάτα» αλλά γίνεται εκπομπή του μηνύματος και όλα τα αντικείμενα της Scratch μπορούν να το λάβουν. Squeak etoys Σχήμα 7. Επικοινωνία αντικειμένων μέσω μηνυμάτων στη Scratch Στο Squeak etoys ο μαθητής μπορεί να ζωγραφίσει αντικείμενα και μετά να τα προγραμματίσει (Kay, 2005). Στο Squeak etoys ένα αντικείμενο μπορεί να δώσει σε οποιοδήποτε άλλο μια εντολή αφού οι μέθοδοι των αντικειμένων μπορούν να κληθούν από οποιαδήποτε άλλη μέθοδο (Σχήμα 8). Σχήμα 8. Η διεργασία σενάριοεντολών1 αναφέρεται στο κουμπί αλλά μπορεί να κάνει τη γάτα να κινηθεί Starlogo Το περιβάλλον Starlogo είναι ένα οπτικό περιβάλλον προγραμματισμού στο οποίο τα συντακτικά λάθη αποφεύγονται μέσω του γραφικού τρόπου σύνταξης των προγραμμάτων. Οι χελώνες που αποτελούν το βασικό αντικείμενο στη StarLogo μπορούν εύκολα να χρησιμοποιηθούν σαν προγραμματιζόμενοι χαρακτήρες ενός παιχνιδιού, που ελέγχονται από τον χρήστη (Begel & Klopfer, 2007).

Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Προκλήσεις και Προοπτικές 7 Στη Starlogo υπάρχει η εντολή "ask agent" η οποία μπορεί να υλοποιήσει απλά παραδείγματα όπως αυτό που αναφέραμε (Σχήμα 9). Αν και η εμβέλεια είναι όπως στη Scratch και δεν μπορούν εντολές που αναφέρονται σε μία κλάση αντικειμένων να κληθούν από άλλες, η εντολή «ask agent» δίνει αυτή τη δυνατότητα επικοινωνίας και συγχρονισμού των στιγμιοτύπων μεταξύ τους. Yenka Σχήμα 9. Η εντολή ask agent Στο περιβάλλον προγραμματισμού Yenka ο χρήστης προγραμματίζει με διαγράμματα ροής. Εντολές που αναφέρονται σε διαφορετικά αντικείμενα μπορούν να συνδυαστούν σε ένα πρόγραμμα όπως φαίνεται στο Σχήμα 10. Συμπεράσματα Σχήμα 10 Το απλό πρόβλημα συγχρονισμού στο περιβάλλον Yenka Κάθε περιβάλλον από αυτά που μελετήθηκαν σε αυτή την εργασία υλοποιεί τους δικούς του τρόπους επικοινωνίας μεταξύ των αντικειμένων. Στο AgentSheets χρησιμοποιούνται μηνύματα για την επικοινωνία μεταξύ αντικειμένων. Τα μηνύματα αυτά απευθύνονται μόνο σε έναν παραλήπτη. Μηνύματα χρησιμοποιούνται και στη Scratch αλλά αυτά τα μηνύματα εκπέμπονται προς όλους. Το αντικείμενο που θα πρέπει να εκτελέσει κάποια ενέργεια θα πρέπει να ανιχνεύσει το αντίστοιχο μήνυμα. Στο περιβάλλον Alice, μια μέθοδος ενός αντικειμένου μπορεί να καλέσει μια μέθοδο από ένα άλλο αντικείμενο, το ίδιο συμβαίνει στο Yenka και στο Squeak etoys. Στο γραφικό περιβάλλον που παρέχεται σε αυτά τα εργαλεία οι μέθοδοι διαφορετικών αντικειμένων μπορούν να συνδυαστούν.

8 7 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Στο GameMaker ακολουθείται μια διαφορετική προσέγγιση. Μια εντολή μπορεί να εφαρμοστεί σε οποιοδήποτε άλλο αντικείμενο δηλώσει ο προγραμματιστής. Για αυτό το σκοπό έχει υλοποιηθεί η εντολή «Applies to». Στο Greenfoot και στο Microworlds Pro, δύο περιβάλλοντα στα οποία ο μαθητής προγραμματίζει με κείμενο, χρησιμοποιείται ο τελεστής τελεία και ο τελεστής κόμμα αντίστοιχα. Στο Greenfoot ειδικά θα πρέπει πρώτα να δημιουργηθεί το στιγμιότυπο της κλάσης ώστε να κληθεί κάποια μέθοδός της. Πρόκειται για μια πλήρως αντικειμενοστραφή προσέγγιση που προκύπτει από τη χρήση της γλώσσας Java. Στο Microworlds Pro όλες οι διαδικασίες είναι κοινές (καθολικές) και με τον τελεστή καθορίζεται το αντικείμενο που θα καλέσει τη διαδικασία. Στο Kodu, δεν υπάρχουν ούτε μηνύματα ούτε μπορεί να καλέσει ένα αντικείμενο τις συναρτήσεις κάποιου άλλου. Ωστόσο, κάποιο αντικείμενο μπορεί να ανιχνεύσει γεγονότα που αφορούν ένα άλλο αντικείμενο μέσα στο πρόγραμμα. Τέλος στη Starlogo έχει υλοποιηθεί η εντολή «ask agent» μέσω της οποίας ένα αντικείμενο μπορεί να καλέσει μια διαδικασία ενός άλλου αντικειμένου. Ουσιαστικά πρόκειται για μια λύση που έχει κοινά χαρακτηριστικά τόσο με τα κατευθυνόμενα μηνύματα (Agentsheets) όσο και με τον τελεστή «Applies to» (GameMaker). Συνοπτικά οι λύσεις που έχουν υλοποιηθεί για το πρόβλημα κουμπί-γάτα στα περιβάλλοντα αυτά φαίνονται στον Πίνακα 2. Πίνακας 2. Το απλό παράδειγμα συγχρονισμού για τα εισαγωγικά περιβάλλοντα Περιβάλλον Agentsheets Scratch Alice, Yenka, Squeak etoys GameMaker Greenfoot Microworlds Pro Διαδικασία για το αντικείμενο «κουμπί» Όταν «κουμπί» πατηθεί, εκπέμπω «γάτα» Όταν «κουμπί» πατηθεί, μετάδωσε Όταν «κουμπί» πατηθεί, «γάτα» Όταν «κουμπί» πατηθεί, applies to «γάτα» Όταν στιγμιότυπο «κουμπί» πατηθεί, στιγμιότυπο «γάτα». Όταν «κουμπί» πατηθεί, «γάτα», Kodu - Διαδικασία για το αντικείμενο «γάτα» Στο άκουσμα κίνηση Όταν λάβω κίνηση (καθολική) Κανόνας: Όταν «κουμπί» πατηθεί Starlogo Askagent «γάτα» Από την επισκόπηση των τρόπων επικοινωνίας μεταξύ αντικειμένων στα περιβάλλοντα εισαγωγής στον προγραμματισμό φάνηκε ότι δεν έχει ακολουθηθεί ένας κοινός τρόπος προσέγγισης του προβλήματος. Μπορούμε να υποθέσουμε πως διαφορετικοί μηχανισμοί θα έχουν διαφορετικό βαθμό δυσκολίας για τους μαθητές. Επίσης, δεδομένων αυτών των διαφορών, αν οι μαθητές εξοικειωθούν με κάποιο από αυτά τα περιβάλλοντα δεν είναι σίγουρο πως θα μπορούν να μεταφέρουν τις γνώσεις τους σε κάποιο άλλο περιβάλλον είτε εισαγωγικό ή εμπορικό. Ανάλογες συγκρίσεις μπορούν να γίνουν ανάμεσα στα περιβάλλοντα αυτά και για άλλες σύγχρονες προγραμματιστικές έννοιες, όπως για παράδειγμα οι έννοιες της κλάσης και του στιγμιοτύπου και οι έννοιες των καθολικών και ιδιωτικών μεταβλητών, ώστε να προταθεί μια πληρέστερη από διδακτικής άποψης ανάλυσή τους. Η ανάλυση αυτή μπορεί να αποτελέσει εργαλείο επιλογής προγραμματιστικού περιβάλλοντος από τους εκπαιδευτικούς που επιθυμούν να εισαγάγουν νέες έννοιες προγραμματισμού στους μαθητές τους.

Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Προκλήσεις και Προοπτικές 9 Αναφορές Al-Bow, M., Austin, D., Edgington, J., Fajardo, R., Fishburn, J., Lara, C., Leutenegger, S., Meyer, S. (2008). Using Greenfoot and Games to Teach Rising 9th and 10th Grade Novice Programmers. Sandbox Symposium 2008. pp. 55-60. Begel, A., Klopfer, E. (2007). Starlogo TNG: An introduction to game development. The Journal of E-Learning. Brown, N. C. C., Kölling, M., Crick, T., Jones, S. P., Humphreys, S., & Sentance, S. (2012). Bringing Computer Science Back Into Schools: Lessons from the UK. SIGCSE 2012. To appear. Cooper, S., Dann, W., Pausch, R. (2000) ALICE: A 3-D Tool for introductory programming concepts. Journal of Computing Sciences in Colleges 15(5), pp 107-116. Gove, M. (2012). Encouraging rigorous Computer Science courses. Speech presented at BETT, London. Kafai, Y. B. (1995). Minds in Play. New Jersey: Lawrence Erlbaum. Kay, A. (2005). Squeak Etoys, Children & Learning. VPRI Research Note RN-2005-001. Διαθέσιμο στο ftp://debian.ofset.org/speeches/jrfernandez/malaga08/doc/etoys_n_learning.pdf. Ημερομηνία ανάκτησης: 21/1/2013. Hernandez, CC., Silva, L., Segura, RA., Schimiguel, J., Ledón0 MFP., Bezerra, LNM., Silveira, IF. (2010). Teaching Programming Principles through a Game Engine. CLEI Electronic Journal 13(2)3. Resnick, M., Maloney, J., Monroy-Hernandez, 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, vol. 52, no. 11, pp. 60-67 (Nov. 2009) Κολόσακα, Ο., Ρετάλης, Σ., Γεωργιακάκης, Π., Ζαγλαρίδου, Ε. (2011). Αξιοποιώντας το Λογισμικό Kodu για την Εξοικείωση των Μαθητών με Βασικές Έννοιες Προγραμματισμού. Πρακτικά 5 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής. Ιωάννινα. Νικολός, Δ., Κόμης, Β. (2010). Μια διδακτική πρόταση για τη γλώσσα προγραμματισμού Scratch. Στο Μ. Γρηγοριάδου (επιμ.) 5ο Πανελλήνιο Συνέδριο Διδακτικής της Πληροφορικής. Αθήνα. σελ. 15-24. Σπυρόπουλος, Χ., Δαγδιλέλης, Β. (2005). Πρόταση διδασκαλίας της αντικειµενοστραφούς προσέγγισης σε αρχάριους προγραμματιστές, µε το περιβάλλον AgentSheets. 3ο Πανελλήνιο Συνέδριο Διδακτική της Πληροφορικής. Κόρινθος. Φεσάκης Γ., Δημητρακοπούλου Α., (2006), Επισκόπηση του χώρου των εκπαιδευτικών περιβαλλόντων προγραμματισμού ΗΥ: Τεχνολογικές και Παιδαγωγικές προβολές, ΘΕΜΑΤΑ στην Εκπαίδευση, 7(3), σελ. 279-304