Εισαγωγή στη Διδακτική της Πληροφορικής
Η διδασκαλία της Πληροφορικής αποδείχτηκε περίπλοκη στη διδακτική πράξη. Πολλοί μαθητές και σπουδαστές αντιμετωπίζουν προβλήματα κατανόησης εννοιών, παρανόησης των χρησιμοποιούμενων τεχνικών, δυσκολίες στην επιλογή της κατάλληλης μεθόδου όταν καλούνται να αντιμετωπίσουν μια προβληματική κατάσταση. Η διαπίστωση αυτή κατέστησε αναγκαία τη συστηματική διερεύνηση των θεμάτων που σχετίζονται με τη διδασκαλία/εκμάθηση τα Πληροφορικής, έτσι ώστε τελικά η διδασκαλία της να καταστεί πιο αποτελεσματική, δηλαδή οι μαθητές ή σπουδαστές να μαθαίνουν «καλύτερα». Στην παρούσα ενότητα θα παρουσιαστούν μερικές έννοιες από τη Διδακτική της Πληροφορικής, τον κλάδο δηλαδή που ερευνά τα θέματα που σχετίζονται με τη διδασκαλία της Πληροφορικής.
Έμφαση θα δοθεί στη διδασκαλία του προγραμματισμού - ενός κλάδου της Πληροφορικής που έχει προφανώς κεντρική σημασία.
Στη συνέχεια, βασισμένο πάνω στη θεωρία αυτή, θα δοθεί ένα πλαίσιο για μια ιδιαίτερη κατηγορία λογισμικών που χρησιμοποιούνται στη διδασκαλία, τους λεγόμενους προγραμματιστικούς μικρόκοσμους.
Στο τελευταίο τμήμα παρουσιάζονται ορισμένοι προγραμματιστικοί μικρόκοσμοι και τρόποι με τους οποίους μπορούν να χρησιμοποιηθούν στη διδασκαλία.
Έμφαση θα δοθεί στη διδασκαλία του προγραμματισμού - ενός κλάδου της Πληροφορικής που έχει προφανώς κεντρική σημασία.
Στη συνέχεια, βασισμένο πάνω στη θεωρία αυτή, θα δοθεί ένα πλαίσιο για μια ιδιαίτερη κατηγορία λογισμικών που χρησιμοποιούνται στη διδασκαλία, τους λεγόμενους προγραμματιστικούς μικρόκοσμους.
Στο τελευταίο τμήμα παρουσιάζονται ορισμένοι προγραμματιστικοί μικρόκοσμοι και τρόποι με τους οποίους μπορούν να χρησιμοποιηθούν στη διδασκαλία.
Θεωρητικές έννοιες από την Διδακτική της Πληροφορικής
Η ανάγκη για ένα θεωρητικό πλαίσιο
Οι έρευνες σχετικά με τη διδασκαλία και την εκμάθηση της Πληροφορικής - και ιδιαίτερα για τον προγραμματισμό των H/Y - έχουν γνωρίσει μια σημαντικότατη ανάπτυξη τα τελευταία 30-40 χρόνια. Οι έρευνες αυτές δεν έχουν βέβαια γνωρίσει μια σύμμετρη ανάπτυξη, δηλαδή όλα τα σχετικά αντικείμενα δεν έχουν ερευνηθεί στον ίδιο βαθμό: για παράδειγμα o προγραμματισμός των H/Y έχει ίσως τη μερίδα του λέοντος στο σύνολο των ερευνητικών δραστηριοτήτων κι οι έρευνες που σχετίζονται με τη διδασκαλία εισαγωγικών εννοιών στην Πληροφορική (τα λεγόμενα προβλήματα του αλφαβητισμού στην Πληροφορική ή τον προγραμματισμό) είναι πολύ περισσότερες των υπολοίπων. Υπενθυμίζουμε ότι έχουν ερευνηθεί κυρίως αντικείμενα όπως:
Στο σύνολο των σχετικών εργασιών ωστόσο, παρά το μεγάλο εύρος της θεματικής, υπάρχει ένας κοινός παρονομαστής: μια ανεπάρκεια θεωρητικού πλαισίου.
Με τον όρο θεωρητικό πλαίσιο εννοούμε ένα πλαίσιο αναφοράς, ένα σύνολο υποθέσεων δηλαδή, μέσα στο οποίο οι προτάσεις μιας ερευνητικής εργασίας (οι υποθέσεις εργασίας, οι αναλύσεις, τ' αποτελέσματα και το πεδίο ισχύος των) αποκτούν νόημα σε σχέση μ' αυτό που αποτελεί το ιδιαίτερο αντικείμενο της έρευνας: τα φαινόμενα δηλαδή της διδασκαλίας κι εκμάθησης των προγραμματιστικών εννοιών και του προγραμματισμού γενικότερα, σ' ένα περιβάλλον ειδικά οργανωμένο για το σκοπό αυτό (το εκπαιδευτικό σύστημα).
Ένα εύλογο ερώτημα είναι το εξής: όσοι διδάσκουν Πληροφορική και προγραμματισμό, για ποιο λόγο χρειάζονται ένα θεωρητικό πλαίσιο; Τι χρειάζεται ένα θεωρητικό πλαίσιο Διδακτικής για να διδάξει κάποιος τις επαναληπτικές δομές ή την κληρονομικότητα;
Το θεωρητικό πλαίσιο επιτρέπει τη νοηματοδότηση των διδακτικών φαινομένων και άρα τον καλύτερο έλεγχο της διδασκαλίας.
Ένα, ακραίο είναι η αλήθεια, παράδειγμα είναι το πέσιμο των μήλων: πριν το Νεύτωνα στα μάτια των ανθρώπων το πέσιμο τους δεν είχε εξήγηση. Τα μήλα απλώς πέφταν (και μάλιστα κάτω από τη μηλιά). Μετά όμως, χάρη στη θεωρία του, γνωρίζουμε ότι η Γη τα έλκει - και μάλιστα ότι και τα μήλα έλκουν τη Γη. Η θεωρία του Νεύτωνα επέτρεψε όχι μόνο να κατανοήσουμε την πτώση των μήλων, αλλά και όλων σωμάτων, σε όλο το Σύμπαν, να γίνουν προβλέψεις φαινομένων, να κατασκευαστούν δορυφόροι κλπ.
Βέβαια η Διδακτική της Πληροφορικής, δεν έχει τέτοιες φιλοδοξίες. Μπορεί όμως να θέσει ένα πλαίσιο για την κατανόηση των δυσκολιών των μαθητών, την αντιμετώπιση των συστηματικών λαθών τους και την πιο αποτελεσματική διδασκαλία: για παράδειγμα ο εκπαιδευτικός να γνωρίζει εκ των προτέρων τα πιθανά εμπόδια που θα συναντήσουν οι μαθητές και να προετοιμάσει κατάλληλα το μάθημα.
Δυο προκαταρκτικές παρατηρήσεις επιβάλλονται:
Για να δώσουμε ένα παράδειγμα, αν ένας ερευνητής προτείνει σε μια ομάδα μαθητών μια σειρά από ερωτήσεις ώστε να εξακριβώσει τις αντιλήψεις τους τις σχετικές με την έννοια της μεταβλητής, οφείλει ν' αποσαφηνίσει και να διευκρινίσει τις υποθέσεις που κάνει:
Στη μελέτη των διδακτικών φαινομένων που μας απασχολούν, κεντρικό ρόλο παίζουν οι λεγόμενες αντιλήψεις των σπουδαστών: πρόκειται για ένα σύνολο υποθετικών γνώσεων τις οποίες ο ερευνητής αποδίδει στο μαθητή ή το σπουδαστή προκειμένου να περιγράψει και να προβλέψει ορισμένες από τις αντιδράσεις του. Οι αντιλήψεις αυτές μπορούν να έχουν διάφορες πηγές: μπορεί εξίσου καλά να προέρχονται από τον κοινωνικό περίγυρο, την καθημερινή εμπειρία αλλά και τις ίδιες τις διδακτικές πρακτικές κλπ.
Οι αντιλήψεις λοιπόν λειτουργούν ως ένα είδος γνώσεων - αποτελούν στην πραγματικότητα μια γνώση η οποία καθοδηγεί την πράξη. Οι αντιλήψεις αυτές δεν είναι βέβαια άμεσα παρατηρήσιμες: συνάγουμε την ύπαρξη τους (δηλαδή την θεωρητική ύπαρξη τους) από την παραγωγή των μαθητών και σπουδαστών (τους αλγόριθμους και προγράμματα τους, τις απαντήσεις και τα σχόλια τους κ.ά.). Η ύπαρξη συστηματικών λαθών - λαθών δηλαδή που έχουν έναν επίμονο και διαρκή, γενικευμένο χαρακτήρα - αποδίδεται στη ύπαρξη σχετικών αντιλήψεων.
Το λάθος δηλαδή δεν είναι μόνο το αποτέλεσμα της άγνοιας, της αβεβαιότητας, της τύχης - όπως θεωρούν οι εμπειρικιστικές ή μπηχεβιοριστικές θεωρίες μάθησης, αλλά είναι και το αποτέλεσμα μιας προγενέστερης γνώσης, που κάποτε ήταν αποτελεσματική, είχε ενδιαφέρον, αλλά τώρα αποδεικνύεται λανθασμένη ή απλά ακατάλληλη. Tα λάθη αυτού του τύπου δεν είναι απρόβλεπτα, ούτε "πλάνες" - παράγονται από εμπόδια.
Παραθέτουμε ορισμένα παραδείγματα:
Απλοϊκές αντιλήψεις: το παράδειγμα του ανθρωπομορφισμού
Ένα παράδειγμα εδραιωμένης αντίληψης, «κλασσικό» στο είδος του, αντιστοιχεί στην ονομαζόμενη ανθρωπομορφική αντίληψη. O σχετικός όρος οφείλεται στον Pea R. D. [1984] και χρησιμοποιείται για να δηλώσει το γεγονός ότι οι αρχάριοι προγραμματιστές πολλές φορές ερμηνεύουν τα προγράμματα και γενικότερα την επικοινωνία τους με ένα πληροφορικό σύστημα όχι με βάση τους συντακτικούς και σημασιολογικούς κανόνες (syntax, semantics) της χρησιμοποιούμενης γλώσσας (προγραμματισμού, γλώσσας εντολών κλπ), αλλ' αποδίδοντας στο αντίστοιχο πρόγραμμα ένα νόημα ευρύτερο του πραγματικού, σαν να επρόκειτο για έναν διάλογο μ' άνθρωπο. H ανθρωπομορφική αντίληψη έχει διάφορες εκφράσεις, όπως αναφέρει και ο Pea. Ως μια τέτοια εκδήλωση ανθρωπομορφισμού θεωρούμε το γεγονός ότι, κυρίως οι νεαροί μαθητές, έχουν την τάση - τις πρώτες φορές που χρησιμοποιούν έναν τερματικό σταθμό ή έναν μικροϋπολογιστή - να θεωρούν ότι μπορούν να έχουν «διάλογο» με το σύστημα, όπως στον παρακάτω διάλογο (πρόκειται για εντελώς αυθεντικό περιστατικό):
Mαθητής : MY NAME IS GEORGE. WHAT IS YOUR NAME ?
Πληρ. σύστ. : Bad command or missing file
Μαθητής : ........
O όρος ανθρωπομορφική αντίληψη αντιστοιχεί στην ερευνητική υπόθεση ότι η λανθασμένη ερμηνεία του προγράμματος οφείλεται σε μια λανθασμένη αντίληψη (δηλαδή σε μια υποθετική γνώση των μαθητών) που ονομάζεται ανθρωπομορφική γιατί οι μαθητές συμπεριφέρονται σαν το πληροφορικό σύστημα να διέθετε μια αυτόνομη ανθρώπινη νόηση χωρίς αυτό να σημαίνει βέβαια ότι οι μαθητές πιστεύουν στ' αλήθεια στην ύπαρξη μιας αυτόνομης νόησης στο «εσωτερικό» του H.Y. Απλώς συμπεριφέρονται σαν... Ανάλογη αντίληψη με αυτήν είναι εκείνη κατά την οποία οι νεαροί μαθητές μεταφέρουν στο προγραμματιστικό περιβάλλον στρατηγικές επίλυσης προβλημάτων από άλλα περιβάλλοντα
EMVADON:= VASIS * YPSOS
READLN (VASIS);
READLN (YPSOS);
WRITELN (EMVADON);
...
και τους ζητηθεί να προβλέψουν το αποτέλεσμα της εκτέλεσης του (αν για παράδειγμα δοθούν οι τιμές 8 και 4 στις μεταβλητές VASIS και YPSOS αντίστοιχα), το σύνολο των μαθητών προβλέπει ως απάντηση τον αριθμό 32 (Pea R. D. [1984], Dagdilelis V. [1986]). H απάντηση αυτή θα ήταν βέβαια ορθή αν επρόκειτο για μια συνηθισμένη άσκηση σχολικής γεωμετρίας όχι όμως για ένα πρόγραμμα H.Y.
Το γεγονός ότι το φαινόμενο αυτό έχει διαπιστωθεί:
Αντιλήψεις σχετιζόμενες με τη χρήση επαναληπτικών διαδικασιών
O ανθρωπομορφισμός αυτός, ας τον ονομάσουμε «απλοϊκό», φαίνεται να εξαφανίζεται σχετικά γρήγορα με την πάροδο του χρόνου - χωρίς ν' απαιτηθεί κάποια ιδιαίτερη διδακτική μέθοδος. Άλλες όμως μορφές λανθασμένης ερμηνείας αλγορίθμων και προγραμμάτων φαίνονται να είναι περισσότερο επίμονες κι εμφανίζονται και σε λιγότερο αρχάριους σπουδαστές: για παράδειγμα η χρήση των βρόχων και γενικότερα των επαναληπτικών διαδικασιών, παραμένει πολύ συχνά ένα θέμα το οποίο οι σπουδαστές δεν κατανοούν απόλυτα.
Οι περιπτώσεις στις οποίες αναφερόμαστε παραπάνω μπορούν να δώσουν την εντύπωση του περιθωριακού φαινομένου, την εντύπωση δηλαδή ότι δεν παίζουν ουσιαστικό ρόλο στην πορεία του διδασκόμενου. Τούτο όμως δεν αληθεύει γιατί ορισμένες αντιλήψεις των μαθητών συνδεόμενες για παράδειγμα με τη χρήση των βρόχων - αποτελούν ουσιαστικό ανασταλτικό παράγοντα στην πορεία και η υπέρβαση τους είναι απαραίτητη για την πρόοδο του μαθητή.
Τα είδη των συστηματικών λαθών που αναφέραμε παραπάνω αφορούν σε αρχάριους μαθητές και ένα εύλογο ερώτημα που προκύπτει είναι το ακόλουθο: συστηματικά λάθη ή δυσκολίες εμφανίζονται και σε σπουδαστές λιγότερο αρχάριους; H απάντηση είναι και πάλι καταφατική.
Η αναδρομή
Σ' ένα διαφορετικό επίπεδο αναφέρουμε επίσης τις δυσκολίες που συχνά συναντούν οι σπουδαστές στη χρήση αναδρομικών διαδικασιών. Αν και η αναδρομή αποτελεί ένα σπουδαίο διανοητικό εργαλείο για την αλγοριθμική επίλυση προβλημάτων και χαρακτηρίζεται από την μεγάλη της απλότητα, σύμφωνα τουλάχιστον με τη γνώμη πολλών επιστημόνων (Arsac J. [1983]), ωστόσο η χρήση αναδρομικών διαδικασιών φαίνεται πως είναι εξαιρετικά δυσχερής όχι μόνο για τους νεαρούς μαθητές, αλλά ακόμη και για σπουδαστές πανεπιστημιακού επιπέδου. Το πρόβλημα της κατασκευής αναδρομικών διαδικασιών έχει διερευνηθεί εκτεταμένα σε νεαρά παιδιά σχολικής ηλικίας κι εφήβους (παράδειγμα οι σχετικές μελέτες για τη χρήση της γλώσσας LOGO), αλλά, απ' όσο γνωρίζουμε, έχει ελάχιστα μελετηθεί σε σπουδαστές πέραν της δευτεροβαθμίου εκπαιδεύσεως (εκτός από μια σειρά ερευνών για τη χρήση της γλώσσας PROLOG). Παρ' όλη την έλλειψη σχετικών ερευνών, είναι ωστόσο γενικά αποδεκτή η παρατήρηση ότι συχνά οι σπουδαστές διαχειρίζονται με λανθασμένο τρόπο τις αναδρομικές διαδικασίες ή αδυνατούν να τις χρησιμοποιήσουν - και τούτο ακόμη κι όταν τα προτεινόμενα προβλήματα έχουν λύσεις που περιγράφονται με προφανή τρόπο σε άλλο περιβάλλον. Ας θεωρήσουμε το παράδειγμα ενός κλασσικού προβλήματος: επιθυμούμε από ένα κείμενο να εξαλείψουμε τα περίσσια κενά (αν υπάρχουν) ανάμεσα στις λέξεις του (μια διαδικασία συνήθης σε επεξεργασία κειμένου). Ενώ η μέθοδος για την εξάλειψη των περίσσιων κενών είναι προφανής, ωστόσο η αλγοριθμική περιγραφή μιας τέτοιας διαδικασίας είναι λιγότερο τετριμμένη και η περιγραφή μιας αναδρομικής συνάρτησης F(κείμενο, κείμενο) η οποία θα δεχόταν ως όρισμα ένα κείμενο και θα έδινε ως αποτέλεσμα το ίδιο κείμενο απαλλαγμένο από τα περίσσια κενά, είναι ακόμη πιο δυσχερής.
Ακόμη, η απευθείας σχεδίαση ή κατασκευή σχημάτων με «αναδρομική» δομή, (δηλαδή με δομή η οποία μπορεί να περιγραφεί αναδρομικά)
Οι ακαδημαϊκοί και οι επαγγελματίες προγραμματιστές: η σχέση με τα «λάθη»
H τελευταία κατηγορία προγραμματιστών για τους οποίους τίθεται το ερώτημα των «δυσκολιών» είναι οι έμπειροι προγραμματιστές. Υπάρχουν συστηματικά λάθη στους επαγγελματίες προγραμματιστές; Μπορούν τα λάθη αυτά ν' αποδοθούν σε λανθασμένες αντιλήψεις των προγραμματιστών; H απάντηση είναι και πάλι καταφατική - αν και τούτο μοιάζει με παράδοξο: πώς είναι δυνατό οι πεπειραμένοι προγραμματιστές να κάνουν συστηματικά λάθη; Πώς είναι δυνατό να εκφράσουν λανθασμένες αντιλήψεις πεπειραμένοι προγραμματιστές;
Αρχικά είναι βέβαια γνωστό ότι, γενικά, το παραγόμενο λογισμικό όχι μόνο δεν είναι απαλλαγμένο λαθών αλλ' επιπλέον η εκσφαλμάτωση του (debugging) αποτελεί έναν εξαιρετικό δύσκολο τομέα κι ασφαλώς έναν από τους δαπανηρότερους στην παραγωγή λογισμικού (αργότερα θα έχουμε την ευκαιρία να αναφερθούμε εκτενέστερα στο θέμα). H ανάλυση των λαθών (για παράδειγμα στο εισαγωγικό μέρος του Beizer B. [1983]) δείχνει ότι η λανθασμένη χρήση βρόχων ή η λανθασμένη-ελλιπής απόδοση αρχικών τιμών σε μεταβλητές (initializing) αποτελούν συνήθη σφάλματα στους επαγγελματίες προγραμματιστές.
Πέραν όμως της γενικής αυτής θεώρησης των σφαλμάτων, θα μπορούσαν να αναφερθούν και συγκεκριμένα παραδείγματα προβλημάτων η λύση των οποίων συχνά χαρακτηρίζεται από λάθη. Μερικά τέτοια παραδείγματα δίνονται παρακάτω:
1. Το πρόβλημα της δυαδικής αναζήτησης (binary search).
Πρόκειται για ένα διάσημο πρόβλημα, τετριμμένο, τουλάχιστον εκ πρώτης όψεως, και μεγέθους που δεν ξεπερνά τις 10-15 γραμμές. Παρ' όλ' αυτά η πολυπλοκότητα της λύσεώς του είναι μεγάλη. O τρόπος με τον οποίο ο προγραμματιστής αναπαριστά νοητά την λειτουργία του αλγόριθμου παίζει σπουδαίο ρόλο στην επιλογή των αναλλοίωτων σχέσεων (invariances) κι επομένως στην κατασκευή του αλγόριθμου (δες για παράδειγμα Papadakos Nikos [1988]). O Lesuisse R. [1983] αναλύοντας πολλούς δημοσιευμένους αλγορίθμους δυαδικής αναζήτησης σε έγκυρα επιστημονικά περιοδικά, επισημαίνει το γεγονός ότι οι αλγόριθμοι κατασκευάστηκαν σε πολλές περιπτώσεις με βάση μια νοητή αναπαράσταση της λειτουργίας τους, με αποτέλεσμα ορισμένοι απ' αυτούς να εμφανίζουν μια σειρά ατελειών και λαθών. O Lesuisse κατατάσσει τους αλγόριθμους σε τέσσερις κατηγορίες και κάνει την υπόθεση ότι πηγή των λαθών είναι τελικά ο τρόπος της σύλληψης και κατασκευής του αλγόριθμου - με άλλα λόγια τα λάθη κι οι ασάφειες δεν είναι τυχαία αλλά η πηγή τους μπορεί να προσδιοριστεί στον ίδιο τον τρόπο κατασκευής τους.
2. Δυο προβλήματα επεξεργασίας κειμένου
Το πρώτο αναφέρεται σε μια μικρή διαδικασία (procedure) η οποία όταν δεχθεί ως όρισμα ένα κείμενο επιστρέφει ως αποτέλεσμα ένα κείμενο ευθυγραμμισμένο δεξιά. O αλγόριθμος προτάθηκε μαζί με την απόδειξη του από τον Naur P. [1972 b] και μάλιστα ως υπόδειγμα αποδεικτικής μεθοδολογίας, αλλά όπως δείχνει ο Lesuisse R. [1984], ο αλγόριθμος περιέχει λάθη. Ως πηγή των λαθών ο Lesuisse R. θεωρεί την λανθασμένη αντιμετώπιση του προβλήματος από τον Naur P. και πιο συγκεκριμένα στο γεγονός ότι ο Naur P. αντιμετώπισε μ' εσφαλμένο τρόπο τα ίδια τ' αντικείμενα τα οποία επεξεργαζόταν ο αλγόριθμος του (δηλαδή λέξεις, παραγράφους, προτάσεις). Το σημείο αυτό είναι σημαντικό και για τη δική μας εργασία, διότι ενισχύει την υπόθεση ότι η σχεδίαση ορθών αλγορίθμων δεν σημαίνει απλά την εφαρμογή ορισμένων τεχνικών, αλλά απαιτεί μια πολύ ριζικότερη μεταβολή στην αντιμετώπιση των προβλημάτων. Στο σημείο αυτό θα επανέλθουμε αργότερα.
Το δεύτερο παράδειγμα είναι ένα πρόβλημα επινοημένο από τους Henderson P., Snowdon R. [1972] ακριβώς για να χρησιμοποιηθεί ως παράδειγμα στη διδασκαλία του δομημένου προγραμματισμού (structured programming). Ζητείται η κατασκευή ενός αλγόριθμου για τη μέτρηση του πλήθους των λέξεων που υπάρχουν σε μια σειρά τηλεγραφημάτων (telegram flow analysis). Παρά τη φαινομενική απλότητα του προβλήματος, υπήρξαν μια σειρά δημοσιευμένες λύσεις - που περιείχαν λάθη όμως - από έμπειρους προγραμματιστές (αναφέρουμε ενδεικτικά τον Ledgard H. [1973]). Οι ιδιαιτερότητες του αλγορίθμου τον έχουν καταστήσει «κλασσικό» για τη διδασκαλία του δομημένου προγραμματισμού. Θα αναφερθούμε ιδιαίτερα στο πρόβλημα αυτό, διότι το χρησιμοποιήσαμε στα πειράματα που πραγματοποιήσαμε με σπουδαστές.
3. Λάθη, δοκιμές και σύγχρονη τεχνολογία λογισμικού
Ορισμένοι πληροφορικοί, έχοντας υιοθετήσει μια οπτική γωνία πλησιέστερα στις ανάγκες του επαγγελματία προγραμματιστή παρά στις ανάγκες του ακαδημαϊκού ερευνητή (θ' αναφερθούμε λεπτομερέστερα στο θέμα σε κατοπινές παραγράφους) θεωρούν ότι οι μοντέρνες μεθοδολογίες για την επικύρωση αλγορίθμων δεν εξασφαλίζουν οπωσδήποτε τη δημιουργία πιο αξιόπιστων αλγορίθμων κι εκθέτουν μια σειρά περιπτώσεων δημοσιευμένων αλγορίθμων οι οποίοι περιέχουν ασάφειες, λάθη, παραλείψεις κι εξαιρέσεις που δεν μνημονεύονται.
4.Ένας αλγόριθμος "αποκομιδής απορριμμάτων" (garbage collection)
Τέλος, αναφέρουμε και το παράδειγμα ενός αλγορίθμου "αποκομιδής απορριμμάτων" ο οποίος δημοσιεύτηκε στο έγκυρο περιοδικό CACM και μάλιστα βραβεύθηκε, αλλά περιείχε λάθη (αναφέρεται από τον Gries D. [1977] ).
Επιχειρώντας να διερευνήσουμε τα πιθανά αίτια, τις "πηγές" ορισμένων αντιλήψεων των μαθητών και σπουδαστών μπορούμε να διαπιστώσουμε τα εξής:
α) H αντίληψη του παραλληλισμού την οποία αναφέραμε, μπορεί να οφείλεται στην ελλιπή κατανόηση των αρχών λειτουργίας των πληροφορικών συστημάτων κι ιδιαίτερα στο γεγονός ότι τα προγράμματα - και μάλιστα τα μικροσκοπικά προγράμματα που συνήθως κατασκευάζουν οι σπουδαστές - εκτελούνται πολύ γρήγορα: It looks at the program all at once because It Is so fast σχολίασε ένας σπουδαστής όταν ρωτήθηκε σε μια σχετική έρευνα (Pea [1984], σελ. 4).
β) H απλοϊκή μορφή του ανθρωπομορφισμού (ο μαθητής που προσπαθεί να μάθει τ' όνομα του HY) μπορεί να βρίσκει την πηγή της στην περιρρέουσα ατμόσφαιρα της καθημερινής ζωής στην οποία οι HY (παλιότερα "ηλεκτρονικοί εγκέφαλοι") εμφανίζονται να πραγματοποιούν ολοένα και πιο εντυπωσιακά επιτεύγματα και άρα θα μπορούσε κανείς να συμπεράνει ότι οι ΗΥ διαθέτουν ένα είδος «ευφυΐας».
γ) Το λάθος κατά το οποίο οι μαθητές αποδίδουν τιμές χωρίς να λαμβάνουν υπόψη τους τον τρόπο με τον οποίο λειτουργεί το σύστημα οφείλεται ίσως στην εμπειρία από άλλα μαθήματα στα οποία βέβαια η σειρά με την οποία περιγράφονται τα δεδομένα (μήκος, πλάτος, σχετικός μαθηματικός τύπος) δεν παίζουν ουσιαστικό ρόλο στην επίλυση ενός προβλήματος υπολογισμού εμβαδού.
Οι πιθανές πηγές προέλευσης λοιπόν των αντιλήψεων αυτών μπορούν να είναι ποικίλες. Ορισμένες από τις αντιλήψεις αυτές - μολονότι λανθασμένες στη γενική τους έκφραση - έχουν κάποιο πεδίο εφαρμογών γεγονός που τις κάνει να είναι πιο "ανθεκτικές" σε μια ενδεχόμενη τροποποίηση τους. Η δημιουργία κι η εδραίωση μιας αντίληψης οφείλεται στο ότι - τουλάχιστον σε ορισμένες περιπτώσεις - η αντίληψη αυτή είναι λειτουργική. Αν για παράδειγμα σε κάποια είδη προβλημάτων η αντίληψη ενός σπουδαστή αποτελεί εργαλείο για την εξεύρεση μιας λύσης, τότε βέβαια η σχετική αντίληψη εδραιώνεται κι η τροποποίηση της θα είναι ακόμη πιο δύσκολη.
Στην περίπτωση αυτή η λανθασμένη αντίληψη μπορεί ν' αποτελέσει ένα πραγματικό εμπόδιο στην πρόοδο του.
Μια καινούρια γνώση στο σχολικό περιβάλλον (με τη γενική έννοια του όρου) θεσμοθετείται από τη στιγμή που από τον καθηγητή προσδιορίζεται ρητά. Ωστόσο είναι προφανές ότι η κατανόηση των νέων εννοιών δεν ακολουθεί κατ' ανάγκη τη σειρά και τους ρυθμούς της διδασκαλίας. Μια καινούρια έννοια αποκτά νόημα ανάλογα με τις καταστάσεις στις οποίες λειτούργησε, ανάλογα με τα προβλήματα που λύθηκαν χάρη σε αυτήν. Οι γνώσεις των μαθητών, έτσι όπως εξελίσσονται μέσα στο χρόνο, σπάνια ακολουθούν ένα γραμμικό μοντέλο ανάπτυξης - δηλαδή συνεχούς προοδευτικής πορείας μέχρι ένα επιθυμητό σημείο. Πολύ συχνά βρίσκονται σε αντίθεση με το διδακτικό περιβάλλον (φυσικός χώρος για τη γεωμετρία, προσομοιούμενη πραγματικότητα αν πρόκειται για προσομοίωση σε ΗΥ, θεωρητική αν πρόκειται για μια αξιωματικοποιημένη δομή) και καμιά φορά υφίστανται ταυτοχρόνως αντιλήψεις ασύμβατες κι αντιφατικές. Το εμπόδιο προβάλλει λοιπόν όχι ως μια έλλειψη γνώσης, αλλά ως μια γνώση που δεν είναι πια κατάλληλη. Το εμπόδιο έχει μερικά χαρακτηριστικά:
Ακόμη και χαρακτηριστικά παραδείγματα δεν είναι επαρκή για να τροποποιήσουν την αντίληψη αυτή. Για παράδειγμα οι μαθητές αποδέχονται εύκολα το γεγονός ότι η Ελλάδα ενώ έχει κατά πολύ μικρότερο εμβαδόν από την Αφρικανική Ήπειρο έχει σχεδόν το ίδιο μήκος ακτών με αυτή. Τούτο όμως δεν τους εμποδίζει να εφαρμόζουν στη συνέχεια - για παράδειγμα στο μάθημα της γεωμετρίας - την ίδια λανθασμένη αντίληψη ότι μεγαλύτερο εμβαδόν αντιστοιχεί σε μεγαλύτερη περίμετρο.
Οι λανθασμένες αντιλήψεις, όπως τουλάχιστον δείχνουν οι σχετικές έρευνες, μπορούν ακόμη να συνυπάρχουν και μ' άλλες γνώσεις (αντιλήψεις) οι οποίες να είναι ασύμβατες μ' αυτές ή ακόμη και αντιφατικές και να μην εμφανίζονται παρά μόνο κάτω από ειδικές συνθήκες. H ύπαρξη τους πάντως μπορεί να διαπιστωθεί από την συστηματική εμφάνιση τους, όταν πληρούνται οι κατάλληλες προϋποθέσεις. Οι αντιλήψεις των σπουδαστών οι σχετικές μ' ένα αντικείμενο πριν από τη διδασκαλία και μετά απ' αυτήν αποτελούν βέβαια ένα σημαντικότατο θέμα για τη διδακτική της Πληροφορικής. Εξάλλου ένα σημαντικό μεθοδολογικό πρόβλημα της διδακτικής είναι ακριβώς η σχεδίαση, πραγματοποίηση κι
ανάλυση τέτοιων καταστάσεων οι οποίες επιτρέπουν την εμφάνιση συγκεκριμένων αντιλήψεων των σπουδαστών.
Οι αντιλήψεις των σπουδαστών, εφ' όσον αποτελούν ένα είδος γνώσης, μπορούν να έχουν διαφορετικούς τρόπους έκφρασης. Έτσι μια αντίληψη μπορεί να εκφραστεί σαν αλγόριθμος ή σαν ένα είδος έμπρακτου θεωρήματος (thιoreme-en-acte) το οποίο δεν εκφράζεται ρητά αλλά εφαρμόζεται στην πράξη. Έτσι, αν για παράδειγμα μια συγκεκριμένη διαδικασία πρόκειται να εκτελεστεί ένα συγκεκριμένο πλήθος φορών, τότε η καταλληλότερη μορφή βρόχου είναι του τύπου FOR..DO..NEXΤ Τούτο έχει και μια δευτερεύουσα συνέπεια: οι σπουδαστές οι οποίοι είναι ιδιαίτερα εξοικειωμένοι μ' ένα στυλ προγραμματισμού (π.χ. με μια ορισμένη κλάση προβλημάτων ή με μια ορισμένη γλώσσα προγραμματισμού) μπορεί με ορισμένα έμπρακτα θεωρήματα περιορισμένης χρηστικότητας τα οποία βέβαια μπορούν ν' αποτελέσουν ανασταλτικούς παράγοντες σε περίπτωση εργασίας σε ένα άλλο προγραμματιστικό περιβάλλον.
Συνοψίζοντας θα μπορούσαμε ν' αναφέρουμε ότι οι αντιλήψεις των μαθητών και των σπουδαστών δεν είναι άμεσα παρατηρήσιμες, αλλά μόνον έμμεσα, αναλύοντας τον τρόπο με τον οποίο αντιδρούν στα πλαίσια ορισμένων καταστάσεων. H διδακτική στοχεύει κατ' αρχήν στη διαπίστωση των αντιλήψεων αυτών, προκειμένου να επιτύχει τη βασική της επιδίωξη: την μετατροπή των αντιλήψεων αυτών σε άλλες λειτουργικότερες και πιο αποτελεσματικές - γεγονός που συνήθως περιγράφεται ως απόκτηση γνώσεων.
Η διδασκόμενη γνώση κι ο μετασχηματισμός της
Μια βασική θέση της διδακτικής είναι ότι η διδασκόμενη γνώση δεν ταυτίζεται με την αντίστοιχη επιστημονική γνώση. Για παράδειγμα η αναδρομικότητα, ή ακριβέστερα οι αναδρομικοί αλγόριθμοι, ως επιστημονική έννοια έχουν διερευνηθεί σε βάθος από τους μαθηματικούς κι έχουν χρησιμοποιηθεί ευρύτατα από τους πληροφορικούς. Ωστόσο οι αληθινές τους διαστάσεις στο επαγγελματικό πεδίο και στην επιστημονική τους χρήση δύσκολα μπορούν να παρουσιαστούν μέσα στο σύνηθες εκπαιδευτικό περιβάλλον.
Συνήθως μια έννοια δεν μπορεί να περιγραφεί πλήρως κι ακόμη περισσότερο να γίνει κατανοητή, από έναν απλό τυπικό ορισμό. Κατά κανόνα μία έννοια αποκτά το πλήρες νόημα της μέσα σ' ένα πλαίσιο αναφοράς το οποίο περιλαμβάνει τις συγγενείς προς αυτήν έννοιες, τα προβλήματα τα οποία μπορεί να επιλύσει - όπως κι εκείνα που δεν μπορεί - κλπ. Το πλαίσιο αυτό ονομάζεται εννοιολογικό πεδίο (champ conceptuel).
Αυτό που συνήθως παρουσιάζεται σε μια εκπαιδευτική διαδικασία είναι ένα τμήμα του εννοιολογικού πεδίου, εκείνο το τμήμα που ικανοποιεί τις τρέχουσες διδακτικές ανάγκες. Σε ορισμένες περιπτώσεις η μερική αυτή παρουσίαση μπορεί ακόμη και να στρεβλώσει το επιστημονικό νόημα της αντίστοιχης εννοίας. Χρησιμοποιώντας ένα παράδειγμα από τα Μαθηματικά, η έννοια της απόστασης έχει μια τρέχουσα διδακτική χρήση αρκετά διαφορετική από την μαθηματικά ορισμένη. Ένα ακόμη πιο χαρακτηριστικό παράδειγμα αποτελούν οι δεκαδικοί αριθμοί των οποίων η εισαγωγή όχι μόνο δεν έχει καμία σχέση με την αναγκαιότητα χρήσης τους, αλλά αποτελεί πιθανότατα και το βασικό αίτιο για την δημιουργία λανθασμένων αντιλήψεων στους νεαρούς μαθητές.
Επιπλέον, αν μια περιγραφή της προς διδασκαλία γνώσης μπορεί να βρεθεί στα διδακτικά εγχειρίδια και τις σημειώσεις, θα πρέπει να σημειωθεί ότι η περιγραφή αυτή, κατά κανόνα, δεν αναφέρει τον λόγο ύπαρξης της γνώσης αυτής. H Πληροφορική αποσκοπεί, όπως όλες οι επιστήμες, στην επίλυση προβλημάτων. Τα προβλήματα αυτά μπορούν να προέρχονται από την ίδια την εξέλιξη της επιστήμης, να είναι "εσωτερικά" ή να βρίσκουν την προέλευση τους σε άλλες πηγές (τεχνική, επαγγελματικές ανάγκες, άλλες επιστήμες...). Τα εννοιολογικά εργαλεία κάθε επιστήμης επιτρέπουν την επίλυση ακριβώς των προβλημάτων αυτών. Το να δοκιμάσει λοιπόν κανείς να μεταδώσει μια γνώση χωρίς να καταστήσει γνωστά τα προβλήματα τα οποία μπορούν να επιλυθούν χάρη σ' αυτήν, είναι σαν μια απάντηση σε μια ερώτηση που δεν τέθηκε ποτέ.
Μια γνώση, έτσι όπως εκφράζεται σε μια δεδομένη στιγμή, αποτελεί επίσης το αποτέλεσμα απ' όλες τις διαμάχες που προηγήθηκαν για την εξέλιξη της. Έτσι, για παράδειγμα οι τρέχουσες απόψεις για τον δομημένο προγραμματισμό και την χρήση των διαφόρων "jumps" (exit, goto κλπ) αποτελούν το προϊόν όλων των συζητήσεων και διαμαχών που προηγήθηκαν.
Είναι προφανές ότι όλη αυτή η προβληματική δεν μπορεί να μεταφερθεί αυτούσια στη σχολική ή την πανεπιστημιακή αίθουσα.
Αντίθετα, οι νέες έννοιες που εισάγονται στην εκπαιδευτική διαδικασία υπακούουν σε διαφορετικούς κανόνες:
Οι επιστημονικές γνώσεις λοιπόν, σπάνια διδάσκονται αυτές καθαυτές στις διάφορες σχολικές βαθμίδες. Το γεγονός αυτό είναι μάλιστα πιο σαφές στις χαμηλότερες εκπαιδευτικές βαθμίδες. Επί της ουσίας, η μόνη εκπαιδευτική βαθμίδα όπου η επιστημονική γνώση αποτελεί αντικείμενο διδασκαλίας είναι ο χώρος μέσα στον οποίο παράγεται, δηλαδή το πανεπιστήμιο. Αντίθετα, στις άλλες βαθμίδες της εκπαίδευσης διδάσκεται ένα σώμα γνώσης, το οποίο χαρακτηρίζεται από τον όρο «σχολικές γνώσεις», οι οποίες προκύπτουν κατά κανόνα από τις επιστημονικές γνώσεις μιας περιοχής ως προϊόν μιας διαδικασίας μετασχηματισμού. Ο διδακτικός μετασχηματισμός χρησιμοποιήθηκε για πρώτη φορά στο πλαίσιο της Διδακτικής των Μαθηματικών για να καταδειχθεί αυτή τη διαδικασία. Πρέπει να τονισθεί ότι η έννοια του διδακτικού μετασχηματισμού είχε ήδη δημιουργηθεί από τον κοινωνιολόγο Michel Verret το 1975.
Με την έννοια του διδακτικού μετασχηματισμού οριοθετούνται οι γενικοί μηχανισμοί που επιτρέπουν το πέρασμα από ένα «αντικείμενο επιστημονικής γνώσης» σε ένα «αντικείμενο διδασκαλίας». Ξεκινώντας από τη διάκριση ανάμεσα στην «επιστημονική γνώση» (όπως αυτή παράγεται από την επιστημονική κοινότητα στο πλαίσιο της επιστημονικής έρευνας) και στη «διδαχθείσα γνώση» (όπως αυτή μπορεί να παρατηρηθεί στην καθημερινή σχολική πρακτική) η Διδακτική μελετά πως γίνεται ο μετασχηματισμός των επιστημονικών εννοιών ώστε να καταστούν αντικείμενο διδασκαλίας.
Στο πλαίσιο αυτό, ένα περιεχόμενο γνώσης έχοντας ορισθεί ως διδακτέα γνώση, υπόκειται σε ένα σύνολο από προσαρμοστικούς μετασχηματισμούς που θα το καταστήσουν ικανό να πάρει θέση ανάμεσα στα αντικείμενα διδασκαλίας. Συνεπώς, η διανοητική «εργασία» η οποία μετατρέπει ένα αντικείμενο γνώσης για διδασκαλία σε αντικείμενο διδασκαλίας, αποκαλείται διδακτικός μετασχηματισμός.
Ο διδακτικός μετασχηματισμός δεν περιγράφει ωστόσο μόνο τη μετατροπή μιας επιστημονικής γνώσης σε διδακτική γνώση με τη μορφή κεφαλαίων σχολικών βιβλίων για παράδειγμα. Διαπνέει, αντιθέτως, όλο το φάσμα της διδακτικής πράξης και είναι σε στενή σχέση με τον τόπο, το κοινό και τους παιδαγωγικούς και διδακτικούς στόχους που τίθενται. Επηρεάζει συνεπώς ουσιαστικά το πρόγραμμα σπουδών, τα αναλυτικά προγράμματα και τη διδακτική πρακτική.
Η έννοια του διδακτικού μετασχηματισμού επιτρέπει να χαρακτηρίσουμε το μετασχηματισμό της γνώσης ανάμεσα σε μια κατάσταση αναφοράς και μια κατάσταση μετάδοσης. Η κατάσταση αναφοράς αφορά αυτό που θεωρείται (σε κάποια χρονική περίοδο) επιστημονική γνώση όπως αυτή παράγεται από τους επιστήμονες. Η κατάσταση μετάδοσης αφορά όλο το σχολικό σύστημα, αποτέλεσμα του οποίου είναι η σχολική γνώση αλλά και η γνώση που έχει προσκτηθεί από τους μαθητές (Κόμης, 2001).
Όπως είδαμε, ο διδακτικός μετασχηματισμός αφορά καταρχήν μια σειρά από μετασχηματισμούς (δες παρακάτω σχήμα) στους οποίους συμμετέχουν τόσο οι δημιουργοί αναλυτικών προγραμμάτων όσο και οι συγγραφείς σχολικών βιβλίων, οι σχολικοί σύμβουλοι, κλπ.).
Αντικείμενο γνώσης --> Αντικείμενο για διδασκαλία --> Αντικείμενο διδασκαλίας
Σταδιακή μετατροπή της γνώσης από επιστημονική σε «σχολική»: διδακτική μετατόπιση
Το «αντικείμενο γνώσης» προσδιορίζεται συνεπώς από το χώρο της «επιστημονικής γνώσης», αυτό δηλαδή που αναγνωρίζεται από την επιστημονική κοινότητα ως τέτοιο. Εάν πάρουμε για παράδειγμα τα «Λειτουργικά Συστήματα» στην Πληροφορική, θα δούμε ότι το αντικείμενο αυτό δεν είναι διδάξιμο, αυτό καθαυτό, τουλάχιστον εκτός του χώρου παραγωγής του, δηλαδή τα Πανεπιστήμια και τα Ινστιτούτα.
Συγκεκριμένοι μηχανισμοί πρέπει να τεθούν σε λειτουργία ώστε η εν λόγω γνώση (όπως είναι καταγεγραμμένη στις επιστημονικές δημοσιεύσεις και στα ακαδημαϊκά εγχειρίδια) να βγει από τον επιστημονικό της χώρο και να εισαχθεί λειτουργικά και αποτελεσματικά στη διδακτική πράξη. Από τη στιγμή που πραγματοποιηθούν τέτοιου τύπου λειτουργίες, η διδακτέα γνώση είναι αναμφισβήτητα διαφορετική από την επιστημονική γνώση που χρησιμεύει ως αναφορά της. Πρέπει επίσης να τονισθεί ότι το επιστημολογικό της περιβάλλον είναι επίσης διαφορετικό όπως και η σημασία της και η εμβέλεια των εννοιών που την δομούν.
Η έννοια του διδακτικού μετασχηματισμού συνεπώς υπονοεί ότι το πέρασμα από την επιστημονική γνώση στη διδαχθείσα γνώση δεν είναι ποτέ άμεσο. Επιπλέον, ο καθορισμός μιας επιστημονικής γνώσης σε αντικείμενο διδασκαλίας τροποποιεί σε μεγάλο βαθμό τη φύση της γνώσης αυτής αφού αφενός αλλάζουν τα ερωτήματα που μπορούν να απαντηθούν μέσω αυτής της γνώσης αλλά και οι σχέσεις που η ίδια διατηρεί με άλλες.
Ο διδακτικός μετασχηματισμός μπορεί στο πλαίσιο αυτό να θεωρηθεί ως μια διαδικασία με δύο κύρια στάδια και οι μετασχηματισμοί που πραγματοποιούνται μπορούν να κατηγοριοποιηθούν σε δύο ομάδες: σε ένα εξωτερικό μετασχηματισμό και σε ένα εσωτερικό μετασχηματισμό.
Οι ιδιαίτερες προσαρμογές που πραγματοποιεί κάθε εκπαιδευτικός γίνονται κατά το δεύτερο στάδιο του διδακτικού μετασχηματισμού. Συνεπώς ο εκπαιδευτικός δεν παίζει ρόλο παρά στο δεύτερο στάδιο και οι αρμοδιότητές του κατά το μετασχηματισμό είναι ιδιαίτερα περιορισμένες. Ο διδακτικός μετασχηματισμός, γίνεται σε μεγάλο βαθμό έξω από αυτόν. Αντίθετα, το πρώτο στάδιο συνιστά αυτό που αποκαλείται στη Διδακτική (με μια δόση ειρωνείας είναι η αλήθεια) «νοόσφαιρα». Με τον όρο «νοόσφαιρα» εννοείται ο χώρος όλων αυτών που προγραμματίζουν τα περιεχόμενα της διδασκαλίας, δημιουργούν τα αναλυτικά προγράμματα, συγγράφουν τα σχολικά εγχειρίδια, κλπ. Η νοόσφαιρα παίζει το ρόλο του ενδιάμεσου ανάμεσα στο σύστημα διδασκαλίας και στο ευρύτερο κοινωνικό περιβάλλον. Βέβαια, ακόμα κι αν οι εκπαιδευτικοί είναι ανίσχυροι να επέμβουν στα πλαίσια της νοόσφαιρας, μπορούν να τροποποιήσουν το «κείμενο της γνώσης»: κάτω από το πρίσμα αυτό, ο διδακτικός μετασχηματισμός συνίσταται για τον εκπαιδευτικό στο να οικοδομήσει τα μαθήματά του αντλώντας από τις επιστημονικές γνώσεις, παίρνοντας υπόψη του τους προσανατολισμούς και τις οδηγίες των αναλυτικών προγραμμάτων (διδακτέες γνώσεις) ώστε να τις προσαρμόσει στην τάξη του. Ο μετασχηματισμός επιβάλει την εξαγωγή μιας γνώσης από το πλαίσιό της (πανεπιστημιακό, κοινωνικό, κλπ.) και την επανένταξή της μέσα στο ιδιαίτερο πλαίσιο της τάξης.
Πρέπει στο σημείο αυτό να τονιστεί ότι τα αντικείμενα που θεωρούνται ως «αντικείμενα διδασκαλίας» δεν προέρχονται σε καμία περίπτωση από «απλουστεύσεις» πιο σύνθετων αντικειμένων που προέρχονται από την επιστημονική κοινότητα. Είναι, αντιθέτως, το αποτέλεσμα μιας διδακτικής προσπάθειας, μιας αποσύνθεσης, μιας κατασκευής, που τα κάνει να διαφέρουν ποιοτικά.
Ο όρος του μετασχηματισμού υπογραμμίζει ότι η γνώση δεν μπορεί να μεταδοθεί αυτή καθαυτή και ο όρος του διδακτικού καθιστά εμφανή την αναγκαιότητα εύρεσης κανόνων αυτού του μετασχηματισμού που να είναι κατάλληλοι στη δομή της γνώσης που πρέπει να προσκτηθεί και τρόπους που λαμβάνουν υπόψη τους τη διαδικασία της μάθησης.
Το διδακτικό συμβόλαιο
Ορισμένες φορές οι μαθητές, αλλά κι οι σπουδαστές, δίνουν απαντήσεις που φαίνονται παράλογες. Το πιο "κλασσικό" παράδειγμα τέτοιου παραλογισμού αποτελεί το γνωστό πρόβλημα της ηλικίας του καπετάνιου: σ' ένα πλοίο υπάρχουν 26 πρόβατα και 10 κατσίκες. Πόσων χρόνων είναι ο καπετάνιος; H συντριπτική πλειοψηφία των μαθητών 8-9 ετών απαντά ότι ο καπετάνιος είναι 36 ετών. Δύσκολα θα μπορούσαμε ν' αποδώσουμε τον παραλογισμό αυτό σ' έλλειψη γνώσεων ή πνευματικών ικανοτήτων - προφανώς οι μαθητές της 3ης δημοτικού σχολείου έχουν τ' απαραίτητα εφόδια ώστε ν' απαντήσουν σωστά. Ορισμένοι ερευνητές έδειξαν ότι στην πραγματικότητα μια τέτοια συμπεριφορά μπορεί να εξηγηθεί μέσα σ' ένα ευρύτερο πλαίσιο, γιατί η απάντηση των μαθητών μπορεί να είναι παράλογη με την κοινή λογική αλλά είναι απολύτως συμβατή με τη συνήθη σχολική λογική . Τα σχολικά προβλήματα υπακούουν στους εξής κανόνες:
α) ένα συνηθισμένο πρόβλημα έχει μια και μοναδική απάντηση
β) για την απάντηση αυτή: όλα τα δεδομένα του προβλήματος πρέπει να χρησιμοποιηθούν καμιά άλλη ένδειξη ή δεδομένο δεν είναι απαραίτητη
H σωστή χρήση των δεδομένων γίνεται χάρη σ' ένα τυποποιημένο σχήμα εφαρμογής οικείων διαδικασιών, οι οποίες πρέπει απλά να συνδυαστούν με τον κατάλληλο τρόπο.
Τέλος το αποτέλεσμα πρέπει να υπακούει σε ορισμένους κανόνες κοινής λογικής: σ' ένα πρόβλημα με αυγά η απάντηση δεν πρέπει να είναι "2,3 αυγά", μια ηλικία ανθρώπου δεν μπορεί να είναι 200 ετών κλπ.
Τα συνηθισμένα προβλήματα στη Δευτεροβάθμια εκπαίδευση επιπέδου δεν χαρακτηρίζονται βέβαια από ένα τόσο τυποποιημένο σύστημα - όμως ορισμένα από τα χαρακτηριστικά αυτά μπορούν να εντοπιστούν και στο επίπεδο της.
M' έναν γενικό τρόπο δεχόμαστε την ύπαρξη ενός συνόλου άγραφων, έμμεσων αλλά υπαρκτών και ισχυρών κανόνων οι οποίοι προσδιορίζουν ορισμένα χαρακτηριστικά των προβλημάτων που προτείνονται μέσα στα εκπαιδευτικά πλαίσια αλλά και γενικότερα των αμοιβαίων "νομίμων" συμπεριφορών τόσο του καθηγητή όσο και των μαθητών και σπουδαστών. Το σύνολο των κανόνων αυτών ονομάζεται διδακτικό συμβόλαιο.
Το διδακτικό συμβόλαιο χαρακτηρίζει κατά μεγάλο μέρος τις αλληλεπιδράσεις μεταξύ σπουδαστών και καθηγητή. Χαρακτηρίζει επίσης το είδος των προβλημάτων τα οποία είναι "νόμιμα". Για παράδειγμα, την περίοδο της πρώτης επαφής με τον προγραμματισμό ένα βασικό πρόβλημα που τίθεται στους αρχαρίους είναι ακριβώς ο προσδιορισμός της φύσης των ζητουμένων: ενώ συνήθως η λύση των προβλημάτων έγκειται στον προσδιορισμό κάποιων αριθμών, αλγεβρικών παραστάσεων ή γεωμετρικών σχημάτων, στον προγραμματισμό αυτό που συνήθως ζητείται είναι μια μέθοδος επίλυσης (ένα πρόγραμμα δεν επιλύει ένα πρόβλημα, αλλά μια κλάση προβλημάτων, περιγράφει δηλαδή μια μέθοδο επίλυσης). Έτσι πολλές φορές οι σπουδαστές χωρίς μεγάλη εμπειρία στον προγραμματισμό, δυσκολεύονται να κατανοήσουν τη διαφορά ανάμεσα στο παράδειγμα και τη μέθοδο. Αν προταθεί ως πρόβλημα ο προσδιορισμός ενός τρόπου για την αντιμετάθεση των περιεχομένων δύο μεταβλητών:
για παράδειγμα αν Α=3 και B=5 τότε επιθυμούμε μετά την εφαρμογή της διαδικασίας να έχουμε B=5 και Α=3, πολλοί μαθητές αλλά και σπουδαστές προτείνουν σα λύση την εκχώρηση
B:=5
A:=3
Ίσως θεωρεί κανείς ότι στην τριτοβάθμια εκπαίδευση τα φαινόμενα αυτά εξαλείφονται γρήγορα, δεδομένου ότι οι σπουδαστές "σκέφτονται" πιο ορθολογικά - κατά κάποιο τρόπο το "συμβόλαιο" τείνει να παίξει έναν ρόλο ασήμαντο. Παρά ταύτα το είδος των ερωτήσεων που τίθενται, για παράδειγμα κατά τη διάρκεια των εξετάσεων, συχνά μαρτυρά ότι οι σπουδαστές δείχνουν μια τάση προσαρμογής στις υποτιθέμενες προθέσεις του καθηγητή παρά στο ρητά ζητούμενο που εκφράζει η εκφώνηση: δεν είναι για παράδειγμα σπάνιο φαινόμενο αν ζητηθεί ένα τμήμα αλγορίθμου ή ένας αλγόριθμος από ένα ευρύτερο σύνολο μεθόδων, οι σπουδαστές ν' απαντήσουν δίνοντας πολύ περισσότερα απ' όσα ζητούνται.
Στα πλαίσια αυτά θεωρούμε επίσης ότι μπορεί να υφίσταται μια αντιδιαστολή ανάμεσα σ' αυτό που ονομάζουμε ιδιωτική πραγματικότητα και στην δημόσια εικόνα. 'Oπως κι αλλού έχουμε αναφέρει, η προσωπική, ιδιωτική εργασία ενός επιστήμονα μπορεί να είναι - και κατά κανόνα είναι - τελείως διαφορετική από την τελική μορφή των αποτελεσμάτων που δημοσιοποιούνται. Κατά μία τελείως ανάλογη έννοια η προσωπική εργασία ενός μαθητή ή σπουδαστή, τα στοιχεία εκείνα που του χρησιμεύουν ως δείκτης για την πορεία του, που αποτελούν για τον ίδιο μια επιβεβαίωση της ορθότητας των επιλογών του, μπορεί να είναι τελείως διαφορετικά από τα στοιχεία που παρουσιάζει ως τελική εργασία. Για παράδειγμα, στις εξετάσεις η προσωπική του εργασία (που συνήθως αντικατοπτρίζεται σ' αυτό που ονομάζουμε πρόχειρο) μπορεί να είναι τελείως διαφορετική από την τελική, επίσημη μορφή του γραπτού (το καθαρό). Το πρώτο αντιστοιχεί περισσότερο στις προσωπικές του επιλογές, αποτελεί ένα δείγμα του τι πιστεύει ο ίδιος για την εργασία του, ενώ το δεύτερο κατ' ανάγκη είναι προσαρμοσμένο στις απαιτήσεις του διδακτικού συμβολαίου.
Η βασική υπόθεση της Διδακτικής
H βασική υπόθεση της Διδακτικής είναι διπλή:
α) το υποκείμενο (ο σπουδαστής) μαθαίνει - δηλαδή αυξάνει και τροποποιεί τις γνώσεις του χάρη στην αλληλεπίδραση του με το περιβάλλον του. H αλληλεπίδραση αυτή στο εκπαιδευτικό σύστημα έγκειται βασικά σε μια δραστηριότητα επίλυσης προβλημάτων σε συνθήκες που προσδιορίζει, μερικώς τουλάχιστον, ο εκπαιδευτής-καθηγητής. H διδασκαλία δεν είναι τίποτε άλλο παρά η δημιουργία ενός περιβάλλοντος το οποίο αποσκοπεί στο να μετασχηματίσει τις αντιλήψεις των σπουδαστών. H διδακτική έχει σα στόχο της την ανάλυση των διαδικασιών αυτών και γενικότερα την εξήγηση κι ερμηνεία των διδακτικών φαινομένων.
β) Βασική επιστημολογική υπόθεση της Διδακτικής είναι ότι τα προβλήματα είναι πηγή και κριτήριο της γνώσης (Vergnaud 1982, σ. 220). Από τη μια η γνώση πηγάζει από προβλήματα, η γνώση κατά κανόνα δημιουργείται προκειμένου να δοθούν λύσεις σε προβλήματα κι απ' την άλλη μια διανοητική παραγωγή αποτελεί γνώση στο βαθμό που είναι σημαντική, που επιτρέπει τη λύση μιας κλάσης προβλημάτων με αποτελεσματικό τρόπο.
Κεντρική έννοια των υποθέσεων αυτών είναι το πρόβλημα. Για να είναι δυνατή η μάθηση πρέπει οι σπουδαστές να διαθέτουν κάποιους τρόπους επίλυσης του προτεινόμενου προβλήματος. H μάθηση συντελείται όταν μέσα από την επίλυση του προβλήματος ο σπουδαστής τροποποιεί τους τρόπους αυτούς, τους βελτιώνει, δημιουργεί νέους, υποβιβάζει την αξία παλαιοτέρων. Σε ορισμένες περιπτώσεις ο έλεγχος αυτός μπορεί να πραγματοποιηθεί μέσα από τροποποιήσεις του ίδιου του προβλήματος. Όταν οι τροποποιήσεις αυτές παίζουν ένα ρόλο στην μάθηση ονομάζονται διδακτικές μεταβλητές.
Ορισμένες μεταβλητές είναι εγγενείς στο πρόβλημα. Αν για παράδειγμα ένα παιδί μπορεί να μετρήσει μέχρι το δέκα με τα δάχτυλα, τότε η απαρίθμηση ενός συνόλου 20 στοιχείων προφανώς ελαττώνει την αξία της μεθόδου αυτής. H επιλογή του πληθικού αριθμού του προς απαρίθμηση συνόλου είναι πολύ σημαντική γιατί αν η τιμή του είναι "γειτονική" με το 10, τα παιδί θα τείνει να προσαρμόσει την ήδη γνωστή διαδικασία (με τα δάκτυλα) κι επομένως η διαδικασία αυτή θα έχει όλες τις πιθανότητες να "επιζήσει" μετά τη δοκιμασία, ενώ ένας πολύ μεγάλος πληθικός αριθμός μπορεί να "μπλοκάρει" τελείως το παιδί.
Αναφερόμενοι στον προγραμματισμό, μπορούμε να διαπιστώσουμε την ύπαρξη διδακτικών μεταβλητών. Προκειμένου να επιδειχθούν τα προτερήματα του δομημένου προγραμματισμού, προφανώς καταλληλότερο είναι ένα σχετικά πολύπλοκο και μεγάλο πρόβλημα, αφού οι μέθοδοι της δοκιμής-λάθους ή της απευθείας επίλυσης είναι τελείως αναποτελεσματικές στις περιπτώσεις αυτές - ενώ είναι λιγότερο δαπανηρές σε απλά προβλήματα. Το μέγεθος κι η πολυπλοκότητα του προτεινομένου προβλήματος είναι ουσιαστικοί παράγοντες στην περίπτωση αυτή. H ανάγκη σχεδίασης κι ελέγχου αλγορίθμων μπορεί αντίθετα να επιτευχθεί με ρύθμιση μεταβλητών που είναι εξωγενείς ως προς το πρόβλημα: μπορεί για παράδειγμα οι σπουδαστές να έχουν ορισμένο μόνο χρόνο μηχανής για την κατασκευή των προγραμμάτων τους, γεγονός που θα τους αναγκάσει να τελειοποιήσουν τους αλγορίθμους τους και να τους ελέγξουν προσεκτικά πριν περάσουν στην πληκτρολόγηση του τελικού κώδικα - ενώ αντίθετα η πιο συνηθισμένη τακτική είναι η προσφυγή στην άμεση πληκτρολόγηση κώδικα ο οποίος διορθώνεται ανάλογα με τα λάθη που διαπιστώνονται. H δυνατότητα ή όχι χρήσης εντολών όπως η goto ή ορισμένου τύπου jumps μπορεί επίσης σε συνδυασμό με την κατάλληλη επιλογή προβλημάτων να παίξει έναν ουσιαστικό ρόλο στην κατανόηση κι αποτελεσματική χρήση των διαφόρων τύπων βρόχων.
Η Διδακτική ως πειραματική επιστήμη
Το πρόβλημα στην εκπαιδευτική διαδικασία, όπως δείχνουν και τα παραπάνω, δεν πρέπει να νοηθεί σαν μια "εκτός πλαισίου", context-free πρόταση. Τα προβλήματα πρέπει μάλλον να θεωρούνται σαν μια πρόταση η οποία πρέπει να επιλυθεί μέσα σε ορισμένα πλαίσια - και τα πλαίσια αυτά ρυθμίζουν κατά τρόπο ουσιαστικό τις διαδικασίες που είναι θεμιτές, "νόμιμες" για την επίλυση του προβλήματος, καθώς κι εκείνες που είναι αποτελεσματικές. Τα προβλήματα προς επίλυση μέσα στα πλαίσια αυτά ονομάζονται διδακτικές καταστάσεις.
Σε μια διδακτική κατάσταση όλοι εκείνοι οι παράγοντες οι οποίοι ανταποκρίνονται σε μια ορισμένη ενέργεια του υποκειμένου και γίνονται αντιληπτοί απ' αυτό ονομάζονται περιβάλλον.
Για παράδειγμα ο καθηγητής (ο οποίος αντιδρά μ' έναν ορισμένο τρόπο σε μια απάντηση ενός σπουδαστή), ο συνάδελφος ο οποίος αποδέχεται ή απορρίπτει ένα επιχείρημα ή μια απόδειξη, το πληροφορικό σύστημα που παράγει ένα αποτέλεσμα ή ένα μήνυμα κατά την εκτέλεση ενός προγράμματος, η ηλεκτρονική μηχανή τσέπης αποτελούν μέρη του περιβάλλοντος. Είναι αυτονόητο πως η εκάστοτε "αντίδραση" του περιβάλλοντος συντελεί στη διαδικασία της μάθησης κι η δημιουργία του πλέον κατάλληλου περιβάλλοντος αποτελεί βασικό μέλημα της Διδακτικής.
Πολλοί ερευνητές διακρίνουν διαφόρους τύπους διδακτικών καταστάσεων όπως: καταστάσεις ενέργειας στις οποίες ευνοείται κυρίως η κατασκευαστική ικανότητα των μαθητών γι' απλά αντικείμενα όπως ένα γεωμετρικό σχήμα, καταστάσεις έκφρασης ή διατύπωσης οι οποίες ευνοούν την κατασκευή κι εκμάθηση μοντέλων και επιστημονικών "γλωσσών". Ιδιαίτερο ρόλο ανάμεσα τους παίζουν οι καταστάσεις επικοινωνίας, στις οποίες η επικοινωνία (δηλαδή μια διατύπωση για τη μετάδοση ενός μηνύματος) παίζει καθοριστικό ρόλο (Laborde [1982]): αν η ποιότητα μιας διατύπωσης δεν επιτρέπει την ακριβή μετάδοση ενός μηνύματος, τότε επανεξετάζεται όχι μόνο η ίδια η διατύπωση κι η χρησιμοποιούμενη "γλώσσα" αλλά και η υποκείμενη γνώση, καταστάσεις επικύρωσης οι οποίες έχουν ως επίκεντρο την παραγωγή επιχειρημάτων για την επικύρωση μιας σχέσης, μιας πρότασης μιας κατασκευής (για παράδειγμα ενός αλγόριθμου ή ενός προγράμματος). Σε ορισμένες περιπτώσεις οι καταστάσεις απόφασης (Balacheff [1991]) απαιτούν ένα ορισμένο όριο βεβαιότητας, χωρίς ωστόσο να είναι απαραίτητες οι αποδείξεις (δηλαδή η ρητή διατύπωση εκείνων των επιχειρημάτων που δικαιολογούν την βεβαιότητα αυτή).
Καταστάσεις επισημοποίησης οι οποίες υφίστανται υπό την ευθύνη του καθηγητή κι αποσκοπούν στο να δώσουν το χαρακτήρα της θεσμικά αναγνωρισμένης γνώσης, σε ορισμένες από τις προσωπικές γνώσεις του σπουδαστή.
Ένα μεγάλο τμήμα της έρευνας της Διδακτικής είναι επιστημολογικού χαρακτήρα: αναζήτηση των πηγών και της εξέλιξης των γνώσεων, των εννοιών που πρόκειται να διδαχθούν. Ένα τμήμα της περιλαμβάνει επίσης την επεξεργασία ενός θεωρητικού πλαισίου, ή ακριβέστερα μιας προβληματικής όπως το περιγράψαμε παραπάνω. Το σημαντικότερο όμως τμήμα της είναι καθαρά πειραματικού χαρακτήρα: η Διδακτική είναι μια κατεξοχήν πειραματική επιστήμη. Με βάση τις προηγούμενες (θεωρητικές και επιστημολογικές) αναλύσεις προσδιορίζεται ένα σύνολο a priori αντιδράσεων των σπουδαστών και στη συνέχεια η υλοποίηση της σχετικής διδακτικής κατάστασης επιτρέπει την αντιπαραβολή των όσων είχαν προβλεφθεί σε σχέση με τα όσα πράγματι συνέβησαν - προκειμένου να προσαρμοσθεί κατάλληλα η όλη σύλληψη.
Θα πρέπει ίσως να τονιστεί ότι στην τρέχουσα μεθοδολογία της Διδακτικής (ακριβέστερα: στην κυρίαρχη ευρωπαϊκή σχολή Διδακτικής) επικρατεί ως μέθοδος ανάλυσης η ποιοτική κι όχι η ποσοτική ανάλυση. Τούτο γιατί η Διδακτική δεν ενδιαφέρεται τόσο για την κατανομή των διαφόρων φαινομένων μέσα στον μαθητικό ή σπουδαστικό πληθυσμό αλλά μάλλον για τα αίτια που προκαλούν τα φαινόμενα αυτά καθώς και για τους πιθανούς τρόπους μεταβολής τους, ενδιαφέρεται δηλαδή περισσότερο για ποιοτικά παρά για ποσοτικά χαρακτηριστικά.
Μια τυπική έρευνα λοιπόν στη Διδακτική της Πληροφορικής περιλαμβάνει τα εξής στάδια:
Σύνοψη
Τα παραπάνω παραδείγματα φαίνονται να δείχνουν ότι σφάλματα και λάθη που δεν έχουν τυχαίο χαρακτήρα υφίστανται και στην κοινότητα των επαγγελματιών και των επιστημόνων προγραμματιστών. Στα ειδικευμένα τεχνικά και επιστημονικά περιοδικά μπορεί κανείς εύκολα να βρει παραδείγματα άρθρα και μελέτες για τα λανθασμένα προγράμματα (για παράδειγμα στο Gerhard S., Yelowitz L. [1976]) - και μάλιστα σε μεγάλο βαθμό. O J. Arsac [1983] θεωρεί ότι τα λάθη στον προγραμματισμό είναι τελικά τόσο συνηθισμένα ώστε η δημοσίευση λανθασμένων αλγορίθμων σε έγκυρα επιστημονικά περιοδικά δεν αποτελεί σκάνδαλο όπως θ' αποτελούσε η δημοσίευση λανθασμένων αποτελεσμάτων σε μαθηματικά περιοδικά. Δεν είναι βέβαιο ότι η δημοσίευση λανθασμένων αποτελεσμάτων σε μαθηματικά περιοδικά αποτελεί σκάνδαλο (για σχετική συζήτηση δες και Hanna G. [1983], de Millo R.A. and als [1979] και Gasser J. [1989]) αλλά σίγουρα η δημοσίευση αλγορίθμων που περιέχουν λάθη δεν αποτελεί σκάνδαλο.
Το λάθος υφίσταται στην κοινότητα των προγραμματιστών κι επιπλέον είναι κι αναγνωρισμένο, νόμιμο κι αποτελεί κι αντικείμενο ερευνών. Οι πληροφορικοί εξάλλου κάνουν και διακρίσεις ανάμεσα στις έννοιες του λάθους, του σφάλματος, της εξαιρέσεως (Cristian F. [1985]). Παρ' όλ' αυτά υπάρχει ακόμη ένα ερώτημα: τα λάθη αυτά έχουν συστηματικό χαρακτήρα; Λάθη, για παράδειγμα, γίνονται σ' όλες τις ανθρώπινες δραστηριότητες κι είναι απίθανο να υπάρχουν μηχανικοί οι οποίοι δεν έχουν κάνει υπολογιστικά λάθη κατά τη σχεδίαση νέων συστημάτων. Αν θεωρήσουμε ότι η κατασκευή λογισμικού εντάσσεται στην ίδια κατηγορία ανθρώπινων δραστηριοτήτων με τη σχεδίαση μίας γέφυρας ή ενός πλοίου είναι φυσικό να υπάρχει ένα ποσοστό λαθών σε κάθε πρόγραμμα. H θέση μας που υποστηρίζουμε είναι ότι ορισμένα από τα λάθη αυτά έχουν συστηματικό χαρακτήρα. Τα επιχειρήματα μας είναι δύο:
Όπως θα προσπαθήσουμε να δείξουμε, πολύ συχνά οι σπουδαστές κατασκευάζουν τα προγράμματα τους βασιζόμενοι απλά σε μια «νοητή εκτέλεση» (mental execution) ή μια «νοητή προσομοίωση» (mental simulation) ακολουθώντας έτσι την ίδια τεχνική την οποία ακολουθούσαν οι προγραμματιστές αυθόρμητα κατά την πρώτη περίοδο της ανάπτυξης της πληροφορικής και η οποία ακριβώς καταπολεμήθηκε από τη σχολή του δομημένου προγραμματισμού και τις μοντέρνες μεθοδολογίες κατασκευής κι επικύρωσης λογισμικού - ήταν δηλαδή ένα από τα βασικά αίτια γι' αυτήν τη σχεδόν «αλλαγή παραδείγματος». Έτσι η μελέτη της «προγραμματιστικής» συμπεριφοράς των σπουδαστών που προτείνουμε φαίνεται να είναι δικαιολογημένη και σημαντική. Κεντρικό άξονα της εργασίας μας αποτελεί λοιπόν και η δημιουργία κι ανάλυση διδακτικών καταστάσεων οι οποίες αποσκοπούν ακριβώς στον μετασχηματισμό των λανθασμένων αντιλήψεων των σπουδαστών
Μερικές πρόσθετες παρατηρήσεις
H ύπαρξη αυτών των συγκεκριμένων δυσκολιών που αντιμετωπίζουν οι σπουδαστές και τις οποίες ονομάσαμε με το γενικό όνομα "δυσλειτουργίες", παραμένει σε μεγάλο βαθμό μια ιδιαίτερη διαπίστωση όσων ακριβώς διδάσκουν προγραμματισμό. Κατά παράδοξο (αλλά όχι ανεξήγητο) τρόπο η διαδεδομένη αντίληψη είναι η αντίθετη. Το γεγονός δηλαδή ότι η διδασκαλία της Πληροφορικής, ή ακριβέστερα του προγραμματισμού, έχει πολύ νεαρή ηλικία, όπως εξάλλου κι η ίδια η Πληροφορική, δυσκολεύει, κατά κάποιο τρόπο την κοινωνική αναγνώριση των δυσκολιών αυτών: για παράδειγμα η ύπαρξη δυσκολιών στη διδασκαλία - ή μάλλον στην εκμάθηση - των Μαθηματικών ή των Φυσικών επιστημών αναγνωρίζεται ακόμη και θεσμικά. Το γεγονός ότι «τα Μαθηματικά είναι δύσκολα» όχι μόνο θεωρείται κοινός τόπος, αλλ' επιπλέον στις περισσότερες χώρες ο κλάδος της Διδακτικής των Μαθηματικών αποτελεί έναν κλάδο ερευνών επιστημονικά και θεσμικά κατοχυρωμένο. Δεν συμβαίνει όμως ακόμα αυτό με τον προγραμματισμό - τουλάχιστον όχι παντού. Επιπρόσθετα, η διδασκαλία του προγραμματισμού, λόγω της ιδιαίτερης ανάπτυξης της ίδιας της Πληροφορικής και της σχέσης της με τις εμπορικές και τεχνικές εφαρμογές, έχει συχνά έναν διττό χαρακτήρα: αποτελεί ένα αντικείμενο διδασκαλίας ισότιμο με τα Μαθηματικά, την Πολιτική Οικονομία ή τη Χημεία, το οποίο διδάσκεται στη δευτεροβάθμια ή την τριτοβάθμια εκπαίδευση με κοινό, στόχους και διδακτέα ύλη σαφώς καθορισμένα, αλλά αποτελεί συχνότατα κι αντικείμενο διδασκαλίας πολλών σχολών επιμόρφωσης, επαγγελματικής εκπαίδευσης και κατάρτισης, αντικείμενο απευθυνόμενο σε κοινό πολυποίκιλο: πτυχιούχους Πανεπιστημίου που επιμορφώνονται στη «χρήση των H.Y.», σε μελλοντικούς εκπαιδευτικούς οι οποίοι με τη σειρά τους θα το διδάξουν σε μαθητές, σε απόφοιτους Λυκείου οι οποίοι αποζητούν ένα επαγγελματικό εφόδιο, σε διάφορα ταχύρυθμα ή μη σεμινάρια που διοργανώνουν ιδιωτικοί και δημόσιοι φορείς κλπ. H διεσπαρμένη αυτή διδασκαλία του προγραμματισμού αναστέλλει, κατά κάποιο τρόπο τη συγκέντρωση στοιχείων και την οργανωμένη, συλλογική αντιμετώπιση των δυσκολιών αυτών.
Ίσως ο ιδιαίτερος χαρακτήρας παιχνιδιού που πήρε ο προγραμματισμός - μάλλον η Πληροφορική - και της κοινωνικής έκτασης του, να συντελεί επίσης στην μη αναγνώριση των ιδιαίτερων δυσκολιών της διδασκαλίας του. Για παράδειγμα πριν από μερικά χρόνια στο γαλλικό περιοδικό Esprit (τεύχος Φεβρουαρίου 1985) δύο υπεύθυνοι animateurs του Club Mediterranee (ενός είδους τουριστικού οργανισμού) εξηγούσαν πώς μάθαιναν στους συμμετέχοντες στα τουριστικά προγράμματα του Club τον προγραμματισμό και την «απλούστατη» BASIC σε 10 ώρες κατά τη διάρκεια των διακοπών, δίπλα στη θάλασσα (αναφέρεται από τον Arsac J. [1987], σελ. 24). Για να γίνει αντιληπτός αυτός ο χαρακτήρας παιχνιδιού στον οποίο αναφερθήκαμε, αρκεί ν' αντικαταστήσει κανείς τον «προγραμματισμό» με την «Φυσική»: όχι μόνο κανείς δεν θα διενοείτο να την διδάξει στη διάρκεια διακοπών στο Club Mediterranee, αλλά και μόνος ο ισχυρισμός ότι μαθαίνει κανείς τις βάσεις της, άνετα, σε 10 ώρες είναι αυτόχρημα γελοίος. Στην πραγματικότητα το να διδάξει κανείς Φυσική στην ακρογιαλιά δεν θα αποτελούσε καν διαφημιστικό επιχείρημα - μπορούμε με σιγουριά να ισχυριστούμε ότι μάλλον θ' απωθούσε τους υποψήφιους πελάτες παρά θα τους προσείλκυε.
Στην ίδια λογική του παιχνιδιού εντάσσεται επίσης το γεγονός ότι συχνά οι προσωπικοί H.Y. υπολογιστές βρίσκονται στα μεγάλα καταστήματα στο τμήμα των παιχνιδιών και η εμπορική τους κίνηση αυξάνει κατακόρυφα τα Χριστούγεννα. Ενώ όμως αναγνωρίζεται ότι τα "πειράματα Φυσικής" που πουλιούνται στα καταστήματα δεν έχουν παρά μια πολύ μακρινή σχέση με τη Φυσική των επαγγελματιών κι ερευνητών Φυσικών, αντίθετα η αγορά ενός προσωπικού υπολογιστή έχει πολύ συχνά ένα χαρακτήρα "επένδυσης". Αυτή η εικόνα του προγραμματισμού είναι σε πλήρη αντίθεση με τη θέση - για παράδειγμα - του Dijkstra E. W. [1982b], για τον οποίο :
Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians
H δημόσια εικόνα λοιπόν ενός προγραμματισμού που μπορεί να γίνει αντιληπτός γρήγορα κι άνετα σε λίγες ώρες ακόμη και στις διακοπές κι αποτελεί και παιχνίδι, αυτός ο προγραμματισμός-παιχνίδι όχι μόνο είναι ασυμβίβαστος με έναν προγραμματισμό που «... αποτελεί έναν από τους δυσκολότερους κλάδους των εφαρμοσμένων μαθηματικών... » αλλά και με την συνακόλουθη ιδέα των δυσκολιών που παρουσιάζονται κατά την διδασκαλία και την εκμάθηση του.
Βέβαια ο Dijkstra E. W. και το Club MediUrrame δεν αναφέρονται στον ίδιο προγραμματισμό όπως δεν είναι ίδια τα Μαθηματικά της προσχολικής ηλικίας και των ερευνητών μαθηματικών. Ότι όμως εννοείται με το γενικό όρο «προγραμματισμός» συχνά θεωρείται ως μια διανοητική δραστηριότητα η οποία όμως είναι πολύ απλή ή είναι ισοδύναμη με την εκμάθηση ορισμένων τεχνικών στοιχείων (για παράδειγμα των χαρακτηριστικών ενός H.Y. και μίας γλώσσας προγραμματισμού).
Είναι για παράδειγμα πασίγνωστο ότι για δεκαετίες - κι ίσως ακόμη και σήμερα - βιβλία που φέρουν στον τίτλο τους την έκφραση "προγραμματισμός H.Y." στην πραγματικότητα αποτελούν οδηγούς χρήσης μιας γλώσσας προγραμματισμού - ενώ μέχρι και πρόσφατα τα σχολικά εγχειρίδια στο μάθημα της Πληροφορικής είχαν ως περιεχόμενο έναν οδηγό χρήσης των windows (!).
Οι παλαιότερες εργασίες
Μια συνοπτική παρουσίαση μερικών σημαντικών ευρημάτων της διδακτικής της Πληροφορικής είναι χρήσιμη γιατί με μια γενική έννοια τα αποτελέσματα των σχετικών ερευνών "συνοψίζουν", κατά κάποιο τρόπο, αποτελούν ένα είδος, περιληπτικής παρουσίασης των αποτελεσμάτων της διδακτικής κι άρα δίνουν μια γενική εικόνα, χρήσιμη για να αντιληφθεί ο αναγνώστης το σημερινό επίπεδο γνώσεων μας στη διδακτική της Πληροφορικής.
Oι πρώτες εργασίες για την διδασκαλία και την εκμάθηση του προγραμματισμού εμφανίζονται στα τέλη της δεκαετίας του 1960, με προεξάρχον το κλασσικό πλέον βιβλίο του G. Μ. Weinberg για την ψυχολογία του προγραμματισμού (Weinberg G. Μ. [1969]). Βασικός άξονας του βιβλίου είναι η προσπάθεια για βελτίωση της προγραμματιστικής δραστηριότητας (δηλαδή βελτίωση της απόδοσης) σε ατομικό και συλλογικό επίπεδο. O Weinberg επισημαίνει ήδη μερικά σημεία τα οποία στα επόμενα χρόνια βρέθηκαν στο κέντρο της διαμάχης γύρω από το δομημένο προγραμματισμό. Σημειώνει, για παράδειγμα, το γεγονός ότι ο προγραμματισμός αποτελεί βέβαια μια ατομική δραστηριότητα, αλλά αποτελεί και μια δραστηριότητα συλλογική κι έτσι τα παραγόμενα προγράμματα προορίζονται πολλές φορές να χρησιμοποιηθούν από ανθρώπους - ο οποίοι θα τα ελέγξουν, θα τα διορθώσουν, θα τα βελτιώσουν, θα τα μεταφέρουν σε άλλο περιβάλλον κλπ. Κατά συνέπεια τα προγράμματα πρέπει, κατά κάποιο τρόπο, να είναι "αναγνώσιμα" - να είναι δηλαδή γραμμένα κατά τρόπο τέτοιο ώστε να "απευθύνονται" και σε ανθρώπους. Είναι ίσως αξιοσημείωτο το γεγονός ότι σχεδόν 30 χρόνια μετά, οι τελευταίες εργασίες του D.E. Knuth, σχετικά με το περιβάλλον προγραμματισμού CWEB. έχουν τον ίδιο σκοπό - όπως ο ίδιος αναφέρει σε συνέντευξη του[1]. O Weinberg επισημαίνει επίσης το γεγονός ότι ο όρος "προγραμματισμός" καλύπτει δραστηριότητες οι οποίες συστεγάζονται υπό την ίδια επωνυμία, αλλά διαφέρουν ως προς το περιεχόμενο τους:
The high school student and the engineer represent two ends of a rich spectrum of programmers. These ends may or may not be different...But.... there is a difference (ibid, σελ. 122)
Τούτο λοιπόν σημαίνει ότι τα προβλήματα στο ένα επίπεδο είναι διαφορετικά από τα προβλήματα στο άλλο επίπεδο και κατά συνέπεια κι οι λύσεις που μπορούν να προταθούν δεν μπορεί παρά να διαφέρουν.
Είναι επίσης αξιοσημείωτο ότι ο Weinberg αναφερόμενος στην εκμάθηση του προγραμματισμού θεωρεί ως κατάλληλες μεθόδους την ενδοεπισκόπηση, την παρατήρηση γενικότερα, τον πειραματισμό. Στο σημείο αυτό τάσσεται μάλλον με την πλευρά των πληροφορικών οι οποίοι θεωρούν ότι ο προγραμματισμός ως δραστηριότητα δεν ήταν ακόμη επιστήμη - στο τέλος της δεκαετίας του '60 - κι άρα δεν ήταν δυνατόν να διδαχθεί ως τέτοιος. O προγραμματισμός αποτελεί περισσότερο μια "τέχνη" (μια εμπειρική τέχνη) η οποία μεταδίδεται με όσμωση από τον "δάσκαλο" στο μαθητή αλλά δεν μπορεί να διδαχθεί με τις κλασσικές μεθόδους διδασκαλίας.
Το βιβλίο του G. M. Weinberg απετέλεσε την πρώτη συστηματική καταγραφή του ρόλου του ανθρώπινου παράγοντα στον προγραμματισμό. Οι συχνότατες αναφορές στο βιβλίο αυτό οδηγούν στο συμπέρασμα ότι το βιβλίο άσκησε μεγάλη επιρροή στους προγραμματιστικούς κύκλους.
Τα τέλη της δεκαετίας του '60 κι οι αρχές της δεκαετίας του '70 χαρακτηρίζονται από μια σειρά προσπαθειών της ακαδημαϊκής κοινότητας για την βελτίωση της εκπαίδευσης στην Πληροφορική, ακριβέστερα στον προγραμματισμό - αναφέρουμε ενδεικτικά της κατασκευή της PASCAL και της LOGO (όπως είναι γνωστό και οι δυο κατασκευάστηκαν αποκλειστικά για εκπαιδευτικούς σκοπούς), την οργάνωση συνεδρίων (όπως αυτό του [1972] στις Sevres, Paris ή την Working Conference on Programming Teaching Techniques, IFIP TC-2 κά). Συνήθως όμως οι αναφορές της περιόδου αυτής δεν στηρίζονται σε θεωρητικές θέσεις ή πειραματικά δεδομένα αλλά συχνότερα αποτελούν απόψεις βασισμένες σε προσωπικές εμπειρίες, πεποιθήσεις και ιδεολογικές θέσεις. Οι αναφορές πραγματοποιήθηκαν κυρίως από εκπροσώπους της σχολής του δομημένου προγραμματισμού - οι οποίοι θεωρούν ως ένα ισχυρό κίνητρο για την καθιέρωση του δομημένου προγραμματισμού τη σαφή του υπεροχή έναντι των άλλων μεθόδων και στο πεδίο της διδασκαλίας και συνακόλουθα της εκμάθησης του προγραμματισμού. Λεπτομερέστερες αναφορές σε αυτές θα γίνουν σε διάφορα σημεία του κεφαλαίου 2.
Πιο σύγχρονες εργασίες
Στην δεκαετία του 1980 και του 1990 - αλλά και κατά την τρέχουσα δεκαετία - υπάρχει μια άνθηση ερευνών και γενικότερα εργασιών γύρω από θέματα διδασκαλίας κι εκμάθησης του προγραμματισμού. H έξαρση αυτή έμμεσα σημαίνει την αναγνώριση της αναγκαιότητας για διερεύνηση των σχετικών θεμάτων, σημαίνει δηλαδή την αναγνώριση του γεγονότος ότι η διδασκαλία της Πληροφορικής (του προγραμματισμού ακριβέστερα) φαίνεται να είναι λιγότερο αποτελεσματική απ' ότι θα έπρεπε κι άρα πρέπει να βελτιωθεί. Αυτή η τάση διαγιγνώσκεται κι από γενικότερους δείκτες:
Αν και κατά την τελευταία εικοσαετία πραγματοποιήθηκαν πολλές έρευνες γύρω από τη διδασκαλία και την εκμάθηση του προγραμματισμού, ωστόσο ο κύριος όγκος των ερευνητικών εργασιών περιστράφηκε γύρω από ορισμένα θέματα τα οποία εξετάστηκαν από πολλές οπτικές γωνίες.
Ένα πολύ μεγάλο μέρος των σχετικών ερευνών επικεντρώθηκε στη γλώσσα LOGO. H γλώσσα LOGO κι η διδακτική της χρήση, αποτελούν ένα ιδιαίτερο κεφάλαιο το οποίο δεν θα εξετάσουμε εδώ. Υπενθυμίζεται ότι η γλώσσα LOGO αποτελεί ένα υποσύνολο της LISP με δυνατότητες διαχείρισης μιας "χελώνας" που σχεδιάζει στην οθόνη (ή στο έδαφος) κι άρα ως γλώσσα προγραμματισμού εντάσσεται στην κατηγορία των γλωσσών συναρτησιακού προγραμματισμού. Αν κι ο συναρτησιακός προγραμματισμός ως εισαγωγικό μάθημα στους αλγόριθμους και τον προγραμματισμό έχει πολλούς θιασώτες (για παράδειγμα το MIT και το Πανεπιστήμιο της Κύπρου χρησιμοποιούν τη γλώσσα Scheme, το Πανεπιστήμιο της Grenoble σε ορισμένες περιπτώσεις τη LOGO και σε άλλες τη LISP σε εισαγωγικά μαθήματα προγραμματισμού - δες αντίστοιχα Abelson H. [1985], Keravnou E.T. [1995], Viviet G. [1988]), ωστόσο η παρούσα εργασία ερευνά τα σχετικά με τον κλασσικό "επιτακτικό" προγραμματισμό[2] κι έτσι δεν θα εξεταστούν οι εργασίες οι σχετικές με τη LOGO .
Εκτός από τη LOGO, τα υπόλοιπα αντικείμενα τα οποία διερευνήθηκαν υπήρξαν σχετικά περιορισμένα: ιδιαιτερότητες του προγραμματισμού σε σχέση με άλλα αντικείμενα (π.χ. μαθηματικά, φυσική κλπ), θέματα σχετικά με μερικά βασικά δομικά στοιχεία των προγραμμάτων όπως οι μεταβλητές, οι επαναληπτικές δομές (οι βρόχοι), οι δομές επιλογών (iff...then...else), η διαχείριση των συμβολοσειρών (strings). Βέβαια υπήρξαν κι ερευνητικές εργασίες σε άλλα είδη θεμάτων όπως για παράδειγμα τη διδασκαλία του λογικού προγραμματισμού και τις σχετικές αντιλήψεις των σπουδαστών - ο αριθμός όμως των εργασιών αυτών υπήρξε περιορισμένος (δες Hook K. et als [1988], Taylor J. et als [1989]).
Οι έρευνες σχετικά με τη διδασκαλία και την εκμάθηση της Πληροφορικής - και ιδιαίτερα για τον προγραμματισμό των H/Y - έχουν γνωρίσει μια σημαντικότατη ανάπτυξη τα τελευταία 30-40 χρόνια. Οι έρευνες αυτές δεν έχουν βέβαια γνωρίσει μια σύμμετρη ανάπτυξη, δηλαδή όλα τα σχετικά αντικείμενα δεν έχουν ερευνηθεί στον ίδιο βαθμό: για παράδειγμα o προγραμματισμός των H/Y έχει ίσως τη μερίδα του λέοντος στο σύνολο των ερευνητικών δραστηριοτήτων κι οι έρευνες που σχετίζονται με τη διδασκαλία εισαγωγικών εννοιών στην Πληροφορική (τα λεγόμενα προβλήματα του αλφαβητισμού στην Πληροφορική ή τον προγραμματισμό) είναι πολύ περισσότερες των υπολοίπων. Υπενθυμίζουμε ότι έχουν ερευνηθεί κυρίως αντικείμενα όπως:
- τα προβλήματα της διδασκαλίας και της κατανόησης των μεταβλητών,
- οι δομές επανάληψης (βρόχοι),
- οι εντολές επιλογής (εντολές τύπου if then else κλπ) όπως η LISP ή λογικού προγραμματισμού όπως η Prolog κλπ σε επιτακτικές γλώσσες προγραμματισμού (π.χ. Pascal, σε αντιδιαστολή με γλώσσες συναρτησιακού προγραμματισμού),
- η αναδρομικότητα κυρίως σε γλώσσες στις οποίες η αναδρομικότητα είναι κυρίαρχη (όπως η LOGO).
Στο σύνολο των σχετικών εργασιών ωστόσο, παρά το μεγάλο εύρος της θεματικής, υπάρχει ένας κοινός παρονομαστής: μια ανεπάρκεια θεωρητικού πλαισίου.
Με τον όρο θεωρητικό πλαίσιο εννοούμε ένα πλαίσιο αναφοράς, ένα σύνολο υποθέσεων δηλαδή, μέσα στο οποίο οι προτάσεις μιας ερευνητικής εργασίας (οι υποθέσεις εργασίας, οι αναλύσεις, τ' αποτελέσματα και το πεδίο ισχύος των) αποκτούν νόημα σε σχέση μ' αυτό που αποτελεί το ιδιαίτερο αντικείμενο της έρευνας: τα φαινόμενα δηλαδή της διδασκαλίας κι εκμάθησης των προγραμματιστικών εννοιών και του προγραμματισμού γενικότερα, σ' ένα περιβάλλον ειδικά οργανωμένο για το σκοπό αυτό (το εκπαιδευτικό σύστημα).
Ένα εύλογο ερώτημα είναι το εξής: όσοι διδάσκουν Πληροφορική και προγραμματισμό, για ποιο λόγο χρειάζονται ένα θεωρητικό πλαίσιο; Τι χρειάζεται ένα θεωρητικό πλαίσιο Διδακτικής για να διδάξει κάποιος τις επαναληπτικές δομές ή την κληρονομικότητα;
Το θεωρητικό πλαίσιο επιτρέπει τη νοηματοδότηση των διδακτικών φαινομένων και άρα τον καλύτερο έλεγχο της διδασκαλίας.
Ένα, ακραίο είναι η αλήθεια, παράδειγμα είναι το πέσιμο των μήλων: πριν το Νεύτωνα στα μάτια των ανθρώπων το πέσιμο τους δεν είχε εξήγηση. Τα μήλα απλώς πέφταν (και μάλιστα κάτω από τη μηλιά). Μετά όμως, χάρη στη θεωρία του, γνωρίζουμε ότι η Γη τα έλκει - και μάλιστα ότι και τα μήλα έλκουν τη Γη. Η θεωρία του Νεύτωνα επέτρεψε όχι μόνο να κατανοήσουμε την πτώση των μήλων, αλλά και όλων σωμάτων, σε όλο το Σύμπαν, να γίνουν προβλέψεις φαινομένων, να κατασκευαστούν δορυφόροι κλπ.
Βέβαια η Διδακτική της Πληροφορικής, δεν έχει τέτοιες φιλοδοξίες. Μπορεί όμως να θέσει ένα πλαίσιο για την κατανόηση των δυσκολιών των μαθητών, την αντιμετώπιση των συστηματικών λαθών τους και την πιο αποτελεσματική διδασκαλία: για παράδειγμα ο εκπαιδευτικός να γνωρίζει εκ των προτέρων τα πιθανά εμπόδια που θα συναντήσουν οι μαθητές και να προετοιμάσει κατάλληλα το μάθημα.
Δυο προκαταρκτικές παρατηρήσεις επιβάλλονται:
- θα πρέπει ίσως να καταστήσουμε σαφές το γεγονός ότι η Διδακτική (της Πληροφορικής, αλλά και των Μαθηματικών, της Φυσικής κλπ) διακρίνεται ως ξεχωριστός κλάδος από μια σειρά άλλων κλάδων όπως η παιδαγωγική, η γνωστική ψυχολογία, η επιστημολογία κλπ κατά τούτο: η διδακτική όχι μόνο επικεντρώνεται ιδιαίτερα στα προβλήματα της διδασκαλίας αλλά και κάνει αποκλειστικές αναφορές στο προς διδασκαλία αντικείμενο, δηλαδή θεωρεί τα σχετικά φαινόμενα στο πλαίσιο της ιδιαίτερου επιστημονικού κλάδου στον οποίο αναφέρεται (στην περίπτωση μας της Πληροφορικής κι ιδιαίτερα του προγραμματισμού).
- μια δεύτερη παρατήρηση αφορά στην έννοια της "θεωρίας": η θεωρία εξυπονοεί ένα συναφές και μη αντιφατικό εννοιολογικό πλαίσιο το οποίο αποσκοπεί στην ερμηνεία και πρόβλεψη φαινομένων σχετικών μ' ένα συγκεκριμένο πεδίο.
Για να δώσουμε ένα παράδειγμα, αν ένας ερευνητής προτείνει σε μια ομάδα μαθητών μια σειρά από ερωτήσεις ώστε να εξακριβώσει τις αντιλήψεις τους τις σχετικές με την έννοια της μεταβλητής, οφείλει ν' αποσαφηνίσει και να διευκρινίσει τις υποθέσεις που κάνει:
- ότι δηλαδή πράγματι υπάρχουν κάποιες ιδιαίτερες αντιλήψεις των μαθητών
- ότι οι απαντήσεις των μαθητών στα συγκεκριμένα ερωτήματα που θέτει θα τον βοηθήσουν στην διερεύνηση των αντιλήψεων αυτών κλπ.
Στη μελέτη των διδακτικών φαινομένων που μας απασχολούν, κεντρικό ρόλο παίζουν οι λεγόμενες αντιλήψεις των σπουδαστών: πρόκειται για ένα σύνολο υποθετικών γνώσεων τις οποίες ο ερευνητής αποδίδει στο μαθητή ή το σπουδαστή προκειμένου να περιγράψει και να προβλέψει ορισμένες από τις αντιδράσεις του. Οι αντιλήψεις αυτές μπορούν να έχουν διάφορες πηγές: μπορεί εξίσου καλά να προέρχονται από τον κοινωνικό περίγυρο, την καθημερινή εμπειρία αλλά και τις ίδιες τις διδακτικές πρακτικές κλπ.
Οι αντιλήψεις λοιπόν λειτουργούν ως ένα είδος γνώσεων - αποτελούν στην πραγματικότητα μια γνώση η οποία καθοδηγεί την πράξη. Οι αντιλήψεις αυτές δεν είναι βέβαια άμεσα παρατηρήσιμες: συνάγουμε την ύπαρξη τους (δηλαδή την θεωρητική ύπαρξη τους) από την παραγωγή των μαθητών και σπουδαστών (τους αλγόριθμους και προγράμματα τους, τις απαντήσεις και τα σχόλια τους κ.ά.). Η ύπαρξη συστηματικών λαθών - λαθών δηλαδή που έχουν έναν επίμονο και διαρκή, γενικευμένο χαρακτήρα - αποδίδεται στη ύπαρξη σχετικών αντιλήψεων.
Το λάθος δηλαδή δεν είναι μόνο το αποτέλεσμα της άγνοιας, της αβεβαιότητας, της τύχης - όπως θεωρούν οι εμπειρικιστικές ή μπηχεβιοριστικές θεωρίες μάθησης, αλλά είναι και το αποτέλεσμα μιας προγενέστερης γνώσης, που κάποτε ήταν αποτελεσματική, είχε ενδιαφέρον, αλλά τώρα αποδεικνύεται λανθασμένη ή απλά ακατάλληλη. Tα λάθη αυτού του τύπου δεν είναι απρόβλεπτα, ούτε "πλάνες" - παράγονται από εμπόδια.
Παραθέτουμε ορισμένα παραδείγματα:
Απλοϊκές αντιλήψεις: το παράδειγμα του ανθρωπομορφισμού
Ένα παράδειγμα εδραιωμένης αντίληψης, «κλασσικό» στο είδος του, αντιστοιχεί στην ονομαζόμενη ανθρωπομορφική αντίληψη. O σχετικός όρος οφείλεται στον Pea R. D. [1984] και χρησιμοποιείται για να δηλώσει το γεγονός ότι οι αρχάριοι προγραμματιστές πολλές φορές ερμηνεύουν τα προγράμματα και γενικότερα την επικοινωνία τους με ένα πληροφορικό σύστημα όχι με βάση τους συντακτικούς και σημασιολογικούς κανόνες (syntax, semantics) της χρησιμοποιούμενης γλώσσας (προγραμματισμού, γλώσσας εντολών κλπ), αλλ' αποδίδοντας στο αντίστοιχο πρόγραμμα ένα νόημα ευρύτερο του πραγματικού, σαν να επρόκειτο για έναν διάλογο μ' άνθρωπο. H ανθρωπομορφική αντίληψη έχει διάφορες εκφράσεις, όπως αναφέρει και ο Pea. Ως μια τέτοια εκδήλωση ανθρωπομορφισμού θεωρούμε το γεγονός ότι, κυρίως οι νεαροί μαθητές, έχουν την τάση - τις πρώτες φορές που χρησιμοποιούν έναν τερματικό σταθμό ή έναν μικροϋπολογιστή - να θεωρούν ότι μπορούν να έχουν «διάλογο» με το σύστημα, όπως στον παρακάτω διάλογο (πρόκειται για εντελώς αυθεντικό περιστατικό):
Mαθητής : MY NAME IS GEORGE. WHAT IS YOUR NAME ?
Πληρ. σύστ. : Bad command or missing file
Μαθητής : ........
O όρος ανθρωπομορφική αντίληψη αντιστοιχεί στην ερευνητική υπόθεση ότι η λανθασμένη ερμηνεία του προγράμματος οφείλεται σε μια λανθασμένη αντίληψη (δηλαδή σε μια υποθετική γνώση των μαθητών) που ονομάζεται ανθρωπομορφική γιατί οι μαθητές συμπεριφέρονται σαν το πληροφορικό σύστημα να διέθετε μια αυτόνομη ανθρώπινη νόηση χωρίς αυτό να σημαίνει βέβαια ότι οι μαθητές πιστεύουν στ' αλήθεια στην ύπαρξη μιας αυτόνομης νόησης στο «εσωτερικό» του H.Y. Απλώς συμπεριφέρονται σαν... Ανάλογη αντίληψη με αυτήν είναι εκείνη κατά την οποία οι νεαροί μαθητές μεταφέρουν στο προγραμματιστικό περιβάλλον στρατηγικές επίλυσης προβλημάτων από άλλα περιβάλλοντα
- χωρίς να κάνουν τις απαραίτητες τροποποιήσεις. Αν, για παράδειγμα, προταθεί σε αρχάριους μαθητές το ακόλουθο πρόγραμμα:
EMVADON:= VASIS * YPSOS
READLN (VASIS);
READLN (YPSOS);
WRITELN (EMVADON);
...
και τους ζητηθεί να προβλέψουν το αποτέλεσμα της εκτέλεσης του (αν για παράδειγμα δοθούν οι τιμές 8 και 4 στις μεταβλητές VASIS και YPSOS αντίστοιχα), το σύνολο των μαθητών προβλέπει ως απάντηση τον αριθμό 32 (Pea R. D. [1984], Dagdilelis V. [1986]). H απάντηση αυτή θα ήταν βέβαια ορθή αν επρόκειτο για μια συνηθισμένη άσκηση σχολικής γεωμετρίας όχι όμως για ένα πρόγραμμα H.Y.
Το γεγονός ότι το φαινόμενο αυτό έχει διαπιστωθεί:
- με μαθητές προερχόμενους από τρεις τουλάχιστον διαφορετικές χώρες,
- οι οποίοι έχουν διδαχθεί τα σχετικά αντικείμενα από διαφορετικούς καθηγητές - που χρησιμοποίησαν βέβαια και διαφορετικές μεθόδους διδασκαλίας -
Αντιλήψεις σχετιζόμενες με τη χρήση επαναληπτικών διαδικασιών
O ανθρωπομορφισμός αυτός, ας τον ονομάσουμε «απλοϊκό», φαίνεται να εξαφανίζεται σχετικά γρήγορα με την πάροδο του χρόνου - χωρίς ν' απαιτηθεί κάποια ιδιαίτερη διδακτική μέθοδος. Άλλες όμως μορφές λανθασμένης ερμηνείας αλγορίθμων και προγραμμάτων φαίνονται να είναι περισσότερο επίμονες κι εμφανίζονται και σε λιγότερο αρχάριους σπουδαστές: για παράδειγμα η χρήση των βρόχων και γενικότερα των επαναληπτικών διαδικασιών, παραμένει πολύ συχνά ένα θέμα το οποίο οι σπουδαστές δεν κατανοούν απόλυτα.
Οι περιπτώσεις στις οποίες αναφερόμαστε παραπάνω μπορούν να δώσουν την εντύπωση του περιθωριακού φαινομένου, την εντύπωση δηλαδή ότι δεν παίζουν ουσιαστικό ρόλο στην πορεία του διδασκόμενου. Τούτο όμως δεν αληθεύει γιατί ορισμένες αντιλήψεις των μαθητών συνδεόμενες για παράδειγμα με τη χρήση των βρόχων - αποτελούν ουσιαστικό ανασταλτικό παράγοντα στην πορεία και η υπέρβαση τους είναι απαραίτητη για την πρόοδο του μαθητή.
Τα είδη των συστηματικών λαθών που αναφέραμε παραπάνω αφορούν σε αρχάριους μαθητές και ένα εύλογο ερώτημα που προκύπτει είναι το ακόλουθο: συστηματικά λάθη ή δυσκολίες εμφανίζονται και σε σπουδαστές λιγότερο αρχάριους; H απάντηση είναι και πάλι καταφατική.
Η αναδρομή
Σ' ένα διαφορετικό επίπεδο αναφέρουμε επίσης τις δυσκολίες που συχνά συναντούν οι σπουδαστές στη χρήση αναδρομικών διαδικασιών. Αν και η αναδρομή αποτελεί ένα σπουδαίο διανοητικό εργαλείο για την αλγοριθμική επίλυση προβλημάτων και χαρακτηρίζεται από την μεγάλη της απλότητα, σύμφωνα τουλάχιστον με τη γνώμη πολλών επιστημόνων (Arsac J. [1983]), ωστόσο η χρήση αναδρομικών διαδικασιών φαίνεται πως είναι εξαιρετικά δυσχερής όχι μόνο για τους νεαρούς μαθητές, αλλά ακόμη και για σπουδαστές πανεπιστημιακού επιπέδου. Το πρόβλημα της κατασκευής αναδρομικών διαδικασιών έχει διερευνηθεί εκτεταμένα σε νεαρά παιδιά σχολικής ηλικίας κι εφήβους (παράδειγμα οι σχετικές μελέτες για τη χρήση της γλώσσας LOGO), αλλά, απ' όσο γνωρίζουμε, έχει ελάχιστα μελετηθεί σε σπουδαστές πέραν της δευτεροβαθμίου εκπαιδεύσεως (εκτός από μια σειρά ερευνών για τη χρήση της γλώσσας PROLOG). Παρ' όλη την έλλειψη σχετικών ερευνών, είναι ωστόσο γενικά αποδεκτή η παρατήρηση ότι συχνά οι σπουδαστές διαχειρίζονται με λανθασμένο τρόπο τις αναδρομικές διαδικασίες ή αδυνατούν να τις χρησιμοποιήσουν - και τούτο ακόμη κι όταν τα προτεινόμενα προβλήματα έχουν λύσεις που περιγράφονται με προφανή τρόπο σε άλλο περιβάλλον. Ας θεωρήσουμε το παράδειγμα ενός κλασσικού προβλήματος: επιθυμούμε από ένα κείμενο να εξαλείψουμε τα περίσσια κενά (αν υπάρχουν) ανάμεσα στις λέξεις του (μια διαδικασία συνήθης σε επεξεργασία κειμένου). Ενώ η μέθοδος για την εξάλειψη των περίσσιων κενών είναι προφανής, ωστόσο η αλγοριθμική περιγραφή μιας τέτοιας διαδικασίας είναι λιγότερο τετριμμένη και η περιγραφή μιας αναδρομικής συνάρτησης F(κείμενο, κείμενο) η οποία θα δεχόταν ως όρισμα ένα κείμενο και θα έδινε ως αποτέλεσμα το ίδιο κείμενο απαλλαγμένο από τα περίσσια κενά, είναι ακόμη πιο δυσχερής.
Ακόμη, η απευθείας σχεδίαση ή κατασκευή σχημάτων με «αναδρομική» δομή, (δηλαδή με δομή η οποία μπορεί να περιγραφεί αναδρομικά)
Οι ακαδημαϊκοί και οι επαγγελματίες προγραμματιστές: η σχέση με τα «λάθη»
H τελευταία κατηγορία προγραμματιστών για τους οποίους τίθεται το ερώτημα των «δυσκολιών» είναι οι έμπειροι προγραμματιστές. Υπάρχουν συστηματικά λάθη στους επαγγελματίες προγραμματιστές; Μπορούν τα λάθη αυτά ν' αποδοθούν σε λανθασμένες αντιλήψεις των προγραμματιστών; H απάντηση είναι και πάλι καταφατική - αν και τούτο μοιάζει με παράδοξο: πώς είναι δυνατό οι πεπειραμένοι προγραμματιστές να κάνουν συστηματικά λάθη; Πώς είναι δυνατό να εκφράσουν λανθασμένες αντιλήψεις πεπειραμένοι προγραμματιστές;
Αρχικά είναι βέβαια γνωστό ότι, γενικά, το παραγόμενο λογισμικό όχι μόνο δεν είναι απαλλαγμένο λαθών αλλ' επιπλέον η εκσφαλμάτωση του (debugging) αποτελεί έναν εξαιρετικό δύσκολο τομέα κι ασφαλώς έναν από τους δαπανηρότερους στην παραγωγή λογισμικού (αργότερα θα έχουμε την ευκαιρία να αναφερθούμε εκτενέστερα στο θέμα). H ανάλυση των λαθών (για παράδειγμα στο εισαγωγικό μέρος του Beizer B. [1983]) δείχνει ότι η λανθασμένη χρήση βρόχων ή η λανθασμένη-ελλιπής απόδοση αρχικών τιμών σε μεταβλητές (initializing) αποτελούν συνήθη σφάλματα στους επαγγελματίες προγραμματιστές.
Πέραν όμως της γενικής αυτής θεώρησης των σφαλμάτων, θα μπορούσαν να αναφερθούν και συγκεκριμένα παραδείγματα προβλημάτων η λύση των οποίων συχνά χαρακτηρίζεται από λάθη. Μερικά τέτοια παραδείγματα δίνονται παρακάτω:
1. Το πρόβλημα της δυαδικής αναζήτησης (binary search).
Πρόκειται για ένα διάσημο πρόβλημα, τετριμμένο, τουλάχιστον εκ πρώτης όψεως, και μεγέθους που δεν ξεπερνά τις 10-15 γραμμές. Παρ' όλ' αυτά η πολυπλοκότητα της λύσεώς του είναι μεγάλη. O τρόπος με τον οποίο ο προγραμματιστής αναπαριστά νοητά την λειτουργία του αλγόριθμου παίζει σπουδαίο ρόλο στην επιλογή των αναλλοίωτων σχέσεων (invariances) κι επομένως στην κατασκευή του αλγόριθμου (δες για παράδειγμα Papadakos Nikos [1988]). O Lesuisse R. [1983] αναλύοντας πολλούς δημοσιευμένους αλγορίθμους δυαδικής αναζήτησης σε έγκυρα επιστημονικά περιοδικά, επισημαίνει το γεγονός ότι οι αλγόριθμοι κατασκευάστηκαν σε πολλές περιπτώσεις με βάση μια νοητή αναπαράσταση της λειτουργίας τους, με αποτέλεσμα ορισμένοι απ' αυτούς να εμφανίζουν μια σειρά ατελειών και λαθών. O Lesuisse κατατάσσει τους αλγόριθμους σε τέσσερις κατηγορίες και κάνει την υπόθεση ότι πηγή των λαθών είναι τελικά ο τρόπος της σύλληψης και κατασκευής του αλγόριθμου - με άλλα λόγια τα λάθη κι οι ασάφειες δεν είναι τυχαία αλλά η πηγή τους μπορεί να προσδιοριστεί στον ίδιο τον τρόπο κατασκευής τους.
2. Δυο προβλήματα επεξεργασίας κειμένου
Το πρώτο αναφέρεται σε μια μικρή διαδικασία (procedure) η οποία όταν δεχθεί ως όρισμα ένα κείμενο επιστρέφει ως αποτέλεσμα ένα κείμενο ευθυγραμμισμένο δεξιά. O αλγόριθμος προτάθηκε μαζί με την απόδειξη του από τον Naur P. [1972 b] και μάλιστα ως υπόδειγμα αποδεικτικής μεθοδολογίας, αλλά όπως δείχνει ο Lesuisse R. [1984], ο αλγόριθμος περιέχει λάθη. Ως πηγή των λαθών ο Lesuisse R. θεωρεί την λανθασμένη αντιμετώπιση του προβλήματος από τον Naur P. και πιο συγκεκριμένα στο γεγονός ότι ο Naur P. αντιμετώπισε μ' εσφαλμένο τρόπο τα ίδια τ' αντικείμενα τα οποία επεξεργαζόταν ο αλγόριθμος του (δηλαδή λέξεις, παραγράφους, προτάσεις). Το σημείο αυτό είναι σημαντικό και για τη δική μας εργασία, διότι ενισχύει την υπόθεση ότι η σχεδίαση ορθών αλγορίθμων δεν σημαίνει απλά την εφαρμογή ορισμένων τεχνικών, αλλά απαιτεί μια πολύ ριζικότερη μεταβολή στην αντιμετώπιση των προβλημάτων. Στο σημείο αυτό θα επανέλθουμε αργότερα.
Το δεύτερο παράδειγμα είναι ένα πρόβλημα επινοημένο από τους Henderson P., Snowdon R. [1972] ακριβώς για να χρησιμοποιηθεί ως παράδειγμα στη διδασκαλία του δομημένου προγραμματισμού (structured programming). Ζητείται η κατασκευή ενός αλγόριθμου για τη μέτρηση του πλήθους των λέξεων που υπάρχουν σε μια σειρά τηλεγραφημάτων (telegram flow analysis). Παρά τη φαινομενική απλότητα του προβλήματος, υπήρξαν μια σειρά δημοσιευμένες λύσεις - που περιείχαν λάθη όμως - από έμπειρους προγραμματιστές (αναφέρουμε ενδεικτικά τον Ledgard H. [1973]). Οι ιδιαιτερότητες του αλγορίθμου τον έχουν καταστήσει «κλασσικό» για τη διδασκαλία του δομημένου προγραμματισμού. Θα αναφερθούμε ιδιαίτερα στο πρόβλημα αυτό, διότι το χρησιμοποιήσαμε στα πειράματα που πραγματοποιήσαμε με σπουδαστές.
3. Λάθη, δοκιμές και σύγχρονη τεχνολογία λογισμικού
Ορισμένοι πληροφορικοί, έχοντας υιοθετήσει μια οπτική γωνία πλησιέστερα στις ανάγκες του επαγγελματία προγραμματιστή παρά στις ανάγκες του ακαδημαϊκού ερευνητή (θ' αναφερθούμε λεπτομερέστερα στο θέμα σε κατοπινές παραγράφους) θεωρούν ότι οι μοντέρνες μεθοδολογίες για την επικύρωση αλγορίθμων δεν εξασφαλίζουν οπωσδήποτε τη δημιουργία πιο αξιόπιστων αλγορίθμων κι εκθέτουν μια σειρά περιπτώσεων δημοσιευμένων αλγορίθμων οι οποίοι περιέχουν ασάφειες, λάθη, παραλείψεις κι εξαιρέσεις που δεν μνημονεύονται.
4.Ένας αλγόριθμος "αποκομιδής απορριμμάτων" (garbage collection)
Τέλος, αναφέρουμε και το παράδειγμα ενός αλγορίθμου "αποκομιδής απορριμμάτων" ο οποίος δημοσιεύτηκε στο έγκυρο περιοδικό CACM και μάλιστα βραβεύθηκε, αλλά περιείχε λάθη (αναφέρεται από τον Gries D. [1977] ).
Επιχειρώντας να διερευνήσουμε τα πιθανά αίτια, τις "πηγές" ορισμένων αντιλήψεων των μαθητών και σπουδαστών μπορούμε να διαπιστώσουμε τα εξής:
α) H αντίληψη του παραλληλισμού την οποία αναφέραμε, μπορεί να οφείλεται στην ελλιπή κατανόηση των αρχών λειτουργίας των πληροφορικών συστημάτων κι ιδιαίτερα στο γεγονός ότι τα προγράμματα - και μάλιστα τα μικροσκοπικά προγράμματα που συνήθως κατασκευάζουν οι σπουδαστές - εκτελούνται πολύ γρήγορα: It looks at the program all at once because It Is so fast σχολίασε ένας σπουδαστής όταν ρωτήθηκε σε μια σχετική έρευνα (Pea [1984], σελ. 4).
β) H απλοϊκή μορφή του ανθρωπομορφισμού (ο μαθητής που προσπαθεί να μάθει τ' όνομα του HY) μπορεί να βρίσκει την πηγή της στην περιρρέουσα ατμόσφαιρα της καθημερινής ζωής στην οποία οι HY (παλιότερα "ηλεκτρονικοί εγκέφαλοι") εμφανίζονται να πραγματοποιούν ολοένα και πιο εντυπωσιακά επιτεύγματα και άρα θα μπορούσε κανείς να συμπεράνει ότι οι ΗΥ διαθέτουν ένα είδος «ευφυΐας».
γ) Το λάθος κατά το οποίο οι μαθητές αποδίδουν τιμές χωρίς να λαμβάνουν υπόψη τους τον τρόπο με τον οποίο λειτουργεί το σύστημα οφείλεται ίσως στην εμπειρία από άλλα μαθήματα στα οποία βέβαια η σειρά με την οποία περιγράφονται τα δεδομένα (μήκος, πλάτος, σχετικός μαθηματικός τύπος) δεν παίζουν ουσιαστικό ρόλο στην επίλυση ενός προβλήματος υπολογισμού εμβαδού.
Οι πιθανές πηγές προέλευσης λοιπόν των αντιλήψεων αυτών μπορούν να είναι ποικίλες. Ορισμένες από τις αντιλήψεις αυτές - μολονότι λανθασμένες στη γενική τους έκφραση - έχουν κάποιο πεδίο εφαρμογών γεγονός που τις κάνει να είναι πιο "ανθεκτικές" σε μια ενδεχόμενη τροποποίηση τους. Η δημιουργία κι η εδραίωση μιας αντίληψης οφείλεται στο ότι - τουλάχιστον σε ορισμένες περιπτώσεις - η αντίληψη αυτή είναι λειτουργική. Αν για παράδειγμα σε κάποια είδη προβλημάτων η αντίληψη ενός σπουδαστή αποτελεί εργαλείο για την εξεύρεση μιας λύσης, τότε βέβαια η σχετική αντίληψη εδραιώνεται κι η τροποποίηση της θα είναι ακόμη πιο δύσκολη.
Στην περίπτωση αυτή η λανθασμένη αντίληψη μπορεί ν' αποτελέσει ένα πραγματικό εμπόδιο στην πρόοδο του.
Μια καινούρια γνώση στο σχολικό περιβάλλον (με τη γενική έννοια του όρου) θεσμοθετείται από τη στιγμή που από τον καθηγητή προσδιορίζεται ρητά. Ωστόσο είναι προφανές ότι η κατανόηση των νέων εννοιών δεν ακολουθεί κατ' ανάγκη τη σειρά και τους ρυθμούς της διδασκαλίας. Μια καινούρια έννοια αποκτά νόημα ανάλογα με τις καταστάσεις στις οποίες λειτούργησε, ανάλογα με τα προβλήματα που λύθηκαν χάρη σε αυτήν. Οι γνώσεις των μαθητών, έτσι όπως εξελίσσονται μέσα στο χρόνο, σπάνια ακολουθούν ένα γραμμικό μοντέλο ανάπτυξης - δηλαδή συνεχούς προοδευτικής πορείας μέχρι ένα επιθυμητό σημείο. Πολύ συχνά βρίσκονται σε αντίθεση με το διδακτικό περιβάλλον (φυσικός χώρος για τη γεωμετρία, προσομοιούμενη πραγματικότητα αν πρόκειται για προσομοίωση σε ΗΥ, θεωρητική αν πρόκειται για μια αξιωματικοποιημένη δομή) και καμιά φορά υφίστανται ταυτοχρόνως αντιλήψεις ασύμβατες κι αντιφατικές. Το εμπόδιο προβάλλει λοιπόν όχι ως μια έλλειψη γνώσης, αλλά ως μια γνώση που δεν είναι πια κατάλληλη. Το εμπόδιο έχει μερικά χαρακτηριστικά:
- πρόκειται για μια γνώση η οποία λειτουργεί αποτελεσματικά σε μια σειρά καταστάσεων και για ορισμένες τιμές των διδακτικών μεταβλητών (δες παρακάτω).
- το εμπόδιο είναι μια γνώση η οποία όταν πρόκειται να προσαρμοσθεί σε άλλες καταστάσεις - ή σε άλλες τιμές των διδακτικών μεταβλητών - προκαλεί ιδιαίτερα λάθη, αναγνωρίσιμα κι αναλύσιμα ως προς το εμπόδιο
- το εμπόδιο - δηλαδή αυτή η ιδιαίτερη γνώση - ανθίσταται στις μετατροπές.
- το εμπόδιο λοιπόν δεν μπορεί να ξεπεραστεί παρά μόνο χάρη σε ιδιαίτερες καταστάσεις απόρριψης.
Ακόμη και χαρακτηριστικά παραδείγματα δεν είναι επαρκή για να τροποποιήσουν την αντίληψη αυτή. Για παράδειγμα οι μαθητές αποδέχονται εύκολα το γεγονός ότι η Ελλάδα ενώ έχει κατά πολύ μικρότερο εμβαδόν από την Αφρικανική Ήπειρο έχει σχεδόν το ίδιο μήκος ακτών με αυτή. Τούτο όμως δεν τους εμποδίζει να εφαρμόζουν στη συνέχεια - για παράδειγμα στο μάθημα της γεωμετρίας - την ίδια λανθασμένη αντίληψη ότι μεγαλύτερο εμβαδόν αντιστοιχεί σε μεγαλύτερη περίμετρο.
Οι λανθασμένες αντιλήψεις, όπως τουλάχιστον δείχνουν οι σχετικές έρευνες, μπορούν ακόμη να συνυπάρχουν και μ' άλλες γνώσεις (αντιλήψεις) οι οποίες να είναι ασύμβατες μ' αυτές ή ακόμη και αντιφατικές και να μην εμφανίζονται παρά μόνο κάτω από ειδικές συνθήκες. H ύπαρξη τους πάντως μπορεί να διαπιστωθεί από την συστηματική εμφάνιση τους, όταν πληρούνται οι κατάλληλες προϋποθέσεις. Οι αντιλήψεις των σπουδαστών οι σχετικές μ' ένα αντικείμενο πριν από τη διδασκαλία και μετά απ' αυτήν αποτελούν βέβαια ένα σημαντικότατο θέμα για τη διδακτική της Πληροφορικής. Εξάλλου ένα σημαντικό μεθοδολογικό πρόβλημα της διδακτικής είναι ακριβώς η σχεδίαση, πραγματοποίηση κι
ανάλυση τέτοιων καταστάσεων οι οποίες επιτρέπουν την εμφάνιση συγκεκριμένων αντιλήψεων των σπουδαστών.
Οι αντιλήψεις των σπουδαστών, εφ' όσον αποτελούν ένα είδος γνώσης, μπορούν να έχουν διαφορετικούς τρόπους έκφρασης. Έτσι μια αντίληψη μπορεί να εκφραστεί σαν αλγόριθμος ή σαν ένα είδος έμπρακτου θεωρήματος (thιoreme-en-acte) το οποίο δεν εκφράζεται ρητά αλλά εφαρμόζεται στην πράξη. Έτσι, αν για παράδειγμα μια συγκεκριμένη διαδικασία πρόκειται να εκτελεστεί ένα συγκεκριμένο πλήθος φορών, τότε η καταλληλότερη μορφή βρόχου είναι του τύπου FOR..DO..NEXΤ Τούτο έχει και μια δευτερεύουσα συνέπεια: οι σπουδαστές οι οποίοι είναι ιδιαίτερα εξοικειωμένοι μ' ένα στυλ προγραμματισμού (π.χ. με μια ορισμένη κλάση προβλημάτων ή με μια ορισμένη γλώσσα προγραμματισμού) μπορεί με ορισμένα έμπρακτα θεωρήματα περιορισμένης χρηστικότητας τα οποία βέβαια μπορούν ν' αποτελέσουν ανασταλτικούς παράγοντες σε περίπτωση εργασίας σε ένα άλλο προγραμματιστικό περιβάλλον.
Συνοψίζοντας θα μπορούσαμε ν' αναφέρουμε ότι οι αντιλήψεις των μαθητών και των σπουδαστών δεν είναι άμεσα παρατηρήσιμες, αλλά μόνον έμμεσα, αναλύοντας τον τρόπο με τον οποίο αντιδρούν στα πλαίσια ορισμένων καταστάσεων. H διδακτική στοχεύει κατ' αρχήν στη διαπίστωση των αντιλήψεων αυτών, προκειμένου να επιτύχει τη βασική της επιδίωξη: την μετατροπή των αντιλήψεων αυτών σε άλλες λειτουργικότερες και πιο αποτελεσματικές - γεγονός που συνήθως περιγράφεται ως απόκτηση γνώσεων.
Η διδασκόμενη γνώση κι ο μετασχηματισμός της
Μια βασική θέση της διδακτικής είναι ότι η διδασκόμενη γνώση δεν ταυτίζεται με την αντίστοιχη επιστημονική γνώση. Για παράδειγμα η αναδρομικότητα, ή ακριβέστερα οι αναδρομικοί αλγόριθμοι, ως επιστημονική έννοια έχουν διερευνηθεί σε βάθος από τους μαθηματικούς κι έχουν χρησιμοποιηθεί ευρύτατα από τους πληροφορικούς. Ωστόσο οι αληθινές τους διαστάσεις στο επαγγελματικό πεδίο και στην επιστημονική τους χρήση δύσκολα μπορούν να παρουσιαστούν μέσα στο σύνηθες εκπαιδευτικό περιβάλλον.
Συνήθως μια έννοια δεν μπορεί να περιγραφεί πλήρως κι ακόμη περισσότερο να γίνει κατανοητή, από έναν απλό τυπικό ορισμό. Κατά κανόνα μία έννοια αποκτά το πλήρες νόημα της μέσα σ' ένα πλαίσιο αναφοράς το οποίο περιλαμβάνει τις συγγενείς προς αυτήν έννοιες, τα προβλήματα τα οποία μπορεί να επιλύσει - όπως κι εκείνα που δεν μπορεί - κλπ. Το πλαίσιο αυτό ονομάζεται εννοιολογικό πεδίο (champ conceptuel).
Αυτό που συνήθως παρουσιάζεται σε μια εκπαιδευτική διαδικασία είναι ένα τμήμα του εννοιολογικού πεδίου, εκείνο το τμήμα που ικανοποιεί τις τρέχουσες διδακτικές ανάγκες. Σε ορισμένες περιπτώσεις η μερική αυτή παρουσίαση μπορεί ακόμη και να στρεβλώσει το επιστημονικό νόημα της αντίστοιχης εννοίας. Χρησιμοποιώντας ένα παράδειγμα από τα Μαθηματικά, η έννοια της απόστασης έχει μια τρέχουσα διδακτική χρήση αρκετά διαφορετική από την μαθηματικά ορισμένη. Ένα ακόμη πιο χαρακτηριστικό παράδειγμα αποτελούν οι δεκαδικοί αριθμοί των οποίων η εισαγωγή όχι μόνο δεν έχει καμία σχέση με την αναγκαιότητα χρήσης τους, αλλά αποτελεί πιθανότατα και το βασικό αίτιο για την δημιουργία λανθασμένων αντιλήψεων στους νεαρούς μαθητές.
Επιπλέον, αν μια περιγραφή της προς διδασκαλία γνώσης μπορεί να βρεθεί στα διδακτικά εγχειρίδια και τις σημειώσεις, θα πρέπει να σημειωθεί ότι η περιγραφή αυτή, κατά κανόνα, δεν αναφέρει τον λόγο ύπαρξης της γνώσης αυτής. H Πληροφορική αποσκοπεί, όπως όλες οι επιστήμες, στην επίλυση προβλημάτων. Τα προβλήματα αυτά μπορούν να προέρχονται από την ίδια την εξέλιξη της επιστήμης, να είναι "εσωτερικά" ή να βρίσκουν την προέλευση τους σε άλλες πηγές (τεχνική, επαγγελματικές ανάγκες, άλλες επιστήμες...). Τα εννοιολογικά εργαλεία κάθε επιστήμης επιτρέπουν την επίλυση ακριβώς των προβλημάτων αυτών. Το να δοκιμάσει λοιπόν κανείς να μεταδώσει μια γνώση χωρίς να καταστήσει γνωστά τα προβλήματα τα οποία μπορούν να επιλυθούν χάρη σ' αυτήν, είναι σαν μια απάντηση σε μια ερώτηση που δεν τέθηκε ποτέ.
Μια γνώση, έτσι όπως εκφράζεται σε μια δεδομένη στιγμή, αποτελεί επίσης το αποτέλεσμα απ' όλες τις διαμάχες που προηγήθηκαν για την εξέλιξη της. Έτσι, για παράδειγμα οι τρέχουσες απόψεις για τον δομημένο προγραμματισμό και την χρήση των διαφόρων "jumps" (exit, goto κλπ) αποτελούν το προϊόν όλων των συζητήσεων και διαμαχών που προηγήθηκαν.
Είναι προφανές ότι όλη αυτή η προβληματική δεν μπορεί να μεταφερθεί αυτούσια στη σχολική ή την πανεπιστημιακή αίθουσα.
Αντίθετα, οι νέες έννοιες που εισάγονται στην εκπαιδευτική διαδικασία υπακούουν σε διαφορετικούς κανόνες:
- παρουσιάζονται κατά κανόνα σε συνδυασμό με προβλήματα ορισμένου τύπου και με ορισμένη μορφή
- παρουσιάζονται με τρόπο τέτοιο ώστε ν' ανταποκρίνονται στις (υποτιθέμενες) τρέχουσες γνώσεις των σπουδαστών
- κατακερματίζονται σύμφωνα με τις διδακτικές ανάγκες: στα βιβλία και τις σημειώσεις χωρίζονται σε παραγράφους, σε ενότητες διδάξιμες σε περίοδο ακεραίου αριθμού εξαμήνων ή ετών.
Οι επιστημονικές γνώσεις λοιπόν, σπάνια διδάσκονται αυτές καθαυτές στις διάφορες σχολικές βαθμίδες. Το γεγονός αυτό είναι μάλιστα πιο σαφές στις χαμηλότερες εκπαιδευτικές βαθμίδες. Επί της ουσίας, η μόνη εκπαιδευτική βαθμίδα όπου η επιστημονική γνώση αποτελεί αντικείμενο διδασκαλίας είναι ο χώρος μέσα στον οποίο παράγεται, δηλαδή το πανεπιστήμιο. Αντίθετα, στις άλλες βαθμίδες της εκπαίδευσης διδάσκεται ένα σώμα γνώσης, το οποίο χαρακτηρίζεται από τον όρο «σχολικές γνώσεις», οι οποίες προκύπτουν κατά κανόνα από τις επιστημονικές γνώσεις μιας περιοχής ως προϊόν μιας διαδικασίας μετασχηματισμού. Ο διδακτικός μετασχηματισμός χρησιμοποιήθηκε για πρώτη φορά στο πλαίσιο της Διδακτικής των Μαθηματικών για να καταδειχθεί αυτή τη διαδικασία. Πρέπει να τονισθεί ότι η έννοια του διδακτικού μετασχηματισμού είχε ήδη δημιουργηθεί από τον κοινωνιολόγο Michel Verret το 1975.
Με την έννοια του διδακτικού μετασχηματισμού οριοθετούνται οι γενικοί μηχανισμοί που επιτρέπουν το πέρασμα από ένα «αντικείμενο επιστημονικής γνώσης» σε ένα «αντικείμενο διδασκαλίας». Ξεκινώντας από τη διάκριση ανάμεσα στην «επιστημονική γνώση» (όπως αυτή παράγεται από την επιστημονική κοινότητα στο πλαίσιο της επιστημονικής έρευνας) και στη «διδαχθείσα γνώση» (όπως αυτή μπορεί να παρατηρηθεί στην καθημερινή σχολική πρακτική) η Διδακτική μελετά πως γίνεται ο μετασχηματισμός των επιστημονικών εννοιών ώστε να καταστούν αντικείμενο διδασκαλίας.
Στο πλαίσιο αυτό, ένα περιεχόμενο γνώσης έχοντας ορισθεί ως διδακτέα γνώση, υπόκειται σε ένα σύνολο από προσαρμοστικούς μετασχηματισμούς που θα το καταστήσουν ικανό να πάρει θέση ανάμεσα στα αντικείμενα διδασκαλίας. Συνεπώς, η διανοητική «εργασία» η οποία μετατρέπει ένα αντικείμενο γνώσης για διδασκαλία σε αντικείμενο διδασκαλίας, αποκαλείται διδακτικός μετασχηματισμός.
Ο διδακτικός μετασχηματισμός δεν περιγράφει ωστόσο μόνο τη μετατροπή μιας επιστημονικής γνώσης σε διδακτική γνώση με τη μορφή κεφαλαίων σχολικών βιβλίων για παράδειγμα. Διαπνέει, αντιθέτως, όλο το φάσμα της διδακτικής πράξης και είναι σε στενή σχέση με τον τόπο, το κοινό και τους παιδαγωγικούς και διδακτικούς στόχους που τίθενται. Επηρεάζει συνεπώς ουσιαστικά το πρόγραμμα σπουδών, τα αναλυτικά προγράμματα και τη διδακτική πρακτική.
Η έννοια του διδακτικού μετασχηματισμού επιτρέπει να χαρακτηρίσουμε το μετασχηματισμό της γνώσης ανάμεσα σε μια κατάσταση αναφοράς και μια κατάσταση μετάδοσης. Η κατάσταση αναφοράς αφορά αυτό που θεωρείται (σε κάποια χρονική περίοδο) επιστημονική γνώση όπως αυτή παράγεται από τους επιστήμονες. Η κατάσταση μετάδοσης αφορά όλο το σχολικό σύστημα, αποτέλεσμα του οποίου είναι η σχολική γνώση αλλά και η γνώση που έχει προσκτηθεί από τους μαθητές (Κόμης, 2001).
Όπως είδαμε, ο διδακτικός μετασχηματισμός αφορά καταρχήν μια σειρά από μετασχηματισμούς (δες παρακάτω σχήμα) στους οποίους συμμετέχουν τόσο οι δημιουργοί αναλυτικών προγραμμάτων όσο και οι συγγραφείς σχολικών βιβλίων, οι σχολικοί σύμβουλοι, κλπ.).
Αντικείμενο γνώσης --> Αντικείμενο για διδασκαλία --> Αντικείμενο διδασκαλίας
Σταδιακή μετατροπή της γνώσης από επιστημονική σε «σχολική»: διδακτική μετατόπιση
Το «αντικείμενο γνώσης» προσδιορίζεται συνεπώς από το χώρο της «επιστημονικής γνώσης», αυτό δηλαδή που αναγνωρίζεται από την επιστημονική κοινότητα ως τέτοιο. Εάν πάρουμε για παράδειγμα τα «Λειτουργικά Συστήματα» στην Πληροφορική, θα δούμε ότι το αντικείμενο αυτό δεν είναι διδάξιμο, αυτό καθαυτό, τουλάχιστον εκτός του χώρου παραγωγής του, δηλαδή τα Πανεπιστήμια και τα Ινστιτούτα.
Συγκεκριμένοι μηχανισμοί πρέπει να τεθούν σε λειτουργία ώστε η εν λόγω γνώση (όπως είναι καταγεγραμμένη στις επιστημονικές δημοσιεύσεις και στα ακαδημαϊκά εγχειρίδια) να βγει από τον επιστημονικό της χώρο και να εισαχθεί λειτουργικά και αποτελεσματικά στη διδακτική πράξη. Από τη στιγμή που πραγματοποιηθούν τέτοιου τύπου λειτουργίες, η διδακτέα γνώση είναι αναμφισβήτητα διαφορετική από την επιστημονική γνώση που χρησιμεύει ως αναφορά της. Πρέπει επίσης να τονισθεί ότι το επιστημολογικό της περιβάλλον είναι επίσης διαφορετικό όπως και η σημασία της και η εμβέλεια των εννοιών που την δομούν.
Η έννοια του διδακτικού μετασχηματισμού συνεπώς υπονοεί ότι το πέρασμα από την επιστημονική γνώση στη διδαχθείσα γνώση δεν είναι ποτέ άμεσο. Επιπλέον, ο καθορισμός μιας επιστημονικής γνώσης σε αντικείμενο διδασκαλίας τροποποιεί σε μεγάλο βαθμό τη φύση της γνώσης αυτής αφού αφενός αλλάζουν τα ερωτήματα που μπορούν να απαντηθούν μέσω αυτής της γνώσης αλλά και οι σχέσεις που η ίδια διατηρεί με άλλες.
Ο διδακτικός μετασχηματισμός μπορεί στο πλαίσιο αυτό να θεωρηθεί ως μια διαδικασία με δύο κύρια στάδια και οι μετασχηματισμοί που πραγματοποιούνται μπορούν να κατηγοριοποιηθούν σε δύο ομάδες: σε ένα εξωτερικό μετασχηματισμό και σε ένα εσωτερικό μετασχηματισμό.
Οι ιδιαίτερες προσαρμογές που πραγματοποιεί κάθε εκπαιδευτικός γίνονται κατά το δεύτερο στάδιο του διδακτικού μετασχηματισμού. Συνεπώς ο εκπαιδευτικός δεν παίζει ρόλο παρά στο δεύτερο στάδιο και οι αρμοδιότητές του κατά το μετασχηματισμό είναι ιδιαίτερα περιορισμένες. Ο διδακτικός μετασχηματισμός, γίνεται σε μεγάλο βαθμό έξω από αυτόν. Αντίθετα, το πρώτο στάδιο συνιστά αυτό που αποκαλείται στη Διδακτική (με μια δόση ειρωνείας είναι η αλήθεια) «νοόσφαιρα». Με τον όρο «νοόσφαιρα» εννοείται ο χώρος όλων αυτών που προγραμματίζουν τα περιεχόμενα της διδασκαλίας, δημιουργούν τα αναλυτικά προγράμματα, συγγράφουν τα σχολικά εγχειρίδια, κλπ. Η νοόσφαιρα παίζει το ρόλο του ενδιάμεσου ανάμεσα στο σύστημα διδασκαλίας και στο ευρύτερο κοινωνικό περιβάλλον. Βέβαια, ακόμα κι αν οι εκπαιδευτικοί είναι ανίσχυροι να επέμβουν στα πλαίσια της νοόσφαιρας, μπορούν να τροποποιήσουν το «κείμενο της γνώσης»: κάτω από το πρίσμα αυτό, ο διδακτικός μετασχηματισμός συνίσταται για τον εκπαιδευτικό στο να οικοδομήσει τα μαθήματά του αντλώντας από τις επιστημονικές γνώσεις, παίρνοντας υπόψη του τους προσανατολισμούς και τις οδηγίες των αναλυτικών προγραμμάτων (διδακτέες γνώσεις) ώστε να τις προσαρμόσει στην τάξη του. Ο μετασχηματισμός επιβάλει την εξαγωγή μιας γνώσης από το πλαίσιό της (πανεπιστημιακό, κοινωνικό, κλπ.) και την επανένταξή της μέσα στο ιδιαίτερο πλαίσιο της τάξης.
Πρέπει στο σημείο αυτό να τονιστεί ότι τα αντικείμενα που θεωρούνται ως «αντικείμενα διδασκαλίας» δεν προέρχονται σε καμία περίπτωση από «απλουστεύσεις» πιο σύνθετων αντικειμένων που προέρχονται από την επιστημονική κοινότητα. Είναι, αντιθέτως, το αποτέλεσμα μιας διδακτικής προσπάθειας, μιας αποσύνθεσης, μιας κατασκευής, που τα κάνει να διαφέρουν ποιοτικά.
Ο όρος του μετασχηματισμού υπογραμμίζει ότι η γνώση δεν μπορεί να μεταδοθεί αυτή καθαυτή και ο όρος του διδακτικού καθιστά εμφανή την αναγκαιότητα εύρεσης κανόνων αυτού του μετασχηματισμού που να είναι κατάλληλοι στη δομή της γνώσης που πρέπει να προσκτηθεί και τρόπους που λαμβάνουν υπόψη τους τη διαδικασία της μάθησης.
Το διδακτικό συμβόλαιο
Ορισμένες φορές οι μαθητές, αλλά κι οι σπουδαστές, δίνουν απαντήσεις που φαίνονται παράλογες. Το πιο "κλασσικό" παράδειγμα τέτοιου παραλογισμού αποτελεί το γνωστό πρόβλημα της ηλικίας του καπετάνιου: σ' ένα πλοίο υπάρχουν 26 πρόβατα και 10 κατσίκες. Πόσων χρόνων είναι ο καπετάνιος; H συντριπτική πλειοψηφία των μαθητών 8-9 ετών απαντά ότι ο καπετάνιος είναι 36 ετών. Δύσκολα θα μπορούσαμε ν' αποδώσουμε τον παραλογισμό αυτό σ' έλλειψη γνώσεων ή πνευματικών ικανοτήτων - προφανώς οι μαθητές της 3ης δημοτικού σχολείου έχουν τ' απαραίτητα εφόδια ώστε ν' απαντήσουν σωστά. Ορισμένοι ερευνητές έδειξαν ότι στην πραγματικότητα μια τέτοια συμπεριφορά μπορεί να εξηγηθεί μέσα σ' ένα ευρύτερο πλαίσιο, γιατί η απάντηση των μαθητών μπορεί να είναι παράλογη με την κοινή λογική αλλά είναι απολύτως συμβατή με τη συνήθη σχολική λογική . Τα σχολικά προβλήματα υπακούουν στους εξής κανόνες:
α) ένα συνηθισμένο πρόβλημα έχει μια και μοναδική απάντηση
β) για την απάντηση αυτή: όλα τα δεδομένα του προβλήματος πρέπει να χρησιμοποιηθούν καμιά άλλη ένδειξη ή δεδομένο δεν είναι απαραίτητη
H σωστή χρήση των δεδομένων γίνεται χάρη σ' ένα τυποποιημένο σχήμα εφαρμογής οικείων διαδικασιών, οι οποίες πρέπει απλά να συνδυαστούν με τον κατάλληλο τρόπο.
Τέλος το αποτέλεσμα πρέπει να υπακούει σε ορισμένους κανόνες κοινής λογικής: σ' ένα πρόβλημα με αυγά η απάντηση δεν πρέπει να είναι "2,3 αυγά", μια ηλικία ανθρώπου δεν μπορεί να είναι 200 ετών κλπ.
Τα συνηθισμένα προβλήματα στη Δευτεροβάθμια εκπαίδευση επιπέδου δεν χαρακτηρίζονται βέβαια από ένα τόσο τυποποιημένο σύστημα - όμως ορισμένα από τα χαρακτηριστικά αυτά μπορούν να εντοπιστούν και στο επίπεδο της.
M' έναν γενικό τρόπο δεχόμαστε την ύπαρξη ενός συνόλου άγραφων, έμμεσων αλλά υπαρκτών και ισχυρών κανόνων οι οποίοι προσδιορίζουν ορισμένα χαρακτηριστικά των προβλημάτων που προτείνονται μέσα στα εκπαιδευτικά πλαίσια αλλά και γενικότερα των αμοιβαίων "νομίμων" συμπεριφορών τόσο του καθηγητή όσο και των μαθητών και σπουδαστών. Το σύνολο των κανόνων αυτών ονομάζεται διδακτικό συμβόλαιο.
Το διδακτικό συμβόλαιο χαρακτηρίζει κατά μεγάλο μέρος τις αλληλεπιδράσεις μεταξύ σπουδαστών και καθηγητή. Χαρακτηρίζει επίσης το είδος των προβλημάτων τα οποία είναι "νόμιμα". Για παράδειγμα, την περίοδο της πρώτης επαφής με τον προγραμματισμό ένα βασικό πρόβλημα που τίθεται στους αρχαρίους είναι ακριβώς ο προσδιορισμός της φύσης των ζητουμένων: ενώ συνήθως η λύση των προβλημάτων έγκειται στον προσδιορισμό κάποιων αριθμών, αλγεβρικών παραστάσεων ή γεωμετρικών σχημάτων, στον προγραμματισμό αυτό που συνήθως ζητείται είναι μια μέθοδος επίλυσης (ένα πρόγραμμα δεν επιλύει ένα πρόβλημα, αλλά μια κλάση προβλημάτων, περιγράφει δηλαδή μια μέθοδο επίλυσης). Έτσι πολλές φορές οι σπουδαστές χωρίς μεγάλη εμπειρία στον προγραμματισμό, δυσκολεύονται να κατανοήσουν τη διαφορά ανάμεσα στο παράδειγμα και τη μέθοδο. Αν προταθεί ως πρόβλημα ο προσδιορισμός ενός τρόπου για την αντιμετάθεση των περιεχομένων δύο μεταβλητών:
για παράδειγμα αν Α=3 και B=5 τότε επιθυμούμε μετά την εφαρμογή της διαδικασίας να έχουμε B=5 και Α=3, πολλοί μαθητές αλλά και σπουδαστές προτείνουν σα λύση την εκχώρηση
B:=5
A:=3
Ίσως θεωρεί κανείς ότι στην τριτοβάθμια εκπαίδευση τα φαινόμενα αυτά εξαλείφονται γρήγορα, δεδομένου ότι οι σπουδαστές "σκέφτονται" πιο ορθολογικά - κατά κάποιο τρόπο το "συμβόλαιο" τείνει να παίξει έναν ρόλο ασήμαντο. Παρά ταύτα το είδος των ερωτήσεων που τίθενται, για παράδειγμα κατά τη διάρκεια των εξετάσεων, συχνά μαρτυρά ότι οι σπουδαστές δείχνουν μια τάση προσαρμογής στις υποτιθέμενες προθέσεις του καθηγητή παρά στο ρητά ζητούμενο που εκφράζει η εκφώνηση: δεν είναι για παράδειγμα σπάνιο φαινόμενο αν ζητηθεί ένα τμήμα αλγορίθμου ή ένας αλγόριθμος από ένα ευρύτερο σύνολο μεθόδων, οι σπουδαστές ν' απαντήσουν δίνοντας πολύ περισσότερα απ' όσα ζητούνται.
Στα πλαίσια αυτά θεωρούμε επίσης ότι μπορεί να υφίσταται μια αντιδιαστολή ανάμεσα σ' αυτό που ονομάζουμε ιδιωτική πραγματικότητα και στην δημόσια εικόνα. 'Oπως κι αλλού έχουμε αναφέρει, η προσωπική, ιδιωτική εργασία ενός επιστήμονα μπορεί να είναι - και κατά κανόνα είναι - τελείως διαφορετική από την τελική μορφή των αποτελεσμάτων που δημοσιοποιούνται. Κατά μία τελείως ανάλογη έννοια η προσωπική εργασία ενός μαθητή ή σπουδαστή, τα στοιχεία εκείνα που του χρησιμεύουν ως δείκτης για την πορεία του, που αποτελούν για τον ίδιο μια επιβεβαίωση της ορθότητας των επιλογών του, μπορεί να είναι τελείως διαφορετικά από τα στοιχεία που παρουσιάζει ως τελική εργασία. Για παράδειγμα, στις εξετάσεις η προσωπική του εργασία (που συνήθως αντικατοπτρίζεται σ' αυτό που ονομάζουμε πρόχειρο) μπορεί να είναι τελείως διαφορετική από την τελική, επίσημη μορφή του γραπτού (το καθαρό). Το πρώτο αντιστοιχεί περισσότερο στις προσωπικές του επιλογές, αποτελεί ένα δείγμα του τι πιστεύει ο ίδιος για την εργασία του, ενώ το δεύτερο κατ' ανάγκη είναι προσαρμοσμένο στις απαιτήσεις του διδακτικού συμβολαίου.
Η βασική υπόθεση της Διδακτικής
H βασική υπόθεση της Διδακτικής είναι διπλή:
α) το υποκείμενο (ο σπουδαστής) μαθαίνει - δηλαδή αυξάνει και τροποποιεί τις γνώσεις του χάρη στην αλληλεπίδραση του με το περιβάλλον του. H αλληλεπίδραση αυτή στο εκπαιδευτικό σύστημα έγκειται βασικά σε μια δραστηριότητα επίλυσης προβλημάτων σε συνθήκες που προσδιορίζει, μερικώς τουλάχιστον, ο εκπαιδευτής-καθηγητής. H διδασκαλία δεν είναι τίποτε άλλο παρά η δημιουργία ενός περιβάλλοντος το οποίο αποσκοπεί στο να μετασχηματίσει τις αντιλήψεις των σπουδαστών. H διδακτική έχει σα στόχο της την ανάλυση των διαδικασιών αυτών και γενικότερα την εξήγηση κι ερμηνεία των διδακτικών φαινομένων.
β) Βασική επιστημολογική υπόθεση της Διδακτικής είναι ότι τα προβλήματα είναι πηγή και κριτήριο της γνώσης (Vergnaud 1982, σ. 220). Από τη μια η γνώση πηγάζει από προβλήματα, η γνώση κατά κανόνα δημιουργείται προκειμένου να δοθούν λύσεις σε προβλήματα κι απ' την άλλη μια διανοητική παραγωγή αποτελεί γνώση στο βαθμό που είναι σημαντική, που επιτρέπει τη λύση μιας κλάσης προβλημάτων με αποτελεσματικό τρόπο.
Κεντρική έννοια των υποθέσεων αυτών είναι το πρόβλημα. Για να είναι δυνατή η μάθηση πρέπει οι σπουδαστές να διαθέτουν κάποιους τρόπους επίλυσης του προτεινόμενου προβλήματος. H μάθηση συντελείται όταν μέσα από την επίλυση του προβλήματος ο σπουδαστής τροποποιεί τους τρόπους αυτούς, τους βελτιώνει, δημιουργεί νέους, υποβιβάζει την αξία παλαιοτέρων. Σε ορισμένες περιπτώσεις ο έλεγχος αυτός μπορεί να πραγματοποιηθεί μέσα από τροποποιήσεις του ίδιου του προβλήματος. Όταν οι τροποποιήσεις αυτές παίζουν ένα ρόλο στην μάθηση ονομάζονται διδακτικές μεταβλητές.
Ορισμένες μεταβλητές είναι εγγενείς στο πρόβλημα. Αν για παράδειγμα ένα παιδί μπορεί να μετρήσει μέχρι το δέκα με τα δάχτυλα, τότε η απαρίθμηση ενός συνόλου 20 στοιχείων προφανώς ελαττώνει την αξία της μεθόδου αυτής. H επιλογή του πληθικού αριθμού του προς απαρίθμηση συνόλου είναι πολύ σημαντική γιατί αν η τιμή του είναι "γειτονική" με το 10, τα παιδί θα τείνει να προσαρμόσει την ήδη γνωστή διαδικασία (με τα δάκτυλα) κι επομένως η διαδικασία αυτή θα έχει όλες τις πιθανότητες να "επιζήσει" μετά τη δοκιμασία, ενώ ένας πολύ μεγάλος πληθικός αριθμός μπορεί να "μπλοκάρει" τελείως το παιδί.
Αναφερόμενοι στον προγραμματισμό, μπορούμε να διαπιστώσουμε την ύπαρξη διδακτικών μεταβλητών. Προκειμένου να επιδειχθούν τα προτερήματα του δομημένου προγραμματισμού, προφανώς καταλληλότερο είναι ένα σχετικά πολύπλοκο και μεγάλο πρόβλημα, αφού οι μέθοδοι της δοκιμής-λάθους ή της απευθείας επίλυσης είναι τελείως αναποτελεσματικές στις περιπτώσεις αυτές - ενώ είναι λιγότερο δαπανηρές σε απλά προβλήματα. Το μέγεθος κι η πολυπλοκότητα του προτεινομένου προβλήματος είναι ουσιαστικοί παράγοντες στην περίπτωση αυτή. H ανάγκη σχεδίασης κι ελέγχου αλγορίθμων μπορεί αντίθετα να επιτευχθεί με ρύθμιση μεταβλητών που είναι εξωγενείς ως προς το πρόβλημα: μπορεί για παράδειγμα οι σπουδαστές να έχουν ορισμένο μόνο χρόνο μηχανής για την κατασκευή των προγραμμάτων τους, γεγονός που θα τους αναγκάσει να τελειοποιήσουν τους αλγορίθμους τους και να τους ελέγξουν προσεκτικά πριν περάσουν στην πληκτρολόγηση του τελικού κώδικα - ενώ αντίθετα η πιο συνηθισμένη τακτική είναι η προσφυγή στην άμεση πληκτρολόγηση κώδικα ο οποίος διορθώνεται ανάλογα με τα λάθη που διαπιστώνονται. H δυνατότητα ή όχι χρήσης εντολών όπως η goto ή ορισμένου τύπου jumps μπορεί επίσης σε συνδυασμό με την κατάλληλη επιλογή προβλημάτων να παίξει έναν ουσιαστικό ρόλο στην κατανόηση κι αποτελεσματική χρήση των διαφόρων τύπων βρόχων.
Η Διδακτική ως πειραματική επιστήμη
Το πρόβλημα στην εκπαιδευτική διαδικασία, όπως δείχνουν και τα παραπάνω, δεν πρέπει να νοηθεί σαν μια "εκτός πλαισίου", context-free πρόταση. Τα προβλήματα πρέπει μάλλον να θεωρούνται σαν μια πρόταση η οποία πρέπει να επιλυθεί μέσα σε ορισμένα πλαίσια - και τα πλαίσια αυτά ρυθμίζουν κατά τρόπο ουσιαστικό τις διαδικασίες που είναι θεμιτές, "νόμιμες" για την επίλυση του προβλήματος, καθώς κι εκείνες που είναι αποτελεσματικές. Τα προβλήματα προς επίλυση μέσα στα πλαίσια αυτά ονομάζονται διδακτικές καταστάσεις.
Σε μια διδακτική κατάσταση όλοι εκείνοι οι παράγοντες οι οποίοι ανταποκρίνονται σε μια ορισμένη ενέργεια του υποκειμένου και γίνονται αντιληπτοί απ' αυτό ονομάζονται περιβάλλον.
Για παράδειγμα ο καθηγητής (ο οποίος αντιδρά μ' έναν ορισμένο τρόπο σε μια απάντηση ενός σπουδαστή), ο συνάδελφος ο οποίος αποδέχεται ή απορρίπτει ένα επιχείρημα ή μια απόδειξη, το πληροφορικό σύστημα που παράγει ένα αποτέλεσμα ή ένα μήνυμα κατά την εκτέλεση ενός προγράμματος, η ηλεκτρονική μηχανή τσέπης αποτελούν μέρη του περιβάλλοντος. Είναι αυτονόητο πως η εκάστοτε "αντίδραση" του περιβάλλοντος συντελεί στη διαδικασία της μάθησης κι η δημιουργία του πλέον κατάλληλου περιβάλλοντος αποτελεί βασικό μέλημα της Διδακτικής.
Πολλοί ερευνητές διακρίνουν διαφόρους τύπους διδακτικών καταστάσεων όπως: καταστάσεις ενέργειας στις οποίες ευνοείται κυρίως η κατασκευαστική ικανότητα των μαθητών γι' απλά αντικείμενα όπως ένα γεωμετρικό σχήμα, καταστάσεις έκφρασης ή διατύπωσης οι οποίες ευνοούν την κατασκευή κι εκμάθηση μοντέλων και επιστημονικών "γλωσσών". Ιδιαίτερο ρόλο ανάμεσα τους παίζουν οι καταστάσεις επικοινωνίας, στις οποίες η επικοινωνία (δηλαδή μια διατύπωση για τη μετάδοση ενός μηνύματος) παίζει καθοριστικό ρόλο (Laborde [1982]): αν η ποιότητα μιας διατύπωσης δεν επιτρέπει την ακριβή μετάδοση ενός μηνύματος, τότε επανεξετάζεται όχι μόνο η ίδια η διατύπωση κι η χρησιμοποιούμενη "γλώσσα" αλλά και η υποκείμενη γνώση, καταστάσεις επικύρωσης οι οποίες έχουν ως επίκεντρο την παραγωγή επιχειρημάτων για την επικύρωση μιας σχέσης, μιας πρότασης μιας κατασκευής (για παράδειγμα ενός αλγόριθμου ή ενός προγράμματος). Σε ορισμένες περιπτώσεις οι καταστάσεις απόφασης (Balacheff [1991]) απαιτούν ένα ορισμένο όριο βεβαιότητας, χωρίς ωστόσο να είναι απαραίτητες οι αποδείξεις (δηλαδή η ρητή διατύπωση εκείνων των επιχειρημάτων που δικαιολογούν την βεβαιότητα αυτή).
Καταστάσεις επισημοποίησης οι οποίες υφίστανται υπό την ευθύνη του καθηγητή κι αποσκοπούν στο να δώσουν το χαρακτήρα της θεσμικά αναγνωρισμένης γνώσης, σε ορισμένες από τις προσωπικές γνώσεις του σπουδαστή.
Ένα μεγάλο τμήμα της έρευνας της Διδακτικής είναι επιστημολογικού χαρακτήρα: αναζήτηση των πηγών και της εξέλιξης των γνώσεων, των εννοιών που πρόκειται να διδαχθούν. Ένα τμήμα της περιλαμβάνει επίσης την επεξεργασία ενός θεωρητικού πλαισίου, ή ακριβέστερα μιας προβληματικής όπως το περιγράψαμε παραπάνω. Το σημαντικότερο όμως τμήμα της είναι καθαρά πειραματικού χαρακτήρα: η Διδακτική είναι μια κατεξοχήν πειραματική επιστήμη. Με βάση τις προηγούμενες (θεωρητικές και επιστημολογικές) αναλύσεις προσδιορίζεται ένα σύνολο a priori αντιδράσεων των σπουδαστών και στη συνέχεια η υλοποίηση της σχετικής διδακτικής κατάστασης επιτρέπει την αντιπαραβολή των όσων είχαν προβλεφθεί σε σχέση με τα όσα πράγματι συνέβησαν - προκειμένου να προσαρμοσθεί κατάλληλα η όλη σύλληψη.
Θα πρέπει ίσως να τονιστεί ότι στην τρέχουσα μεθοδολογία της Διδακτικής (ακριβέστερα: στην κυρίαρχη ευρωπαϊκή σχολή Διδακτικής) επικρατεί ως μέθοδος ανάλυσης η ποιοτική κι όχι η ποσοτική ανάλυση. Τούτο γιατί η Διδακτική δεν ενδιαφέρεται τόσο για την κατανομή των διαφόρων φαινομένων μέσα στον μαθητικό ή σπουδαστικό πληθυσμό αλλά μάλλον για τα αίτια που προκαλούν τα φαινόμενα αυτά καθώς και για τους πιθανούς τρόπους μεταβολής τους, ενδιαφέρεται δηλαδή περισσότερο για ποιοτικά παρά για ποσοτικά χαρακτηριστικά.
Μια τυπική έρευνα λοιπόν στη Διδακτική της Πληροφορικής περιλαμβάνει τα εξής στάδια:
- Διατύπωση του συγκεκριμένου ερωτήματος. Προσδιορισμός θεωρητικών εργαλείων.
- Επιστημολογική διερεύνηση: διερευνάται η "γένεση" των εννοιών που εμπλέκονται, τα προβλήματα που τις δημιούργησαν. Διερευνώνται επίσης οι σχέσεις των εννοιών αυτών με άλλες παρεμφερείς.
- Επισκόπηση παρόμοιων εργασιών.
- Προσδιορισμό των αντιλήψεων των σπουδαστών.
- Κατασκευή διδακτικών καταστάσεων οι οποίες έχουν σα σκοπό τον μετασχηματισμό των αντιλήψεων των σπουδαστών.
- Αξιολόγηση των διδακτικών καταστάσεων και βελτίωση τους.
Σύνοψη
Τα παραπάνω παραδείγματα φαίνονται να δείχνουν ότι σφάλματα και λάθη που δεν έχουν τυχαίο χαρακτήρα υφίστανται και στην κοινότητα των επαγγελματιών και των επιστημόνων προγραμματιστών. Στα ειδικευμένα τεχνικά και επιστημονικά περιοδικά μπορεί κανείς εύκολα να βρει παραδείγματα άρθρα και μελέτες για τα λανθασμένα προγράμματα (για παράδειγμα στο Gerhard S., Yelowitz L. [1976]) - και μάλιστα σε μεγάλο βαθμό. O J. Arsac [1983] θεωρεί ότι τα λάθη στον προγραμματισμό είναι τελικά τόσο συνηθισμένα ώστε η δημοσίευση λανθασμένων αλγορίθμων σε έγκυρα επιστημονικά περιοδικά δεν αποτελεί σκάνδαλο όπως θ' αποτελούσε η δημοσίευση λανθασμένων αποτελεσμάτων σε μαθηματικά περιοδικά. Δεν είναι βέβαιο ότι η δημοσίευση λανθασμένων αποτελεσμάτων σε μαθηματικά περιοδικά αποτελεί σκάνδαλο (για σχετική συζήτηση δες και Hanna G. [1983], de Millo R.A. and als [1979] και Gasser J. [1989]) αλλά σίγουρα η δημοσίευση αλγορίθμων που περιέχουν λάθη δεν αποτελεί σκάνδαλο.
Το λάθος υφίσταται στην κοινότητα των προγραμματιστών κι επιπλέον είναι κι αναγνωρισμένο, νόμιμο κι αποτελεί κι αντικείμενο ερευνών. Οι πληροφορικοί εξάλλου κάνουν και διακρίσεις ανάμεσα στις έννοιες του λάθους, του σφάλματος, της εξαιρέσεως (Cristian F. [1985]). Παρ' όλ' αυτά υπάρχει ακόμη ένα ερώτημα: τα λάθη αυτά έχουν συστηματικό χαρακτήρα; Λάθη, για παράδειγμα, γίνονται σ' όλες τις ανθρώπινες δραστηριότητες κι είναι απίθανο να υπάρχουν μηχανικοί οι οποίοι δεν έχουν κάνει υπολογιστικά λάθη κατά τη σχεδίαση νέων συστημάτων. Αν θεωρήσουμε ότι η κατασκευή λογισμικού εντάσσεται στην ίδια κατηγορία ανθρώπινων δραστηριοτήτων με τη σχεδίαση μίας γέφυρας ή ενός πλοίου είναι φυσικό να υπάρχει ένα ποσοστό λαθών σε κάθε πρόγραμμα. H θέση μας που υποστηρίζουμε είναι ότι ορισμένα από τα λάθη αυτά έχουν συστηματικό χαρακτήρα. Τα επιχειρήματα μας είναι δύο:
- Αρχικά το ποσοστό των λαθών είναι υπερβολικά υψηλό. Χωρίς να υπεισέλθουμε σε λεπτομέρειες, αναφέρουμε ότι σε ορισμένες ακραίες περιπτώσεις το κόστος εκσφαλμάτωσης, βελτίωσης κλπ είναι υπερπολλαπλάσιο του κόστους κατασκευής (αναφέρεται ενδεικτικά η περίπτωση λογισμικού με κόστος κατασκευής 75 $/εντολή και κόστος συντήρησης κλπ 4000 $/εντολή Boehm W. [1979] αλλά και Arsac J. [1983]). Ακόμη και σήμερα, το κόστος της βελτίωσης του λογισμικού είναι πολύ υψηλό και η δυσπιστία με την οποία οι χρήστες αντιμετωπίζουν τις πρώτες εκδόσεις νέων προγραμμάτων είναι χαρακτηριστική.
- Όμως όχι μόνο τα λάθη του
λογισμικού είναι πολυπληθή αλλά συχνά κι οφείλονται σε λανθασμένη μεθοδολογία
προγραμματισμού - αυτή είναι η θέση πολλών από τους επιφανέστερους επιστήμονες
της Πληροφορικής (μερικά παραδείγματα θα δοθούν παρακάτω). Αυτό υπήρξε και το
βασικό κίνητρο για τη δημιουργία στα τέλη της δεκαετίας του 1960 της «σχολής»
του δομημένου προγραμματισμού. H χρήση λανθασμένης μεθοδολογίας - ή μάλλον η έλλειψη μεθόδου - οδηγεί νομοτελειακά σε λάθη συχνά, λάθη συστηματικά, χρονοβόρα και πολλές φορές καταστροφικά, λάθη, εν γένει, με υψηλό οικονομικό και κοινωνικό κόστος.
Όπως θα προσπαθήσουμε να δείξουμε, πολύ συχνά οι σπουδαστές κατασκευάζουν τα προγράμματα τους βασιζόμενοι απλά σε μια «νοητή εκτέλεση» (mental execution) ή μια «νοητή προσομοίωση» (mental simulation) ακολουθώντας έτσι την ίδια τεχνική την οποία ακολουθούσαν οι προγραμματιστές αυθόρμητα κατά την πρώτη περίοδο της ανάπτυξης της πληροφορικής και η οποία ακριβώς καταπολεμήθηκε από τη σχολή του δομημένου προγραμματισμού και τις μοντέρνες μεθοδολογίες κατασκευής κι επικύρωσης λογισμικού - ήταν δηλαδή ένα από τα βασικά αίτια γι' αυτήν τη σχεδόν «αλλαγή παραδείγματος». Έτσι η μελέτη της «προγραμματιστικής» συμπεριφοράς των σπουδαστών που προτείνουμε φαίνεται να είναι δικαιολογημένη και σημαντική. Κεντρικό άξονα της εργασίας μας αποτελεί λοιπόν και η δημιουργία κι ανάλυση διδακτικών καταστάσεων οι οποίες αποσκοπούν ακριβώς στον μετασχηματισμό των λανθασμένων αντιλήψεων των σπουδαστών
Μερικές πρόσθετες παρατηρήσεις
H ύπαρξη αυτών των συγκεκριμένων δυσκολιών που αντιμετωπίζουν οι σπουδαστές και τις οποίες ονομάσαμε με το γενικό όνομα "δυσλειτουργίες", παραμένει σε μεγάλο βαθμό μια ιδιαίτερη διαπίστωση όσων ακριβώς διδάσκουν προγραμματισμό. Κατά παράδοξο (αλλά όχι ανεξήγητο) τρόπο η διαδεδομένη αντίληψη είναι η αντίθετη. Το γεγονός δηλαδή ότι η διδασκαλία της Πληροφορικής, ή ακριβέστερα του προγραμματισμού, έχει πολύ νεαρή ηλικία, όπως εξάλλου κι η ίδια η Πληροφορική, δυσκολεύει, κατά κάποιο τρόπο την κοινωνική αναγνώριση των δυσκολιών αυτών: για παράδειγμα η ύπαρξη δυσκολιών στη διδασκαλία - ή μάλλον στην εκμάθηση - των Μαθηματικών ή των Φυσικών επιστημών αναγνωρίζεται ακόμη και θεσμικά. Το γεγονός ότι «τα Μαθηματικά είναι δύσκολα» όχι μόνο θεωρείται κοινός τόπος, αλλ' επιπλέον στις περισσότερες χώρες ο κλάδος της Διδακτικής των Μαθηματικών αποτελεί έναν κλάδο ερευνών επιστημονικά και θεσμικά κατοχυρωμένο. Δεν συμβαίνει όμως ακόμα αυτό με τον προγραμματισμό - τουλάχιστον όχι παντού. Επιπρόσθετα, η διδασκαλία του προγραμματισμού, λόγω της ιδιαίτερης ανάπτυξης της ίδιας της Πληροφορικής και της σχέσης της με τις εμπορικές και τεχνικές εφαρμογές, έχει συχνά έναν διττό χαρακτήρα: αποτελεί ένα αντικείμενο διδασκαλίας ισότιμο με τα Μαθηματικά, την Πολιτική Οικονομία ή τη Χημεία, το οποίο διδάσκεται στη δευτεροβάθμια ή την τριτοβάθμια εκπαίδευση με κοινό, στόχους και διδακτέα ύλη σαφώς καθορισμένα, αλλά αποτελεί συχνότατα κι αντικείμενο διδασκαλίας πολλών σχολών επιμόρφωσης, επαγγελματικής εκπαίδευσης και κατάρτισης, αντικείμενο απευθυνόμενο σε κοινό πολυποίκιλο: πτυχιούχους Πανεπιστημίου που επιμορφώνονται στη «χρήση των H.Y.», σε μελλοντικούς εκπαιδευτικούς οι οποίοι με τη σειρά τους θα το διδάξουν σε μαθητές, σε απόφοιτους Λυκείου οι οποίοι αποζητούν ένα επαγγελματικό εφόδιο, σε διάφορα ταχύρυθμα ή μη σεμινάρια που διοργανώνουν ιδιωτικοί και δημόσιοι φορείς κλπ. H διεσπαρμένη αυτή διδασκαλία του προγραμματισμού αναστέλλει, κατά κάποιο τρόπο τη συγκέντρωση στοιχείων και την οργανωμένη, συλλογική αντιμετώπιση των δυσκολιών αυτών.
Ίσως ο ιδιαίτερος χαρακτήρας παιχνιδιού που πήρε ο προγραμματισμός - μάλλον η Πληροφορική - και της κοινωνικής έκτασης του, να συντελεί επίσης στην μη αναγνώριση των ιδιαίτερων δυσκολιών της διδασκαλίας του. Για παράδειγμα πριν από μερικά χρόνια στο γαλλικό περιοδικό Esprit (τεύχος Φεβρουαρίου 1985) δύο υπεύθυνοι animateurs του Club Mediterranee (ενός είδους τουριστικού οργανισμού) εξηγούσαν πώς μάθαιναν στους συμμετέχοντες στα τουριστικά προγράμματα του Club τον προγραμματισμό και την «απλούστατη» BASIC σε 10 ώρες κατά τη διάρκεια των διακοπών, δίπλα στη θάλασσα (αναφέρεται από τον Arsac J. [1987], σελ. 24). Για να γίνει αντιληπτός αυτός ο χαρακτήρας παιχνιδιού στον οποίο αναφερθήκαμε, αρκεί ν' αντικαταστήσει κανείς τον «προγραμματισμό» με την «Φυσική»: όχι μόνο κανείς δεν θα διενοείτο να την διδάξει στη διάρκεια διακοπών στο Club Mediterranee, αλλά και μόνος ο ισχυρισμός ότι μαθαίνει κανείς τις βάσεις της, άνετα, σε 10 ώρες είναι αυτόχρημα γελοίος. Στην πραγματικότητα το να διδάξει κανείς Φυσική στην ακρογιαλιά δεν θα αποτελούσε καν διαφημιστικό επιχείρημα - μπορούμε με σιγουριά να ισχυριστούμε ότι μάλλον θ' απωθούσε τους υποψήφιους πελάτες παρά θα τους προσείλκυε.
Στην ίδια λογική του παιχνιδιού εντάσσεται επίσης το γεγονός ότι συχνά οι προσωπικοί H.Y. υπολογιστές βρίσκονται στα μεγάλα καταστήματα στο τμήμα των παιχνιδιών και η εμπορική τους κίνηση αυξάνει κατακόρυφα τα Χριστούγεννα. Ενώ όμως αναγνωρίζεται ότι τα "πειράματα Φυσικής" που πουλιούνται στα καταστήματα δεν έχουν παρά μια πολύ μακρινή σχέση με τη Φυσική των επαγγελματιών κι ερευνητών Φυσικών, αντίθετα η αγορά ενός προσωπικού υπολογιστή έχει πολύ συχνά ένα χαρακτήρα "επένδυσης". Αυτή η εικόνα του προγραμματισμού είναι σε πλήρη αντίθεση με τη θέση - για παράδειγμα - του Dijkstra E. W. [1982b], για τον οποίο :
Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians
H δημόσια εικόνα λοιπόν ενός προγραμματισμού που μπορεί να γίνει αντιληπτός γρήγορα κι άνετα σε λίγες ώρες ακόμη και στις διακοπές κι αποτελεί και παιχνίδι, αυτός ο προγραμματισμός-παιχνίδι όχι μόνο είναι ασυμβίβαστος με έναν προγραμματισμό που «... αποτελεί έναν από τους δυσκολότερους κλάδους των εφαρμοσμένων μαθηματικών... » αλλά και με την συνακόλουθη ιδέα των δυσκολιών που παρουσιάζονται κατά την διδασκαλία και την εκμάθηση του.
Βέβαια ο Dijkstra E. W. και το Club MediUrrame δεν αναφέρονται στον ίδιο προγραμματισμό όπως δεν είναι ίδια τα Μαθηματικά της προσχολικής ηλικίας και των ερευνητών μαθηματικών. Ότι όμως εννοείται με το γενικό όρο «προγραμματισμός» συχνά θεωρείται ως μια διανοητική δραστηριότητα η οποία όμως είναι πολύ απλή ή είναι ισοδύναμη με την εκμάθηση ορισμένων τεχνικών στοιχείων (για παράδειγμα των χαρακτηριστικών ενός H.Y. και μίας γλώσσας προγραμματισμού).
Είναι για παράδειγμα πασίγνωστο ότι για δεκαετίες - κι ίσως ακόμη και σήμερα - βιβλία που φέρουν στον τίτλο τους την έκφραση "προγραμματισμός H.Y." στην πραγματικότητα αποτελούν οδηγούς χρήσης μιας γλώσσας προγραμματισμού - ενώ μέχρι και πρόσφατα τα σχολικά εγχειρίδια στο μάθημα της Πληροφορικής είχαν ως περιεχόμενο έναν οδηγό χρήσης των windows (!).
Οι παλαιότερες εργασίες
Μια συνοπτική παρουσίαση μερικών σημαντικών ευρημάτων της διδακτικής της Πληροφορικής είναι χρήσιμη γιατί με μια γενική έννοια τα αποτελέσματα των σχετικών ερευνών "συνοψίζουν", κατά κάποιο τρόπο, αποτελούν ένα είδος, περιληπτικής παρουσίασης των αποτελεσμάτων της διδακτικής κι άρα δίνουν μια γενική εικόνα, χρήσιμη για να αντιληφθεί ο αναγνώστης το σημερινό επίπεδο γνώσεων μας στη διδακτική της Πληροφορικής.
Oι πρώτες εργασίες για την διδασκαλία και την εκμάθηση του προγραμματισμού εμφανίζονται στα τέλη της δεκαετίας του 1960, με προεξάρχον το κλασσικό πλέον βιβλίο του G. Μ. Weinberg για την ψυχολογία του προγραμματισμού (Weinberg G. Μ. [1969]). Βασικός άξονας του βιβλίου είναι η προσπάθεια για βελτίωση της προγραμματιστικής δραστηριότητας (δηλαδή βελτίωση της απόδοσης) σε ατομικό και συλλογικό επίπεδο. O Weinberg επισημαίνει ήδη μερικά σημεία τα οποία στα επόμενα χρόνια βρέθηκαν στο κέντρο της διαμάχης γύρω από το δομημένο προγραμματισμό. Σημειώνει, για παράδειγμα, το γεγονός ότι ο προγραμματισμός αποτελεί βέβαια μια ατομική δραστηριότητα, αλλά αποτελεί και μια δραστηριότητα συλλογική κι έτσι τα παραγόμενα προγράμματα προορίζονται πολλές φορές να χρησιμοποιηθούν από ανθρώπους - ο οποίοι θα τα ελέγξουν, θα τα διορθώσουν, θα τα βελτιώσουν, θα τα μεταφέρουν σε άλλο περιβάλλον κλπ. Κατά συνέπεια τα προγράμματα πρέπει, κατά κάποιο τρόπο, να είναι "αναγνώσιμα" - να είναι δηλαδή γραμμένα κατά τρόπο τέτοιο ώστε να "απευθύνονται" και σε ανθρώπους. Είναι ίσως αξιοσημείωτο το γεγονός ότι σχεδόν 30 χρόνια μετά, οι τελευταίες εργασίες του D.E. Knuth, σχετικά με το περιβάλλον προγραμματισμού CWEB. έχουν τον ίδιο σκοπό - όπως ο ίδιος αναφέρει σε συνέντευξη του[1]. O Weinberg επισημαίνει επίσης το γεγονός ότι ο όρος "προγραμματισμός" καλύπτει δραστηριότητες οι οποίες συστεγάζονται υπό την ίδια επωνυμία, αλλά διαφέρουν ως προς το περιεχόμενο τους:
The high school student and the engineer represent two ends of a rich spectrum of programmers. These ends may or may not be different...But.... there is a difference (ibid, σελ. 122)
Τούτο λοιπόν σημαίνει ότι τα προβλήματα στο ένα επίπεδο είναι διαφορετικά από τα προβλήματα στο άλλο επίπεδο και κατά συνέπεια κι οι λύσεις που μπορούν να προταθούν δεν μπορεί παρά να διαφέρουν.
Είναι επίσης αξιοσημείωτο ότι ο Weinberg αναφερόμενος στην εκμάθηση του προγραμματισμού θεωρεί ως κατάλληλες μεθόδους την ενδοεπισκόπηση, την παρατήρηση γενικότερα, τον πειραματισμό. Στο σημείο αυτό τάσσεται μάλλον με την πλευρά των πληροφορικών οι οποίοι θεωρούν ότι ο προγραμματισμός ως δραστηριότητα δεν ήταν ακόμη επιστήμη - στο τέλος της δεκαετίας του '60 - κι άρα δεν ήταν δυνατόν να διδαχθεί ως τέτοιος. O προγραμματισμός αποτελεί περισσότερο μια "τέχνη" (μια εμπειρική τέχνη) η οποία μεταδίδεται με όσμωση από τον "δάσκαλο" στο μαθητή αλλά δεν μπορεί να διδαχθεί με τις κλασσικές μεθόδους διδασκαλίας.
Το βιβλίο του G. M. Weinberg απετέλεσε την πρώτη συστηματική καταγραφή του ρόλου του ανθρώπινου παράγοντα στον προγραμματισμό. Οι συχνότατες αναφορές στο βιβλίο αυτό οδηγούν στο συμπέρασμα ότι το βιβλίο άσκησε μεγάλη επιρροή στους προγραμματιστικούς κύκλους.
Τα τέλη της δεκαετίας του '60 κι οι αρχές της δεκαετίας του '70 χαρακτηρίζονται από μια σειρά προσπαθειών της ακαδημαϊκής κοινότητας για την βελτίωση της εκπαίδευσης στην Πληροφορική, ακριβέστερα στον προγραμματισμό - αναφέρουμε ενδεικτικά της κατασκευή της PASCAL και της LOGO (όπως είναι γνωστό και οι δυο κατασκευάστηκαν αποκλειστικά για εκπαιδευτικούς σκοπούς), την οργάνωση συνεδρίων (όπως αυτό του [1972] στις Sevres, Paris ή την Working Conference on Programming Teaching Techniques, IFIP TC-2 κά). Συνήθως όμως οι αναφορές της περιόδου αυτής δεν στηρίζονται σε θεωρητικές θέσεις ή πειραματικά δεδομένα αλλά συχνότερα αποτελούν απόψεις βασισμένες σε προσωπικές εμπειρίες, πεποιθήσεις και ιδεολογικές θέσεις. Οι αναφορές πραγματοποιήθηκαν κυρίως από εκπροσώπους της σχολής του δομημένου προγραμματισμού - οι οποίοι θεωρούν ως ένα ισχυρό κίνητρο για την καθιέρωση του δομημένου προγραμματισμού τη σαφή του υπεροχή έναντι των άλλων μεθόδων και στο πεδίο της διδασκαλίας και συνακόλουθα της εκμάθησης του προγραμματισμού. Λεπτομερέστερες αναφορές σε αυτές θα γίνουν σε διάφορα σημεία του κεφαλαίου 2.
Πιο σύγχρονες εργασίες
Στην δεκαετία του 1980 και του 1990 - αλλά και κατά την τρέχουσα δεκαετία - υπάρχει μια άνθηση ερευνών και γενικότερα εργασιών γύρω από θέματα διδασκαλίας κι εκμάθησης του προγραμματισμού. H έξαρση αυτή έμμεσα σημαίνει την αναγνώριση της αναγκαιότητας για διερεύνηση των σχετικών θεμάτων, σημαίνει δηλαδή την αναγνώριση του γεγονότος ότι η διδασκαλία της Πληροφορικής (του προγραμματισμού ακριβέστερα) φαίνεται να είναι λιγότερο αποτελεσματική απ' ότι θα έπρεπε κι άρα πρέπει να βελτιωθεί. Αυτή η τάση διαγιγνώσκεται κι από γενικότερους δείκτες:
- την αυξημένη παγκοσμίως σχετική συνεδριακή δραστηριότητα: ανά τον κόσμο διοργανώνονται πολλά συνέδρια, συμπόσια κλπ με θέματα σχετικά με τη διδακτική και τη διδασκαλία της Πληροφορικής.
- την εμφάνιση σχετικών άρθρων στα μεγαλύτερα περιοδικά του είδους (όπως CACM κλπ). Είναι αξιοσημείωτο το γεγονός ότι αναφορές στα σχετικά θέματα έχουν κάνει - και μάλιστα με μεγάλη συχνότητα - μερικοί από τους πλέον γνωστούς παγκοσμίως επιστήμονες Πληροφορικής (Dijkstra, Knuth, Papert,...), ενώ περιοδικά όπως το CACM καθιέρωσαν πλέον μόνιμη στήλη για το θέμα της εκπαίδευσης.
- την ύπαρξη σχετικών ερευνητικών ομάδων και ειδικών περιοδικών (SIGSE και SIGUCE της ACM για παράδειγμα) και τη δημιουργία ειδικών επιτροπών για την εκπόνηση αναλυτικών προγραμμάτων για τη διδασκαλία της Πληροφορικής.
- τη δημιουργία μεγάλου όγκου εκπαιδευτικού λογισμικού (του λεγόμενου "διδακτισμικού") για τη διδασκαλία θεμάτων Πληροφορικής και ειδικότερα του προγραμματισμού (χαρακτηριστικά αναφέρεται ότι υπάρχει κι ελληνική παραγωγή εκπαιδευτικών προγραμμάτων σχετικών με την πληροφορική και μάλιστα το πρώτο απ' αυτά - ένα "πολυμεσικό" πρόγραμμα παραγωγής ουσιαστικά του ΕΜΠ - αναφέρεται στη διδασκαλία του προγραμματισμού).
Αν και κατά την τελευταία εικοσαετία πραγματοποιήθηκαν πολλές έρευνες γύρω από τη διδασκαλία και την εκμάθηση του προγραμματισμού, ωστόσο ο κύριος όγκος των ερευνητικών εργασιών περιστράφηκε γύρω από ορισμένα θέματα τα οποία εξετάστηκαν από πολλές οπτικές γωνίες.
Ένα πολύ μεγάλο μέρος των σχετικών ερευνών επικεντρώθηκε στη γλώσσα LOGO. H γλώσσα LOGO κι η διδακτική της χρήση, αποτελούν ένα ιδιαίτερο κεφάλαιο το οποίο δεν θα εξετάσουμε εδώ. Υπενθυμίζεται ότι η γλώσσα LOGO αποτελεί ένα υποσύνολο της LISP με δυνατότητες διαχείρισης μιας "χελώνας" που σχεδιάζει στην οθόνη (ή στο έδαφος) κι άρα ως γλώσσα προγραμματισμού εντάσσεται στην κατηγορία των γλωσσών συναρτησιακού προγραμματισμού. Αν κι ο συναρτησιακός προγραμματισμός ως εισαγωγικό μάθημα στους αλγόριθμους και τον προγραμματισμό έχει πολλούς θιασώτες (για παράδειγμα το MIT και το Πανεπιστήμιο της Κύπρου χρησιμοποιούν τη γλώσσα Scheme, το Πανεπιστήμιο της Grenoble σε ορισμένες περιπτώσεις τη LOGO και σε άλλες τη LISP σε εισαγωγικά μαθήματα προγραμματισμού - δες αντίστοιχα Abelson H. [1985], Keravnou E.T. [1995], Viviet G. [1988]), ωστόσο η παρούσα εργασία ερευνά τα σχετικά με τον κλασσικό "επιτακτικό" προγραμματισμό[2] κι έτσι δεν θα εξεταστούν οι εργασίες οι σχετικές με τη LOGO .
Εκτός από τη LOGO, τα υπόλοιπα αντικείμενα τα οποία διερευνήθηκαν υπήρξαν σχετικά περιορισμένα: ιδιαιτερότητες του προγραμματισμού σε σχέση με άλλα αντικείμενα (π.χ. μαθηματικά, φυσική κλπ), θέματα σχετικά με μερικά βασικά δομικά στοιχεία των προγραμμάτων όπως οι μεταβλητές, οι επαναληπτικές δομές (οι βρόχοι), οι δομές επιλογών (iff...then...else), η διαχείριση των συμβολοσειρών (strings). Βέβαια υπήρξαν κι ερευνητικές εργασίες σε άλλα είδη θεμάτων όπως για παράδειγμα τη διδασκαλία του λογικού προγραμματισμού και τις σχετικές αντιλήψεις των σπουδαστών - ο αριθμός όμως των εργασιών αυτών υπήρξε περιορισμένος (δες Hook K. et als [1988], Taylor J. et als [1989]).
5. ΟΙ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟΙ ΜΙΚΡΟΚΟΣΜΟΙ: ΜΙΑ ΓΕΝΙΚΗ ΘΕΩΡΗΣΗ
Με τον όρο προγραμματιστικά περιβάλλοντα εννοούμε συστήματα τα οποία επιτρέπουν την έκδοση και εκτέλεση προγραμμάτων. Στην παρούσα θα ασχοληθούμε μόνο με μια ιδιαίτερη κατηγορία προγραμματιστικών περιβαλλόντων, τους προγραμματιστικούς μικρόκοσμους. Οι μικρόκοσμοι αυτοί αποτελούν μια ιδιαίτερη κατηγορία προγραμματιστικών περιβαλλόντων, αφού παρουσιάζουν μια σειρά κοινών χαρακτηριστικών. Περιπτώσεις που υπάγονται στην κατηγορία αυτή αποτελούν και η υλοποίηση της μηχανής του Post, αλλά και άλλων μικρόκοσμων όπως και παλιότερα διαδεδομένοι και οι χάρτινοι micro-assemblers.
Ανακεφαλαιώνοντας συμπεράσματα από προηγούμενες ενότητες, η διδασκαλία και εκμάθηση του προγραμματισμού, όπως είναι γνωστό, παρουσιάζει αρκετές δυσκολίες. Τις τελευταίες δεκαετίες, έχει γίνει αξιόλογη ερευνητική δουλειά στην περιοχή της Διδακτικής της Πληροφορικής και ειδικότερα στην περιοχή της διδασκαλίας του προγραμματισμού. Όπως προκύπτει από τη σχετική βιβλιογραφία (Δαγδιλέλης 1996a), ένας από τους σημαντικότερους παράγοντες που έχει διαπιστωθεί ότι αποτελεί πηγή δυσκολιών για την εκμάθηση του προγραμματισμού έγκειται στο γεγονός ότι, όπως φαίνεται, η κλασική προσέγγιση διδασκαλίας (Brusilovsky et als 1997) είναι ασύμβατη με τις πραγματικές διδακτικές ανάγκες των σπουδαστών. Με τον όρο κλασική προσέγγιση διδασκαλίας, όπως αναφέρθηκε και σε προηγούμενη παράγραφο, εννοούμε τη διδασκαλία που συνίσταται:
Όπως έχει προαναφερθεί, σύμφωνα με αρκετούς ερευνητές, η υιοθέτηση της κλασικής προσέγγισης διδασκαλίας του προγραμματισμού αποτελεί έναν από τους σημαντικότερους παράγοντες που καθιστά την εκμάθηση του προγραμματισμού δύσκολη. Τα σημαντικότερα προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές που διδάσκονται τις αρχές του προγραμματισμού με την κλασική προσέγγιση, όπως προκύπτει από εμπειρικές παρατηρήσεις και μελέτες ερευνητών αλλά και μαρτυρίες των ίδιων των σπουδαστών, είναι τα εξής:
Μικρόκοσμοι - Μικρογλώσσες Προγραμματισμού
Η βασική ιδέα των μικρόκοσμων (microworlds) και των μικρογλωσσών (mini-languages) προγραμματισμού είναι η δημιουργία μιας γλώσσας προγραμματισμού που αποτελείται από ένα περιορισμένο ρεπερτόριο εντολών με απλή σύνταξη και σημασία. Οι βασικές ιδέες που διέπουν τη λειτουργία των μικροκόσμων είναι, έμμεσα, λύσεις στα προβλήματα που παρουσιάζουν τα διαδεδομένα περιβάλλοντα προγραμματισμού (τα οποία χρησιμοποιούνται κυρίως από ερευνητές ή επαγγελματίες).
Οικειότητα και ύπαρξη συγκεκριμένης οντότητας.
Ο σπουδαστής μαθαίνει τις βασικές έννοιες του προγραμματισμού ελέγχοντας ένα πρωταγωνιστή - μια χελώνα, ένα ρομπότ ή κάποια άλλη οντότητα - που ζει στον μικρόκοσμο (Κυνηγός και Στασινή, 202).
Τα προγραμματιστικά περιβάλλοντα που βασίζονται στην προσέγγιση των μικρόκοσμων ενσωματώνουν συνήθως δυναμικές προσομοιώσεις εκτέλεσης των προγραμμάτων (program animation). Ο σπουδαστής δηλαδή, έχει τη δυνατότητα να εκτελεί τα προγράμματα που αναπτύσσει βήμα προς βήμα, παρακολουθώντας το αποτέλεσμα εκτέλεσης της κάθε εντολής, στην κατάσταση του μικρόκοσμου. Βασικό πλεονέκτημα της προσέγγισης των μικρόκοσμων, εκτός βέβαια από το περιορισμένο ρεπερτόριο εντολών και την οπτικοποίηση της εκτέλεσης ενός προγράμματος, είναι και το γεγονός ότι οι μικρόκοσμοι βασίζονται - στην πλειοψηφία τους - σε κάποιο φυσικό μοντέλο, που είναι ήδη γνωστό στους σπουδαστές και όχι σε κάποιο άγνωστο και δυσνόητο (για τους σπουδαστές) μοντέλο αναφοράς, όπως η μηχανή του Von Neumman.
Οι προγραμματιστικοί μικρόκοσμοι χρησιμοποιούνται για την εισαγωγή των σπουδαστών στον προγραμματισμό, εδώ και αρκετά χρόνια. Ένας μεγάλος αριθμός διδασκόντων τόσο σε Πανεπιστήμια, όσο και σε σχολεία, από διαφορετικές χώρες, αναφέρουν θετικά αποτελέσματα από τη χρήση προγραμματιστικών μικρόκοσμων (Brusilovsky et als 1997). Ωστόσο, πρέπει να επισημανθεί ότι τα αποτελέσματα αυτά βασίζονται περισσότερο στις εντυπώσεις των διδασκόντων, παρά σε εμπειρική αξιολόγηση της αποτελεσματικότητας των μικρόκοσμων. Επιπλέον, οι εργασίες που παρουσιάζουν περιπτώσεις χρήσης μικρόκοσμων στην τάξη ή ειδικά πειράματα με στόχο την αξιολόγηση τους ως διδακτικά εργαλεία είναι λίγες και στις περισσότερες περιπτώσεις δεν είναι επαναλαμβανόμενες, έτσι ώστε τα αποτελέσματα τους να θεωρούνται απολύτως έγκυρα (Ξυνόγαλος 2005).
Βέβαια, η αξιολόγηση της διδακτικής προσέγγισης που βασίζεται στη χρήση των μικρόκοσμων δεν είναι εύκολη και θα πρέπει σε κάθε περίπτωση να λαμβάνονται υπ' όψη οι ιδιαίτερες συνθήκες χρήσης τους, το προφίλ των σπουδαστών και τα ιδιαίτερα χαρακτηριστικά του προγραμματιστικού μικρόκοσμου που χρησιμοποιείται. Αν και αρκετοί ερευνητές επισημαίνουν ότι οι μικρόκοσμοι μπορούν να χρησιμοποιηθούν αποτελεσματικά σε κάθε περίπτωση δεν υπάρχουν επαρκή στοιχεία που να το επιβεβαιώνουν. Οι (Pattis et als 1995, Brusilovsky et als 1997) επισημαίνουν ότι οι μικρόκοσμοι μπορούν να χρησιμοποιηθούν:
Τα χαρακτηριστικά που ενσωματώνει η πλειοψηφία των μικρόκοσμων είναι:
μινιμαλιστικό και εύχρηστο γραφικό ενδιάμεσο (GUI), βήμα-προς-βήμα εκτέλεση, και τεχνικές οπτικοποίησης λογισμικού. Ορισμένοι μικρόκοσμοι ενσωματώνουν και κάποια άλλα χαρακτηριστικά, που παρέχουν επιπλέον στήριξη στους σπουδαστές, όπως: εκδότες δομής για την ευκολότερη ανάπτυξη προγραμμάτων και την αποφυγή συντακτικών λαθών, επεξηγηματική οπτικοποίηση, δυνατότητα αυτόματης δημιουργίας διαγραμμάτων ροής και ενσωματωμένες στο περιβάλλον δραστηριότητες (Ξυνόγαλος 2005, Εφόπουλος 2005).
Προτομοιώσεις φυσικών αντικειμένων που λειτουργούν ως μικρόκοσμοι
Η χρήση ενός πραγματικού συστήματος του κόσμου ως μοντέλου αναφοράς καθιστά τους μικρόκοσμους κατάλληλους για τη διδασκαλία του προγραμματισμού ακόμα και σε μαΚητές μικρής ηλικίας. Για την περαιτέρω στήριξη των μαθητών μικρής ηλικίας - ακόμα και προσχολικής - κατά την εισαγωγή τους στις βασικές έννοιες του προγραμματισμού, μπορούν να χρησιμοποιηθούν μικρόκοσμοι στους οποίους οι εντολές αποτελούν φυσικά αντικείμενα. Χαρακτηριστικά παραδείγματα αποτελούν η Slot machine που αναπτύχθηκε στα εργαστήρια του MIT και η AlgoBlock που αναπτύχθηκε από την ερευνητική ομάδα της NEC Corporation. Τα χαρακτηριστικά των συστημάτων αυτών συνοψίζονται στον ακόλουθο πίνακα (Ξυνόγαλος 2002, Ξυνόγαλος 2004, Ξυνόγαλος 2005):
Ανακεφαλαιώνοντας συμπεράσματα από προηγούμενες ενότητες, η διδασκαλία και εκμάθηση του προγραμματισμού, όπως είναι γνωστό, παρουσιάζει αρκετές δυσκολίες. Τις τελευταίες δεκαετίες, έχει γίνει αξιόλογη ερευνητική δουλειά στην περιοχή της Διδακτικής της Πληροφορικής και ειδικότερα στην περιοχή της διδασκαλίας του προγραμματισμού. Όπως προκύπτει από τη σχετική βιβλιογραφία (Δαγδιλέλης 1996a), ένας από τους σημαντικότερους παράγοντες που έχει διαπιστωθεί ότι αποτελεί πηγή δυσκολιών για την εκμάθηση του προγραμματισμού έγκειται στο γεγονός ότι, όπως φαίνεται, η κλασική προσέγγιση διδασκαλίας (Brusilovsky et als 1997) είναι ασύμβατη με τις πραγματικές διδακτικές ανάγκες των σπουδαστών. Με τον όρο κλασική προσέγγιση διδασκαλίας, όπως αναφέρθηκε και σε προηγούμενη παράγραφο, εννοούμε τη διδασκαλία που συνίσταται:
- στη χρήση μιας γλώσσας γενικού σκοπού (όπως οι Pascal, C, κλπ),
- ενός επαγγελματικού περιβάλλοντος προγραμματισμού για τη γλώσσα αυτή, και
- στην επίλυση ενός συνόλου προβλημάτων επεξεργασίας αριθμών και συμβόλων.
Όπως έχει προαναφερθεί, σύμφωνα με αρκετούς ερευνητές, η υιοθέτηση της κλασικής προσέγγισης διδασκαλίας του προγραμματισμού αποτελεί έναν από τους σημαντικότερους παράγοντες που καθιστά την εκμάθηση του προγραμματισμού δύσκολη. Τα σημαντικότερα προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές που διδάσκονται τις αρχές του προγραμματισμού με την κλασική προσέγγιση, όπως προκύπτει από εμπειρικές παρατηρήσεις και μελέτες ερευνητών αλλά και μαρτυρίες των ίδιων των σπουδαστών, είναι τα εξής:
- Οι γλώσσες προγραμματισμού γενικού σκοπού διαθέτουν, κατά κανόνα, ένα μεγάλο ρεπερτόριο εντολών και είναι πολύπλοκες. Το υλικό που πρέπει να καλύψει ο σπουδαστής, το οποίο περιλαμβάνει το θεωρητικό πλαίσιο μιας γλώσσας προγραμματισμού σε συνδυασμό με τις βασικές αρχές του προγραμματισμού, είναι πολύ μεγάλο. Το γεγονός αυτό έχει ως αποτέλεσμα ο σπουδαστής να δυσκολεύεται να κατανοήσει όλο το υλικό και να αποκτήσει το απαιτούμενο υπόβαθρο. (Brusilovsky et als 1997, Ruckert & Halpern 1993)
- Η προσοχή των μαθητών επικεντρώνεται στην εκμάθηση της σύνταξης της γλώσσας και όχι στην ανάπτυξη ικανοτήτων επίλυσης προβλημάτων (Brusilovsky et als 1997; Freund & Roberts 1996; Studer et als 1995; Ziegler & Crews 1999). Οι συντακτικοί κανόνες των γλωσσών προγραμματισμού γενικού σκοπού είναι πολύπλοκοι, με αποτέλεσμα οι σπουδαστές να αφιερώνουν πολύ χρόνο στην εκμάθηση της σύνταξης της γλώσσας προγραμματισμού. Ενώ λοιπόν ο σκοπός ενός μαθήματος εισαγωγής στον προγραμματισμό είναι η χρήση μιας γλώσσας προγραμματισμού για τη διδασκαλία εννοιών του προγραμματισμού, την υλοποίηση αλγορίθμων και την ανάπτυξη ικανοτήτων επίλυσης προβλημάτων, τελικά η προσοχή επικεντρώνεται στη γλώσσα προγραμματισμού.
- Το προγραμματιστικό περιβάλλον συνήθως δεν παρέχει δυνατότητες οπτικοποίησης (η διαδικασία εκτέλεσης ενός προγράμματος δεν είναι ορατή από τον σπουδαστή) και επομένως δεν υπάρχει, στήριξη του σπουδαστή στην κατανόηση των βασικών ενεργειών και δομών ελέγχου. Εφόσον ο σπουδαστής δεν μπορεί να ακολουθήσει οπτικά την εκτέλεση ενός προγράμματος, το αντιμετωπίζει απλά ως μια διαδικασία εισόδου-εξόδου, ή, γεγονός που μπορεί να αποδειχθεί διδακτικά πιο επιζήμιο, κάνει υποθέσεις για τον τρόπο λειτουργίας του συστήματος, βασισμένος στις εμπειρίες του. (Brusilovsky et als 1997, Ross 1991, Sangwan et als 1998)
- Οι εμπορικοί μεταγλωττιστές δεν ικανοποιούν τις ανάγκες των αρχάριων προγραμματιστών. Οι περισσότεροι εμπορικοί μεταγλωττιστές απευθύνονται σε επαγγελματίες και όχι σε σπουδαστές, προκαλώντας έτσι αρκετά προβλήματα όταν χρησιμοποιούνται στο πλαίσιο ενός μαθήματος εισαγωγής στον προγραμματισμό. (Freund & Roberts 1996, Schorsch 1995)
- Η διανοητική πολυπλοκότητα που απαιτεί η εκφορά ενός αλγορίθμου σε μια γλώσσα προγραμματισμού είναι μεγάλη. Οι προγραμματιστές πολύ συχνά κατά την ανάπτυξη προγραμμάτων δημιουργούν νοητά μοντέλα του προγράμματός τους, του τρόπου λειτουργίας του και χρήσης των δεδομένων. Η διανοητική «απόσταση» ανάμεσα στις νοητές αναπαραστάσεις των αλγορίθμων ενός αρχάριου προγραμματιστή και στην περιγραφή τους σε μια γλώσσα προγραμματισμού είναι πολύ μεγάλη, εξαιτίας της «φύσης» της γλώσσας. (Smith et als 1994; Pane & Myers 1996)
- Η επίλυση ενδιαφερόντων προβλημάτων απαιτεί την εκμάθηση ενός μεγάλου υποσυνόλου της γλώσσας και την ανάπτυξη αρκετά μεγάλων προγραμμάτων, απαιτεί δηλαδή την επικέντρωση της προσοχής στην εκμάθηση της γλώσσας (Brusilovsky et als 1997).
Μικρόκοσμοι - Μικρογλώσσες Προγραμματισμού
Η βασική ιδέα των μικρόκοσμων (microworlds) και των μικρογλωσσών (mini-languages) προγραμματισμού είναι η δημιουργία μιας γλώσσας προγραμματισμού που αποτελείται από ένα περιορισμένο ρεπερτόριο εντολών με απλή σύνταξη και σημασία. Οι βασικές ιδέες που διέπουν τη λειτουργία των μικροκόσμων είναι, έμμεσα, λύσεις στα προβλήματα που παρουσιάζουν τα διαδεδομένα περιβάλλοντα προγραμματισμού (τα οποία χρησιμοποιούνται κυρίως από ερευνητές ή επαγγελματίες).
Οικειότητα και ύπαρξη συγκεκριμένης οντότητας.
Ο σπουδαστής μαθαίνει τις βασικές έννοιες του προγραμματισμού ελέγχοντας ένα πρωταγωνιστή - μια χελώνα, ένα ρομπότ ή κάποια άλλη οντότητα - που ζει στον μικρόκοσμο (Κυνηγός και Στασινή, 202).
Τα προγραμματιστικά περιβάλλοντα που βασίζονται στην προσέγγιση των μικρόκοσμων ενσωματώνουν συνήθως δυναμικές προσομοιώσεις εκτέλεσης των προγραμμάτων (program animation). Ο σπουδαστής δηλαδή, έχει τη δυνατότητα να εκτελεί τα προγράμματα που αναπτύσσει βήμα προς βήμα, παρακολουθώντας το αποτέλεσμα εκτέλεσης της κάθε εντολής, στην κατάσταση του μικρόκοσμου. Βασικό πλεονέκτημα της προσέγγισης των μικρόκοσμων, εκτός βέβαια από το περιορισμένο ρεπερτόριο εντολών και την οπτικοποίηση της εκτέλεσης ενός προγράμματος, είναι και το γεγονός ότι οι μικρόκοσμοι βασίζονται - στην πλειοψηφία τους - σε κάποιο φυσικό μοντέλο, που είναι ήδη γνωστό στους σπουδαστές και όχι σε κάποιο άγνωστο και δυσνόητο (για τους σπουδαστές) μοντέλο αναφοράς, όπως η μηχανή του Von Neumman.
Οι προγραμματιστικοί μικρόκοσμοι χρησιμοποιούνται για την εισαγωγή των σπουδαστών στον προγραμματισμό, εδώ και αρκετά χρόνια. Ένας μεγάλος αριθμός διδασκόντων τόσο σε Πανεπιστήμια, όσο και σε σχολεία, από διαφορετικές χώρες, αναφέρουν θετικά αποτελέσματα από τη χρήση προγραμματιστικών μικρόκοσμων (Brusilovsky et als 1997). Ωστόσο, πρέπει να επισημανθεί ότι τα αποτελέσματα αυτά βασίζονται περισσότερο στις εντυπώσεις των διδασκόντων, παρά σε εμπειρική αξιολόγηση της αποτελεσματικότητας των μικρόκοσμων. Επιπλέον, οι εργασίες που παρουσιάζουν περιπτώσεις χρήσης μικρόκοσμων στην τάξη ή ειδικά πειράματα με στόχο την αξιολόγηση τους ως διδακτικά εργαλεία είναι λίγες και στις περισσότερες περιπτώσεις δεν είναι επαναλαμβανόμενες, έτσι ώστε τα αποτελέσματα τους να θεωρούνται απολύτως έγκυρα (Ξυνόγαλος 2005).
Βέβαια, η αξιολόγηση της διδακτικής προσέγγισης που βασίζεται στη χρήση των μικρόκοσμων δεν είναι εύκολη και θα πρέπει σε κάθε περίπτωση να λαμβάνονται υπ' όψη οι ιδιαίτερες συνθήκες χρήσης τους, το προφίλ των σπουδαστών και τα ιδιαίτερα χαρακτηριστικά του προγραμματιστικού μικρόκοσμου που χρησιμοποιείται. Αν και αρκετοί ερευνητές επισημαίνουν ότι οι μικρόκοσμοι μπορούν να χρησιμοποιηθούν αποτελεσματικά σε κάθε περίπτωση δεν υπάρχουν επαρκή στοιχεία που να το επιβεβαιώνουν. Οι (Pattis et als 1995, Brusilovsky et als 1997) επισημαίνουν ότι οι μικρόκοσμοι μπορούν να χρησιμοποιηθούν:
- στο πλαίσιο ενός μαθήματος εισαγωγής στον προγραμματισμό, το οποίο μπορεί να επικεντρωθεί αποκλειστικά στη διδασκαλία εννοιών του προγραμματισμού ή να προετοιμάσει παράλληλα τους σπουδαστές για την ευκολότερη μετάβαση σε μια γλώσσα προγραμματισμού γενικού σκοπού,
- σε προχωρημένα στάδια σπουδών για τη στήριξη των σπουδαστών στην κατανόηση δύσκολων εννοιών (π.χ. αναδρομή, δείκτες κ.τ.λ),
- για την ανάπτυξη δεξιοτήτων επίλυσης προβλημάτων και αλγοριΚμικού τρόπου σκέψης,
- από άτομα που θέλουν να αποκτήσουν κάποιες βασικές γνώσεις γύρω από τον προγραμματισμό, αλλά και την επιστήμη των υπολογιστών γενικότερα.
Τα χαρακτηριστικά που ενσωματώνει η πλειοψηφία των μικρόκοσμων είναι:
μινιμαλιστικό και εύχρηστο γραφικό ενδιάμεσο (GUI), βήμα-προς-βήμα εκτέλεση, και τεχνικές οπτικοποίησης λογισμικού. Ορισμένοι μικρόκοσμοι ενσωματώνουν και κάποια άλλα χαρακτηριστικά, που παρέχουν επιπλέον στήριξη στους σπουδαστές, όπως: εκδότες δομής για την ευκολότερη ανάπτυξη προγραμμάτων και την αποφυγή συντακτικών λαθών, επεξηγηματική οπτικοποίηση, δυνατότητα αυτόματης δημιουργίας διαγραμμάτων ροής και ενσωματωμένες στο περιβάλλον δραστηριότητες (Ξυνόγαλος 2005, Εφόπουλος 2005).
Προτομοιώσεις φυσικών αντικειμένων που λειτουργούν ως μικρόκοσμοι
Η χρήση ενός πραγματικού συστήματος του κόσμου ως μοντέλου αναφοράς καθιστά τους μικρόκοσμους κατάλληλους για τη διδασκαλία του προγραμματισμού ακόμα και σε μαΚητές μικρής ηλικίας. Για την περαιτέρω στήριξη των μαθητών μικρής ηλικίας - ακόμα και προσχολικής - κατά την εισαγωγή τους στις βασικές έννοιες του προγραμματισμού, μπορούν να χρησιμοποιηθούν μικρόκοσμοι στους οποίους οι εντολές αποτελούν φυσικά αντικείμενα. Χαρακτηριστικά παραδείγματα αποτελούν η Slot machine που αναπτύχθηκε στα εργαστήρια του MIT και η AlgoBlock που αναπτύχθηκε από την ερευνητική ομάδα της NEC Corporation. Τα χαρακτηριστικά των συστημάτων αυτών συνοψίζονται στον ακόλουθο πίνακα (Ξυνόγαλος 2002, Ξυνόγαλος 2004, Ξυνόγαλος 2005):
Παιχνίδια ως μικρόκοσμοι
Ένα από τα βασικά πλεονεκτήματα των μικρόκοσμων, έγκειται στο γεγονός ότι προκαλούν το ενδιαφέρον των σπουδαστών. Σε ορισμένες περιπτώσεις μάλιστα, ένας μικρόκοσμος μπορεί στην ουσία να χαρακτηριστεί ως παιχνίδι. Χαρακτηριστικό παράδειγμα από την παλιότερη «γενιά» εκπαιδευτικών αποτελεί ο μικρόκοσμος AlgoArena (Kato & Ide 1995, Ξυνόγαλος 2004, Ξυνόγαλος 2005), ένα εκπαιδευτικό εργαλείο που αναπτύχθηκε στην Ιαπωνία για τη διδασκαλία της σχεδίασης λογισμικού σε μαθητές Γυμνασίου. Στην ουσία πρόκειται για ένα παιχνίδι που προσομοιώνει την πάλη Sumo, το παραδοσιακό σπορ της Ιαπωνίας. Οι μαθητές προγραμματίζουν τις ενέργειες του δικού τους παλαιστή χρησιμοποιώντας μια γλώσσα βασισμένη στη LOGO, προκειμένου να κερδίσουν κάποιον αντίπαλο (συνήθως κάποιο συμμαθητή ή καθηγητή). Το AlgoArena αποτελείται από το περιβάλλον προσομοίωσης της πάλης, ένα περιβάλλον γνωστό από τα ηλεκτρονικά παιχνίδια και τον εκδότη στον οποίο γράφονται τα προγράμματα. Ο εκδότης είναι έτσι σχεδιασμένος, ώστε οι μαθητές να μπορούν να αναπτύσσουν τα προγράμματά τους, επιλέγοντας σχεδόν όλες τις δεσμευμένες λέξεις με το ποντίκι από ένα μενού. Τα τελευταία χρόνια η κατεύθυνση αυτή (εκμάθηση μέσω παιχνιδιών) έχει αναπτυχθεί πολύ και θα την επανεξετάσουμε σε κατοπινή ενότητα.
Η "οικογένεια" περιβαλλόντων Logo (Logo-like environments)
H γλώσσα LOGO είναι δημιούργημα του Αμερικανού ερευνητή Seymour Papert (1989, Papert 1991). O S. Papert υπήρξε μαθητής του J. Piaget και η γλώσσα LOGO υπήρξε καρπός της προσπάθειας του να κατασκευάσει έναν μικρόκοσμο στον Η.Υ., ο οποίος να «υλοποιεί» τη θεωρία του J. Piaget, τον κονστρουκτιβισμό (constructivisme), αλλά και την επέκταση της θεωρίας αυτής που επινόησε ο ίδιος ο Papert, το λεγόμενο κονστρουκτσιονισμό (constructionism).
Η βασική ιδέα της Logo, είναι η δημιουργία μιας «Μαθηματικοχώρας», δηλαδή ενός περιβάλλοντος που θα λειτουργεί με βάση τα Μαθηματικά. Ωστόσο, καθώς η χελώνα προγραμματίζεται, η γλώσσα Logo μπορεί να χρησιμοποιηθεί κσι στη διδασκαλία του προγραμματισμού - μάλιστα ο Brian Harvey από το Μ.Ι.Τ. έχει συγγράψει ένα τρίτομο έργο για προγραμματισμό με τη γλώσσα Logo (Harvey 1997a, Harvey 1997b, Harvey 1997c). Η γνωστή χελώνα της Logo εδώ και 40 σχεδόν χρόνια, έχει χρησιμοποιηθεί σε δεκάδες παραλλαγές, δημιουργώντας μια «οικογένεια» λογισμικών με ανάλογα χαρακτηριστικά. Τα χαρακτηριστικά της Logo είναι:
Η "οικογένεια" περιβαλλόντων Logo (Logo-like environments)
H γλώσσα LOGO είναι δημιούργημα του Αμερικανού ερευνητή Seymour Papert (1989, Papert 1991). O S. Papert υπήρξε μαθητής του J. Piaget και η γλώσσα LOGO υπήρξε καρπός της προσπάθειας του να κατασκευάσει έναν μικρόκοσμο στον Η.Υ., ο οποίος να «υλοποιεί» τη θεωρία του J. Piaget, τον κονστρουκτιβισμό (constructivisme), αλλά και την επέκταση της θεωρίας αυτής που επινόησε ο ίδιος ο Papert, το λεγόμενο κονστρουκτσιονισμό (constructionism).
Η βασική ιδέα της Logo, είναι η δημιουργία μιας «Μαθηματικοχώρας», δηλαδή ενός περιβάλλοντος που θα λειτουργεί με βάση τα Μαθηματικά. Ωστόσο, καθώς η χελώνα προγραμματίζεται, η γλώσσα Logo μπορεί να χρησιμοποιηθεί κσι στη διδασκαλία του προγραμματισμού - μάλιστα ο Brian Harvey από το Μ.Ι.Τ. έχει συγγράψει ένα τρίτομο έργο για προγραμματισμό με τη γλώσσα Logo (Harvey 1997a, Harvey 1997b, Harvey 1997c). Η γνωστή χελώνα της Logo εδώ και 40 σχεδόν χρόνια, έχει χρησιμοποιηθεί σε δεκάδες παραλλαγές, δημιουργώντας μια «οικογένεια» λογισμικών με ανάλογα χαρακτηριστικά. Τα χαρακτηριστικά της Logo είναι:
- Ένας «πρωταγωνιστής» που υποτίθεται ότι παριστάνει μια χελώνα και κινείται πάνω σε μια επίπεδη, λευκή επιφάνεια, χαράσσοντας μια γραμμή από τα σημεία από τα οποία περνάει.
- Μια απλή γλώσσα προγραμματισμού (συναρτησιακή, functional) για τον καθορισμό της κίνησης της χελώνας, με πολύ απλές δομές δεδομένων (λίστες), με στοιχειώδεις λειτουργίες εισόδου-εξόδου, με δυνατότητες αναδρομής και επεκτάσιμη, μέσω συναρτήσεων που δημιουργεί ο χρήστης.
- Επειδή η κίνηση της χελώνας είναι άμεση, ο χρήστης διαπιστώνει με προφανή τρόπο αν πέτυχε τον προκαθορισμένο στόχο του (για παράδειγμα αν η χελώνα «σχημάτισε» ένα τετράγωνο) και μπορεί να διορθώσει το πρόγραμμά του, σε περίπτωση λάθους.
6. ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΩΝ ΜΙΚΡΟΚΟΣΜΩΝ ΚΑΙ ΕΝΑΛΛΑΚΤΙΚΩΝ ΠΕΡΙΒΑΛΛΟΝΤΩΝ
Παρατίθενται διευθύνσεις για ορισμένους προγραμματιστικούς μικρόκοσμους οι οποίοι μπορούν να χρησιμοποιηθούν για εισαγωγικά μαθήματα (παρόμοιοι μικρόκοσμοι αναφέρονται και στην ενότητα για Logo-like περιβάλλοντα, αλλά και στο κεφάλαιο για τον αντικειμενοστραφή προγραμματισμό). Πολλά από τα περιβάλλοντα αυτά, τα λογισμικά και τις γλώσσες προγραμματισμού εντάσσονται σε μια λογική ενός "μονοπατιού μάθησης" (learning path), δηλαδή της διδασκαλίας μέσα σε περιβάλλοντα αυξανόμενης πολυπλοκότητας, έτσι ώστε στο τέλος οι μαθητές οι σπουδαστές να εξοικειωθούν με τα επαγγελματικά περιβάλλοντα. Το πιο χαρακτηριστικό παράδειγμα αποτελεί το βιβλίο των Η. Ledgard & M. Marcotty (1987) The world of programming languages, στο οποίο οι σπουδαστές εισάγονται σταδιακά σε ολοένα και πιο σύνθετες έννοιες προγραμματισμού μέσα από μια σειρά mini-γλωσσών επινοημένων για διδακτικούς λόγους. Πολλά μικροπεριβάλλοντα περιγράφονται σε άλλες ενότητες (περιβάλλοντα για το δομημένο προγραμματισμό, Logo-like περιβάλλοντα, περιβάλλοντα για τον αντικειμενοστραφή προγραμματισμό, ρομποτικά περιβάλλοντα)
Περιβάλλοντα έκφρασης αλγορίθμων χωρίς Η.Υ.
Μπορεί να φαίνεται παράδοξη η διδασκαλία του προγραμματισμού χωρίς Η.Υ. αλλά συστήματα αυτού του είδους χρησιμοποιήθηκαν εκτεταμένα τις δεκαετίες του '70 και του '80, όταν δεν υπήρχαν μικροϋπολογιστές ή ήταν σχετικά ακριβοί και σπάνιοι. Ωστόσο, ακόμη και σήμερα ορισμένοι χρησιμοποιούνται για διδακτικούς σκοπούς. Σήμερα, το βασικό τους πλεονέκτημα παραμένει η εξαιρετική τους απλότητα, που τους κάνει να μοιάζουν περισσότερο ως παιχνίδια (με εξαίρεση μερικούς από αυτούς).
Το σύστημα Little Man Computer (LMC) επινοήθηκε περίπου το 1965 και ουσιαστικά στηρίζεται σε μια εξαιρετικά απλοποιημένη εκδοχή ενός Η.Υ. και μια γλώσσα προγραμματισμού assembly-like που περιλαμβάνει λιγότερες από 20 εντολές. Η λειτουργία του συστήματος μπορεί να προσομοιωθεί σε ένα χειροκίνητο (!), Η.Υ. τη λειτουργία του οποίου μπορεί κανείς να βρει στη wikipedia: http://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation και μια επίδειξη στο YouTube: http://www.youtube.com/watch?v=CW96m7R0u-s
Το Αμερικανικό αυτό σύστημα ονομάστηκε CARDIAC. Λεπτομέρειες για το σύστημα αυτό μπορούν να βρεθούν στο Διαδίκτυο και μια καλή πηγή αποτελεί η wikipedia: http://en.wikipedia.org/wiki/Little_Man_Computer. Οι δημιουργοί του CARDIAC, δημιούργησαν ένα πιο "ισχυρό" σύστημα με το όνομα SIMPLEX (http://www.mcmanis.com/chuck/computers/simplex.html).
Κατά καιρούς έχουν δημιουργηθεί μικροπεριβάλλοντα που προσομοιώνουν τη λειτουργία του CARDIAC (και του Γαλλικού Ordinapoche - δες παρακάτω) καθώς και του SIMPLEX.
Τη δεκαετία του 1980, ένα Γαλλικό περιοδικά αφιέρωσε ένα τεύχος στο σύστημα αυτό (προσφέροντας δωρεάν ένα χειροκίνητο "Η.Υ." που ονομάστηκε στα Γαλλικά Ordinapoche, ένα πλήρες εγχειρίδιο οδηγιών και μερικά στοιχειώδη προγράμματα για το σύστημα LMC - όπως ένα παιχνίδι "τριάρας" που παίζει ο "Η.Υ" εναντίον ανθρώπου).
Περιβάλλοντα έκφρασης αλγορίθμων χωρίς Η.Υ.
Μπορεί να φαίνεται παράδοξη η διδασκαλία του προγραμματισμού χωρίς Η.Υ. αλλά συστήματα αυτού του είδους χρησιμοποιήθηκαν εκτεταμένα τις δεκαετίες του '70 και του '80, όταν δεν υπήρχαν μικροϋπολογιστές ή ήταν σχετικά ακριβοί και σπάνιοι. Ωστόσο, ακόμη και σήμερα ορισμένοι χρησιμοποιούνται για διδακτικούς σκοπούς. Σήμερα, το βασικό τους πλεονέκτημα παραμένει η εξαιρετική τους απλότητα, που τους κάνει να μοιάζουν περισσότερο ως παιχνίδια (με εξαίρεση μερικούς από αυτούς).
Το σύστημα Little Man Computer (LMC) επινοήθηκε περίπου το 1965 και ουσιαστικά στηρίζεται σε μια εξαιρετικά απλοποιημένη εκδοχή ενός Η.Υ. και μια γλώσσα προγραμματισμού assembly-like που περιλαμβάνει λιγότερες από 20 εντολές. Η λειτουργία του συστήματος μπορεί να προσομοιωθεί σε ένα χειροκίνητο (!), Η.Υ. τη λειτουργία του οποίου μπορεί κανείς να βρει στη wikipedia: http://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation και μια επίδειξη στο YouTube: http://www.youtube.com/watch?v=CW96m7R0u-s
Το Αμερικανικό αυτό σύστημα ονομάστηκε CARDIAC. Λεπτομέρειες για το σύστημα αυτό μπορούν να βρεθούν στο Διαδίκτυο και μια καλή πηγή αποτελεί η wikipedia: http://en.wikipedia.org/wiki/Little_Man_Computer. Οι δημιουργοί του CARDIAC, δημιούργησαν ένα πιο "ισχυρό" σύστημα με το όνομα SIMPLEX (http://www.mcmanis.com/chuck/computers/simplex.html).
Κατά καιρούς έχουν δημιουργηθεί μικροπεριβάλλοντα που προσομοιώνουν τη λειτουργία του CARDIAC (και του Γαλλικού Ordinapoche - δες παρακάτω) καθώς και του SIMPLEX.
Τη δεκαετία του 1980, ένα Γαλλικό περιοδικά αφιέρωσε ένα τεύχος στο σύστημα αυτό (προσφέροντας δωρεάν ένα χειροκίνητο "Η.Υ." που ονομάστηκε στα Γαλλικά Ordinapoche, ένα πλήρες εγχειρίδιο οδηγιών και μερικά στοιχειώδη προγράμματα για το σύστημα LMC - όπως ένα παιχνίδι "τριάρας" που παίζει ο "Η.Υ" εναντίον ανθρώπου).
Ανάλογο είναι και το σύστημα Little Man 3 (LC-3, http://en.wikipedia.org/wiki/LC-3) όπως και το πιο σύγχρονο σύστημα MicroSim (http://en.wikipedia.org/wiki/MikroSim).
Πολλά από τα συστήματα αυτά (όπως το LC-3 και το MicroSim) επινοήθηκαν και χρησιμοποιήθηκαν (ή χρησιμοποιούνται ακόμη) για τη διδασκαλία μαθημάτων που έχουν να κάνουν με την Αρχιτεκτονική των επεξεργαστών κλπ.
Το 2012 παρουσιάστηκε μια απόπειρα για ένα νέο είδος παιχνιδιού - Η.Υ. το 0x10c (http://0x10c.com/)
Οι υποθετικοί Η.Υ. ΜΙΧ και MMIX
(http://en.wikipedia.org/wiki/MIX, http://en.wikipedia.org/wiki/MMIX καθώς και http://www-cs-faculty.stanford.edu/~knuth/mmix.html) επινοήθηκαν από τον D.E. Knuth και χρησιμοποιήθηκαν στα πολύ γνωστά βιβλία του The Art of Computer Programming. Οι φανταστικοί αυτοί υπολογιστές είναι σχετικά πολύπλοκοι στη λειτουργία τους. Ενδιαφέρουσα είναι και η προσέγγιση του περιβάλλοντος BALTIE-3 (http://progopedia.com/language/baltie/)
Ένας χάρτινος Η. Υ. που χρησιμοποιείται για μια εισαγωγή στον προγραμματισμό. Χρησιμοποιήθηκε επί πολλά χρόνια σε διδασκαλίες (ακόμη και Πανεπιστημιακού επιπέδου) και ουσιαστικά περιγράφει με συστηματικό τρόπο πρακτικές που ακολουθούν σχεδόν όλοι οι καθηγητές Πληροφορικής. Στην πραγματικότητα αυτός ο υποθετικός Η.Υ. αποτελεί μια μέθοδο για τη διδασκαλία του προγραμματισμού - ακριβέστερα αλγορίθμων. Η λεπτομερής περιγραφή του υπάρχει σε παράρτημα.
Πολλά από τα συστήματα αυτά (όπως το LC-3 και το MicroSim) επινοήθηκαν και χρησιμοποιήθηκαν (ή χρησιμοποιούνται ακόμη) για τη διδασκαλία μαθημάτων που έχουν να κάνουν με την Αρχιτεκτονική των επεξεργαστών κλπ.
Το 2012 παρουσιάστηκε μια απόπειρα για ένα νέο είδος παιχνιδιού - Η.Υ. το 0x10c (http://0x10c.com/)
Οι υποθετικοί Η.Υ. ΜΙΧ και MMIX
(http://en.wikipedia.org/wiki/MIX, http://en.wikipedia.org/wiki/MMIX καθώς και http://www-cs-faculty.stanford.edu/~knuth/mmix.html) επινοήθηκαν από τον D.E. Knuth και χρησιμοποιήθηκαν στα πολύ γνωστά βιβλία του The Art of Computer Programming. Οι φανταστικοί αυτοί υπολογιστές είναι σχετικά πολύπλοκοι στη λειτουργία τους. Ενδιαφέρουσα είναι και η προσέγγιση του περιβάλλοντος BALTIE-3 (http://progopedia.com/language/baltie/)
Ένας χάρτινος Η. Υ. που χρησιμοποιείται για μια εισαγωγή στον προγραμματισμό. Χρησιμοποιήθηκε επί πολλά χρόνια σε διδασκαλίες (ακόμη και Πανεπιστημιακού επιπέδου) και ουσιαστικά περιγράφει με συστηματικό τρόπο πρακτικές που ακολουθούν σχεδόν όλοι οι καθηγητές Πληροφορικής. Στην πραγματικότητα αυτός ο υποθετικός Η.Υ. αποτελεί μια μέθοδο για τη διδασκαλία του προγραμματισμού - ακριβέστερα αλγορίθμων. Η λεπτομερής περιγραφή του υπάρχει σε παράρτημα.
Περιβάλλοντα δημιουργίας παιχνιδιών
To Stagecast http://www.stagecast.com/ αποτελεί ένα τυπικό παράδειγμα περιβάλλοντος στο οποίο μπορούν να δημιουργηθούν διάφορα παιχνίδια και προσομοιώσεις (σύμφωνα με τους κατασκευαστές: με εύκολο τρόπο) ενώ στην ιστοσελίδα: http://www.stagecast.com/cgi-bin/templator.cgi?PAGE=School/LESSONWORLDS υπάρχουν παραδείγματα προσομοιώσεων για την υποστήριξη της διδασκαλίας διαφόρων εννοιών, από ποικίλους επιστημονικούς κλάδους (Φυσική, μαθηματικά κ.ά.). Το περιβάλλον φαίνεται να είναι εξέλιξη ενός παλιότερου περιβάλλοντος που είχε αναπτυχθεί για τους Η.Υ. Macintosh της Apple, και σήμερα αποτελεί ένα περιβάλλον ανάπτυξης ΑΡΙ, σύμφωνα με τη Wikipedia: http://en.wikipedia.org/wiki/Cocoa %28API%29.
Το περιβάλλον Alice (έκδοση 3.1) αναπτύχθηκε στο Πανεπιστήμιο Carnegie-Mellonai είναι ένα περιβάλλον για προγραμματισμό που διατίθεται δωρεάν (http://www.alice.org/) ενώ υπάρχει και μια έκδοση storytelling:
(http://www.alice.org/kelleher/storytelling/index.html). Για τη δεύτερη αυτή έκδοση υπάρχει μια σχετική αρθρογραφία για τον τρόπο που χρησιμοποιείται στη διδασκαλία του προγραμματισμού:
(http://www.alice.org/kelleher/storytelling/papers.html).
Το περιβάλλον Alice (έκδοση 3.1) αναπτύχθηκε στο Πανεπιστήμιο Carnegie-Mellonai είναι ένα περιβάλλον για προγραμματισμό που διατίθεται δωρεάν (http://www.alice.org/) ενώ υπάρχει και μια έκδοση storytelling:
(http://www.alice.org/kelleher/storytelling/index.html). Για τη δεύτερη αυτή έκδοση υπάρχει μια σχετική αρθρογραφία για τον τρόπο που χρησιμοποιείται στη διδασκαλία του προγραμματισμού:
(http://www.alice.org/kelleher/storytelling/papers.html).
Kodu
To Kodu είναι ένα πολύ ισχυρό περιβάλλον για τη διδασκαλία του προγραμματισμού μέσω της κατασκευής ψηφιακών παιχνιδιών. Διατίθεται δωρεάν από τη Microsoft.
Σε επόμενη ενότητα υπάρχει αναλυτικότερη παρουσίαση του περιβάλλοντος KODU.
Σε επόμενη ενότητα υπάρχει αναλυτικότερη παρουσίαση του περιβάλλοντος KODU.
Game Maker
To Game Maker είναι ένα πολύ ισχυρό περιβάλλον για τη διδασκαλία του προγραμματισμού μέσω της κατασκευής ψηφιακών παιχνιδιών.
Σε επόμενη ενότητα υπάρχει
αναλυτικότερη παρουσίαση του περιβάλλοντος Game Maker.
Μικρόκοσμοι προγραμματισμού
Στη wikipedia (http://en.wikipedia.org/wiki/Educational_programming_language) υπάρχει ένας πολύ πλούσιος κατάλογος γλωσσών και περιβαλλόντων προγραμματισμού που χρησιμοποιούνται ή μπορούν να χρησιμοποιηθούν για εκπαιδευτικούς σκοπούς. Επίσης, πολλές γλώσσες προγραμματισμού (μεταξύ των οποίων και εκπαιδευτικού χαρακτήρα) βρίσκονται στη διεύθυνση: http://progopedia.com/
Το Mortran
(http://www.wsd1.org/LTCActivities/46%20Freeware/mortran mouse maze.htm) ανήκει στη γενικότερη κατηγορία των Logo-like περιβαλλόντων, αλλά έχει ένα πολύ περιορισμένο πεδίο, δεδομένου ότι πρόκειται για ένα περιβάλλον στο οποίο υπάρχει μια μοναδική λειτουργία. Η αναπαριστώμενη φυσική οντότητα είναι ένα ποντίκι, το οποίο κινούμενο μέσα σε ένα λαβύρινθο, προσπαθεί να φτάσει σε ένα σημείο όπου βρίσκεται το τυρί.
Η λεπτομερής περιγραφή του υπάρχει σε παράρτημα.
Η λεπτομερής περιγραφή του υπάρχει σε παράρτημα.
Άλλα εναλλακτικά περιβάλλοντα
AgentSheets
Αποτελεί ένα πολύ διαδεδομένο περιβάλλον κυρίως στις Η.Π.Α.. Μεταφράστηκε και στα ελληνικά (μια παλιότερη έκδοσή του) Σήμερα έχει αναπτυχθεί και σε 3 διαστάσεις. Είναι εμπορικό προϊόν.
Το ToonTalk ("Toon" πιθανότατα από το "Cartoon") αποτελεί ένα περιβάλλον για την εκμάθηση του προγραμματισμού από παιδιά βασισμένο στο animation: http://www.toontalk.com/. Είναι μεταφρασμένο και σε άλλες γλώσσες (δυστυχώς όχι στα ελληνικά). Διατίθεται δωρεάν (η πλήρης Αγγλική έκδοση είναι περίπου 120 ΜΒ).
Το Phrogram (http://phrogram.com/) είναι ένα εμπορικό προϊόν (διατίθεται δωρεάν για 30 μέρες δοκιμή μόνο) για μια εισαγωγή στον προγραμματισμό, με μια διαφορετική προσέγγιση. Οι δημιουργοί του αναφέρουν ότι κατά την άποψή τους, ξεκινώντας τη διδασκαλία του προγραμματισμού με Java, C++ ή Visual Basic θα έχει να αντιμετωπίσει προβλήματα με τη σύνταξη τους (που είναι δύσκολη για αρχαρίους) και θα είναι υποχρεωμένος να εργάζεται σε πολύπλοκα "development environments" όπως το Visual Studio ή το Eclipse. Εξάλλου η φιλοσοφία που το διέπει είναι να δώσει στον προγραμματιστή από την αρχή μια «ιδέα» για τον προγραμματισμό κοντά στην «πραγματικότητα» και δεν επιδιώκει να «κρύψει» (όπως αναφέρεται στο site) τον πηγαίο κώδικα πίσω από τεχνικές visual ή "drag-and-drop", ούτε και να παρουσιάσει υπερ-απλουστευμένες τις προγραμματιστικές έννοιες.
To HANDS (http://www.cs.cmu.edu/~pane/ftp/acse-ftp/pane-ftp/ESPGradWorkshop.pdf) είναι ένα περιβάλλον που, όπως δείχνει και το όνομά του, στηρίζεται στην ιδέα της χρηστικής διεπαφής προκειμένου να διευκολύνει τον προγραμματισμό από μικρά παιδιά. Ωστόσο δεν είναι απολύτως σαφές σε ποιο βαθμό έχει υλοποιηθεί - ωστόσο από το προαναφερόμενο κείμενο είναι δυνατόν να κατανοήσει κανείς την προβληματική του.
Το YENKA (http://www.yenka.com/en/Yenka_Programming/) είναι ένα περιβάλλον το οποίο εισάγει τους αρχάριους στις βασικές έννοιες του προγραμματισμού μέσα από την (προγραμματιζόμενη) animation χαρακτήρων - όπως ανθρώπων. Σε επόμενη ενότητα υπάρχει αναλυτικότερη παρουσίαση του περιβάλλοντος ΥENKA.
Αποτελεί ένα πολύ διαδεδομένο περιβάλλον κυρίως στις Η.Π.Α.. Μεταφράστηκε και στα ελληνικά (μια παλιότερη έκδοσή του) Σήμερα έχει αναπτυχθεί και σε 3 διαστάσεις. Είναι εμπορικό προϊόν.
Το ToonTalk ("Toon" πιθανότατα από το "Cartoon") αποτελεί ένα περιβάλλον για την εκμάθηση του προγραμματισμού από παιδιά βασισμένο στο animation: http://www.toontalk.com/. Είναι μεταφρασμένο και σε άλλες γλώσσες (δυστυχώς όχι στα ελληνικά). Διατίθεται δωρεάν (η πλήρης Αγγλική έκδοση είναι περίπου 120 ΜΒ).
Το Phrogram (http://phrogram.com/) είναι ένα εμπορικό προϊόν (διατίθεται δωρεάν για 30 μέρες δοκιμή μόνο) για μια εισαγωγή στον προγραμματισμό, με μια διαφορετική προσέγγιση. Οι δημιουργοί του αναφέρουν ότι κατά την άποψή τους, ξεκινώντας τη διδασκαλία του προγραμματισμού με Java, C++ ή Visual Basic θα έχει να αντιμετωπίσει προβλήματα με τη σύνταξη τους (που είναι δύσκολη για αρχαρίους) και θα είναι υποχρεωμένος να εργάζεται σε πολύπλοκα "development environments" όπως το Visual Studio ή το Eclipse. Εξάλλου η φιλοσοφία που το διέπει είναι να δώσει στον προγραμματιστή από την αρχή μια «ιδέα» για τον προγραμματισμό κοντά στην «πραγματικότητα» και δεν επιδιώκει να «κρύψει» (όπως αναφέρεται στο site) τον πηγαίο κώδικα πίσω από τεχνικές visual ή "drag-and-drop", ούτε και να παρουσιάσει υπερ-απλουστευμένες τις προγραμματιστικές έννοιες.
To HANDS (http://www.cs.cmu.edu/~pane/ftp/acse-ftp/pane-ftp/ESPGradWorkshop.pdf) είναι ένα περιβάλλον που, όπως δείχνει και το όνομά του, στηρίζεται στην ιδέα της χρηστικής διεπαφής προκειμένου να διευκολύνει τον προγραμματισμό από μικρά παιδιά. Ωστόσο δεν είναι απολύτως σαφές σε ποιο βαθμό έχει υλοποιηθεί - ωστόσο από το προαναφερόμενο κείμενο είναι δυνατόν να κατανοήσει κανείς την προβληματική του.
Το YENKA (http://www.yenka.com/en/Yenka_Programming/) είναι ένα περιβάλλον το οποίο εισάγει τους αρχάριους στις βασικές έννοιες του προγραμματισμού μέσα από την (προγραμματιζόμενη) animation χαρακτήρων - όπως ανθρώπων. Σε επόμενη ενότητα υπάρχει αναλυτικότερη παρουσίαση του περιβάλλοντος ΥENKA.
7. ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΚΑΙ ΕΡΓΑΣΙΕΣ
Δραστηριότητα 1η: Εμβάθυνση σε έννοιες της Διδακτικής: διδακτική μετατόπιση και διδακτικό συμβόλαιο
Δείτε το παρακάτω βίντεο: http://www.youtube.com/watch?feature=plaver embedded&v=nKIu9ven5nc
Στο θεωρητικό τμήμα προτείνονται ορισμένες βασικές έννοιες. Μεταξύ αυτών είναι και η έννοια της διδακτικής μετατόπισης - μια έννοια που χρησιμοποιήθηκε πολύ στη Διδακτική των Μαθηματικών. Στο πλαίσιο της εξετάζονται θέματα που σχετίζονται με τη "ζωή" των διαφόρων ενοτήτων που διδάσκονται: για παράδειγμα, από τα Μαθηματικά πάντοτε, για λόγους που οφείλονται σε νέες παιδαγωγικές-διδακτικές αντιλήψεις, έννοιες, κεφάλαια και τεχνικές συρρικνώνονται (οι λεγόμενοι Γεωμετρικοί τόποι ουσιαστικά δεν διδάσκονται πλέον και η θέση της Γεωμετρίας στο Λύκειο είναι πια πολύ περιορισμένη), άλλα εξαφανίζονται τελείως (όπως η διδασκαλία της περίφημης "απλής και σύνθετης μεθόδου των τριών", τα περί μειγμάτων και κραμάτων κ.ά.), άλλων η θέση αποδυναμώνεται (κάποτε τα περί απολύτων τιμών ήταν ξεχωριστό κεφάλαιο για τις Πανελλαδικές εξετάσεις), άλλα μετατοπίζονται προς "τα κάτω" (στο Δημοτικό, εδώ και πολλά χρόνια διδάσκονται εξισώσεις, πράξεις με παρενθέσεις κλπ - θέματα που διδασκόταν αποκλειστικά στο Γυμνάσιο).
Είναι σαφές πως και η ύλη των Πανελλαδικών εξετάσεων επηρεάζεται από τα φαινόμενα αυτά. Υπάρχουν επίσης παραδείγματα αντικειμένων που διδάσκονται με τρόπους οι οποίοι δεν έχουν αναφορά στο αντίστοιχο αντικείμενο των Μαθηματικών: για παράδειγμα, οι δεκαδικοί, μερικές φορές παρουσιάζονται ως "φυσικοί με υποδιαστολή". Για όσες και όσους ενδιαφέρονται για περαιτέρω μελέτη, υπάρχει μια ελληνική Διδακτορική διατριβή με θέμα την διδακτική μετατόπιση στη διδασκαλία της απόλυτης τιμής. (http://thesis.ekt.gr/thesisBookReader/id/3660#page/8/mode/2up)
Η πρόοδος της Επιστήμης στα Μαθηματικά δεν επηρεάζει σημαντικά τη διδασκαλία τους, αφού τα διδασκόμενα αντικείμενα στα Μαθηματικά είναι "ηλικίας" πολλών δεκαετιών - αν όχι χιλιετιών. Αντίθετα. σε μαθήματα όπως η Βιολογία, η ταχύτατη πρόοδος των τελευταίων ετών υποχρεώνει το εκπαιδευτικό σύστημα σε αναμόρφωση των διδακτέας ύλης, ενώ η μεταβολή των κοινωνικών πρακτικών και απόψεων, ακόμη και σε θέματα ηθικής (όπως η Βιοηθική) επηρεάζει το σχολικό πρόγραμμα. Έχουμε άραγε ανάλογα φαινόμενα στην Πληροφορική; Δηλαδή υπάρχουν κεφάλαια, έννοιες, τεχνικές, θέματα γενικά που έχουν υποστεί κάποια μεταβολή στη σχολική "ζωή" τους στο χρόνο; Αν κρίνετε πως "ΝΑΙ" ποια μπορεί να είναι τα ενδεχόμενα αίτια; Η πρόοδος της Επιστήμης και του επαγγέλματος, η αλλαγή στις κοινωνικές πρακτικές, η μεταβολή των διδακτικών/παιδαγωγικών απόψεων της "νοόσφαιρας" ή γενικότερα η μεταβολή στα διδακτικά μοντέλα γενικώς; Η ύλη και το "στυλ" των θεμάτων στις Πανελλαδικές εξετάσεις επηρεάζονται από αυτό; Συζητείστε το σχετικό θέμα με τους συναδέλφους σας.
Δραστηριότητα 2η: Μελέτη του θεωρητικού μέρους
Μελετήστε το θεωρητικό μέρος και επισημάνετε τους ορισμούς βασικών εννοιών: διδακτικό συμβόλαιο, διδακτική κατάσταση, διδακτική μετατόπιση. Θεωρείτε ότι οι έννοιες αυτές έχουν κάποια μέρους χρησιμότητα για τον εκπαιδευτικό (οιουδήποτε αντικειμένου) ή είναι άχρηστες στη διδακτική πράξη; Αν η απάντησή σας είναι "ΝΑΙ", τότε ποια νομίζετε ότι είναι η χρησιμότητά τους; Ειδικότερα, θεωρείτε ότι έχουν κάποια χρησιμότητα στη διδασκαλία της Πληροφορικής; Συζητείστε το θέμα αυτό στο forum (σύγχρονα ή ασύγχρονα). Συντάξτε μια απάντηση μετά τη συζήτηση και υποβάλετε την (η εργασία-απάντηση περίπου 500 λέξεις με τη συνήθη τυπική μορφοποίηση).
Δραστηριότητα 3η: Εκπαιδευτικές γλώσσες προγραμματισμού
Επισκεφθείτε τη σχετική σελίδα της Wikipedia: http://en.wikipedia.org/wiki/Educational programming language και δείτε τις κατηγορίες "εκπαιδευτικών" γλωσσών προγραμματισμού που αναφέρονται (ο κατάλογος δεν είναι βεβαίως πλήρης). Θεωρείτε ότι ο αριθμός των γλωσσών αυτών που έχουν εκπαιδευτικό χαρακτήρα είναι υπερβολικά μεγάλος; Εκτιμάτε ότι κάποιες από τις γλώσσες αυτές υπερτερούν έναντι των υπολοίπων; Ποια είναι η γνώμη σας γενικότερα για τις κατηγορίες αυτές των γλωσσών και περιβαλλόντων;
Στη σχετική σελίδα της Wikipedia: http://el.wikipedia.org/wiki/Γλώσσα προγραμματισμού υπάρχει μια σχετικά σύντομη αναφορά στις κυριότερες γλώσσες προγραμματισμού και στη διεύθυνση: http://el.wikipedia.org/wiki/Αλγόριθμος μια παρουσίαση της έννοιας του αλγορίθμου (με αρκετές παραπομπές).
Δραστηριότητα 4η: Προγραμματισμός και γλώσσες προγραμματισμού
Στο ψηφιακό σχολείο (http://digitalschool.minedu.gov.gr/)μπορείτε να δείτε το σχετικό κεφάλαιο για τον προγραμματισμό της Γ' Γυμνασίου (http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSB1 02/365/2448,9367/index1 1.html). Οδηγίες για τον καθηγητή υπάρχουν στο:
http://digitalschool.minedu.gov.gr/modules/document/file.php/DSB102/Διδακτικό Πακέτο/Βιβλίο Εκπαιδευτικού/Γ Γυμνασίου/1.pdf
Δείτε επίσης τις προτάσεις του σχολικού βιβλίου για την έννοια του αλγορίθμου και του προγράμματος. Κατά τη γνώμη σας τα παραδείγματα που δίνονται είναι κατάλληλα για να σχηματίσει ο μαθητής την ιδέα ενός αλγορίθμου και ενός προγράμματος;
Μια πολύ ιδιαίτερη «γλώσσα προγραμματισμού» προσφέρεται στο ψηφιακό σχολείο: http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSB102/365/2448,9367/extras/Tools-Applications/Kef1 1 MiniIDE simple/Kef1 1 MiniIDE simple.html (προαπαιτεί εγκατάσταση java).
Το σχετικό ΔΕΠΠΣ-ΑΠΣ υπάρχει στη διεύθυνση: http://digitalschool.minedu.gov.gr/modules/document/file.php/DSB 101/ΔΕΠΠΣ-ΑΠΣ Πληροφορικής/18deppsaps Pliroforikis.pdf Τέλος, τα σχετικά κείμενα για τα νέα πιλοτικά προγράμματα δημοτικού και Γυμνασίου βρίσκονται στο: http://digitalschool.minedu.gov.gr/info/newps.php
Δραστηριότητα 5η: CARDIAC
Επισκεφθείτε τις ιστοσελίδες της wikipedia που αναφέρονται στον CARDIAC και δείτε το σχετικό φιλμάκι στο YouTube. Ένας «Η.Υ.» που λειτουργεί με το χέρι φαίνεται να ανήκει στο μουσείο των αξιοπερίεργων αντικειμένων και επιπλέον η διδακτική του χρησιμότητα δεν είναι προφανής.. Αυτοί που επινόησαν τον CARDIAC ωστόσο και τον διέδωσαν (δείτε και το αντίστοιχο Γαλλικό κατασκεύασμα με τον τίτλο Ordinapoche), θεώρησαν ότι αυτή η προσομοίωση, από την ίδια της τη φύση καθιστά πολύ εύκολη την κατανόηση του τρόπου με τον οποίο λειτουργεί ένας πραγματικός Η.Υ. (τουλάχιστον μερικές από τις λειτουργίες του). Η «ιδέα» δηλαδή πίσω από την επινόηση του συστήματος αυτού είναι η διδασκαλία. Ποια θα μπορούσε να είναι η διδακτική χρησιμότητα ενός τέτοιου συστήματος; Σας φαίνεται ότι το σύστημα αυτό θα μπορούσε να έχει ακόμη και σήμερα κάποια διδακτική χρησιμότητα; Σε ποιες περιπτώσεις θα μπορούσε να είναι χρήσιμο; Σε ορισμένα άλλα σημεία των σημειώσεων, προτείνονται μερικές εφαρμογές στην τάξη στις οποίες οι μαθητές προσομοιώνουν τη λειτουργία ενός τμήματος ενός Η.Υ. παίζοντας οι ίδιοι το ρόλο των διαφόρων μερών του Η.Υ. Υπάρχει κάποια ομοιότητα ανάμεσα στα δυο «συστήματα»: τον CARDIAC και την προσομοίωση αυτή;
Δραστηριότητα 6η: BALTIE
Επισκεφθείτε τη σχετική σελίδα της γλώσσας ή περιβάλλοντος BALTIE-3 http://progopedia.com/language/baltie/ Ποια είναι η γνώμη σας για ένα περιβάλλον αυτού του είδους;
Δραστηριότητα 7η: MORTRAN
Κατεβάστε το λογισμικό Mortran (δεν χρειάζεται εγκατάσταση). Ανοίξτε το και προσπαθήστε να δημιουργήσετε και να εκτελέσετε 23 απλά προγράμματα. Τα χαρακτηριστικά του Mortran (απλό περιβάλλον, απουσία ιδιαίτερης σύνταξης) σας φαίνονται ικανοποιητικά για μια εισαγωγή στον προγραμματισμό ή θεωρείτε ότι το περιβάλλον αυτό είναι μάλλον "φτωχό" σε διδακτικές δυνατότητες και δεν είναι χρήσιμο; Σας φαίνεται περισσότερο παιχνίδι παρά πραγματικά κατάλληλο για μια στοιχειώδη εισαγωγή τον προγραμματισμό; Στο παράρτημα 3 των σημειώσεων υπάρχει μια λεπτομερέστερη περιγραφή του περιβάλλοντος, καθώς και μερικές οδηγίες για τον τρόπο με τον οποίο θα μπορούσε να χρησιμοποιηθεί στην τάξη.
Δραστηριότητα 8η: Διαφορές ανάμεσα στα επαγγελματικά και τα εκπαιδευτικά περιβάλλοντα
Μελετήστε την παράγραφο 5. Κατά πάσα πιθανότητα από προσωπική εμπειρία θα έχετε χρησιμοποιήσει τουλάχιστον μια γλώσσα "επαγγελματική" (όπως Java, C, Visual BASIC παλιότερα Pascal ή FORTRAN) και ίσως έχετε εμπειρία και από συστήματα (όπως IDE) επαγγελματικού χαρακτήρα. Στην παράγραφο 5 περιγράφονται ορισμένες διαφορές ανάμεσα στα δυο είδη περιβαλλόντων (αν και η διάκριση δεν είναι πάντοτε εύκολη ή εφικτή). Συμφωνείτε με τις απόψεις που εκφράζονται στην παράγραφο 5;
Δραστηριότητα 9η: AgentSheet
Eπισκεφθείτε τον ιστοχώρο του AgentSheet. Περιηγηθείτε στον ιστοχώρο του. Αν και το AgentSheet είναι ένα εμπορικό προϊόν, το ελληνικό δημόσιο χρηματοδότησε ορισμένες εφαρμογές στο πλαίσιο του έργου "Πλειάδες". Στο http://www.agentsheets.gr/ μπορείτε να βρείτε μερικά applets που έχουν δημιουργηθεί με το περιβάλλον αυτό. Δείτε μερικές εφαρμογές. Θα ήταν εφικτό να δημιουργηθούν εφαρμογές προσομοίωσης λειτουργίας συστημάτων (δικτύων, λειτουργία του επεξεργαστή κ.ά.); Συζητείστε αυτή τη δυνατότητα.
Δραστηριότητα 10η: Game Maker
Επισκεφθείτε τον ιστοχώρο του Game Maker. Περιηγηθείτε στον ιστοχώρο του. Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές.; Διακρίνετε κάποια πλεονεκτήματα-μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 11η: Kodu
Επισκεφθείτε τον ιστοχώρο του Kodu Περιηγηθείτε στον ιστοχώρο του. http://research.microsoft.com/en-us/projects/kodu/ Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές; Διακρίνετε κάποια πλεονεκτήματα- μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 12η: Ο "χάρτινος" υπολογιστής
Μελετήστε το "χάρτινο" υπολογιστή του παραρτήματος 1. Αντιστοιχεί σε διδακτικές πρακτικές που χρησιμοποιείτε και εσείς; Ποια είναι η γνώμη σας για τον "Η.Υ." αυτό (δηλαδή ποια είναι κατά τη γνώμη σας, τα ενδεχόμενα προτερήματα και μειονεκτήματά του);
Δραστηριότητα 13η: YENKA
Επισκεφθείτε τον ιστοχώρο του ΥΕΝΚΑ (http://www.yenka.com/). Το περιβάλλον ΥΕΝΚΑ προτείνει μια εισαγωγή στον προγραμματισμό βασισμένη στη διαχείριση (από το χρήστη) μια σειράς animated οντοτήτων (χαρακτήρων). Περιηγηθείτε στον ιστοχώρο του και εξετάστε μερικές από τις κατασκευές που προτείνονται για επίδειξη. Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές; Διακρίνετε κάποια πλεονεκτήματα- μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 14η: Προσομοίωση εκτέλεσης ενός προγράμματος
Πολύ πιο «κοντά» στη λειτουργία ενός Η.Υ. είναι η δραστηριότητα - ή ακριβέστερα το σύνολο των δραστηριοτήτων - στις οποίες η τάξη προσομοιώνει τη λειτουργία ενός Η.Υ. κατά την εκτέλεση ενός προγράμματος. Η τάξη πρέπει να συμμετέχει στο σύνολο της ή, εν πάση περιπτώσει, κατά το μεγαλύτερο δυνατόν τμήμα της. Η κεντρική ιδέα είναι ότι η εκτέλεση ενός προγράμματος θα είναι κατακερματισμένη - αφού κάθε μαθητής θα εκτελεί ένα μόνο τμήμα της όλης διαδικασίας. Κατά πάσα πιθανότητα εξ άλλου, οι μαθητές δεν θα έχουν μια συνολική εικόνα του προγράμματος. Παρόλα αυτά, το πρόγραμμα θα εκτελεστεί και θα παραχθεί κάποιο αποτέλεσμα.
Ή δραστηριότητα αυτή θέλει προσεκτική προετοιμασία: πρέπει να επιλεγούν προσεκτικά οι «εντολές» της «γλώσσας προγραμματισμού» που θα χρησιμοποιηθεί. Στην προκειμένη περίπτωση εξ άλλου, θα μπορούσε να δημιουργηθεί μια παραλλαγή μιας απλής γλώσσας προγραμματισμού ή ένα ελληνικό ισοδύναμο της.
Βασικά στοιχεία του μηχανισμού του Η.Υ. είναι η «μονάδα εισόδου» η «μονάδα εξόδου», ο «επεξεργαστής», η «μνήμη» και το «λεωφορείο». Η «μονάδα εισόδου» μπορεί να είναι ένας μαθητής στον μαυροπίνακα, ο οποίος να σημειώνει τους αριθμούς που του δίνονται από το «λεωφορείο» γραμμένοι σε ένα χαρτί. Παρόμοια, η «μονάδα εξόδου» αναγράφει στο μαυροπίνακα αριθμούς που τους παραλαμβάνει γραμμένους σε ένα χαρτί. Η μνήμη - ανάλογα με τον αριθμό των μαθητών που συμμετέχουν - μπορεί να αποτελείται από πολλούς μαθητές. Το ρόλο του «λεωφορείου» τον παίζει ένας μαθητής που μεταφέρει γραπτή μηνύματα και ο «επεξεργαστής» τέλος εκτελεί τις αναγκαίες πράξεις και δίνει εντολές στο «λεωφορείο» για τη διακίνηση των δεδομένων, αποτελεσμάτων κλπ. Βασικό κέρδος από τη δραστηριότητα αυτή είναι η κατανόηση μερικών βασικών αρχών λειτουργίας ενός Η.Υ. σε σχέση με την εκτέλεση ενός προγράμματος. Τα τμήματα του «υπολογιστή» συνεργάζονται, εκτελούν το καθένα ένα μικρό τμήμα της δουλειάς και παράγουν ένα αποτέλεσμα - χωρίς καν να γνωρίζουν ποιο είναι το νόημα του αποτελέσματος.
Δραστηριότητα 15η: Online περιβάλλοντα για την εκμάθηση του προγραμματισμού
Υπάρχουν στο Διαδίκτυο πολλά περιβάλλοντα για την εκμάθηση του προγραμματισμού.
Δύο τέτοια αξιοσημείωτα περιβάλλοντα (στην Αγγλική γλώσσα και δύο) είναι το Codecademy (http://www.code.org/learn/codecademy) και το w3schools: http://www.w3schools.com
Και τα δύο περιβάλλοντα προσφέρουν δωρεάν μαθήματα είτε σε markup γλώσσες (όπως η html) , είτε σε τυπικές γλώσσες προγραμματισμού, όπως η JavaScript.
Παρόμοιο είναι και το περιβάλλον Code Avengers: http://www.codeavengers.com
Ακόμη, στα περιβάλλοντα που παρέχουν πληροφορίες αυτού του είδους (Wikipedia http://en.wikipedia.org/wiki/List of educational programming lang uages, Youtube,..) μπορεί κανείς να βρει πολλές πληροφορίες ή σχετικά μαθήματα - π.χ. στο YouTube οι λέξεις-κλειδιά learning programming ή learning programming languages παραπέμπουν σε πολλά βίντεο όπου κανείς μπορεί να παρακολουθήσει μαθήματα για Visual Basic, C κλπ.
Μαθήματα προγραμματισμού που απευθύνονται σε άτομα που θέλουν να μάθουν προγραμματισμό σε πιο προηγμένο επίπεδο προσφέρουν και τα περιβάλλοντα μαθημάτων online Coursera (https://www.coursera.org/), Udacity (https://www.udacity.com/courses) και γενικότερα τα ανοιχτά μαθήματα που ανήκουν στην κατηγορία MOOC (Massively Open Online Courses) κ.ά. M^ ικανοποιητική λίστα με MOOC, μαζί με ένα επεξηγηματικό βίντεο είναι στη διεύθυνση: http://www.bdpa- detroit.org/portal/index.php?option=com content&view=article&id=57:moocs-top-10-sites-for-free-education-with-elite- universities&catid=29:education&Itemid=20
Δραστηριότητα 16η: Η μηχανή του Post
Πρόκειται για μια «θεωρητική μηχανή» (που «λειτουργεί» στο χαρτί αν και υπάρχουν προσομοιώσεις της) με τους απλούστερους δυνατούς κανόνες.
Περιγράφεται στο παράρτημα 2.
Ερωτήσεις "κλειστού τύπου":
1. Σε ένα προγραμματιστικό μικρόκοσμο η γλώσσα προγραμματισμού αποτελείται συνήθως από ένα περιορισμένο ρεπερτόριο εντολών με απλή σύνταξη και σημασιολογία.
ΣΩΣΤΟ ΛΑΘΟΣ
2. Η πλειοψηφία των μικρόκοσμων προγραμματισμού ενσωματώνει ένα ανοιχτό περιβάλλον που βασίζεται σε κάποιο φυσικό μοντέλο, ενώ ο χρήστης ελέγχει ένα πρωταγωνιστή που «ζει» στο περιβάλλον αυτό.
ΣΩΣΤΟ ΛΑΘΟΣ
3. Τα προβλήματα που καλούνται να λύσουν οι σπουδαστές σε ένα προγραμματιστικό μικρόκοσμο είναι κυρίως προβλήματα επεξεργασίας αριθμών και συμβόλων.
ΣΩΣΤΟ. Οι προγραμματιστικοί μικρόκοσμοι έχουν ως βασικό στόχο τους την εξοικείωση των αρχαρίων προγραμματιστών με τις βασικές έννοιες του προγραμματισμού. Έτσι, τα προβλήματα επεξεργασίας αριθμών και συμβόλων είναι τα πλέον κατάλληλα στα εισαγωγικά μαθήματα - λόγω της απλότητας στο «χειρισμό» τους.
ΛΑΘΟΣ. Οι προγραμματιστικοί μικρόκοσμοι έχουν ως βασικό στόχο τους την εξοικείωση των αρχαρίων προγραμματιστών με τις βασικές έννοιες του προγραμματισμού. Για το λόγο αυτό, κατά κανόνα, οι προγραμματιστικοί μικρόκοσμοι στηρίζονται σε περιβάλλοντα «διαχείρισης» διαφόρων οντοτήτων, έτσι ώστε οι υπό διδακτική διαπραγμάτευση έννοιες να είναι πιο απλές, πιο οικείες και πιο ενδιαφέρουσες για τους αρχάριους μαθητές.
4. Σε ένα προγραμματιστικό μικρόκοσμο παρουσιάζεται, συνήθως, το τελικό αποτέλεσμα της εκτέλεσης ενός προγράμματος και δεν υποστηρίζεται η βήμα προς βήμα εκτέλεση.
ΣΩΣΤΟ ΛΑΘΟΣ
Δείτε το παρακάτω βίντεο: http://www.youtube.com/watch?feature=plaver embedded&v=nKIu9ven5nc
Στο θεωρητικό τμήμα προτείνονται ορισμένες βασικές έννοιες. Μεταξύ αυτών είναι και η έννοια της διδακτικής μετατόπισης - μια έννοια που χρησιμοποιήθηκε πολύ στη Διδακτική των Μαθηματικών. Στο πλαίσιο της εξετάζονται θέματα που σχετίζονται με τη "ζωή" των διαφόρων ενοτήτων που διδάσκονται: για παράδειγμα, από τα Μαθηματικά πάντοτε, για λόγους που οφείλονται σε νέες παιδαγωγικές-διδακτικές αντιλήψεις, έννοιες, κεφάλαια και τεχνικές συρρικνώνονται (οι λεγόμενοι Γεωμετρικοί τόποι ουσιαστικά δεν διδάσκονται πλέον και η θέση της Γεωμετρίας στο Λύκειο είναι πια πολύ περιορισμένη), άλλα εξαφανίζονται τελείως (όπως η διδασκαλία της περίφημης "απλής και σύνθετης μεθόδου των τριών", τα περί μειγμάτων και κραμάτων κ.ά.), άλλων η θέση αποδυναμώνεται (κάποτε τα περί απολύτων τιμών ήταν ξεχωριστό κεφάλαιο για τις Πανελλαδικές εξετάσεις), άλλα μετατοπίζονται προς "τα κάτω" (στο Δημοτικό, εδώ και πολλά χρόνια διδάσκονται εξισώσεις, πράξεις με παρενθέσεις κλπ - θέματα που διδασκόταν αποκλειστικά στο Γυμνάσιο).
Είναι σαφές πως και η ύλη των Πανελλαδικών εξετάσεων επηρεάζεται από τα φαινόμενα αυτά. Υπάρχουν επίσης παραδείγματα αντικειμένων που διδάσκονται με τρόπους οι οποίοι δεν έχουν αναφορά στο αντίστοιχο αντικείμενο των Μαθηματικών: για παράδειγμα, οι δεκαδικοί, μερικές φορές παρουσιάζονται ως "φυσικοί με υποδιαστολή". Για όσες και όσους ενδιαφέρονται για περαιτέρω μελέτη, υπάρχει μια ελληνική Διδακτορική διατριβή με θέμα την διδακτική μετατόπιση στη διδασκαλία της απόλυτης τιμής. (http://thesis.ekt.gr/thesisBookReader/id/3660#page/8/mode/2up)
Η πρόοδος της Επιστήμης στα Μαθηματικά δεν επηρεάζει σημαντικά τη διδασκαλία τους, αφού τα διδασκόμενα αντικείμενα στα Μαθηματικά είναι "ηλικίας" πολλών δεκαετιών - αν όχι χιλιετιών. Αντίθετα. σε μαθήματα όπως η Βιολογία, η ταχύτατη πρόοδος των τελευταίων ετών υποχρεώνει το εκπαιδευτικό σύστημα σε αναμόρφωση των διδακτέας ύλης, ενώ η μεταβολή των κοινωνικών πρακτικών και απόψεων, ακόμη και σε θέματα ηθικής (όπως η Βιοηθική) επηρεάζει το σχολικό πρόγραμμα. Έχουμε άραγε ανάλογα φαινόμενα στην Πληροφορική; Δηλαδή υπάρχουν κεφάλαια, έννοιες, τεχνικές, θέματα γενικά που έχουν υποστεί κάποια μεταβολή στη σχολική "ζωή" τους στο χρόνο; Αν κρίνετε πως "ΝΑΙ" ποια μπορεί να είναι τα ενδεχόμενα αίτια; Η πρόοδος της Επιστήμης και του επαγγέλματος, η αλλαγή στις κοινωνικές πρακτικές, η μεταβολή των διδακτικών/παιδαγωγικών απόψεων της "νοόσφαιρας" ή γενικότερα η μεταβολή στα διδακτικά μοντέλα γενικώς; Η ύλη και το "στυλ" των θεμάτων στις Πανελλαδικές εξετάσεις επηρεάζονται από αυτό; Συζητείστε το σχετικό θέμα με τους συναδέλφους σας.
Δραστηριότητα 2η: Μελέτη του θεωρητικού μέρους
Μελετήστε το θεωρητικό μέρος και επισημάνετε τους ορισμούς βασικών εννοιών: διδακτικό συμβόλαιο, διδακτική κατάσταση, διδακτική μετατόπιση. Θεωρείτε ότι οι έννοιες αυτές έχουν κάποια μέρους χρησιμότητα για τον εκπαιδευτικό (οιουδήποτε αντικειμένου) ή είναι άχρηστες στη διδακτική πράξη; Αν η απάντησή σας είναι "ΝΑΙ", τότε ποια νομίζετε ότι είναι η χρησιμότητά τους; Ειδικότερα, θεωρείτε ότι έχουν κάποια χρησιμότητα στη διδασκαλία της Πληροφορικής; Συζητείστε το θέμα αυτό στο forum (σύγχρονα ή ασύγχρονα). Συντάξτε μια απάντηση μετά τη συζήτηση και υποβάλετε την (η εργασία-απάντηση περίπου 500 λέξεις με τη συνήθη τυπική μορφοποίηση).
Δραστηριότητα 3η: Εκπαιδευτικές γλώσσες προγραμματισμού
Επισκεφθείτε τη σχετική σελίδα της Wikipedia: http://en.wikipedia.org/wiki/Educational programming language και δείτε τις κατηγορίες "εκπαιδευτικών" γλωσσών προγραμματισμού που αναφέρονται (ο κατάλογος δεν είναι βεβαίως πλήρης). Θεωρείτε ότι ο αριθμός των γλωσσών αυτών που έχουν εκπαιδευτικό χαρακτήρα είναι υπερβολικά μεγάλος; Εκτιμάτε ότι κάποιες από τις γλώσσες αυτές υπερτερούν έναντι των υπολοίπων; Ποια είναι η γνώμη σας γενικότερα για τις κατηγορίες αυτές των γλωσσών και περιβαλλόντων;
Στη σχετική σελίδα της Wikipedia: http://el.wikipedia.org/wiki/Γλώσσα προγραμματισμού υπάρχει μια σχετικά σύντομη αναφορά στις κυριότερες γλώσσες προγραμματισμού και στη διεύθυνση: http://el.wikipedia.org/wiki/Αλγόριθμος μια παρουσίαση της έννοιας του αλγορίθμου (με αρκετές παραπομπές).
Δραστηριότητα 4η: Προγραμματισμός και γλώσσες προγραμματισμού
Στο ψηφιακό σχολείο (http://digitalschool.minedu.gov.gr/)μπορείτε να δείτε το σχετικό κεφάλαιο για τον προγραμματισμό της Γ' Γυμνασίου (http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSB1 02/365/2448,9367/index1 1.html). Οδηγίες για τον καθηγητή υπάρχουν στο:
http://digitalschool.minedu.gov.gr/modules/document/file.php/DSB102/Διδακτικό Πακέτο/Βιβλίο Εκπαιδευτικού/Γ Γυμνασίου/1.pdf
Δείτε επίσης τις προτάσεις του σχολικού βιβλίου για την έννοια του αλγορίθμου και του προγράμματος. Κατά τη γνώμη σας τα παραδείγματα που δίνονται είναι κατάλληλα για να σχηματίσει ο μαθητής την ιδέα ενός αλγορίθμου και ενός προγράμματος;
Μια πολύ ιδιαίτερη «γλώσσα προγραμματισμού» προσφέρεται στο ψηφιακό σχολείο: http://digitalschool.minedu.gov.gr/modules/ebook/show.php/DSB102/365/2448,9367/extras/Tools-Applications/Kef1 1 MiniIDE simple/Kef1 1 MiniIDE simple.html (προαπαιτεί εγκατάσταση java).
Το σχετικό ΔΕΠΠΣ-ΑΠΣ υπάρχει στη διεύθυνση: http://digitalschool.minedu.gov.gr/modules/document/file.php/DSB 101/ΔΕΠΠΣ-ΑΠΣ Πληροφορικής/18deppsaps Pliroforikis.pdf Τέλος, τα σχετικά κείμενα για τα νέα πιλοτικά προγράμματα δημοτικού και Γυμνασίου βρίσκονται στο: http://digitalschool.minedu.gov.gr/info/newps.php
Δραστηριότητα 5η: CARDIAC
Επισκεφθείτε τις ιστοσελίδες της wikipedia που αναφέρονται στον CARDIAC και δείτε το σχετικό φιλμάκι στο YouTube. Ένας «Η.Υ.» που λειτουργεί με το χέρι φαίνεται να ανήκει στο μουσείο των αξιοπερίεργων αντικειμένων και επιπλέον η διδακτική του χρησιμότητα δεν είναι προφανής.. Αυτοί που επινόησαν τον CARDIAC ωστόσο και τον διέδωσαν (δείτε και το αντίστοιχο Γαλλικό κατασκεύασμα με τον τίτλο Ordinapoche), θεώρησαν ότι αυτή η προσομοίωση, από την ίδια της τη φύση καθιστά πολύ εύκολη την κατανόηση του τρόπου με τον οποίο λειτουργεί ένας πραγματικός Η.Υ. (τουλάχιστον μερικές από τις λειτουργίες του). Η «ιδέα» δηλαδή πίσω από την επινόηση του συστήματος αυτού είναι η διδασκαλία. Ποια θα μπορούσε να είναι η διδακτική χρησιμότητα ενός τέτοιου συστήματος; Σας φαίνεται ότι το σύστημα αυτό θα μπορούσε να έχει ακόμη και σήμερα κάποια διδακτική χρησιμότητα; Σε ποιες περιπτώσεις θα μπορούσε να είναι χρήσιμο; Σε ορισμένα άλλα σημεία των σημειώσεων, προτείνονται μερικές εφαρμογές στην τάξη στις οποίες οι μαθητές προσομοιώνουν τη λειτουργία ενός τμήματος ενός Η.Υ. παίζοντας οι ίδιοι το ρόλο των διαφόρων μερών του Η.Υ. Υπάρχει κάποια ομοιότητα ανάμεσα στα δυο «συστήματα»: τον CARDIAC και την προσομοίωση αυτή;
Δραστηριότητα 6η: BALTIE
Επισκεφθείτε τη σχετική σελίδα της γλώσσας ή περιβάλλοντος BALTIE-3 http://progopedia.com/language/baltie/ Ποια είναι η γνώμη σας για ένα περιβάλλον αυτού του είδους;
Δραστηριότητα 7η: MORTRAN
Κατεβάστε το λογισμικό Mortran (δεν χρειάζεται εγκατάσταση). Ανοίξτε το και προσπαθήστε να δημιουργήσετε και να εκτελέσετε 23 απλά προγράμματα. Τα χαρακτηριστικά του Mortran (απλό περιβάλλον, απουσία ιδιαίτερης σύνταξης) σας φαίνονται ικανοποιητικά για μια εισαγωγή στον προγραμματισμό ή θεωρείτε ότι το περιβάλλον αυτό είναι μάλλον "φτωχό" σε διδακτικές δυνατότητες και δεν είναι χρήσιμο; Σας φαίνεται περισσότερο παιχνίδι παρά πραγματικά κατάλληλο για μια στοιχειώδη εισαγωγή τον προγραμματισμό; Στο παράρτημα 3 των σημειώσεων υπάρχει μια λεπτομερέστερη περιγραφή του περιβάλλοντος, καθώς και μερικές οδηγίες για τον τρόπο με τον οποίο θα μπορούσε να χρησιμοποιηθεί στην τάξη.
Δραστηριότητα 8η: Διαφορές ανάμεσα στα επαγγελματικά και τα εκπαιδευτικά περιβάλλοντα
Μελετήστε την παράγραφο 5. Κατά πάσα πιθανότητα από προσωπική εμπειρία θα έχετε χρησιμοποιήσει τουλάχιστον μια γλώσσα "επαγγελματική" (όπως Java, C, Visual BASIC παλιότερα Pascal ή FORTRAN) και ίσως έχετε εμπειρία και από συστήματα (όπως IDE) επαγγελματικού χαρακτήρα. Στην παράγραφο 5 περιγράφονται ορισμένες διαφορές ανάμεσα στα δυο είδη περιβαλλόντων (αν και η διάκριση δεν είναι πάντοτε εύκολη ή εφικτή). Συμφωνείτε με τις απόψεις που εκφράζονται στην παράγραφο 5;
Δραστηριότητα 9η: AgentSheet
Eπισκεφθείτε τον ιστοχώρο του AgentSheet. Περιηγηθείτε στον ιστοχώρο του. Αν και το AgentSheet είναι ένα εμπορικό προϊόν, το ελληνικό δημόσιο χρηματοδότησε ορισμένες εφαρμογές στο πλαίσιο του έργου "Πλειάδες". Στο http://www.agentsheets.gr/ μπορείτε να βρείτε μερικά applets που έχουν δημιουργηθεί με το περιβάλλον αυτό. Δείτε μερικές εφαρμογές. Θα ήταν εφικτό να δημιουργηθούν εφαρμογές προσομοίωσης λειτουργίας συστημάτων (δικτύων, λειτουργία του επεξεργαστή κ.ά.); Συζητείστε αυτή τη δυνατότητα.
Δραστηριότητα 10η: Game Maker
Επισκεφθείτε τον ιστοχώρο του Game Maker. Περιηγηθείτε στον ιστοχώρο του. Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές.; Διακρίνετε κάποια πλεονεκτήματα-μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 11η: Kodu
Επισκεφθείτε τον ιστοχώρο του Kodu Περιηγηθείτε στον ιστοχώρο του. http://research.microsoft.com/en-us/projects/kodu/ Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές; Διακρίνετε κάποια πλεονεκτήματα- μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 12η: Ο "χάρτινος" υπολογιστής
Μελετήστε το "χάρτινο" υπολογιστή του παραρτήματος 1. Αντιστοιχεί σε διδακτικές πρακτικές που χρησιμοποιείτε και εσείς; Ποια είναι η γνώμη σας για τον "Η.Υ." αυτό (δηλαδή ποια είναι κατά τη γνώμη σας, τα ενδεχόμενα προτερήματα και μειονεκτήματά του);
Δραστηριότητα 13η: YENKA
Επισκεφθείτε τον ιστοχώρο του ΥΕΝΚΑ (http://www.yenka.com/). Το περιβάλλον ΥΕΝΚΑ προτείνει μια εισαγωγή στον προγραμματισμό βασισμένη στη διαχείριση (από το χρήστη) μια σειράς animated οντοτήτων (χαρακτήρων). Περιηγηθείτε στον ιστοχώρο του και εξετάστε μερικές από τις κατασκευές που προτείνονται για επίδειξη. Επισημάνατε τα χαρακτηριστικά του περιβάλλοντος και της γλώσσας προγραμματισμού: σας φαίνεται ότι είναι κατάλληλη για μαθητές, αρχάριους προγραμματιστές; Διακρίνετε κάποια πλεονεκτήματα- μειονεκτήματα σε σχέση με τα άλλα περιβάλλοντα;
Δραστηριότητα 14η: Προσομοίωση εκτέλεσης ενός προγράμματος
Πολύ πιο «κοντά» στη λειτουργία ενός Η.Υ. είναι η δραστηριότητα - ή ακριβέστερα το σύνολο των δραστηριοτήτων - στις οποίες η τάξη προσομοιώνει τη λειτουργία ενός Η.Υ. κατά την εκτέλεση ενός προγράμματος. Η τάξη πρέπει να συμμετέχει στο σύνολο της ή, εν πάση περιπτώσει, κατά το μεγαλύτερο δυνατόν τμήμα της. Η κεντρική ιδέα είναι ότι η εκτέλεση ενός προγράμματος θα είναι κατακερματισμένη - αφού κάθε μαθητής θα εκτελεί ένα μόνο τμήμα της όλης διαδικασίας. Κατά πάσα πιθανότητα εξ άλλου, οι μαθητές δεν θα έχουν μια συνολική εικόνα του προγράμματος. Παρόλα αυτά, το πρόγραμμα θα εκτελεστεί και θα παραχθεί κάποιο αποτέλεσμα.
Ή δραστηριότητα αυτή θέλει προσεκτική προετοιμασία: πρέπει να επιλεγούν προσεκτικά οι «εντολές» της «γλώσσας προγραμματισμού» που θα χρησιμοποιηθεί. Στην προκειμένη περίπτωση εξ άλλου, θα μπορούσε να δημιουργηθεί μια παραλλαγή μιας απλής γλώσσας προγραμματισμού ή ένα ελληνικό ισοδύναμο της.
Βασικά στοιχεία του μηχανισμού του Η.Υ. είναι η «μονάδα εισόδου» η «μονάδα εξόδου», ο «επεξεργαστής», η «μνήμη» και το «λεωφορείο». Η «μονάδα εισόδου» μπορεί να είναι ένας μαθητής στον μαυροπίνακα, ο οποίος να σημειώνει τους αριθμούς που του δίνονται από το «λεωφορείο» γραμμένοι σε ένα χαρτί. Παρόμοια, η «μονάδα εξόδου» αναγράφει στο μαυροπίνακα αριθμούς που τους παραλαμβάνει γραμμένους σε ένα χαρτί. Η μνήμη - ανάλογα με τον αριθμό των μαθητών που συμμετέχουν - μπορεί να αποτελείται από πολλούς μαθητές. Το ρόλο του «λεωφορείου» τον παίζει ένας μαθητής που μεταφέρει γραπτή μηνύματα και ο «επεξεργαστής» τέλος εκτελεί τις αναγκαίες πράξεις και δίνει εντολές στο «λεωφορείο» για τη διακίνηση των δεδομένων, αποτελεσμάτων κλπ. Βασικό κέρδος από τη δραστηριότητα αυτή είναι η κατανόηση μερικών βασικών αρχών λειτουργίας ενός Η.Υ. σε σχέση με την εκτέλεση ενός προγράμματος. Τα τμήματα του «υπολογιστή» συνεργάζονται, εκτελούν το καθένα ένα μικρό τμήμα της δουλειάς και παράγουν ένα αποτέλεσμα - χωρίς καν να γνωρίζουν ποιο είναι το νόημα του αποτελέσματος.
Δραστηριότητα 15η: Online περιβάλλοντα για την εκμάθηση του προγραμματισμού
Υπάρχουν στο Διαδίκτυο πολλά περιβάλλοντα για την εκμάθηση του προγραμματισμού.
Δύο τέτοια αξιοσημείωτα περιβάλλοντα (στην Αγγλική γλώσσα και δύο) είναι το Codecademy (http://www.code.org/learn/codecademy) και το w3schools: http://www.w3schools.com
Και τα δύο περιβάλλοντα προσφέρουν δωρεάν μαθήματα είτε σε markup γλώσσες (όπως η html) , είτε σε τυπικές γλώσσες προγραμματισμού, όπως η JavaScript.
Παρόμοιο είναι και το περιβάλλον Code Avengers: http://www.codeavengers.com
Ακόμη, στα περιβάλλοντα που παρέχουν πληροφορίες αυτού του είδους (Wikipedia http://en.wikipedia.org/wiki/List of educational programming lang uages, Youtube,..) μπορεί κανείς να βρει πολλές πληροφορίες ή σχετικά μαθήματα - π.χ. στο YouTube οι λέξεις-κλειδιά learning programming ή learning programming languages παραπέμπουν σε πολλά βίντεο όπου κανείς μπορεί να παρακολουθήσει μαθήματα για Visual Basic, C κλπ.
Μαθήματα προγραμματισμού που απευθύνονται σε άτομα που θέλουν να μάθουν προγραμματισμό σε πιο προηγμένο επίπεδο προσφέρουν και τα περιβάλλοντα μαθημάτων online Coursera (https://www.coursera.org/), Udacity (https://www.udacity.com/courses) και γενικότερα τα ανοιχτά μαθήματα που ανήκουν στην κατηγορία MOOC (Massively Open Online Courses) κ.ά. M^ ικανοποιητική λίστα με MOOC, μαζί με ένα επεξηγηματικό βίντεο είναι στη διεύθυνση: http://www.bdpa- detroit.org/portal/index.php?option=com content&view=article&id=57:moocs-top-10-sites-for-free-education-with-elite- universities&catid=29:education&Itemid=20
Δραστηριότητα 16η: Η μηχανή του Post
Πρόκειται για μια «θεωρητική μηχανή» (που «λειτουργεί» στο χαρτί αν και υπάρχουν προσομοιώσεις της) με τους απλούστερους δυνατούς κανόνες.
Περιγράφεται στο παράρτημα 2.
Ερωτήσεις "κλειστού τύπου":
1. Σε ένα προγραμματιστικό μικρόκοσμο η γλώσσα προγραμματισμού αποτελείται συνήθως από ένα περιορισμένο ρεπερτόριο εντολών με απλή σύνταξη και σημασιολογία.
ΣΩΣΤΟ ΛΑΘΟΣ
2. Η πλειοψηφία των μικρόκοσμων προγραμματισμού ενσωματώνει ένα ανοιχτό περιβάλλον που βασίζεται σε κάποιο φυσικό μοντέλο, ενώ ο χρήστης ελέγχει ένα πρωταγωνιστή που «ζει» στο περιβάλλον αυτό.
ΣΩΣΤΟ ΛΑΘΟΣ
3. Τα προβλήματα που καλούνται να λύσουν οι σπουδαστές σε ένα προγραμματιστικό μικρόκοσμο είναι κυρίως προβλήματα επεξεργασίας αριθμών και συμβόλων.
ΣΩΣΤΟ. Οι προγραμματιστικοί μικρόκοσμοι έχουν ως βασικό στόχο τους την εξοικείωση των αρχαρίων προγραμματιστών με τις βασικές έννοιες του προγραμματισμού. Έτσι, τα προβλήματα επεξεργασίας αριθμών και συμβόλων είναι τα πλέον κατάλληλα στα εισαγωγικά μαθήματα - λόγω της απλότητας στο «χειρισμό» τους.
ΛΑΘΟΣ. Οι προγραμματιστικοί μικρόκοσμοι έχουν ως βασικό στόχο τους την εξοικείωση των αρχαρίων προγραμματιστών με τις βασικές έννοιες του προγραμματισμού. Για το λόγο αυτό, κατά κανόνα, οι προγραμματιστικοί μικρόκοσμοι στηρίζονται σε περιβάλλοντα «διαχείρισης» διαφόρων οντοτήτων, έτσι ώστε οι υπό διδακτική διαπραγμάτευση έννοιες να είναι πιο απλές, πιο οικείες και πιο ενδιαφέρουσες για τους αρχάριους μαθητές.
4. Σε ένα προγραμματιστικό μικρόκοσμο παρουσιάζεται, συνήθως, το τελικό αποτέλεσμα της εκτέλεσης ενός προγράμματος και δεν υποστηρίζεται η βήμα προς βήμα εκτέλεση.
ΣΩΣΤΟ ΛΑΘΟΣ
Επιμόρφωση Εκπαιδευτικών για την Αξιοποίηση και Εφαρμογή των ΤΠΕ στη Διδακτική Πράξη
ΙΤΥΕ Διάφαντος - Διεύθυνση Επιμόρφωσης και Πιστοποίησης
ΙΤΥΕ Διάφαντος - Διεύθυνση Επιμόρφωσης και Πιστοποίησης