Το πρόβλημα με τις 8 Βασίλισσες

 

Ταυτότητα Σεναρίου

 

 

 

 

 

 

Σύντομη ανασκόπηση σεναρίου

 

 

Η βασική ιδέα του σεναρίου είναι ο σχεδιασμός της λύσης ενός γνωστού, πραγματικού προβλήματος, σε προγραμματιστικό περιβάλλον. Συγκεκριμένα, το πρόβλημα με το οποίο θα ασχοληθούν οι μαθητές είναι το «Πρόβλημα με τις 8 Βασίλισσες». Αρχικά, οι μαθητές καλούνται να τοποθετήσουν 8 Βασίλισσες σε μια πραγματική σκακιέρα 8χ8, με τέτοιο τρόπο, ώστε καμία Βασίλισσα να μην απειλείται από κάποια άλλη. Αφού εντοπίσουν τις αντικειμενικές δυσκολίες της λύσης, χρησιμοποιούν το προγραμματιστικό περιβάλλον για να κατασκευάσουν αρχικά μια έξυπνη σκακιέρα, που θα τους απαλλάξει από την προσπάθεια ελέγχου της ορθότητας της λύσης που αντιμετώπισαν στην απόπειρα τους να λύσουν το πρόβλημα στην πραγματική σκακιέρα (Εικόνα 19-1).

 

 

Εικόνα 19‑1

 

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

 

 

AgentSheets, Internet Explorer, Ζωγραφική

 

 

Οι προσομοιώσεις προσφέρονται σε δύο διαφορετικές εκδόσεις: Η μία έκδοση, η οποία περιέχει και τον πηγαίο κώδικα, αποτελεί έργο του AgentSheets και λειτουργεί μόνο στο περιβάλλον της εφαρμογής AgentSheets. Η δεύτερη έκδοση είναι σε μορφή applet και λειτουργεί μέσω ενός οποιουδήποτε φυλλομετρητή (Internet Browser), όπως ο Internet Explorer ή ο Mozilla Firefox.

 

Στα σενάρια επισημαίνεται κάθε φορά αναλυτικά, ποια έκδοση θα πρέπει να χρησιμοποιήσει ο εκπαιδευτικός και πού ακριβώς θα τη βρει.

 

Για να λειτουργήσουν ορθά τα applets θα πρέπει ο υπολογιστής να έχει εγκατεστημένο το Java Runtime Environment (JRE) και ο φυλλομετρητής να είναι ενεργοποιημένος ως προς την εκτέλεση εντολών Java (Java enabled). To JRE μπορείτε να το κατεβάσετε από το Internet (http://www.java.com), αλλά για ευκολία εγκαθίσταται αυτόματα και κατά την εγκατάσταση του AgentSheets.

 

Αν έχετε εγκαταστήσει το AgentSheets ή έχετε κατεβάσει το JRE στον υπολογιστή σας και παρόλα αυτά δεν μπορείτε να δείτε τις προσομοιώσεις στα applets, τότε θα πρέπει να ελέγξετε τις ρυθμίσεις του φυλλομετρητή που χρησιμοποιείτε. Στον I.E. επιλέξτε Εργαλεία -> Επιλογές Internet. Στο παράθυρο που ανοίγει επιλέξτε Ασφάλεια -> Προσαρμοσμένο Επίπεδο και εκεί κάντε κλικ στην επιλογή Ενεργοποίηση κάτω από την περιγραφή Εκτέλεση βοηθητικών εφαρμογών της Java. Αντίστοιχα, στο Mozilla  Firefox επιλέξτε Εργαλεία -> Επιλογές. Στο παράθυρο που ανοίγει επιλέξτε Περιεχόμενο και κάντε κλικ στο πεδίο Ενεργοποίηση Java.

 

 

Μια πραγματική σκακιέρα με 8 ίδια πιόνια για κάθε ζευγάρι μαθητών. Εναλλακτικά, μπορεί να εκτυπωθεί το αρχείο skakiera.jpg για να δώσουμε στους μαθητές τη σκακιέρα και τα 8 πιόνια σε χάρτινη μορφή.

 

Συσχέτιση γνωστικού αντικειμένου και Σεναρίου

 

Στα πλαίσια της ενότητας Σχεδιάζω-Εφαρμόζω, οι μαθητές θα πρέπει να επιλύσουν προβλήματα σε προγραμματιστικό περιβάλλον και να εξοικειωθούν με τη διαδικασία εκσφαλμάτωσης και χρήσης πραγματικών δεδομένων.

 

Η παρούσα δραστηριότητα, χρησιμοποιώντας ένα πλαίσιο προβλήματος ενταγμένο σε γνωστά και κλασικά παιχνίδια που γνωρίζουν οι μαθητές από τον πραγματικό κόσμο – όπως είναι το σκάκι – τους οδηγεί στο συνδυασμό της μαθηματικής έννοιας της Αναδρομής, με απλές προγραμματιστικές δομές, προκειμένου να σχεδιάσουν μια προγραμματιστική λύση στον υπολογιστή.

 

Αν και η Αναδρομή είναι από τις δυσκολότερες έννοιες για τους αρχάριους προγραμματιστές, η κατανόηση της αποτελεί ένα πολύ σημαντικό εργαλείο σκέψης και αντιμετώπισης μιας μεγάλης ομάδας προβλημάτων. Η  συγκεκριμένη δραστηριότητα είναι απαλλαγμένη από τη μαθηματικοποιημένη προσέγγιση της αναδρομής, η οποία ωστόσο, μπορεί να αναφερθεί μετά την ολοκλήρωση της.

 

Η αρχική προσέγγιση του προβλήματος με τη χρήση μιας πραγματικής σκακιέρας, ωθεί τους μαθητές στην εφαρμογή της μεθόδου Trial and Error, που στη συνέχεια μεταφέρεται ομαλά και στην προσέγγιση με το προγραμματιστικό περιβάλλον. Έτσι λοιπόν, αντιμετωπίζουν πλέον τη γλώσσα προγραμματισμού ως εργαλείο σκέψης και διερεύνησης, ανάλογο με την πραγματική τους σκέψη, αφού αρχικά τουλάχιστον δεν τους ζητείται να καταλήξουν σε μια λύση (για παράδειγμα, ένα αριθμητικό αποτέλεσμα ή το πλήθος των δυνατών λύσεων) που θα μπορούσε να είναι σωστή ή λάθος, αλλά να υλοποιήσουν ένα μηχανισμό που θα αποτελέσει εργαλείο για τους ίδιους, προκειμένου να εντοπίσουν ευκολότερα τη λύση του προβλήματος.

 

Εκπαιδευτικές Δραστηριότητες

 

Δραστηριότητα 1: «Το πρόβλημα με τις 8 Βασίλισσες»

Γενικοί διδακτικοί στόχοι

 

 

Ειδικοί διδακτικοί στόχοι

 

 

Προαπαιτούμενα

 

Για την υλοποίηση της συγκεκριμένης δραστηριότητας πρέπει ο εκπαιδευτικός να έχει εξοικειωθεί σημαντικά με το προγραμματιστικό περιβάλλον AgentSheets και να έχει υλοποιήσει τουλάχιστον μια προσομοίωση (πχ αυτή της εισαγωγής του Εγχειριδίου χρήσης  - Virus Attack). Το ίδιο ισχύει και για τους μαθητές που θα πρέπει να έχουν χρησιμοποιήσει το περιβάλλον εργασίας τουλάχιστον για την υλοποίηση της παραπάνω προσομοίωσης (Virus Attack). Επίσης, οι μαθητές θα πρέπει να έχουν διδαχθεί τα τρία πρώτα κεφάλαια της ενότητας 3 (Σχεδιάζω-Εφαρμόζω).

 

Χρονισμός εφαρμογής

 

Η εκτιμώμενη διάρκεια υλοποίησης της εργασίας είναι 5 διδακτικές ώρες που πρέπει να γίνουν απαραίτητα, στο σύνολο τους, στο εργαστήριο πληροφορικής. Η δομή της δραστηριότητας είναι τέτοια, ώστε να μπορεί να υλοποιηθεί σε δίωρα ή ακόμα και σε μονόωρα, ανάλογα με τις εκάστοτε συνθήκες.

 

Προετοιμασία

 

Για την υλοποίηση της παρούσας εργασίας από τους μαθητές θα πρέπει να υπάρχει εγκατεστημένο στο σχολικό εργαστήριο το πρόγραμμα AgentSheets. Επίσης, η χρήση του βιντεοπροβολέα για την επίδειξη της υλοποιημένης λύσης του προβλήματος από τον εκπαιδευτικό, θα βοηθούσε στην αποτελεσματικότερη ροή της δραστηριότητας. Ανάλογα με το δυναμικό της τάξης, ο εκπαιδευτικός μπορεί να αποφασίσει εάν οι μαθητές θα δουλέψουν στο AgentSheets με ήδη δημιουργημένες τις οντότητες (πράκτορες), ή αν θα τις δημιουργήσουν μόνοι τους, χρησιμοποιώντας τα εργαλεία του περιβάλλοντος. Επίσης, ο εκπαιδευτικός θα πρέπει να εκτυπώσει μια σκακιέρα από το φάκελο με τις εικόνες, για κάθε ομάδα μαθητών και να τους τη μοιράσει, μαζί με μολύβια και σβηστήρες, ή πραγματικά πιόνια. Τέλος, προτείνεται να χωριστούν οι μαθητές σε ομάδες των 2-3 ατόμων ανά υπολογιστή.

 

Ροή της δραστηριότητας
Βήμα 1ο (Διάρκεια: 1 διδακτική ώρα)

 

Αρχικά, θα πρέπει να γίνει σαφές το πρόβλημα που καλούνται να λύσουν οι μαθητές. Για το λόγο αυτό, γίνεται αναλυτική περιγραφή του προβλήματος, εξηγώντας στους μαθητές τις δυνατότητες κίνησης μιας βασίλισσας στο παιχνίδι. Θα πρέπει λοιπόν να τονιστεί ότι, σε αντίθεση με άλλα πιόνια, μια βασίλισσα μπορεί να μετακινηθεί προς οποιαδήποτε από τις 8 δυνατές κατευθύνσεις και για οποιοδήποτε αριθμό τετραγώνων. Με αυτούς τους κανόνες λοιπόν υπόψη, θα μοιραστούν αρχικά χάρτινες σκακιέρες, μολύβια και σβηστήρες στους μαθητές για να επιχειρήσουν την τοποθέτηση 8 βασιλισσών πάνω στη σκακιέρα με τέτοιο τρόπο, ώστε να μην απειλείται καμία βασίλισσα από κάποια άλλη.

 

Μετά από ένα δεκάλεπτο προβληματισμού και δοκιμών, οι μαθητές θα έχουν καταλήξει σε διάφορες στρατηγικές που ακολούθησαν στην προσπάθεια τους να λύσουν το πρόβλημα και θα έχουν καταγράψει διάφορα πρακτικά προβλήματα που τους εμπόδισαν να φτάσουν γρήγορα σε μια λύση. Σε αυτό το σημείο και μετά από συζήτηση με τους μαθητές, προτείνεται από τον εκπαιδευτικό η «λύση της έξυπνης σκακιέρας», η χρήση δηλαδή του υπολογιστή ως ενδιάμεσου εργαλείου, που δε θα λύσει άμεσα το πρόβλημα, αλλά θα μας εφοδιάσει με ένα εργαλείο για να λύσουμε το πρόβλημα πιο εύκολα.

 

Η «έξυπνη σκακιέρα» που θα πρέπει να κατασκευάσουν οι μαθητές θα έχει τις διαστάσεις και την εμφάνιση μιας πραγματικής σκακιέρας και θα επιτρέπει την προσθήκη και τη διαγραφή βασιλισσών. Επιπλέον, για την αντιμετώπιση του πρακτικού προβλήματος των θέσεων που απειλεί η κάθε βασίλισσα που τοποθετείται στη σκακιέρα, θα πρέπει να σημαδεύει με κάποιο τρόπο τις απειλούμενες θέσεις και να μη μας επιτρέπει να τοποθετήσουμε σε αυτές άλλη βασίλισσα. Τέλος, κατά τη διαγραφή κάποιας βασίλισσας, θα πρέπει να κάνει αποχαρακτηρισμό των αντίστοιχων σημαδεμένων θέσεων. Για να γίνει σαφέστερο στους μαθητές το εργαλείο που θα πρέπει να κατασκευάσουν, γίνεται επίδειξη όλων των λειτουργιών του με τη βοήθεια του βιντεοπροβολέα σε όλη την τάξη (ekpaideutikos.zip) .

Βήμα 2ο (Διάρκεια: 1 διδακτική ώρα)

 

Στη συνέχεια θα ενεργοποιήσουν το πρόγραμμα AgentSheets για τη δημιουργία της έξυπνης σκακιέρας. Με την είσοδο τους στο πρόγραμμα θα πρέπει να δημιουργήσουν ένα Νέο Έργο (Αρχείο -> Νέο Έργο). Αφού ονομάσουν το Έργο και ορίσουν τις διαστάσεις που θα έχουν οι απεικονίσεις των αντικειμένων (πρακτόρων) στην οθόνη, θα εμφανιστεί μια άδεια Εικονοθήκη του Έργου. Ζητάμε στη συνέχεια από τους μαθητές να δημιουργήσουν στην Εικονοθήκη τους πράκτορες, με τα ονόματα και τις διαφορετικές απεικονίσεις, όπως αυτές σχολιάστηκαν και αποφασίστηκαν στην εισαγωγική συζήτηση. Τα προτεινόμενα αντικείμενα που πρέπει να κατασκευαστούν είναι δύο, ένα για τον ρόλο της Βασίλισσας και ένα για το ρόλο του τετραγωνιδίου της σκακιέρας (Εικόνα 19-2).

·         Με την επιλογή Νέος Πράκτορας δημιουργούν νέα αντικείμενα.

·         Με την επιλογή Νέα Απεικόνιση προσθέτουν μια νέα απεικόνιση στον επιλεγμένο Πράκτορα.

·         Με την επιλογή Επεξεργασία Απεικόνισης, δημιουργούν ή μεταβάλλουν μέσω μιας μικροσχεδιαστικής εφαρμογής μια Απεικόνιση.

 

Εικόνα 19‑2

Εναλλακτικά, οι μαθητές σε αυτό το σημείο και με τη βοήθεια της μικροσχεδιαστικής εφαρμογής μπορούν να εισαγάγουν έτοιμες απεικονίσεις για τα αντικείμενα τους από το φάκελο με τις διαθέσιμες εικόνες που θα υπάρχει στο φάκελο Τα Έγγραφα μου. Οι επιπλέον απεικονίσεις στο δεύτερο αντικείμενο (Square), έχουν να κάνουν με την ανάγκη μαρκαρίσματος θέσεων, οι οποίες είναι στο βεληνεκές κάποιας βασίλισσας.

 

Η προτεινόμενη λογική για την υλοποίηση του συγκεκριμένου έργου είναι να προγραμματιστούν δύο εργαλεία από την μπάρα εργαλείων του πεδίου Εργασίας.

·         Το Μολύβι, για να τοποθετούνται νέες Βασίλισσες και

·         Το Σφυράκι, για να διαγράφονται Βασίλισσες.

 

Ας ξεκινήσουμε με την περίπτωση της δημιουργίας (τοποθέτησης ουσιαστικά) μιας νέας Βασίλισσας. Πέρα από τον έλεγχο για το αν μπορεί να τοποθετηθεί στη συγκεκριμένη θέση (δηλαδή, αν είναι ελεύθερη και όχι μαρκαρισμένη από άλλη βασίλισσα ή το βεληνεκές της), πρέπει να γίνει και μαρκάρισμα όλων των θέσεων που θα δεσμευθούν από τη δημιουργία της. Δηλαδή, θα πρέπει να μαρκάρουμε όλες τις θέσεις οριζοντίως δεξιά και αριστερά, καθέτως πάνω και κάτω και τέλος διαγωνίως πάνω, κάτω, δεξιά και αριστερά αντίστοιχα (Εικόνα 19-3).

 

Εικόνα 19‑3

 

Με την παραπάνω μέθοδο, εξασφαλίζουμε ότι επιτρέπεται η τοποθέτηση μιας βασίλισσας σε ελεύθερη θέση (διαφορετικά την εξαφανίζει – τελευταίος κανόνας) και σε κάθε περίπτωση καλεί τις οκτώ διαφορετικές μεθόδους που αναλαμβάνουν το μαρκάρισμα των θέσεων του βεληνεκούς της βασίλισσας (MarkDirectionUp, MarkDierectionDown κλπ.). Η MarkDirection είναι μια μέθοδος που πρέπει να κατασκευάσουμε και είναι σχεδόν πανομοιότυπη και στις οκτώ εκδοχές της. Το μόνο που αλλάζει είναι η κατεύθυνση την οποία μαρκάρει. Παρακάτω, θα δούμε τη λειτουργία μόνο αυτής που μαρκάρει οριζοντίως και προς τα δεξιά και αντίστοιχα θα πρέπει να κατασκευαστούν και οι υπόλοιπες.

Βήμα 3ο (Διάρκεια: 2 διδακτικές ώρες)

 

Για την κατασκευή αυτής της μεθόδου θα πρέπει να φανταστούμε ότι η βασίλισσα θα κάνει μια κίνηση από τη θέση της προς την απώτατη θέση που μπορεί να απειλήσει στη συγκεκριμένη κατεύθυνση και κάθε φορά, αφού μαρκάρει την απειλούμενη διαδρομή, να επιστρέφει στη θέση της.

 

Προκύπτουν όμως ορισμένα ερωτήματα για την υλοποίηση αυτής της κίνησης, τα οποία θα πρέπει να απαντηθούν από τους μαθητές πριν διαβάσουν την υπόδειξη της υλοποίησης για την πρώτη περίπτωση.

 

Α) Πώς ξέρουμε πόσο θα προχωρήσει η βασίλισσα και τι μπορεί να συναντήσει στη διαδρομή;

Β) Τι πρέπει να κάνει ανάλογα με αυτό που συναντάει στο δρόμο της;

Γ) Πώς είναι δυνατόν να θυμάται την αρχική της θέση ώστε να επιστρέψει;

 

Η προτεινόμενη λύση βασίζεται στην αξιοποίηση της δυνατότητας της αναδρομικής εκτέλεσης μεθόδων. Αναδρομική εκτέλεση σημαίνει ότι ένα αντικείμενο ξεκινάει την εκτέλεση μιας μεθόδου, πριν την ολοκλήρωση της και ανάλογα με ορισμένες συνθήκες ξανακαλεί τη μέθοδο, αυτόματα δημιουργείται ένα είδωλο του αντικειμένου με πανομοιότυπα χαρακτηριστικά που αναλαμβάνει την εκτέλεση της μεθόδου και στη συνέχεια επαναλαμβάνεται αυτή η διαδικασία όσες φορές είναι απαραίτητο. Τέλος, όταν κάποια στιγμή, οι συνθήκες δεν απαιτούν επανάληψη της διαδικασίας αρχίζει η αντίστροφη πορεία. Τα είδωλα επιστρέφουν «τη σκυτάλη» της εκτέλεσης του προγράμματος στο δημιουργό τους, στο σημείο ακριβώς που είχε σταματήσει και αυτό επαναλαμβάνεται μέχρι να επιστρέψει ο έλεγχος στην πρώτη κλήση. Τώρα μπορούμε να δούμε την εφαρμογή της αναδρομής σχηματικά, χρησιμοποιώντας ως παράδειγμα την υλοποίηση της MarkDirectionRight από μια βασίλισσα προς συγκεκριμένη κατεύθυνση (Εικόνα 19-4).

 

Εικόνα 19‑4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Εικόνα 19‑5

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Εικόνα 19‑6

 

Στο πρώτο σχήμα (Εικόνα 19-5) παρατηρούμε τις διαδοχικές κλήσεις της ίδιας μεθόδου από το αντικείμενο και τα είδωλα του, μέχρι που κάποια στιγμή δεν ικανοποιείται καμία συνθήκη, αφού φτάνει στο τέλος της σκακιέρας και αρχίζει η αντίστροφη πορεία (Εικόνα 19-6) ως την αρχική θέση, οπότε και ολοκληρώνεται η αναδρομική διαδικασία.

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

 

Ολοκληρώνουν την υλοποίηση των μεθόδων μαρκαρίσματος και υλοποιούν τις μεθόδους διαγραφής μιας βασίλισσας (Εικόνα 19-7).

 

Εικόνα 19‑7

Βήμα 5ο (Διάρκεια: 1 διδακτική ώρα)

 

Με τα εργαλεία που κατασκεύασαν τις προηγούμενες ώρες προσπαθούν πλέον στην ψηφιακή «έξυπνη σκακιέρα» να εντοπίσουν τη λύση του προβλήματος. Σε αυτό το σημείο μπορεί να γίνει αναφορά στο πλήθος των συνδυασμών που δημιουργούνται, προσπαθώντας να εντοπίσουμε τη λύση, στο πλήθος των διαφορετικών λύσεων, καθώς και των πλεονεκτημάτων της αναδρομής στην επίλυση τέτοιου είδους προβλημάτων με τη βοήθεια του υπολογιστή. Μπορεί επίσης να γίνει και μια συζήτηση προβληματισμού για το αν θα μπορούσαμε να χρησιμοποιήσουμε τον προγραμματισμό για να πάμε ένα βήμα πιο πέρα το εργαλείο, ώστε, τοποθετώντας και διαγράφοντας βασίλισσες με τα εργαλεία που κατασκευάστηκαν, να ανιχνεύει μόνο του τις λύσεις. Μπορεί με τη βοήθεια του βιντεοπροβολέα να γίνει επίδειξη της σχετικής προσομοίωσης που εντοπίζει λύσεις με τη μέθοδο Δοκιμής-Λάθους (Εικόνα 19-8). Η υλοποίηση μπορεί να ανατεθεί σε μαθητές ανάλογα με το ενδιαφέρον που εκδηλώνουν για περαιτέρω ενασχόληση τους με το θέμα εκτός σχολείου.

 

Εικόνα 19‑8

 

Προτάσεις για επεκτάσεις ή διαφοροποιήσεις

 

Με την ολοκλήρωση της παρούσας εργασίας καθώς και των προαπαιτούμενων της, ο εκπαιδευτικός μπορεί να προχωρήσει σε επέκταση της «έξυπνης σκακιέρας», ενσωματώνοντας και νέες οντότητες - «πιόνια» και πλησιάζοντας έτσι στην ολοκλήρωση ενός ηλεκτρονικού παιχνιδιού. Μετά την προγραμματιστική επαφή των μαθητών με την έννοια της αναδρομής, μπορούν να προταθούν από τον εκπαιδευτικό διάφορα απλά αναδρομικά προβλήματα προς επίλυση με τη χρήση του AgentSheets.

 

Επιπλέον, στο αρχείο ekpaideutikos.zip παρατίθεται η προσομοίωση σε μορφή πηγαίου προγράμματος. Ο εκπαιδευτικός μπορεί να επέμβει δημιουργώντας τις δικές του παραλλαγές – επεκτάσεις στην παρούσα δραστηριότητα.

 

Βιβλιογραφία και Διευθύνσεις στο Διαδίκτυο

Δαγδιλέλης, Βασίλειος Ε., Διδακτική : Μέθοδοι και εφαρμογές / Βασίλειος Ε. Δαγδιλέλης, Καλλιόπη Π. Παυλοπούλου, Παναγιώτα Κ. Τρίγγα, Αθήνα: Ευγ. Μπένου, 1998

 

Κόμης Β., Εισαγωγή στη Διδακτική της Πληροφορικής, Εκδόσεις Κλειδάριθμος. Αθήνα, 2005