Το ρομπότ KAREL: Εισαγωγή στο δομημένο προγραμματισμό
Δημιουργία νέων εντολών στον μικρόκοσμο του ρομπότ Karel
2. ΕΚΤΙΜΩΜΕΝΗ ΔΙΑΡΚΕΙΑ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ
Προβλέπεται να διαρκέσει συνολικά 4-5 διδακτικές ώρες, δηλαδή περίπου 2 ώρες για την εξοικείωση με τον μικρόκοσμο και τη δομή ακολουθίας και 2-3 ώρες για την εξοικείωση με τη δημιουργία νέων εντολών (διαδικασιών). Βέβαια, πρέπει να επισημανθεί ότι η διάρκεια αυτή είναι ενδεικτική και εξαρτάται από την ηλικία, την προηγούμενη εμπειρία και τον αριθμό των μαθητών.
3. ΕΝΤΑΞΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ/ΠΡΟΑΠΑΙΤΟΥΜΕΝΕΣ ΓΝΩΣΕΙΣ
Πρόκειται για διδακτικό σενάριο που μπορεί να ενταχθεί κατά κύριο λόγο στο μάθημα Πληροφορικής του Γυμνασίου για τη διδασκαλία των αρχών του δομημένου-διαδικαστικού προγραμματισμού. Τα ιδιαίτερα χαρακτηριστικά του διδακτικού μικρόκοσμου Karel καθιστούν τη διδασκαλία τόσο των βασικών αλγοριθμικών δομών όσο και της έννοιας της διαδικασίας ιδιαίτερα εύκολη.
Το σενάριο δεν προϋποθέτει κάποιες γνώσεις προγραμματισμού, αλλά η ύπαρξή τους μπορεί να επηρεάσει την εφαρμογή του σεναρίου. Η πρότερη εμπειρία των μαθητών μπορεί να αξιοποιηθεί και να εμπλουτιστούν κατάλληλα οι προτεινόμενες δραστηριότητες ώστε να περιλαμβάνουν, για παράδειγμα, την επίλυση προβλημάτων με μεγαλύτερη αλγοριθμική πολυπλοκότητα.
4. ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ
Βασικός σκοπός του σεναρίου είναι να εισαχθούν οι μαθητές στην έννοια της διαδικασίας μέσω της δημιουργίας νέων εντολών για το ρομπότ Karel. Αυτό βέβαια προϋποθέτει ότι οι μαθητές έχουν εισαχθεί προηγουμένως στην έννοια της γλώσσας προγραμματισμού, του προγράμματος και της δομής ακολουθίας, καθώς επίσης και με τις βασικές λειτουργίες του περιβάλλοντος. Για λόγους πληρότητας, στο επιμορφωτικό σενάριο περιλαμβάνονται και τα φύλλα εργασίας που μπορούν να χρησιμοποιηθούν για την διδασκαλία όλων των προαναφερθεισών εννοιών και όχι μόνο της έννοιας της διαδικασίας.
Στους στόχους του σεναρίου περιλαμβάνονται η κατανόηση και η εφαρμογή των σχετικών εννοιών και η αποφυγή της δημιουργίας των παρανοήσεων (ελλιπής/λανθασμένη κατανόηση εννοιών) που έχουν καταγραφεί στη βιβλιογραφία.
Αναλυτικά, οι στόχοι του σεναρίου είναι
... όσον αφορά στις βασικές έννοιες προγραμματισμού και τη δομή ακολουθίας:
- Η εξοικείωση των μαθητών με το μοντέλο αναφοράς που χρησιμοποιείται στον μικρόκοσμο του ρομπότ Karel (δρόμοι, λεωφόροι, τμήματα τοίχου, beepers, ρομπότ Karel).
- Η κατανόηση της έννοιας της γλώσσας προγραμματισμού και του προγράμματος. Ένα πρόγραμμα παρουσιάζεται ως μια σειρά οδηγιών/εντολών που κατευθύνουν το ρομπότ Karel στην επίτευξη μιας αποστολής, ενώ η γλώσσα προγραμματισμού παρουσιάζεται ως μια ειδική γλώσσα την οποία κατανοεί ο Karel.
- Η κατανόηση της έννοιας του καΚορισμού των δεδομένων ενός προβλήματος. Στον μικρόκοσμο του Karel ο καθορισμός των δεδομένων αναφέρεται στον καθορισμό της αρχικής κατάστασης του Karel (δρόμος, λεωφόρος, κατεύθυνση, αριθμός beepers στην τσάντα) και της κατάστασης του κόσμου (τυχόν τμήματα τοίχου ή/και beepers).
- Η εξοικείωση με τις βασικές εντολές που περιλαμβάνει η γλώσσα προγραμματισμού του Karel, η κατανόηση της σημασίας τους και η ανάπτυξη απλών προγραμμάτων που περιλαμβάνουν μια ακολουΚία αυτών των βασικών εντολών.
- Η κατανόηση του γεγονότος ότι η εκτέλεση μιας εντολής από τον Karel μπορεί να έχει αποτέλεσμα την μεταβολή - αλλαγή της κατάστασης του (δρόμος, λεωφόρος, κατεύθυνση, αριθμός beepers στην τσάντα), η οποία αποθηκεύεται σε προκαθορισμένες θέσεις της μνήμης που διαθέτει ο Karel και ονομάζονται μεταβλητές.
- Η κατανόηση των βασικών τύπων λαθών - συντακτικά λάθη, λογικά λάθη και λάθη εκτέλεσης - που μπορεί να προκύψουν κατά την ανάπτυξη ενός προγράμματος και η διόρθωσή τους.
- Η εξοικείωση των μαθητών με τις βασικές λειτουργίες του περιβάλλοντος: περιβάλλον μαθημάτων, περιβάλλον προγραμματισμού (ανάπτυξη, μεταγλώττιση και εκτέλεση προγράμματος).
- Η κατανόηση της ανάγκης ύπαρξης ενός μηχανισμού για τη δημιουργία νέων εντολών (διαδικασιών) για το ρομπότ Karel.
- Η κατανόηση των πλεονεκτημάτων που παρέχει η χρήση διαδικασιών σε ένα πρόγραμμα.
- Η εξοικείωση με τη δήλωση και τον ορισμό νέων εντολών (διαδικασιών).
- Η κατανόηση της ροής εκτέλεσης ενός προγράμματος που χρησιμοποιεί διαδικασίες και η αντιμετώπιση των σχετικών δυσκολιών των μαθητών.
- Η εξοικείωση με την κλήση διαδικασιών μέσα από άλλες διαδικασίες.
Το παρόν σενάριο για την εισαγωγή των μαθητών στον δομημένο-διαδικαστικό προγραμματισμό με τον μικρόκοσμο του ρομπότ Karel, βασίζονται στο διδακτικό υλικό που ενσωματώνεται στο ίδιο το περιβάλλον και στη διδακτική στρατηγική που υιοθετήθηκε και διέπει τη σχεδίαση του ίδιου του περιβάλλοντος. Κρίνεται σκόπιμο λοιπόν, πριν την παρουσίαση των σχετικών φύλλων εργασίας, να αναφερθούν τα βασικά χαρακτηριστικά του περιβάλλοντος μιας και αυτά καθορίζουν και τη διδακτική στρατηγική που υιοθετείται σε μια διδασκαλία που βασίζεται σε αυτό.
Οι λειτουργίες που ενσωματώνει ο προγραμματιστικός μικρόκοσμος Karel είναι οι εξής:
- Μια σειρά μαθημάτων, κάθε ένα από τα οποία περιλαμβάνει σύντομη και περιεκτική θεωρία και μία ή περισσότερες δραστηριότητες.
- Ένα συντάκτη δομής, ο οποίος επιτρέπει την ανάπτυξη προγραμμάτων μέσω ενός
- μενού με τις διαθέσιμες εντολές και πλαισίων διαλόγου. Το μενού ενημερώνεται αυτόματα με τις νέες εντολές που ορίζει ο μαθητής.
- Ένα σύστημα δυναμικής προσομοίωσης εκτέλεσης των προγραμμάτων που παρέχει τη δυνατότητα της βηματικής εκτέλεσης και της επεξηγηματικής οπτικοποίησης, εμφάνισης δηλαδή επεξηγήσεων για τη σημασία της τρέχουσας εντολής χρησιμοποιώντας φυσική γλώσσα.
- Καταγραφή των ενεργειών των μαθητών και παρουσίαση τους σε ένα διαφορετικό παράθυρο.
Χαρακτηριστικό |
Παιδαγωγικά
οφέλη |
Χρήση της προσέγγισης των μικρόκοσμων |
εξαλείφει
το πρόβλημα του εκτεταμένου ρεπερτορίου εντολών και την πολυπλοκότητα των
γλωσσών προγραμματισμού γενικού σκοπού μειώνει τη διανοητική
"απόσταση" ανάμεσα στα νοητικά μοντέλα ή τις περιγραφές των
αλγορίθμων σε φυσική γλώσσα και την περιγραφή τους στη γλώσσα προγραμματισμού
επιλύονται προβλήματα που προκαλούν το ενδιαφέρον των μαθητών |
Ενσωμάτωση τμήματος με μαθήματα (θεωρία,
δραστηριότητες) |
όλο
το απαραίτητο υλικό για το μαθητή συμπεριλαμβάνεται στο περιβάλλον οι
δραστηριότητες βοηθάνε τους μαθητές να εξοικειωθούν με τις έννοιες πριν να
τους ζητηθεί να τις υλοποιήσουν |
Συντάκτης δομής |
δεν
χρειάζεται να απομνημονευθούν οι συντακτικές λεπτομέρειες της γλώσσας προγραμματισμού
και δίνεται η δυνατότητα επικέντρωσης στις έννοιες |
Φιλικά προς το χρήστη μηνύματα λάθους |
αποφεύγεται
η χρονοβόρα διαδικασία εντοπισμού και διόρθωσης των λαθών, η οποία συνήθως
προκαλεί την απογοήτευση των μαθητών οι λανθασμένες αντιλήψεις, στις οποίες
συνήθως οφείλονται τα λάθη, αποκαλύπτονται στους μαθητές |
Βηματική εκτέλεση και
επεξηγηματική οπτικοποίηση |
αποκαλύπτει
τη δυναμική φύση της εκτέλεσης προγραμμάτων στηρίζει τους μαθητές στην
κατανόηση της σημασιολογίας των δομών ελέγχου και της ροής εκτέλεσης υποστηρίζει
τους μαθητές στον εντοπισμό λογικών λαθών δίνει τη δυνατότητα στο διδάσκοντα
να καλύψει περισσότερη ύλη σε μικρότερο χρονικό διάστημα |
Καταγραφή των ενεργειών των μαθητών |
στηρίζει
τους διδάσκοντες στη μελέτη των δυσκολιών και των λανθασμένων αντιλήψεων,
καθώς και των τεχνικών επίλυσης προβλημάτων που χρησιμοποιούν οι μαθητές |
Πίνακας 1. Τα παιδαγωγικά οφέλη του μικρόκοσμου προγραμματισμού Karel
Διδακτική ώρα |
Τίτλος μαθήματος |
Περιεχόμενο |
1η - 2η |
Βασικές εντολές |
Περιγραφή του
μικρόκοσμου, πρόγραμμα, βασικές εντολές, μπλοκ εντολών, κυρίως πρόγραμμα |
3η - 4η |
Δημιουργία νέων εντολών |
Ορισμός νέας εντολής, τα
πλεονεκτήματα της δημιουργίας νέων εντολών |
5η - 6η |
Δομή επιλογής |
Συνθήκη, λογικές τιμές,
χρησιμότητα των εντολών υπό συνθήκη, if, if/else |
7η - 8η |
Δομές επανάλ. |
while, loop |
Η βασικότερη έννοια του δομημένου-διαδικαστικού προγραμματισμού είναι η έννοια του υποπρογράμματος (διαδικασίας, συνάρτησης). Σε ένα τυπικό μάθημα εισαγωγής στον διαδικαστικό προγραμματισμό βέβαια, η έννοια της διαδικασίας διδάσκεται σε ένα αρκετά προχωρημένο στάδιο και αφού πρώτα παρουσιαστούν στους μαθητές οι τρεις βασικές αλγοριθμικές δομές: η δομή ακολουθίας, η δομή επιλογής και η δομή επανάληψης.
Στον μικρόκοσμο του ρομπότ Karel, ωστόσο, προτείνεται η διδασκαλία της έννοιας της διαδικασίας να γίνει από τα πρώτα μαθήματα, αμέσως μετά από τη δομή ακολουθίας. Αυτό μπορεί να επιτευχθεί εύκολα στον μικρόκοσμο του ρομπότ Karel, μιας και η έννοια της διαδικασίας παρουσιάζεται με σαφή και κατανοητό τρόπο. Η πολυπλοκότητα εκμάθησης της συγκεκριμένης έννοιας περιορίζεται σημαντικά από το γεγονός μη χρήσης λίστας παραμέτρων τόσο στις ήδη υλοποιημένες διαδικασίες που καλούν οι μαθητές από το πρώτο μάθημα, όσο και σε αυτές που αναπτύσσουν οι ίδιοι οι μαθητές. Επιπλέον, η γλώσσα προγραμματισμού που χρησιμοποιείται στον μικρόκοσμο και οι δραστηριότητες που έχουν ενσωματωθεί στο ίδιο το περιβάλλον έχουν ως αποτέλεσμα οι μαθητές να οδηγούνται γρήγορα σε αδιέξοδο κατά την επίλυση προβλημάτων και να αναζητούν από μόνοι τους ένα μηχανισμό δημιουργίας νέων εντολών (υποπρογραμμάτων). Συγκεκριμένα,
οι βασικές εντολές που απαρτίζουν το ρεπερτόριο εντολών του ρομπότ Karel είναι τόσο περιορισμένες, ώστε οι μαθητές αναγκάζονται ακόμα και για απλά προβλήματα να αναπτύσσουν μακροσκελή προγράμματα. Αυτό έχει ως αποτέλεσμα, όπως προαναφέρθηκε, οι μαθητές να αναζητούν ένα μηχανισμό δημιουργίας νέων εντολών και να κατανοούν ευκολότερα τη σημασία της έννοιας της διαδικασίας όταν αυτή τους παρουσιάζεται.
7. ΧΡΗΣΗ Η.Υ. ΚΑΙ ΓΕΝΙΚΑ ΨΗΦΙΑΚΩΝ ΜΕΣΩΝ ΓΙΑ ΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ («προστιθέμενη αξία» και αντίλογος, επιφυλάξεις, προβλήματα)
To διδακτικό σενάριο προβλέπεται να υλοποιηθεί στο εργαστήριο Πληροφορικής.
Απαιτείται το περιβάλλον Karel. Το περιβάλλον δεν απαιτεί κάποια ιδιαίτερη διαδικασία εγκατάστασης. Αποσυμπιέζετε το αρχείο Karel.zip (http://users.uom.gr/~stelios/Karel.zip), οπότε δημιουργείται ένας ομώνυμος φάκελος και εκτελείτε το αρχείο Karel.exe που υπάρχει σε αυτόν.
«Προστιθέμενη αξία»
Το περιβάλλον Karel αποτελεί ένα διδακτικό μικρόκοσμο και συνεπώς παρουσιάζει τα γνωστά πλεονεκτήματα που χαρακτηρίζουν γενικά τους προγραμματιστικούς μικρόκοσμους:
- Η γλώσσα προγραμματισμού αποτελείται από ένα περιορισμένο ρεπερτόριο εντολών με απλή σύνταξη και σημασιολογία.
- Βασίζονται σε υπαρκτά μοντέλα που είναι ήδη γνωστά στο μαθητή, μειώνοντας έτσι δραματικά τη διανοητική «απόσταση» ανάμεσα στα νοητά μοντέλα ή την περιγραφή σε φυσική γλώσσα των αλγορίθμων και στην περιγραφή τους στη γλώσσα προγραμματισμού.
- Τα προβλήματα που καλούνται να λύσουν οι μαθητές παρουσιάζουν ιδιαίτερο ενδιαφέρον.
- Η εκτέλεση ενός προγράμματος είναι βηματική και ορατή, αποκαλύπτοντας έτσι τη σημασία των διδασκόμενων δομών, καθώς και τις έννοιες που σχετίζονται με τη δομή και την εκτέλεση των προγραμμάτων.
- Υπάρχει δυνατότητα προσαρμογής του μικρόκοσμου στις ανάγκες του κοινού στο οποίο απευθύνεται.
- το απαραίτητο διδακτικό υλικό (σύντομη και περιεκτική θεωρία, εγχειρίδιο χρήσης)
- δραστηριότητες για την εξοικείωση των μαθητών με τις έννοιες πριν την εφαρμογή τους στα πλαίσια ανάπτυξης προγραμμάτων
- ένα συντάκτη δομής για την εύκολη ανάπτυξη προγραμμάτων και την αποφυγή επικέντρωσης στις λεπτομέρειες της γλώσσας προγραμματισμού
- τη δυνατότητα της επεξηγηματικής οπτικοποίησης, εμφάνισης δηλαδή μηνυμάτων σε φυσική γλώσσα για την τρέχουσα κάθε φορά εντολή κατά τη βηματική εκτέλεση των προγραμμάτων.
Εντολές στα Αγγλικά. Υπάρχει δυνατότητα επιλογής εμφάνισης του διδακτικού υλικού που είναι ενσωματωμένο στον μικρόκοσμο Karel, καθώς και πραγματοποίησης του διαλόγου χρήστη-συστήματος είτε στα Αγγλικά είτε στα Ελληνικά. Ωστόσο, για το ρεπερτόριο εντολών χρησιμοποιείται η αγγλική γλώσσα, γεγονός που ενδεχομένως να θεωρηθεί από ορισμένους εκπαιδευτικούς ως πρόβλημα. Ωστόσο:
- το ρεπερτόριο εντολών είναι περιορισμένο
- χρησιμοποιούνται σαφή ονόματα εντολών που φανερώνουν τη σημασία τους και δεν δημιουργούν παρανοήσεις για τη σημασία τους
- οι εντολές δεν χρειάζεται να απομνημονευθούν, αφού η ανάπτυξη των προγραμμάτων γίνεται χρησιμοποιώντας τον συντάκτη δομής.
Συντάκτης δομής. Οι συντάκτες δομής είναι γνωστό ότι στηρίζουν ουσιαστικά τους αρχάριους προγραμματιστές στην ανάπτυξη προγραμμάτων, στην αποφυγή της επικέντρωσης στην εκμάθηση της σύνταξης της γλώσσας προγραμματισμού και των συντακτικών λαθών. Ωστόσο, είναι επίσης γνωστό ότι η διόρθωση ενός προγράμματος, η οποία πολλές φορές συνεπάγεται την προσωρινή παραβίαση των συντακτικών κανόνων, είναι αρκετές φορές πιο δύσκολη χρησιμοποιώντας ένα συντάκτη δομής που απαιτεί ένα πρόγραμμα να παραμένει καθ' όλη τη διάρκεια ανάπτυξής του συντακτικά σωστό. Ο συντάκτης δομής του Karel βέβαια, ακριβώς όπως και ο συντάκτης δομής του objectKarel, είναι λιγότερο «αυστηρός» σε σχέση με έναν τυπικό εκδότη δομής, και καθιστά τη διόρθωση των προγραμμάτων εύκολη. Εξάλλου, οι αρχάριοι προγραμματιστές - σε αντίθεση με τους έμπειρους προγραμματιστές - προτιμούν πάντα τη χρήση ενός συντάκτη δομής για την ανάπτυξη των προγραμμάτων τους, ακόμα και με τους περιορισμούς που μπορεί να έχει ένας τέτοιος συντάκτης δομής.
Διδασκαλία της έννοιας της διαδικασίας σε αρχικό στάδιο. Όπως ήδη αναφέρθηκε, προτείνεται η διδασκαλία της έννοιας της διαδικασίας να πραγματοποιηθεί στην αρχή των μαθημάτων, μιας και αποτελεί θεμελιώδη έννοια για τον δομημένο-διαδικαστικό προγραμματισμό και επιπλέον η διδασκαλία της καθίσταται σημαντικά ευκολότερη στον μικρόκοσμο του ρομπότ Karel. Επιπλέον, τα πρώτα στοιχεία από την πιλοτική εφαρμογή της προτεινόμενης διδακτικής προσέγγισης σε μαθητές Γυμνασίου ήταν ιδιαίτερα ενθαρρυντικά (Ξυνόγαλος, 2010). Ωστόσο ο εκπαιδευτικός, ανάλογα και με τις ιδιαίτερες συνθήκες μιας συγκεκριμένης διδασκαλίας/τάξης, μπορεί αν επιθυμεί να διδάξει, όπως συνήθως, πρώτα τις βασικές αλγοριθμικές δομές και στη συνέχεια την έννοια της διαδικασίας.
8. ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ/ΠΡΟΒΛΕΨΗ ΔΥΣΚΟΛΙΩΝ ΣΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ
Γενικά...
Η έννοια της διαδικασίας κατέχει κεντρικό ρόλο στον δομημένο-διαδικαστικό προγραμματισμό. Ωστόσο, η διδασκαλία και εκμάθησή της συνοδεύεται από ποικίλες δυσκολίες. Οι δυσκολίες που αφορούν στην έννοια της διαδικασίας μπορούν να χωριστούν σε δύο μεγάλες κατηγορίες:
- Δυσκολίες που σχετίζονται με τη σύνταξη και τη σημασία της διαδικασίας σε ένα πρόγραμμα: καθορισμός της λίστας παραμέτρων (πλήθος και τύπος παραμέτρων), επικοινωνία κυρίως προγράμματος και υποπρογραμμάτων, κλήση διαδικασίας από άλλη διαδικασία, στοίβα κλήσεων και γενικά δυσκολίες που αφορούν στη ροή εκτέλεσης ενός προγράμματος με διαδικασίας.
- Δυσκολίες αξιοποίησης της διαδικασίας ως εργαλείο ανάπτυξης επαναχρησιμοποιήσιμων - αυτόνομων τμημάτων κώδικα & υλοποίησης των επιμέρους τμημάτων επίλυσης ενός αλγορίθμου.
Οι Sprohrer και Soloway διεξήγαγαν μια εμπειρική μελέτη (Sprohrer & Soloway, 1986) προκειμένου να διαπιστώσουν την ορθότητα των παρακάτω ευρέως αποδεκτών υποθέσεων σχετικά με τα λάθη των αρχάριων προγραμματιστών:
- Λίγοι τύποι λαθών ευθύνονται για την πλειονότητα των λαθών στα προγράμματα των σπουδαστών.
- Τα περισσότερα λάθη οφείλονται σε λανθασμένες αντιλήψεις των σπουδαστών για τις δομές της γλώσσας προγραμματισμού.
μελέτη, από τις οποίες η πρώτη απαιτούσε τη χρήση (για πρώτη φορά) φωλιασμένων IF- THEN-ELSE δομών, η δεύτερη βρόχων και η τρίτη διαδικασιών. Μιας και σκοπός των ερευνητών ήταν η μελέτη μη συντακτικών λαθών επιλέχθηκαν 158 συντακτικά σωστά προγράμματα. Συγκεκριμένα, επιλέχθηκε η πρώτη συντακτικά σωστή έκδοση κάθε προγράμματος, αφού αυτή περιέχει κατά κανόνα τα περισσότερα μη συντακτικά λάθη\σφάλματα σε σχέση με τις μεταγενέστερες μερικώς αποσφαλματωμένες εκδόσεις. Για την ανάλυση των δεδομένων χρησιμοποιήθηκε η μέθοδος Goal/Plan Analysis των Sprohrer, Soloway και Poppe.
Σύμφωνα με τα αποτελέσματα της εμπειρικής μελέτης η πρώτη υπόθεση είναι αληθής σε αντίθεση με τη δεύτερη. Συγκεκριμένα, έγινε φανερό ότι οι λανθασμένες αντιλήψεις σχετικά με τις δομές της γλώσσας προγραμματισμού δεν είναι τόσο ευρέως διαδεδομένες ή προβληματικές όσο γενικά πιστεύεται. Τα περισσότερα λάθη είναι αποτέλεσμα των δυσκολιών συνδυασμού σχεδίων ή αλλιώς των «κομματιών» ενός προγράμματος. Στον Πίνακα 3 φαίνονται συνοπτικά τα αποτελέσματα της μελέτης. Περισσότερα στοιχεία για την ανάλυση και τα αποτελέσματα υπάρχουν στο (Sprohrer & Soloway, 1986).
Πρόβλημα Λάθη που δεν Λάθη που ίσως Λάθη που
οφείλονται στις δομές οφείλονται στις δομές οφείλονται στις δομές
If-Then-Else (Ν=28) 19 (68%) 9 (32%) 0 (0%)
Βρόχοι (Ν=46) 20 (43%) 21 (46%) 5 (11%)
Διαδικασίες (Ν=27) 13 (48%) 10 (37%) 4 (15%)
Σύνολο(Ν=101) 52 (52%) 40 (39%) 9 (9%)
Πίνακας 3. Τα αποτελέσματα του πειράματος.
Με βάση τα αποτελέσματα των μελετών οι παραπάνω ερευνητές κάνουν μια ταξινόμηση των λαΚών των αρχάριων προγραμματιστών. Όπως και οι ίδιοι επισημαίνουν οι κατηγορίες που θα αναφερθούν στη συνέχεια δεν είναι ούτε αμοιβαία αποκλειόμενες ούτε και πλήρεις.
Προβλήματα που οφείλονται στις δομές της γλώσσας προγραμματισμού (construct-based problems). Πρόκειται για προβλήματα που δυσκολεύουν τους αρχάριους προγραμματιστές στην εκμάθηση της σωστής σημασιολογίας των δομών της γλώσσας προγραμματισμού:
- Πρόβλημα φυσικής γλώσσας (natural-language problem): πολλές δομές των γλωσσών προγραμματισμού έχουν ονόματα που σχετίζονται με λέξεις της φυσικής γλώσσας δημιουργώντας έτσι προβλήματα κατανόησης των δομών ή/και λανθασμένες αντιλήψεις.
- Πρόβλημα ανθρώπινης μετάφρασης (Human interpreter problem): οι αρχάριοι προγραμματιστές πολλές φορές υποθέτουν ότι ο υπολογιστής θα μεταφράσει τις δομές με τον ίδιο τρόπο που τις μεταφράζουν και οι ίδιοι.
- Πρόβλημα μη συνοχής (inconsistency problem): αρκετές φορές οι αρχάριοι προγραμματιστές αφού καταλάβουν πώς «δουλεύει» μια δομή σε μια συγκεκριμένη κατάσταση, υποθέτουν ότι η δομή θα «δουλέψει» με τον ίδιο τρόπο και σε μια άλλη παρόμοια κατάσταση.
- Πρόβλημα περίληψης (summarization problem): περίληψη πολύπλοκων συνδυασμών σχεδίων σε μια κύρια συνάρτηση, παραβλέποντας τυχόν αλληλεξαρτήσεις μεταξύ των δευτερευουσών συναρτήσεων.
- Πρόβλημα βελτιστοποίησης (optimization problem): οι αρχάριοι προγραμματιστές παρασύρονται τόσο από την επιθυμία τους να βελτιστοποιήσουν τα σχέδια τους ώστε δεν ελέγχουν επαρκώς αν η βελτιστοποίηση μπορεί όντως να πραγματοποιηθεί.
- Πρόβλημα προηγούμενης εμπειρίας (previous-experience problem): η ανάπτυξη, ανακύκλωση και προσαρμογή σχεδίων βασίζεται πολύ συχνά σε προϋπάρχουσες εμπειρίες. Συχνά, ακατάλληλες απόψεις ήδη αναπτυγμένων και χρησιμοποιημένων σχεδίων «παραβιάζουν» ή αλλιώς «μολύνουν» ένα σχετικό σχέδιο που χρησιμοποιείται σε μια νέα κατάσταση. Αυτό το πρόβλημα είναι γνωστό και ως plan pollution problem.
- Πρόβλημα προσαρμογής (specification problem): οι αρχάριοι προγραμματιστές αναπτύσσουν αφηρημένα σχέδια που πρέπει να προσαρμοστούν σε μια δεδομένη νέα περίσταση. Συχνά, ένα τέτοιο σχέδιο είναι ακατάλληλο ή λανθασμένο για την περίσταση.
- Πρόβλημα φυσικής γλώσσας (natural-language problem): οι αρχάριοι συνηθίζουν να αντιστοιχούν σχέδια που κατέχουν ή δημιουργούν σε φυσική γλώσσα σε μια γλώσσα προγραμματισμού. Αυτή η αντιστοίχιση τις περισσότερες φορές οδηγεί σε λάθη.
- Πρόβλημα μετάφρασης (interpretation problem): οι αρχάριοι βασίζονται εν μέρη στις υπάρχουσες γνώσεις για τους στόχους και τα σχέδια όταν «μεταφράζουν» μια εργασία, όταν μεταφράζουν δηλαδή τον ορισμό του προς επίλυση προβλήματος. Απαιτήσεις που δεν εκφράζονται «ξεκάθαρα» αγνοούνται ή λαμβάνονται υπόψη μόνο όταν σχέδια για την επίτευξή τους μπορούν εύκολα να ανακληθούν.
- Πρόβλημα απρόσμενων περιπτώσεων (unexpected cases problem): οι αρχάριοι συχνά γράφουν προγράμματα που «δουλεύουν» σωστά για συγκεκριμένες συνηθισμένες περιπτώσεις, αλλά όχι για όλες τις περιπτώσεις.
- Πρόβλημα οριακών περιπτώσεων (Boundary problem): οι αρχάριοι αντιμετωπίζουν δυσκολίες στην διαχείριση των οριακών σημείων κατά την εξειδίκευση των σχεδίων τους.
- Πρόβλημα μνημονικού φορτίου (cognitive load problem): οι αρχάριοι συχνά δεν αντιλαμβάνονται την απώλεια πληροφοριών από τη μνήμη τους (working memory). Πολλές από τις πληροφορίες αυτές αντιπροσωπεύουν μικρά αλλά σημαντικά τμήματα σχεδίων ή αλληλεπιδράσεις μεταξύ σχεδίων, οι οποίες παραβλέπονται.
Ο μικρόκοσμος του ρομπότ Karel, όπως τα περισσότερα εκπαιδευτικά περιβάλλοντα, έχει σχεδιαστεί με στόχο την εξάλειψη ή τουλάχιστον την ευκολότερη αντιμετώπιση των δυσκολιών/παρανοήσεων που έχουν καταγραφεί στη βιβλιογραφία. Η μη χρήση λίστας παραμέτρων στις διαδικασίες που αναπτύσσονται στον μικρόκοσμο Karel, περιορίζει σημαντικά τη σχετική πολυπλοκότητα και βοηθάει τους μαθητές να κατανοήσουν ευκολότερα τον βασικό ρόλο των διαδικασιών. Επιπλέον, η βηματική εκτέλεση των προγραμμάτων με ταυτόχρονη οπτικοποίηση των αποτελεσμάτων στον μικρόκοσμο και την επεξήγηση τους σε φυσική γλώσσα (επεξηγηματική οπτικοποίηση) στηρίζουν ουσιαστικά τους μαθητές στην κατανόηση της ροής εκτέλεσης προγραμμάτων που περιλαμβάνουν διαδικασίες και στην αποφυγή των σχετικών παρανοήσεων.
Επιπλέον, η φύση των προβλημάτων που ανατίθενται στους μαθητές στο πλαίσιο του μικρόκοσμου ευνοεί τη χρήση διαδικασιών και αναδεικνύει τη σημασία και την αποτελεσματικότητα χρήσης τους στην ανάπτυξη προγραμμάτων.
Αποτελέσματα από την χρήση του μικρόκοσμου Karel σε μαθητές της Γ' τάξης του
Γυμνασίου, ειδικά για την έννοια της διαδικασίας, παρουσιάζονται στην εργασία (Ξυνόγαλος, 2010).
9. ΔΙΔΑΚΤΙΚΟ ΣΥΜΒΟΛΑΙΟ - ΔΙΔΑΚΤΙΚΗ ΜΕΤΑΤΟΠΙΣΗ ΘΕΩΡΗΤΙΚΑ ΘΕΜΑΤΑ - ΔΙΔΑΚΤΙΚΟΣ ΘΟΡΥΒΟΣ
Μετά από έναν αρχικό χρόνο για εξοικείωση των μαθητών με το περιβάλλον l<AREL και την ιδέα του «ρομπότ», αναμένεται οι μαθητές να εργαστούν χωρίς προβλήματα - ίσως μάλιστα να το κάνουν και με ευχαρίστηση δεδομένης της έλξης που μπορεί να ασκεί το περιβάλλον εξαιτίας των «παιγνιωδών» του χαρακτηριστικών.
Δεν αναμένεται πολύς χρόνος για την εξοικείωση των μαθητών με το περιβάλλον, αφού είναι σχετικά απλό, ούτε και με τη γλώσσα προγραμματισμού, η οποία, αν και στα Αγγλικά, αναμένεται να γίνει εύκολα κατανοητή.
Το περιβάλλον είναι μάλλον εύρωστο (robust) και δοκιμασμένο, άρα δεν αναμένονται «καταρρεύσεις» λόγω σφαλμάτων λογισμικού, ασυμβατότητας με το λειτουργικό σύστημα κλπ. Άρα, συνολικά, δεν αναμένεται διδακτικός θόρυβος πιο ισχυρός από τα συνήθη περιβάλλοντα.
10. ΧΡΗΣΗ ΕΞΩΤΕΡΙΚΩΝ ΠΗΓΩΝ
Pattis, R. E., Roberts, J. & Stehlik, M. (1995J Karel - The Robot, A Gentle Introduction to the Art of Programming. 2nd edn. Wiley, New York.
Spohrer, J. C. & Soloway, E. (1986) Novice Mistakes: Are the Folk Wisdoms Correct? Communications of the ACM, Vol. 29, No. 7, pp. 624-632.
Xinogalos, S. (2011), Teaching Programming to Secondary Education Students with a Learning Environment Based on "Karel the Robot": A Pilot Study in a Greek High School, Chapter in "Horizons in Computer Science Research", Vol. 2, Thomas S. Clary (Ed.), New York: Nova Science, 67-92.
Κοτίνη, I. (2012), Δομημένος Προγραμματισμός με το Ρομπότ Karel - Δομή Επιλογής, Πρακτικά Ημερίδας Πληροφορικής "Η πληροφορική στην εποχή του Νέου Σχολείου",ΠΑΚΕ Κ. Μακεδονίας, 27 Μαρτίου 2012, Θεσσαλονίκη.
Ξυνόγαλος, Σ. (2002), «Εκπαιδευτική Τεχνολογία»: Ένας Διδακτικός Μικρόκοσμος για την Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό, Διδακτορική Διατριβή, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας, σελ. 569.
Ξυνόγαλος, Σ. (2003), Σενάρια Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση, Πρακτικά του 2ου Πανελλήνιου Συνεδρίου των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη», Σύρος, 9-11 Μαΐου 2003, A' τόμος, 783-795.
Ξυνόγαλος, Σ. (2009), Πρόταση για τη Διδασκαλία του Προγραμματισμού στο Γυμνάσιο με Χρήση του Ρομπότ Karel, Πρακτικά του 5ου Πανελλήνιου Συνεδρίου των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη», Σύρος, 953-963.
Ξυνόγαλος, Σ. (2010), Η Διδασκαλία της Έννοιας της Διαδικασίας με Χρήση του Ρομπότ Karel σε Μαθητές Γυμνασίου: μια μελέτη περίπτωσης, Πρακτικά 5ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Αθήνα 9-11 Απριλίου, 105-114.
11. ΥΠΟΚΕΙΜΕΝΗ ΘΕΩΡΙΑ ΜΑΘΗΣΗΣ
Οι προτεινόμενες δραστηριότητες για τους μαθητές εγγράφονται σε μια τυπική κονστρουκτιβιστική προσέγγιση: στους μαθητές προτείνονται μια σειρά από προβλήματα τα οποία καλούνται να επιλύσουν στο περιβάλλον KAREL. Οι μαθητές, μπορούν, εργαζόμενοι σε ομάδες, να διερευνήσουν τις δυνατότητες του περιβάλλοντος και να τις συνδυάσουν για την επίλυση των προβλημάτων.
Η επίλυση των προβλημάτων που προτείνονται εξάλλου, καθιστά εμφανή τη λειτουργία και αξία των χρησιμοποιουμένων μεθόδων, εννοιών, τεχνικών κλπ.
Η επιλογή των καταλληλότερων μεθόδων για την επίλυση των προβλημάτων μπορεί να προκύψει μέσα από κοινωνιογνωστικές συγκρούσεις, εφόσον οι μαθητές εργάζονται σε ομάδες.
12. ΕΠΙΣΗΜΑΝΣΗ ΜΙΚΡΟΜΕΤΑΒΟΛΩΝ
Το περιβάλλον KAREL, αποτελεί ένα μικρόκοσμο που προσομοιώνει ένα υποθετικό ρομπότ με σχετικά περιορισμένο ρεπερτόριο δυνατοτήτων.
Ωστόσο, βασικές έννοιες του προγραμματισμού (όπως το πεπερασμένο των βημάτων των διαδικασιών, η διαδοχή των εντολών, οι επαναληπτικές δομές και οι δομές επιλογής) αποκτούν ένα συγκεκριμένο νόημα στο πλαίσιο του περιβάλλοντος: αλλαγές στη σειρά εκτέλεσης μπορεί να προκαλέσουν μη-επιθυμητή «συμπεριφορά» του ρομπότ' επίσης η δομή επιλογής προβάλλει ξεκάθαρα ως μία επιλογή εξοικονόμησης εντολών.
Το συγκεκριμένο περιβάλλον μπορεί να νοηματοδοτήσει με ορθό τρόπο αυτά τα βασικά χαρακτηριστικά των προγραμμάτων (και των αλγορίθμων) και η σχετική γνώση μπορεί να είναι διαθέσιμη και εφαρμόσιμη, από την πλευρά των μαθητών και σε άλλα προγραμματιστικά περιβάλλοντα.
13. ΟΡΓΑΝΩΣΗ ΤΗΣ ΤΑΞΗΣ - ΕΦΙΚΤΟΤΗΤΑ ΣΧΕΔΙΑΣΗΣ
Προτείνεται οι μαθητές να οργανωθούν σε ομάδες των 2-3 (το πολύ) ατόμων.
Στους υπολογιστές πρέπει να είναι εγκατεστημένο το λογισμικό Karel (http://users.uom.gr/~stelios/Karel.zip). Ένας βιντεοπροβολέας θα ήταν χρήσιμος, χωρίς όμως να είναι απαραίτητος. Τα φύλλα εργασίας θα πρέπει να μοιραστούν στους μαθητές τόσο για την αποτελεσματικότερη διεξαγωγή των δραστηριοτήτων στην τάξη, όσο και για τη στήριξη των μαθητών στη μελέτη στο σπίτι.
14. ΕΠΕΚΤΑΣΕΙΣ/ΔΙΑΣΥΝΔΕΣΕΙΣ ΤΩΝ ΕΝΝΟΙΩΝ Η ΤΩΝ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ
Ο μικρόκοσμος του ρομπότ Karel μπορεί να χρησιμοποιηθεί, όπως έχει ήδη αναφερθεί, για τη διδασκαλία των δομών επιλογής και επανάληψης. Σχετικό υλικό (θεωρία και δραστηριότητες) υπάρχει ενσωματωμένο στην περιοχή των μαθημάτων του μικρόκοσμου.
Επίσης, οι εισαγωγικές δραστηριότητες που παρουσιάζονται μπορούν να εμπλουτιστούν κατάλληλα ανάλογα με την ηλικία των μαθητών, την προηγούμενη εμπειρία τους και των διαθέσιμο χρόνο. Ενδεικτικά, αναφέρονται οι παρακάτω επεκτάσεις:
Ο εκπαιδευτικός μπορεί να δώσει στους μαθητές τον κώδικα ενός προγράμματος (με τις γραμμές αριθμημένες) και να τους ζητήσει να τον εκτελέσουν στο χαρτί, προσδιορίζοντας το αποτέλεσμα της κάθε εντολής στην κατάσταση του κόσμου και τις μεταβολές στις μεταβλητές του ρομπότ Karel.
|
Μεταβολές
τιμών μεταβλητών |
|||
Εκτέλεση
εντολής |
Δρόμος |
Λεωφόρος |
Κατεύθυνση |
Αριθμός beepers
στην
τσάντα |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ανάλυση φύλλου εργασίας 1
Βήμα 1ο - Δραστηριότητα 1: εκκίνηση του περιβάλλοντος. Το περιβάλλον δεν απαιτεί κάποια ιδιαίτερη διαδικασία εγκατάστασης. Αποσυμπιέζετε το αρχείο Karel.zip (http://users.uom.gr/~stelios/Karel.zip) και εκτελείτε το αρχείο Karel.exe.
Βήμα 2ο: Παρουσιάζεται ο προγραμματιστικός μικρόκοσμος του ρομπότ Karel χρησιμοποιώντας τη θεωρία και τη δραστηριότητα της ενότητας «Εισαγωγή». Γίνεται αναφορά στην έννοια των εντολών και της γλώσσα προγραμματισμού.
Βήμα 3ο - Δραστηριότητα 2: Επεξηγούνται οι 4 βασικές εντολές (move(), turnLeft(), putBeeper(), pickBeeper()) τις οποίες αναγνωρίζει και εκτελεί το ρομπότ Karel (θεωρία ενότητας «Βασικές εντολές»). Η εντολή turnOff(), χρειάζεται - όπως αναφέρεται και στη θεωρία - σε ελάχιστες περιπτώσεις και δεν χρειάζεται να δοθεί ιδιαίτερη βαρύτητα.
Βήμα 4ο: Οι μαθητές κατευθύνουν το ρομπότ Karel στην εκτέλεση των απαραίτητων εντολών για την εκτέλεση μιας αποστολής πατώντας κουμπιά με τα ονόματα των εντολών, παρατηρούν το αποτέλεσμα στην κατάσταση του κόσμου και στο ίδιο το ρομπότ και τη σύνταξη των εντολών στη γλώσσα προγραμματισμού (δραστηριότητα ενότητας «Βασικές εντολές»). Επισημαίνεται ότι το ρομπότ Karel διατηρεί σε ειδικές μεταβλητές τις απαραίτητες πληροφορίες για τη θέση, την κατεύθυνση και τον αριθμό των beepers που έχει στην τσάντα του και ζητείται από τους μαθητές να προσδιορίσουν ποια ή ποιες μεταβλητές επηρεάζονται από την εκτέλεση κάθε μιας από τις διαθέσιμες βασικές εντολές.
Δραστηριότητα 3: στο πλαίσιο της δραστηριότητας αυτής οι μαθητές εξοικειώνονται με τον κύκλο ανάπτυξης ενός προγράμματος, τις λειτουργίες του προγραμματιστικού περιβάλλοντος και την ανάπτυξη απλών προγραμμάτων που βασίζονται στη δομή ακολουθίας.
Στη συγκεκριμένη δραστηριότητα προτείνεται μία απλή άσκηση, η οποία βέβαια μπορεί να αντικατασταθεί από οποιαδήποτε άσκηση πιστεύει ο εκπαιδευτικός ότι μπορεί να προκαλέσει το ενδιαφέρον των μαθητών. Θα πρέπει βέβαια ο εκπαιδευτικός να φροντίσει η λύση της πρώτης άσκησης να περιλαμβάνει και τις τέσσερις βασικές εντολές που αναγνωρίζει το ρομπότ Karel.
Αρχικά, δίνονται στους μαθητές συνοπτικές οδηγίες σχετικά με τη διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος με την οποία θα πρέπει να εξοικειωθούν οι μαθητές. Επισημαίνεται στους μαθητές ότι στο εγχειρίδιο του προγραμματιστικού περιβάλλοντος (που τους δίνεται προαιρετικά) υπάρχουν πιο αναλυτικές οδηγίες για κάθε βήμα της συγκεκριμένης διαδικασίας, στις οποίες οι μαθητές μπορούν καταφύγουν για την επίλυση αποριών κατά την ανάπτυξη προγραμμάτων στο σπίτι. Επίσης, ενημερώνονται οι μαθητές ότι στο περιβάλλον υπάρχουν αναλυτικές οδηγίες για όλες τις λειτουργίες που υποστηρίζει (Βοήθεια ► Περιεχόμενα).
Όταν η εισαγωγή στον διαδικαστικό προγραμματισμό πραγματοποιείται με μια συμβατική γλώσσα, η διαδικασία ανάπτυξης προγραμμάτων περιγράφεται στους μαθητές ως μια διαδικασία τριών φάσεων:
1η φάση: είσοδος δεδομένων
2η φάση: επεξεργασία
3η φάση: έξοδος αποτελεσμάτων
Στο πλαίσιο της 1ης φάσης οι μαθητές καλούνται να μελετήσουν τον προσδιορισμό του προβλήματος, να καθορίσουν ποια είναι τα δεδομένα εισόδου, να δηλώσουν τις απαραίτητες μεταβλητές και να διαβάσουν σε αυτές τιμές. Στον μικρόκοσμο του Karel, η φάση αυτή φαίνεται να απουσιάζει μιας και η γλώσσα του Karel δεν υποστηρίζει τη δήλωση μεταβλητών. Όπως αναφέρθηκε ήδη όμως, γίνεται αναφορά στην έννοια της μεταβλητής: το ρομπότ Karel κρατάει τις απαραίτητες πληροφορίες (θέση, κατεύθυνση, αριθμός beepers) σε ειδικές θέσεις στη μνήμη που διαθέτει, οι οποίες ονομάζονται μεταβλητές. Οι μεταβλητές του ρομπότ Karel αλλάζουν τιμή (μεταβάλλονται), καθώς ο Karel εκτελεί διάφορες εντολές. Επίσης, ο Karel καλείται κάθε φορά να φέρει εις πέρας μια αποστολή θεωρώντας ως δεδομένη μια συγκεκριμένη αρχική κατάσταση του κόσμου. Στον μικρόκοσμο του Karel λοιπόν, η φάση της εισόδου περιλαμβάνει τον καθορισμό από τους μαθητές της κατάλληλης αρχικής κατάστασης του Karel και της κατάστασης του κόσμου όπου θα εκτελέσει την αποστολή του.
Στο πλαίσιο της 3ης φάσης χρησιμοποιώντας μια συμβατική γλώσσα οι μαθητές πρέπει να χρησιμοποιήσουν τις κατάλληλες εντολές για την εμφάνιση των αποτελεσμάτων που προέκυψαν από την επεξεργασία των δεδομένων. Στον μικρόκοσμο του Karel, τα αποτελέσματα του προγράμματος στον ίδιο τον Karel και στον κόσμο του είναι άμεσα ορατά. Ωστόσο, ο εκπαιδευτικός θα πρέπει να επισημάνει στους μαθητές ότι θα πρέπει τα αποτελέσματα αυτά να ελέγχονται. Το γεγονός ότι ένα πρόγραμμα εκτελείται χωρίς να προκληθεί λάθος εκτέλεσης, δεν σημαίνει απαραίτητα ότι δίνει σωστά αποτελέσματα.
Μετά την ολοκλήρωση του προγράμματος, ο εκπαιδευτικός μπορεί να ζητήσει από τους μαθητές να κάνουν συγκεκριμένες αλλαγές στο πρόγραμμα, έτσι ώστε να προκληθούν συντακτικά λάθη, λογικά λάθη και λάθη εκτέλεσης και να αποσαφηνιστεί η αιτία που προκαλεί κάθε ένας από αυτούς τους τύπους λαθών και ο τρόπος με τον οποίο αντιμετωπίζονται.
Δραστηριότητες 4-9: οι δραστηριότητες αυτές ασκήσεις που μπορούν να χρησιμοποιηθούν για τη διδασκαλία και εμπέδωση του γνωστικού αντικειμένου, αλλά και στην προετοιμασία φύλλων αξιολόγησης. Ανάλογα με τις διδακτικές ώρες που θα αποφασίσει να αφιερώσει ο εκπαιδευτικός και το βάθος στο οποίο θα αναλύσει τις σχετικές έννοιες, οι προτεινόμενες δραστηριότητες μπορούν να εμπλουτιστούν, όπως και στις προτεινόμενες επεκτάσεις.
Ανάλυση φύλλου εργασίας 2
Στο πλαίσιο των δραστηριοτήτων του 2ου φύλλου εργασίας οι μαθητές εξοικειώνονται με την έννοια και τα πλεονεκτήματα της δημιουργίας νέων εντολών, καθώς και με τον τρόπο υλοποίησής τους στο περιβάλλον του Karel. Αφού γίνει μια σύντομη σύνδεση με το προηγούμενο μάθημα, εκπονούνται οι δραστηριότητες του φύλλου εργασίας. Ο εκπαιδευτικός συντονίζει τη διεξαγωγή των δραστηριοτήτων και επισημαίνει ότι το φύλλο εργασίας μπορεί να χρησιμοποιηθεί από τους μαθητές για τη μελέτη στο σπίτι. Στη συνέχεια, αναλύεται σύντομα η σημασία των βημάτων που πρέπει να ακολουθηθούν για την εκπόνηση των δραστηριοτήτων του φύλλου εργασίας και την επίτευξη των στόχων του σεναρίου.
Βήμα 1ο - Δραστηριότητα 1: Χρησιμοποιείται το παράδειγμα του ρομπότ-ταξιδιώτη (των αποστολών μεγάλων αποστάσεων) της ενότητας «Συναρτήσεις» των μαθημάτων του προγραμματιστικού περιβάλλοντος. Στόχος του παραδείγματος αυτού είναι να κατανοήσουν οι μαθητές ότι πολλές φορές, ακόμη και για απλά προβλήματα, απαιτείται η ανάπτυξη προγραμμάτων με πολύ μεγάλη έκταση, με αποτέλεσμα να είναι δύσκολη η κατανόηση, η αποσφαλμάτωση και η τροποποίησή τους για την επίλυση παρόμοιων προβλημάτων. Ακολουθεί συζήτηση στην τάξη προκειμένου να εντοπιστούν οι λόγοι για τους οποίους για ένα τόσο απλό πρόβλημα απαιτείται η ανάπτυξη ενός τόσο μεγάλου προγράμματος. Ο εκπαιδευτικός, εφόσον αυτό δεν προκύψει από την συζήτηση στην τάξη, επισημαίνει ότι το πρόβλημα που αναφέρθηκε για το παράδειγμα του ρομπότ-ταξιδιώτη έγκειται στο γεγονός ότι οι λύσεις μας πρέπει να μεταφράζονται στις στοιχειώδεις εντολές της γλώσσας προγραμματισμού του ρομπότ Karel. Αναφέρεται η δυνατότητα δημιουργίας νέων εντολών που παρέχουν νέες δυνατότητες στον Karel.
Βήμα 2ο - Δραστηριότητα 2: Ο εκπαιδευτικός, εφόσον αυτό δεν προκύψει από την συζήτηση στην τάξη, επισημαίνει ότι το πρόβλημα που αναφέρθηκε για το παράδειγμα του ρομπότ-ταξιδιώτη έγκειται στο γεγονός ότι οι λύσεις μας πρέπει να μεταφράζονται στις στοιχειώδεις εντολές της γλώσσας προγραμματισμού του ρομπότ Karel. Αναφέρεται η δυνατότητα δημιουργίας νέων εντολών που παρέχουν νέες δυνατότητες στον Karel. Χρησιμοποιείται το πρόγραμμα του ρομπότ-ταξιδιώτη με τη δήλωση και τον ορισμό της νέας εντολής moveKlm (θεωρία της ενότητας «Συναρτήσεις») προκειμένου να εξηγηθούν οι έννοιες της δημιουργίας νέας εντολής (διαδικασίας), του λεξικού και ο τρόπος ορισμού νέων εντολών. Έμφαση δίνεται στο γεγονός ότι μέσα από μια εντολή μπορεί να γίνει κλήση οποιασδήποτε άλλης ήδη γνωστής ή νέας εντολής ορίζεται μέσα στο πρόγραμμα.
Βήμα 3ο - Δραστηριότητα 3: Παρουσιάζεται το πρόβλημα του «σκουπίσματος στις σκάλες» (δραστηριότητα της ενότητας «Συναρτήσεις») και γίνεται συζήτηση με τους μαθητές για τη λύση του. Οι μαθητές μελετούν και εκτελούν δύο προγράμματα για το παραπάνω πρόβλημα - στο 1ο χρησιμοποιούνται μόνο οι βασικές εντολές του ρομπότ Karel, ενώ στο 2ο χρησιμοποιούνται νέες εντολές. Οι μαθητές παροτρύνονται να εκτελέσουν τη δεύτερη έκδοση του προγράμματος βηματικά και να δώσουν ιδιαίτερη προσοχή στη ροή εκτέλεσης του προγράμματος. Ο εκπαιδευτικός κάνει ερωτήσεις στους μαθητές προκειμένου να διαπιστώσει αν κατανοούν:
- το γεγονός ότι μέσα από μια νέα εντολή που ορίζουμε μπορεί να γίνει κλήση άλλων εντολών, είτε αυτές είναι οι βασικές εντολές του ρομπότ Karel είτε νέες εντολές, καθώς επίσης και ποια είναι η ροή εκτέλεσης ενός προγράμματος σε αυτή την περίπτωση
- το γεγονός ότι κάθε νέα εντολή που ορίζουμε μπορεί να κληθεί όσες φορές χρειάζεται (και όχι μόνο μία φορά - παρανόηση), καθώς επίσης και ότι οι νέες εντολές που ορίζονται σε ένα πρόγραμμα δεν εκτελούνται με τη σειρά που εμφανίζονται μέσα σε αυτό (παρανόηση)
- ορισμένες εντολές έχουν βοηθητικό ρόλο, ορίζονται δηλαδή απλά για να κληθούν μέσα από άλλες εντολές και όχι από το κυρίως πρόγραμμα. Οι βοηθητικές εντολές μπορούν να κληθούν στα σημεία όπου θέλουμε να εκτελεστεί η λειτουργία που αντιπροσωπεύουν και συντελούν στην ανάπτυξη πιο ευανάγνωστου κώδικα και φυσικά στην ανάπτυξη επαναχρησιμοποιήσιμου κώδικα.
Βήμα 4ο - Δραστηριότητα 4: Στο πλαίσιο της δραστηριότητας αυτής οι μαθητές καλούνται να τροποποιήσουν ένα πρόγραμμα που αναπτύχθηκε στο μάθημα εξοικείωσης με τις βασικές εντολές που αναγνωρίζει το ρομπότ Karel. Στη συγκεκριμένη περίπτωση χρησιμοποιείται το πρόβλημα της αναρρίχησης στο βουνό και τοποθέτησης της σημαίας.
Ο εκπαιδευτικός ρωτάει τους μαθητές αν αναρωτήθηκαν κατά την ανάπτυξη του προγράμματός τους, ποιες εντολές - εκτός από τις τέσσερις βασικές εντολές που αναγνωρίζει και εκτελεί ο Karel - θα ήταν χρήσιμες σε αυτή την αποστολή. Οι μαθητές συζητάνε στην τάξη και προτείνουν τρόπους βελτίωσης του υπάρχοντος προγράμματος ορίζοντας νέες εντολές. Ο εκπαιδευτικός σημειώνει στον πίνακα τις προτάσεις των μαθητών. Συμπερασματικά, προτείνεται ο ορισμός τριών νέων εντολών τις οποίες υλοποιούν οι μαθητές:
- στροφή δεξιά κατά 90 μοίρες,
- ανέβασμα στο επόμενο επίπεδο του βουνού και
- κατέβασμα στο επόμενο επίπεδο του βουνού.
Οι μαθητές σχολιάζουν τα πλεονεκτήματα και μειονεκτήματα των δύο προγραμμάτων που αναπτύχθηκαν για το ίδιο πρόβλημα.
Δραστηριότητες 5-6: μετά την εξοικείωση των μαθητών με την έννοια της διαδικασίας και την ανάπτυξη προγραμμάτων που κάνουν χρήση διαδικασιών, οι μαθητές αναπτύσσουν προγράμματα για την επίλυση απλών προβλημάτων με χρήση διαδικασιών.
Ανάλογα με τις διδακτικές ώρες που θα αποφασίσει να αφιερώσει ο εκπαιδευτικός και το βάθος στο οποίο θα αναλύσει τις σχετικές έννοιες, οι προτεινόμενες δραστηριότητες μπορούν να εμπλουτιστούν, όπως αναφέρεται στην ενότητα 18.
16. ΑΞΙΟΛΟΓΗΣΗ
Για την αξιολόγηση των μαθητών μπορεί να ετοιμαστεί ένα σχετικό φύλλο εργασίας που θα περιλαμβάνει:
- Ερωτήσεις κλειστού τύπου (σωστού/λάθους, πολλαπλής επιλογής κτλ) προκειμένου να ελέγξει ο εκπαιδευτικός αν οι μαθητές κατανόησαν τις σχετικές έννοιες, καθώς επίσης και αν έχουν δημιουργηθεί κάποιες παρανοήσεις. Οι ερωτήσεις και οι απαντήσεις που θα συμπεριληφθούν θα πρέπει να αντιπροσωπεύουν συνήθεις δυσκολίες και παρανοήσεις που έχουν καταγραφεί για τις σχετικές έννοιες.
- Σταυρόλεξα, SUDOKU. Αξίζει να σημειωθεί ότι τα σταυρόλεξα και γενικά τα ερωτήματα κλειστού τύπου λειτουργούν σε ένα συμπεριφοριστικό πλαίσιο (μπηχεβιοριστικό, όπως λέγεται μερικές φορές) και βοηθούν στην απομνημόνευση ή αποτελούν συμβολικές «επιβραβεύσεις». Όσο για τα SUDOKU, αποτελούν δυνατότητα που προσφέρεται σε περιβάλλοντα όπως το Moodle (επομένως μπορούν να χρησιμοποιηθούν στις περιπτώσεις που υπάρχουν ανάλογες δυνατότητες)
- Εκτέλεση έτοιμων προγραμμάτων στο χαρτί για τη διάγνωση
- δυσκολιών/παρανοήσεων που αφορούν στη ροή εκτέλεσης.
- Ανάπτυξη προγραμμάτων.
Θα δοθούν 2 φύλλα εργασίας, τα οποία παρατίθενται παρακάτω.
Αναλυτική περιγραφή και ανάλυση των φύλλων εργασίας δίνεται στην ενότητα 15.
18. ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ - ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΕΡΓΑΣΙΕΣ
- Ολοκληρώστε τη μελέτη των φύλλων εργασίας που προορίζονται για τους μαθητές και σχολιάστε κάθε ένα από αυτά, αναφέροντας τυχόν αδύναμα σημεία και προτείνοντας αλλαγές, βελτιώσεις ή και προσθήκες (θα μπορούσε να αποτελέσει και κοινή δραστηριότητα με wiki ή με ένα ανάλογο περιβάλλον/εργαλείο).
- Ετοιμάστε ένα φύλλο εργασίας που θα έχει ως στόχο την (αυτό)αξιολόγηση των μαθητών, αναφέροντας σύντομα τον στόχο της κάθε δραστηριότητας που προτείνετε.
- Μελετήστε το διαθέσιμο υλικό για τις δομές επιλογής και επανάληψης και σχεδιάστε δραστηριότητες (ή φύλλα εργασίας) για τη διδασκαλία τους.
- Προτείνετε μια οργάνωση των μαθημάτων για τη διδασκαλία σε μαθητές Γυμνασίου των δομών ελέγχου και της έννοιας της διαδικασίας. Να αναφέρετε τη σειρά διδασκαλίας των διάφορων εννοιών, την προτεινόμενη διάρκεια κάθε ενότητας και το υλικό που θα χρησιμοποιηθεί (από το ήδη διαθέσιμο ή νέο).
- Μελετήστε τη βιβλιογραφία.