TΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚO ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΤΟ SCRATCH ΚΑΙ ΤΗΝ ΜSW LOGO ΓΙΑ ΧΡΗΣΗ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΓΥΜΝΑΣΙΟ
Σπουδάστρια : ΠΑΠΑΡΙΖΟΥ ΖΩΗ Τ-2182 Επιβλέπων Καθηγητής : Σούλτης Γεώργιος ΛΑΡΙΣΑ 2012
Περιεχόμενα: Εισαγωγή ΚΕΦΑΛΑΙΟ 1 - Ιστορική εξέλιξη του προγραμματισμού και της LOGO
4
1.1. Η εξέλιξη της πληροφορικής και η σύνδεση της με την εκπαίδευση 5 1.2. Η διδασκαλία του προγραμματισμού ιστορικά 7 1.2.1. Χρονολογική εξέλιξη της εισαγωγής των ΤΠΕ και της πληροφορικής στην εκπαίδευση 10 1.3. Γλώσσες προγραμματισμού και εκπαίδευση 11 1.4. Αρχές διδακτικής του προγραμματισμού 17 1.4.1. Προσέγγιση της εκμάθησης γλωσσών προγραμματισμού 18 1.4.2. Προσέγγιση της επίλυσης προβλημάτων 19 1.5. Μελέτη και βιβλιογραφία για τη διδασκαλία του προγραμματισμού 22 1.6. Η LOGO αρχές,σύγκριση και διαφορές 23 1.6.1. Κύρια χαρακτηριστικά της Logo 25 1.6.2. Σύγκριση και διαφορές της Logo με άλλες γλώσσες προγραμματισμού 28 1.6.3. Αρχές της Logo 29 1.7. Εμπειρίες και case studies για τη διδασκαλία του προγραμματισμού στα σχολεία 31 1.7.1. Μια Μελέτη Περίπτωσης της Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση με τα LEGO Mindstorms 31 1.7.2. Πιλοτική μελέτη περίπτωσης αξιοποίησης του εργαλείου Scratch στην Διδασκαλία του Προγραμματισμού σε μαθητές της Α’ Λυκείου 41 1.8. Σύγκριση γλωσσών προγραμματισμού όσον αφορά την εκπαίδευση 45 1.8.1. Scratch 45 1.8.2. Alice 46 1.8.3. Greenfoot 48 1.8.4. Starlogo TNG 49 1.8.5. Yenka 49 1.8.6. Storytelling Alice 50 1.8.7. Squeak Etoys 51 2. ΚΕΦΑΛΑΙΟ 2 - Παρουσίαση της LOGO και των διαφόρων εκδόσεων της 2.1. Η παρουσίαση της LOGO 2.2. Βασικές αρχές και περιβάλλον της LOGO 2.2.1. Το περιβάλλον προγραμματισμού Mswlogo 2.2.2. Προγραμματίζοντας τη χελώνα 2.2.3. Οι βασικές εντολές της Logo 2.3. Παρουσίαση των εκδόσεων της LOGO σήμερα 2.3.1. LogoWriter 2.3.2. StarLogo TNG 2
53 56 56 56 57 63 63 65
2.3.3. Microworlds Pro 67 2.3.4. Kturtle 68 2.3.5. NETLogo 68 2.3.6. UCBLogo 69 2.4. Η διδασκαλία των βασικών εννοιών προγραμματισμού στη LOGO 69 3. ΚΕΦΑΛΑΙΟ 3-Παρουσίαση νέων περιβαλλόντων για τη διδασκαλία του προγραμματισμού στα σχολεία 3.1. Νέα περιβάλλοντα και εκδόσεις της LOGO 72 3.1.1. ABAKIO 72 3.2. Νέα διαφορετικά περιβάλλοντα 75 3.2.1. Scratch 75 3.3. Περιβάλλοντα στο διαδίκτυο 78 3.3.1. Wikis 78 3.3.2. Περιβάλλον ΙΡΙΣ 80 3.4. Τα ρομποτικά συστήματα Mindstorms 80 3.4.1. Η ρομποτική στην εκπαίδευση 80 3.4.2. Σχετικά με τα LEGO MINDSTORMS 81 3.4.3. Κατασκευή του RCX 82 3.4.4. Lego Mindstorms NXT 83 4. ΚΕΦΑΛΑΙΟ 4-Παρουσίαση προγραμμάτων για τη διδασκαλία των βασικών αρχών του προγραμματισμου με τη LOGO και το SCRATCH 4.1. Πρόγραμμα σε LOGO 85 4.2. Προγράμματα σε Scratch 87 4.2.1. Ένα παιχνίδι στο Scratch 87 4.2.2. Εκμάθηνση αλγορίθμων ταξινόμησης με χρήση του SCRATCH 89 4.2.2.1. Ταξινόμηση φυσαλίδας 89 4.2.2.2. Η ταξινόμηση επιλογής (selection sort) 91 Συμπεράσματα
93
Αναφορές και Βιβλιογραφία
94
3
Εισαγωγή
Η σημερινή εποχή χαρακτηρίζεται από πολλούς ως η εποχή της πληροφορίας. Ο Η/Υ έχει εισχωρήσει σε όλους τους τομείς της επιστήμης και κάθε άλλης παραγωγικής δραστηριότητας . Η μεγάλη ανάπτυξη και ο ρόλος που έχουν στη σημερινή εποχή οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών (ΤΠΕ), τις έχουν καταστήσει δομική συνιστώσα κάθε σύγχρονου Προγράμματος Σπουδών. Η εξοικείωση των μαθητών με τις ΤΠΕ, από τις πρώτες τάξεις του Γυμνασίου, η κατανόηση βασικών-διαχρονικών εννοιών της Πληροφορικής και η ανάπτυξη σχετικών δεξιοτήτων θεωρούνται τμήμα του πυρήνα της βασικής εκπαίδευσης, αντίστοιχης σπουδαιότητας με την ανάγνωση και τη γραφή. Αποτελεί κοινά αποδεκτή διαπίστωση ότι η οικοδόμηση γνώσεων προγραμματισμού και η ανάπτυξη προγραμματιστικών δεξιοτήτων παρουσιάζει πολλές δυσκολίες κυρίως για τους αρχάριους προγραμματιστές . Τα τελευταία χρόνια έχει αναπτυχθεί πληθώρα εκπαιδευτικών γλωσσών προγραμματισμού και προγραμματιστικών περιβαλλόντων προκειμένου να υποστηριχθεί η διδασκαλία του προγραμματισμού αλλά και να βοηθηθούν οι αρχάριοι στην εκμάθησή του. Τα εκπαιδευτικά προγραμματιστικά περιβάλλοντα εμφανίζουν διαφορές ως προς την τεχνολογία που χρησιμοποιούν, τη διεπαφή τους, τις διδακτικές αρχές στις οποίες στηρίζονται, καθώς και ως προς την ενσωματωμένη γλώσσα προγραμματισμού. Στη συνέχεια της εργασίας αυτής γίνεται μία παρουσίαση κάποιων από αυτά τα εκπαιδευτικά προγραμματιστικά περιβάλλοντα και ειδικότερα των προγραμμάτων MSWlogo και SCRATCH .
4
ΚΕΦΑΛΑΙΟ 1 Ιστορική εξέλιξη του προγραμματισμού και της LOGO
1.1 Η εξέλιξη της πληροφορικής και η σύνδεση της με την εκπαίδευση
Η πληροφορική είναι η επιστήμη που ερευνά την κωδικοποίηση, διαχείριση και μετάδοση συμβολικών αναπαραστάσεων πληροφοριών. Επίσης εξετάζει τη σχεδίαση, υλοποίηση και βελτιστοποίηση αυτοματοποιημένων διατάξεων, συσκευών, υπηρεσιών και συστημάτων συλλογής, αποθήκευσης, επεξεργασίας, εξόρυξης και ανταλλαγής των εν λόγω αναπαραστάσεων. Ως επιστημονικό πεδίο, η πληροφορική περίπου ταυτίζεται με την επιστήμη υπολογιστών.Η αυτοματοποιημένη υλοποίηση των μεθόδων της πληροφορικής βασίστηκε από την πρώτη στιγμή στους ηλεκτρονικούς υπολογιστές. Ωστόσο έχει έναν ευρύτερο σκοπό που δεν περιορίζεται σε συγκεκριμένες τεχνολογικές επιλογές.Ο όρος «πληροφορική» υπονοεί επιπροσθέτως και τη διερεύνηση φυσικών διεργασιών επεξεργασίας πληροφοριών.Αρκετές φορές (κυρίως στον αγγλοσαξονικό κόσμο) ο όρος επιστήμη υπολογιστών χρησιμοποιείται με μία ευρεία έννοια, ταυτόσημη περίπου της πληροφορικής . Τελείως αντίστοιχα, ενώ στην Ελλάδα έχει επικρατήσει ο όρος πληροφορικός για την περιγραφή του κατάλληλα καταρτισμένου επιστήμονα, στον αγγλοσαξονικό κόσμο επικρατεί ο όρος επιστήμονας υπολογιστών. Η κατάσταση περιπλέκεται από το γεγονός ότι η επιστήμη υπολογιστών χρησιμοποιείται εναλλακτικά και με μια πιο στενή έννοια, η οποία περιλαμβάνει μόνο τη θεωρητική πληροφορική και τα μαθηματικά της θεμέλια. Η ιστορία της πληροφορικής ξεκινά με ποικίλες προσπάθειες κατασκευής υπολογιστικών μηχανών με στόχο την αυτοματοποίηση αριθμητικών υπολογισμών, πολύ πριν από την ανάπτυξη των σύγχρονων ψηφιακών υπολογιστών. Η επιστήμη υπολογιστών εμφανίστηκε ως πεδίο των διακριτών μαθηματικών κατά τη δεκαετία του 1930. Στη συνέχεια, ο ENIAC (1946) υπήρξε ο πρώτος επαναπρογραμματιζόμενος ηλεκτρονικός υπολογιστής γενικού σκοπού. Οι υπολογιστές που προηγήθηκαν του ENIAC ήταν είτε μηχανικές κατασκευές ειδικού σκοπού (π.χ. μηχανισμός των Αντικυθήρων), είτε ηλεκτρομηχανολογικές κατασκευές (π.χ.Ζ3) είτε ηλεκτρονικές συσκευές που δεν είχαν όμως καθολικές δυνατότητες υπολογισιμότητας (π.χ. Colossus). Από τα τέλη της δεκαετίας του 1950, οπότε καθιερώθηκε η αρχιτεκτονική φον Νόιμαν των σύγχρονων ψηφιακών υπολογιστών, η αυτονομημένη πλέον πληροφορική άρχισε να αναπτύσσεται σε μεγάλο βαθμό ανεξάρτητα από τις ίδιες τις μηχανές. Αυτό σταδιακά έχει οδηγήσει σε εξελίξεις που
5
πολλοί εκλαμβάνουν συνολικά ως «επανάσταση της πληροφορίας» και «κοινωνία της γνώσης». Σήμερα η πληροφορική ασχολείται με ένα ευρύ φάσμα θεμάτων, όπως η ανάπτυξη αλγορίθμων για την αποτελεσματική επίλυση προβλημάτων, η κατασκευή και βελτίωση συστημάτων λογισμικού και υλικού υψηλής απόδοσης, η ταχεία και ασφαλής διακίνηση πληροφοριών μέσω τηλεπικοινωνιακών δικτύων, η δημιουργία συστημάτων διαχείρισης δεδομένων, η διερεύνηση του τρόπου με τον οποίο ο άνθρωπος διατυπώνει συλλογισμούς, η προσομοίωση της λειτουργίας του ανθρώπινου εγκεφάλου κλπ. Έτσι, η πληροφορική συνδέεται άμεσα με όλες τις θετικές επιστήμες, αλλά και με πολλές άλλες όπως η φιλοσοφία, η ψυχολογία, η γλωσσολογία, η νομική, η ιατρική, τα οικονομικά και η διοίκηση επιχειρήσεων. Πριν ελάχιστα ακόμη χρόνια, πολύ λίγοι είχαν ακούσει π.χ. για προσωπικούς υπολογιστές ή για ψηφιακή τηλεπικοινωνία. Σήμερα οι Τεχνολογίες της Πληροφορικής έχουν εισβάλλει στην ζωή της σύγχρονης κοινωνίας σε τέτοιο βαθμό ώστε δύσκολα πια μπορεί να βρεθεί μια δραστηριότητα που να μην επηρεάζεται, έστω και έμμεσα, από την χρήση υπολογιστών. Ήταν λοιπόν αναμενόμενο, αρκετά σχολεία να συμπεριλάβoυν στο πρόγραμμα τους σχετικά μαθήματα. Με δεδομένο πως η κοινωνία θα βασίζεται όλο και περισσότερο στις Τεχνολογίες της Πληροφορικής, είναι επιτακτική η ανάγκη για την μεθοδευμένη εισαγωγή της Πληροφορικής στην Εκπαίδευση. Είναι κοινώς παραδεκτό ότι οι ηλεκτρονικοί υπολογιστές με τη σωστή χρήση τους μπορούν να συμβάλουν στην παροχή κατάλληλης παιδείας που θα βοηθήσει το ανθρώπινο δυναμικό να αποκτήσει ποιοτική και με υψηλούς ρυθμούς ανάπτυξη.Η χρήση των υπολογιστών στην εκπαίδευση έχει ανοίξει τις πόρτες για την επανένταξη του εκπαιδευτικού συστήματος,αλλά και των αξιών που το διέπουν.Έτσι,υπάρχει έντονη η ανάγκη να οριστεί εκ νέου ο όρος “εκπαίδευση” καθώς και οι σκοποί και επιμέρους στόχοι της.Αυτός ο επαναπροσδιορισμός από τους ειδικούς επιστήμονες διαφόρων ειδικοτήτων είναι απολύτως απαραίτητος,έτσι ώστε να οριστεί η θέση που θα κατέχει η νέα εκπαιδευτική τεχνολογία στο σύγχρονο σχολείο.Εξάλλου,όπως από πολύ νωρίς έχει διατυπωθεί,στο μέλλον ο Η/Υ θα είναι τόσο σημαντικό εκπαιδευτικό εργαλείο,όσο ήταν το μολύβι και το χαρτί μέχρι σήμερα. Αποτελεί σήμερα κοινό τόπο ότι η εποχή μας χαρακτηρίζεται από τη ραγδαία εξέλιξη των επιστημών και της τεχνολογίας και ότι η επιστημονική και η τεχνολογική πρόοδος επιδρούν καταλυτικά στην οικονομική και κοινωνική ζωή,στις εργασιακές σχέσεις,στην εκπαίδευση και στον πολιτισμό.Οι Νέες Τεχνολογίες (της Πληροφορικής και της Επικοινωνίας όπως συχνά αποκαλούνται),λόγω του εγκάρσιου χαρακτήρα τους,διαπερνούν σταδιακά το σύνολο του κοινωνικού ιστού και καθιστούν καταλυτική την παρουσία τους σε όλο το φάσμα των ανθρώπινων δραστηριοτήτων.Επιπρόσθετα,οι τεχνολογίες αυτές βρίσκονται τα τελευταία χρόνια σε μια διαδικασία ένταξης και ενσωμάτωσής τους στο ελληνικό εκπαιδευτικό 6
σύστημα.Αντικείμενο ή μέσο διδασκαλίας και μάθησης,τρόπος σκέψης ή κοινωνικό φαινόμενο,η Πληροφορική και οι εφαρμογές της δεν αμφισβητούνται πλέον στο χώρο του σχολείου. Εξάλλου αναντίρρητη διαπίστωση αποτελεί το γεγονός ότι στην κοινωνία της πληροφορίας που διανύουμε,οι μαθητές έχουν τη δυνατότητα να αντλούν πληροφορίες από πολλές πηγές,οι οποίες είναι,αρκετές φορές,πιο επίκαιρες και πιο έγκυρες από εκείνες που περιέχονται στα σχολικά βιβλία. Η χρήση της Πληροφορικής στην Εκπαίδευση παρουσιάζει ανεξάντλητες εφαρμογές. Μπορεί να χρησιμοποιηθεί σαν βοήθημα στην διδασκαλία όλων των αντικειμένων. Μπορεί να αντικαταστήσει τα ακριβότερα οπτικοακουστικά μέσα και βιβλιοθήκες, μειώνοντας έτσι το χάσμα υλικοτεχνικής υποδομής μεταξύ σχολείων διαφόρων περιοχών. Μπορεί να αφαιρέσει ένα μεγάλο βάρος από τις εργασίες αξιολόγησης. Είναι αναντικατάστατη για την ανάπτυξη κινητικών δεξιοτήτων, ιδιαίτερα σε άτομα που χρειάζονται ειδική αγωγή. Για όλες τις εφαρμογές της Πληροφορικής στην Εκπαίδευση έχει ήδη κατασκευαστεί κάποιο λογισμικό. Σε όλες τις χώρες οι ασχολούμενόι με την Εκπαίδευση, σύμβουλοι, ερευνητές, διοίκηση, δάσκαλοι και μαθητές, παρουσιάζουν έναν 'πυρετό πληροφορικής'. Μερικοί, όλο και λιγότεροι, επισημαίνουν πιθανούς κινδύνους και προβλήματα από την άκριτη εισαγωγή της Πληροφορικής στην Εκπαίδευση και προτείνουν προηγούμενη περίσκεψη. Οι περισσότεροι δείχνουν έναν ζωηρό ενθουσιασμό και τονίζουν τα πολλά αναμενόμενα πλεονεκτήματα που έχει η σύνδεση Εκπαίδευσης και Πληροφορικής. Όσο για τα πιθανά προβλήματα αυτά θα λυθούν όταν θα παρουσιαστούν. Κάποιοι άλλοι, ανάμεσα τους και οι διάφορες επιχειρήσεις Πληροφορικής, συντηρούν και επαυξάνουν αυτόν τον, μάλλον δικαιολογημένο, ενθουσιασμό.
1.2 Η διδασκαλία του προγραμματισμού ιστορικά
Η σημασία του προγραμματισμού Η/Υ, ως γνωστική δραστηριότητα των μαθητών, και η συνεισφορά του στην ανάπτυξη δομημένης σκέψης έχει τεθεί για πρώτη φορά από τον Papert (1980). Παράλληλα, ο προγραμματισμός θεωρείται ένα ισχυρό μέσο για τη διδασκαλία βασικών εννοιών που βρίσκουν εφαρμογή στα Μαθηματικά, στη Φυσική και στη Λογική (Papert 1980, Howe et al. 1989). Κατά την επίλυση προβλημάτων με χρήση προγραμματιστικών εργαλείων χρησιμοποιούνται θεμελιώδεις έννοιες (μεταβλητή, δομή επιλογής, δομές επανάληψης κ.λ.π.) οι οποίες είναι δύσκολο να οικοδομηθούν από τους μαθητές με τα παραδοσιακά διδακτικά μέσα. Η συμβολή του προγραμματισμού στην ανάπτυξη δεξιοτήτων υψηλού επιπέδου 7
και οι διαδικασίες μεταφοράς δεξιοτήτων επίλυσης προβλημάτων σε άλλες γνωστικές περιοχές έχουν γίνει αντικείμενο εκτεταμένης μελέτης (Clements 1987, Kagan 1989, Mayer, Dyck & Vilberg 1989, Kurland et al. 1989, Palumbo & Reed 1991, Ennis 1994, Pirolli & Recker 1994). Ο Η/Υ έχει εισχωρήσει σε όλους τους τομείς της επιστήμης και κάθε άλλης παραγωγικής δραστηριότητας συμβάλλοντας έτσι, με έμμεσο και άμεσο τρόπο, στην ίδια τη ραγδαία εξέλιξή τους. Είναι προφανές πως οι κοινωνικές επιπτώσεις από τη νέα αυτή παραγωγική δύναμη είναι σημαντικές, σύνθετες και, ως ένα σημείο, απρόβλεπτες. Επηρεάζουν άμεσα την ποιότητα της ζωής μας, ακόμη και τη διαμόρφωση του χαρακτήρα μας και τις κοινωνικές μας σχέσεις. Είναι ένα πεδίο όπου χάνονται και κερδίζονται οικονομικοί και πολιτικοί πόλεμοι, όμως και ένα μέσο που ανοίγει νέους ορίζοντες επικοινωνίας. Από την πληθώρα των μέσων που προσφέρει σήμερα η εκπαιδευτική τεχνολογία, σημαντική θέση κατέχει ο ηλεκτρονικός υπολογιστής, του οποίου η εισαγωγή και χρήση στην εκπαίδευση όσον αφορά τη διδακτική υποστήριξη διαφόρων αντικειμένων, βρίσκεται ακόμη σε πρώιμα στάδια. Επομένως, πιστεύουμε ότι ο χώρος προσφέρεται για δημιουργική ενασχόληση και ειδικότερα για την διερεύνηση των δυνατοτήτων συμβολής της πληροφορικής στην εποπτικοποίηση της διδακτικής πράξης, γεγονός που αποτελεί συστηματική επιδίωξη της σύγχρονης διδακτικής. Λέμε ότι ο υπολογιστής είναι σήμερα το καλύτερο εργαλείο που μπορεί να μας πάει από την διδακτική θεωρία στην πράξη. Όντως έτσι είναι και αυτό μπορούμε να το δούμε πολύ βιαστικά από δύο κύρια χαρακτηριστικά του. Πρώτα απ’ όλα είναι τα φυσικά χαρακτηριστικά του. Μπορεί να επεξεργαστεί μεγάλο όγκο δεδομένων πολύ γρήγορα και αφετέρου συνδυάζει πολλά μέσα. Μπορεί να χρησιμοποιηθεί σαν πίνακας, σαν διαφανασκόπιο, σαν βίντεο, σαν κασετόφωνο ή σαν συνδυασμός όλων αυτών με τις νέες τεχνολογίες των πολυμέσων ή και υπερμέσων και είναι στη διάθεσή μας αυτή τη στιγμή, ένα ιδεατό, θα μπορούσαμε να πούμε, εργαλείο που ανάλογα με το μοντέλο που ίσως χρησιμοποιεί ο εκπαιδευτικός, με τις ανάγκες που θέλει να καλύψει και με τους στόχους που έχει βάλει, να χρησιμοποιήσει αυτό το εργαλείο όπως αυτός θέλει. Ένα άλλο χαρακτηριστικό του υπολογιστή, είναι ότι μας δίνει τη δυνατότητα να έχουμε πληροφορία οποιουδήποτε τύπου τη στιγμή που τη θέλουμε, μπορεί να εκμεταλλεύεται πολλά συστήματα συμβόλων (κείμενο, ήχος, εικόνα, βίντεο, τρισδιάστατη αναπαράσταση) και πάλι κατά την επιλογή του δασκάλου. Η προσέγγιση η δική μας είναι αφενός στο χώρο των διαλογικών ή αλληλεπιδραστικών πολυμέσων και υπερμέσων, τα γνωστά στα ελληνικά multi media, hunder media και αφετέρου, ο χώρος της εικονικής πραγματικότητας και η χρήση της σαν εργαλείο στην εκπαίδευση. Τα πράγματα, όχι μόνον εδώ αλλά και διεθνώς είναι σε ερευνητικό επίπεδο και από τη στιγμή που φτιάχνεται κάπου κάτι, πρέπει οπωσδήποτε να αξιολογείται πριν μπει στην εκπαιδευτική διαδικασία.
8
Με τον υπολογιστή σαν εκπαιδευτικό εργαλείο, έχει έρθει μια επανάσταση στα εκπαιδευτικά πράγματα. Ο μαθητής πλέον, δεν είναι ένα παθητικός δέκτης αυτών που διαδραματίζονται στην τάξη, αλλά γίνεται ενεργός συμμέτοχος. Είναι ένα ενεργό στοιχείο της εκπαιδευτικής διαδικασίας ή τουλάχιστον αυτό ισχυριζόμαστε εμείς. Δρα, κάτι κάνει, παίζει αν θέλετε, δημιουργεί, οικοδομεί, φτιάχνει. Η ανάγκη χρήσης / αξιοποίησης του Ηλεκτρονικού Υπολογιστή (Η/Υ) στην αίθουσα διδασκαλίας ως διαχειριστή των σύγχρονων Μέσων Πολλαπλής ή Πολύμορφης Επικοινωνίας / Διδασκαλίας (Multimedia) για την υποβοήθηση του δασκάλου και του μαθητή έχει προσχωρήσει και στη συνείδηση όλων μας αλλά και στην πράξη, στο βαθμό βέβαια που το διαθέσιμο hardware / software (αλλά και humanware !) το επιτρέπουν. Είναι βέβαια γνωστό πως οι υπολογιστές δεν είναι μαγικά εργαλεία και ότι από μόνοι τους δεν μπορούν να αλλάξουν τη μαθησιακή διαδικασία (Montague, 1990). Ερευνητικά δεδομένα όμως των Elliot (1994), Salomon (1990) και De Corte (1994) τονίζουν τον ουσιαστικό ρόλο που μπορεί να διαδραματίσει η εκπαιδευτική τεχνολογία στη δημιουργία υποστηρικτικού μαθησιακού περιβάλλοντος, υπό το πρίσμα της Γνωστικής Επιστήμης. Διαφαίνεται λοιπόν καθαρά η αναγκαιότητα μιας διεπιστημονικής συνεργασίας για τη μελέτη του τρόπου ενσωμάτωσης των υπολογιστών στο αναλυτικό πρόγραμμα του σχολείου, έτσι ώστε να μπορέσουν οι τελευταίοι να μην αφομοιωθούν από τις τρέχουσες εκπαιδευτικές πρακτικές, αλλά να αποτελέσουν την ναυαρχίδα ουσιαστικών αλλαγών στη μαθησιακή διαδικασία. Η εισαγωγή των Η/Υ στην Εκπαίδευση συνοδεύεται από μια σειρά προβλημάτων τα οποία αφορούν τόσο τα επιμέρους προβλήματα της εκπαίδευσης και των Νέων Τεχνολογιών όσο και τα προβλήματα τα οποία προκύπτουν από την αλληλεπίδραση των δύο αυτών χώρων. Η συνθετότητα και το εύρος των προβλημάτων αυτών διαφαίνεται στους λόγους εισαγωγής των Η/Υ στην Εκπαίδευση, οι οποίοι θα μπορούσαν να συνοψιστούν στις παρακάτω κατηγορίες λογικών βάσεων :
λόγοι κοινωνικής φύσεως, με βασικό επιχείρημα την αναγκαιότητα της προετοιμασίας των παιδιών, ώστε να λειτουργήσουν αυτά κατάλληλα σαν πολίτες μιας κοινωνίας πλαισιωμένης από τις Νέες Τεχνολογίες λόγοι επαγγελματικής φύσεως, με επιχείρημα την αναγκαιότητα της προετοιμασίας των παιδιών, ώστε να λειτουργήσουν αυτά κατάλληλα ως επαγγελματίες εργαζόμενοι σε μια τεχνολογική κοινωνία η πορεία των Η/Υ στην Εκπαίδευση ακολούθησε έναν δρόμο κοινό με αυτόν άλλων καινοτομιών, όπως π.χ. κατά την εισαγωγή των οπτικοακουστικών μέσων διδασκαλίας, η εμφάνιση των οποίων δημιούργησε την πεποίθηση για μια επανάσταση στο χώρο της εκπαίδευσης χαρακτηριστικό σημείο ομοιότητας ήταν ο ενθουσιασμός, ο οποίος μονόδρομα πάντα οδηγούσε στο να αποτελεί η χρήση των «μέσων» αυτοσκοπό και να παραμερίζεται το γεγονός ότι αυτές αποτελούν συστατικό μόνο μέρος της εκπαιδευτικής διαδικασίας και όχι το σύνολο.
9
1.2.1 Χρονολογική εξέλιξη της εισαγωγής των ΤΠΕ και της πληροφορικής στην εκπαίδευση Παρακάτω θα αναφέρουμε επιγραμματικά τη χρονολογική εξέλιξη και τις φάσεις της εισαγωγής των νέων τεχνολογιών και της πληροφορικής στην εκπαίδευση καθώς και το πως οι υπολογιστές και οι ΤΠΕ εισήχθηκαν στο εκπαιδευτικό σύστημα: Πριν το 1970:
Μέσα (Media) και τεχνολογίες
Προγραμματισμένα βιβλία
Εκπαιδευτική τηλεόραση
1970-1980:
Ο υπολογιστής και οι γλώσσες προγραμματισμού
Ο υπολογιστής ως διδακτικό εργαλείο
πιλοτικές εφαρμογές (κυρίως σε επίπεδο λυκείων)
Έμφαση στον προγραμματισμό
Basic για εκμάθηση του προγραμματισμού
Εξάπλωση της γλώσσας και της θεωρίας της Logo
1980-1989:
μέσο/αντικείμενο εκπαίδευσης
Εκπαιδευτικό λογισμικό διαφόρων τύπων
Διδασκαλία της πληροφορικής
σφαιρική προσέγγιση: προτείνει τους "Υπολογιστές στα Σχολεία" (Micros in Schools) στην Αγγλία, την "Πληροφορική Για Όλους" (Informatique Pour Tous - IPT) στη Γαλλία
αντίστοιχα προγράμματα εισαγωγής των υπολογιστών εξελίσσονται στις ΗΠΑ και στις άλλες ανεπτυγμένες χώρες
στις ΗΠΑ η εισαγωγή υπολογιστών στο σχολικό σύστημα προωθήθηκε από ερευνητές και εκπαιδευτικούς, αλλά κυρίως από τη βιομηχανία και την αγορά.
Περίοδος γενικευμένης εισαγωγής της πληροφορικής σε όλες τις βαθμίδες της εκπαίδευσης.
Συνυφασμένη με τη αλματώδη εξέλιξη των προσωπικών υπολογιστών, της αντίστοιχης πτώσης των τιμών τους και τις ελπίδες που είχαν εναποτεθεί στην πληροφορική επανάσταση. 10
μετά το 1990:
Τεχνολογίες ως μέσο
Πολυμέσα – υπερμέσα
Δίκτυα υπολογιστών
Εικονικές πραγματικότητες.
1.3 Γλώσσες προγραμματισμού και εκπαίδευση
Γλώσσα προγραμματισμού λέγεται μια τεχνητή γλώσσα που μπορεί να χρησιμοποιηθεί για τον έλεγχο μιας μηχανής, συνήθως ενός υπολογιστή. Οι γλώσσες προγραμματισμού (όπως άλλωστε και οι ανθρώπινες γλώσσες) ορίζονται από ένα σύνολο συντακτικών και εννοιολογικών κανόνων, που ορίζουν τη δομή και το νόημα, αντίστοιχα, των προτάσεων της γλώσσας. Οι γλώσσες προγραμματισμού χρησιμοποιούνται για να διευκολύνουν την οργάνωση και διαχείριση πληροφοριών, αλλά και για την ακριβή διατύπωση αλγορίθμων. Ορισμένοι ειδικοί χρησιμοποιούν τον όρο γλώσσα προγραμματισμού μόνο για τυπικές γλώσσες που μπορούν να εκφράσουν όλους τους πιθανούς αλγορίθμους. Μη-υπολογιστικές γλώσσες όπως η HTML ή τυπικές γραμματικές όπως η BNF δεν λέγονται συνήθως γλώσσες προγραμματισμού.Υπάρχουν χιλιάδες διαφορετικές γλώσσες προγραμματισμού, και κάθε χρόνο δημιουργούνται περισσότερες. Κάθε γλώσσα προγραμματισμού έχει το δικό της σύνολο τυπικών προδιαγραφών (ή κανόνων) που αφορούν το συντακτικό, το λεξιλόγιο και το νόημα της. Για πολλές γλώσσες που χρησιμοποιούνται ευρέως και έχουν χρησιμοποιηθεί για αρκετό χρονικό διάστημα (π.χ. C, C++, Java, Scheme), υπάρχουν ειδικοί φορείς τυποποίησης, οι οποίοι μέσα από τακτές συναντήσεις δημιουργούν, τροποποιούν ή επεκτείνουν τις τυπικές προδιαγραφές που διέπουν τη χρήση μιας γλώσσας προγραμματισμού. Άλλες γλώσσες δεν περιγράφονται σε κάποιο επίσημο πρότυπο αλλά ορίζονται μόνο με βάση κάποια υλοποίησή τους (που αποτελεί το ντε φάκτο πρότυπο), όπως η Python που περιγράφεται από την υλοποίηση Cpython. Πολλές γλώσσες προγραμματισμού έχουν προταθεί κατά καιρούς για την διδασκαλία του προγραμματισμού σε αρχάριους χρήστες.Παρακάτω θα αναφέρουμε 11
κάποιες γλώσσες προγραμματισμού και κάποια εισαγωγικά περιβάλλοντα , τα οποία χρησιμοποιούνται για τη διδασκαλία του προγραμματισμού:
Scratch Το Scratch είναι μια διερμηνευόμενη δυναμική οπτική γλώσσα προγραμματισμού βασισμένη και υλοποιημένη σε Squeak,η οποία αναπτύχθηκε από το MIT Media Lab και εμφανίστηκε για πρώτη φορά το καλοκαίρι του 2007 . Όντας δυναμική, επιτρέπει σε αλλαγές του κώδικα ακόμη και κατά τη διάρκεια της εκτέλεσης των προγραμμάτων. Έχει ως στόχο τη διδασκαλεία εννοιών προγραμματισμού σε παιδιά και εφήβους και να τους επιτρέψει να δημιουργήσουν παιχνίδια, βίντεο και μουσική. Μπορεί να μεταφορτωθεί δωρεάν και χρησιμοποιείται σε μια ευρεία ποικιλία δράσεων εντός και εκτός του σχολείου ανά τον κόσμο.Το όνομα Scratch παραπέμπει στην τεχνική του scratching στα παλαιά πικάπ, και αναφέρεται τόσο στη γλώσσα όσο και στην υλοποίηση της. Η ομοιότητα προς το scratching στη μουσική είναι η εύκολη επαναχρησιμοποίηση κομματιών: στο Scratch όλα τα αλληλεπιδραστικά αντικείμενα, γραφικά και ήχοι μπορούν εύκολα να εισαχθούν σε ένα νέο πρόγραμμα και να συνδυαστούν με νέους τρόπους. Έτσι οι αρχάριοι μπορούν να λάβουν γρήγορα αποτελέσματα και αποκτούν κίνητρο να προσπαθήσουν περαιτέρω. Η δημοτικότητα του Scratch στην εκπαίδευση είναι πολύ μεγάλη αφού μέχρι στιγμής οι χρήστες έχουν διαμοιρασθεί περισσότερα από 1.500.000 projects και οφείλεται στην ευκολία με την οποία μπορούν να δημιουργηθούν προγράμματα: οι εντολές και οι δομές δεδομένων είναι απλές και είναι τουλάχιστον μερικά γραμμένες στην καθομιλουμένη, και η δομή του προγράμματος μπορεί να σχεδιαστεί όπως ένα παζλ, με αποσπώμενα κομμάτια κώδικα που μπορούν να μετακινηθούν και προσαρμοστούν μαζί.
12
Περιβάλλον Scratch
GameMaker Το GameMaker είναι ένα περιβάλλον προγραμματισμού με το οποίο μπορείτε να δημιουργήσετε ηλεκτρονικά παιχνίδια χωρίς να χρειαστεί να γράψετε ούτε μία γραμμή κώδικα. Ωστόσο έχει μία ενσωματωμένη γλώσσα με την οποία μπορείτε να κάνετε πολύ περισσότερα πράγματα. Είναι κατάλληλο για αρχάριους χρήστες ενώ μπορεί να χρησιμοποιηθεί και ως μία εισαγωγή στη λογική του event-driven programming.
Alice Το Alice είναι ένα open source τρισδιάστατο περιβάλλον προγραμματισμού που είναι κατάλληλο για την διδασκαλία του object-driven και του eventdriven προγραμματισμού. Απευθύνεται σε λίγο πιο προχωρημένους χρήστες δίνοντας τους τη δυνατότητα να δημιουργήσουν απλά animated stories και video games.
13
Robomind Το Robomind είναι ένα logo-like περιβάλλον προγραμματισμού. Ο χρήστης καλείται να δώσει οδηγίες σε ένα robot μέσα σε ένα πολύ όμορφο γραφικό περιβάλλον, χρησιμοποιώντας απλές εντολές. Οι εντολές μπορούν να δοθούν είτε πατώντας ένα κουμπί, είτε με το ποντίκι είτε γράφοντας εντολές.
Lego MinStorms Nxt Τα Lego MinStorms Nxt είναι προγραμματιζόμενα ρομπότ τα οποία κατασκευάζονται με τα γνωστά σε όλους μας lego τουβλάκια. Περιέχουν όμως αισθητήρες και κινητήρες που μπορούν να προγραμματιστούν με αποτέλεσμα να μπορούν να κάνουν ένα ρομπότ να κινηθεί, να αποφύγει εμπόδια, να παίξει μουσική και άλλα πολλά. Για τον προγραμματισμό του ρομπότ υπάρχουν διάφοροι τρόποι αλλά ο πιο εύκολος είναι με το γραφικό περιβάλλον που σας παρέχεται όταν αγοράζετε το εκπαιδευτικό πακέτο. Στο περιβάλλον αυτό ο χρήστης δημιουργεί το πρόγραμμα του απλά προσθέτοντας blocks.
Logo Η Logo είναι μια γλώσσα προγραμματισμού που σχεδόν έχει ταυτιστεί με τη χρήση των υπολογιστών από μικρά παιδιά (πρωτοβάθμιας εκπαίδευσης). Αυτό συμβαίνει, γιατί δίνει τη δυνατότητα σε παιδιά κάθε ηλικίας να επικοινωνήσουν με τον υπολογιστή και να τον προγραμματίσουν πολύ εύκολα και γρήγορα ακόμη και στην πρώτη γνωριμία με τη γλώσσα. Χρησιμοποιεί τεχνικές συναρτησιακού προγραμματισμού δηλαδή οι εντολές του χρήστη εκτελούνται με την κλήση ειδικών λειτουργιών των λεγόμενων συναρτήσεων functions.Κατάγεται από τη γλώσσα προγραμματισμού Lisp. Είναι επίσης γνωστή για τα γραφικά που δημιουργεί με την χρήση του δρομέα που μοιάζει με χελώνα (χελωνογραφικά / turtle graphics), αλλά και για το χειρισμό χελώνων ρομπότ που φέρουν μαρκαδόρο, με δυο καταστάσεις αυτού: άνω (PenUp) και κάτω (PenDown). Υπάρχουν πολλές επεκτάσεις της Logo που μπορούν καταλόγους, αρχεία, λειτουργίες εισόδου-εξόδου, όπως και χρησιμοποιούν την τεχνική της αναδρομής. Δυστυχώς δεν κοινά αποδεκτό πρότυπο, ούτε προτυποποίηση της από οργανισμό (όπως ο ISO ή η ECMA) όπως έχει γίνει με προγραμματισμού. 14
να χειρίζονται λειτουργίες που υπάρχει κάποιο κάποιον διεθνή άλλες γλώσσες
H γλώσσα logo ήταν η πρώτη προσπάθεια δημιουργίας μίας εκπαιδευτικής γλώσσας προγραμματισμού που θα απευθύνεται σε μαθητές. Υπάρχουν βέβαια πολλές και διαφορετικές εκδόσεις που χρησιμοποιούνται. Δύο από τις εκδόσεις αυτές είναι οι εξής: o o
Η πρώτη έκδοση είναι η kturtle που είναι τμήμα του γραφικού περιβάλλοντος KDE και υποστηρίζει την ελληνική γλώσσα. Μία ακόμα έκδοση είναι το Microworlds Pro το οποίο έχει πλήρως εξελληνισθεί.
Περιβάλλον MSWlogo
kodu Το kodu είναι ένα νέο περιβάλλον προγραμματισμού από την Microsoft με το οποίο μπορείτε να δημιουργήσετε παιχνίδια. Στόχος του περιβάλλοντος είναι η εκμάθηση βασικών προγραμματιστικών τεχνικών με έναν απλό και διασκεδαστικό τρόπο.
15
εκπαιδευτικά παιχνίδια Ένας ακόμα τρόπος εισαγωγής των μαθητών στις έννοιες του προγραμματισμού είναι η χρήση εκπαιδευτικών παιχνιδιών. Στην κατηγορία αυτή υπάρχουν δύο προτάσεις: o o
Η πρώτη πρόταση είναι το παιχνίδι Lightbot που κυκλοφορεί σε δύο εκδόσεις. Η δεύτερη πρόταση είναι το Robozzle. Είναι ένα social puzzle game στο οποίο ο κάθε χρήστης πρέπει αρχικά να κάνει register και στη συνέχεια έχει την δυνατότητα να λύσει puzzles που μοιάζουν πάρα πολύ με τα επίπεδα του lightbot. Ωστόσο στην περίπτωση του Robozzle οι χρήστες που έχουν λύσει περισσότερα από 40 επίπεδα μπορούν να κατασκευάσουν τα δικά τους puzzles.
Greenfoot Το Greenfoot είναι μία εφαρμογή που απευθύνεται σε λίγο πιο προχωρημένους χρήστες και στόχο έχει την εισαγωγή των μαθητών στις έννοιες του αντικειμενοστραφούς προγραμματισμού. Έχει αναπτυχθεί από το πανεπιστήμιο του Kent στην Αγγλία και από το πανεπιστήμιο του Deakin στην Αυστραλία ενώ η γλώσσα που χρησιμοποιείται από την εφαρμογή είναι η java.
Yenka Sequences Το Yenka Sequences είναι ένα περιβάλλον προγραμματισμού που απευθύνεται σε αρχάριους χρήστες. Σκοπός της εφαρμογής είναι ο έλεγχος τρισδιάστατων χορευτών με την δημιουργία διαγραμμάτων ροής. Έτσι ο χρήστης μαθαίνει για βασικές έννοιες του προγραμματισμού όπως αυτές της ακολουθίας και της επανάληψης. Παρέχεται βέβαια και μία έκδοση που δεν είναι δωρεάν και η οποία έχει αρκετές ακόμα δυνατότητες. Η έκδοση αυτή είναι η Yenka Programming.
16
1.4 Αρχές διδακτικής του προγραμματισμού
Όλοι συμφωνούν πως η Πληροφορική με τις τόσες επιπτώσεις της στην οργάνωση της σημερινής κοινωνίας πρέπει να διδάσκεται στα σχολεία σε όλα τα επίπεδα. Ο προβληματισμός αρχίζει με το γιατί και πώς να διδάσκεται. Τα πρώτα προγράμματα εκπαίδευσης στην πληροφορική ήταν προγράμματα εκπαίδευσης σε συγκεκριμένους ηλεκτρονικούς υπολογιστές και έδιναν μεγαλύτερη έμφαση στην περιγραφή του πώς είναι και πώς λειτουργεί ένας ηλεκτρονικός υπολογιστής παραβλέποντας τις έννοιες και αρχές επεξεργασίας των πληροφοριών, τις εφαρμογές και τις συνέπειες τους. Η πρακτική άσκηση, όποτε υπήρχε, αφορούσε την επίλυση κάποιων απλών, συνήθως αριθμητικών και σπανιότερα, λογιστικών, προβλημάτων πάνω σε μια συγκεκριμένη μηχανή και γλώσσα προγραμματισμού. Το φαινόμενο αυτό παρατηρείται και σήμερα, ιδιαίτερα σε αναπτυσσόμενες χώρες της περιφέρειας, με την μορφή ταχύρυθμης επιμόρφωσης στην χρήση ορισμένης εφαρμογής ή με την άκριτη αντιγραφή κάποιου προγράμματος σπουδών. Εξηγείται από την ανάγκη άμεσης εκπαίδευσης εργατικού δυναμικού, το οποίο θα χειριστεί την νέα τεχνολογία. Το γεγονός, πως η πρωτοβουλία για τα πρώτα προγράμματα επιμόρφωσης προήλθε από προμηθεύτριες εταιρίες, είναι δηλωτικό και του επιδιωκόμενου σκοπού. Στο βασικό σχολείο, η εκπαίδευση στην Πληροφορική πρέπει να αποτελεί μέρος της γενικής μόρφωσης μαζί με την Φυσική, τα Μαθηματικά, την Γλώσσα, την Ιστορία, κλπ. Τμήμα της γενικής παιδείας στην Πληροφορική πρέπει να αποτελούν και οι επιλεγόμενες νομικές ρυθμίσεις στα προβλήματα που δημιουργούνται από την αναπόφευκτη εισβολή της Πληροφορικής στην σύγχρονη κοινωνία. Όταν, περίπου εξήντα χρόνια μετά την αρχή της εξάπλωσης του αυτοκινήτου, άρχισε η διδασκαλία του κώδικα οδικής κυκλοφορίας στα σχολεία, τώρα που συμπληρώνεται μισός περίπου αιώνας από την κατασκευή του πρώτου υπολογιστή, είναι πια καιρός για να διδάσκεται στα σχολεία η κοινωνική συμπεριφορά που προκύπτει ή επιβάλλεται από την Πληροφορική. Κύριος σκοπός της γενικής μόρφωσης στην Πληροφορική πρέπει να είναι η κατανόηση της χρήσης της, πως δηλαδή με αυτήν είναι δυνατό να επιτευχθούν καλλύτερα οι στόχοι στους οποίους αποβλέπουν οι ανθρώπινες δραστηριότητες, καθώς και οι κοινωνικές, επαγγελματικές και πολιτιστικές συνέπειες από την χρήση της. Ο σκοπός αυτός μπορεί να επιτυγχάνεται και μέσω της κατάλληλης χρήσης της Πληροφορικής στις σχολικές δραστηριότητες, στις οποίες συμπεριλαμβάνεται και η διδασκαλία των άλλων αντικειμένων. Η εκμάθηση της χρήσης μιας συγκεκριμένης μηχανής και γλώσσας προγραμματισμού θα προωθείται μόνο στον βαθμό που εξυπηρετεί ή επιβάλλεται από τον προηγούμενο κύριο σκοπό.
17
Ένα περιεχόμενο εκπαίδευσης στην Πληροφορική, αντίστοιχο π.χ. με αυτό της Φυσικής για την βασική και μέση γενική εκπαίδευση, μπορεί να περιλαμβάνει, σε μια σειρά χωρίς αξιολόγηση προτεραιότητας, τα εξής: 1. 2. 3. 4. 5. 6.
πρόσκτηση, φύλαξη, ανάκτηση και επεξεργασία δεδομένων, χρήση γραφικών και ήχου, επεξεργασία κειμένου προσομοίωση καταστάσεων, επίλυση ειδικών προβλημάτων κατά περίπτωση κοινωνικές επιπτώσεις από την εξάπλωση της Πληροφορικής. Το επίπεδο εμβάθυνσης συμβαδίζει, φυσικά, από την ηλικία ή την τάξη στην οποία θα διδάσκεται.
Στα Προγράμματα Σπουδών Πληροφορικής έχουν εφαρμοστεί, σε γενικές γραμμές, δύο διαφορετικές προσεγγίσεις διδασκαλίας του Προγραμματισμού Η/Υ:
1.4.1 Προσέγγιση της εκμάθησης γλωσσών προγραμματισμού
Βασίζεται στην τεχνοκεντρική προσέγγιση για την ένταξη της Πληροφορικής στην εκπαίδευση. Κύριος στόχος είναι η εκμάθηση της χρησιμοποιούμενης γλώσσας προγραμματισμού, ενώ δίνεται έμφαση στη δομή, στο λεξιλόγιο και τους συντακτικούς κανόνες της. Η προσέγγιση αυτή ακολουθήθηκε και στη χώρα μας το 1985, όταν εισήχθη η διδασκαλία του προγραμματισμού στα Τεχνικά Επαγγελματικά Λύκεια (ΤΕΛ) και στα Ενιαία Πολυκλαδικά Λύκεια (ΕΠΛ) με τη μορφή της εκμάθησης της Basic (Β’ τάξη), της Pascal (Γ’ τάξη) και της Cobol (Γ’ τάξη). Αντίστοιχη ήταν η προσέγγιση της εισαγωγής του προγραμματισμού στο Γυμνάσιο το 1992, με τη διδασκαλία της Logo (Α’ τάξη) και της Basic (Γ’ τάξη). Η διδακτική εμπειρία έχει δείξει ότι, ακόμη και στα ΤΕΛ, οι περισσότεροι μαθητές περιορίζονταν στην αποστήθιση εντολών ή διαδικασιών και δεν εξασκούνταν στην ανάπτυξη μεθόδων επίλυσης προβλημάτων.
18
1.4.2 Προσέγγιση της επίλυσης προβλημάτων
Στην προσέγγιση επίλυσης προβλημάτων ο προγραμματισμός αντιμετωπίζεται ως γνωστική δραστηριότητα με στόχο την ανάπτυξη δεξιοτήτων υψηλού επιπέδου. Η διδασκαλία αποδεσμεύεται από τη χρησιμοποιούμενη γλώσσα προγραμματισμού και έχει ως γενικό σκοπό οι μαθητές • να αναπτύξουν αναλυτική και συνθετική σκέψη • να αποκτήσουν ικανότητες μεθοδολογικού χαρακτήρα • να μπορούν να επιλύουν απλά προβλήματα σε προγραμματιστικό περιβάλλον.
Η προσέγγιση αυτή ακολουθήθηκε με το Ενιαίο Πλαίσιο Προγράμματος Σπουδών Πληροφορικής (ΥΠΕΠΘ 1998). Ο προγραμματισμός εισάγεται στο Ενιαίο Λύκειο με τη διδασκαλία των βασικών αρχών στα πλαίσια του μαθήματος της Α’ τάξης “Εφαρμογές Πληροφορικής’’. Παράλληλα, καθιερώνεται στη Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης ένα νέο μάθημα με τίτλο “Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον’’ και στόχο την εισαγωγή στην αλγοριθμική θεωρία και την καλλιέργεια δεξιοτήτων επίλυσης προβλημάτων. Σύμφωνα με το Πρόγραμμα Σπουδών (ΥΠΕΠΘ 1998), οι ειδικοί στόχοι της διδασκαλίας του προγραμματισμού Η/Υ στο Ενιαίο Λύκειο είναι οι μαθητές : • να αναπτύξουν δεξιότητες αλγοριθμικής προσέγγισης (ανάλυση προβλήματος, σχεδίαση αλγορίθμου, δομημένη σκέψη, αυστηρότητα έκφρασης) • να αναπτύξουν δημιουργικότητα και φαντασία. Βασικός στόχος της διδασκαλίας του προγραμματισμού πρέπει να είναι η μεταφορά δεξιοτήτων επίλυσης προβλημάτων, δηλαδή οι μαθητές να είναι σε θέση να εφαρμόζουν τις γνώσεις τους για την επίλυση προβλημάτων που δεν έχουν διδαχθεί πιο πριν (αυθεντικά προβλήματα).Θα πρέπει να σημειωθεί ότι, η μεταφορά αρχών και δεξιοτήτων μεταξύ διαφορετικών γνωστικών περιοχών εξαρτάται από τη δυναμική που έχουν οι ομοιότητες ανάμεσα στην οικεία και στη νέα περιοχή. Συνήθως οι μαθητές έχουν περιορισμένες δυνατότητες να αναγνωρίζουν τις ομοιότητες μεταξύ διαφορετικών προβλημάτων. Στις περισσότερες περιπτώσεις προσπαθούν να κατατάξουν τις προγραμματιστικές εργασίες ή διαδικασίες σύμφωνα με τα επιφανειακά χαρακτηριστικά τους. Αντίθετα, οι έμπειροι προγραμματιστές εστιάζουν την προσοχή τους στα εννοιολογικά χαρακτηριστικά και στις υπολογιστικές δομές. Η 19
μελέτη της νοητικής δραστηριότητας των έμπειρων προγραμματιστών δείχνει ότι χειρίζονται σε υψηλό βαθμό σημαντικές τεχνικές επίλυσης προβλημάτων, όπως είναι:
ο διαχωρισμός ενός σύνθετου προβλήματος σε απλούστερα τμήματα (modules) η χρήση περίπλοκων γνωστικών δεξιοτήτων υψηλού επιπέδου (αναλυτικήσυνθετική σκέψη, αναλογικοί-αιτιακοί συλλογισμοί, συλλογισμοί συνθήκης κ.λ.π.) η συστηματοποίηση της επίλυσης προβλημάτων (σχεδίαση αλγορίθμου, κωδικοποίηση, εκσφαλμάτωση, αξιολόγηση).
Στα εισαγωγικά μαθήματα του προγραμματισμού δίνεται, συνήθως, μεγάλη έμφαση στο συντακτικό της χρησιμοποιούμενης γλώσσας και όχι στην κατανόηση των θεμελιωδών αρχών του προγραμματισμού. Οι διδακτικές παρεμβάσεις δεν επικεντρώνονται στην ανάπτυξη δεξιοτήτων επίλυσης προβλημάτων, ενώ δεν παρέχονται στους μαθητές ευκαιρίες εκμάθησης τρόπων ή μεθόδων που θα προωθούν τη μεταφορά δεξιοτήτων. Η οργάνωση των διδακτικών παρεμβάσεων σχετικά με την εκπαίδευση των μαθητών στην επίλυση προβλημάτων σε προγραμματιστικά περιβάλλοντα, με στόχο τη μεταφορά δεξιοτήτων, πρέπει να γίνεται σε τρεις άξονες:
ανάπτυξη αποτελεσματικών εννοιολογικών μοντέλων και αναπαραστάσεων για τον υπολογιστή και τη λειτουργία του κατά τη διάρκεια της εκτέλεσης των εντολών του προγράμματος πρόσκτηση σχετικών δεξιοτήτων, όπως είναι η κατανόηση και εμπέδωση μιας ομάδας ή ενός τμήματος εντολών ανάπτυξη τεχνικών και στρατηγικών επίλυσης προβλημάτων που εφαρμόζουν.
Ο προγραμματισμός ως γνωστική δραστηριότητα περιλαμβάνει την πρόσκτηση και την αποτελεσματική εφαρμογή των παρακάτω αλληλοεξαρτώμενων μορφών γνώσης (Bayman & Mayer 1988, Pair 1990): 1. Συντακτική γνώση Είναι η γνώση των ειδικών χαρακτηριστικών μιας γλώσσας προγραμματισμού και των κανόνων χρήσης της. 2. Εννοιολογική γνώση Η εννοιολογική γνώση αφορά στην πλήρη κατανόηση των προγραμματιστικών δομών και αρχών. Διακρίνεται στη σημασιολογική (semantic knowledge) και στη σχηματική γνώση (schematic knowledge). Η σημασιολογική γνώση βασίζεται σε 20
ολοκληρωμένα εννοιολογικά μοντέλα για το σύστημα του υπολογιστή, το τι συμβαίνει στο εσωτερικό του κατά την εκτέλεση των εντολών του προγράμματος, την έννοια της μεταβλητής, τις δομές επιλογής και επανάληψης κ.λ.π. Η σχηματική γνώση συνίσταται στο ρεπερτόριο ρουτινών και αλγορίθμων που διαθέτει ο μαθητής. Σε αντίθεση με τους μαθητές, οι έμπειροι προγραμματιστές έχουν ένα μεγάλο, δομημένο σύνολο ρουτινών που είναι σε θέση εύκολα να ανακαλέσουν και να εφαρμόσουν σε νέες καταστάσεις. 3. Στρατηγική γνώση (μεταγνώση) Είναι η ικανότητα εφαρμογής των συντακτικών και εννοιολογικών γνώσεων για την επίλυση αυθεντικών προβλημάτων προγραμματισμού. Βασίζεται στην ανάπτυξη δεξιοτήτων υψηλού επιπέδου (ανάλυση-σύνθεση, διατύπωση συνθηκών και αιτιακών συσχετισμών κ.λ.π.) για το σχεδιασμό προγραμμάτων και στην ικανότητα μεταφοράς δεξιοτήτων επίλυσης προβλημάτων σε άλλα γνωστικά αντικείμενα. Με βάση τα πορίσματα της γνωστικής ψυχολογίας διακρίνονται δύο τύποι γνώσεων (Anderson 1983):
Δηλωτική γνώση (declarative knowledge)
Ορίζεται ως η γνώση που αφορά γεγονότα, έννοιες και αρχές: γνωρίζω κάτι. Η βάση της γνώσης αυτής οργανώνεται σε εννοιολογικές δομές που λέγονται σχήματα. Σε ότι αφορά στον προγραμματισμό, οι δηλωτικές γνώσεις αφορούν στο συντακτικό της γλώσσας και στις βασικές αρχές του προγραμματισμού (π.χ. αναγνώριση του ρόλου μιας υπολογιστικής δομής ή ενός τμήματος αλγορίθμου).
Διαδικαστική γνώση (procedural knowledge)
Αναφέρεται στην αποτελεσματική χρήση και εφαρμογή των δηλωτικών γνώσεων για την επίλυση προβλημάτων: γνωρίζω πώς και γιατί. Η διαδικαστική γνώση στον προγραμματισμό σχετίζεται με : • την ικανότητα εφαρμογής των σχετικών γνώσεων (συντακτικών και εννοιολογικών) για την ανάπτυξη ολοκληρωμένων προγραμμάτων • τη μετατροπή των δηλωτικών γνώσεων σε διαδικασίες (procedures) • τη δυνατότητα αυτοματοποιημένης ανάκλησης και εφαρμογής διαδικασιών.
21
Είναι προφανές ότι, στη γνωστική περιοχή του προγραμματισμού και ειδικότερα στο πλαίσιο της επίλυσης προβλημάτων, οι δύο αυτοί τύποι γνώσεων δύσκολα μπορούν να διακριθούν και να αντιμετωπιστούν ξεχωριστά.
1.5 Μελέτη και βιβλιογραφία για τη διδασκαλία του προγραμματισμού
Ο προγραμματισμός, ως γνωστική δραστηριότητα, μπορεί να βοηθήσει τους μαθητές του Λυκείου στην ανάπτυξη δεξιοτήτων υψηλού επιπέδου για την επίλυση προβλημάτων (μοντελοποίηση λύσεων, δομημένη σκέψη). Από την μέχρι τώρα εμπειρία του μαθήματος στο Λύκειο, φαίνεται όμως ότι δεν έχει εμπεδωθεί η σημασία του, τόσο από τους εκπαιδευτικούς όσο και από τους μαθητές και δεν έχουν επιτευχθεί σε ικανοποιητικό βαθμό οι στόχοι του Προγράμματος Σπουδών. Εντοπίζονται σημαντικές δυσκολίες στους μαθητές, ιδιαίτερα σε αυτούς που δεν έχουν προηγούμενη εμπειρία στον προγραμματισμό, επειδή δεν είχαν επιλέξει τα μαθήματα της Πληροφορικής στις Α’ και Β’ τάξεις. Τα περιορισμένα αποτελέσματα διαπιστώνονται επίσης από τη μεγάλη αποτυχία των μαθητών της Γ’ Λυκείου τεχνολογικής κατεύθυνσης στις Πανελλαδικές Εξετάσεις του 2002 στο μάθημα ’’Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον’’, όπου περίπου 2 στους 3 μαθητές (66.91%) έγραψαν βαθμό κάτω από τη βάση (Κάτσικας 2003). Θα μπορούσαν να δημιουργηθούν ευνοϊκότερες προϋποθέσεις για την επιτυχία των μαθητών, αν το μάθημα ‘’Εφαρμογές Πληροφορικής’’ της Α’ Λυκείου ήταν βασικό, με μεγαλύτερη έμφαση στις ενότητες του προγραμματισμού. Από την άλλη μεριά, είναι απαραίτητο να δημιουργηθεί ένα ολοκληρωμένο πλαίσιο μαθημάτων Πληροφορικής γενικής παιδείας και τεχνολογικής κατεύθυνσης, με παράλληλη αναδιάρθρωση του Προγράμματος Σπουδών. Ειδικότερα, το περιεχόμενο του μαθήματος ‘’Τεχνολογία Επικοινωνιών’’ της Β’ τάξης τεχνολογικής κατεύθυνσης δεν είναι σχεδιασμένο σύμφωνα με τους στόχους της κατεύθυνσης, ενώ δεν υπάρχει καμία διασύνδεση με το μάθημα του προγραμματισμού της Γ’ Λυκείου. Τα σχετικά αντικείμενα και οι παρεχόμενες γνώσεις είναι ξεπερασμένες, με αποτέλεσμα ο μαθητής να μην αποκτά συνολική και ολοκληρωμένη εικόνα για την πληροφορική τεχνολογία. Το σχολικό εγχειρίδιο αποτελεί κακή μετάφραση από τα Αγγλικά και δεν είναι κατάλληλο για ένα μάθημα σύμφωνο με τους στόχους του Ενιαίου Πλαισίου Προγράμματος Σπουδών. Από τα αποτελέσματα προηγούμενης έρευνας προκύπτει ότι οι εμπειρικέςτεχνοκεντρικές διδακτικές προσεγγίσεις είναι κυρίαρχες, ενώ η φιλοσοφία του Προγράμματος Σπουδών Πληροφορικής δεν έχει υιοθετηθεί από τους εκπαιδευτικούς της πράξης . Είναι προφανές ότι τα αντικείμενα της Πληροφορικής, και ειδικότερα ο 22
προγραμματισμός, δεν μπορούν να προσεγγισθούν αποτελεσματικά με βάση τα παραδοσιακά διδακτικά μοντέλα, όπου ο δάσκαλος αποτελεί το φορέα γνώσης και ο μαθητής τον παθητικό αποδέκτη. Θα πρέπει όμως να αναγνωρίσουμε ότι η αλλαγή αυτή συνιστά ένα δύσκολο διδακτικό εγχείρημα, στο οποίο παρεμβαίνουν ανασταλτικά: 1. Το συνολικό εκπαιδευτικό πλαίσιο στη Β/θμια εκπαίδευση (και ιδιαίτερα στο Λύκειο), το οποίο είναι προσανατολισμένο στις εξετάσεις, κυριαρχεί η διδασκαλία μετωπικού χαρακτήρα, ενώ απουσιάζουν οι ερευνητικές και συνεργατικές δραστηριότητες. 2. Οι εμπειρικές διδακτικές προσεγγίσεις, οι οποίες κυριαρχούν συνολικά στη σχολική πρακτική. 3. Η περιορισμένη προετοιμασία και υποστήριξη των καθηγητών της Πληροφορικής, οι οποίοι αναπαράγουν τα παραδοσιακά εκπαιδευτικά πρότυπα που ανακαλούν εύκολα από την εμπειρία των δικών τους σπουδών.
1.6 Η LOGO αρχές,σύγκριση και διαφορές
«Μαθαίνουμε καλύτερα κάνοντας... αλλά μαθαίνουμε ακόμα καλύτερα αν συνδυάσουμε τη δράση με την ομιλία και το στοχασμό πάνω σ΄ αυτά που κάνουμε». S. Papert, 1999
Η Logo είναι γλώσσα προγραμματισμού η οποία αναπτύχθηκε στις αρχές του 1970 στο Τεχνολογικό Ινστιτούτο της Μασαχουσέτης (ΜΙΤ), από την ομάδα του Seymour Papert (με τη συμβολή της Cynthia Solomon και της Wally Feuerzeig) ως μαθησιακό εργαλείο. Το όνομά της προέρχεται από την ελληνική λέξη ΛΟΓΟΣ. Η Logo αποτελεί διάλεκτο της Lisp, της γλώσσας της τεχνητής νοημοσύνης, και έχει αξιοποιηθεί στην εκπαίδευση περισσότερο από οποιαδήποτε άλλη γλώσσα προγραμματισμού. Στη βάση της στηρίζεται στη φιλοσοφία του Κονστρουκτιβισμού όπως αναπτύχθηκε από τον Piaget αλλά συνδυάζει και προσεγγίσεις του Piaget και του Vygotsky. Συχνά διατυπώνονται αμφιβολίες για την εκπαιδευτική της αποτελεσματικότητα. Παρόλα αυτά θεωρείται ιδανικό εργαλείο για να μαθαίνεις κάνοντας (learning by doing) και αναμφίβολα αποτελεί σημαντικό εργαλείο στα χέρια του εκπαιδευτικού για την ανάπτυξη δεξιοτήτων εξερεύνησης, δημιουργικότητας, επίλυσης προβλημάτων, λογικής-αλγοριθμικής σκέψης. 23
Όλες οι γλώσσες προγραμματισμού αποτελούν εργαλεία για την ανάπτυξη μοντέλων. Η Logo είναι ιδιαίτερα κατάλληλη για την ανάπτυξη μοντέλων από παιδιά. Απ’ όλες τις γλώσσες προγραμματισμού η Logo σχεδιάστηκε για να δημιουργεί μοντέλα με πολύ εύκολο τρόπο. Με τη Logo αναπτύσσουμε μοντέλα οραματιζόμενοι ένα «όλον», σπάζοντας το σε τμήματα εύκολα διαχειρίσιμα τα οποία μπορούν να διδαχθούν στον υπολογιστή. Χρησιμοποιούμε τη γλώσσα που γνωρίζει ο υπολογιστής για τον διδάξουμε νέες λέξεις. Συχνά διδάσκουμε τη χελώνα νέες λέξεις γράφοντας διαδικασίες, οι οποίες είναι μια σειρά εντολών για να κάνει κάτι. Πειραματιζόμαστε με τις εντολές και αξιολογούμε το πρόγραμμά μας για να δούμε αν τα έργα υλοποιήθηκαν όπως περιμέναμε. Ανταποκρινόμαστε στις παρανοήσεις του υπολογιστή καθώς εκσφαλματώνουμε τις εντολές και τις διαδικασίες και μερικές φορές αναδομούμε την προσέγγισή μας. Στο περιβάλλον της Logo οι μαθητές αναλαμβάνουν το ρόλο του δασκάλου. Ως δάσκαλος ο μαθητής οφείλει να :
Καταλάβει τη γνώση που πρόκειται να διδάξει,
Οργανώσει μια διδακτική προσέγγιση,
Σπάσει τη γνώση σε μικρά, κατανοητά τμήματα,
Επικοινωνήσει με το μαθητή,
Θεμελιώσει τη γνώση ως βάση για μελλοντική μάθηση,
Αναγνωρίσει τις ήδη κατεκτημένες γνώσεις του μαθητή και να χτίσει πάνω σ’αυτές,
Είναι ανοικτός για εξερεύνηση νέων ιδεών όπως εμφανίζονται,
Ανταποκρίνεται στις παρανοήσεις και τα λάθη του μαθητή.
Οι μαθητές, στο περιβάλον της Logo:
Πειραματίζονται με εντολές Logo για να τις καταλάβουν και να νιώσουν αυτοπεποίθηση με τη χρήση τους,
Σχεδιάζουν τη δουλειά τους και την οργανώνουν στις διάφορες συνιστώσες της,
Γράφουν μια σειρά εντολών για να ολοκληρώσουν κάθε μικρό υποέργο,
Οικοδομούν ένα πρόγραμμα όπου ολοκληρώνουν όλα τα υποέργα στη σωστή σειρά,
Δοκιμάζουν το πρόγραμμά τους και αξιολογούν τη δουλειά τους,
Εκσφαλματώνουν το πρόγραμμμά τους εντοπίζοντας και διορθώνοντας τα λάθη ή αναδομούν την προσέγγισή τους. 24
1.6.1 Κύρια χαρακτηριστικά της Logo
Κύρια θετικά χαρακτηριστικά της Logo αποτελούν η αλληλεπιδραστικότητα, η συναρμολογησιμότητα - επεκτασιμότητα, η ευκαμψία ως προς τύπους δεδομένων. Αλληλεπιδραστικότητα Η Logo γενικά χρησιμοποιεί διερμηνέα (interpreter) -αν και υπάρχουν κάποιες εκδόσεις Logo που χρησιμοποιούν μεταγλωττιστή. Η αλληλεπιδραστικότητα της προσέγγισης αυτής προσφέρει στο χρήστη άμεση ανατροφοδότηση για ξεχωριστές εντολές, που βοηθά στην εκσφαλμάτωση και στη μαθησιακή διαδικασία. Τα μηνύματα λάθους είναι περιγραφικά . Πχ μπροσά Δεν ξέρω τίποτε για μπροσά Εξήγηση: η λέξη μπροσά δεν είναι πρωτογενής εντολή ούτε διαδικασία που ορίσατε. μπροστά Το μπροστά απαιτεί περισσότερα δεδομένα Εξήγηση: η λέξη μπροστά αναγνωρίζεται ως πρωτογενής εντολή αλλά το πρόγραμμα δεν τρέχει γιατί απαιτείται πρόσθετη πληροφορία. μπροστά 100 Εξήγηση: η χελώνα κινείται μπροστά 100 βήματα. Δεν εμφανίζεται μήνυμα λάθους. τύπωσε 3+4 Δεν ξέρω τίποτε για 3+4 Εξήγηση: δεν υπάρχουν κενά μεταξύ αριθμών-συμβόλου. τύπωσε 3 + 4 Δεν βρέθηκε πλαίσιο κειμένου για την εντολή τύπωσε Εξήγηση: Δεν βρέθηκε πλαίσιο κειμένου για την εντολή τύπωσε στην εργασία. τύπωσε 3 + 4
25
Εξήγηση: τυπώνεται το 7 στο υπάρχον πλαίσιο κειμένου στην εργασία ενώ δεν εμφανίζεται μήνυμα λάθους.
Συναρμολογησιμότητα - επεκτασιμότητα Τα προγράμματα της Logo συνήθως αποτελούν συλλογές μικρών διαδικασιών. Οι διαδικασίες ορίζονται στην καρτέλα διαδικασίες. Η ειδική λέξη για ακολουθείται από το όνομα της διαδικασίας. Ακόλουθες γραμμές σχηματίζουν τον ορισμό της διαδικασίας. Η λέξη τέλος σηματοδοτεί τη λήξη του ορισμού της διαδικασίας. Πχ για την κατασκευή τετραγώνου ορίζουμε τη διαδικασία τετράγωνο για τετράγωνο επανάλαβε 4[ μπ 100 δε 90] τέλος Η διαδικασία τετράγωνο μπορεί να χρησιμοποιηθεί ως υποδιαδικασία άλλης διαδικασίας που έτσι θα αποτελέσει υπερδιαδικασία: για λουλούδι επανάλαβε 18[ δε 20 τετράγωνο] τέλος Ομοίως, η υπερδιαδικασία λουλούδι χρησιμοποιείται ως δομικό στοιχείο για την κατασκευή άλλης υπερδιαδικασίας: για κήπος επανάλαβε 20[ θέσεχ τυχαίο 50 θέσεψ τυχαίο 100 θέσεχρώμα τυχαίο 50 λουλούδι] τέλος Από τη στιγμή που μια διαδικασία οριστεί λειτουργεί όπως οι πρωτογενείς διαδικασίες. Στην πραγματικότητα διαβάζοντας ένα πρόγραμμα σε Logo δεν μπορείς να ξέρεις ποιες λέξεις είναι πρωτογενείς και ποιες ορισμένες από το χρήστη εκτός αν γνωρίζεις τη συγκεκριμένη έκδοση της Logo. Η εντολή διάλεξε αποτελεί πρωτογενής λέξη σε μερικές εκδόσεις της Logo, ενώ σε άλλες όχι. Η Logo σου επιτρέπει να χτίσεις πολύπλοκα σχέδια εργασιών με μικρά βήματα. Ο προγραμματισμός σε Logo γίνεται προσθέτοντας στο λεξιλόγιο, διδάσκοντας το νέες 26
λέξεις με βάση τις λέξεις που ήδη ξέρει. Μ’ αυτό τον τρόπο μοιάζει με τον τρόπο που μαθαίνεις ξένη γλώσσα.
Ευκαμψία ως προς τύπους δεδομένων Η Logo δουλεύει με λέξει και λίστες. Μια λέξη της Logo είναι μια σειρά χαρακτήρων. Μια λίστα είναι μια διατεταγμένη σειρά λέξεων ή λιστών. Οι αριθμοί είναι λέξεις, αλλά είναι σπέσιαλ γιατί μπορείς να κάνεις αριθμητική μ’ αυτούς. Πολλές γλώσσες προγραμματισμού είναι αυστηρές σχετικά με την απαίτηση να γνωρίζουν τι είδος δεδομένων θα χρησιμοποιηθούν. Αυτό κάνει τα πράγματα εύκολα για τον υπολογιστή αλλά δύσκολα για τον προγραμματιστή. Προτού πχ προσθέσεις ένα ζευγάρι αριθμών θα πρέπει να καθορίσεις αν πρόκειται για ακεραίους ή πραγματικούς αριθμούς. Στη Logo δεν απαιτείται κάτι τέτοιο, όταν ζητήσουμε να κάνει αριθμητική απλά το κάνει. Πιθανά να δημιουργηθεί έκπληξη σε όσους δεν είναι εξοικειωμένοι με τη Logo αλλά έχουν δουλέψει με άλλες γλώσσες προγραμματισμού: τύπωσε λέξη "κα "λά τυπώνει σε υπάρχον πλαίσιο κειμένου τη λέξη καλά τύπωσε λέξη "5 "4 τυπώνει σε υπάρχον πλαίσιο κειμένου τον αριθμό 54 τύπωσε 20 + λέξη "5 "4 τυπώνει σε υπάρχον πλαίσιο κειμένου τον αριθμό 74
Η Logo του MicroWorlds περιλαμβάνει πολύ-επεξεργασία (multi-tasking) έτσι ώστε πολλές ανεξάρτητες διεργασίες να τρέχουν ταυτόχρονα. Xρησιμοποιείται το πρότυπο Multiple Instruction Multiple Data (MIMD). Στην παραδοσιακή Logo η εντολή στη χελώνα επανάλαβε 9999 [ μπ 1 δε 1] χρειάζεται λίγο χρόνο για να εκτελεστεί.
27
Η εντολή επανάλαβε 9999 [ μπ 1 δε 1] τύπωσε "γεια θα τυπώσει τη λέξη γεια αφού ολοκληρώσει η χελώνα την κίνησή της. Η εντολή εκκίνηση [επανάλαβε 9999 [ μπ 1 δε 1]] τύπωσε "γεια θα τυπώσει τη λέξη γεια μόλις ξεκινήσει η χελώνα την κίνησή της. Η εντολή συνεχώς [ μπ 1 δε 1] τύπωσε "γεια θα ξεκινήσει μια διεργασία που θα συνεχιστεί μέχρι να την διακόψετε. Η λέξη γεια θα τυπωθεί μόλις ξεκινήσει η χελώνα την κίνησή της.
1.6.2 Σύγκριση και διαφορές της Logo με άλλες γλώσσες προγραμματισμού
"Η LOGO είναι με μεγάλη διαφορά η πιο δυνατή γλώσσα προγραμματισμού, που είναι διαθέσιμη για home computers". Είναι μια διάλεκτος της LISP, της γλώσσας η οποία χρησιμοποιήθηκε στα πιο προχωρημένα ερευνητικά προγράμματα στην επιστήμη των υπολογιστών και ειδικά στη τεχνητή νοημοσύνη. Μέχρι πρόσφατα, όλα τα βιβλία γύρω από τη LOGO ήταν τετριμμένα και είχαν σκοπό να υπογραμμίσουν την κατασκευή χαριτωμένων σχημάτων με τη χελώνα. Αλλά τα χαριτωμένα αυτά σχήματα δεν είναι η ολοκληρωμένη εικόνα. Τι σημαίνει μια γλώσσα να είναι δυνατή; Δεν σημαίνει ότι μπορείς να γράψεις προγράμματα σε μια συγκεκριμένη γλώσσα, η οποία κάνει πράγματα, που δεν μπορείς να κάνεις σε μια άλλη γλώσσα. (Με αυτή τη λογική όλες οι γλώσσες είναι ίδιες. Αν μπορείς να γράψεις ένα πρόγραμμα στη LOGO μπορείς να το γράψεις στην PASCAL και στη BASIC ή το αντίθετο.) Αντίθετα, η δύναμη μιας γλώσσας είναι ένας τρόπος για να μετράμε πόσο σε βοηθάει η γλώσσα να συγκεντρώνεσαι στο πραγματικό πρόβλημα που ήθελες να λύσεις από την αρχή, παρά να σε κάνει να ανησυχείς για τους περιορισμούς της γλώσσας. Για παράδειγμα στην PASCAL, στη BASIC και σε όλες τις άλλες γλώσσες που παράγονται από την FORTRAN, ο προγραμματιστής πρέπει να είναι πολύ συγκεκριμένος γύρω από το τι πηγαίνει πού στη μνήμη του υπολογιστή. Αν θέλουμε να ομαδοποιήσουμε 20 νούμερα μαζί σαν ομάδα, πρέπει να ορίσεις ένα array 28
λέγοντας προκαταβολικά ότι θα υπάρχουν ακριβώς 20 νούμερα μέσα σ’ αυτό. Αν αργότερα, κατά την εκτέλεση του προγράμματος, αλλάξεις γνώμη και θες 21 νούμερα, υπάρχει πρόβλημα. Πρέπει επίσης να πεις προκαταβολικά ότι αυτό το array περιέχει 20 ακέραιους ή ίσως 20 νούμερα μέσα στα οποία επιτρέπονται και κλάσματα ή ίσως 20 χαρακτήρες κειμένου αλλά όχι λίγο απ’ όλα. Στη LOGO η όλη διεργασία προσδιορισμού αποθήκευσης είναι αυτόματη. Αν το πρόγραμμά σας παράγει μια λίστα από 20 νούμερα, ο χώρος για αυτή τη λίστα παρέχεται χωρίς καμία δική σας προσπάθεια. Αν αργότερα θέλετε να προσθέσετε ένα 21ο νούμερο κι αυτό επίσης είναι αυτόματο. Άλλο ένα παράδειγμα είναι η σύνταξη της γλώσσας, οι κανόνες για την κατασκευή σωστών εντολών. Όλες οι παραγόμενες από την FORTRAN γλώσσες έχουν αρκετούς τύπους εντολών, κάθε ένας απ’ τους οποίους έχει τη δικιά του ιδιαίτερη σύνταξη. Για παράδειγμα, η εντολή της BASIC PRINT απαιτεί μια λίστα από εκφράσεις που θέλεις να τυπωθούν. Εάν ξεχωρίσεις τις εκφράσεις με κόμματα σημαίνει να τις τυπώσει με κάποιο τρόπο, αν τις ξεχωρίσεις με semicolon (;) σημαίνει κάτι άλλο. Αλλά δεν επιτρέπεται να χρησιμοποιήσεις semicolons σε άλλου είδους εντολές οι οποίες επίσης απαιτούν λίστες από εκφράσεις. Στη LOGO υπάρχει μόνο μία σύνταξη, αυτή που χρησιμοποιείται όταν καλούμε μια διαδικασία. Δεν είναι τυχαίο ότι η LOGO είναι πιο δυνατή από την PASCAL ή την BASIC, ούτε ότι οι σχεδιαστές της LOGO ήταν πιο έξυπνοι. Η FORTRAN ανακαλύφθηκε προτού η μαθηματική βάση του προγραμματισμού ήταν επαρκώς κατανοητή και έτσι ο σχεδιασμός της αντικατοπτρίζει κυρίως τις ικανότητες (και τις ατέλειες) των υπολογιστών, οι οποίοι έτυχε να είναι διαθέσιμοι τότε. Οι γλώσσες που βασίζονται στην FORTRAN, έχουν ακόμα αυτή τη βασική σχεδίαση, παρόλο που κάποιες από τις πιο άσχημες λεπτομέρειές της έχουν επιδιορθωθεί σε κάποιες από τις πιο πρόσφατες εκδόσεις τους, όπως στην PASCAL. Πιο δυνατές γλώσσες βασίζονται σε κάποιο συγκεκριμένο μαθηματικό μοντέλο υπολογισμού και χρησιμοποιούν αυτό το μοντέλο με ένα σταθερό τρόπο. Για παράδειγμα η APL στηρίζεται στην ιδέα του χειρισμού πινάκων. Η PROLOG, έχει γίνει διάσημη λόγω της πέμπτης γενιάς hype, στηρίζεται στον κατηγορηματικό λογισμό, ένα τύπο μαθηματικής λογικής. Η LOGO όπως και η LISP στηρίζονται στη ιδέα της σύνθεσης από functions. Το περιβάλλον της LOGO είναι ορισμένο με καθαρά μαθηματικό τρόπο. Για παράδειγμα οι διαδικασίες μπορούν να θεωρηθούν σαν συναρτήσεις, οι είσοδοι σαν μεταβλητές και η αναδρομή σαν επαγωγή.
1.6.3 Αρχές της Logo
Η γλώσσα προγραμματισμού LOGO είναι μέχρι στιγμής το κυριότερο μέσο για τη δημιουργία δυναμικών περιβαλλόντων, που δίνουν την ευκαιρία εξερεύνησης ιδεών 29
σε διαφορετικά επίπεδα (από το αισθησιοκινητικό μέχρι το αφαιρετικό) και με διαφορετικούς τρόπους συμβολισμού. Σαν γλώσσα προγραμματισμού έχουν εκτιμηθεί όμως και τα εξής συγκεκριμένα στοιχεία της :
Είναι διαδικαστική: Η διαδικασία είναι το πιο σημαντικό θεμέλιο για τον προγραμματισμό στη γλώσσα αυτή. Η κάθε διαδικασία είναι μια αυτοτελής αλληλεπιδρασιακή οντότητα, δηλαδή έχει θέση ισοδυναμίας με οποιαδήποτε primitive εντολή ή operation της γλώσσας. Μπορεί μια διαδικασία να είναι σταθερή ή να κατασκευαστεί ώστε να δέχεται μεταβλητές εισόδους (inputs) που μπορεί να είναι τιμές ή διαδικασίες - operations των οποίων οι έξοδοι (outputs) να είναι τιμές. Εφόσον μια διαδικασία είναι ισοδύναμη με μια primitive της γλώσσας μπορούν φυσικά να κατασκευαστούν ακριβώς όπως μια διαδικασία, οσαδήποτε επίπεδα υποδιαδικασιών. Είναι φυσική (natural): Η ιδιότητα αυτή αφορά τρία κυρίως θέματα. Πρώτο, το συμβολικό κώδικα της γλώσσας, ο οποίος είναι σε μεγάλο βαθμό αλληλένδετος με την καθομιλουμένη γλώσσα. Οι εντολές και οι operations της LOGO έχουν δηλαδή πολύ στενή σχέση με την αντίστοιχη λέξη που χρησιμοποιούμε για το ίδιο νόημα ή λειτουργία στην καθημερινή γλώσσα. Δεύτερο, το "συντακτικό" (syntax) της γλώσσας είναι στενά συνδεδεμένο με τον τρόπο που συντάσσουμε σε γνωστούς συμβολικούς χώρους, όπως τα μαθηματικά, υπάρχει δηλαδή νοηματική αντιστοιχία με προηγούμενες λειτουργίες του ανθρώπου. Τρίτο, η μέθοδος κατασκευής διαδικασιών η οποία στην ουσία αποτελεί μια μέθοδο επέκτασης της ίδιας της υπολογιστικής γλώσσας, μοιάζει με την αιώνια διαλεκτική ανάμεσα στη μάθηση της φυσικής γλώσσας και τη γνωστική και εννοιολογική ανάπτυξη στο παιδί. Είναι επεκτάσιμη: Ο όρος αυτός έχει σχέση με την ιδιότητα της διαδικασίας να είναι ισοδύναμη με μια primitive της LOGO. Στην ουσία, αυτό σημαίνει ότι έστω και μια διαδικασία να φτιάξει ο χρήστης έχει ουσιαστικά επεκτείνει την ίδια την γλώσσα. Με αυτό τον τρόπο, η προσωπική επέκταση της γλώσσας, σε νοηματικό επίπεδο δεν έχει όρια. Τα όρια θέτονται μόνο από τον εκάστοτε υπολογιστή. Είναι αναδρομική (recursive): η αναδρομή είναι χτισμένη μέσα στη γλώσσα με τρόπο απόλυτα φυσιολογικό και λειτουργικό. Αρκεί μέσα στον ορισμό μιας διαδικασίας να υπάρχει η ίδια διαδικασία, μία ή περισσότερες φορές. Τέλος είναι άμεσα αλληλεπιδρασιακή: οποιαδήποτε εντολή μπορεί να έχει άμεσα αποτελέσματα στην οθόνη, δίνοντας με αυτό τον τρόπο τη δυνατότητα στο χρήστη να αναλογίζεται κάθε φορά τις συνέπειες κάθε συμβολικής του ενέργειας, εφόσον τις βλέπει να συγκεκριμενοποιούνται στην οθόνη.
30
1.7 Εμπειρίες και case studies για τη διδασκαλία του προγραμματισμού στα σχολεία
Στη συνέχεια παρουσιάζονται δύο πολύ ενδιαφέροντα case studies, τα οποία εφαρμόστηκαν σε ελληνικά σχολεία και τα συμπεράσματα που συγκεντρώθηκαν από την εμπειρία των μαθητών.
1.7.1 Μια Μελέτη Περίπτωσης της Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση με τα LEGO Mindstorms
Οι δυσκολίες που συναντούν οι αρχάριοι προγραμματιστές αποτέλεσαν το κίνητρο για την αναζήτηση νέων μεθόδων διδασκαλίας για τα εισαγωγικά μαθήματα προγραμματισμού. Τα τελευταία χρόνια, η διδασκαλία του προγραμματισμού έχει επηρεαστεί από την εμφάνιση φυσικών μηχανικών μοντέλων που συνδέονται με υπολογιστή και μπορούν να κινούνται, να εκτελούν έργα και γενικά να αλληλεπιδρούν. Στο πλαίσιο της εργασίας αυτής προτείνεται μια μέθοδος διδασκαλίας του προγραμματισμού που στηρίζεται στην καθοδήγηση των ρομπότ Lego Mindstorms, από προγράμματα που συντάσσονται με τη βοήθεια του γραφικού προγραμματιστικού περιβάλλοντος Robolab. Παρουσιάζεται επίσης η εφαρμογή της πρότασης αυτής στη Δευτεροβάθμια εκπαίδευση και εξετάζεται ο βαθμός στον οποίο συμβάλλει η νέα αυτή προσέγγιση στην εξάλειψη των αδυναμιών και των προβλημάτων της παραδοσιακής μεθόδου εισαγωγής στον προγραμματισμό . Τα εισαγωγικά μαθήματα προγραμματισμού είναι πολλές φορές απογοητευτικά τόσο για τους μαθητές όσο και για τους καθηγητές. Όπως προκύπτει από σχετική βιβλιογραφία, ένας από τους σημαντικότερους παράγοντες στον οποίο έχει διαπιστωθεί ότι οφείλονται οι δυσκολίες κατά την εκμάθηση του προγραμματισμού είναι η παραδοσιακή προσέγγιση της διδασκαλίας των αρχών του προγραμματισμού. Σύμφωνα με την παραδοσιακή αυτή μέθοδο, οι μαθητές διδάσκονται μια γλώσσα γενικού σκοπού (Pascal, Basic, C κλπ), που δεν ικανοποιεί τις ανάγκες τους, δεν τους βοηθά στην κατανόηση των νέων εννοιών. Κατά κανόνα καλούνται να αντιμετωπίσουν προβλήματα που αφορούν συνήθως την εκτέλεση υπολογισμών ή την εμφάνιση αποτελεσμάτων. Έτσι οι σπουδαστές επικεντρώνουν την προσοχή τους περισσότερο στην εκμάθηση της ίδιας της γλώσσας, παρά στην επίλυση προβλημάτων, και ασχολούνται με προβλήματα που δεν τους φαίνονται ενδιαφέροντα (για παράδειγμα: Weinberg 1971, Bonar et al. 1985, Dagdilelis 1986, Du Boulay 1989, Brusilovsky et al. 1999) . 31
Οι παραπάνω διαπιστώσεις αποτέλεσαν το κίνητρο για την αναζήτηση νέων μεθόδων διδασκαλίας για τα εισαγωγικά μαθήματα προγραμματισμού, με σκοπό να εξαλειφθούν τα προβλήματα που παρουσιάζει η παραδοσιακή μέθοδος. Τα τελευταία χρόνια, στη διδασκαλία του προγραμματισμού χρησιμοποιούνται φυσικά μηχανικά μοντέλα που συνδέονται με υπολογιστή, όπως τα προγραμματιζόμενα μοντέλα της LEGO, που μπορούν να κινούνται, να εκτελούν έργα και γενικά να αλληλεπιδρούν, πρόκειται δηλαδή για ένα είδος αυτόματου μηχανισμού που είναι ευρέως γνωστό ως «ρομπότ». Η διαπίστωση για τη χρήση ρομπότ επιβεβαιώνεται από τα προγράμματα σπουδών σε αρκετά. εκπαιδευτικά ιδρύματα όλων των βαθμίδων, τα οποία επανεξέτασαν τα εισαγωγικά μαθήματα προγραμματισμού και δημιούργησαν νέες σειρές μαθημάτων. Στις ενότητες που ακολουθούν επιχειρείται αρχικά η καταγραφή των αδυναμιών που παρουσιάζει η παραδοσιακή μέθοδος διδασκαλίας και στη συνέχεια η περιγραφή της εναλλακτικής προσέγγισης με τη χρήση των φυσικών μοντέλων LEGO Mindstorms.
Τα φυσικά μοντέλα Lego Mindstorms
Η εταιρεία LEGO διαθέτει στην αγορά ένα σύστημα με το όνομα LEGO® Mindstorms™ Robotics Invention System (RIS). Αυτό περιλαμβάνει ένα σύνολο από δομικά στοιχεία (τουβλάκια), αισθητήρες, κινητήρες και άλλα εξαρτήματα. Τα εξαρτήματα αυτά προσαρμόζονται πάνω σε ένα τουβλάκι της LEGO μεγαλύτερων διαστάσεων, στο οποίο είναι ενσωματωμένος ο επεξεργαστής RCX. Η δημιουργία του αυτόνομου ρομπότ συνίσταται σε 4 βήματα: 1. Κατασκευή του ρομπότ σύμφωνα με τα σχέδια που παρέχει το kit ή τη φαντασία του χρήστη. 2. Ανάπτυξη προγράμματος, χρησιμοποιώντας το οπτικό προγραμματιστικό περιβάλλον που συνοδεύει το kit ή μια άλλη γλώσσα προγραμματισμού. 3. Φόρτωση του προγράμματος στο ρομπότ, χρησιμοποιώντας τον πομπό υπερύθρων (Infrared transmitter). 4. Εκτέλεση του προγράμματος. Για να εκδηλώσει το ρομπότ μια συγκεκριμένη συμπεριφορά, συνήθως τα βήματα 2 έως 4 επαναλαμβάνονται αρκετές φορές (Patterson-McNeill, Binkerd, 2001). 32
Eπεξεργαστής RCX
Ο επεξεργαστής RCX Ο RCX (Robotic Control X) είναι ένας αυτόνομος μικροϋπολογιστής που ενσωματώνεται σε ένα τουβλάκι της LEGO, μπορεί να προγραμματιστεί μέσω ενός υπολογιστή και επιτρέπει στην κατασκευή να αλληλεπιδρά με το περιβάλλον αυτόνομα και ανεξάρτητα από τον υπολογιστή. Διαθέτει τρεις θύρες εισόδου 1-2-3 (συνδέονται αισθητήρες αφής, φωτός, θερμοκρασίας), τρεις θύρες εξόδου A-B-C (συνδέονται κινητήρες και λαμπτήρες), μια οθόνη υγρών κρυστάλλων (LCD) μιας γραμμής, ένα μικρόφωνο και τέσσερα κουμπιά (αφορούν το άνοιγμα – κλείσιμο του RCX, την επιλογή του προγράμματος που θα εκτελεστεί και την έναρξη – τερματισμό της εκτέλεσης). Λόγω των δυνατοτήτων του RCX να ελέγχει κινητήρες ή φώτα και να συγκεντρώνει δεδομένα με τη βοήθεια αισθητήρων, παιδιά και ενήλικες μπορούν εύκολα να δημιουργήσουν κατασκευές που κινούνται, σκέφτονται, και αντιδρούν (Portsmore 1999).
Περιγραφή σειράς μαθημάτων Μελετώντας τις εφαρμογές των LEGO Mindstorms στην εκπαίδευση, επιχειρήσαμε να σχεδιάσουμε μια ολοκληρωμένη σειρά μαθημάτων για τη διδασκαλία του εισαγωγικού μαθήματος στον προγραμματισμό της Γ’ Τάξης Γυμνασίου ή της Α’ Τάξης Ενιαίου Λυκείου με χρήση των LEGO Mindstorms. Σύμφωνα με το Αναλυτικό Πρόγραμμα Σπουδών, 10 διδακτικές ώρες πρέπει να διατεθούν για τη διδασκαλία του προγραμματισμού στην Γ΄ Τάξη Γυμνασίου και αντίστοιχα στην Α’ Λυκείου. Το μάθημα οργανώθηκε σε πέντε δίωρες διδακτικές
33
ενότητες, ώστε να υπάρχει ικανοποιητικός χρόνος για παρατήρηση, αλληλεπίδραση, μελέτη και ολοκλήρωση των εφαρμογών που έχουν ανατεθεί στους μαθητές. Το πρόγραμμα των μαθημάτων φαίνεται στον Πίνακα 1. Για κάθε μάθημα παρέχεται το παρακάτω διδακτικό υλικό: • Σχέδιο Μαθήματος, • Παρουσίαση του Μαθήματος με τη βοήθεια διαφανειών, • Φύλλο Ελέγχου, • Φύλλο Εργασιών.
Στο πρώτο μέρος κάθε μαθήματος παρουσιάζονται από τον διδάσκοντα νέες προγραμματιστικές δομές σε συνδυασμό με τις δυνατότητες του περιβάλλοντος προγραμματισμού Robolab. Σε κάθε μάθημα, μετά την παρουσίαση των νέων εννοιών, οι μαθητές μελετούν έτοιμα προγράμματα και τροποποιούν τις παραμέτρους τους. Με τη μελέτη των έτοιμων προγραμμάτων, δίνεται η δυνατότητα να επισημανθούν σημαντικά στοιχεία, να αναδειχθούν συντακτικές ιδιαιτερότητες και να αποσαφηνιστούν δυσκολονόητα, για τους μαθητές, σημεία. Επίσης, πριν προχωρήσουν οι μαθητές στην υλοποίηση δικών τους προγραμμάτων, καλούνται να μελετήσουν έτοιμα προγράμματα και να δώσουν λεκτικές περιγραφές σχετικά με το αποτέλεσμα του προγράμματος στη συμπεριφορά του ρομπότ. Μετά την ολοκλήρωση της διάλεξης και των παραδειγμάτων μοιράζεται στους μαθητές ένα φύλλο ελέγχου των γνώσεων που απέκτησαν και το απαντούν ατομικά. Στο δεύτερο μέρος κάθε μαθήματος, υλοποιούνται ασκήσεις – προγράμματα για τον έλεγχο της συμπεριφοράς του ρομπότ (η κατασκευή του ρομπότ γίνεται στο πρώτο μάθημα και χρησιμοποιείται σε όλα τα επόμενα). Για το σκοπό αυτό μοιράζεται στους μαθητές ένα φύλλο εργασιών, το οποίο περιέχει ασκήσεις που αφορούν το προγραμματισμό της συμπεριφοράς του ρομπότ. Στο μέρος αυτό, οι μαθητές οργανώνονται σε ομάδες και έχουν την πρωτοβουλία στο σχεδιασμό, την υλοποίηση και τη βελτίωση της συμπεριφοράς του αυτόνομου ρομπότ τους. Ο καθηγητής παρακολουθεί την εργασία των μαθητών, επεμβαίνει όποτε το θεωρεί απαραίτητο, γίνεται βοηθός στην προσπάθειά τους.
Τα στάδια που περιλαμβάνει η εργασία των μαθητών είναι τα παρακάτω: • Κατανόηση - Ανάλυση προβλήματος
34
• Κωδικοποίηση του προγράμματος στο Robolab • Εκτέλεση προγράμματος • Διόρθωση (αν χρειάζεται) • Σύνταξη αναφοράς.
Οι ασκήσεις που περιέχονται στα Φύλλα Εργασιών του προτεινόμενου πλαισίου μαθημάτων αναφέρονται στην ανάπτυξη προγραμμάτων για τον έλεγχο της κίνησης ενός αυτοκινήτου. Πιο συγκεκριμένα, προϋποθέτουν ένα αυτοκίνητο της LEGO, το οποίο διαθέτει έναν κινητήρα (στη θύρα Α), ένα λαμπτήρα (στη θύρα C), δύο αισθητήρες αφής (στις θύρες 1 και 2) και έναν αισθητήρα φωτός (στη θύρα 3).
Μάθημα 1ο
Εισαγωγή στον Προγραμματισμό με τα LEGO
Μάθημα 2ο
Εντολή Εξόδου, Εντολή Εισόδου (Αισθητήρες), Εντολή Wait For, Modifiers
35
Παρουσίαση των LEGO (RCX,Πομπός υπερύθρων) Κατασκευή του φυσικού μοντέλου (LEGO ρομπότ) Εισαγωγή στο προγραμματιστικό περιβάλλον ROBOLAB (Τροποποίηση έτοιμων προγραμμάτων στο ROBOLAB)
Εντολή Εξόδου (Περιγραφή – κινητήρας, ήχος, λαμπτήρας) Αισθητήρες (Αποσαφήνιση έννοιας – Κατηγορίες) Εντολή Wait For (Χρησιμότητα εντολής - κατηγορίες) Modifiers (Έννοια – Κατηγορίες) Παραδείγματα χρήσης των παραπάνω εντολών. Δημιουργία προγραμμάτων στο τμήμα Inventor.
Μάθημα 3ο
Επαναληπτικές Δομές
Μάθημα 4ο
Δομή επιλογής, Διακλαδώσεις
Μάθημα 5ο
Containers - Μεταβλητές
Πίνακας 1: Πρόγραμμα Μαθημάτων
36
Χρησιμότητα Δομής επανάληψης Εντολή Jump/Land - Εντολή Start of Loop/End of Loop Παραδείγματα χρήσης των εντολών επανάληψης.
Χρησιμότητα Δομής Επιλογής Εντολή Forks - Εντολή SplitTasks Παραδείγματα χρήσης των εντολών επιλογής
Η έννοια της μεταβλητής, η χρησιμότητα του μετρητή Λειτουργία των Container ως μεταβλητές Εντολές που σχετίζονται με τα containers Παράδειγμα χρήσης των containers
Εφαρμογή σειράς μαθημάτων – Ευρήματα
Η σειρά μαθημάτων που περιγράφτηκε στην προηγούμενη ενότητα, εφαρμόστηκε κατά το σχολικό έτος 2003-2004 σε δύο τμήματα των 14 ατόμων στην Α’ Λυκείου. Λόγω πίεσης σχολικού προγράμματος, αλλά και άλλων εξωδιδακτικών παραγόντων, πραγματοποιήθηκαν συνολικά 3 από τα 5 δίωρα μαθήματα που είχαν προγραμματιστεί. Στο πλαίσιο της εφαρμογής των μαθημάτων η προσοχή επικεντρώθηκε στην εκμάθηση των αρχών του προγραμματισμού και όχι στην ανάπτυξη κατασκευαστικών ικανοτήτων. Για το λόγο αυτό, το φυσικό μοντέλο LEGO (το αυτοκίνητο) δόθηκε έτοιμο στους μαθητές ώστε να προχωρήσουν κατευθείαν στον προγραμματισμό της συμπεριφοράς του. Αναλύοντας τις απαντήσεις που συμπλήρωσαν οι μαθητές στα Φύλλα ελέγχου και τα Φύλλα Εργασίας οδηγηθήκαμε στα παρακάτω συμπεράσματα: • Οι μαθητές δεν αντιλαμβάνονται επακριβώς τις διασυνδέσεις των υποσυστημάτων του ρομποτικού μηχανισμού και τον τρόπο με τον οποίο κυκλοφορεί η πληροφορία. • Οι μαθητές συχνά δυσκολεύονταν να απομνημονεύσουν την ακριβή λειτουργία που συμβόλιζε κάθε εικονίδιο, γεγονός που ίσως να αποτελεί ένδειξη του σχετικά μεγάλου πλήθους εικονιδίων στο Robolab και της σχετικής πολυπλοκότητας που παρουσιάζουν. Αν και οι μαθητές αναγνώριζαν τη λειτουργία ορισμένων εικονιδίων σε έτοιμα προγράμματα, δυσκολεύονταν να τα χρησιμοποιήσουν όταν κατασκεύαζαν τα δικά τους προγράμματα για να επιλύσουν κάποιο πρόβλημα. • Παρά το γεγονός ότι οι μαθητές δυσκολεύονταν να απομνημονεύσουν τις εντολές, η γλώσσα που χρησιμοποιήθηκε για να προγραμματιστεί το ρομπότ τελικά αποδείχτηκε πολύ κατανοητή. Μάλιστα οι απαντήσεις που δόθηκαν στο τρίτο μάθημα δείχνουν με σαφή τρόπο ότι οι μαθητές έχουν κατανοήσει μερικές βασικές λειτουργίες των επαναληπτικών δομών. • Παρατηρήθηκε ότι οι μαθητές αποδίδουν στις εντολές ευρύτερη σημασία από την πραγματική: για παράδειγμα οι μαθητές θεωρούν ότι η παρουσία ενός χρονομέτρου σημαίνει ότι το σύστημα επανέρχεται στην πρότερη κατάστασή του μετά το πέρας του αναγραφόμενου χρόνου και πολλές φορές την παραλείπουν.
Αξίζει βέβαια να σημειωθεί ότι αρκετά συμπεράσματα προέκυψαν από δεδομένα που συγκεντρώθηκαν με άμεσο τρόπο από την εμπειρία μέσα στην τάξη. Πιο συγκεκριμένα μπορούμε να αναφέρουμε τα εξής: 37
• Ενθάρρυνση, παροχή κινήτρων για μάθηση και συμμετοχή όλων στις δραστηριότητες του μαθήματος. Το Robolab είναι ένα περιβάλλον προγραμματισμού που έχει σχεδιαστεί για εκπαιδευτικούς σκοπούς και απευθύνεται σε παιδιά, λαμβάνοντας υπόψη τις διδακτικές τους ανάγκες. Η διαδικασία σύνταξης ενός προγράμματος είναι αρκετά απλή και βασίζεται στη σωστή σύνδεση των κατάλληλων εικονιδίων. Κατά τη διάρκεια λοιπόν των μαθημάτων δεν χρειάστηκε οι μαθητές να εξοικειωθούν με κάποιο δύσκολο περιβάλλον, να ζητήσουν την ερμηνεία αγγλικών λέξεων και γενικά να ασχοληθούν με την απομνημόνευση συντακτικών κανόνων. Από τα πρώτα κιόλας μαθήματα και με τη χρήση περιορισμένου αριθμού εντολών, οι μαθητές είχαν την ευκαιρία να αναπτύξουν προγράμματα που έλεγχαν τη συμπεριφορά του αυτοκινήτου και να δουν τα αποτελέσματα των προσπαθειών τους. Αυτό είναι ιδιαίτερα σημαντικό αν σκεφτεί κανείς ότι δεν είναι λίγοι οι μαθητές που απογοητεύονται από τις δυσκολίες που συναντούν στην αρχή και εγκαταλείπουν την προσπάθεια εκμάθησης του προγραμματισμού. • Η σχέση που υπάρχει ανάμεσα στη δημιουργία του προγράμματος και τον «χώρο» ή το μηχανισμό εκτέλεσής του γίνεται πιο ευδιάκριτη. Όταν οι μαθητές μαθαίνουν να προγραμματίζουν με τις γλώσσες γενικού σκοπού χρησιμοποιούν τον ΗΥ (μηχανή) για να αναπτύξουν το πρόγραμμά τους και ταυτόχρονα χρησιμοποιούν την ίδια μηχανή – τον ΗΥ- για να εκτελέσει το πρόγραμμα ώστε να ελέγξει τη συμπεριφορά του «εαυτού» του. Το πρόβλημα γίνεται εμφανές ιδιαίτερα σε περιβάλλοντα όπως τα παλαιότερα Basic, Pascal, LogoWriter κ.ά. (αλλά και σε μερικά σύγχρονα). Προγραμματίζοντας όμως τα Lego Windstorms, χρησιμοποιείται ο ΗΥ για την ανάπτυξη του πρόγραμματος, αλλά η εκτέλεση του πραγματοποιείται από μια άλλη μηχανή – τον RCΧ- που ελέγχει με τη σειρά του τη συμπεριφορά του ρομπότ. • Περιορισμός του χρόνου θεωρητικής παρουσίασης. Τα εικονίδια που χρησιμοποιούνται, αναπαριστούν τις εντολές αρκετά επιτυχημένα. Όπως φαίνεται στο παρακάτω σχήμα, στην εντολή επιλογής (Fork) ανάλογα με το αποτέλεσμα του ελέγχου της συνθήκης ακολουθείται η αντίστοιχη διαδρομή. Η παραστατικότητα των εικονιδίων μας επέτρεψε να αφιερώσουμε λιγότερο χρόνο στην παρουσίαση της θεωρίας, αφήνοντας περισσότερο χρόνο για πρακτική εφαρμογή από την πλευρά των μαθητών και για συστηματική παρακολούθηση, εντοπισμό των αδυναμιών, παρανοήσεων, δυσκολιών από την πλευρά του καθηγητή.
38
Εντολή Επιλογής
Εντολή Επιλογής
• Αναγκαιότητα συμμετοχής των μαθητών στην κατασκευή του φυσικού μοντέλου. Από τις απαντήσεις των μαθητών σε ασκήσεις που απαιτούσαν τη χρήση κάποιου modifier για δήλωση της θύρας εισόδου ή εξόδου, και τους διαλόγους τους στην τάξη διαπιστώθηκε σύγχυση σχετικά με τις θύρες και γενικά τα υποσυστήματα του ρομπότ. Κρίνεται λοιπόν σκόπιμο να συμμετέχουν οι μαθητές στην κατασκευή του φυσικού μοντέλου, ώστε να αναγνωρίζουν τον τρόπο σύνδεσης των συσκευών εισόδου και εξόδου του μοντέλου και επομένως να είναι σε θέση να ορίσουν με ακρίβεια, ορθότητα, πληρότητα τις εντολές που ελέγχουν τη λειτουργία των συσκευών αυτών. • Αναγκαιότητα παροχής φυσικού μοντέλου για κάθε ομάδα εργασίας. Κατά την εφαρμογή της σειράς μαθημάτων που προτείνεται χρησιμοποιήθηκε μόνο ένα ρομπότ, το οποίο ήταν διαθέσιμο για όλες τις ομάδες. Το γεγονός αυτό καθυστερούσε τη εκπαιδευτική διαδικασία, δημιουργούσε αναστάτωση στην τάξη, αλλά κυρίως δεν επέτρεπε στους μαθητές να πραγματοποιήσουν όσες δοκιμές ήταν απαραίτητες για να ολοκληρώσουν τα προγράμματά τους. Είναι λοιπόν σημαντικό, κάθε ομάδα να διαθέτει το δικό της ρομπότ, ώστε να μπορεί να παρακολουθεί καλύτερα τα αποτελέσματα των ενεργειών της και να προχωρά με το δικό της ρυθμό. • Διαθεματικότητα στη διδασκαλία. Πολλά από τα ερωτήματα που διατυπώθηκαν από τους μαθητές κατά τη διάρκεια των μαθημάτων σχετίζονταν με άλλα επιστημονικά πεδία, όπως Φυσική, Ρομποτική κα.
39
Συμπεράσματα Η προσέγγιση της διδασκαλίας του προγραμματισμού με τα LEGO Mindstorms, μπορεί να συμβάλλει στην εξάλειψη των αδυναμιών που συνεπάγεται η παραδοσιακή μέθοδος και να δημιουργήσει τις κατάλληλες συνθήκες μάθησης, ώστε να γίνει αποτελεσματικότερη η διδασκαλία. Ωστόσο αυτή η βελτίωση της διδασκαλίας συνοδεύεται ταυτόχρονα από μια σειρά δυσκολιών που οφείλονται στην ύπαρξη φυσικών στοιχείων (μηχανισμών), τα οποία πρέπει να συνθέσει και να διαχειριστεί ο μαθητής. Η διδασκαλία την οποία περιγράψαμε έδειξε ότι η χρήση των φυσικών μοντέλων που απαιτεί χειρισμό από τα ίδια τα παιδιά δίνει περισσότερα κίνητρα και προκαλεί το ενδιαφέρον για μάθηση. Η άμεση εμπειρία, ο πειραματισμός και η ενεργός συμμετοχή ευνοούν την ανάπτυξη προβληματισμού και την καλλιέργεια χαρακτηριστικών όπως κριτική συμπεριφορά, διορατικότητα, πρωτοτυπία, δημιουργική σκέψη και επιμονή. Πάντως, όπως φαίνεται να προκύπτει και από τα διεθνή ερευνητικά ευρήματα, τα θετικά στοιχεία από τη χρήση των Lego Mindstorms καθίστανται φανερά κυρίως σε διδασκαλίες (με μορφή projects) που έχουν σχετικά μεγάλη διάρκεια. Η ανάπτυξη προγραμμάτων με την χρήση εικονο-εντολών απαλλάσσει τους μαθητές από την εκμάθηση μιας γλώσσας προγραμματισμού και την απομνημόνευση των συντακτικών της κανόνων. Όσον αφορά την αποτελεσματικότητα της μεθόδου οι μαθητές φαίνεται να αποκτούν σχετικά γρήγορα τις επιθυμητές γνώσεις και να μπορούν να διαχειριστούν τα ρομπότ με σχετική ευκολία, Πιο συγκεκριμένα, η εκμάθηση των σχετικών εντολών απαίτησε πολύ λιγότερο χρόνο από την εκμάθηση αντίστοιχων γραπτών εντολών και οι μαθητές ελέγχαν ταχύτερα το διάγραμμα των προγραμμάτων τους. Ωστόσο, σε πολλές περιπτώσεις, οι γνώσεις τους αυτές είναι αποσπασματικές και ανακριβείς, δηλαδή οι μαθητές δεν είχαν μια επαρκή κατανόηση της σημασίας των εντολών. Τέλος, η οπτικοποίηση της εκτέλεσης του προγράμματος παίζει σημαντικό ρόλο στην κατανόηση της λειτουργίας βασικών εντολών, αλλά μπορεί να αποτελέσει και πηγή δυσκολιών, γιατί ο έλεγχος των φυσικών αντικειμένων και των ενεργειών τους δεν είναι απόλυτος. Οι κινήσεις ενός φυσικού μοντέλου δεν είναι πάντα ακριβείς, αλλά ούτε και απολύτως προβλέψιμες.. Στη δική μας διδασκαλία (ιδιαίτερα λόγω της σχετικά μικρής της διάρκειας) τα στοιχεία αυτά ήταν αρκετά έντονα, γεγονός που μας οδηγεί στη σχεδίαση διδασκαλιών με πολύ μεγαλύτερη (συνολική) χρονική διάρκεια.
40
1.7.2 Πιλοτική μελέτη περίπτωσης αξιοποίησης του εργαλείου Scratch στην Διδασκαλία του Προγραμματισμού σε μαθητές της Α’ Λυκείου
Ο τυπικός τρόπος διδασκαλίας του Προγραμματισμού στηρίζεται στη χρήση μιας επαγγελματικής γλώσσας προγραμματισμού και ενός κατάλληλου περιβάλλοντος για την υλοποίηση προγραμμάτων με αριθμούς και σύμβολα (Ξυνόγαλος κ.ά., 2000). Αυτός ο τρόπος διδασκαλίας όμως χαρακτηρίζεται από προβλήματα, αφού οι επαγγελματικές γλώσσες προγραμματισμού περιλαμβάνουν πολλές εντολές που μαζί με τις συντακτικές λεπτομέρειες που απαιτούνται, σχηματίζουν ένα μεγάλο όγκο πληροφοριών που πρέπει να αφομοιωθεί από τους μαθητές, αναγκάζοντάς τους συχνά, να ασχολούνται περισσότερο με τις τεχνικές λεπτομέρειες μιας γλώσσας προγραμματισμού παρά με τη χρήση βασικών αρχών προγραμματισμού (Brusilovsky et al., 1997). Τα τελευταία χρόνια έχουν αναπτυχθεί εργαλεία που βοηθούν τους μαθητές να ξεπεράσουν τα παραπάνω προβλήματα, όπως τα MicroWorlds Pro (http://www.microworlds.com),LegoMindStorms(http://mindstorms.lego.com), Γλωσσο- Μάθεια (http://spinet.gr/glossomatheia. Ένα από αυτά τα εργαλεία είναι και το Scratch (http://scratch.mit.edu), το οποίο αποτελεί ένα διαδεδομένο περιβάλλον οπτικού προγραμματισμού που χρησιμοποιείται ευρέως για την υποστήριξη της Διδακτικής του Προγραμματισμού. Στην εργασία αυτή παρουσιάζεται μία πιλοτική μελέτη περίπτωσης αξιοποίησης του εργαλείου Scratch στην Διδασκαλία του Προγραμματισμού σε μαθητές της Α’ Λυκείου και ειδικότερα στην κατανόηση των δομών ελέγχου και επανάληψης. Η μελέτη που πραγματοποιήθηκε ήταν μία πιλοτική μελέτη περίπτωσης, δηλαδή μία μελέτη περίπτωσης μικρής κλίμακας που πραγματοποιείται πριν την εφαρμογή μίας έρευνας μεγάλης κλίμακας και η οποία στοχεύει στο να μειώσει την αβεβαιότητα των παραμέτρων της κύριας έρευνας (Yin, 2003). Τα μεθοδολογικά εργαλεία που χρησιμοποιήθηκαν για τη συγκέντρωση των δεδομένων ήταν ερωτηματολόγια που περιλάμβαναν ερωτήσεις ανοικτού και κλειστού τύπου, φύλλα εργασίας, καθώς και παρατήρηση των μαθητών. Σκοπός Σκοπός της μελέτης περίπτωσης ήταν να διαπιστώσει κατά πόσο ένα εργαλείο οπτικού προγραμματισμού, όπως το Scratch, μπορεί να βοηθήσει τους μαθητές στην κατανόηση βασικών προγραμματιστικών δομών (δομή ελέγχου, δομή επανάληψης), στην κατάκτηση των διδακτικών στόχων του μαθήματος και στη βελτίωση των απόψεών τους απέναντι στον προγραμματισμό.
41
Υποθέσεις Εργασίας Οι βασικές υποθέσεις εργασίας της παρούσας μελέτης περίπτωσης ήταν, ότι μια εκπαιδευτική παρέμβαση υποστηριζόμενη από το εργαλείο οπτικού προγραμματισμού Scratch, βοηθάει τους μαθητές: 1. να αναπτύξουν θετικότερες απόψεις για το μάθημα του προγραμματισμού 2. να αναπτύξουν επικοινωνιακές και συνεργατικές ικανότητες (μέσω της online κοινότητας που παρέχει το εργαλείο), 3. να κατανοήσουν ευκολότερα τις προγραμματιστικές δομές της επιλογής και της επανάληψης. 4. να κατακτήσουν τους διδακτικούς στόχους του μαθήματος «Εφαρμογές Πληροφορικής» (όπως προβλέπονται από το Αναλυτικό Πρόγραμμα Σπουδών του Παιδαγωγικού Ινστιτούτου) (ΥΠΕΠΘ-Π.Ι., 1997). Σχεδιασμός και διεξαγωγή της πιλοτικής μελέτης περίπτωσης Η πιλοτική εφαρμογή πραγματοποιήθηκε σε 20 μαθητές της Α’ τάξης του Γενικού Λυκείου Λαυρίου και το μάθημα στο οποίο διεξήχθη η έρευνα ήταν το «Εφαρμογές Πληροφορικής». Ορισμένοι μαθητές είχαν διδαχθεί κάποιες βασικές έννοιες του προγραμματισμού στο Γυμνάσιο με το εργαλείο «Γλωσσομάθεια», ενώ οι υπόλοιποι δεν είχαν διδαχθεί καθόλου προγραμματισμό. Έγιναν 3 δίωρες συναντήσεις σε μία περίοδο 2 εβδομάδων και στην αρχή και στο τέλος της πιλοτικής μελέτης περίπτωσης δόθηκαν σχετικά ερωτηματολόγια (pre-test, post-test). Οι μαθητές εργάστηκαν σε ομάδες των 2 ατόμων και παροτρύνθηκαν μέσω κατάλληλα κατασκευασμένων φύλλων εργασίας να επεκτείνουν ή να τροποποιήσουν ελαφρά, υπάρχοντα παιχνίδια στο Scratch καθώς και να δημιουργήσουν δικές τους εφαρμογές. Ιδιαίτερη έμφαση δόθηκε και στην επαφή των μαθητών με τη διαδικτυακή κοινότητα του Scratch. Εφαρμογή Το διδακτικό μοντέλο που ακολουθήθηκε στην εκπαιδευτική παρέμβαση ήταν «Ο Κύκλος της Μάθησης» (Karplus et al., 1980). Το μοντέλο αυτό χρησιμοποιείται συνήθως στους τομείς που έχουν να κάνουν με την επιστήμη, όπως η φυσική, τα μαθηματικά αλλά και η επιστήμη των υπολογιστών. Οι φάσεις από τις οποίες αποτελείται το συγκεκριμένο μοντέλο είναι οι εξής: Διερεύνηση (Exploration), Παρουσίαση του Θέματος (Concept Introduction) και Εφαρμογή του Θέματος (Concept Application). Στη φάση της Διερεύνησης οι μαθητές μαθαίνουν μέσω της εμπλοκής τους και των πράξεών τους. Στη φάση της Παρουσίασης του Θέματος γίνεται η παρουσίαση του θέματος με το οποίο πειραματίστηκαν οι μαθητές στην προηγούμενη φάση, με χρήση του κατάλληλου εποπτικού υλικού. Τέλος, στη φάση της Εφαρμογής του Θέματος οι μαθητές εφαρμόζουν τις νέο-αποκτηθείσες ιδέες σε καινούρια παραδείγματα.
42
Όσον αφορά την επιλογή της συγκεκριμένης προσέγγισης, αξίζει να υπογραμμιστεί ότι το εργαλείο Scratch λόγω των πολλών και διαφορετικών blocks που παρέχει καθώς και των πολλαπλών συνδυασμών αυτών, προσφέρεται για ανακάλυψη της γνώσης. Συνεπώς, ένα διδακτικό μοντέλο όπως το μοντέλο του Κύκλου της Μάθησης που παρέχει πολλές δυνατότητες για διερεύνηση και ανακάλυψη είναι ένα μοντέλο που θα μπορέσει να αναδείξει αυτή την πολύ ισχυρή δυνατότητα του εργαλείου. Η πιλοτική μελέτη περίπτωσης οργανώθηκε στις ακόλουθες φάσεις: • 1η φάση – Επίδειξη και εξοικείωση με το εργαλείο Scratch: Οι λειτουργίες του Scratch παρουσιάστηκαν σε όλους τους μαθητές και στη συνέχεια ανατέθηκε στους μαθητές η εκτέλεση συγκεκριμένων παραδειγμάτων με σκοπό να υπάρξει αλληλεπίδραση και εξοικείωση με το εργαλείο. • 2η φάση – Παρατήρηση και πειραματισμός με ένα παιχνίδι και τον κώδικά του στο εργαλείο Scratch: Στην αρχή ο εκπαιδευτικός, παρουσίασε στους μαθητές ένα παιχνίδι που είχε δημιουργηθεί στο Scratch και τους επέτρεψε να πειραματιστούν με αυτό. Στη συνέχεια, τους αποκάλυψε τον κώδικα του παιχνιδιού και τους προέτρεψε με τη βοήθεια ενός κατάλληλα σχεδιασμένου φύλλου εργασίας να επεκτείνουν το παιχνίδι ή να το τροποποιήσουν ελαφρά. • 3η φάση – Διδασκαλία των δομών επιλογής και επανάληψης: Ο εκπαιδευτικός παρουσίασε στους μαθητές τις διαφορετικές δομές επιλογής και επανάληψης που παρέχει το Scratch και τον τρόπο λειτουργίας τους και στη συνέχεια με ένα 2ο φύλλο εργασίας παρότρυνε τους μαθητές να αναγνωρίσουν αυτές τις δομές στον κώδικα του παιχνιδιού με το οποίο πειραματίστηκαν την προηγούμενη διδακτική ώρα. • 4η φάση – Εφαρμογή των δομών επιλογής και επανάληψης σε καινούρια παραδείγματα στο Scratch: Οι μαθητές παροτρύνθηκαν από τον εκπαιδευτικό να εφαρμόσουν τις δομές επιλογής και επανάληψης που διδάχθηκαν κατά την προηγούμενη φάση επεκτείνοντας ή τροποποιώντας καινούρια παραδείγματα στο εργαλείο Scratch, που τους δόθηκαν με ένα 3ο φύλλο εργασίας.
Αποτελέσματα Οι απόψεις των μαθητών απέναντι στο προγραμματισμό που προέκυψαν από τα ερωτηματολόγια φάνηκε να είναι περισσότερο θετικές μετά την ολοκλήρωση της μελέτης και πιο συγκεκριμένα: 1) Παρατηρήθηκε μία αύξηση στο ποσοστό των μαθητών που εξέφρασαν συμφωνία (συμφωνώ - συμφωνώ απόλυτα) με την πρόταση «Μου αρέσει ο Προγραμματισμός υπολογιστών», το οποίο από 38,46%, πριν την εφαρμογή του εκπαιδευτικού σεναρίου, αυξήθηκε σε 52,94%. 43
2) Επίσης, παρατηρήθηκε μία αύξηση και στο ποσοστό των μαθητών που εξέφρασαν συμφωνία (συμφωνώ - συμφωνώ απόλυτα) με την πρόταση «Με ευχαριστεί να παρακολουθώ μαθήματα προγραμματισμού», το οποίο από 30,77%, πριν την εφαρμογή του εκπαιδευτικού σεναρίου, αυξήθηκε σε 47,05%. 3) Από την άλλη πλευρά, παρατηρήθηκε μία αρκετά μεγάλη αύξηση στο ποσοστό των μαθητών που εξέφρασαν διαφωνία (διαφωνώ – διαφωνώ απόλυτα) με την πρόταση «Νιώθω άγχος κατά τη διάρκεια του μαθήματος του προγραμματισμού», το οποίο από 46,15%, πριν την εφαρμογή του εκπαιδευτικού σεναρίου, αυξήθηκε σε 75%, όπως επίσης και στο ποσοστό των μαθητών που εξέφρασαν διαφωνία (διαφωνώ – διαφωνώ απόλυτα) με την πρόταση «Φοβάμαι γενικά τον Προγραμματισμό», το οποίο αυξήθηκε από 38,46% σε 64,7%. 4) Τέλος, παρατηρήθηκε μία αρκετά μεγάλη αύξηση και στο ποσοστό των μαθητών που εξέφρασαν διαφωνία (διαφωνώ – διαφωνώ απόλυτα) με την πρόταση «Ο Προγραμματισμός απαιτεί πολλές ικανότητες και μεγάλη προσπάθεια», το οποίο από 7,69%, πριν την εφαρμογή του εκπαιδευτικού σεναρίου, αυξήθηκε σε 41,17%.
Τα αποτελέσματα που προέκυψαν από το ερωτηματολόγιο και αφορούσαν την διαδικτυακή κοινότητα του Scratch είναι τα παρακάτω: 1) Το 76,47% των μαθητών δήλωσε ότι του άρεσε η ιδέα του διαμοιρασμού αρχείων μέσω της διαδικτυακής κοινότητας του Scratch 2) Το 47,06% των μαθητών διαφώνησε ότι δεν θα έγραφε ποτέ σε κάποιο forum της διαδικτυακής κοινότητας του Scratch, ενώ το 17,65% μπορεί και να έγραφε. 3) Το 41,17% των μαθητών δήλωσε ότι βρήκε πολλές ενδιαφέρουσες εφαρμογές στη διαδικτυακή κοινότητα του Scratch που του έδωσαν ιδέες για δημιουργία δικών του μελλοντικών εφαρμογών, ενώ το 41,18% δεν θεωρεί ότι βρήκε ενδιαφέρουσες εφαρμογές στην κοινότητα του Scratch. 4) Το 52,94% των μαθητών δήλωσε ότι θα «ανέβαζε» κάποιο καινούριο αρχείο στο δικτυακό τόπο της κοινότητας του Scratch, ενώ το 23,53% μπορεί και να «ανέβαζε». 5) Το 70,59% των μαθητών διαφώνησε ότι δεν του άρεσε καθόλου η διαδικτυακή κοινότητα του Scratch.
Τα φύλλα εργασίας που χρησιμοποιήθηκαν για την εξακρίβωση της ευκολότερης κατανόησης των προγραμματιστικών δομών της επιλογής και της επανάληψης και του βαθμού κατάκτησης των διδακτικών στόχων του μαθήματος, καθώς και τα 44
δεδομένα που συλλέχθηκαν από τις παρατηρήσεις έδειξαν ότι όλες σχεδόν οι ομάδες των μαθητών (9 από τις 10) κατάφεραν να αναγνωρίσουν και να εξηγήσουν τη λειτουργία των προγραμματιστικών δομών της επιλογής και της επανάληψης στον κώδικα ενός παιχνιδιού στο Scratch και οι περισσότερες ομάδες (8 από τις 10) επέκτειναν ή τροποποίησαν τα καινούρια παραδείγματα στο Scratch που τους δόθηκαν με το 3ο φύλλο εργασίας. Συμπεράσματα - Προτάσεις Για Μελλοντική Έρευνα Οι μαθητές φάνηκαν να ενθουσιάζονται με το εργαλείο Scratch και το θεώρησαν ως ένα χρήσιμο εργαλείο για την εκμάθηση του προγραμματισμού. Επίσης, οι περισσότεροι μαθητές εξέφρασαν την επιθυμία να ενσωματωθεί το Scratch στη διδασκαλία του μαθήματος «Εφαρμογές Πληροφορικής». Με τη χρήση του Scratch, οι μαθητές δε δυσκολεύτηκαν να υλοποιήσουν τις προγραμματιστικές δομές που διδάχθηκαν και φάνηκε να είναι ξεκάθαρο ποια προγραμματιστική δομή πρέπει να χρησιμοποιηθεί για την επίλυση κάθε περίπτωσης. Ένα πολύ σημαντικό ακόμη στοιχείο είναι ότι η άποψη των μαθητών για τον προγραμματισμό φάνηκε να αλλάζει και να γίνεται περισσότερο θετική μετά την εκπαιδευτική παρέμβαση. Τέλος, το οπτικό περιβάλλον του Scratch φάνηκε φιλικό σε όλους τους μαθητές, αφού εξοικειώθηκαν εύκολα με το περιβάλλον και τη σημασία της κάθε οπτικής εντολής.
1.8 Σύγκριση γλωσσών προγραμματισμού όσον αφορά την εκπαίδευση
Υπάρχουν αρκετές γλώσσες προγραμματισμού σχεδιασμένες για την διδακτική του προγραμματισμου στο μαθητή, στο δημοτικό,το γυμνάσιο και το λύκειο.Παρακάτω θα αναφέρουμε κάποιες από αυτές.
1.8.1 Scratch Αρχικά είχε σχεδιαστεί για παιδιά δημοτικού σχολείου. Δημιουργήθηκε από το MIT. Χρησιμοποιείται για την διδακτική του προγραμματισμού στο Χάρβαρντ.Το Scratch ΜΙΤ αποτελεί ένα εκπαιδευτικό περιβάλλον προγραμματισμού, που διαθέτει γραφική γλώσσα προγραμματισμού κάτι το οποίο το καθιστά πιο προσιτό σε μικρά παιδιά. Τα έργα που αναπτύσσει κανείς με το Scratch μπορούν να είναι πλούσια σε μέσα και να χρησιμοποιούν γραφικά, κινούμενα σχέδια, μουσική και ήχους. Επιπλέον δίνει τη δυνατότητα δημιουργίας αλληλεπιδραστικών ιστοριών.Η ικανότητα που 45
διαθέτει δίνει την ευκαιρία στον χρήστη να ανταλλάξει ιδέες και απόψεις με άλλους δημιουργούς και να εμπλακεί ενεργά σε μια κοινότητα πρακτικής και μάθησης.
Θετικά: Το Scratch είναι μια εύκολη επιλογή για να ξεκινήσεις διότι:
υπάρχουν πολύ καλά tutorials για αρχάριους υπάρχουν σχεδόν 200.000 Scratch projects στο διαδίκτυο.Τα περισσότερα από τα οποία είναι παιχνίδια τα οποία μπορούν να παίξουν οι μαθητές είναι εύκολο στη χρήση του
Αρνητικά:
δε διδάσκει προγραμματισμο με functions
Περιβάλλον Scratch
1.8.2
Alice
Το Alice είναι ένα open-source σύστημα που έχει αναπτυχθεί (και αναπτύσσεται) στα τελευταία 10 χρόνια από το Carnegie Mellon University. Το σύστημα αυτό 46
χρησιμοποιείται από πάνω από 100 σχολεία και Κολλέγια στις ΗΠΑ για την εισαγωγή στην εκμάθηση του προγραμματισμού. Είναι δωρεάν (download από το http://www.alice.org) και το υποστηρικτικό υλικό για τη διδασκαλία του βασίζεται στην προσφορά μιας μεγάλης κοινότητας απλών χρηστών, καθηγητών, μαθητών, φοιτητών ακόμα και game developers (πχ. http://www.aliceprogramming.net). Έχει αναπτυχθεί σε γλώσσα Java και μέσα στους επόμενους μήνες (με την έκδοση 3.0) αναμένεται να αποτελέσει ένα από τα πλέον διαδεδομένα συστήματα για την εκμάθηση προγραμματισμού σε επίπεδο αρχάριου. Το Alice εξειδικεύεται στη δημιουργία μικρών διαδραστικών παιχνιδιών ή video animations. Τα αντικείμενα εμφανίζονται ως τρισδιάστατοι χαρακτήρες, σχήματα κλπ. που έχουν ιδιότητες και μπορούν να πραγματοποιήσουν ενέργειες (προκαθορισμένες ή όχι).
Αντικείμενα και classes στο Alice
Τα αντικείμενα ελέγχονται από ένα drag-and-drop editor, ο οποίος αποτρέπει τα συντακτικά λάθη στη συγγραφή κώδικα. Ο εκπαιδευόμενος μπορεί να «γράψει» εύκολα κώδικα όπως “Move forward 1 meter” ή “Turn to face camera” χωρίς να χρειάζεται να μάθει τη «σωστή» σύνταξη, αλλά με την τοποθέτηση έτοιμων λέξεων και αριθμών στον editor.
Ο editor του Alice
47
Οι εντολές αυτές αντιστοιχούν σε πραγματικό κώδικα Java, μπορούν όμως να γίνουν πολύ πιο εύκολα κατανοητές από τον εκπαιδευόμενο και να «εκτελεστούν» στην οθόνη σε πραγματικό χρόνο. Οι πρώτες στατιστικές για τη μέτρηση της αποτελεσματικότητας του σε εισαγωγικές τάξεις σχετικές με τον προγραμματισμό αποτελούν πολύ ενθαρρυντικά μηνύματα (Dann, W., et al 2002). Το Alice είναι ένα καλό δεύτερο βήμα για την εκμάθηση προγραμματισμού , αφού ο μαθητής εχει διδαχτεί το Scratch.
Θετικά:
έχει τα περισσότερα χαρακτηριστικά μιας πραγματικής προγραμματισμού, συμπεριλαμβανομένων των functions μεγάλος αριθμός γραφικών Είναι εύκολο να προσθέσετε τους δικούς σας ήχους Το Alice είναι διαθέσιμο για Windows, Mac και Linux
γλώσσας
Αρνητικά:
δεν υπάρχει καμία γνωστή ιστοσελίδα όπου μπορείτε να μοιραστείτε τα projects υπάρχουν λίγα tutorials για αρχάριους δε διδάσκει text-based προγραμματισμό
1.8.3 Greenfoot Έχει σχεδιαστεί για τα παιδιά του λυκείου και για φοιτητές. Δημιουργήθηκε από το πανεπιστήμιο του Κεντ.Το Greenfoot μπορεί να θεωρηθεί ως ένας συνδυασμός πλαισίου εργασίας για τη δημιουργία έργων δισδιάστατων γραφικών στη γλώσσα Java και ολοκληρωμένου περιβάλλοντος ανάπτυξης – IDE (φυλλομετρητής κλάσεων, επεξεργαστής κειμένου, μεταγλωττιστής, εκτέλεση, κτλ.) κατάλληλου για αρχάριους προγραμματιστές. Εκτός από το γεγονός πως το Greenfoot υποστηρίζει τη γλώσσα προγραμματισμού Java στο σύνολό της, είναι ιδιαίτερα χρήσιμο για τον προγραμματισμό ασκήσεων που περιέχουν οπτικά στοιχεία. Για το περιβάλλον Greenfoot, η απεικόνιση των αντικειμένων και η αλληλεπίδραση των αντικειμένων μεταξύ τους αποτελούν στοιχεία-κλειδιά.
48
Θετικά:
διδάσκει text-based προγραμματισμό εστιάζει στη δημιουργία βιντεοπαιχνιδιών για να κινήσει το ενδιαφέρον των μαθητών είναι διαθέσιμο για Windows, Mac και Linux Η Greenfoot Gallery σας επιτρέπει να μοιράζεστε τα παιχνίδια σας, δημιουργώντας ένα κοινωνικό δίκτυο
Αρνητικά:
1.8.4
Δεν είναι ευρέως γνωστό Δεν υπάρχουν διαθέσιμα βιβλία για το Greenfoot.
Starlogo TNG
Πρόκειται για ένα περιβάλλον που εξειδικεύεται στις προσομοιώσεις και στη μοντελοποίηση συστημάτων μικρής, μεσαίας ή και μεγάλης πολυπλοκότητας. Για το λόγο αυτό είναι ένα αξιόπιστο εργαλείο για να δημιουργήσει κανείς μεγάλα διαθεματικά projects. Δημιουργήθηκε στο MIT και διανέμεται δωρεάν στη διεύθυνση http://education.mit.edu/starlogo-tng. Στηρίζεται στις βασικές εντολές της γλώσσας Logo (π.χ. pen up, pen down, forward, κ.λπ.) αλλά οι δυνατότητές του είναι πραγματικά πολύ μεγάλες. Οι εντολές εμφανίζονται ως έγχρωμα blocks κώδικα που συνθέτουν ένα πρόγραμμα σαν puzzle.
1.8.5 Yenka Είναι ένα περιβάλλον που στηρίζεται στη μοντελοποίηση προγραμματιστικών εννοιών μέσω της χρήσης διαγραμμάτων ροής. Από απλές χορευτικές κινήσεις των χαρακτήρων του μέχρι σύνθετα διαδραστικά παιχνίδια. Το περιβάλλον του Yenka επιτρέπει τη δημιουργία προγραμμάτων με αρκετά μεγάλη ταχύτητα. Αξιοσημείωτες ακόμα είναι οι δυνατότητες του debugger του (π.χ. βήμα-βήμα εκτέλεση του 49
προγράμματος και monitoring των μεταβλητών), καθώς και η δυνατότητα να εισάγει κανείς έτοιμα 3D μοντέλα από το 3D Warehouse (ένα χώρο με χιλιάδες τρισδιάστατα μοντέλα που διανέμονται δωρεάν). Είναι δωρεάν για προσωπική χρήση από καθηγητές και μαθητές και μπορεί κανείς να το δοκιμάσει στη διεύθυνση http://www.yenka.com.
Ένας αλγόριθμος σε μορφή διαγράμματος ροής
1.8.6 Storytelling Alice Το Alice είναι ένα ελεύθερα διαθέσιμο και καινοτόμο περιβάλλον προγραμματισμού που κάνει εύκολη τη δημιουργία τρισδιάστατων animation για μια ιστορία, για ένα διαδραστικό παιχνίδι, ή ένα βίντεο, που θα θέλαμε να μοιραστούμε στο διαδίκτυο. Τα αντικείμενα στο Alice μπορούν να κουνηθούν, να περιστραφούν, να αλλάξουν χρώμα, να αντιδράσουν στο ποντίκι, κτλ. Οι χρήστες επιλέγουν χαρακτήρες, όπως μια χορεύτρια στον πάγο ή ένα τερατάκι, και περιβάλλοντα όπως ένα δάσος ή μια πόλη. Έπειτα, δημιουργούν σκηνές στις οποίες οι χαρακτήρες μιλάνε και κινούνται σε αυτά τα περιβάλλοντα.
50
Περιβάλλον του Alice
1.8.7 Squeak Etoys Το Squeak Etoys έχει τις ρίζες του στη LOGO, στην PARC-Smalltalk, στην Hypercard και στην StarLOGO. Είναι ένα αντικειμενοστραφές προγραμματιστικό περιβάλλον πλούσιο σε εργαλεία ανάπτυξης, όπου τα αντικείμενα μπορούν να προγραμματιστούν είτε με έτοιμα script είτε με script που μπορεί να δημιουργήσει ο χρήστης στη γλώσσα προγραμματισμού Smalltalk-80. Είναι ελεύθερο και ανοικτό λογισμικό και διατίθεται στο δικτυακό τόπο www.squekaland.org. Τρέχει σε πολλές πλατφόρμες (Windows, MacOS, Linux), υποστηρίζει δισδιάστατα και τρισδιάστατα γραφικά, εικόνες, κείμενο, παρουσιάσεις τύπου PowerPoint, βίντεο και ήχο. Επιπλέον, παρέχει τη δυνατότητα να μοιράζεται κάποιος χρήστης την επιφάνεια εργασίας του σε πραγματικό χρόνο με κάποιον ή κάποιους άλλους χρήστες που βρίσκονται οπουδήποτε στον κόσμο, προσφέροντας έτσι δυνατότητες συνεργασίας και αλληλοβοήθειας .
Σύγκριση γλωσσών προγραμματισμού:
Criterion
Alice
Active Development YES Community
Greenfoot Scratch
Squeak Etoys
Storytelling Starlogo Alice TNG
YES
YES
NO
YES
51
YES
Existence of Stable YES Versions
YES
YES
YES
YES
YES
Age Range
Middle School Children+
High School and College Students
8
ElementaryMiddle School Children
Middle School Children+
Secondary School Children+
Supported Languages
en
en, it, el, en, it, de, el, de, et
en, de, it, el
En
en
Localization Support
YES
YES
YES
YES
YES
YES
Supporting Operating System
Cross Platform
Cross Platform
Cross Platform
Cross Platform
Cross Platform
Supported Paradigms
Object Oriented,
Object Oriented, Imperative,
Object Oriented, PrototypeBased
Object Oriented, Event Driven, Visual
Object Oriented, Visual, 3D, Agent Based, Simulation language
YES
NO
YES
Visual EventDriven, Visual
Documentation
YES
YES
YES
52
ΚΕΦΑΛΑΙΟ 2 2
Παρουσίαση της LOGO και των διαφόρων εκδόσεων της
2.1 Η παρουσίαση της LOGO
Όπως αναφέρθηκε και σε προηγούμενο κεφάλαιο η Logo αποτελεί διάλεκτο της Lisp, της γλώσσας της τεχνητής νοημοσύνης, και έχει αξιοποιηθεί στην εκπαίδευση περισσότερο από οποιαδήποτε άλλη γλώσσα προγραμματισμού.Θεωρείται ιδανικό εργαλείο για να μαθαίνεις κάνοντας (learning by doing) και αναμφίβολα αποτελεί σημαντικό εργαλείο στα χέρια του εκπαιδευτικού για την ανάπτυξη δεξιοτήτων εξερεύνησης, δημιουργικότητας, επίλυσης προβλημάτων, λογικής-αλγοριθμικής σκέψης. Υπάρχουν πολλές γλώσσες προγραμματισμού, με αρκετές ομοιότητες, αλλά και διαφορές μεταξύ τους. Άλλες έχουν σχεδιαστεί για ειδικές επιστημονικές εφαρμογές (Fortran, C), άλλες χρησιμοποιούνται στην Τεχνική Νοημοσύνη (Lisp, Prolog), ενώ άλλες θεωρούνται γλώσσες γενικής χρήσης (Pascal, Basic, Logo).Η γλώσσα προγραμματισμού Logo δημιουργήθηκε από τον Seymour Papert όχι για την ανάπτυξη πακέτων εφαρμογών, αλλά ως ένα ισχυρό εργαλείο στα χέρια όλων εκείνων που εμπλέκονται με τη διαδικασία της μάθησης. Δημιουργήθηκε ειδικά για την εκπαίδευση και μπορεί να αξιοποιηθεί εύκολα και σε πολλές άλλες σχολικές δραστηριότητες. Η Logo έχει κατασκευαστεί με σκοπό ο μαθητής να μαθαίνει/διδάσκει τον υπολογιστή και όχι το αντίθετο. Δημιουργώντας έναν αλγόριθμο (λέγοντας αλγόριθμο εννοούμε τα βήματα που ακολουθούμε για την επίλυση ενός προβλήματος) ο προγραμματιστής – μαθητής προσπαθεί να διδάξει τον υπολογιστή πως να αντιμετωπίζει ένα πρόβλημα. Έτσι ανακαλύπτει τον τρόπο με τον οποίο ο ίδιος θα έλυνε το πρόβλημα και προσπαθώντας να τον περιγράψει με μια γλώσσα προγραμματισμού, συνειδητοποιεί το δικό του τρόπο σκέψης. Η Logo έχει απλές εντολές και με την χρήση αυτών ο μαθητής αποκτά μια αίσθηση κυριαρχίας σ’αυτού του είδους την τεχνολογία. Οι ρίζες της LOGO δεν προέρχονται μόνο από τον χώρο της παιδαγωγικής και από το χώρο της τεχνητής νοημοσύνης, αλλά και από αυτόν της παιδαγωγικής ψυχολογίας. Ο Papert, που κατασκεύασε τη γλώσσα μαζί με τον Feurzig, συνεργάστηκε στενά με τον Piaget στη Γενεύη επί έξι χρόνια και είχε σαν κεντρικό στόχο την μελλοντική χρήση των υπολογιστών σαν εργαλείο για την έρευνα και την κατανόηση της λειτουργίας της μάθησης. Ένα από τα κύρια στοιχεία του περιβάλλοντος της γλώσσας, σε σχέση με την γνωστική ψυχολογία, ήταν η αλληλεπιδρασιακή σχέση ανάμεσα στον αφαιρετικό συμβολισμό και στην άμεση και 53
συγκεκριμένη (concrete) συνέπειά του. Η σημασία αυτής της ιδιότητας γίνεται κατανοητή αν λάβουμε υπόψη ότι για τον Piaget η μεγαλύτερη δυσκολία στα παιδιά είναι να σκεφτούν αφαιρετικά. Για τους μεταγενέστερους ψυχολόγους μάλιστα η δυσκολία αυτή (για να μην πούμε αδυναμία) επεκτείνεται και σε μεγαλύτερες ηλικίες, συχνά δε και στους ενήλικες. Επιπλέον, τα διάφορα στάδια της γνωστικής ανάπτυξης του ανθρώπου επηρεάζουν και τον τρόπο με τον οποίο συμβολίζει τη σκέψη του, με αποτέλεσμα ο Bruner, για παράδειγμα να μιλάει για τα τρία επίπεδα συμβολισμού, το λειτουργικό (enactive), το εικονικό (iconic) και το συμβολικό (symbolic). Ο Papert λοιπόν ήθελε να φτιάξει ένα περιβάλλον όπου οι νοητικές λειτουργίες του μαθητευόμενου και οι δυνατότητες να τις συμβολίζει, να εναλλάσσονται με τρόπο δυναμικό και φυσιολογικό ανάμεσα σε όλα τα στάδια της γνωστικής ανάπτυξης, οι προσωπικές εμπειρίες του δηλαδή να αφορούν ένα χώρο πιο πλούσιο νοηματικά. Η περιγραφή αλλαγών στη μαθησιακή πρακτική με τη χρήση της LOGO μας έχει δείξει ότι αυτές μπορούν να πραγματοποιηθούν. Έχουμε τώρα πολλά παραδείγματα μακροχρόνιων αλληλεπιδρασιακών και δυναμικών μαθησιακών περιβαλλόντων, όπου οι μαθητές αποκτούν τον έλεγχο της ίδιας τους της μάθησης. Έχουμε μεγαλύτερη κατανόηση του πώς η LOGO μπορεί να γίνει ένα μέσο για τη δημιουργία μαθησιακών καταστάσεων όπου τα παιδιά χρησιμοποιούν νοήματα πρώτα, χωρίς να συνειδητοποιούν τη σημασία τους και μετά περνούν από διαδικασίες διάκρισης (discrimination), αποσαφήνισης και γενίκευσης των νοημάτων αυτών. Με αυτόν τον τρόπο, η μάθηση του γνωστικού περιεχομένου έχει τις ρίζες της και είναι στενά συνδεδεμένη με εμπειρίες των παιδιών οι οποίες έχουν προσωπικό νόημα για αυτά. Το υπολογιστικό περιβάλλον χρησιμοποιείται σ’ αυτή την περίπτωση σαν "νοηματική σκαλωσιά" (scaffolding), για την επίτευξη στόχων ακόμα και όταν νοήματα και ιδέες έχουν κατανοηθεί μερικά και τοπικά επιτρέποντας έτσι τη διαδικασία της μάθησης να αρχίσει από πιο νωρίς. Με βάση τις εντολές της που πλησιάζουν τη φυσική γλώσσα, η Logo ανοίγει ορίζοντες για τη δημιουργία διαδικασιών με τις οποίες αναπτύσσονται περιβάλλοντα με καθορισμένες ιδιότητες, χαρακτηριστικά και περιορισμούς, οι μικρόκοσμοι. Ένας μικρόκοσμος είναι ένα μικρό κομμάτι της πραγματικότητας. Ο Papert αναφέρει ότι είναι αυστηρά περιορισμένος και πλήρως ορισμένος, αλλά και ότι είναι πλούσιος. Οι μικρόκοσμοι έχουν δημιουργηθεί και σχεδιαστεί σαν ασφαλείς χώροι για εξερεύνηση. Μπορείς να δοκιμάσεις τα πάντα. Παρόλο όμως που είναι ασφαλείς, είναι σχεδιασμένοι να είναι πλούσιοι σε ανακαλύψεις με την έννοια ότι μικρά τμήματα γνώσης έχουν σκορπιστεί μέσα σ’ αυτόν τον κόσμο για να τα βρεις εσύ. Ποτέ δεν θα μπλέξεις, ποτέ δεν θα αισθανθείς ανόητος, ποτέ δεν θα σου πει κάτι αγενές, ποτέ δεν θα σε φέρει σε δύσκολη θέση, ποτέ δεν θα διαλυθεί, ποτέ δεν θα σε τιμωρήσει ή θα σου βάλει ένα χαμηλό βαθμό. Δεν υπάρχει σωστό και λάθος. Είναι κατά κάποιο τρόπο σαν ένα κατασκευαστικό πακέτο, σαν να κτίζεις με κύβους. Σε όλες αυτές τις δραστηριότητες μπορείς να κάνεις τα πάντα και να 54
περιορίζεσαι μόνο από τους νόμους του κόσμου μέσα στον οποίο βρίσκεσαι. Για παράδειγμα οι κύβοι δεν μπορούν να σταθούν εκτός αν υποστηριχτούν.Υπάρχουν κάποια όρια για κάθε ένα από τα κομμάτια αυτά της πραγματικότητας. Αλλά γενικότερα και για όλη τη μάθηση, ένας ουσιαστικός κεντρικός μηχανισμός είναι να περιοριστούμε σε ένα μικρό κομμάτι πραγματικότητας το οποίο είναι αρκετά απλό για να το κατανοήσουμε. Κοιτάζοντας μικρά κομμάτια της πραγματικότητας κάθε στιγμή, μαθαίνουμε να κατανοούμε τις μεγαλύτερες πολυπλοκότητες ολόκληρου του κόσμου, του μακρόκοσμου. Ο κάθε μικρόκοσμος εμπεριέχει ένα σύνολο από έννοιες, με τις οποίες απασχολείται ο μαθητής κατά την εξερεύνησή που κάνει μέσα από κάποιες δοσμένες καταστάσεις. Βλέπουμε έτσι μια αντιστοιχία ανάμεσα στους μικρόκοσμους και στα νοητικά πεδία, που αναφέρει ο Vergnaud, όπως είδαμε στο κεφάλαιο "Επισκόπηση βιβλιογραφίας για τη μάθηση". Επίσης, όπως το νοητικό πεδίο έτσι και κάθε μικρόκοσμος έχει ένα σύνολο από καταστάσεις, οι οποίες μας βοηθούν να καταλάβουμε κάποιες έννοιες μέσα από την εξερεύνησή μας.Μέσα από τις καταστάσεις, φανερώνονται οι διαφορετικές μορφές που μπορεί να πάρει κάθε έννοια. Οι συμβολικές αναπαραστάσεις στον μικρόκοσμο είναι τα primitive του μικρόκοσμου, τα οποία τα σύμβολα κάποιων λειτουργιών.Μπορούμε έτσι να θεωρήσουμε ότι κάθε μικρόκοσμος αποτελεί ένα νοητικό πεδίο και η μάθηση επιτυγχάνεται μέσα από τα "θεωρήματα στην πράξη" . Οι μικρόκοσμοι δηλαδή, έχουν καταστάσεις, κατασκευασμένες έτσι ώστε ο μαθητής να συναντήσεις μαθηματικές ιδέες που εμπεριέχονται στο περιβάλλον πλούσια νοηματικών δραστηριοτήτων. Τέτοιες καταστάσεις πρέπει να λαμβάνουν υπόψη το τεχνικό μέρος (τι είδους προγράμματα παρέχονται ή δημιουργούνται και πώς αυτά μοντελοποιούν την μαθηματική γνώση), τις αρχικές αντιλήψεις των μαθητών για αυτή την γνώση και ερμηνεία των απαιτήσεων που τίθενται και τελικά στην εκπαιδευτική καθοδήγηση που προσφέρεται. Ουσιαστικά, ο μικρόκοσμος δεν διδάσκει τίποτα. Ο χρήστης τοποθετείται στο ρόλο του δασκάλου-κατασκευαστή. Διδάσκοντας τον υπολογιστή, αναγκαστικά μαθαίνεις σε βάθος τα νοήματα ο ίδιος αλλιώς ο υπολογιστής "δεν τα καταλαβαίνει". Η πείρα από την παρακολούθηση παιδιών που προγραμματίζουν σε Logo έχει δείξει ότι ο τρόπος με τον οποίο τα παιδιά δουλεύουν με τη Logo επηρεάζεται σημαντικά από την παιδαγωγική κατάσταση μέσα στην οποία βρίσκονται τα παιδιά.Αυτό σημαίνει ότι ένας μικρόκοσμος δεν μπορεί να ορισθεί μοναδικά μόνο από το τεχνικό του μέρος. Τα παιδιά (αλλά και οι μεγάλοι) κατανοούν τις έννοιες διαφορετικά. Φέρνουν στο μυαλό τους κάποιες προηγούμενες εμπειρίες και γνώσεις που έχουν, διάφορα επίπεδα κατανόησης και συναισθήματα από την προηγούμενη μάθησή τους. Όλα αυτά δημιουργούν ένα background απέναντι στο οποίο πρέπει να εξεταστεί ο ρόλος του μικρόκοσμου. Ένας μικρόκοσμος δεν μπορεί να ορισθεί χωρίς να ληφθεί υπ' όψιν ο μαθητής, ο δάσκαλος ή το περιβάλλον, ενώ η δραστηριότητα μέσα στο
55
μικρόκοσμο θα διαμορφωθεί από τις προηγούμενες εμπειρίες του μαθητή και από τους σκοπούς και τις προσδοκίες του δασκάλου.
2.2 Βασικές αρχές και περιβάλλον της LOGO
2.2.1 Το περιβάλλον προγραμματισμού Mswlogo
Η ιδέα είναι: Υπάρχει μια χελώνα που φέρει μολύβι και η οποία μπορεί να διαταχθεί να εκτελεί απλές πράξεις όπως να κινηθεί 100 βήματα εμπρός ή να στρίψει. Από αυτά τα δομικά στοιχεία μπορούν να οικοδομηθούν πολυπλοκότερες πράξεις που θα έχουν ως αποτέλεσμα πολύπλοκα σχήματα όπως τετράγωνα, τρίγωνα, κύκλους ή σχέδια σπιτιών, πλοίων κ.α. Η χελώνα κινείται σχετικά με την τρέχουσα θέση της, δηλαδή η εντολή «LEFT 90» σημαίνει να περιστραφεί η χελώνα κατά 90 μοίρες σε σχέση με τον τρέχοντα προσανατολισμό της. Ο μαθητής μπορεί να καταλάβει, να προβλέψει και να συλλογιστεί την κίνηση της χελώνας, να φανταστεί τι θα έκανε ο ίδιος αν ήταν η χελώνα. Ο Papert ονόμασε αυτό το είδος της σκέψης σωματοσυντονισμένο «body syntonic».
2.2.2 Προγραμματίζοντας τη χελώνα Στην ενότητα αυτή θα παρουσιάσουμε παραδείγματα προγραμματισμού σε Logo. Για την εκτέλεση των παραδειγμάτων θα χρησιμοποιήσουμε το περιβάλλον MSW Logo που διανέμεται και μέσω το ιστοχώρου http://www.e-yliko.gr. Στην επόμενη εικόνα εμφανίζεται το περιβάλλον και ξεχωρίζουν τα δύο βασικά του τμήματα. Το κεντρικό παράθυρο επάνω περιέχει την χελώνα (τρίγωνο για να φαίνεται και η κατεύθυνση) και τον χώρο που μπορεί αυτή να σχεδιάζει. Στο κάτω παράθυρο μπορούμε να πληκτρολογούμε τις εντολές μία-μία ή και περισσότερες κάθε φορά. Η εκτέλεση ξεκινά με το «enter» ή με κλικ στο κουμπί «execute». Πάνω από το λευκό πλαίσιο κειμένου που εισάγουμε τις εντολές υπάρχει μια γκρίζα περιοχή με τις εντολές που έχουν ήδη εκτελεστεί. Ένα κλικ πάνω σε μια τέτοια εντολή την επαναφέρει στο πλαίσιο εντολής για διόρθωση, επανάληψη κλπ.
56
2.2.3 Οι βασικές εντολές της LOGO Οι βασικές εντολές της Logo εμφανίζονται στον επόμενο πίνακα:
Εντολή
Αποτέλεσμα
FORWARD ή FD Κ
Εμπρός Κ βήματα
BACK ή BK Κ
Πίσω Κ βήματα
RIGHT ή RT Χ
Στροφή δεξιά κατά Χ μοίρες
LEFT ή LT Χ
Στροφή αριστερά κατά Χ μοίρες
PENUP ή PU
Σηκώνει το μολύβι από το χαρτί.
PENDOWN ή PD
Κατεβάζει το μολύβι στο χαρτί.
CLEARSCREEN ή CS
Καθαρίζει την οθόνη.
HIDETURTLE ή HT
Κρύβει την χελώνα.
SHOWTURTLE ή ST
Εμφανίζει την χελώνα.
REPEAT ν [Εντολή]
Επαναλαμβάνει την εντολή ν 57
φορές
Παράδειγμα 1. Τετράγωνο
FORWARD 100 LEFT 90 FORWARD 100 LEFT 90 FORWARD 100 LEFT 90 FORWARD 100 LEFT 90 Η παραπάνω ακολουθία εντολών σχηματίζει ένα τετράγωνο 100 μονάδων. Οι εντολές είναι απλές, αλλά η δυνατότητα ομαδοποίησης τους σε διαδικασίεςυποπρογράμματα και η μαζική εκτέλεσή τους μόνο με την επίκληση του ονόματος της διαδικασίας, επιτρέπει την ανάπτυξη πολύπλοκων βιβλιοθηκών εντολών. Οι εντολές μπορούν επίσης να δοθούν σε συντομογραφία π.χ. LT 90 κλπ. Παρατηρώντας το πρόγραμμα βλέπουμε ότι το τετράγωνο σχηματίζεται με την επανάληψη για τέσσερις φορές του ζεύγους των εντολών : FORWARD 100 LEFT 90 Αυτό μπορεί να εκφραστεί συντομότερα στην Logo με τη βοήθεια της εντολής επανάληψης REPEAT ως εξής: REPEAT 4 [FORWARD 100 LEFT 90] ή REPEAT 4 [FD 100 LT 90]
58
Παράδειγμα 2. Ορισμός διαδικασίας
Το επόμενο βήμα είναι να ορίσουμε μια νέα λέξη στο λεξιλόγιο της χελώνας στο άκουσμα της οποίας η χελώνα θα σχηματίζει ένα τετράγωνο. Με άλλα λόγια θα ορίσουμε μια νέα διαδικασία. EDIT "square <Εμφανίζεται ο συντάκτης κειμένου notepad και πληκτρολογούμε το επόμενο κείμενο - διαδικασία> TO SQUARE REPEAT 4 [FD 100 RT 90] END <Αποθηκεύουμε και τερματίζουμε το συντάκτη. Επιστρέφουμε στη Logo. Η χελώνα τώρα, όταν της δίνουμε την εντολή square, σχηματίζει ένα τετράγωνο>.
Παράδειγμα 3. Ορισμός διαδικασίας με όρισμα
Η διαδικασία που ορίσαμε προηγουμένως έχει ένα μειονέκτημα. Σχηματίζει ορθογώνιο με σταθερή πλευρά. Στο παράδειγμα αυτό θα τροποποιήσουμε τη διαδικασία square ώστε να δέχεται ως παράμετρο το μήκος της πλευράς του ορθογωνίου. Αυτό μπορεί να γίνει με τις επόμενες εντολές: EDIT "square
59
TO SQUARE :length REPEAT 4 [FD :length RT 90] END Με το κλείσιμο του συντάκτη μπορούμε να χρησιμοποιήσουμε την διαδικασία όπως στα παρακάτω παραδείγματα. SQUARE 100 SQUARE 200
Παράδειγμα 4. Περισσότερες διαδικασίες
Στο παράδειγμα αυτό θα φτιάξουμε διαδικασίες και για άλλα σχήματα όπως το ισόπλευρο τρίγωνο, το πεντάγωνο και τελικά θα γενικεύσουμε με την διαδικασία πολύγωνο.
TO TRIANGLE :length REPEAT 3 [FD :length RT 120] END TO PENTAGON :length REPEAT 5 [FD :length RT 72] END TO POLYGON :length :sides REPEAT :sides [FD :length RT 360.0/:sides] END Με τις παραπάνω διαδικασίες η επόμενη τριάδα εντολών έχει το ίδιο αποτέλεσμα με την μεθεπόμενη:
60
TRIANGLE 100 SQUARE 100 HEXAGON 100 POLYGON 100 3 POLYGON 100 4 POLYGON 100 5
Με τα παραπάνω φαίνεται η δυνατότητα χρήσης της Logo για την αποσύνθεση ενός προβλήματος σε υπό-προβλήματα αλλά και η γενίκευση των λύσεων με διαδοχικά νοητικά πειράματα. Όλα τα υποπρογράμματα που έχουμε ορίσει αποτελούν ένα ενιαίο πρόγραμμα που πρέπει να αποθηκευθεί σε αρχείο στον δίσκο προκειμένου να μπορεί να ξαναχρησιμοποιηθεί σε περίπτωση που κλείσουμε την εφαρμογή. Για τον σκοπό αυτό δίνουμε την επόμενη εντολή ή επιλέγουμε FILE|SAVE.
SAVE "SHAPES.LGO BYE LOAD "SHAPES.LGO
Παράδειγμα 5. Ο κύκλος Ο σχεδιασμός του κύκλου γίνεται με το επόμενο υποπρόγραμμα;
to circle :r make "d :r*pi/180 repeat 360 [fd :d rt 1] end 61
Παράδειγμα 6. Αναδρομικά υποπρογράμματα – το σπιράλ Αναδρομικά ονομάζονται τα υποπρογράμματα που επικαλούνται τον εαυτό τους. Για την αποφυγή της ατέρμονης επανάληψης υπάρχει μια απλή συνθήκη τερματισμού που εισάγει και την απλή δομή επανάληψης if. Ορίστε το επόμενο υποπρόγραμμα:
to spiral :size if :size > 30 [stop] ; a stop condition fd :size rt 15 ; many lines of action spiral :size *1.02 ; the tailend recursive call end
Παράδειγμα 7. Οι μεταβλητές στη LOGO Στη Logo υπάρχουν τρεις τύποι δεδομένων: word, list και array. Οι αριθμοί είναι ειδικές περιπτώσεις της λέξης (word). Ο τύπος των μεταβλητών δεν είναι απαραίτητο να οριστεί αλλά συνάγεται από τα συμφραζόμενα. Δύο σύμβολα που είναι σημαντικά σχετικά με τις μεταβλητές είναι η άνω κάτω τελεία «:» και τα εισαγωγικά «"». Οι άνω κάτω τελείες σημαίνουν την τιμή μιας μεταβλητής και τα εισαγωγικά σημαίνουν κυριολεκτικές τιμές (εκφράσεις που αποτιμούνται ακριβώς όπως αναγράφονται). Για παράδειγμα το επόμενο τμήμα θα τυπώσει 10. make "x 4 62
make "y 6 make "sum :x+:y print :sum Η εντολή make παίρνει δύο ορίσματα ένα όνομα μεταβλητής και μια τιμή. Το αποτέλεσμά της είναι η δημιουργία μιας μεταβλητής με το δεδομένο όνομα (εφόσον αυτή δεν υπάρχει ήδη) και η απόδοση του δεύτερου ορίσματος ως αρχική τιμή. Σε περίπτωση που υπάρχει ήδη μια μεταβλητή με το ίδιο όνομα, τότε η εντολή make λειτουργεί ως εντολή ανάθεσης τιμής. Το όνομα της μεταβλητής μπορεί να είναι ό,τιδήποτε η LOGO βλέπει ως λέξη. Είναι επίσης case-insensitive.
2.3 Παρουσίαση των εκδόσεων της LOGO σήμερα
2.3.1 LogoWriter
Η γλώσσα Logo διαδόθηκε ευρέως με την εξέλιξη των προσωπικών υπολογιστών στα τέλη της δεκαετίας του 1970. Ορισμένες εταιρείες, όπως για παράδειγμα η Terrapin Software, άρχισαν την εμπορική εκμετάλλευση της γλώσσας Logo. Μία από τις πρωτοπόρες εταιρείες στον τομέα αυτόν έγινε η εταιρεία Logo Computer Systems Inc. (LCSI), η οποία δημιουργήθηκε το 1980 με διευθυντή τον Seymour Papert. Το 1985, η εταιρεία Logo Computer Systems Inc. δημιούργησε τη νέα έκδοση της Logo, το πρόγραμμα LogoWriter. Αυτό το πρόγραμμα αναγνωρίσθηκε ως ένα από τα καλύτερα. Αρκεί να αναφερθεί ότι το 1990 το σύστημα LogoWriter ανακηρύχθηκε από τους αναγνώστες του περιοδικού Classroom Computer Learning ως το καλύτερο εκπαιδευτικό πρόγραμμα της δεκαετίας. H LogoWriter είναι γλώσσα γενικής χρήσης με σύνταξη κατάλληλη για εκπαιδευτικούς σκοπούς.Η αξία έγκειται στην ανάπτυξη πνευματικών ικανοτήτων και όχι στην εξάσκηση σε εξεζητημένες τεχνικές προγραμματισμού. Γενικά χαρακτηριστικά της είναι, οτι χρησιμοποιείται για δημιουργία γραφικών με την βοήθεια μιας εικονικής χελώνας, η εκτέλεση του προγράμματος γίνεται με την κίνηση της χελώνας, η Logo Writer διαθέτει έναν interpreter που επιτρέπει την επικοινωνία με τον υπολογιστή, ενώ η σύνταξή της είναι απλή αλλά αυστηρή. Αρχικά η LogoWriter ήταν χρήσιμη για επεξεργασία καταλόγων και λέξεων στη συνέχεια χρησιμοποιήθηκε για τη δημιουργία γραφικών με ένα μικρό ρομπότ..Το interface της γλώσσας προσομοιάζεται με ένα τετράδιο εργασίας. Κάθε φύλλο του 63
τετραδίου είναι και ένα αρχείο με δικό του όνομα. Κάθε αρχείο υπάρχει στην σελίδα περιεχομένων της Logo Writer.
Τα μέρη της οθόνης της LogoWriter είναι τα εξής:
Κίνηση χελώνας με εντολές από το command line:
Στο command line δίνονται εντολές για κίνηση της χελώνας, εμφάνιση κάποιου μηνύματος αλλά και εκεί εμφανίζονται τα μηνύματα του interpreter.
64
Μηνύματα του interpreter:
Οι εντολές της Logo Writer αφορούν στη δημιουργία γραφικών,την επεξεργασία λέξεων και λιστών και στην επικοινωνία με το σύστημα.Η λέξη είναι μια ακολουθία απο αλφαριθμητικούς χαρακτήρες, χωρίς spaces.Κάθε λέξη είναι και μια εντολή για την Logo_WR.Λίστα είναι μια ακολουθία απο στοιχεία που περιέχεται μέσα σε αγκύλες [,]. Η λίστα μπορεί να χρησιμοποιηθεί π.χ από μια εντολή print. Οι λέξεις, οι αριθμοί και οι λίστες αποτελούν τα στοιχεία εισόδου που επεξεργάζεται η Logo_WR και ονομάζονται αντικείμενα. Η Logo_WR διαθέτει ένα βασικό λεξιλόγιο το οποίο αποτελέιται απο κάποιες λέξεις-κλειδιά. Ο συνδυασμός των λέξεων-κλειδιών δημιουργεί τα προγράμματα που ονομάζονται και διαδικασίες.
2.3.2 StarLogo TNG
Το StarLogo TNG (The Next Generation) αποτελεί ένα σύγχρονο υπολογιστικό περιβάλλον για τη γλώσσα Logo.Αναπτύχθηκε από το Scheller Teacher Education Program του MIT και διατίθεται δωρεάν στη διεύθυνση http://education.mit.edu/starlogo-tng.Το starlogo είναι επίσης διαθέσιμο σε μια έκδοση που ονομάζεται Οpenstarlogo.Το Starlogo TNG έκδοση 1.0 κυκλοφόρησε τον
65
Ιούλιο του 2008. Παρέχει ένα 3D κόσμο, χρησιμοποιώντας OpenGL γραφικά.Είναι γραμμένο σε C και Java.
Βασικοί της στόχοι είναι:
Να μειώσει τα εμπόδια στην εκμάθηση των βασικών προγραμματιστικών αρχών μέσω μιας γραφικής απεικόνισης των στοιχείων της γλώσσας ως έγχρωμων blocks (τουβλάκια) τα οποία ταιριάζουν μεταξύ τους σαν κομμάτια ενός παζλ. Να δώσει τη δυνατότητα στο μαθητή να κατασκευάσει απλά παιχνίδια και εικονικούς τρισδιάστατους κόσμους.Έτσι,εύκολα και γρήγορα να μπορεί εκείνος να αφομοιώνει δύσκολες προγραμματιστικές έννοιες. Να δώσει τη δυνατότητα προσομοίωσης φυσικών συστημάτων μέσω της τρισδιάστατης απεικόνισης.Μπορεί για παράδειγμα, να χρησιμεύσει στην απεικόνιση και μελέτη της διάδοσης ενός μικροβίου, στην αποτύπωση της συμπεριφοράς ενός κοπαδιού ψαριών ή στην κατασκευή ενός μοντέλου του DNA.
66
2.3.3 Microworlds Pro Το Microworlds Pro (καναδέζικη έκδοση της LCSI, 1999 και εξελληνισμένη έκδοση, 2001) είναι ένα πολυμεσικό περιβάλλον το οποίο διαθέτει ως γλώσσα προγραμματισμού τη γνωστή Logo και έχει σχεδιαστεί σύμφωνα με τις παιδαγωγικές αντιλήψεις του δημιουργού της S. Papert, συνεργάτη του J. Piaget. Το περιβάλλον αυτό θεωρείται κατάλληλο τόσο για την εξοικείωση των μαθητών με έννοιες και τεχνικές σχετικές με τις Τεχνολογίες της Πληροφορίας και της Επικοινωνίας (ΤΠΕ) όσο και για τη διδασκαλία όλων των μαθημάτων του Προγράμματος Σπουδών της Πρωτοβάθμιας και πολλών γνωστικών αντικειμένων της Δευτεροβάθμιας εκπαίδευσης.
Το λογισμικό Microworlds Pro έχει τις παρακάτω δυνατότητες:
Με τη βοήθεια της γλώσσας Logo παρέχεται η δυνατότητα δημιουργίας κινουμένων σχεδίων, προσομοιώσεων, μοντελοποιήσεων, εκπαιδευτικών παιχνιδιών, ασκήσεων και επίλυσης προβλημάτων.
Μπορεί να χρησιμοποιηθεί από τα παιδιά για τη δημιουργία εργασιών με διαδραστικό και πολυμεσικό χαρακτήρα, καθώς περιέχει όλα τα απαραίτητα εργαλεία (εικόνες, ήχοι, κινούμενα σχέδια, βίντεο, γεωμετρικά σχήματα, κουμπιά κλπ).
Περιλαμβάνει εργαλεία για απλή επεξεργασία κειμένου, επεξεργασίας εικόνας και σύνθεση ήχων.
Επιτρέπει τη δημοσίευση των εργασιών σε μορφή html, επομένως και την ανάρτησή τους στο διαδίκτυο (π.χ. στη σχολική ιστοσελίδα)
Συμβατότητα του περιβάλλοντος με τα γνωστά προγράμματα των Windows (όπως ο έλεγχος της ορθογραφίας) και η άμεση συνεργασία μέσω προγραμματισμού του λογιστικού φύλλου Excel.
Ικανοποιεί το μεγαλύτερο μέρος του νέου Προγράμματος Σπουδών για τις Νέες Τεχνολογίες στο Ολοήμερο Δημοτικό Σχολείο ("Παίζω και μαθαίνω με τον υπολογιστή", "Γράφω και ζωγραφίζω", "Ελέγχω και προγραμματίζω").
Η εξελληνισμένη έκδοση του Microworlds από την Rainbow Computer A.E. περιλαμβάνει εγχειρίδιο για το διδάσκοντα και τους μαθητές με μια σειρά δραστηριοτήτων. Το ΥπΕΠΘ έχει αποκτήσει δικαιώματα χρήσης του λογισμικού για τα 350 Γυμνάσια, Λύκεια και ΤΕΕ που συμμετείχαν στο έργο της «Οδύσσειας» καθώς και για τα 2050 Δημοτικά σχολεία της χώρας (έργο εξοπλισμού σχολικών εργαστηρίων, Υπ.Ε.Π.Θ., Γ΄ ΚΠΣ).
67
2.3.4 KTurtle Το KTurtle είναι ένα εκπαιδευτικό περιβάλλον προγραμματισμού που χρησιμοποιεί την γλώσσα προγραμματισμού Logo. Προσπαθεί να κάνει τον προγραμματισμό εύκολο, πιθανό και δυνατό όσο περισσότερο μπορεί. Αυτό κάνει το KTurtle κατάλληλο για να διδάξει στα παιδιά τα βασικά στα μαθηματικά, την γεωμετρία και τον προγραμματισμό. Οι εντολές που χρησιμοποιούνται στον προγραμματισμό είναι στο στυλ της γλώσσας προγραμματισμού Logo. Το διακριτικό χαρακτηριστικό της γλώσσας Logo είναι ότι οι εντολές συχνά μεταφράζονται στην γλώσσα ομιλίας του προγραμματιστή. Το KTurtle ονομάστηκε έτσι από “την χελώνα” που παίζει έναν κεντρικό ρόλο στο προγραμματιστικό περιβάλλον. Ο χρήστης προγραμματίζει την χελώνα χρησιμοποιώντας εντολές Logo, για να σχεδιάσει μια εικόνα στον καμβά.
Tο περιβάλλον του ΚΤurtle
2.3.5 NETLogo
Η NETLogo έχει χιλιάδες ενεργούς χρήστες και είναι διαθέσιμη δωρεάν από την ιστοσελίδα http://ccl.northwestern.edu/netlogo/download.shtml. Η NETLogo χρησιμοποιείται από πολλά εκπαιδευτικά περιβάλλοντα από το δημοτικό σχολείο μέχρι το πανεπιστήμιο. Πολλοί καθηγητές κάνουν χρήση της στα προγράμματα σπουδών τους. Η NETLogo σχεδιάστηκε και γράφτηκε από τον Uri Wilensky, καθηγητή του Πανεπιστημίου του Northwestern.Η ανάπτυξη της έχει χρηματοδοτηθεί από το Εθνικό Ίδρυμα Επιστημών και από άλλα ιδρύματα. Η NETLogo είναι ελεύθερο και ανοικτού κώδικα λογισμικό, με άδεια GPL. Είναι γραμμένο σε Scala και java και τρέχει στην Java Virtual Machine. Στον πυρήνα του υπάρχει ένας
68
υβριδικός διερμηνέας / μεταφραστής που μεταφράζει μερικώς κωδικό χρήστη σε JVM bytecode.
2.3.6 UCBLogo Η UCBLogo είναι μια δωρεάν Logo εφαρμογή που αναπτύχθηκε από τον Brian Harvey και τους μαθητές του στο πανεπιστήμιο της Καλιφόρνια.Είναι γραμμένη στη γλώσσα προγραμματισμού C και τρέχει σε Windows, Mac OS X καθώς και σε διάφορα Unix-like λειτουργικά συστήματα, όπως Linux και FreeBSD.
2.4 Η διδασκαλία των βασικών εννοιών προγραμματισμού στη LOGO
Η γλώσσα προγραμματισμού Logo καθιστά το περιβάλλον εκπαιδευτικά αξιοποιήσιμο για τη διδασκαλία των βασικών προγραμματιστικών δομών, καθώς η οπτικοποίηση του αποτελέσματος, συμβάλλει στην κατανόηση του τρόπου λειτουργίας των εντολών (Papert, 1991). Επιπλέον, το συντακτικό της γλώσσας Logo είναι δομημένο με τέτοιο τρόπο ώστε να προσεγγίζει τη φυσική γλώσσα, με
69
αποτέλεσμα οι μαθητές να διευκολύνονται στην κατανόηση ή σύνταξη εντολών, διαδικασιών ή προγραμματιστικών δομών. Μεταξύ άλλων, η Logo ως γλώσσα προγραμματισμού εμφανίζει ιδιαίτερα θετικά χαρακτηριστικά όπως: Α) Είναι απλή στην εκμάθηση
οι εντολές είναι πολύ κοντά στη φυσική γλώσσα που χρησιμοποιούμε, προσφέρει φιλικά και βοηθητικά μηνύματα λάθους, παρέχει άμεση ανάδραση στο χρήστη – χρησιμοποιεί διερμηνέα και συνεπώς είναι αλληλεπιδραστική, δεν απαιτείται ορισμός τύπου μεταβλητών.
Β) Προάγει σωστές τεχνικές προγραμματισμού
ενθαρρύνει την ανάπτυξη διαδικασιών (procedures) και υποδιαδικασιών (subprocedures), οι διαδικασίες μπορούν να επαναχρησιμοποιηθούν ως δομικές μονάδες για την κατασκευή άλλων διαδικασιών, δεν υπάρχουν αριθμημένες γραμμές εντολών, που να ωθούν σε μεταβάσεις στον κώδικα, δεν απαιτείται προσδιορισμός μεγέθους λέξεων ή λιστών, επιτρέπει τον προγραμματισμό από πάνω προς τα κάτω (top-down: από το ολικό προς το μερικό) και τον προγραμματισμό από κάτω προς τα πάνω (bottom-up: από το μερικό προς το ολικό), επιτρέπει τη δημιουργία σύνθετης αναδρομικής διαδικασίας (recursion), επιτρέπει τη χρήση τοπικών (local) και καθολικών (global) μεταβλητών (variables) [όπου τοπικές μεταβλητές: μεταβλητές με εμβέλεια στο πλαίσιο μιας διαδικασίας και καθολικές μεταβλητές: μεταβλητές με εμβέλεια σε όλο το πρόγραμμα], παρέχει δυνατότητα επεξεργασίας δομών λιστών και επεξεργασίας γλωσσικών δομών (λέξεις και φράσεις), προωθεί τη διαδικασία εκσφαλμάτωσης (debugging).
Γ) Επιτρέπει τη δημιουργία και την επαναχρησιμοποίηση διαδικασιών
ως επεκτάσιμη γλώσσα επιτρέπει την προσθήκη νέων εντολών από το χρήστη, επιτρέπει την εκτέλεση και τον έλεγχο κάθε διαδικασίας ξεχωριστά, επιτρέπει την επαναχρησιμοποίηση διαδικασιών από ένα πρόγραμμα σε ένα άλλο, επιτρέπει τη μετονομασία των εντολών, ενθαρρύνει τη δημιουργία βιβλιοθήκης συχνά χρησιμοποιούμενων διαδικασιών. 70
Δ) Τα προγράμματα είναι εύκολο να δημιουργηθούν και να συντηρηθούν
η εκσφαλμάτωση των προγραμμάτων είναι απλή μέσω κατάλληλων αναδράσεων, επιτρέπει την ονοματοδοσία μεταβλητών και διαδικασιών με μεγάλα και περιγραφικά ονόματα, τα μηνύματα λάθους είναι λεπτομερή και βοηθητικά, παρέχει ολοκληρωμένο σύνολο εντολών διαχείρισης αρχείων, διαθέτει πολυμεσικά και υπερμεσικά χαρακτηριστικά.
Σημαντικό πλεονέκτημα της Logo αποτελεί η δυνατότητά της να εκτελεί εντολές σε άμεσο περιβάλλον, χωρίς κλασικές δυσχέρειες σύνταξης των γλωσσών προγραμματισμού όπως αρχή και τέλος προγράμματος, δήλωση μεταβλητών και σταθερών. Όσον αφορά στον προγραμματισμό η γλώσσα Logo εμπνέει σωστές τεχνικές για: α) Τη συγγραφή δομημένων προγραμμάτων, β) Το σχεδιασμό του προγράμματος και τον «τεμαχισμό» του σε μικρότερα υποπροβλήματα, γ) Την ορθή αξιοποίηση της συνθήκης και των διακλαδώσεων, δ) Τη χρήση των μεταβλητών και της αναδρομής και ε) Τη χρήση των δεδομένων (αριθμών, λέξεων, λιστών). Η Logo είναι μια γλώσσα προγραμματισμού, που παρέχει όλα τα εργαλεία που απαιτούνται για τη δημιουργία προγραμμάτων κάθε βαθμίδας και πολυπλοκότητας. Παρόλο που συχνά αμφισβητείται η εκπαιδευτική αποτελεσματικότητα της Logo, θεωρείται ιδανικό εργαλείο για να μαθαίνεις κάνοντας (learning by doing) και αναμφίβολα αποτελεί σημαντικό εργαλείο στα χέρια του εκπαιδευτικού για την ανάπτυξη δεξιοτήτων εξερεύνησης, δημιουργικότητας, επίλυσης προβλημάτων, λογικής-αλγοριθμικής σκέψης.
71
ΚΕΦΑΛΑΙΟ 3
3
Παρουσίαση νέων περιβαλλόντων για την διδασκαλία του προγραμματισμού στα σχολεία
3.1 Νέα περιβάλλοντα και εκδόσεις της LOGO 3.1.1 ABAKIO
Το Αβάκιο E-Slate προσφέρει στην ευρύτερη εκπαιδευτική κοινότητα (ερευνητές, εκπαιδευτικούς, μαθητές, συγγραφείς εκπαιδευτικών δραστηριοτήτων, εκδότες) εργαλεία υψηλού επιπέδου για τη σύνθεση εκπαιδευτικών «Μικρόκοσμων» (εστιασμένων εφαρμογών) για πειραματισμό και διερεύνηση φαινομένων, εννοιών, υποθέσεων και συσχετισμών. Aναπτύχθηκε από την Ομάδα Μαθησιακής Τεχνολογίας του Ερευνητικου Ακαδημαϊκού Ινστιτούτου Τεχνολογίας Υπολογιστών (Ε.Α ΙΤΥ www.cti.gr) ερευνητικού οργανισμού εποπτευόμενου από το ΥΠΕΠΘ. Ιδέες εκπαιδευτικών δραστηριοτήτων μπορούν εύκολα να μετατραπούν σε λογισμικό, στη μορφή Μικρόκοσμων που απαρτίζονται από αλληλο-συνεργαζόμενες «Ψηφίδες». Οι Ψηφίδες παρέχονται ως μια βιβλιοθήκη προκατασκευασμένων υπολογιστικών αντικειμένων (software components), ειδικά σχεδιασμένων για εκπαιδευτική χρήση, τα οποία μπορούν πολύ εύκολα να συνδεθούν μεταξύ τους σε οποιoνδήποτε συνδυασμό. Έτσι, με κατάλληλη διασύνδεση των Ψηφίδων από τον χρήστηεκπαιδευτικό, συντίθεται το κάθε φορά στοχευόμενο εκπαιδευτικό λογισμικόδραστηριότητα. Η διασύνδεση και διαχείριση τόσο των ψηφίδων όσο και των εκπαιδευτικών δραστηριοτήτων (Μικρόκοσμων) μπορεί να προγραμματιστεί μέσα από μια ειδικά σχεδιασμένη συμβολική γλώσσα βασισμένη στη Logo. Το εκπαιδευτικό λογισμικό που αναπτύσσεται με το Αβάκιο E-Slate «κληρονομεί» χαρακτηριστικά που του προσδίδουν εκπαιδευτικά αξιοποιήσιμη ποιότητα, όπως:
δυναμικά συσχετιζόμενες πολλαπλές αναπαραστάσεις εννοιών
κατασκευή και διαχείριση μοντέλων και προσομοιώσεων
υψηλού επιπέδου δια-δραστικότητα
δομήσιμη και προσαρμόσιμη λειτουργικότητα
δομημένο και προσαρμόσιμο πολυμεσικό υλικό 72
προγραμματιζόμενα αντικείμενα και συμπεριφορές
διασύνδεση με εργαστηριακά όργανα μετρήσεων
Στα κύρια πλεονεκτήματα της προσέγγισης ανάπτυξης εκπαιδευτικού λογισμικού με το Αβάκιο E-Slate έναντι άλλων «κλασσικών» μεθόδων ανάπτυξης, συγκαταλέγονται τα παρακάτω: 1. Δίνεται στους εκπαιδευτικούς η δυνατότητα να συνθέσουν Μικρόκοσμους δικής τους έμπνευσης ή/και να τροποποιήσουν ήδη υπάρχοντες (χρησιμοποιώντας τα ίδια εργαλεία με τους αρχικούς κατασκευαστές). Κατά τη διαδικασία σύνθεσης Μικρόκοσμων οι σχεδιαστές μπορούν να σκέφτονται για την κατασκευή τους με βάση δομικά υλικά υψηλού επιπέδου, τις Ψηφίδες, οι οποίες αναπαριστούν γνώριμες οντότητες του γνωστικού τους χώρου, αντί να ξεκινούν από πρωτόγονα δομικά συστατικά (π.χ. αριθμούς και δομές δεδομένων κάποιας γλώσσας προγραμματισμού) στην προσπάθεια να κωδικοποιήσουν τις απαραίτητες έννοιες και αλγορίθμους. Οι Ψηφίδες προσφέρουν προ-πακεταρισμένη την απαιτούμενη συμπεριφορά, εκμεταλλευόμενες τα χαρακτηριστικά του πεδίου εφαρμογών που αναπαριστούν. 2. Η ευελιξία σύνθεσης λειτουργικών διατάξεων (Μικρόκοσμων) που γίνεται δυνατή με τη χρήση Ψηφίδων, ανοίγει καινούργιες προοπτικές για την υλοποίηση συνδυαστικών λειτουργιών που δεν ήταν εφικτές με προηγούμενες μεθόδους ανάπτυξης. 3. Γίνεται δυνατή η σε μεγάλη κλίμακα επαναχρησιμοποίηση δομών και κατασκευών (Ψηφίδων και Μικρόκοσμων) με προφανή οφέλη: μικρό χρόνο ανάπτυξης πρωτοτύπων (rapid prototyping), ελαχιστοποίηση προσπάθειας και χρόνου δηλαδή κόστους. 4. Ο ρόλος των τεχνικών «περιορίζεται» στο χώρο ειδίκευσής τους, στην κατασκευή δηλαδή υπολογιστικά άρτιων και αποτελεσματικών Ψηφίδων, δίνοντας την ελευθερία των σχεδιαστικών αποφάσεων για το εκπαιδευτικό λογισμικό στους ειδικούς του χώρου: οι εκπαιδευτικοί μπορούν να επιλέξουν τώρα μόνοι τους το περιεχόμενο, την παιδαγωγική προσέγγιση, τον τρόπο παρουσίασης, πλοκής και συμπεριφοράς ενός Μικρόκοσμου. 5. Οι Ψηφίδες μπορούν να σχεδιαστούν με τρόπο που να είναι αλληλοσυνεργάσιμες και ανταλλάξιμες ακόμα κι αν προέρχονται από διαφορετικούς κατασκευαστές, γεφυρώνοντας έτσι το κενό μεταξύ των μέχρι τώρα απομονωμένων «εφαρμογών» που δεν μπορούσαν παρά να χρησιμοποιηθούν μόνο για τις περιστάσεις για τις οποίες σχεδιάστηκαν. Γίνεται δηλαδή εφικτή η σύνθεση παραδοσιακά μεταξύ τους «ξένων» περιβαλλόντων σε ενιαία λειτουργικά σύνολα. Η δυνατότητα αυτή δίνει επιπλέον στους χρήστες των 73
Ψηφίδων την ελευθερία επιλογής ανάμεσα σε διαφορετικούς κατασκευαστές (όπως την περίπτωση επιλογής συσκευών για τη σύνθεση ενός ηχοσυνόλου από συσκευές διαφορετικών κατασκευαστών). Τα εκπαιδευτικά προϊόντα που κατασκευάζονται με το «Αβάκιο E-slate» μπορούν να καλύψουν μεγάλο εύρος γνωστικών αντικειμένων και επιπέδων εκπαίδευσης. Εκπαιδευτικές εφαρμογές βασισμένες στο «Αβάκιο E-slate», όπως ο «Χελωνόκοσμος» το «Ταξινομούμε», ο «Ξένιος» και οι «Μυκήνες» χρησιμοποιούνται σε αρκετά σχολεία (αντίστοιχα σε γνωστικά αντικείμενα Μαθηματικών, Γεωγραφίας, Ξένων Γλωσσών, Ιστορίας).
Χελωνόκοσμος
Μυκήνες
74
3.2 Νέα διαφορετικά περιβάλλοντα 3.2.1 Scratch
Το Scratch είναι μια διερμηνευόμενη δυναμική οπτική γλώσσα προγραμματισμού βασισμένη και υλοποιημένη σε Squeak. Όντας δυναμική, επιτρέπει σε αλλαγές του κώδικα ακόμη και κατά τη διάρκεια της εκτέλεσης των προγραμμάτων. Έχει ως στόχο τη διδασκαλεία εννοιών προγραμματισμού σε παιδιά και εφήβους και να τους επιτρέψει να δημιουργήσουν παιχνίδια, βίντεο και μουσική. Μπορεί να μεταφορτωθεί δωρεάν και χρησιμοποιείται σε μια ευρεία ποικιλία δράσεων εντός και εκτός του σχολείου ανά τον κόσμο. Η πλατφόρμα Scratch (http://scratch.mit.edu/) αναπτύχθηκε από την ερευνητική ομάδα Lifelong Kindergarden Group στο MIT Media Lab, με την υποστήριξη του National Science Fountation των Η.Π.Α., του Intel Fountation και των MIT Media Lab research consortia. Θεωρείται από μια μεγάλη μερίδα μαθητών, εκπαιδευτικών και ερευνητών ως το πιο αποδοτικό και αποτελεσματικό εργαλείο ανάπτυξης γνωστικών δεξιοτήτων προγραμματισμού σε μικρές ηλικίες(Φεσάκης & Δημητρακοπούλου, 2007).Το όνομα Scratch παραπέμπει στην τεχνική του scratching στα παλαιά πικάπ, και αναφέρεται τόσο στη γλώσσα όσο και στην υλοποίηση της. Η ομοιότητα προς το scratching στη μουσική είναι η εύκολη επαναχρησιμοποίηση κομματιών: στο Scratch όλα τα αλληλεπιδραστικά αντικείμενα, γραφικά και ήχοι μπορούν εύκολα να εισαχθούν σε ένα νέο πρόγραμμα και να συνδυαστούν με νέους τρόπους. Έτσι οι αρχάριοι μπορούν να λάβουν γρήγορα αποτελέσματα και αποκτούν κίνητρο να προσπαθήσουν περαιτέρω. Η δημοτικότητα του Scratch στην εκπαίδευση οφείλεται στην ευκολία με την οποία μπορούν να δημιουργηθούν προγράμματα: οι εντολές και οι δομές δεδομένων είναι απλές και είναι τουλάχιστον μερικά γραμμένες στην καθομιλουμένη, και η δομή του προγράμματος μπορεί να σχεδιαστεί όπως ένα παζλ, με αποσπώμενα κομμάτια κώδικα που μπορούν να μετακινηθούν και προσαρμοστούν μαζί. Στοχεύει στην ανάπτυξη βασικών ικανοτήτων, όπως είναι: η δημιουργική σκέψη, η σαφής επικοινωνία, η συστηματική ανάλυση, η αποδοτική συνεργασία, ο επαναληπτικό-προοδευτικόςσχεδιασμός, και οι δεξιότητες της δια βίου μάθησης (Φεσάκης κ.α., 2008). Λόγω του ότι χρησιμοποιεί ευχάριστα γραφικά, ένα ιδιαίτερα εύχρηστο dag & drop περιβάλλον εντολών και του ότι φέρει καινοτομίες στην προσέγγιση δυσνόητων εννοιών και τεχνικών προγραμματισμού, φαίνεται να καθιστά τον προγραμματισμό περισσότερο ενδιαφέρον στα μάτια μαθητών αλλά και εκπαιδευτικών. Το Scratch χρησιμοποιείται παγκοσμίως σε διάφορα σχολεία και εκπαιδευτικούς οργανισμούς. Ο δικτυακός τόπος του Scratch έχει αναπτύξει μια κοινότητα από 75
αρχόμενους προγραμματιστές, μαθητές, δασκάλους και ερασιτέχνες, που αλληλοπαρακινούνται να αναπτύξουν την δημιουργικότητα τους και τις προγραμματιστικές δεξιότητες τους. Ένα από τα φόρoυμ στον ιστότοπο του Scratch είναι αφιερωμένο σε συζητήσεις μεταξύ εκπαιδευτικών. Το ενδιαφέρον είναι ότι, εφόσον κάποιος δημιουργήσει κάτι δικό του μπορεί με ένα κλικ να το δει ανεβασμένο στο portal της "κοινότητας του Scratch" μαζί με άλλα 2.000.000 projects. Στο ιστολόγιο "Προγραμματίζοντας στο Scratch" μπορείτε να αναζητήσετε "απλά μαθήματα" για τους ενδιαφερόμενους αρχάριους καθώς και πιο προχωρημένα προγράμματα (στην ετικέτα Προγραμματισμός). Το σλόγκαν του Scratch είναι "Φαντάσου · Φτιάξε · Μοιράσου". Η έμφαση στο μοίρασμα είναι σημαντικό μέρος της παιδαγωγικής για το Scratch: τα προγράμματα δεν θεωρούνται μαύρα κουτιά, αλλά αντικείμενα που μπορούν να αναμιχθούν για τη δημιουργία νέων έργων. Ο μόνος τρόπος να γίνει ένα πρόγραμμα διαθέσιμο για χρήση είναι να δοθεί ο πηγαίος κώδικας του. Η εστίαση ήταν πάντα στην παιγνιώδη μάθηση, ώστε τα παιδιά του δημοτικού σχολείου να μπορούν να κάνουν απλά έργα και οι έφηβοι να μπορούν γρήγορα να έχουν εκπληκτικά αποτελέσματα. Υπάρχει επίσης ένας αριθμός έμπειρων ενήλικων προγραμματιστών στην κοινότητα του Scratch, που γενικά αναζητούν τρόπους να διδάξουν προγραμματισμό στα παιδιά τους. Οι ενήλικες γενικά αντιδρούν ευνοϊκά στο γρήγορο και εύκολο προγραμματιστικό περιβάλλον, παρά τους σχετικά ισχυρούς περιορισμούς της γλώσσας. Το περιβάλλον χρήστη του περιβάλλοντος ανάπτυξης του Scratch χωρίζει την οθόνη σε πολλαπλές περιοχές: στα αριστερά είναι η παλέτα με τα τμήματα κώδικα, στο κέντρο είναι οι πληροφορίες για την τρέχουσα φιγούρα και η περιοχή των σεναρίων (κώδικα), και στα δεξιά είναι η σκηνή και η λίστα με τις φιγούρες. Η παλέτα των τμημάτων κώδικα έχει τμήματα κώδικα (καλούνται "blocks") που μπορούν να συρθούν πάνω στην περιοχή των σεναρίων για τη δημιουργία προγραμμάτων. Για να διατηρηθεί η παλέτα σε όχι πολύ μεγάλο μέγεθος, οργανώνεται σε 8 ομάδες τμημάτων κώδικα: κίνηση, όψεις, ήχος, πένα, έλεγχος, αισθητήρες, αριθμοί, και μεταβλητές.
Το Περιβάλλον Εργασίας
Η εικόνα που ακολουθεί παρουσιάζει τις βασικές περιοχές του περιβάλλοντος εργασίας του Scratch. Η περιοχή με τη φωτο-γραφία του γηπέδου στα δεξιά είναι η σκηνή, ο χώρος δράσης των αντικειμένων. Ακριβώς από κάτω βρίσκεται η λίστα αντικειμένων και σκηνικών. Στο κέντρο του παραθύρου βρίσκεται ο χώρος στον οποίο εισάγουμε τις εντολές για κάθε αντικείμενο, ενώ στα αριστερά βλέπουμε τις
76
παλέτες
εντολών
από
όπου
βλέπουμε
τις
διαθέσιμες.
Με το εικονίδιο γλώσσας (το πρώτο από αριστερά) αλλάζετε τη γλώσσα της επιφάνειας εργασίας του Scratch. Με το εικονίδιο αποθήκευσης (το δεύτερο από αριστερά) αποθηκεύετε το έργο σας. Με το εικονίδιο μοιράσματος (το τρίτο από αριστερά) ανεβάζετε το έργο σας στον ιστοχώρο του Scratch και το δημοσιοποιείτε στο διαδίκτυο.Από το μενού Αρχείο μπορείτε να δημιουργήσετε ένα νέο έργο, να ανοίξετε ένα αποθηκευμένο έργο και να αποθηκεύσετε το τρέχον έργο σας. Εισαγωγή έργου: εισάγει όλες τις μορφές και τα υπόβαθρα ενός άλλου έργου μέσα στο τρέχον. Αυτό είναι χρήσιμο όταν θέλετε να χρησιμοποιήσετε ταυτόχρονα τις μορφές πολλών έργων. Εξαγωγή μορφής: εξάγει τον ενεργό χαρακτήρα ως αρ-χείο .sprite, το οποίο μπορεί να εισαχθεί σε ένα άλλο έργο. Σημειώσεις έργου: σας επιτρέπει να γράψετε και να αποθηκεύσετε σημειώσεις σχετικά με το έργο σας, όπως περιγραφές των προγραμματιστικών επιλογών σας. Έξοδος: τερματίζει το Scratch. Το μενού Διόρθωσε παρέχει διάφορες λειτουργίες επεξεργασίας του τρέχοντος έργου. Αναίρεση διαγραφής: αναιρεί την τελευταία διαγραφή από ένα τουβλάκι, σενάριο, μορφή, ενδυμασία ή ήχο.
77
Ξεκίνησε απλό βηματισμό: το Scratch τρέχει το έργο σας ένα βήμα κάθε φορά, ενώ ταυτόχρονα επισημαίνεται η τρέχουσα εντολή. Αυτή η λειτουργία είναι χρήσιμη για την εύρεση σφαλμάτων μέσα στο έργο, αλλά και ως βοήθεια σε νέους προγραμματιστές για να αντιληφθούν την πορεία εκτέλεσης ενός προγράμματος. Όρισε απλό βηματισμό: επιλέγετε την ταχύτητα εκτέλεσης βήμα βήμα (αργή ή γρήγορη). Συμπίεσε ήχους και Συμπίεσε εικόνες: μειώνει το μέγεθος του αρχείου του έργου συμπιέζοντας τους ήχους και τις εικόνες του. Αυτό όμως μπορεί να υποβαθμίσει την ποιότητά τους. Εμφάνιση εντολών κινητήρων: εμφανίζει εντολές κινητήρα στην κατηγορία Κίνηση. Με αυτές τις εντολές μπορείτε να προγραμματίσετε έναν κινητήρα συνδεδεμένο στον υπολογιστή σας. (π.χ. LEGO® Education WeDo™ ) Από το μενού Μοιράσου μπορείτε να ανεβάσετε το έργο σας στον ιστοχώρο του Scratch. Από το μενού Βοήθεια έχετε πρόσβαση στη σελίδα βοήθειας με υπερσύνδεσμους σε υλικό αναφοράς, οδηγίες χρήσης και συχνές ερωτήσεις.
3.3 Περιβάλλοντα στο διαδίκτυο 3.3.1 Wikis
Ένα Wiki είναι συνήθως μία ιστοσελίδα που επιτρέπει στους χρήστες της να προσθέσουν, να αφαιρέσουν, ή να επεξεργαστούν το περιεχόμενό της, πολύ γρήγορα και εύκολα, χωρίς να έχουν κάνει υποχρεωτικά εγγραφή. Έτσι, διευκολύνεται η συνεργασία πολλών ατόμων για τη συγγραφή ενός έργου. Ο όρος Wiki όμως, μπορεί να αναφέρεται και στο λογισμικό που χρησιμοποιείται για να κατασκευαστούν Wiki σελίδες. Αυτό που στην ουσία κάνει ένα σύστημα wiki είναι να απλοποιεί τη διαδικασία δημιουργίας σελίδων HTML και να καταγράφει κάθε μεμονωμένη αλλαγή που εμφανίζεται κατά τη διάρκεια του χρόνου, έτσι ώστε σε οποιαδήποτε στιγμή μια σελίδα να μπορεί να επανέλθει σε κάποια από τις προηγούμενες καταστάσεις της. Πολλές φορές το wiki περιλαμβάνει εργαλεία που επιτρέπουν στους χρήστες να παρακολουθούν την κατάστασή του. Μπορεί ακόμη να παρέχει στους χρήστες κάποιο χώρο για να συζητούν διάφορα θέματα όπως για παράδειγμα το περιεχόμενο που προστίθεται στο site. Στο εξωτερικό τα wikis χρησιμοποιούνται στην καθημερινή διδασκαλία γιατί προάγουν τη συνεργασία και την ενεργό μάθηση. Τα περισσότερα wikis επιτρέπουν την πρόσβαση των χρηστών χωρίς κανέναν απολύτως περιορισμό. Έτσι όλοι έχουν το δικαίωμα να συμβάλουν στη συγγραφή του περιεχομένου της ιστοσελίδας χωρίς να υποβληθούν σε διαδικασία "εγγραφής" όπως συνήθως επιβάλλεται σε σελίδες συζητήσεων π.χ. στα περισσότερα forum. Αυτό 78
σημαίνει ότι σε πολλές περιπτώσεις δεν είναι δυνατό να ελεγχθεί η εγκυρότητα των πληροφοριών των wiki σελίδων. Η λέξη Wiki ερμηνεύεται μερικές φορές ως ακρώνυμο για το "What I know is" δηλαδή "Αυτό που εγώ ξέρω είναι". Είναι μια χαρακτηριστική φράση για τον τρόπο λειτουργίας του Wiki: ο κάθε χρήστης που συμμετέχει στη συγγραφή κάποιου έργου προσθέτει την προσωπική του γνώση, έτσι ώστε όλοι να μπορούν να τη μοιράζονται. Αν θα θέλαμε να συνοψίσουμε τα οφέλη της χρήσης των wikis στην εκπαίδευση, θα καταλήγαμε στα παρακάτω: Οι μαθητές χρησιμοποιώντας το wiki μπορούν να:
Βελτιώσουν την ικανότητα τους ως προς τη σύνταξη ενός κειμένου
Κατανοήσουν την αξία που έχει η ακρίβεια της έκφρασης και η ορθή μετάδοση της πληροφορίας, μέσα από τη διαδικασία αναθεώρησης και επανεξέτασης
Βελτιωθούν στο δημιουργικό γράψιμο, απευθυνόμενοι σε ένα πραγματικό κοινό
Αναπτύξουν δημιουργικές δεξιότητες επεξεργασίας του λόγου, είτε μέσω της συγγραφής είτε μέσω της επεξεργασίας άλλων αναρτήσεων
Κατανοήσουν τη συνέχεια στη δημιουργική εξέλιξη ενός πνευματικού έργου
Λειτουργήσουν ερευνητικά μέσω της δημιουργικής επεξεργασίας και αναλυτικής σκέψης
Δεσμεύονται σε μεγαλύτερο βαθμό απ’ ότι στην παραδοσιακή διδασκαλία
Αναλαμβάνουν ενεργό ρόλο στην πρόσληψη της γνώσης
Συνδέουν την παλαιά με τη νέα γνώση, δημιουργώντας νέες δομές για τις πληροφορίες και τις ιδέες
Μαθαίνουν να ερευνούν και να προσεγγίζουν κριτικά την πληροφορία
Αναπτύσσουν διαπροσωπικές και επικοινωνιακές δεξιότητες
Μαθαίνουν να εργάζονται ομαδικά
Αναπτύσσουν ικανότητες διαχείρισης προβλημάτων .
79
3.3.2 Περιβάλλον ΙΡΙΣ Το περιβάλλον ΙΡΙΣ (www.compupress.gr/iris) προσφέρει τη δυνατότητα για επικοινωνία, δημιουργική επεξεργασία πληροφορίας και διερεύνησης εννοιών μέσα από την επίλυση προβλημάτων, την εκπόνηση σχετικών εργασιών και την ενεργή ενασχόληση με ειδικά σχεδιασμένα εργαλεία που επιτρέπουν κατασκευή, πειραματισμό, γραμμική και ελεύθερη σχεδίαση. Οι παραπάνω διεργασίες μπορούν να επιτευχθούν μέσα από τρεις αλληλοσυνδεόμενους χώρους, το χώρο της Δημιουργίας, τον χώρο της Πληροφορίας και τον χώρο της Επικοινωνίας. Στη "Δημιουργία" οι μαθητές και οι μαθήτριες καλούνται να ασχοληθούν με την επίλυση προβλημάτων και την εκπόνηση εργασιών. Εδώ βρίσκονται και τα εργαλεία του τοπικού λογισμικού με τα οποία μπορούμε να κατασκευάσουμε ελεύθερα και γραμμικά σχέδια και να πειραματιστούμε με τη γεωμετρία των σχημάτων, τη χρήση χρωμάτων και τη φόρμα. Στην "Πληροφορία" μπορούμε να αναζητήσουμε πληροφορίες αλλά και να καταχωρίσουμε νέα στοιχεία σε μορφή εικόνας, κειμένου και ήχου. Τέλος στην "Επικοινωνία" μπορούμε να πάρουμε μέρος σε μια σειρά συζητήσεων για θέματα που αφορούν τις δραστηριότητες αλλά και γενικότερης φύσης. Τέλος με το εργαλείο της Αναζήτησης μπορεί να εντοπιστεί το υλικό που ενδιαφέρει, ενώ στο Σημειωματάριο καταχωρούνται σε δενδρική δομή οι προσωπικές σημειώσεις των χρηστών. Οι τρεις αυτοί χώροι είναι αλληλοσυνδεόμενοι. Για παράδειγμα όταν οι χρήστες εργάζονται στο χώρο της Δημιουργίας, όπου έρχονται να επιλύσουν κάποια προβλήματα, έχουν την ευχέρεια να επισκέπτονται τους άλλους είτε για να αναζητήσουν μια χρήσιμη πληροφορία, είτε για να επικοινωνήσουν με άλλους χρήστες σε θέματα που επεξεργάζονται.
3.4 Τα ρομποτικά συστήματα Mindstorms 3.4.1 Η ρομποτική στην εκπαίδευση Γενικά, η Ρομποτική (Robotics) είναι κλάδος της τεχνολογίας που ασχολείται με τη σχεδίαση, την ανάπτυξη και τη μελέτη ρομπότ. Η επιστήμη της Ρομποτικής αποτελεί συνδυασμό πολλών άλλων επιστημών, κυρίως δε της πληροφορικής, της ηλεκτρονικής και της μηχανολογίας. Η λέξη ρομπότ (Robot) προέρχεται από το Σλαβικό robota που σημαίνει εργασία. Τα ρομπότ είναι αυτόματες μηχανές με προγραμματισμένη συμπεριφορά, η χρήση των οποίων αποσκοπεί στην αντικατάσταση του ανθρώπου στην εκτέλεση έργου, τόσο σε φυσικό επίπεδο όσο και σε επίπεδο λήψης αποφάσεων. Το ρομπότ μπορεί να χρησιμοποιηθεί στην εκπαίδευση - στην Πρωτοβάθμια, Δευτεροβάθμια ακόμα και στην Τριτοβάθμια εκπαίδευση - αλλά και εκτός σχολείου ως ένα αποτελεσματικό εργαλείο για την ανάπτυξη γνωστικών δομών από τα παιδιά. 80
Η εκπαίδευση με τη ρομποτική πραγματοποιείται με την ενεργή συμμετοχή των μαθητών ή φοιτητών οι οποίοι δουλεύουν σε ομάδες χρησιμοποιώντας ένα εκπαιδευτικό πακέτο που περιέχει επεξεργαστή (μυαλό), αισθητήρες (αισθήσεις) ως εισόδους της κατασκευής, κινητήρες ως εξόδους και δομικά στοιχεία για την ολοκλήρωση της κατασκευής. Η ενασχόληση με τη ρομποτική ενέχει δύο ειδών δραστηριότητες: μια κατασκευαστική και μια προγραμματιστική. Οι διδασκόμενοι κατασκευάζουν ρομποτικές κατασκευές και στη συνέχεια τις προγραμματίζουν ώστε να δώσουν λύσεις σε αυθεντικά προβλήματα που θέτει ο εκπαιδευτικός με κριτήριο τις εμπειρίες τους, τα ενδιαφέροντα και τις ανάγκες τους. H φιλοσοφία σχεδίασης του εκπαιδευτικού υλικού της Lego στηρίζεται στην άποψη ότι το παιδί πρέπει από μόνο του να οικοδομεί τη γνώση (Papert) και ειδικότερα στην άποψη ότι η μάθηση επέρχεται μέσα από το παιχνίδι (“learning through play”) (Hussain at al., 2006; LEGO Dacta A/S, 1999). Στόχος της χρήσης των LΜ επομένως είναι η ενσωμάτωση του παιχνιδιού στην εκπαιδευτική διαδικασία, δίνοντας τη δυνατότητα στο μαθητή να διασκεδάσει και να χρησιμοποιήσει τη φαντασία του.
3.4.2 Σχετικά με τα LEGO MINDSTORMS:
Τα Lego Mindstorms είναι μια γραμμή παραγωγής της Lego που συνδυάζει προγραμματιζόμενα τούβλα με ηλεκτρικές μηχανές, αισθητήρες, τούβλα Lego, και τεχνικά κομμάτια Lego (όπως εργαλεία, άξονες, ακτίνες, και υδραυλικά μέρη) κατάλληλα για να χτίσει ο χρήστης ρομπότ και άλλα αυτοματοποιημένα ή αλληλεπιδραστικά συστήματα. Η πρώτη λιανική έκδοση των Lego Mindstorms κυκλοφόρησε το 1998 και πωλήθηκε εμπορικά με την επωνυμία Robotics Invention System (RIS). Η τρέχουσα έκδοση κυκλοφόρησε το 2006 ως Lego Mindstorms NXT. Η αρχική έκδοση Mindstorms Robotics Invention System περιείχε δύο μηχανές, δύο αισθητήρες αφής, και έναν ελαφρύ αισθητήρα. Η έκδοση NXT έχει τρεις σερβομηχανές και τέσσερις αισθητήρες για την αφή, το φως, τον ήχο, και την απόσταση. Τα Lego Mindstorms μπορούν να χρησιμοποιηθούν για να κατασκευαστεί ένα μοντέλο ενσωματωμένου συστήματος με ηλεκτρομηχανικά μέρη ελεγχόμενα από υπολογιστή. Πολλά είδη πραγματικών ενσωματωμένων συστημάτων, από ελεγκτές ανελκυστήρων έως βιομηχανικά ρομπότ, μπορούν να διαμορφωθούν χρησιμοποιώντας τα Mindstorms. Η πρώτη γενιά LEGO Mindstorms χτίστηκε γύρω από το κομμάτι της LEGO με τη μορφή τούβλου γνωστό ως RCX. Το RCX περιέχει έναν μικροελεγκτή Renesas H8/300 ως εσωτερική ΚΜΕ του. Το τούβλο προγραμματίζεται με τη φόρτωση ενός προγράμματος (που γράφεται σε μια από τις διαθέσιμες γλώσσες προγραμματισμού) από ένα PC ή MAC στη RAM του τούβλου μέσω μιας ειδικής υπέρυθρης διεπαφής (IR). 81
Αφότου αρχίσει ο χρήστης ένα πρόγραμμα, μια δημιουργία των RCX Mindstorms μπορεί να λειτουργήσει από μόνη της, ενεργώντας στα εσωτερικά και εξωτερικά ερεθίσματα σύμφωνα με τις προγραμματισμένες οδηγίες. Επίσης, δύο ή περισσότερα τούβλα RCX μπορούν να επικοινωνήσουν το ένα με το άλλο μέσω της διεπαφής IR, επιτρέποντας τη συνεργασία ή τον ανταγωνισμό μεταξύ των τούβλων. Εκτός από τη θύρα IR, υπάρχουν τρεις θύρες εισαγωγής αισθητήρων και τρεις θύρες σύνδεσης μηχανών (μπορούν επίσης να χρησιμοποιηθούν για τους λαμπτήρες, κ.λπ.). Υπάρχει επίσης μία LCD που μπορεί να εμφανίζει το επίπεδο φόρτισης των μπαταριών, την κατάσταση των θυρών εισόδου-εξόδου, ποιο πρόγραμμα εκτελείται, και άλλες πληροφορίες. Τα τούβλα RCX έκδοσης 1.0 διαθέτουν παροχή ρεύματος για να επιτρέπουν τη συνεχή λειτουργία αντί της λειτουργίας περιορισμένου χρόνου κατά τη χρησιμοποίηση μπαταριών. Στην έκδοση RCX 2.0, η παροχή ρεύματος αφαιρέθηκε. Τα τούβλα RCX με παροχή ρεύματος είναι δημοφιλή για τα στατικά προγράμματα ρομποτικής (όπως τα ρομπότ βραχίονες) ή για τα πρότυπα μοντέλα τρένων Lego.
3.4.3 Κατασκευή του RCX
RCX
Το RCX (Robotic Control X), είναι ένας αυτόνομος μικροελεγκτής που μπορεί να προγραμματιστεί χρησιμοποιώντας τον υπολογιστή. Το RCX χρησιμεύει ως ο εγκέφαλος των εφευρέσεων LEGO MINDSTORMS. Χρησιμοποιεί τους αισθητήρες που παρέχουν τα Mindstorms ως είσοδο από το περιβάλλον του, επεξεργάζεται αυτά τα στοιχεία, και με βάση αυτά δίνει κίνηση στους κινητήρες.
82
Οι χρήστες χτίζουν αρχικά το ρομπότ τους χρησιμοποιώντας τα κομμάτια LEGO και το RCX. Κατόπιν δημιουργούν ένα πρόγραμμα της αρεσκείας τους χρησιμοποιώντας όποια διαθέσιμη γλώσσα θέλουν (Robolab, NQC ή LEJOS) και το φορτώνουν στο RCX χρησιμοποιώντας μια ειδική υπέρυθρη συσκευή αποστολής σημάτων. Η δημιουργία τους μπορεί πλέον να αλληλεπιδράσει με το περιβάλλον, πλήρως αυτόνομα. Η επικοινωνία γίνεται με τη βοήθεια του υπέρυθρου φωτός. Ένας υπέρυθρος αισθητήρας συνδέεται σε σειριακή θύρα ή σε θύρα USB. Μια ασύρματη σύνδεση με το ίδιο το RCX του επιτρέπει να κινηθεί ελεύθερα, ειδικά ως τμήμα της κίνησης των οχημάτων ρομπότ. Το RCX έχει τρεις θύρες εισόδου για αισθητήρες (π.χ. αισθητήρα αφής ή αισθητήρα φωτός) και τρεις θύρες εξόδου (π.χ. για τους κινητήρες ή για τα λαμπάκια).
3.4.4 Lego Mindstorms NXT
Η Lego Mindstorms NXT είναι η δεύτερη γενιά της ρομποτικής προϊόντων από την ομάδα LEGO, η οποία ξεκίνησε την πρώτη γενιά των LEGO MINDSTORMS προϊόντων το 1998 με τα Lego Mindstorms Ρομποτικό Σύστημα εφεύρεση.Η Lego Mindstorms NXT ξεκίνησε το 2006, με την πρώτη έκδοση της ρομποτικής εργαλείων, το NXT 1,0, η οποία ήταν μια τεράστια επιτυχία, την εισαγωγή entry-level ρομποτική στα παιδιά από την ηλικία των 10 και πάνω, με το υλικό state-of-the-art και εύκολο στη χρήση λογισμικό προγραμματισμού.Η Lego Mindstorms NXT 2,0 συνδυάζει την απεριόριστη ευελιξία του συστήματος LEGO κτιρίου με ένα έξυπνο τούβλο μικροϋπολογιστή και διαισθητική drag-and-drop λογισμικό προγραμματισμού. Το ΝΧΤ βασίζεται στο επιτυχημένο Robotics System Invention της εταιρείας, το οποίο έχει βελτιωθεί με την πρόσθεση νέων τεχνολογιών και αισθητήρων αυξημένων ικανοτήτων. Το «τουβλάκι» ΝΧΤ που αποτελεί τον εγκέφαλο του ρομπότ είναι ένας αυτόνομος μικροεπεξεργαστής των 32 bit (σε αντίθεση με τα 16 bit της πρώτης γενιάς), ο οποίος μπορεί να προγραμματιστεί μέσω ηλεκτρονικού υπολογιστή PC ή άλλη καινοτομία - Mac. Αφού κατασκευάσει το ρομπότ του, ο χρήστης δημιουργεί ένα δικό του πρόγραμμα χρησιμοποιώντας ένα εύχρηστο αλλά πλούσιο σε χαρακτηριστικά λογισμικό LabVIEW, το οποίο έχει σχεδιαστεί από τη National Instruments.
83
Lego NXT a dog
Όλα είναι υπέροχα αλλά αυτό είναι το αγαπημένο των παιδιών που έχουν πολλά διαβάσματα,το ρομπότ γραφητίρας:
84
ΚΕΦΑΛΑΙΟ 4 Παρουσίαση προγραμμάτων για τη διδασκαλία των βασικών αρχών του προγραμματισμου με τη LOGO και το SCRATCH
4
4.1 Πρόγραμμα σε LOGO
Στην πρόταση διδασκαλίας, που παρουσιάζεται στη συνέχεια, επιδιώκεται η εισαγωγή της επαναληπτικής δομής σε αρχάριους προγραμματιστές εμπλέκοντας ενεργά τους μαθητές σε δραστηριότητες και ανακαλώντας την πρότερη εμπειρία των μαθητών σχετικά με επανα λαμβανόμενες διαδικασίες από την καθημερινή ζωή. Με τον τρόπο αυτό στοχεύουμε να προετοιμάσουμε και να διευκολύνουμε την εισαγωγή της προγραμματιστικής δομής της επανάληψης με τον τυποποιημένο τρόπο μιας γλώσσας προγραμματισμού. Ιδιαίτερα η επαναληπτική δομή που υιοθετεί η Logo διαθέτει χαρακτηριστικά που προσομοιάζουν στον τρόπο με τον οποίο χρησιμοποιούμε την επανάληψη στην καθημερινή μας ζωή, δηλαδή εκτέλεση μιας λίστας εντολών κατά τον καθορισμένο αριθμό επαναλήψεων. Συγκεκριμένα, οι μαθητές για να υλοποιήσουν μία επανάληψη σε γλώσσα Logo χρησιμοποιούν την εντολή επανάλαβε αριθμός_επαναλήψεων [λίστα-εντολών] όπου πρέπει να ορίσουν τον αριθμό των επαναλήψεων και τις εντολές/οδηγίες που θα πρέπει να επαναληφθούν.Επιπλέον οι μαθητές θα έρθουν σε επαφή και θα κατανοήσουν την έννοια της διαδικασίας. Οι μαθητές παρακολουθούν τη δημιουργία ενός λουλουδιού, χρησιμοποιώντας 3 διαδικασίες (toxo, petalo, louloudi) και την εντολή επανάληψης REPEAT : Στον editor γράφουμε: to toxo REPEAT 90 [ FD 1 RT 1 ] end
to petalo toxo RT 90 85
toxo RT 45 end
to louloudi REPEAT 10 [petalo] end
Οι μαθητές καλούνται στη συνέχεια να αναγνωρίσουν στον κώδικα τις εντολές που υλοποιούν την επανάληψη και τα χαρακτηριστικά της επανάληψης έχουν οριστεί. Τα αποτελέσματα παρόμοιας εργασίας που είχε δοθεί σε παιδιά του Δημοτικού για υλοποίηση έδειξαν οτι, η μετάβαση σε μια τυποποιημένη μορφή της επαναληπτικής δομής έγινε άμεσα αντιληπτή από τους μαθητές και πως οι μαθητές ενεπλάκησαν ενεργά στην εκπαιδευτική/μαθησιακή διαδικασία, εισήχθησαν ομαλά στην έννοια της επανάληψης, και έδειξαν ενδιαφέρον για πειραματισμό με τη λειτουργία της επαναληπτικής δομής στο περιβάλλον MSWLogo. 86
4.2 Προγράμματα σε Scratch 4.2.1 Ένα παιχνίδι στο Scratch
Το σενάριο του παιχνιδιού Το σκηνικό του παιχνιδιού είναι ο βυθός και οι χαρακτήρες του παιχνιδιού είναι πέντε ψάρια, ένα μεγάλο και τέσσερα μικρά. Ο παίκτης του παιχνιδιού προσπαθεί πατώντας τα βελάκια του πληκτρολογίου να κατευθύνει το μεγάλο ψάρι πάνω στα μικρότερα ψάρια τα οποία κινούνται με τυχαία κίνηση στο βυθό για να τα φάει. Κάθε φορά που το μεγάλο ψάρι τρώει ένα μικρό, αυτό εξαφανίζεται και ταυτόχρονα το σκορ που καταγράφεται σε μία μεταβλητή, αυξάνεται κατά μία μονάδα. Το παιχνίδι ολοκληρώνεται όταν το μεγάλο ψάρι φάει και τα τέσσερα ψαράκια.
Τρόπος δημιουργίας του κώδικα
Αρχικά σχεδίασα το φόντο του παιχνιδιού. Το φόντο είναι έτοιμο, σε λευκό χρώμα στην Περιοχή των Μορφών. Με απλή επιλογή πάνω του αυτό εμφανίζεται στην Περιοχή του Κώδικα και με το πλήκτρο της διόρθωσης καλούμε το ενσωματωμένο Πρόγραμμα Ζωγραφικής που διαθέτει η Scratch. Έτσι σχεδιάζουμε το βυθό όπως το επιθυμούμε ή βάζουμε για φόντο μία εικόνα από τον υπολογιστή μας εάν θέλουμε. Κατόπιν, πηγαίνουμε πάλι στην Περιοχή Μορφών και ανοίγουμε τον φάκελο με έτοιμες φιγούρες που διαθέτει η Scratch. Εκεί επιλέγουμε τα ψάρια που θέλουμε και ανοίγοντας και πάλι το Πρόγραμμα Ζωγραφικής τα μορφοποιούμε όπως επιθυμούμε. Ο κώδικας ξεκινά επιλέγοντας το μεγάλο ψάρι στην Περιοχή Μορφών και σύροντας το τουβλάκι-εντολή από την Περιοχή Εντολών στην Περιοχή του Κώδικα. Το πρώτο τουβλάκι είναι το “Για πάντα” που επαναλαμβάνει οτιδήποτε περικλείεται μέσα σε αυτό για όσο διάστημα διαρκεί το πρόγραμμα. Κατόπιν, καθορίζουμε την κίνηση του μεγάλου ψαριού μέσα από τα βελάκια του πληκτρολογίου και έτσι ο παίκτης ελέγχει τις κινήσεις του μεγάλου ψαριού. Η κίνηση των μικρών ψαριών, επειδή γίνεται τυχαίο και όχι με ελεγχόμενο τρόπο όπως του μεγάλου ψαριού, προγραμματίζεται με το τουβλάκι-εντολή “Στρίψε”.
87
Ο κώδικας που δημιουργήσαμε για να τρώει το μεγάλο ψάρι το μικρό έγινε με την εντολή “Εάν” και μέσα σε αυτή ενσωματώσαμε την εντολή “Αγγίζει” από την ομάδα Αισθητήρες. Με αυτή την εντολή, αν το Καφέ χρώμα που υπάρχει μόνο στο στόμα του μεγάλου ψαριού, αγγίξει το κόκκινο, που υπάρχει μόνο στα ψαράκια, τότε το ψαράκι θα εξαφανιστεί. δηλαδή, η εξαφάνιση των ψαριών οφείλεται στην επαφή των δύο χρωμάτων και όχι στο απλό άγγιγμα των δύο ψαριών. Κατόπιν από την ομάδα εντολών Μεταβλητές δημιουργούμε τη μεταβλητή με το όνομα “Ψάρια”. Η μεταβλητή αυτή ξεκινά με αρχική τιμή μηδέν και αυξάνεται κατά μία μονάδα κάθε φορά που το μεγάλο ψάρι τρώει ένα μικρό. Όταν η μεταβλητή Ψάρια αποκτήσει την τιμή Τέσσερα (4), τότε το φόντο αλλάζει και το παιχνίδι σταματά. Εφόσον πατηθεί η πράσινη σημαία το παιχνίδι ξαναρχίζει από την αρχή.
88
Με τη δημιουργία του παιχνιδιού δίνεται η ευκαιρία στους μαθητές να γνωρίσουν τη γλώσσα προγραμματισμού Scratch. Να δουν από απλές και γνώριμες δυνατότητες της Scratch όπως είναι το ενσωματωμένο πρόγραμμα ζωγραφικής και ήχου που διαθέτει, έως νέες και δύσκολες έννοιες προγραμματισμού όπως είναι οι τεχνικές επανάληψης, επιλογής και οι μεταβλητές. Ταυτόχρονα να κατανοήσουν πως σχεδιάζεται και πως λειτουργεί ένα απλό παιχνίδι. Κυρίως όμως να καταλάβουν ότι με τον προγραμματισμό αναπτύσσεται η αναλυτική σκέψη και η δημιουργικότητά τους.
4.2.2 Εκμάθηνση αλγορίθμων ταξινόμησης με χρήση του SCRATCH
4.2.2.1 Ταξινόμηση φυσαλίδας
Η ταξινόμηση φυσαλίδας (bubble sort) συνιστά μία από τις δημοφιλείς μεθόδους ταξινόμησης. Ο αλγόριθμος λειτουργεί συγκρίνοντας σταδιακά τα στοιχεία ενός πίνακα και εναλλάσσοντας τα ώστε να βρεθούν σε σωστή σειρά. Τα βήματα επαναλαμβάνονται μέχρι να ταξινομηθεί ολόκληρος ο πίνακας. Στο πρώτο πέρασμα του πίνακα ξεκινάμε από το κάτω μέρος του πίνακα, δηλαδή από το τέλος του, και πραγματοποιούμε διαδοχικές συγκρίσεις γειτονικών στοιχείων. Σε κάθε ζευγάρι 89
στοιχείων που συναντάμε, αν το από κάτω είναι μικρότερο-“ελαφρύτερο”, πηγαίνει από πάνω. Όταν ολοκληρωθεί το πρώτο πέρασμα, η πιο ελαφριά φυσαλίδα, δηλαδή ο μικρότερος αριθμός του πίνακα, βρίσκεται στην κορυφή. Στο δεύτερο πέρασμα του πίνακα ξεκινάμε και πάλι από το κάτω μέρος του πίνακα και πραγματοποιούμε διαδοχικές συγκρίσεις μεταξύ γειτονικών στοιχείων. Σε κάθε ζευγάρι στοιχείων που συναντάμε, αν το από κάτω είναι μικρότερο-“ελαφρύτερο”, πηγαίνει από πάνω. Γνωρίζουμε ότι η πάνω-πάνω θέση του πίνακα έχει καταληφθεί από το μικρότερο στο πρώτο πέρασμα, οπότε δεν έχει νόημα να φτάσουμε ως εκεί. Όταν ολοκληρωθεί το δεύτερο πέρασμα, η δεύτερη πιο ελαφριά φυσαλίδα βρίσκεται στη δεύτερη θέση του πίνακα. Παρατηρούμε ότι απαιτείται ένα βήμα λιγότερο, αφού η σύγκριση των δύο πάνω στοιχείων δεν έχει νόημα. Το πλεονέκτημα του Scratch είναι οτι όλη η δομή του αλγορίθμου είναι χτισμένη με τουβλάκια, διακρίνονται τα βασικά στοιχεία του αλγορίθμου, πχ που γίνεται επανάληψη και τη περιλαμβάνει. Ο μαθητής αναγνωρίζει τον συνολικό αριθμό των επαναλήψεων εύκολα. Βοηθάει την εκτίμηση απόδοσης του αλγορίθμου Κάθε φορά που εκτελείται ένα βήμα το scratch ανάβει την αντίστοιχη δομή του βήματος στον αλγόριθμο, βοηθώντας τους μαθητές να ακολουθήσουν νοητικά την συλλογιστική πορεία. Ο μαθητής επιβεβαιώνει την αλγοριθμική του σκέψη. Για φθίνουσα σειρά, ο μαθητής μπορεί να αλλάξει απλα την ανισότητα και να επανεκτελέσει το πρόγραμμα. Παρατηρούμε πως όσο αυξάνονται τα περάσματα του πίνακα, μειώνονται οι συγκρίσεις μέσα στη δεύτερη επανάληψη, γιατί δεν έχει νόημα να συγκρίνουμε μεταξύ τους τα στοιχεία που έχουν ήδη ανέβει στην κορυφή του πίνακα, μιας και αυτά είναι ήδη ταξινομημένα. Ο μαθητής μπορει να αφαιρέσει το τουβλάκι να δει αν υπάρχει διαφορά χωρις να επέμβει στον υπόλοιπο αλγόριθμο.
90
Tαξινόμηση φυσαλίδας
4.2.2.2 Η ταξινόμηση επιλογής (selection sort)
Αποτελεί μάλλον την πιο απλή και διαισθητική μέθοδο ταξινόμησης. Στην περίπτωση ταξινόμησης σε αύξουσα σειρά, ο αλγόριθμος βρίσκει το εκάστοτε ελάχιστο στοιχείο του πίνακα και το τοποθετεί στην σωστή του θέση όπως περιγράφεται στη συνέχεια. στο πρώτο βήμα, βρίσκουμε το ελάχιστο στοιχείο του πίνακα και το αντικαθιστούμε με το στοιχείο στην πρώτη θέση του πίνακα. Στο επόμενο βήμα, βρίσκουμε το δεύτερο μικρότερο στοιχείο και το αντικαθιστούμε με το στοιχείο στη δεύτερη θέση κ.ο.κ. Το πλεονέκτημα του Scratch είναι οτι λογω της δυνατοτητας να τρέξει με όσες διαφορετικες λίστες θέλει, ο μαθητής μπορει να δώσει ύστερα από υπόδειξη του καθηγητή μία ήδη ταξινομημένη λίστα, και να παρατηρήσει ότι ο πίνακας θα σαρωθεί 91
τόσες φορές όσες και το μέγεθος του πίνακα – ακόμη και αν τα στοιχεία είναι εξαρχής ταξινομημένα.
Ταξινόμηση επιλογής
92
Συμπεράσματα
Συμπερασματικά θα λέγαμε πως τα παιδιά, προγραμματίζοντας στον υπολογιστή, διερευνούν διαδικασίες σκέψης και τρόπους μάθησης, έτσι ώστε να λειτουργούν, τηρουμένων των αναλογιών, ως ψυχολόγοι και επιστημολόγοι. Δεν υπάρχει αμφιβολία ότι με την εισαγωγή των υπολογιστών στην εκπαίδευση θα επηρεαστεί ο τρόπος με τον οποίο τα παιδιά σκέπτονται και μαθαίνουν και πιθανόν να αλλάξουν οι μέθοδοι προσπέλασης της γνώσης, καθώς και οι κοινωνικές τους σχέσεις. Η ανάπτυξη και εφαρμογή ενός ολοκληρωμένου πλαισίου διδασκαλίας του προγραμματισμού στο Γυμνάσιο αποτελεί σήμερα επιτακτική ανάγκη. Είναι όμως προφανές ότι τα αντικείμενα της Πληροφορικής, και ειδικότερα ο προγραμματισμός, δεν μπορούν να προσεγγισθούν αποτελεσματικά με βάση τα παραδοσιακά διδακτικά μοντέλα, όπου ο δάσκαλος αποτελεί το φορέα γνώσης και ο μαθητής τον παθητικό αποδέκτη. Η διδασκαλία της πληροφορικής στο Γυμνάσιο θα πρέπει να έχει ως αφετηρία τις νέες τεχνολογίες του διαδικτύου και ειδικότερα τη χρήση των δημιουργικών προγραμμάτων Logo και SCRATCH ,τα οποία σκοπό έχουν να εισάγουν το μαθητή στις βασικές έννοιες και αρχές του προγραμματισμού με διασκεδαστικό τρόπο και στη συνέχεια τον καθηγητή , ο οποίος καλείται να μεταδώσει στους μαθητές γνώσεις και δεξιότητες που έχουν να κάνουν με την Πληροφορική .
93
Αναφορές και Βιβλιογραφία
Σταχτέας Χαράλαμπος , ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ , Οι υπολογιστές στο σχολείο του μέλλοντος. Τμήμα Μηχανικών Η/Υ , Δικτύων και Τηλεπικοινωνιων , Πανεπιστήμιο Θεσσαλίας , ΔΗΜΙΟΥΡΓΩ ΠΑΙΧΝΙΔΙΑ ΣΤΟ SCRATCH. http://el.wikibooks.org/wiki/Προγραμματισμός για παιδιά με το Kturtle Ειρήνη Βιδάκη , Τακούλη Ελένη , Η ΓΛΩΣΣΑ LOGO ΩΣ ΠΑΡΑΔΕΙΓΜΑ ΔΟΜΗΤΙΣΤΙΚΗΣ ΜΑΘΗΣΗΣ. Καλλιρόη Δογάνη ,Ιωάννης Στάης ,SCRATCH, ΕΝΟΤΗΤΑ :ΤΑΞΙΝΟΜΗΣΗ http://scratchplay.wikispaces.com http://pliroforikiatschool.blogspot.gr/2011/01/10.html Τζιμογιάννης Αθανάσιος ,Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ: ΠΡΟΣ ΕΝΑ ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΑΙΣΙΟ ΜΕ ΣΤΟΧΟ ΤΗΝ ΑΝΑΠΤΥΞΗ ΔΕΞΙΟΤΗΤΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ http://el.wikipedia.org http://www.sepe.gr/ http://makolas.blogspot.gr/ Παν. Γ. Μιχαηλίδης, Αναπληρωτής Καθηγητής του Πανεπιστημίου Κρήτης ,ΕΚΠΑΙΔΕΥΣΗ ΚΑI ΠΛΗΡΟΦΟΡΙΚΗ Κόμης Β. & Μικρόπουλος Τ. Α. (2001), Πληροφορική στην Εκπαίδευση, Ελληνικό Ανοικτό Πανεπιστήμιο . Κ. Γλέζου, Γ. Μπιρμπίλης, Μ. Γρηγοριάδου,”Εναλλακτική διδακτική προσέγγιση εισαγωγής στον προγραμματισμό και στη Logo με αξιοποίηση προκατασκευασμένων μικρόκοσμων”. Κατερίνα Καγκάνη, Βασίλειος Δαγδιλέλης, Μάγια Σατρατζέμη, Γιώργος Ευαγγελίδης , ” Μια Μελέτη Περίπτωσης της Διδασκαλίας του Προγραμματισμού στη Δευτερο/μια Εκπαίδευση με τα LEGO Mindstorms “. http://www.saragiotis.gr/posts/tag/διαδικτυακά-εκπαιδευτικά-περιβάλλον/ Γεώργιος Ερρίκος Χλαπάνης, , Αγγελική Δημητρακοπούλου, Η ΧΡΗΣΗ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΕΚΠΑΙΔΕΥΤΙΚΗ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑ ΤΗΣ ΔΕΥΤΕΡΟΒΑΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ. http://users.sch.gr/glezou/yliko/abakio/2005_abakio_GLEZOU_present.htm http://e-slate.cti.gr/ Βασιλική Καψιμάλη, Δημήτριος Γ. Σάμψων, “Πιλοτική Μελέτη Περίπτωσης Αξιοποίησης του Εργαλείου Scratch στην Σχολική Εκπαίδευση”. http://peiramatismoi.wikispaces.com/ABAKIO http://users.sch.gr/ikomninou/wiki%20final/_wikis____.html http://mindstorms.lego.com/en-us/Default.aspx http://samoladas.wordpress.com/tag/logo/
94
Γ. Φεσάκης, Ελ. Μαυρουδή, Τσ. Καράκιζα, ΓΝΩΡΙΜΙΑ ΜΕ ΤΗ LOGO ΚΑΙΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ MSWLOGO. http://dreamteam.wikidot.com/history http://www.slideshare.net/nmpako/lego-mindstormsrobolab http://vasilikoula-markou.blogspot.gr/2012/04/lego-mindstorms.html Τσιτουρίδου Μ. (1991). “Δυνατότητες και προβλήματα στην προοπτική ενσωμάτωσης των Η/Υ στο ελληνικό σχολείο”. http://shallwelearn.com/index.php/en/ Π.Πολίτης, “Τεχνολογίες Πληροφορίας και Επικοινωνίας (ΤΠΕ) στην Εκπαίδευση”. http://nward.com/ict/scratch/scratch_vs_logo.htm http://edurobotics.weebly.com/chirho942sigmaiotamuomicronupsilonlambdaiotakappa972.html www.pi-schools.gr Μπαβελής Ανδρέας,Σχολικοός Σύμβουλος Π.Ε. ,ΟΙ ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΠΡΟΒΛΗΜΑΤΑ ΚΑΙ ΠΡΟΟΠΤΙΚΕΣ. http://blogs.sch.gr/glezou/Χαρακτηριστικά της γλώσσας προγραμματισμού Logo Φεσάκης, Γ.& Σεραφείμ, Κ. (2009). “Μάθηση προγραμματισμού ΗΥ από εκκολαπτόμενους εκπαιδευτικούς με το SCRATCH”. http://www.smartedu.gr/smartboard http://scratch.mit.edu/
95