Ραβδογράμματα Πληθυσμού Χωρών

 

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

 

·         Τίτλος: Ραβδογράμματα Πληθυσμού Χωρών

 

·         Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών

 

·         Διδακτική Ενότητα: Διερευνώ-Δημιουργώ-Ανακαλύπτω, Συνθετικές εργασίες. Δημιουργικές δραστηριότητες με χρήση πακέτων λογισμικού, προγραμματιστικών εργαλείων, υπηρεσιών του Internet, εκπαιδευτικού λογισμικού.

 

·         Τάξη: Γ' Λυκείου

 

·         Εκτιμώμενη Διάρκεια: 5 ώρες

 

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

 

 

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

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

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

 

Εικόνα 18 -  1

 

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

 

Εικόνα 18 -  2

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

 

Εικόνα 18 -  3     

 

 

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.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Δραστηριότητα 1: « Δυναμικά ραβδογράμματα στατιστικών στοιχείων»

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

 

·         Να εξοικειωθούν με το προγραμματιστικό περιβάλλον.

·         Να χρησιμοποιήσουν σύγχρονα προγραμματιστικά εργαλεία για την επίλυση απλών προβλημάτων.

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

·         Να αναπτύξουν ικανότητες μεθοδολογικού χαρακτήρα και να καλλιεργήσουν ελεύθερη σκέψη και έκφραση.

 

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

 

·         Να αντιληφθούν την έννοια της κλάσης ως «συνταγή» ιδιοτήτων και μεθόδων και έπειτα να ταυτίσουν εννοιολογικά την κλάση με τον πράκτορα.

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

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

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

·         Να κατανοήσουν την έννοια της μεταβλητής και να διακρίνουν την εμφάνιση στην οθόνη της τιμής μιας μεταβλητής από την εμφάνιση του ονόματός της.

·         Να ξεκαθαρίσουν την έννοια της καθολικής μεταβλητής και της μεταβλητής στιγμιότυπου.

·         Να αναζητήσουν τρόπους αναπαράστασης οντοτήτων και λειτουργιών που να καθιστούν την εφαρμογή παραστατική και κατανοητή από τον τελικό χρήστη.

 

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

 

Για την υλοποίηση της συγκεκριμένης συνθετικής εργασίας πρέπει ο εκπαιδευτικός να έχει αποκτήσει εμπειρία στη δημιουργία προσομοιώσεων με το προγραμματιστικό περιβάλλον Αgentsheets και να έχει υλοποιήσει τουλάχιστον την προσομοίωση Virus Attack. Θα πρέπει να είναι εξοικειωμένος με τη χρήση ενεργοποιητών και να έχει πειραματιστεί δουλεύοντας σε πολλαπλά πεδία εργασίας. Το ίδιο ισχύει και για τους μαθητές. Επίσης, οι μαθητές θα πρέπει να έχουν τις βασικές γνώσεις στη χρήση του Διαδικτύου. Ο όρος ραβδόγραμμα θα πρέπει να είναι οικείος από τους μαθητές προκειμένου να κατανοήσουν τον ορισμό του προβλήματος και κατ' επέκταση να το υλοποιήσουν.

 

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

 

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

 

 

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

 

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

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

 

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

 

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

 

Εικόνα 18 -  4

 

Οι προτεινόμενες κλάσεις:

 

Κλάση Χώρα: Έχει διάφορες απεικονίσεις εθνικών σημαιών που αντιπροσωπεύουν την αντίστοιχη χώρα. Επίσης έχει μια απεικόνιση που εκφράζει την επιλογή όλων των χωρών μαζί.

 

Κλάση Ετικέτα: Έχει απεικονίσεις που εκφράζουν λεκτικά την ιδιότητα που απεικονίζει το ραβδόγραμμα («Πληθυσμός»).

 

Κλάση Ράβδος: Είναι το συστατικό που θα σχηματίζει το ραβδόγραμμα κατά την εκτέλεση. Η απεικόνισή του μπορεί να είναι ένα απλό γεμάτο ορθογώνιο σχήμα.

 

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

 

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

 

Στη συνέχεια οι μαθητές θα ενεργοποιήσουν το πρόγραμμα Agentsheets για τη δημιουργία των παραπάνω αντικειμένων και των απεικονίσεών τους. Επιλέγουν Αρχείο->Νέο Έργο. Εδώ καθορίζεται το όνομα έργου, population_bars, και οι διαστάσεις των πρακτόρων, 75x55. Να σημειωθεί ότι όλοι οι πράκτορες ενός έργου έχουν τις ίδιες διαστάσεις και αυτές δεν είναι δυνατό να αλλάξουν μετά την δημιουργία του έργου. Έπειτα εμφανίζεται η Εικονοθήκη του έργου που σε αυτήν τη φάση είναι κενή. Ζητείται λοιπόν από τους μαθητές να δημιουργήσουν τις κλάσεις τους με τα κατάλληλα ονόματα και απεικονίσεις, όπως προαποφασίστηκαν στην προηγούμενη συζήτηση. Εδώ πρέπει να γίνει σαφής στους μαθητές η εννοιολογική ταύτιση της κλάσης με τον πράκτορα (Εικόνα 18 - 5).

 

Εικόνα 18 -  5

 

Για τη δημιουργία νέου πράκτορα θα πρέπει να επιλεχθεί το αντίστοιχο κουμπί, Νέος Πράκτορας, ενώ για τις διάφορες απεικονίσεις επιλέγουμε Νέα Απεικόνιση, έχοντας πάντα επιλεγμένο τον πράκτορα για τον οποίο προορίζεται η απεικόνιση. Με διπλό κλικ επάνω σε μια απεικόνιση ή με την επιλογή Επεξεργασία απεικόνισης, την τροποποιούμε με δύο τρόπους: είτε κάνοντας χρήση των σχεδιαστικών εργαλείων που προσφέρονται, είτε εισάγοντας εικόνα από εξωτερικό αρχείο με Αρχείο->Εισαγωγή Εικόνας (Εικόνα 18 - 6). Συγκεκριμένα, για τους πράκτορες Χώρα και Κουμπί θα εισαχθούν οι έτοιμες εικόνες. Η απεικόνιση του πράκτορα Ράβδος θα γίνει με τα σχεδιαστικά εργαλεία του Agentsheets. Τέλος, για τον Πράκτορα Ετικέτα, ο εκπαιδευτικός μπορεί είτε να προτρέψει τους μαθητές να τις δημιουργήσουν στο Πρόγραμμα της Ζωγραφικής (με χρήση του εργαλείου κειμένου) και έπειτα να τις εισάγουν είτε να τους δώσει τις έτοιμες προς εισαγωγή εφόσον ο χρόνος είναι περιορισμένος.

 

Εικόνα 18 -  6

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

 

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

 

Εικόνα 18 -  7

 

Ακολουθεί η δημιουργία των πεδίων που αποφασίστηκαν. Με Αρχείο->Νέο Πεδίο Εργασίας, οι μαθητές δημιουργούν τα πεδία αυτά και τα αποθηκεύουν με ονόματα που χρήσιμο είναι να είναι συνδεδεμένα με το ρόλο του καθενός στην εφαρμογή. Για παράδειγμα Start.ws για το αρχικό πεδίο, Greece.ws για το πεδίο της Ελλάδας κ.ο.κ. Με Αρχείο->Φόρτωση Φόντου εισάγουν το fonto1.jpg στο αρχικό πεδίο και το fonto2.jpg στα υποπεδία κάθε χώρας. Υπάρχουν δύο διαφορετικά φόντα γιατί η ύπαρξη του άξονα δεν έχει νόημα στην κεντρική οθόνη. Τοποθετούν έπειτα τους κατάλληλους πράκτορες (Εικόνες 18 - 7,8).

 

Εικόνα 18 -  8

 

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

 

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

 

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

 

Εικόνα 18 -  9

 

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

 

Έπειτα να επιλεχθεί η δράση που θα εκτελείται με την λήψη του συμβάντος. Οι μαθητές επιλέγουν Εργαλεία->Συλλογή Δράσεων και αναζητούν τη δράση που εξυπηρετεί τον επιθυμητό σκοπό (Εικόνα 18 - 10).

 

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

 

Εικόνα 18 -  10

 

Επιλέγουν τον πράκτορα Χώρα και κάνουν είτε δεξί κλικ - Επεξεργασία Συμπεριφοράς είτε διπλό κλικ για να ανοίξει το παράθυρο Συμπεριφοράς του πράκτορα, όπου αργότερα θα καταγραφούν όλες οι λειτουργίες του. Υπάρχει ορισμένη μία μέθοδος με τον Ενεργοποιητή Κατά την Λειτουργία. Οι μαθητές αλλάζουν τον Ενεργοποιητή αυτό σε Ποντίκι, σέρνοντας τον αντίστοιχο Ενεργοποιητή (Ποντίκι) από το Παράθυρο Ενεργοποιητών στην ετικέτα της μεθόδου (Εικόνα 18 - 11). Εξετάζουν τη λίστα με τους Modifiers και γίνεται μια σύντομη επεξήγηση για αυτούς. Προτείνεται εδώ να χρησιμοποιηθεί κάποιος από τους τελευταίους σε συνδυασμό με το ποντίκι, γιατί στο περιβάλλον Agentsheets, ακόμη και όταν η προσομοίωση δεν είναι σε κατάσταση εκτέλεσης, οι πράκτορες ανταποκρίνονται στα συμβάντα του ποντικιού κανονικά και αυτό μπορεί να προκαλέσει σύγχυση.

 

Εικόνα 18 -  11

 

Ακολουθεί προβληματισμός για τον ορισμό των συνθηκών. Σκόπιμο είναι εδώ να γίνει αναφορά στους βρόγχους Αν....Τότε.

 

Για να ορίσουν σωστά οι μαθητές τις συνθήκες, πρέπει να έχουν ξεκαθαρίσει στο μυαλό τους την έννοια της μεθόδου μιας κλάσης, για να αντιληφθούν ότι εφόσον όλες οι σημαίες θα αντιδρούν στη μέθοδο που θα ορίσουν, θα πρέπει η συνθήκη να κάνει έναν «καθορισμό ρόλων» για το ποια σημαία θα κάνει τι. Συγκεκριμένα από ποια σημαία θα μεταπηδάμε σε ποιο πεδίο εργασίας. Αφού γίνει σαφές ότι η απεικόνιση του πράκτορα που θα δέχεται το κλικ αποτελεί κριτήριο για την δράση που θα ακολουθήσει, οι μαθητές επιλέγουν Εργαλεία->Συλλογή Συνθηκών (Εικόνα 18 - 12).

 

Εικόνα 18 -  12

 

Γίνεται αναφορά στις διάφορες συνθήκες. Επίσης, οι μαθητές μπορούν να ανατρέξουν στο εγχειρίδιο αναφορών του Agentsheets προκειμένου να αποσαφηνίσουν τη λειτουργία τους και τελικά να επιλέξουν τη συνθήκη «Δω».

 

Έπειτα όλα τα παραπάνω συνδυάζονται για να οριστεί πλήρως η μέθοδος (Εικόνα 18 -13). Γίνεται έλεγχος κατά τη διάρκεια του οποίου διαπιστώνεται η ανάγκη ύπαρξης δυνατότητας επιστροφής από κάθε υποπεδίο στο αρχικό.

 

 

Εικόνα 18 -  13

 

Αφού έχει ήδη τοποθετηθεί σε κάθε πεδίο χώρας ένας πράκτορας Κουμπί, δεν μένει παρά να προγραμματιστεί η λειτουργία του. Με συνοπτικότερες διαδικασίες αυτή τη φορά προστίθεται στη συμπεριφορά του κουμπιού η κατάλληλη μέθοδος (Εικόνα 18 - 14) και σχολιάζεται η απουσία συνθηκών.

 

Εικόνα 18 -  14

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

 

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

 

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

 

Οι πράκτορες τύπου Ετικέτα δεν έχουν κάποιο λειτουργικό ρόλο, παρά μόνο διευκρινιστικό. Αντίθετα, οι πράκτορες τύπου Ράβδος αναλαμβάνουν το «χτίσιμο» του ραβδογράμματος. Στο σημείο αυτό οι μαθητές θα πρέπει να αναζητήσουν στο Διαδίκτυο τα στοιχεία, κάνοντας χρήση μηχανών αναζήτησης με λέξεις κλειδιά όπως «population», «population statistics».

 

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

 

Συμπεριφορά κλάσης Χώρα:

 

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

 

Εικόνα 18 -  15

 

Μεταφερόμαστε στη συλλογή συμπεριφορών της κλάσης Χώρα και στη μέθοδο που ορίστηκε στο Βήμα 2. Αφού διευκρινιστεί η έννοια της δράσης Εκπέμπω, θα προστεθεί η κλήση της μεθόδου που κάνει τα παραπάνω (Εικόνα 18 - 15). Να σημειωθεί ότι από τη στιγμή που πρώτα γίνεται η μετάβαση στο αποκλειστικό πεδίο μιας χώρας και έπειτα εκπέμπεται η κλήση της μεθόδου, η σημαία που λαμβάνει το μήνυμα find_population είναι αυτή του δεύτερου πεδίου και όχι αυτή που δέχτηκε το συμβάν του ποντικιού. Στην περίπτωση που παρουσιάζονται όλες οι χώρες μαζί, όλες οι σημαίες του αντίστοιχου πεδίου εργασίας δέχονται το μήνυμα για υπολογισμό.

 

Θα οριστεί εδώ η (find_population) μέθοδος άντλησης των στοιχείων από το Διαδίκτυο (Εικόνα 18 - 16). Οι μαθητές αναμένεται να αναζητήσουν στη συλλογή των δράσεων την κατάλληλη για το διάβασμα τιμών από ιστοσελίδες δράση, ενώ αυτή ανήκει στις συνθήκες. Να διευκρινιστεί εδώ ότι η έννοια της συνθήκης στην συγκεκριμένη περίπτωση έγκειται στην επιτυχή ή μη προσπάθεια εύρεσης στο Διαδίκτυο της ζητούμενης πληροφορίας. Δηλαδή, «αν καταφέρεις να διαβάσεις στ Διαδίκτυο την ιδιότητα... ..τότε...». Οπότε η Διαβάσω στο www παρόλο που είναι συνθήκη προκαλεί με την ύπαρξή της και μόνο την δράση του διαβάσματος.

 

Εικόνα 18 -  16

 

Σημειώνεται επίσης ότι στο πεδίο στην ιδιότητα της εν λόγω συνθήκης καθορίζεται το όνομα μιας μεταβλητής η οποία αυτόματα αποδίδεται στο τρέχον αντικείμενο και έχει την τιμή που διαβάστηκε. Δηλαδή μετά την επιτυχή εκτέλεση της μεθόδου αυτής, κάθε πράκτορας χώρα θα χαρακτηρίζεται από μία ιδιότητα (μεταβλητή) population, η οποίο κρατάει τον πληθυσμό της. Η τιμή αυτή είναι διακριτή για κάθε πράκτορα. Είναι μεταβλητή πράκτορα (στιγμιότυπου) και μπορεί να προσπελαστεί εφόσον μπορεί να προσπελαστεί ο πράκτορας τον οποίο χαρακτηρίζει. Οι ιδιότητες κάθε αντικειμένου περιγράφονται από τις μεταβλητές του με τον ίδιο τρόπο που οι συμπεριφορές του περιγράφονται από τις μεθόδους του.

 

Η μέθοδος (find_population) λοιπόν, παίρνει από το Διαδίκτυο το ύψος του πληθυσμού σαν μία αριθμητική τιμή και στη συνέχει καλεί την set_fist_bar (Εικόνα 18 - 17), για να δημιουργήσει ένα αντικείμενο τύπου Ράβδος και να του δώσει τις απαραίτητες πληροφορίες, ώστε αυτό να μπορέσει να «χτίσει» σωστά το ραβδόγραμμα. Σημειώνεται εδώ ότι η σημαία πρέπει να είναι τοποθετημένη δίπλα στην Ετικέτα population, για να δημιουργήσει τη ράβδο στη σωστή θέση.

 

Εικόνα 18 -  17

 

Η ιδιότητα height, στην set_first_bar, είναι ιδιότητα προσομοίωσης (καθολική). Να γίνει διάκριση της μεταβλητής αυτής από μία μεταβλητή πράκτορα. Η ιδιότητα προσομοίωσης δεν σχετίζεται με κάποιον συγκεκριμένο πράκτορα και μπορεί να προσπελαστεί από οποιοδήποτε σημείο του προγράμματος. Η τιμή της είναι μοναδική και όχι απαραίτητα σταθερή. Η height παίρνει εδώ την τιμή του πληθυσμού/10.000.000, η οποία εκφράζει το πλήθος των Ράβδων που θα συνθέσουν το τελικό ραβδόγραμμα.

 

Στο σημείο αυτό, οι μαθητές καλούνται να ελέγξουν τη λειτουργία των μεθόδων που υλοποίησαν. Για το σκοπό αυτό επιλέγουν Αρχείο->Άνοιγμα Πεδίου Εργασίας και ανοίγουν το αρχικό πεδίο (Start.ws). Με Run τρέχουν την εφαρμογή και επιλέγουν Εργαλεία-> Ιδιότητες Προσομοίωσης και Εργαλεία->Ιδιότητες Πράκτορα, οπότε εμφανίζονται δύο νέα παράθυρα, όπου μπορούν να παρακολουθήσουν τις τιμές των μεταβλητών που προκύπτουν κατά την εκτέλεση. Επιλέγουν κάποια σημαία και όταν βρεθούν στο κατάλληλο πεδίο επιλέγουν με το ποντίκι τη σημαία για να ελέγξουν την τιμή της ιδιότητας population, στο παράθυρο Ιδιότητες Πράκτορα. Μπορούν επίσης να επαληθεύσουν την τιμή αυτή από τον αντίστοιχο δικτυακό τόπο. Γίνεται έλεγχος και της μεταβλητής height (Εικόνα 18 - 18). Να γίνει αναφορά στην χρησιμότητα του συνεχούς ελέγχου της λειτουργικότητας του κώδικα κατά την συγγραφή ενός προγράμματος.

 

Εικόνα 18 -  18

 

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

 

Στο τέλος του προηγούμενου βήματος, είδαμε ότι ο πράκτορας Χώρα υπολογίζει όλες οι τιμές που είναι απαραίτητες για την κατασκευή του ραβδογράμματος και δημιουργεί έναν πράκτορα τύπου Ράβδος πάνω από την ετικέτα του πληθυσμού. Η ράβδος αυτή θα αναλάβει τώρα να «χτίσει» το ραβδόγραμμα. Απλουστευμένα, ο πράκτορας Χώρα έχει δημιουργήσει τη»ρίζα» του ραβδογράμματος και τώρα πρέπει να του στείλει μήνυμα «ψήλωσε»(built). Στην ερώτηση της Ράβδου «Πόσο να ψηλώσω», απαντάει η μεταβλητή height.

 

Συμπεριφορά κλάσης Ράβδος: Ο πράκτορας Ράβδος αναλαμβάνει να υψώσει το ραβδόγραμμα τόσο, όσο του είπε ο πράκτορας Χώρα που τον κάλεσε. Ο τρόπος να το κάνει αυτό είναι να δημιουργήσει πάνω από τον ίδιο, πράκτορες του ίδιου τύπου, τόσους όση η τιμή της μεταβλητής height. Να σημειωθεί ότι ένας πράκτορας Ράβδος αντιστοιχεί διαγραμματικά σε 10.000.000. H μέθοδος built κάνει αυτή ακριβώς τη δουλειά (Εικόνα 18 - 19).

 

Εικόνα 18 -  19

 

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

 

Έπειτα, ο πράκτορας που εκτελεί την built στέλνει μήνυμα στην τελευταία ράβδο που τοποθετήθηκε να «χτίσει». Δηλαδή καλείται και πάλι η built, αυτή τη φορά όμως από διαφορετικό πράκτορα. Η μέθοδος αυτή ονομάζεται αναδρομική γιατί καλεί τον εαυτό της, φαινόμενο σύνηθες στον προγραμματισμό. Όταν τοποθετηθούν όλες οι ράβδοι, η συνθήκη του πρώτου κανόνα παύει να ισχύει. Το χτίσιμο σταματάει, η συνθήκη του δεύτερου κανόνα επαληθεύεται και μηδενίζονται οι μεταβλητές height και count, ώστε να είναι «καθαρές» για την επόμενη κλήση της built.

 

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

 

Εικόνα 18 -  20

 

Ανοίγουμε και πάλι το παράθυρο συλλογής δράσεων, όπου υπάρχει η δράση ηχώ. Στο εγχειρίδιο αναφορών του Agentsheets ορίζεται η λειτουργία της. Σκοπός είναι, μόλις επιτυγχάνεται η άντληση των αριθμητικών στοιχείων από το Διαδίκτυο, να εμφανίζεται στη γραμμή ελέγχου η ακριβής τιμή της μεταβλητής population. Η δράση αυτή θα εισαχθεί στη μέθοδο find_population, πριν την κλήση set_first_bar (Εικόνα 18 - 20).

 

Πρέπει να γίνει διευκρίνιση για την ύπαρξη του συμβόλου «~» πριν το όνομα της μεταβλητής στο πεδίο παραμέτρου της δράσης. Να αναφερθεί η έννοια της μεταβλητής ως όνομα και ως τιμή. Για το σκοπό αυτό οι μαθητές μπορούν να επιχειρήσουν να προσθέσουν την ίδια δράση χωρίς το «~». Τότε θα εμφανιστεί στην γραμμή το «population» σαν απλό αλφαριθμητικό. Η εφαρμογή έχει πλέον όλη την προσδοκώμενη λειτουργικότητα.

 

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

 

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

 

Σε σχέση με την εμφάνιση των ραβδογραμμάτων και έχοντας στόχο την βελτιστοποίηση της παραστατικότητας των αποτελεσμάτων, προτείνεται ο σχεδιασμός τους έτσι ώστε να υπάρχει διαβάθμιση του χρώματος στις ράβδους (Εικόνα 18 - 21). Έτσι, όσο μεγαλώνει το ύψος του πληθυσμού, τόσο θα σκουραίνει το χρώμα της ράβδου, θα μειώνεται δηλαδή η φωτεινότητά της. Παρουσιάζεται η δράση Αντιστοιχίζω την ιδιότητα σε χρώμα και με τη βοήθεια του εγχειριδίου του Agentsheets, αναλύεται η λειτουργία της. Σημειώνεται ότι τα χρώματα που δίνονται ως παράμετροι στη δράση αυτή ουσιαστικά προστίθενται στο ήδη υπάρχον χρώμα και με επιλογή του ανοιχτόχρωμου γκρι για μικρές τιμές και του μαύρου για τη μέγιστη, δεν έχουμε ασπρόμαυρο αποτέλεσμα, παρά την σταδιακή μείωση φωτεινότητας που επιθυμούμε.

 

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

 

Εικόνα 18 -  21

 

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

 

Εικόνα 18 -  22

 

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

 

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