Home » B2 » 2

2

ΠΑΚΕΤΟ 2: Διδακτική της Πληροφορικής Επιμορφωτικό Υλικό

ΠΕΡΙΕΧΟΜΕΝΑ
1 Εισαγωγικά………………………………………………………………………………………………………………………………. 4
2 Στοιχεία από τη Διδακτική της Πληροφορικής……………………………………………………………………………… 4
2.1 Συνοπτική περιγραφή του υλικού αναφοράς ……………………………………………………………………….. 4
2.2 Σκοποί και στόχοι………………………………………………………………………………………………………………. 5
2.3 Προβλεπόμενη διάρκεια ……………………………………………………………………………………………………. 5
2.4 Θεωρητικές έννοιες από τη Διδακτική της Πληροφορική……………………………………………………….. 5
2.4.1 H ανάγκη για ένα θεωρητικό πλαίσιο …………………………………………………………………………… 5
2.5 Οι αντιλήψεις των σπουδαστών και μερικές ακόμη θεωρητικές έννοιες της Διδακτικής …………… 7
2.5.1 Απλοϊκές αντιλήψεις: το παράδειγμα του ανθρωπομορφισμού………………………………………. 8
2.6 Η έννοια του εμποδίου………………………………………………………………………………………………………. 9
2.7 H διδασκόμενη γνώση κι ο μετασχηματισμός της ……………………………………………………………….. 11
2.8 Tο διδακτικό συμβόλαιο…………………………………………………………………………………………………… 13
2.9 Μια βασική υπόθεση της Διδακτικής…………………………………………………………………………………. 14
2.10 Η έννοια της ΤΠΓΠ……………………………………………………………………………………………………………. 16
2.11 Υπολογιστική και αλγοριθμική σκέψη (Computational thinking) …………………………………………… 18
3 Συνήθεις δυσκολίες και λάθη αρχαρίων ……………………………………………………………………………………. 21
3.1.1 Δομές Επιλογής………………………………………………………………………………………………………… 22
3.1.2 H διαχείριση των συμβολοσειρών (strings) …………………………………………………………………. 24
3.1.3 Δομές Επανάληψης ή βρόχοι (Loops)………………………………………………………………………….. 26
3.1.4 Υποπρογράμματα …………………………………………………………………………………………………….. 31
3.1.5 Ταξινομήσεις και Αναζήτηση ……………………………………………………………………………………… 31
3.1.6 Μεταβλητές και απλές εκχωρήσεις…………………………………………………………………………….. 32
3.1.7 Eισαγωγή δεδομένων ……………………………………………………………………………………………….. 35
3.1 Πηγές των δυσκολιών των μαθητών στην Πληροφορική ……………………………………………………… 36
3.2 Μερικές μέθοδοι για μια εισαγωγή στον προγραμματισμό………………………………………………. 38
4 Βιβλιογραφία…………………………………………………………………………………………………………………………. 42


1 Εισαγωγικά
Στο παρόν υλικό αναφοράς για τη Διδακτική της Πληροφορικής, περιλαμβάνονται τρία μέρη:
<1> το πρώτο μέρος (περίπου ως τη σελίδα 20) αποτελεί μια εισαγωγή στη θεωρία της Διδακτικης της
Πληροφορικής. Παρουσιάζονται βασικές έννοιες όπως οι αντιλήψεις των μαθητών και τα λεγόμενα
εμπόδια, η φύση (άρα και η διαχείριση) των λαθών η διδακτική μετατόπιση, το διδακτικό συμβόλαιο
καθώς και οι βασικές υποθέσεις της Διδακτικής. Περιλαμβάνονται επίσης μια ενότητα για το μοντέλο
ΤΠΓΠ (TPACK) και μια ενόττηα για την υπολογιστική σκέψη
<2> το δεύτερο μέρος (περίπου ως τη σελίδα 41) παρουσιάζει συγκεκριμένες κατηγορίες δυσκολιών των
μαθητων που συνδέονται με:
τη δομή επιλογής
τη διαχείριση συμβολοσειρών
τους βρόχους, τις δομές επανάληψης
τα υποπρογράμματα
τις ταξινομήσεις και αναζητήσεις
τις εκχωρήσεις τιμών
τη διαχείριση εισαγωγής δεδομένων
Στο ίδιο τμήμα παρατίθενται ορισμένες ενδεχόμενες πηγές των δυσκολιών που αντιμετωπίζουν οι
μαθητές και παρατίθενται ορισμένες καλές πρακτικές γιαμια εισαγωγή στη διδασκαλία του
προγραμματισμού.
<3> το τελευταίο μέρος αποτελείται από τη (σχετικά εκτεταμένη) βιβλιογραφία για περαιτέρω μελέτη.
2 Στοιχεία από τη Διδακτική της Πληροφορικής
2.1 Συνοπτική περιγραφή του υλικού αναφοράς
Η διδασκαλία της Πληροφορικής αποδείχτηκε περίπλοκη στη διδακτική πράξη. Πολλοί μαθητές και
σπουδαστές αντιμετωπίζουν προβλήματα κατανόησης εννοιών, παρανόησης των χρησιμοποιούμενων
τεχνικών, δυσκολίες στην επιλογή της κατάλληλης μεθόδου όταν καλούνται να επιλύσουν ένα πρόβλημα,
κυρίως όταν σχετίζεται με τον προγραμματισμό. Ως αποτέλεσμα και οι εκπαιδευτικοί δυσκολεύονται στη
διδασκαλία μερικών εννοιών, αλλά και οι σπουδαστές αντίστοιχα απογοητεύονται και αποφεύγουν τα
«δύσκολα» σημεία ή τον προγραμματισμό γενικότερα. Η διαπίστωση αυτή κατέστησε αναγκαία τη
συστηματική διερεύνηση των θεμάτων που σχετίζονται με τη διδασκαλία/εκμάθηση τα Πληροφορικής, έτσι ώστε τελικά η διδασκαλία της να καταστεί πιο αποτελεσματική, δηλαδή οι μαθητές ή σπουδαστές να
μαθαίνουν «καλύτερα». Στην παρούσα ενότητα θα παρουσιαστούν μερικές έννοιες από τη Διδακτική της

Πληροφορικής, τον κλάδο δηλαδή που ερευνά τα θέματα που σχετίζονται με τη διδασκαλία της
Πληροφορικής.
Έμφαση θα δοθεί στη διδασκαλία του προγραμματισμού – ενός κλάδου της Πληροφορικής που έχει
προφανώς κεντρική σημασία.
2.2 Σκοποί και στόχοι
Οι επιμορφούμενοι στο τέλος της ενότητας θα πρέπει:
Να έχουν βασικές γνώσεις των κυριοτέρων εννοιών της Διδακτικής της Πληροφορικής έτσι ώστε να
είναι σε θέση να αναγνωρίζουν τις έννοιες αυτές όταν τις συναντήσουν μέσα σε συγκεκριμένα
(διδακτικά) πλαίσια
2.3 Προβλεπόμενη διάρκεια
Η προβλεπόμενη διαρκεια είναι 3 ώρες.
Η συνολική διαπραγμάτευση του αντικειμένου της Διδακτικής της Πληροφορικής προβλέπεται να
υλοποιηθεί στο πλαίσιο διαζώσης (πρόσωπο με πρόσωπο) Συνεδρίας συνολικής διάρκειας 3 ωρών ή σε
αντίστοιχη Σύγχρονη Συνεδρία..
2.4 Θεωρητικές έννοιες από τη Διδακτική της Πληροφορική
2.4.1 H ανάγκη για ένα θεωρητικό πλαίσιο
Οι έρευνες σχετικά με τη διδασκαλία και την εκμάθηση της Πληροφορικής – και ιδιαίτερα για τον
προγραμματισμό των Η.Υ. και των ψηφιακών συσκευών γενικότερα – έχουν μια σημαντική πρόοδο τα
τελευταία 50 χρόνια. Οι έρευνες αυτές δεν έχουν βέβαια γνωρίσει μια σύμμετρη ανάπτυξη, δηλαδή όλα τα σχετικά αντικείμενα δεν έχουν ερευνηθεί στον ίδιο βαθμό: για παράδειγμα o προγραμματισμός των Η.Υ.
έχει ίσως τη μερίδα του λέοντος στο σύνολο των ερευνητικών δραστηριοτήτων κι οι έρευνες που σχετίζονται με τη διδασκαλία εισαγωγικών εννοιών στην Πληροφορική (τα λεγόμενα προβλήματα του
αλφαβητισμού στην Πληροφορική ή εισαγωγής στον προγραμματισμό) είναι πολύ περισσότερες από τις υπόλοιπες.
Υπενθυμίζουμε ότι έχουν ερευνηθεί αντικείμενα όπως (ενδεικτικά):
τα προβλήματα της διδασκαλίας και της κατανόησης των μεταβλητών,
οι δομές επανάληψης (βρόχοι),
οι εντολές επιλογής (εντολές τύπου if then else κ.λπ.) σε διάφορα προγραμματιστικά στυλ, όπως ο
συναρτησιακός προγραμματισμός (π.χ. LISP) ή ο λογικός προγραμματισμός (για παράδειγμα Prolog
κ.λπ.) σε επιτακτικές γλώσσες προγραμματισμού (π.χ. Pascal, Java, Puthon σε αντιδιαστολή με γλώσσες
συναρτησιακού προγραμματισμού),
θέματα αντικειμενοστρεφούς προγραμματισμού καθώς και παράλληλου προγραμματισμού η αναδρομικότητα, κυρίως σε γλώσσες στις οποίες η αναδρομικότητα είναι κυρίαρχη (όπως η LOGO).
Εκτός από τα παραπάνω, έχουν διερευνηθεί επίσης κάποια ιδιαίτερα θέματα όπως η «μεταφορά γνώσεων» από ένα προγραμματιστικό περιβάλλον σε άλλο, η εισαγωγή στον λογικό προγραμματισμό κ.ά. Σε μεγάλο βαθμό, όπως είναι εύλογο, η έρευνα στη Διδακτική ακολούθησε το «κύμα» των προγραμματιστικών μοντέλων που είναι ή υπήρξαν κυρίαρχα. Για παράδειγμα, σήμερα, ένα πολύ μεγάλο τμήμα των σχετικών ερευνών σχετίζεται με τη διδασκαλία του αντικειμενοστραφούς προγραμματισμού, τον προγραμματισμό στο Διαδίκτυο ή τον προγραμματισμό σε ρομποτικά «περιβάλλοντα», διαφόρων αυτόματων μηχανισμών ή ρομπότ. Αντίθετα, άλλα θέματα έχουν διερευνηθεί πολύ λιγότερο. Οι λόγοι των ανισόρροπης αυτής κατανομής δεν πρόκειται να εξεταστούν εδώ, απλώς επισημαίνονται.
Ένα σημαντικό ερώτημα είναι βέβαια το εξής: άραγε οι δυσκολίες των μαθητών εμφανίζονται με
διαφορετικό τρόπο ή σε διαφορετικό βαθμό σε διάφορα προγραμματιστικά «πλαίσια», όπως αυτά που
αναφέρουμε παραπάνω, ή είναι ανεξάρτητα από τα πλαίσια αυτά; Οι σχετικές έρευνες δείχνουν ότι στην
πραγματικότητα, τα διάφορα προγραμματιστικά περιβάλλοντα δεν έχουν πολύ μεγάλη επίδραση στην
κατανόηση του προγραμματισμού τουλάχιστον όχι σε όλα τα σημεία του. Βέβαια τα σύγχρονα περιβάλλοντα (κυρίως του λεγόμενου οπτικού προγραμματισμού), έχουν διάφορα πλεονεκτήματα, όπως:
Τις περισσότερες φορές είναι σχεδιασμένα για την εκπαίδευση
Πρακτικά δεν επιτρέπουν τα συντακτικά λάθη, αφού πολλές φορές, στα γραφικά περιβάλλοντα, οι
εντολές είναι προετοιμασμένες και ο χρήστης απλώς τις τοποθετεί στο κατάλληλο σημείο.
Είναι ελκυστικά για τα παιδιά καθώς έχουν έναν παιγνιώδη χαρακτήρα
Το οπτικοποιημενο περιβάλλον βοηθά στην κατανόηση της δομής ενός προγράμματος – αν και όχι
πολύ μεγάλου, καθώς οι εντολές είναι, ως μέγεθος, μεγαλύτερες από αντίστοιχες γραμμές καθαρού
κειμένου.
Επιτρέπουν πολύ γρήγορα στους αρχάριους προγραμματιστές να κατασκευάσουν προγράμματα
ενδιαφέροντα για τα παιδιά με animation, διάφορους χαρακτήρες που αλληλεπιδρούν με το χρήστη
κ.λπ
Με τον όρο
θεωρητικό πλαίσιο εννοούμε ένα πλαίσιο αναφοράς, ένα σύνολο υποθέσεων δηλαδή, μέσα
στο οποίο οι προτάσεις μιας ερευνητικής εργασίας (οι υποθέσεις εργασίας, οι αναλύσεις, τ’ αποτελέσματα
και το πεδίο ισχύος των) αποκτούν νόημα σε σχέση μ’ αυτό που αποτελεί το ιδιαίτερο αντικείμενο της
έρευνας: τα φαινόμενα δηλαδή της διδασκαλίας κι εκμάθησης των προγραμματιστικών εννοιών και του
προγραμματισμού γενικότερα, σ’ ένα περιβάλλον ειδικά οργανωμένο για το σκοπό αυτό (το εκπαιδευτικό
σύστημα).
Ένα εύλογο ερώτημα είναι το εξής: όσοι διδάσκουν Πληροφορική και προγραμματισμό, για
ποιο λόγο χρειάζονται ένα θεωρητικό πλαίσιο; Τι χρειάζεται ένα θεωρητικό πλαίσιο
Διδακτικής για να διδάξει κάποιος τις επαναληπτικές δομές ή την κληρονομικότητα;
Το θεωρητικό πλαίσιο επιτρέπει τη νοηματοδότηση των διδακτικών φαινομένων και άρα τον
καλύτερο έλεγχο της διδασκαλίας.
Δηλαδή οι δυσκολίες των μαθητών, η σχέση τους με την Πληροφορική και γενικότερα τα διδακτικά

φαινόμενα μπορούν να μελετηθούν(δηλαδή να αναλυθούν, να προβλεφθούν ως ένα βαθμό κ.λπ.) μέσα στο θεωρητικό πλαίσιο, το οποίο μεταβάλλεται και επεκτείνεται όσο αυξάνουν τα εμπειρικά δεδομένα.
Δυο προκαταρκτικές παρατηρήσεις επιβάλλονται:
α) θα πρέπει ίσως να καταστήσουμε σαφές το γεγονός ότι η Διδακτική της Πληροφορικής (αλλά και των
Mαθηματικών, της Φυσικής κ.λπ.) διακρίνεται ως ξεχωριστός κλάδος από μια σειρά άλλων κλάδων όπως η παιδαγωγική, η γνωστική ψυχολογία, η επιστημολογία κ.λπ. κατά τούτο: η διδακτική όχι μόνο
επικεντρώνεται ιδιαίτερα στα προβλήματα της διδασκαλίας αλλά και κάνει αποκλειστικές αναφορές
στο
προς διδασκαλία αντικείμενο
, δηλαδή θεωρεί τα σχετικά φαινόμενα στο πλαίσιο της ιδιαίτερου
επιστημονικού κλάδου στον οποίο αναφέρεται (στην περίπτωση μας της Πληροφορικής με έμφαση στον
προγραμματισμό). Υπάρχουν βέβαια κοινές έννοιες και μέθοδοι, αλλά γενικώς οι διδακτικές δεν ταυτίζονται – και δε θεωρείται ότι υπάρχει μια «Γενική» Διδακτική η οποία «καλύπτει» φαινόμενα σε όλα τα επιστημονικά πεδία.
β) μια δεύτερη παρατήρηση αφορά στην έννοια της “θεωρίας”: η θεωρία εξυπονοεί ένα συναφές και μη
αντιφατικό εννοιολογικό πλαίσιο το οποίο αποσκοπεί στην ερμηνεία και πρόβλεψη φαινομένων σχετικών με ένα συγκεκριμένο πεδίο. H θεωρία πρέπει βέβαια να συνδέεται με ειδικά και σαφώς καθορισμένα προβλήματα και κατ’ αυτήν την έννοια ίσως ο καταλληλότερος όρος για την περιγραφή του πλαισίου της Διδακτικής στο οποίο κάνουμε αναφορά είναι η “
προβληματική” (ως ουσιαστικό, όχι ως επίθετο). Mια προβληματική είναι ευρύτερη από την θεωρία, παραπέμπει σ’ αυτήν αλλά δεν συνοψίζεται σ’ αυτήν.
Για να δώσουμε ένα παράδειγμα, αν ένας ερευνητής προτείνει σε μια ομάδα μαθητών μια σειρά από
ερωτήσεις ώστε να εξακριβώσει τις αντιλήψεις τους τις σχετικές με την έννοια της μεταβλητής, οφείλει ν’
αποσαφηνίσει και να διευκρινίσει τις υποθέσεις που κάνει:
– ότι δηλαδή πράγματι υπάρχουν κάποιες ιδιαίτερες αντιλήψεις των μαθητών
– ότι οι απαντήσεις των μαθητών στα συγκεκριμένα ερωτήματα που θέτει θα τον βοηθήσουν στην
διερεύνηση των αντιλήψεων αυτών κ.λπ..
2.5 Οι αντιλήψεις των σπουδαστών και μερικές ακόμη θεωρητικές έννοιες της Διδακτικής
Στη μελέτη των διδακτικών φαινομένων που μας απασχολούν, κεντρικό ρόλο παίζουν οι λεγόμενες
αντιλήψεις των σπουδαστών: πρόκειται για ένα σύνολο υποθετικών γνώσεων οι οποίες αποδίδονται στο
μαθητή ή το σπουδαστή προκειμένου να περιγραφούν και να προβλεφθούν ορισμένες από τις αντιδράσεις του. Οι αντιλήψεις αυτές μπορούν να έχουν διάφορες πηγές: μπορεί εξίσου καλά να προέρχονται από τον κοινωνικό περίγυρο, την καθημερινή εμπειρία αλλά και τις ίδιες τις διδακτικές πρακτικές κ.λπ.
Οι αντιλήψεις λοιπόν λειτουργούν ως ένα είδος γνώσεων – αποτελούν στην πραγματικότητα μια γνώση η
οποία καθοδηγεί την πράξη. Οι αντιλήψεις αυτές δεν είναι βέβαια άμεσα παρατηρήσιμες: συνάγουμε την
ύπαρξη τους (δηλαδή την θεωρητική ύπαρξη τους) από την παραγωγή των μαθητών και σπουδαστών (τους αλγόριθμους και προγράμματα τους, τις απαντήσεις και τα σχόλια τους κ.ά.). Η ύπαρξη συστηματικών λαθών – λαθών δηλαδή που έχουν έναν επίμονο και διαρκή, γενικευμένο χαρακτήρα – αποδίδεται στη ύπαρξη σχετικών αντιλήψεων.


Το
λάθος δηλαδή δεν είναι μόνο το αποτέλεσμα της άγνοιας, της αβεβαιότητας, της τύχης – όπως θεωρούν οι εμπειρικιστικές ή μπηχεβιοριστικές θεωρίες μάθησης – αλλά μπορεί να είναι το αποτέλεσμα μιας προγενέστερης γνώσης, που κάποτε ήταν αποτελεσματική, είχε ενδιαφέρον, αλλά τώρα αποδεικνύεται λανθασμένη ή απλά ακατάλληλη. Tα λάθη αυτού του τύπου δεν είναι απρόβλεπτα, ούτε “πλάνες” – παράγονται από εμπόδια.
Παραθέτουμε ορισμένα παραδείγματα:
2.5.1 Απλοϊκές αντιλήψεις: το παράδειγμα του ανθρωπομορφισμού
Ένα παράδειγμα εδραιωμένης αντίληψης, «κλασσικό» στο είδος του, αντιστοιχεί στην ονομαζόμενη
ανθρωπομορφική αντίληψη. O σχετικός όρος οφείλεται στον Pea R. D. [1984] και χρησιμοποιείται για να
δηλώσει το γεγονός ότι οι αρχάριοι προγραμματιστές πολλές φορές ερμηνεύουν τα προγράμματα και
γενικότερα την επικοινωνία τους με ένα πληροφορικό σύστημα όχι με βάση τους συντακτικούς και
σημασιολογικούς κανόνες (syntax, semantics) της χρησιμοποιούμενης γλώσσας (προγραμματισμού,
γλώσσας εντολών κλπ), αλλ’ αποδίδοντας στο αντίστοιχο πρόγραμμα ένα νόημα ευρύτερο του
πραγματικού,
σαν να επρόκειτο για έναν διάλογο μ’ άνθρωπο. H ανθρωπομορφική αντίληψη έχει διάφορες
εκφράσεις, όπως αναφέρει και ο Pea.
Tυπικό παράδειγμα αποτελεί το μικρό πρόβλημα του «προσδιορισμού» της ηλικίας ενός ατόμου:
… IF age < 45 THEN WRITE “Είσαι νέος“
IF age < 65 THEN WRITE “Είσαι μεσόκοπος“
IF age < 100 THEN WRITE “Είσαι ηλικιωμένος“
Οι μαθητές εκπλήσσονται από τα αποτελέσματα της εκτέλεσης και μια «προσομοίωση» της εκτέλεσης του
βήμα-με-βήμα είναι πολλές φορές αναγκαία για να γίνει κατανοηή η ροή του προγράμματος.
Ανάλογη αντίληψη με αυτήν είναι εκείνη κατά την οποία οι νεαροί μαθητές μεταφέρουν στο
προγραμματιστικό περιβάλλον στρατηγικές επίλυσης προβλημάτων από άλλα περιβάλλοντα – χωρίς να
κάνουν τις απαραίτητες τροποποιήσεις. Aν, για παράδειγμα, προταθεί σε αρχάριους μαθητές το ακόλουθο
πρόγραμμα:

EMVADON:= VASIS * YPSOS
READLN (VASIS);
READLN (YPSOS);
WRITELN (EMVADON);

και τους ζητηθεί να προβλέψουν το αποτέλεσμα της εκτέλεσης του (αν, για παράδειγμα, δοθούν οι τιμές 8
και 4 στις μεταβλητές VASIS και YPSOS αντίστοιχα), το σύνολο των μαθητών προβλέπει ως απάντηση τον
αριθμό 32 (Pea R. D. [1984], Dagdilelis V. [1996]). H απάντηση αυτή θα ήταν βέβαια ορθή αν επρόκειτο για
μια συνηθισμένη άσκηση σχολικής γεωμετρίας όχι όμως για ένα πρόγραμμα H.Y.
Το πρόβλημα μοιάζει να προέρχεται από ένα αίτιο ανεξάρτητο της μεθόδου διδασκαλίας (καθώς έχει
επαληθευτεί και εμπειρικά σε πολλές περιστάσεις). Οι μαθητές λαμβάνουν υπ’ όψη τους το γεγονός ότι
όλα τα δεδομένα του προβλήματος εμπεριέχονται στο πρόγραμμα (ο τύπος του εμβαδού και τα μήκη

βάσεως και ύψους) και θεωρούν αυτόματα (και βεβαίως λανθασμένα) ότι το πληροφορικό σύστημα
(δηλαδή ο H.Y. και το λογισμικό) θα παράσχει την σωστή απάντηση, χωρίς να λαμβάνουν ταυτόχρονα υπ’
όψη τους και το γεγονός ότι η λειτουργία του προγράμματος είναι γραμμική κι όχι «παράλληλη» ή
οπισθοδρομούσα (ο Pea προτείνει ακριβώς τον όρο «παραλληλισμός» για να χαρακτηρίσει αυτή την
κατηγορία λαθών).
2.6 Η έννοια του εμποδίου
Επιχειρώντας να διερευνήσουμε τα πιθανά αίτια, τις “πηγές” ορισμένων αντιλήψεων των μαθητών και
σπουδαστών μπορούμε να διαπιστώσουμε τα εξής:
α) H αντίληψη του παραλληλισμού την οποία αναφέραμε, μπορεί να οφείλεται στην ελλιπή κατανόηση των αρχών λειτουργίας των πληροφορικών συστημάτων κι ιδιαίτερα στο γεγονός ότι τα προγράμματα – και μάλιστα τα μικροσκοπικά προγράμματα που συνήθως κατασκευάζουν οι σπουδαστές – εκτελούνται πολύ γρήγορα:
it looks at the program all at once because it is so fast σχολίασε ένας σπουδαστής όταν ρωτήθηκε σε μια σχετική έρευνα (Pea [1984], σελ. 4).
β) H απλοϊκή μορφή του ανθρωπομορφισμού (ο μαθητής που προσπαθεί να μάθει τ’ όνομα του Η.Υ.) μπορεί να βρίσκει την πηγή της στην περιρρέουσα ατμόσφαιρα της καθημερινής ζωής στην οποία οι Η.Υ.
(παλιότερα “ηλεκτρονικοί εγκέφαλοι”) εμφανίζονται να πραγματοποιούν ολοένα και πιο εντυπωσιακά
επιτεύγματα και άρα θα μπορούσε κανείς να συμπεράνει ότι οι ΗΥ διαθέτουν ένα είδος «ευφυΐας».
γ) Tο λάθος κατά το οποίο οι μαθητές αποδίδουν τιμές χωρίς να λαμβάνουν υπόψη τους τον τρόπο με τον
οποίο λειτουργεί το σύστημα οφείλεται ίσως στην εμπειρία από άλλα μαθήματα στα οποία βέβαια η σειρά με την οποία περιγράφονται τα δεδομένα (μήκος, πλάτος, σχετικός μαθηματικός τύπος) δεν παίζουν ουσιαστικό ρόλο στην επίλυση ενός προβλήματος υπολογισμού εμβαδού.
Οι πιθανές πηγές προέλευσης λοιπόν των αντιλήψεων αυτών μπορούν να είναι ποικίλες. Ορισμένες από τις αντιλήψεις αυτές – μολονότι λανθασμένες στη γενική τους έκφραση – έχουν κάποιο πεδίο εφαρμογών
γεγονός που τις κάνει να είναι πιο “ανθεκτικές” σε μια ενδεχόμενη τροποποίηση τους. Η δημιουργία κι η
εδραίωση μιας αντίληψης οφείλεται στο ότι – τουλάχιστον σε ορισμένες περιπτώσεις – η αντίληψη αυτή
είναι λειτουργική. Aν για παράδειγμα σε κάποια είδη προβλημάτων η αντίληψη ενός σπουδαστή αποτελεί
εργαλείο για την εξεύρεση μιας λύσης, τότε βέβαια η σχετική αντίληψη εδραιώνεται κι η τροποποίηση της θα είναι ακόμη πιο δύσκολη.
Στην περίπτωση αυτή η λανθασμένη αντίληψη μπορεί ν’ αποτελέσει ένα πραγματικό
εμπόδιο στην πρόοδο του.
Μια καινούρια γνώση στο σχολικό περιβάλλον (με τη γενική έννοια του όρου) θεσμοθετείται από τη στιγμή που από τον καθηγητή προσδιορίζεται ρητά. Ωστόσο είναι προφανές ότι η κατανόηση των νέων εννοιών δεν ακολουθεί κατ’ ανάγκη τη σειρά και τους ρυθμούς της διδασκαλίας. Μια καινούρια έννοια αποκτά νόημα ανάλογα με τις καταστάσεις στις οποίες λειτούργησε, ανάλογα με τα προβλήματα που λύθηκαν χάρη σε αυτήν. Οι γνώσεις των μαθητών, έτσι όπως εξελίσσονται μέσα στο χρόνο, σπάνια ακολουθούν ένα γραμμικό μοντέλο ανάπτυξης – δηλαδή συνεχούς προοδευτικής πορείας μέχρι ένα επιθυμητό σημείο. Πολύ συχνά βρίσκονται σε αντίθεση με το διδακτικό περιβάλλον (φυσικός χώρος για τη γεωμετρία,
προσομοιούμενη πραγματικότητα αν πρόκειται για προσομοίωση σε Η.Υ., θεωρητική αν πρόκειται για μια αξιωματικοποιημένη δομή) και καμιά φορά υφίστανται ταυτοχρόνως αντιλήψεις ασύμβατες κι αντιφατικές.
Το εμπόδιο προβάλλει λοιπόν όχι ως μια έλλειψη γνώσης, αλλά ως μια γνώση που δεν είναι πια κατάλληλη.
Το εμπόδιο έχει μερικά χαρακτηριστικά:
πρόκειται για μια γνώση η οποία λειτουργεί αποτελεσματικά σε μια σειρά καταστάσεων και για
ορισμένες τιμές των διδακτικών μεταβλητών.
το εμπόδιο είναι μια γνώση η οποία όταν πρόκειται να προσαρμοσθεί σε άλλες καταστάσεις – ή σε άλλες
τιμές των διδακτικών μεταβλητών – προκαλεί ιδιαίτερα λάθη, αναγνωρίσιμα κι αναλύσιμα ως προς το
εμπόδιο
το εμπόδιο – δηλαδή αυτή η ιδιαίτερη γνώση – ανθίσταται στις μετατροπές.
το εμπόδιο λοιπόν δε μπορεί να ξεπεραστεί παρά μόνο χάρη σε ιδιαίτερες καταστάσεις απόρριψης.
Aν η αντίληψη αυτή (η αντίστοιχη γνώση) έχει μια συχνή χρήση μπορεί ακόμη να μετεξελιχθεί ένα είδος
διαίσθησης, ένα είδος δηλαδή άμεσης και ενορατικής γνώσης που τίθεται σε εφαρμογή κατά τρόπο σχεδόν αυτόματο.
Οι λανθασμένες αντιλήψεις, όπως τουλάχιστον δείχνουν οι σχετικές έρευνες, μπορούν ακόμη να
συνυπάρχουν και μ’ άλλες γνώσεις (αντιλήψεις) οι οποίες να
είναι ασύμβατες μ’ αυτές ή ακόμη και
αντιφατικές και να μην εμφανίζονται παρά μόνο κάτω από ειδικές συνθήκες. H ύπαρξη τους πάντως μπορεί να διαπιστωθεί από την συστηματική εμφάνιση τους, όταν πληρούνται οι κατάλληλες προϋποθέσεις. Οι
αντιλήψεις των σπουδαστών οι σχετικές μ’ ένα αντικείμενο πριν από τη διδασκαλία και μετά απ’ αυτήν
αποτελούν βέβαια ένα σημαντικότατο θέμα για τη διδακτική της Πληροφορικής. Εξάλλου ένα σημαντικό
μεθοδολογικό πρόβλημα της διδακτικής είναι ακριβώς η σχεδίαση, πραγματοποίηση κι ανάλυση τέτοιων
καταστάσεων οι οποίες επιτρέπουν την εμφάνιση συγκεκριμένων αντιλήψεων των σπουδαστών.
Οι αντιλήψεις των σπουδαστών, εφ’ όσον αποτελούν ένα είδος γνώσης, μπορούν να έχουν διαφορετικούς
τρόπους έκφρασης. Έτσι μια αντίληψη μπορεί να εκφραστεί σαν αλγόριθμος ή σαν ένα είδος
έμπρακτου
θεωρήματος
(thιoreme-en-acte) το οποίο δεν εκφράζεται ρητά αλλά εφαρμόζεται στην πράξη. Έτσι, αν για
παράδειγμα μια συγκεκριμένη διαδικασία πρόκειται να εκτελεστεί ένα συγκεκριμένο πλήθος φορών, τότε
η καταλληλότερη μορφή βρόχου είναι του τύπου FOR….DO…NEXT. Τούτο έχει και μια δευτερεύουσα
συνέπεια: οι σπουδαστές οι οποίοι είναι ιδιαίτερα εξοικειωμένοι μ’ ένα στυλ προγραμματισμού (π.χ. με μια
ορισμένη κλάση προβλημάτων ή με μια ορισμένη γλώσσα προγραμματισμού) μπορεί να είναι επίσης
εξοικειωμένοι με ορισμένα έμπρακτα θεωρήματα περιορισμένης χρηστικότητας, τα οποία μπορούν ν’
αποτελέσουν ανασταλτικούς παράγοντες σε περίπτωση εργασίας σε ένα άλλο προγραμματιστικό
περιβάλλον.
Συνοψίζοντας θα μπορούσαμε ν’ αναφέρουμε ότι οι αντιλήψεις των μαθητών και των σπουδαστών δεν είναι
άμεσα παρατηρήσιμες, αλλά μόνον έμμεσα, αναλύοντας τον τρόπο με τον οποίο αντιδρούν στα πλαίσια
ορισμένων καταστάσεων. H διδακτική στοχεύει κατ’ αρχήν στη διαπίστωση των αντιλήψεων αυτών,
προκειμένου μα επιτύχει τη βασική της επιδίωξη: την μετατροπή των αντιλήψεων αυτών σε άλλες
λειτουργικότερες και πιο αποτελεσματικές – γεγονός που συνήθως περιγράφεται ως
απόκτηση γνώσεων.

2.7 H διδασκόμενη γνώση κι ο μετασχηματισμός της
Μια βασική θέση της διδακτικής είναι ότι η διδασκόμενη γνώση δεν ταυτίζεται με την αντίστοιχη
επιστημονική γνώση
. Για παράδειγμα η αναδρομικότητα, ή ακριβέστερα οι αναδρομικοί αλγόριθμοι, ως
επιστημονική έννοια έχουν διερευνηθεί σε βάθος από τους μαθηματικούς κι έχουν χρησιμοποιηθεί
ευρύτατα από τους πληροφορικούς. Ωστόσο οι αληθινές τους διαστάσεις στο επαγγελματικό πεδίο και στην επιστημονική τους χρήση δύσκολα μπορούν να παρουσιαστούν μέσα στο σύνηθες εκπαιδευτικό
περιβάλλον.
Συνήθως μια έννοια δεν μπορεί να περιγραφεί πλήρως κι ακόμη περισσότερο να γίνει κατανοητή, από έναν
απλό τυπικό ορισμό. Κατά κανόνα μία έννοια αποκτά το πλήρες νόημα της μέσα σ’ ένα πλαίσιο αναφοράς
το οποίο περιλαμβάνει τις συγγενείς προς αυτήν έννοιες, τα προβλήματα τα οποία μπορεί να επιλύσει –
όπως κι εκείνα που δεν μπορεί – κλπ. Tο πλαίσιο αυτό ονομάζεται
εννοιολογικό πεδίο (conceptual field).
Αυτό που συνήθως παρουσιάζεται σε μια εκπαιδευτική διαδικασία είναι ένα τμήμα του εννοιολογικού
πεδίου, εκείνο το τμήμα που ικανοποιεί τις τρέχουσες διδακτικές ανάγκες. Σε ορισμένες περιπτώσεις η
μερική αυτή παρουσίαση μπορεί ακόμη και να στρεβλώσει το επιστημονικό νόημα της αντίστοιχης εννοίας.
H Πληροφορική αποσκοπεί, όπως όλες οι επιστήμες, στην επίλυση προβλημάτων. Τα προβλήματα αυτά
μπορούν να προέρχονται από την ίδια την εξέλιξη της επιστήμης, να είναι “εσωτερικά” ή να βρίσκουν την
προέλευση τους σε άλλες πηγές (τεχνική, επαγγελματικές ανάγκες, άλλες επιστήμες…). Τα εννοιολογικά
εργαλεία κάθε επιστήμης επιτρέπουν την επίλυση ακριβώς των προβλημάτων αυτών. Το να δοκιμάσει
λοιπόν κανείς να μεταδώσει μια γνώση χωρίς να καταστήσει γνωστά τα προβλήματα τα οποία μπορούν να επιλυθούν χάρη σ’ αυτήν, είναι σαν μια απάντηση σε μια ερώτηση που δεν τέθηκε ποτέ.
Μια γνώση, έτσι όπως εκφράζεται σε μια δεδομένη στιγμή, αποτελεί επίσης το αποτέλεσμα απ’ όλες τις
διαμάχες που προηγήθηκαν για την εξέλιξη της. Έτσι, για παράδειγμα οι απόψεις για τον δομημένο
προγραμματισμό, κάποτε ισχυρό
παράδειγμα προγραμματισμού και της διδασκαλίας του και την χρήση των διαφόρων “jumps” (exit, goto κλπ) αποτελέσαν το προϊόν όλων των συζητήσεων και διαμαχών που
προηγήθηκαν.
Είναι προφανές ότι όλη αυτή η προβληματική δεν μπορεί να μεταφερθεί αυτούσια στη σχολική ή την
πανεπιστημιακή αίθουσα.
Αντίθετα, οι νέες έννοιες που εισάγονται στην εκπαιδευτική διαδικασία υπακούουν σε διαφορετικούς
κανόνες:
παρουσιάζονται κατά κανόνα σε συνδυασμό με προβλήματα ορισμένου τύπου και με ορισμένη μορφή
παρουσιάζονται με τρόπο τέτοιο ώστε ν’ ανταποκρίνονται στις (υποτιθέμενες) τρέχουσες γνώσεις των
σπουδαστών
κατακερματίζονται σύμφωνα με τις διδακτικές ανάγκες: στα βιβλία και τις σημειώσεις χωρίζονται σε
παραγράφους, σε ενότητες διδάξιμες σε περίοδο ακεραίου αριθμού εξαμήνων ή ετών.
Για όλους τους παραπάνω λόγους το “νόημα” της σχολικής γνώσης θα είναι διαφορετικό από το
“πραγματικό” νόημα της, αφού οι συνθήκες δημιουργίας και λειτουργίας της είναι διαφορετικές στις δυο

περιπτώσεις. H γνώση, έτσι όπως εμφανίζεται μέσα στην εκπαιδευτική διαδικασία αποτελεί την τελική
εικόνα μιας σειράς μετασχηματισμών, οι οποίοι έχουν την ονομασία
διδακτική μετατόπιση (didactic
transposition).
Οι επιστημονικές γνώσεις λοιπόν, σπάνια διδάσκονται αυτούσιες στις διάφορες σχολικές βαθμίδες. Το
γεγονός αυτό είναι μάλιστα πιο σαφές στις χαμηλότερες εκπαιδευτικές βαθμίδες. Επί της ουσίας, η μόνη
εκπαιδευτική βαθμίδα όπου η επιστημονική γνώση αποτελεί αντικείμενο διδασκαλίας είναι ο χώρος μέσα
στον οποίο παράγεται, δηλαδή το πανεπιστήμιο. Αντίθετα, στις άλλες βαθμίδες της εκπαίδευσης διδάσκεται
ένα σώμα γνώσης, το οποίο χαρακτηρίζεται από τον όρο «σχολικές γνώσεις», οι οποίες προκύπτουν κατά
κανόνα από τις επιστημονικές γνώσεις μιας περιοχής ως προϊόν μιας διαδικασίας μετασχηματισμού.
Με την έννοια του διδακτικού μετασχηματισμού οριοθετούνται οι γενικοί μηχανισμοί που επιτρέπουν το
πέρασμα από ένα «αντικείμενο επιστημονικής γνώσης» σε ένα «αντικείμενο διδασκαλίας». Ξεκινώντας από τη διάκριση ανάμεσα στην «επιστημονική γνώση» (όπως αυτή παράγεται από την επιστημονική κοινότητα στο πλαίσιο της επιστημονικής έρευνας) και στη «διδασκόμενη γνώση» (όπως αυτή μπορεί να παρατηρηθεί στην καθημερινή σχολική πρακτική) η Διδακτική μελετά πως γίνεται ο
μετασχηματισμός των επιστημονικών εννοιών ώστε να καταστούν αντικείμενο διδασκαλίας.
Στο πλαίσιο αυτό, ένα περιεχόμενο γνώσης έχοντας ορισθεί ως διδακτέα γνώση, υπόκειται σε ένα σύνολο
από προσαρμοστικούς μετασχηματισμούς που θα το καταστήσουν ικανό να πάρει θέση ανάμεσα στα
αντικείμενα διδασκαλίας. Συνεπώς, η διανοητική «εργασία» η οποία μετατρέπει ένα αντικείμενο γνώσης
για διδασκαλία σε αντικείμενο διδασκαλίας, αποκαλείται διδακτική μετατόπιση ή διδασκτικός
μετασχηματισμός.
Ο διδακτικός μετασχηματισμός δεν περιγράφει ωστόσο μόνο τη μετατροπή μιας επιστημονικής γνώσης σε διδακτική γνώση με τη μορφή κεφαλαίων σχολικών βιβλίων για παράδειγμα. Διαπνέει, αντιθέτως, όλο το φάσμα της διδακτικής πράξης και είναι σε στενή σχέση με τον τόπο, το κοινό και τους παιδαγωγικούς και διδακτικούς στόχους που τίθενται. Επηρεάζει συνεπώς ουσιαστικά το πρόγραμμα σπουδών, τα αναλυτικά προγράμματα και τη διδακτική πρακτική.
Το «αντικείμενο γνώσης» προσδιορίζεται συνεπώς από το χώρο της «επιστημονικής γνώσης», αυτό δηλαδή που αναγνωρίζεται από την επιστημονική κοινότητα ως τέτοιο. Εάν πάρουμε για παράδειγμα τα
«Λειτουργικά Συστήματα» στην Πληροφορική ή τον «αντικειμενοστρεφή προγραμματισμό», θα δούμε ότι
το αντικείμενο αυτό δεν είναι διδάξιμο, αυτό καθαυτό, τουλάχιστον εκτός του χώρου παραγωγής του,
δηλαδή τα Πανεπιστήμια και τα Ινστιτούτα. Πως να εξηγήσει κανείς σε μαθητές Λυκείου το λόγο ύπαρξης
του αντικειμενοστρεφούς προγραμματισμού;
Συγκεκριμένοι μηχανισμοί πρέπει να τεθούν σε λειτουργία ώστε η εν λόγω γνώση (όπως είναι
καταγεγραμμένη στις επιστημονικές δημοσιεύσεις και στα ακαδημαϊκά εγχειρίδια) να βγει από τον
επιστημονικό της χώρο και να εισαχθεί λειτουργικά και αποτελεσματικά στη διδακτική πράξη. Από τη στιγμή
που πραγματοποιηθούν τέτοιου τύπου λειτουργίες, η διδακτέα γνώση είναι αναμφισβήτητα διαφορετική
από την επιστημονική γνώση που χρησιμεύει ως αναφορά της. Πρέπει επίσης να τονισθεί ότι το
επιστημολογικό της περιβάλλον είναι επίσης διαφορετικό όπως και η σημασία της και η εμβέλεια των
εννοιών που την δομούν
.
Η πρόοδος της Επιστήμης εξάλλου επιβάλλει τη συχνη ανανέωση της «διδακτέας ύλης» προκαλώντας
συνεχείς διδακτικές μετατοπίσεις.
2.8 Tο διδακτικό συμβόλαιο
Ορισμένες φορές οι μαθητές, αλλά κι οι σπουδαστές, δίνουν απαντήσεις που φαίνονται παράλογες. Το πιο “κλασσικό” παράδειγμα τέτοιου παραλογισμού αποτελεί το γνωστό πρόβλημα της ηλικίας του καπετάνιου:
σ’ ένα πλοίο υπάρχουν 26 πρόβατα και 10 κατσίκες. Πόσων χρόνων είναι ο καπετάνιος; H συντριπτική
πλειοψηφία των μαθητών 8-9 ετών απαντά ότι ο καπετάνιος είναι 36 ετών. Δύσκολα θα μπορούσαμε ν’
αποδώσουμε τον παραλογισμό αυτό σ’ έλλειψη γνώσεων ή πνευματικών ικανοτήτων – προφανώς οι
μαθητές της 3ης δημοτικού σχολείου έχουν τ’ απαραίτητα εφόδια ώστε ν’ απαντήσουν σωστά. Ορισμένοι
ερευνητές έδειξαν ότι στην πραγματικότητα μια τέτοια συμπεριφορά μπορεί να εξηγηθεί μέσα σ’ ένα
ευρύτερο πλαίσιο, γιατί η απάντηση των μαθητών μπορεί να είναι παράλογη με την κοινή λογική αλλά είναι απολύτως συμβατή με τη συνήθη σχολική λογική .
Tα σχολικά προβλήματα υπακούουν στους εξής κανόνες:
α) ένα συνηθισμένο πρόβλημα έχει μια και μοναδική απάντηση
β) για την απάντηση αυτή:
όλα τα δεδομένα του προβλήματος πρέπει να χρησιμοποιηθούν
καμιά άλλη ένδειξη ή δεδομένο δεν είναι απαραίτητη
H σωστή χρήση των δεδομένων γίνεται χάρη σ’ ένα τυποποιημένο σχήμα εφαρμογής οικείων διαδικασιών, οι οποίες πρέπει απλά να συνδυαστούν με τον κατάλληλο τρόπο.
Tέλος το αποτέλεσμα πρέπει να υπακούει σε ορισμένους κανόνες κοινής λογικής: σ’ ένα πρόβλημα με αυγά η απάντηση δεν πρέπει να είναι “2,3 αυγά”, μια ηλικία ανθρώπου δεν μπορεί να είναι 200 ετών κλπ.
Tα συνηθισμένα προβλήματα στη Δευτεροβάθμια εκπαίδευση επιπέδου δεν χαρακτηρίζονται βέβαια από
ένα τόσο τυποποιημένο σύστημα – όμως ορισμένα από τα χαρακτηριστικά αυτά μπορούν να εντοπιστούν
και στο επίπεδο της.
Εξ άλλου, πολλοί ερευνητές (Rouchier et als 1984, Samurçay 1985, Rogalski et als 1988, Samurçay 1989,
Rogalski et Samurçay 1990, Rogalski et Samurçay 1993, Hoc 1989, Hoc & Nguyen-Xuan 1991), έχουν
επισημάνει το γεγονός ότι οι αρχάριοι μπορεί να αντιλαμβάνονται ως πλέον σημαντική
τη μορφοποίηση
(π.χ. τη στοίχιση) των αποτελεσμάτων, από τα ίδια τα αποτελέσματα – γεγονός που αποδίδεται τόσο στην
έλλειψη επαρκών γνώσεων, όσο και στην αλλαγή του
διδακτικού συμβολαίου
M’ έναν γενικό τρόπο δεχόμαστε την ύπαρξη ενός συνόλου άγραφων, έμμεσων αλλά υπαρκτών και ισχυρών κανόνων οι οποίοι προσδιορίζουν ορισμένα χαρακτηριστικά των προβλημάτων που προτείνονται μέσα στα εκπαιδευτικά πλαίσια αλλά και γενικότερα των αμοιβαίων “νομίμων” συμπεριφορών τόσο του καθηγητή
όσο και των μαθητών και σπουδαστών. Το σύνολο των κανόνων αυτών ονομάζεται
διδακτικό συμβόλαιο.
Το διδακτικό συμβόλαιο χαρακτηρίζει κατά μεγάλο μέρος τις αλληλεπιδράσεις μεταξύ σπουδαστών και
καθηγητή. Χαρακτηρίζει επίσης το είδος των προβλημάτων τα οποία είναι “νόμιμα”. Για παράδειγμα, την
περίοδο της πρώτης επαφής με τον προγραμματισμό ένα βασικό πρόβλημα που τίθεται στους αρχαρίους
είναι ακριβώς ο προσδιορισμός της φύσης των ζητουμένων: ενώ συνήθως η λύση των προβλημάτων
έγκειται στον προσδιορισμό κάποιων αριθμών, αλγεβρικών παραστάσεων ή γεωμετρικών σχημάτων, στον 
προγραμματισμό αυτό που συνήθως ζητείται είναι μια μέθοδος επίλυσης (ένα πρόγραμμα δεν επιλύει ένα πρόβλημα, αλλά μια κλάση προβλημάτων, περιγράφει δηλαδή μια μέθοδο επίλυσης). Έτσι πολλές φορές οισπουδαστές χωρίς μεγάλη εμπειρία στον προγραμματισμό, δυσκολεύονται να κατανοήσουν τη διαφορά
ανάμεσα στο παράδειγμα και τη μέθοδο. Aν προταθεί ως πρόβλημα ο προσδιορισμός ενός τρόπου για την αντιμετάθεση των περιεχομένων δύο μεταβλητών:
για παράδειγμα αν A=3 και B=5 τότε επιθυμούμε μετά την εφαρμογή της διαδικασίας να έχουμε B=5 και
A=3, πολλοί μαθητές αλλά και σπουδαστές προτείνουν σα λύση την εκχώρηση
B:=5
A:=3
Στο πλαίσιο αυτό θεωρούμε επίσης ότι μπορεί να υφίσταται μια αντιδιαστολή ανάμεσα σ’ αυτό που
ονομάζουμε
ιδιωτική πραγματικότητα και στην δημόσια εικόνα. Όπως κι αλλού έχουμε αναφέρει, η
προσωπική, ιδιωτική εργασία ενός επιστήμονα μπορεί να είναι – και κατά κανόνα είναι – τελείως
διαφορετική από την τελική μορφή των αποτελεσμάτων που δημοσιοποιούνται. Kατά μία τελείως ανάλογη
έννοια η προσωπική εργασία ενός μαθητή ή σπουδαστή, τα στοιχεία εκείνα που του χρησιμεύουν ως
δείκτης για την πορεία του, που αποτελούν για τον ίδιο μια επιβεβαίωση της ορθότητας των επιλογών του,
μπορεί να είναι τελείως διαφορετικά από τα στοιχεία που παρουσιάζει ως τελική εργασία. Για παράδειγμα,
στις εξετάσεις η προσωπική του εργασία (που συνήθως αντικατοπτρίζεται σ’ αυτό που ονομάζουμε
πρόχειρο) μπορεί να είναι τελείως διαφορετική από την τελική, επίσημη μορφή του γραπτού (το καθαρό).
Το πρώτο αντιστοιχεί περισσότερο στις προσωπικές του επιλογές, αποτελεί ένα δείγμα του τι πιστεύει ο
ίδιος για την εργασία του, ενώ το δεύτερο κατ’ ανάγκη είναι προσαρμοσμένο στις απαιτήσεις του διδακτικού
συμβολαίου.
2.9 Μια βασική υπόθεση της Διδακτικής
H βασική υπόθεση της Διδακτικής είναι διπλή:
α) το υποκείμενο (ο σπουδαστής) μαθαίνει – δηλαδή αυξάνει και τροποποιεί τις γνώσεις του – χάρη στην
αλληλεπίδραση του με το περιβάλλον του. H αλληλεπίδραση αυτή στο εκπαιδευτικό σύστημα έγκειται
βασικά σε μια δραστηριότητα επίλυσης προβλημάτων σε συνθήκες που προσδιορίζει, μερικώς τουλάχιστον,
ο εκπαιδευτικός. H διδασκαλία δεν είναι τίποτε άλλο παρά η δημιουργία ενός περιβάλλοντος το οποίο
αποσκοπεί στο να μετασχηματίσει τις αντιλήψεις των σπουδαστών. H διδακτική έχει σα στόχο της την
ανάλυση των διαδικασιών αυτών και γενικότερα την εξήγηση κι ερμηνεία των διδακτικών φαινομένων.
β) Βασική επιστημολογική υπόθεση της Διδακτικής είναι ότι τα προβλήματα είναι
πηγή και κριτήριο της
γνώσης
(Vergnaud 1982, σ. 220). Από τη μια η γνώση πηγάζει από προβλήματα, η γνώση κατά κανόνα
δημιουργείται προκειμένου να δοθούν λύσεις σε προβλήματα κι απ’ την άλλη μια διανοητική παραγωγή
αποτελεί γνώση στο βαθμό που είναι σημαντική, που επιτρέπει τη λύση μιας κλάσης προβλημάτων με
αποτελεσματικό τρόπο.
Κεντρική έννοια των υποθέσεων αυτών λοιπόν είναι το πρόβλημα. Για να είναι δυνατή η μάθηση πρέπει οι σπουδαστές να διαθέτουν κάποιους τρόπους επίλυσης του προτεινόμενου προβλήματος. H μάθηση

συντελείται όταν μέσα από την επίλυση του προβλήματος ο σπουδαστής τροποποιεί τους τρόπους αυτούς, τους βελτιώνει, δημιουργεί νέους, υποβιβάζει την αξία παλαιοτέρων. Σε ορισμένες περιπτώσεις ο έλεγχος αυτός μπορεί να πραγματοποιηθεί μέσα από τροποποιήσεις του ίδιου του προβλήματος. Όταν οι
τροποποιήσεις αυτές παίζουν ένα ρόλο στην μάθηση ονομάζονται
διδακτικές μεταβλητές.
Aναφερόμενοι στον προγραμματισμό, μπορούμε να διαπιστώσουμε την ύπαρξη διδακτικών μεταβλητών.
Προκειμένου να επιδειχθούν τα προτερήματα του δομημένου προγραμματισμού, προφανώς
καταλληλότερο είναι ένα σχετικά πολύπλοκο και μεγάλο πρόβλημα, αφού οι μέθοδοι της δοκιμής-λάθους
ή της απευθείας επίλυσης είναι τελείως αναποτελεσματικές στις περιπτώσεις αυτές – ενώ είναι λιγότερο
δαπανηρές σε απλά προβλήματα. Το μέγεθος κι η πολυπλοκότητα του προτεινομένου προβλήματος είναι
ουσιαστικοί παράγοντες στην περίπτωση αυτή. H ανάγκη σχεδίασης κι ελέγχου αλγορίθμων μπορεί
αντίθετα να επιτευχθεί με ρύθμιση μεταβλητών που είναι εξωγενείς ως προς το πρόβλημα: μπορεί για
παράδειγμα οι σπουδαστές να έχουν ορισμένο μόνο
χρόνο μηχανής για την κατασκευή των προγραμμάτων τους, γεγονός που θα τους αναγκάσει να τελειοποιήσουν τους αλγορίθμους τους και να τους ελέγξουν
προσεκτικά πριν περάσουν στην πληκτρολόγηση του τελικού κώδικα – ενώ αντίθετα η πιο συνηθισμένη
τακτική είναι η προσφυγή στην άμεση πληκτρολόγηση κώδικα ο οποίος διορθώνεται ανάλογα με τα λάθη
που διαπιστώνονται.
Το πρόβλημα στην εκπαιδευτική διαδικασία, όπως δείχνουν και τα παραπάνω, δεν πρέπει να νοηθεί σαν
μια “εκτός πλαισίου”, context-free πρόταση. Τα προβλήματα πρέπει μάλλον να θεωρούνται σαν μια
πρόταση η οποία πρέπει να επιλυθεί μέσα σε ορισμένα πλαίσια – και τα πλαίσια αυτά ρυθμίζουν κατά τρόπο ουσιαστικό τις διαδικασίες που είναι θεμιτές, “νόμιμες” για την επίλυση του προβλήματος, καθώς κι εκείνες που είναι αποτελεσματικές. Τα προβλήματα προς επίλυση μέσα στα πλαίσια αυτά ονομάζονται
διδακτικές καταστάσεις.
Σε μια διδακτική κατάσταση όλοι εκείνοι οι παράγοντες οι οποίοι ανταποκρίνονται σε μια ορισμένη
ενέργεια του υποκειμένου και γίνονται αντιληπτοί απ’ αυτό ονομάζονται
περιβάλλον.
Για παράδειγμα ο καθηγητής (ο οποίος αντιδρά μ’ έναν ορισμένο τρόπο σε μια απάντηση ενός σπουδαστή), ο συνάδελφος ο οποίος αποδέχεται ή απορρίπτει ένα επιχείρημα ή μια απόδειξη, το πληροφορικό σύστημα που παράγει ένα αποτέλεσμα ή ένα μήνυμα κατά την εκτέλεση ενός προγράμματος, η ηλεκτρονική μηχανή τσέπης αποτελούν μέρη του περιβάλλοντος. Είναι αυτονόητο πως η εκάστοτε “αντίδραση” του περιβάλλοντος συντελεί στη διαδικασία της μάθησης κι η δημιουργία του πλέον κατάλληλου περιβάλλοντος αποτελεί βασικό μέλημα της Διδακτικής.
Πολλοί ερευνητές διακρίνουν διαφόρους τύπους διδακτικών καταστάσεων όπως:
καταστάσεις ενέργειας στις οποίες ευνοείται κυρίως η κατασκευαστική ικανότητα των μαθητών γι’ απλά
αντικείμενα όπως ένα γεωμετρικό σχήμα
καταστάσεις έκφρασης ή διατύπωσης οι οποίες ευνοούν την κατασκευή κι εκμάθηση μοντέλων και
επιστημονικών “γλωσσών”. Ιδιαίτερο ρόλο ανάμεσα τους παίζουν οι
καταστάσεις επικοινωνίας, στις οποίες η επικοινωνία (δηλαδή μια διατύπωση για τη μετάδοση ενός μηνύματος) παίζει καθοριστικό ρόλο (Laborde
[1982]): αν η ποιότητα μιας διατύπωσης δεν επιτρέπει την ακριβή μετάδοση ενός μηνύματος, τότε
επανεξετάζεται όχι μόνο η ίδια η διατύπωση κι η χρησιμοποιούμενη “γλώσσα” αλλά και η υποκείμενη
γνώση
καταστάσεις επικύρωσης οι οποίες έχουν ως επίκεντρο την παραγωγή επιχειρημάτων για την επικύρωση μιας σχέσης, μιας πρότασης μιας κατασκευής (για παράδειγμα ενός αλγόριθμου ή ενός προγράμματος). Σε ορισμένες περιπτώσεις οι καταστάσεις απόφασης (Balacheff [1991]) απαιτούν ένα ορισμένο όριο βεβαιότητας, χωρίς ωστόσο να είναι απαραίτητες οι αποδείξεις (δηλαδή η ρητή διατύπωση εκείνων των επιχειρημάτων που δικαιολογούν την βεβαιότητα αυτή).
καταστάσεις επισημοποίησης οι οποίες υφίστανται υπό την ευθύνη του καθηγητή κι αποσκοπούν στο να
δώσουν το χαρακτήρα της θεσμικά αναγνωρισμένης γνώσης, σε ορισμένες από τις προσωπικές γνώσεις του σπουδαστή.
2.10 Η έννοια της ΤΠΓΠ
Η έννοια της Τεχνολογικής Παιδαγωγικής Γνώση Περιεχομένου (Technological Pedagogical And Content
Knowledge – TPACK) διατυπώθηκε από τους Mishra και Koehler (2006) με στόχο να περιγράψουν
ολοκληρωμένα το πλαίσιο των παραγόντων που καθορίζουν την ένταξη των ΤΠΕ στη σχολική τάξη. Από την εισαγωγή της ως θεωρητική έννοια, η ΤΠΓΠ έχει μετασχηματιστεί σε ένα χρήσιμο πλαίσιο-εργαλείο για την υποστήριξη της ένταξης των ΤΠΕ στη σχολική πρακτική προσφέροντας πολλές δυνατότητες στην
εκπαιδευτική έρευνα, στην εκπαίδευση και επαγγελματική ανάπτυξη των εκπαιδευτικών και στην
ενσωμάτωση των ΤΠΕ στην τάξη.
Το μοντέλο αυτό δεν αντιμετωπίζει ανεξάρτητα τις τρεις συστατικές συνιστώσες (Τεχνολογία, Παιδαγωγική, Περιεχόμενο) αλλά εστιάζει στις μεταξύ τους αλληλεπιδράσεις, στο πλαίσιο που διαμορφώνουν τα διάφορα εκπαιδευτικά μαθησιακά περιβάλλοντα των ΤΠΕ.
Η Τεχνολογική Παιδαγωγική Γνώση Περιεχομένου
Έτσι ορίζονται τρεις νέες μορφές γνώσης:
Παιδαγωγική Γνώση Περιεχομένου: Η ΠΓΠ περιλαμβάνει το σώμα της γνώσης που αφορά στην
αναπαράσταση, περιγραφή και μετασχηματισμό των επιστημονικών εννοιών και διαδικασιών, τις


παρανοήσεις, προϋπάρχουσες γνώσεις ή γνωστικές δυσκολίες των μαθητών, σε παιδαγωγικές στρατηγικές
και τεχνικές που είναι αποτελεσματικές στην πράξη, κ.λπ.
Τεχνολογική Γνώση Περιεχομένου: Η ΤΓΠ στη γλώσσα, τα μαθηματικά και τις φυσικές επιστήμες
περιλαμβάνει ζητήματα που αφορούν στο πώς οι επιστημονικές έννοιες και διαδικασίες μετασχηματίζονται
σε συγκεκριμένα τεχνολογικά περιβάλλοντα. Για παράδειγμα, οι αλλαγές στη φύση της επιστήμης που
φέρνουν οι ΤΠΕ, νέες μέθοδοι και εργαλεία που χρησιμοποιούνται για να λύσουν τα προβλήματα των
Φυσικών Επιστημών, οι μέθοδοι μοντελοποίησης της επιστημονικής γνώσης, η χρήση λογισμικών
προσομοίωσης (π.χ. στη φυσική ή στη χημεία) κ.λπ. Τα λογισμικά δυναμικής γεωμετρίας και τα λογισμικά
σχεδίασης διαφοροποιούν τους τρόπους με τους οποίους οικοδομείται η μαθηματική γνώση, οι
επεξεργαστές κειμένου και οι κειμενικές βάσεις δεδομένων αλλάζουν τον τρόπο με τον οποίο
προσεγγίζουμε τη διδασκαλία της γλώσσας.
Τεχνολογική Παιδαγωγική Γνώση: Η ΤΠΓ στα βασικά γνωστικά αντικείμενα περιλαμβάνει τη γνώση για το
πώς οι ΤΠΕ μπορούν να υποστηρίξουν συγκεκριμένες παιδαγωγικές στρατηγικές στην τάξη, π.χ. να
ενθαρρύνουν τη διερευνητική ή τη συνεργατική μάθηση.
Οι Koehler και Mishra (2006) υποστηρίζουν ότι η ουσιαστική ένταξη των ΤΠΕ στην πράξη απαιτεί την
κατανόηση από τους εκπαιδευτικούς των σχέσεων μεταξύ των τριών συνιστωσών της ΤΠΓΠ. Παρότι το
πλαίσιο αυτό εμφανίζεται ως ένα απλό στη σύλληψή του και λογικό θεωρητικό κατασκεύασμα, είναι
δύσκολο να κατανοηθεί από τους εκπαιδευτικούς και ακόμη δυσκολότερο να εφαρμοστεί αποτελεσματικά
στην εκπαιδευτική πρακτική).

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

 

(ΤΠΓ) Υποστήριξη καλλιέργειας τεχνολογικών δεξιοτήτων
Μαθησιακή υποστήριξη με ΤΠΕ (scaffolding)
Χειρισμός τεχνικών δυσκολιών σε εκπαιδευτικά ψηφιακά περιβάλλοντα

Έτσι, η άμεση διδασκαλία και η εκμάθηση εκπαιδευτικών ψηφιακών περιβαλλόντων κατά τη διάρκεια των
μαθημάτων στο ΚΣΕ προτείνεται να είναι σχετικά περιορισμένη. Η εξοικείωση με τα τεχνολογικά εργαλεία
και η πρόσκτηση των σχετικών δεξιοτήτων θα επιτευχθεί με την εμπλοκή των επιμορφούμενων στην
επίλυση νοηματοδοτούμενων διδακτικών προβλημάτων μέσω του σχεδιασμού αυθεντικών σεναρίων και
μαθησιακών δραστηριοτήτων βασισμένων σε ΤΠΕ, οι οποίες να εδράζονται σε ένα σαφές παιδαγωγικό
υπόβαθρο.
Αυτό διότι σύμφωνα με τη θεωρία αυτή είναι ο συνδυασμός των τριών ειδών γνώσεων που μπορεί να είναι
διδακτικά αποδοτικός – όχι η καθεμία συνιστώσα χωριστά.
2.11 Υπολογιστική και αλγοριθμική σκέψη (Computational thinking)
Η υπολογιστική σκέψη είναι μια έννοια πολύ ευρεία και βρίσκεται τα τελευταία χρόνια στο επίκεντρο του
ενδιαφέροντος της διεθνούς κοινότητας που διερευνά τα θέματα διδασκαλίας της Πληροφορικής (με την
ευρύτερη έννοια) μαζί με το STEM και τη ρομποτική. Με ένα συνοπτικό τρόπο, θα μπορούσαμε να ορίσουμε
την υπολογιστική σκέψη ως την απόπειρα επίλυσης προβλημάτων με τη βοήθεια υπολογιστικών
συστημάτων. Η υπολογιστική σκέψη είναι λοιπόν πολύ κοντά με τη λεγόμενη αλγοριθμική σκέψη.
Στη Wikipedia, υπάρχει ένας ορισμός ανάλογος με τον προηγούμενο: η υπολογιστική σκέψη είναι ένα
σύνολο από μεθόδους (θα λέγαμε γενικότερα: προσεγγίσεις) για την έκφραση προβλημάτων και των
λύσεων τους με τρόπο τέτοιο, ώστε ένας Η.Υ., ένα ψηφιακό σύστημα γενικότερα, θα μπορούσε να τις
εκτελέσει. Αυτός ο ορισμός δεν είναι ίσως αρκετά αναλυτικός, ώστε να είναι άμεσα χρηστικός. Υπάρχουν
αναλυτικότεροι ορισμοί.
Η ακόλουθη απεικόνιση δίνει ακριβώς μια γραφιστική περιγραφή μιας ευρείας ερμηνείας του όρου:


Εικόνα 1
Σύμφωνα με το άρθρο της wikipedia, η υπολογιστική σκέψη είναι (συνήθως) μια επαναλαμβανόμενη
διαδικασία βασισμένη σε τρείς πυλώνες:
Την αφαίρεση (κατάλληλη διατύπωση ή μοντελοποίηση του προβλήματος)
Τον αυτοματισμό (έκφραση της λύσης)
Την ανάλυση (εκτέλεση της λύσης και αξιολόγησή της).
Στο Διαδίκτυο μπορεί κανείς να εντοπίσει πολλούς αναλυτικότερους ορισμούς της Υπολογιστικής σκέψης,
όπως ο ακόλουθος (ο οποίος περιγράφει λεκτικά την παραπάνω εικόνα 1). Στον ορισμό αυτό η Υπολογιστική
σκέψη περιγράφεται ως μια σύνθεση από 6 έννοιες και 5 προσεγγίσεις. Για μια αναλυτικότερη μελέτη των
εννοιών αυτών, με μια αφθονία παραδειγμάτων κυρίως για την πρωτοβάθμια εκπαίδευση, μπορεί κανείς
να κατευθυνθεί στο:
https://barefootcas.org.uk/barefoot-primary-computingresources/concepts/computational-thinking/
Εύκολα μπορούν στο Διαδίκτυο να εντοπιστούν και αντίστοιχες πηγές για τη Δευτεροβάθμια εκπαίδευση:
για παράδειγμα, το άρθρο
Computational Thinking in Secondary Education: Where Does It Fit? A Systematic
Literary Review
(υπάρχει αντίγραφό του στο πρόσθετο ψηφιακό υλικό) περιλαμβάνει πολλά σχετικά
στοιχεία.
Οι βασικές έννοιες είναι:
1. Η Λογική (
https://www.barefootcomputing.org/concepts-and-approaches/logic, τελευταία
επίσκεψη Δεκέμβριος 2018)
2. Οι αλγόριθμοι
https://www.barefootcomputing.org/concepts-and-approaches/algorithms,
τελευταία επίσκεψη Δεκέμβριος 2018)


3. Η ανάλυση (στα επιμέρους,
https://www.barefootcomputing.org/concepts-andapproaches/decomposition, τελευταία επίσκεψη Δεκέμβριος 2018)
4. Αναγνώριση προτύπων (μοτίβων,
https://www.barefootcomputing.org/concepts-andapproaches/patterns, τελευταία επίσκεψη Δεκέμβριος 2018)
5. Η αφαίρεση (η αφαιρετική ικανότητα,
https://www.barefootcomputing.org/concepts-andapproaches/abstraction, τελευταία επίσκεψη Δεκέμβριος 2018)
6. Η αξιολόγηση (η εκτίμηση,
https://www.barefootcomputing.org/concepts-andapproaches/evaluation, τελευταία επίσκεψη Δεκέμβριος 2018).
Αντίστοιχα, οι προσεγγίσεις (δηλαδή ακριβέστερα: καλές πρακτικές και στάσεις) είναι οι εξής:
1. Το «σκάλισμα» (πρόχειρη αναζήτηση, tinkering,
https://www.barefootcomputing.org/conceptsand-approaches/tinkering, τελευταία επίσκεψη Δεκέμβριος 2018)
2. H δημιουργικότητα (
https://www.barefootcomputing.org/concepts-and-approaches/creating,
τελευταία επίσκεψη Δεκέμβριος 2018)
3. Η διόρθωση (debugging,
https://www.barefootcomputing.org/concepts-andapproaches/debugging, τελευταία επίσκεψη Δεκέμβριος 2018)
4. H επιμονή (
https://www.barefootcomputing.org/concepts-and-approaches/persevering, τελευταία
επίσκεψη Δεκέμβριος 2018)
5. (
https://www.barefootcomputing.org/concepts-and-approaches/collaborating, τελευταία
επίσκεψη Δεκέμβριος 2019).
Επίσης, η Διεθνής Εταιρεία για την τεχνολογία στην Εκπαίδευση (ISTE), σε συνεργασία με την Ένωση των
εκπαιδευτικών της Επιστήμης των Υπολογιστών επεξεργάστηκαν (με τη βοήθεια και άλλων
εμπειρογνωμόνων) έναν λειτουργικό ορισμό, ο οποίος υπέστη και την κρίση περίπου 700 ειδικών. Σύμφωνα
με τον ορισμό αυτό, η υπολογιστική σκέψη είναι μια διαδικασία επίλυσης προβλημάτων, που έχει τα εξής
χαρακτηριστικά, τουλάχιστον:
Η διατύπωση των προβλημάτων είναι τέτοια, ώσε να επιτρέπει τη χρήση Η.Υ. και άλλων
εργαλείων, για την επίλυση τους.
Τα δεδομένα είναι λογικά οργανωμένα και αναλυμένα.
Τα δεδομένα αναπαριστώνται μέσω αφαιρέσεων (γενικεύσεων), όπως τα μοντέλα και οι
προσομοιώσεις.
Οι λύσεις είναι αυτοματοποιημένες μέσω αλγοριθμικής σκέψης (δηλαδή εκφρασμένες ως
πεπερασμένες σειρές ταξινομημένων βημάτων)
Οι ενδεχόμενες λύσεις που προτείνονται ταυτοποιούνται, αναλύονται και εφαρμόζονται με στόχο
την επίτευξη του πιο αποτελεσματικού συνδυασμού βημάτων και πόρων.
Η διαδικασία επίλυσης τους συγκεκριμένου προλήματος μπορεί να γενικευτεί και να εφαρμοστεί
και σε άλλα προβλήματα, ενός ευρέος φάσματος.
Αυτές οι δεξιότητες υποστηρίζονται και επαυξάνονται από μια σειρά βασικών ικανοτήτων και στάσεων,
όπως:
αυτοπεποίθηση στην αντιμετώπιση της πολυπλοκότητας
επιμονή στην επεξεργασία δύσκολων προβλημάτων
ανοχή στην αμφισημία
ικανότητα στην αντιμετώπιση ανοιχτών προβλημάτων
ικανότητα επικοινωνίας και συνεργασίας με άλλους για ένα κοινό στόχο ή κοινή λύση σε ένα
πρόβλημα.
Τόσο απευθείας με αναζήτηση μέσω του Διαδικτύου, όσο και από την παρατιθέμενη βιβλιογραφία είναι
εύκολο να εντοπιστούν πολλές βιβλιογραφικές αναφορές σχετικές με την υπολογιστική σκέψη και να
χρησιμοποιηθούν στην δημιουργία σχετικών σεναρίων, όπως οι παρακάτω:
https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-thinking/
(τελευταία επίσκεψη Δεκέμβριος 2019)
https://edu.google.com/resources/programs/exploring-computational-thinking/
3 Συνήθεις δυσκολίες και λάθη αρχαρίων
Οι δυσκολίες που συναντούν οι μαθητές και σπουδαστές κατά την εκμάθηση του προγραμματισμού,
σχετίζονται, επίσης, με την παρανόηση των βασικών δομών, των κανόνων της γλώσσας προγραμματισμού,
των ιδιοτήτων της «μηχανής» που ελέγχει ο μαθητής και την ικανότητα καθορισμού, ανάπτυξης, ελέγχου
και αποσφαλμάτωσης ενός προγράμματος με τα διαθέσιμα εργαλεία (Ξυνόγαλος & Σατρατζέμη 2001,
Ξυνόγαλος 2002).
Πιο συγκεκριμένα, όσον αφορά τις ιδιότητες της «μηχανής», ο αρχάριος προγραμματιστής (Ξυνόγαλος
2002, Δαγδιλέλης 1996):
δε μπορεί να εντοπίσει εύκολα τη σχέση που υπάρχει ανάμεσα στο πρόγραμμα (γραμμένο σε μια
γλώσσα προγραμματισμού) και τον μηχανισμό εκτέλεσής του,
κάνει, κατά κανόνα, δικές του υποθέσεις για τον τρόπο με τον οποίο λειτουργεί εσωτερικά το
υπολογιστικό σύστημα. Αλλά, ακόμη και αν ο σπουδαστής διαθέτει μια επαρκή περιγραφή της
εσωτερικής λειτουργίας του συστήματος, δεν είναι βέβαιο ότι την κατανοεί και θα τη
χρησιμοποιήσει με ορθό τρόπο.
δε μπορεί να αντιληφθεί το βαθμό λεπτομέρειας που απαιτεί ο προγραμματισμός και την
αυστηρότητα, με την οποία πρέπει να τηρούνται οι κανόνες του προγραμματιστικού συστήματος.
Για παράδειγμα, η σειριακή εκτέλεση των εντολών, πολλές φορές, δε γίνεται κατανοητή από τους
αρχάριους προγραμματιστές. Έτσι, σε ορισμένες περιπτώσεις, οι αρχάριοι προγραμματιστές
μεταφέρουν στο προγραμματιστικό περιβάλλον στρατηγικές επίλυσης προβλημάτων από άλλα
περιβάλλοντα – χωρίς να κάνουν τις απαραίτητες τροποποιήσεις και προσαρμογές.
Όσον αφορά στη γλώσσα προγραμματισμού, ο αρχάριος προγραμματιστής (Ξυνόγαλος 2000 και 2002,
Ξυνόγαλος & Σατρατζέμη 2004, Ξυνόγαλος et als 2005, Σατρατζέμη et als 2006) δυσκολεύεται μερικές φορές
από τις αγγλικές λέξεις που περιλαμβάνουν οι γλώσσες προγραμματισμού, είτε γιατί τις ερμηνεύει με
λανθασμένο τρόπο, είτε γιατί έχουν διαφορετική σημασία στη γλώσσα προγραμματισμού από ό,τι στην

τρέχουσα Αγγλική γλώσσα.
Εξάλλου, η τυπική γλώσσα που χρησιμοποιείται είναι δύσκολα ερμηνεύσιμη από τους μαθητές και τους
σπουδαστές, οι οποίοι αγνοούν τους μηχανισμούς με τους οποίους λειτουργεί το Πληροφορικό σύστημα
(όπως για παράδειγμα τους μηχανισμούς μεταγλώττισης ή διερμηνείας, compilation – interpretation). Σε
πολλές περιπτώσεις λοιπόν, οι αρχάριοι προγραμματιστές δε μπορούν να ερμηνεύσουν τα μηνύματα
λάθους του συστήματος. Έτσι, όταν o μεταγλωττιστής επισημαίνει λανθασμένη σύνταξη εξ αιτίας της
παράλειψης ενός σημείου στίξεως («;») ή στη Logo, to σύστημα ανιχνεύει ένα λάθος σε μια διαδικασία
(procedure), κατά κανόνα, το πρόβλημα βρίσκεται στο σημείο όπου λογικά εντοπίστηκε και όχι εκεί όπου
εμφανίζεται το μήνυμα. Αυτό όμως το αγνοούν οι αρχάριοι προγραμματιστές, οι οποίοι αναζητούν το
πρόβλημα στο σημείο όπου εμφανίζεται το μήνυμα, με αποτέλεσμα να μη μπορούν να προσδιορίσουν το
αναφερόμενο λάθος. Ο αρχάριος, επίσης, συναντά περισσότερες δυσκολίες, όταν η γλώσσα
προγραμματισμού βασίζεται σε μεταγλωττιστή, γιατί:
μόνο ολοκληρωμένα προγράμματα μπορούν να εκτελεστούν, με αποτέλεσμα να μην είναι δυνατόν
να πειραματιστεί με μεμονωμένες εντολές,
η χρήση του συντάκτη (editor) είναι δυσκολότερη,
στο στάδιο της αποσφαλμάτωσης, η αναφορά φιλικών προς το χρήστη μηνυμάτων λάθους, είναι
δύσκολη.
Όσον αφορά στο χειρισμό των δομών της γλώσσας προγραμματισμού, ο αρχάριος προγραμματιστής
συναντά μεγάλες δυσκολίες, κάποιες από τις οποίες οφείλονται στις λανθασμένες αντιλήψεις του. Οι
αντιλήψεις αυτές, με τη σειρά τους, οφείλονται, συχνά, στο γεγονός ότι οι αρχάριοι εκφράζουν τη λύση ενός
προβλήματος σε κάποια γλώσσα προγραμματισμού, βασιζόμενοι στη φυσική γλώσσα που χρησιμοποιούν
στις καθημερινές συνομιλίες τους.
3.1.1 Δομές Επιλογής
Οι συνηθέστερες δυσκολίες ενός αρχάριου προγραμματιστή σε σχέση με τις δομές επιλογής εντοπίζονται
στα εξής: ο αρχάριος
δυσκολεύεται να κατανοήσει τη δομή επιλογής, όταν αυτή περιλαμβάνει στη συνθήκη σύνθετες
λογικές εκφράσεις (AND, NOT, OR).
δυσκολεύεται να παρακολουθήσει τη λειτουργία των εμφωλευμένων εντολών.
αντιμετωπίζει και μαθαίνει ευκολότερα νέες δομές, όταν διαθέτει καλύτερο μαθηματικό υπόβαθρο.
Οι συνηθέστερες εντολές επιλογών είναι της μορφής
if..then..else ή case of και αποτελέσαν, με τη σειρά
τους, αντικείμενα ερευνών.
H συνηθέστερη κατηγορία λανθασμένων αντιλήψεων στους αρχάριους προγραμματιστές, έχει την πηγή της
στην καθημερινή ζωή. Oι προγραμματιστές ερμηνεύουν τις εντολές σε μια γλώσσα προγραμματισμού, με
σημείο αναφοράς τις καθημερινές συνομιλίες μεταξύ ανθρώπων – οι οποίες βέβαια είναι συχνά ελλειπτικές,
μεταφορικές κλπ.
Έτσι, για παράδειγμα, για ένα πρόγραμμα στο οποίο ο χρήστης εισάγει την ηλικία του και ο H.Y. αποφαίνεται
αν ο χρήστης είναι NEOΣ, MEΣOKOΠOΣ ή ΓEPOΣ, πολλές φορές ο κώδικας των αρχαρίων προγραμματιστών
έχει την εξής μορφή:


10 INPUT X
20 IF X<30 THEN PRINT “NEOΣ”
30 IF X<50 THEN PRINT “MEΣOKOΠOΣ ”
40 PRINT “ΓEPOΣ”
Tα λάθη τόσο στη γραμμή 30 όσο και στην 40 έχουν, κατά πάσα πιθανότητα, την πηγή τους στον τρόπο, με
τον οποίο οι άνθρωποι συνομιλούν μεταξύ τους. Για παράδειγμα, μια αποδεκτή διατύπωση για το
παραπάνω πρόβλημα θα μπορούσε να είναι η εξής:
Kάτω από 30 είναι NEOΣ, μέχρι τα 50 είναι MEΣOKOΠOΣ αλλιώς είναι ΓEPOΣ.
H διατύπωση αυτή είναι ορθή και εκφράζει τις απαιτήσεις του προβλήματος – είναι όμως ακατάλληλη για
να “μεταφερθεί” αυτούσια σ’ ένα προγραμματιστικό περιβάλλον και έτσι το πρόγραμμα που προκύπτει από
μια τέτοια «μεταφορά», είναι λανθασμένο.
O δομημένος προγραμματισμός, βασίζεται κατά ένα μέρος, σε εμφωλευμένες εντολές.
Kλασσική περίπτωση αποτελούν τα εμφωλευμένα:
if..then
if …. then…
else…
else
if …. then…
κλπ.
Για πολλούς ερευνητές, οι εμφωλευμένες εντολές ελέγχου προκαλούν σύγχυση και συνιστούν την
κατάργηση τους (για παράδειγμα Green 1980, 1989 και 1990). Άλλοι ερευνητές, θεωρούν ότι, αντίθετα με
την διαδεδομένη αντίληψη, η
παράθεση ελέγχων, είναι σε ελάχιστο βαθμό και σε ορισμένες μόνο
περιπτώσεις, πιο κατανοητή από τους εμφωλευμένους ελέγχους. Έτσι, οι εμφωλευμένες εντολές ελέγχου,
δεν πρέπει να καταργηθούν. Aυτό όμως που φαίνεται που μπορεί να βελτιώσει ουιαστικά την κατανόηση
των εμφωλευμένων δομών επιλογής, είναι να υπάρχει μια ορατή αντιστοιχία ανάμεσα στη δομή του κώδικα
και τη “φυσική” θέση των εντολών μέσα στο πρόγραμμα – όπως στο παράδειγμα που παραθέτουμε
παραπάνω. Έχει προταθεί ακόμη και η χρήση ειδικών συμβόλων:

if..then
if …. then…
else…
else
if …. then…

η οποία χρησιμοποιείται από πολλούς συγγραφείς – προκειμένου περί αλγοριθμικών γλωσσών, όμως και
όχι για προγράμματα εκτελέσιμα από H.Y. (δες για παράδειγμα Beaudoin 1981).


Tέλος, η ύπαρξη σύνθετων εκφράσεων (π.χ. Boolean συναρτήσεων ή συνδυασμού προτάσεων με λογικά
AND, NOT, OR) δυσχεραίνει σαφώς την κατανόηση της λειτουργίας μιας εντολής ελέγχου.
Επίσης οι (Αθ. Τζιμογιάννης et als 2019-α, -β, -γ, -δ, -δ, στ) επισημαίνουν τα παρακάτω προβλήματα στη
χρήση της δομής επιλογής από τους μαθητές:
Οι μαθητές μερικές φορές δυσκολεύονται να κατανοήσουν ότι οι εντολές που βρίσκονται αμέσως
μετά τη δομή επιλογής εκτελούνται πάντα, ανεξάρτητα από την αποτίμηση της συνθήκης.
Οι μαθητές θεωρούν κάποιες φορές ότι εκτελούνται τόσο το μπλοκ εντολών Αν…τότε όσο και
εκείνο του Αλλιώς ή άλλες φορές εκτελούν το μπλοκ εντολών του Αν…τότε είτε η συνθήκη που
περιλαμβάνει είναι αληθής, είτε είναι ψευδής.
Οι μαθητές θεωρούν κάποιες φορές ότι αν μια συνθήκη σε μια δομή επιλογής είναι ψευδής, τότε
σταματά η ροή του προγράμματος
Κάποιοι μαθητές πιστεύουν ότι για να λειτουργήσει σωστά η δομή επιλογής απαιτείται πάντοτε η
λογική έκφραση να είναι αληθής, όπως χρησιμοποιείται στην φυσική γλώσσα, ενώ αντίθετα αν μια
λογική έκφραση αποτιμηθεί ως ψευδής, τότε η συνθήκη είναι λανθασμένη
Η απαρίθμηση των περιπτώσεων για να εξεταστεί εξαντλητικά ένα σύνολο περιπτώσεων είναι
θεμελιώδης διαδικασία στις τεχνικές για επίλυση προβλημάτων, αλλά οι μαθητές συχνά αρκούνται
να δοκιμάσουν μόνο μία ή δύο περιπτώσεις. Η έρευνα δείχνει ότι κάποιες φορές κατά τη χρήση της
δομής επιλογής οι μαθητές δεν εξετάζουν όλες τις πιθανές περιπτώσεις στα σχέδια λύσης τους.
Πολλοί μαθητές αντιμετωπίζουν δυσκολίες στην ροή εκτέλεσης των εντολών του προγράμματος
όταν εμπλέκονται εμφωλευμένες (nested) δομές επιλογής, όπως και στην σύνταξη της σωστής
συνθήκης
3.1.2 H διαχείριση των συμβολοσειρών (strings)
Oι συμβολοσειρές, βέβαια, εκχωρούνται συνήθως σε κατάλληλα προσδιορισμένες μεταβλητές ή είναι
άμεσα διαχειρίσιμες (ανάλογα με τη γλώσσα προγραμματισμού), μπορούν να συγκριθούν μεταξύ τους και
γενικά, ακολουθούν τη λογική επεξεργασίας όλων των μεταβλητών. Παρά ταύτα, μια ιδιαίτερη μελέτη τους
είναι επιβεβλημένη, γιατί αποτελούν ταυτόχρονα τιμές που μπορούν να εκχωρηθούν σε μεταβλητές αλλά
και ιδιαίτερες δομές (Lagrange 1990).
Ως τιμές έχουν ιδιαίτερους κανόνες διάταξης, οι οποίοι χρησιμοποιούνται βέβαια στην καθημερινή ζωή (π.χ.
αναζήτηση σε τηλεφωνικό κατάλογο), αλλά τούτο δε σημαίνει ότι μπορούν να εκφραστούν αναλυτικά σ’
ένα προγραμματιστικό περιβάλλον. Eξ άλλου, μερικοί από τους κανόνες παραμένουν έμμεσοι και η
έκφραση τους μπορεί ν’ αποβεί δυσχερής (για παράδειγμα, ποιος είναι ο ρόλος του κενού διαστήματος;
Πως ταξινομούνται μεικτές ελληνικές και λατινικές λέξεις;).
Ως δομές, οι συμβολοσειρές δίνουν τη δυνατότητα προσπέλασης των στοιχείων τους (δηλαδή των
μεμονωμένων χαρακτήρων) και είναι γενικά διαχειρίσιμες κυρίως μέσω συναρτήσεων (π.χ. LEFT$ στη
BASIC, COPY στην PASCAL κ.λπ.), των οποίων η χρήση, επίσης, μπορεί να μην είναι προφανής στους
αρχαρίους. Iδιαίτερο ρόλο παίζει βέβαια η ασυνήθης χρήση ορισμένων μεγεθών: για παράδειγμα οι
αλφαριθμητικές σταθερές και το διπλό status των αριθμών (οι οποίοι ανάλογα με την περίπτωση, πρέπει
να θεωρούνται ως αριθμοί ή συμβολοσειρές), μπορούν να αποτελέσουν σημεία δυσχερειών για τους νέους
προγραμματιστές.


Oι κυριότερες αντιλήψεις και δυσκολίες των νέων προγραμματιστών, που είναι σχετικές με τις
συμβολοσειρές, μπορούν να συνοψιστούν ως εξής:
οι νέοι προγραμματιστές διαχειρίζονται ανορθόδοξα και «αντιοικονομικά» τις δυνατότητες που
τους παρέχει η γλώσσα προγραμματισμού. Για παράδειγμα, μια μαθήτρια για να υπολογίσει το
μήκος μιας συμβολοσειράς γράφει:
10 LET A$= MID$(X$, 2, LEN+MID$(1,1))
20 LET A = LEN(A$)
αντί για το απλούστερο:
10 LET A=LEN(X$)
Yπάρχει, γενικότερα, μια μεγάλη ομάδα ατόμων, που έχουν την τάση να μη χρησιμοποιούν
ενδιάμεσες μεταβλητές, προκειμένου να πραγματοποιήσουν ένα μακροσκελή και πολύπλοκο
υπολογισμό (παρόλο που η χρήση ενδιάμεσων μεταβλητών αποτελεί μια συνηθισμένη τεχνική π.χ.
στα Mαθηματικά). H ύπαρξη πολύπλοκων παραστάσεων (ουσιαστικά με σύνθεση συναρτήσεων),
στο μεγαλύτερο ποσοστό της, αποτελεί ένα σχεδόν βέβαιο δείκτη λάθους.
οι αρχάριοι προγραμματιστές – κυρίως μαθητές – συγχέουν πολλές φορές τους απόλυτους και
τακτικούς αριθμούς, οι οποίοι είναι σχετικοί με τις συμβολοσειρές. Για παράδειγμα, όταν θέλουν
να αφαιρέσουν τον τελευταίο χαρακτήρα μιας λέξης μήκους N, κάνουν αναφορά στον χαρακτήρα
N-1. Tούτο, οφείλεται, πιθανότατα, στο γεγονός ότι N είναι “ολόκληρη η λέξη” (δηλαδή ο απόλυτος
αριθμός που δίνει το πλήθος των συμβόλων) και άρα ο τελευταίος χαρακτήρας έπεται του N-1, από
όπου και το λάθος.
ένα πολύ συχνό λάθος των αρχαρίων προγραμματιστών (το οποίο συνδέεται άμεσα και μ’ αυτό που
ονομάσαμε σε προηγούμενη παράγραφο
αλλαγή του διδακτικού συμβολαίου), έγκειται στη
σύγχυση ανάμεσα στον υπολογισμό μιας συμβολοσειράς και στην εμφάνιση χαρακτήρων στην
οθόνη του H.Y. Για παράδειγμα, αν δοθεί μια συμβολοσειρά και ζητηθεί να υπολογιστεί η
συμβολοσειρά που προκύπτει αν αφαιρεθεί από τη δοσμένη ο προτελευταίος χαρακτήρας (αν
υποτεθεί ότι υπάρχει), μια συνήθης λύση είναι η εξής:
10 PRINT LEFT$(X$, L-2);
20 PRINT RIGHT$(X$ 1)
Oι προγραμματιστές δηλαδή, εκμεταλλεύονται το γεγονός ότι οι εκτυπώσεις των δυο τμημάτων θα γίνουν
χωρίς κενά διαστήματα, και έτσι η εκτύπωση θα είναι ίδια με εκείνη της κανονικής λύσης του προβλήματος,
χωρίς ωστόσο το επιθυμητό αποτέλεσμα να έχει «υπολογιστεί» (με την έννοια της εκχώρησης του σε μια
μεταβλητή).
οι μη-πεπειραμένοι προγραμματιστές, δυσκολεύονται να θεωρήσουν αριθμούς ως συμβολοσειρές
και να τους επεξεργαστούν με συναρτήσεις συμβολοσειρών. Eίναι γνωστό, πως η θεώρηση ενός
αριθμού, όπως ο 1254 ως απόλυτου αριθμού και ταυτόχρονα ως αθροίσματος 1000+200+50+4 ή
ως αθροίσματος μιας χιλιάδας κλπ δεν είναι πάντα προφανής. H διαχείριση λοιπόν συμβολοσειρών,
σημαίνει ένα είδος «αλλαγής οπτικής γωνίας», γιατί ο αριθμός δεν είναι πια αριθμός, αλλά μια
διαδοχή συμβόλων:
αν A=1 και B=2 A+B=3


ενώ αν A=”1″ και B=”2″ τότε A+B=”12″
Oι αντίστοιχες δυσκολίες εμφανίζονται, βέβαια, σε προβλήματα, στα οποία η διαχείριση αυτή είναι
επιβεβλημένη. Aν, για παράδειγμα, προταθεί στους μαθητές να εμφανίζουν όλα τα ψηφία ενός ακεραίου
που εισάγεται από το πληκτρολόγιο – και δεν έχουν στη διάθεση τους μαθηματικές συναρτήσεις DIV, MOD,
INT κλπ – τότε, πολλοί μαθητές συναντούν δυσκολίες στη μετατροπή αριθμών σε συμβολοσειρές και στην
εφαρμογή των συναρτήσεων συμβολοσειρών (όπως LEFT$, MID$, για παράδειγμα στο Lagrange 1991).
3.1.3 Δομές Επανάληψης ή βρόχοι (Loops)
Οι συνηθέστερες δυσκολίες ενός αρχάριου προγραμματιστή εντοπίζονται στα εξής:
Προτιμά να χρησιμοποιεί ακολουθίες επαναλαμβανόμενων εντολών στα προγράμματά του, αντί για
βρόχους.
Διαθέτει ανεπαρκή νοητά μοντέλα για τις επαναληπτικές δομές.
Δυσκολεύεται να επιλέξει την κατάλληλη, για κάθε πρόβλημα, επαναληπτική δομή.
Αδυνατεί να ορίσει με επιτυχία τη συνθήκη εξόδου από ένα βρόχο.
Δε μπορεί να καθορίσει την εμβέλεια του βρόχου και να προσδιορίσει την αρχή και το τέλος τους,
καθώς και τις εντολές που επαναλαμβάνονται.
Η χρήση των βρόχων, και γενικότερα των επαναληπτικών διαδικασιών, παραμένει, πολύ συχνά, ένα θέμα
το οποίο οι σπουδαστές δεν κατανοούν απόλυτα. Οι σχετικές πολυάριθμες αναφορές (Soloway et als 1982,
Soloway et als 1983, Bonar & Soloway 1985, Soloway 1986, Rogalski 1985, Dagdilelis 1986, Mejias 1986, Linn
& Dalbey 1989, Bonar & Soloway 1989, Soloway et als 1989) είναι ενδεικτικές της σπουδαιότητας του
θέματος.
Ορισμένες αντιλήψεις των μαθητών, συνδεόμενες με τη λειτουργία και τη χρήση των βρόχων, αποτελούν
ουσιαστικό ανασταλτικό παράγοντα στην πορεία τους (Dagdilelis 1989) και η υπέρβαση ων αντιλήψεων
αυτών, είναι απαραίτητη για την πρόοδο του μαθητή. Πιο συγκεκριμένα, οι επαναληπτικές δομές υπήρξαν
από τα πλέον διερευνημένα θέματα από πολλούς ερευνητές και ερευνητικές ομάδες (όπως: Soloway et als
1983, Rouchier et als 1984, Soloway & Ehrlich 1984, Soloway 1986, Mejias 1985, Laborde et als 1985, Rogalski
1986, Dagdilelis 1986b, Capponi & Dagdilelis 1989, Dagdilelis et als 1990, Soloway 1983) έχουν διερευνήσει
το σχετικό θέμα.
Oι επαναληπτικές δομές είναι πολλών τύπων (για παράδειγμα Ledgard 1975). Θεωρητικά είναι γνωστό από
το 1966 (Boehm 1966) ότι η δομή
while συνθήκη do είναι αρκετή από μόνη της για να καλύψει όλες τις
περιπτώσεις που μπορούν να παρουσιαστούν.
Aνεξάρτητα όμως από το θεωρητικό αυτό συμπέρασμα, διακρίνονται αρκετές κατηγορίες επαναληπτικών
δομών, οι οποίες: α) παρουσιάζουν σε ορισμένες περιπτώσεις διαφορετικές δυνατότητες – από καθαρά
θεωρητική άποψη, β) παρουσιάζουν διαφορές ως προς την καταλληλότητά τους για ορισμένο τύπο
προβλημάτων και γ) ακόμη και όταν είναι ισοδύναμες, θεωρητικά, μπορούν να είναι λιγότερο ή
περισσότερο περίπλοκες για το χρήστη.

Σε γενικές γραμμές οι επαναληπτικές δομές ανήκουν στους εξής τύπους:
α)
repeat N times action
H διαδικασία ή το σύνολο εντολών action επαναλαμβάνεται N φορές – το N πρέπει βέβαια να είναι γνωστό
εκ των προτέρων. Πρόκειται για τη συνήθη επαναληπτική δομή της LOGO.
β)
for I:=N1 to N2 do action
H διαδικασία ή το σύνολο εντολών action επαναλαμβάνεται N2-N1+1 φορές
γ)
while συνθήκη do action
H διαδικασία ή το σύνολο εντολών action επαναλαμβάνεται όσο η συνθήκη είναι αληθής. Tο αντίστοιχο
τεστ πραγματοποιείται πριν από το σώμα της επαναληπτικής διαδικασίας.
δ)
repeat action until συνθήκη
H διαδικασία ή το σύνολο εντολών action επαναλαμβάνεται όσο η συνθήκη είναι ψευδής. Tο αντίστοιχο
τεστ πραγματοποιείται μετά από το σώμα της επαναληπτικής διαδικασίας
Oι παραπάνω δομές, μπορεί να θεωρηθούν σε δυο εναλλακτικούς τύπους, ανάλογα με το αν προσφέρουν
ή όχι τη δυνατότητα εξόδου από ένα ενδιάμεσο σημείο και όχι μόνο από το σημείο του τεστ. Mε την έννοια
αυτή, η πιο γενική μορφή επαναληπτικής διαδικασίας είναι η εξής:
ε)
do
action1
if
συνθήκη1 then exit
action2
if
συνθήκη2 then exit
……
action N
if
συνθήκη N then exit
loop
H επαναληπτική αυτή διαδικασία μπορεί βέβαια να προσομοιώσει, κατά προφανή τρόπο, τη λειτουργία
όλων των προηγουμένων. Aν για παράδειγμα παραληφθούν οι εντολές:
action2
if
συνθήκη2 then exit
……
action N
if
συνθήκηN then exit
τότε η δομή αυτή γίνεται ισοδύναμη με μια while συνθήκη do action.
Eκτός απο τη σημασία (semantics) κάθε τύπου επαναληπτικής δομής, σημαντικό ρόλο παίζουν και τα
συστατικά στοιχεία των δομών αυτών. Έτσι, σε κάθε επαναληπτική δομή διακρίνονται:
ένα σώμα της επαναληπτικής δομής: το σύνολο των εντολών οι οποίες υφίστανται επεξεργασία σε κάθε
επανάληψη,
ένας δείκτης της επαναληπτικής δομής: πρόκειται για το ιδιαίτερο εκείνο σύμβολο το οποίο επισημαίνει την
απαρχή μιας επαναληπτικής δομής, όπως η λέξη while ή το repeat,
τα σύμβολα ορίων της επαναληπτικής δομής: πρόκειται για τα ιδιαίτερα εκείνα σύμβολα τα οποία
επισημαίνουν την αρχή και το τέλος του σώματος της επαναληπτικής δομής, όπως το ζεύγος do begin….end,
η συνθήκη συνέχειας – ή τερματισμού – της επαναληπτικής δομής


τέλος οι αποδόσεις αρχικών τιμών – όχι μόνο στη μεταβλητή που ελέγχει τη συνθήκη
συνέχειας/τερματισμού, αλλά πιθανότατα και άλλων μεταβλητών στο σώμα της επαναληπτικής δομής.
Σε ένα πιο επίπεδο ανάλυσης πιο προηγμένο, θα μπορούσαμε, ίσως, να διακρίνουμε και τις αναλλοίωτες
σχέσεις που διέπουν την επαναληπτική δομή.
Αν, για ένα πεπειραμένο προγραμματιστή, τα δομικά στοιχεία μιας επαναληπτικής δομής περνούν σχεδόν
απαρατήρητα, ωστόσο, για τους αρχάριους, η διαχείριση τους μπορεί να αποβεί περίπλοκη. Θεωρώντας και
μόνον το παράδειγμα της επαναληπτικής δομής
for I:=N1 to N2 do action, θα λέγαμε ότι τα στοιχεία τα
οποία θα πρέπει να ληφθούν υπ’ όψη είναι αρκετά (μερικά από τα οποία είναι εγγενή στην επαναληπτική
δομή, ενώ άλλα αποτελούν ιδιαιτερότητες του εκάστοτε μεταφραστή – compiler ή διερμηνευτή –
interpreter):
Tο N2>N1 γενικώς, αλλά είναι δυνατόν να ισχύει και το αντίστροφο: N2<N1; Σε κάθε περίπτωση ποιο είναι
το by default βήμα μεταβολής;
Tι συμβαίνει αν N1=N2; Tι συμβαίνει αν ακολουθηθεί η σύνταξη θετικού βήματος αλλά ισχύει N2<N1;
Tα N1, N2 και το βήμα μπορούν να είναι δεκαδικοί αριθμοί; Στην περίπτωση αυτή ο υπολογισμός του
ακριβούς αριθμού των επαναλήψεων μπορεί να είναι δυσχερής για ένα αρχάριο προγραμματιστή.
Σε κάθε περίπτωση (βήμα θετικό ή αρνητικό) ποια είναι η τιμή του I μετά την έξοδο από το σώμα της
μεταβλητής;
Ο έλεγχος για τη συνέχιση ή τον τερματισμό της επαναληπτικής δομής πραγματοποιείται πριν ή μετά το
σώμα;
Eίναι δυνατόν τα N1, N2 να μην αποτελούν αριθμητικές σταθερές εκφρασμένες με ψηφία αλλά σταθερές
γενικώς ή πολύπλοκες αριθμητικές εκφράσεις ή ακόμη και μεταβλητές ή συναρτήσεις, των οποίων οι τιμές
επαναπροσδιορίζονται σε κάθε κλήση της επαναληπτικής διαδικασίας.
H χρήση λοιπόν ακόμη και μιας “τετριμμένης” δομής μπορεί να αποδειχθεί περίπλοκη.
Oι (Samurçay 1985 και Mejias B. 1985) έδειξαν, για παράδειγμα, ότι η έκφραση της συνθήκης τερματισμού,
μπορεί να είναι πολύ δυσχερέστερη σε ορισμένες περιπτώσεις, ανάλογα με το είδος της επαναληπτικής
δομής που χρησιμοποιείται από τον προγραμματιστή.
M’ ένα γενικότερο τρόπο τα βασικά συμπεράσματα από τις επαναληπτικές δομές θα μπορούσαν να
συνοψιστούν ως εξής:
H χρήση των επαναληπτικών δομών δεν είναι τετριμμένη για τους αρχάριους προγραμματιστές. Kατά
κανόνα, η χρήση των επαναληπτικών δομών στηρίζεται στη “μεταφορά” μιας στρατηγικής επίλυσης από
ένα άλλο, πιο οικείο περιβάλλον, στο προγραμματιστικό. Για να χρησιμοποιήσουμε ένα κλασσικό
παράδειγμα, για τον υπολογισμό του αθροίσματος 1+2+…+300, οι αρχάριοι προγραμματιστές προσπαθούν
να μιμηθούν τη διαδικασία επίλυσης με χαρτί-μολύβι. H τεχνική αυτή είναι παραγωγική, αφού δίνει μια
βασική στρατηγική για την επίλυση του προβλήματος, είναι όμως ταυτόχρονα και περιοριστική, γιατί η
προγραμματιστική λύση δεν είναι συμβατή με τη λύση με χαρτί-μολύβι. Συγκεκριμένα, ο αθροιστής
παραμένει μια μεταβλητή η οποία είναι αναγκαία για την επίλυση, η οποία όμως δεν αντιστοιχεί σε κανένα
από τα δεδομένα ή τα ζητούμενα της εκφώνησης. H λύση με χαρτί-μολύβι δεν έχει ανάγκη αποθήκευσης
ενδιάμεσων αποτελεσμάτων, αφού, κατά κάποιο τρόπο, η αναγραφή των αποτελεσμάτων αυτών στο χαρτί
συνιστά ένα είδος αποθήκευσης. Όπως είπε και ένας μαθητής
μπορούμε να το πούμε αλλά όχι να το
φτιάξουμε…
(Dagdilelis 1987b).

H επίλυση τέτοιου είδους προβλημάτων – στα οποία η προγραμματιστική λύση φαίνεται “απομακρυσμένη”
από μια “φυσική” λύση με χαρτί-μολύβι – είναι μάλλον δυσχερής για αρχάριους προγραμματιστές. Aκόμη
και η επίλυση ενός προβλήματος σ’ ένα προγραμματιστικό περιβάλλον δεν επαρκεί πάντοτε για την πλήρη
κατανόηση της λύσης: η γνώση των αρχαρίων προγραμματιστών παραμένει “τοπική” και εύθραυστη. Tο
ίδιο πρόβλημα προτεινόμενο εκ νέου, αυτούσιο σε ένα άλλο προγραμματιστικό περιβάλλον, φαίνεται να
εγείρει τις ίδιες προγραμματιστικές δυσχέρειες (Capponi & Dagdilelis 1988).
Eκτεταμένες έρευνες φαίνεται να δείχνουν ότι, αντίθετα από τους έμμεσους ή άμεσους ισχυρισμούς της
σχολής του δομημένου προγραμματισμού, όλες οι επαναληπτικές δομές
δεν είναι εξίσου περίπλοκες για
τον προγραμματιστή. Aν θεωρήσουμε ότι μια επαναληπτική δομή είναι πιο εύκολη από μιαν άλλη, εφόσον
ο χρήστης τη χρησιμοποιεί αυθόρμητα πιο συχνά από την δεύτερη και κάνει με αυτήν λιγότερα λάθη, τότε:
– η δομή
repeat N times action είναι η πιο εύκολη απ’ όλες. H δομή αυτή πιθανά αντιστοιχεί σ’ ένα
“συνηθισμένο” τρόπο λειτουργίας στην καθημερινή ζωή.
– η δομή
while συνθήκη do action φαίνεται να είναι πολύ πιο δύσκολη από την repeat action until
συνθήκη, γεγονός που ερμηνεύεται από το γεγονός ότι η δεύτερη φαίνεται να αντιστοιχεί σε μια “φυσική”
στρατηγική επαναληπτικής επεξεργασίας: επεξεργασία των δεδομένων και ύστερα έλεγχος τερματισμού,
ενώ αντίθετα στην πρώτη μορφή, ο έλεγχος συνέχειας πραγματοποιείται πριν από οποιαδήποτε
επεξεργασία (πλην της απόδοσης αρχικών τιμών, η οποία όμως δεν ανήκει στο σώμα της επαναληπτικής
δομής).
– η δομή
for I:=N1 to N2 do action φαίνεται επίσης να αποτελεί πηγή δυσχερειών για τους νέους
προγραμματιστές, πιθανόν γιατί τόσο η μεταβολή της μεταβλητής μετρητή όσο και η πραγματοποίηση του
τεστ ελέγχου είναι έμμεσες. η διαπίστωση είναι σε αντίθεση με μια πολύ διαδεδομένη αντίληψη που θεωρεί
τη δομή αυτή πιο απλή απ’ όλες και έτσι αποτελεί την κατ’ εξοχή επαναληπτική δομή της γλωσσών όπως η
BASIC και η Visual Basic.
Eπίσης, οι έρευνες φαίνεται να δείχνουν ότι η χρήση της εντολής goto (τουλάχιστον σε ορισμένες
περιπτώσεις), καταλήγει σε καλύτερης ποιότητας προγράμματα: πιο οικονομικά σε κώδικα, με μια πιο
ξεκάθαρη δομή και κυρίως με λιγότερα λάθη.
Tο πρόβλημα της επιλογής της καταλληλότερης επαναληπτικής δομής για την επίλυση συγκεκριμένων
προβλημάτων φαίνεται να είναι αρκετά σημαντικό δεδομένου ότι ακόμη και σπουδαστές τριτοβάθμιας
εκπαίδευσης δευτεροετείς ή και τριτοετείς βρίσκουν δυσκολίες στην έκφραση σύνθετων επαναληπτικών
δομών (τα αποτελέσματα αυτά φαίνονται να επιβεβαιώνονται και από νεότερες έρευνες).
Tο γενικότερο πρόβλημα λοιπόν της αποτελεσματικής διδασκαλίας των επαναληπτικών δομών φαίνεται να
είναι ένα από τα πλέον δύσκολα.
Επίσης υπενθυμίζουμε, συνοπτικά, βασικά ευρήματα ερευνών γύρω από τις λανθασμένες αντιλήψεις των
μαθητών και τις παρανοήσεις τους όπως αναφε΄ρονται στο (Αθ. Τζιμογιάννης et als 2019-δ). Οι αντιλήψεις
αυτές, το υπογραμμίζουμε πάλι, δεν συναντώνται σε όλους τους μαθητές και τις μαθήτριες και μάλιστα με
την ίδια συχνότητα. Δεν αποτελούν λάθη που οφείλονται σε ελλιπή μελέτη ή απροσεξία, αλλά κατά κανόνα
βρίσκουν την εξήγηση τους είτε στην εγγενή πολυπλοκότητα των δομών, είτε στις μεγάλες διαφορές που
παρουσιάζει η επίλυση προβλημάτων που απαιτούν επαναλήπτικές διαδικασίες «με το χέρι» ή με Η.Υ. Για
παράδειγμα, σε ένα απλό πρόβλημα που απαιτεί την άθροιση ενός πλήθους αριθμών, η λύση με τη βοήθεια
Η.Υ. στηρίζεται στη χρήση ενός μετρητή και ενός αθροιστή, δυο μεταβλητών που δεν είναι αναγκαίες στη
συνήθη λύση με το χέρι.
Συνηθισμένα λάθη ή δυσκολίες των αρχαρίων συνδέονται με τα παρακάτω (Αθ. Τζιμογιάννης et als 2019-δ):


Ανεξάρτητα από το είδος της δομής επανάληψης, οι αρχάριοι έχουν δυσκολίες στην παρακολούθηση της
μεταβολής των μεταβλητών στις διαδοσινές επαναλήψεις. Εξ άλλου, η ύπαρξη μιας δομής επανάληψης
προκαλεί μια αλλαγή στη «σειριακή» ροή του προγράμματος και αυτό μπορεί να είναι πηγή παρανοήσεων
και δυσκολιών.
Στη δομή
Για, όταν η διαφορά αρχικής και τελικής τιμής του μετρητή δεν είναι ακέραιο πολλαπλάσιο του
βήματος, υπάρχει μαι δυσκολία πρόβλεψης της ροής του προγράμματος – πότε σταματάει; Ποιες είναι οι
τιμές των διαφόρων μεταβλητών και του μετρητή στην έξοδο; Γενικά ο έλεγχο της δομής αυτής είναι λίγο
αβέβαιος
Οι μαθητές θεωρούν ότι μπορούν να εκχωρούν τιμές στο μετρητή της εντολής
Για, στο εσωτερικό του
βρόχου. Επίσης, κάπως συμμετρικά, δυσκολεύονται να χρησιμοποιήσουν τις διαδοχικές τιμές του μετρητή
για άλλο σκοπό, εκτός από την καταμέτρηση.
Οι μαθητές θεωρούν ότι το πλήθος των επαναλήψεων επηρεάζεται προσθετικά (και όχι πολλαπλασιαστικά)
από την εμφώλευση των Δομών Επανάληψης ή πιστεύουν πως σε κάθε ολοκλήρωση της εμφωλευμένης
Δομής Επανάληψης ολοκληρώνεται και η εξωτερική.
Οι μαθητές θεωρούν ακόμη ότι το πλήθος των επαναλήψεων επηρεάζεται προσθετικά (και όχι
πολλαπλασιαστικά) από την εμφώλευση των Δομών Επανάληψης ή πιστεύουν πως σε κάθε ολοκλήρωση
της εμφωλευμένης Δομής Επανάληψης ολοκληρώνεται και η εξωτερική.
Ο οριοθέτης τερματισμού κάποιων παραλλαγών της Δομής Επανάληψης (στην ΓΛΩΣΣΑ:
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ) ερμηνεύεται κυριολεκτικά και δημιουργεί την ψευδή εντύπωση ότι φτάνοντας
στο σημείο αυτό η επανάληψη τερματίζεται, αντί της ορθής ότι η συνθήκη επανελέγχεται.
Στις περιπτώσεις όπου τα δεδομένα οδηγούν σε μοναδική εκτέλεση του σώματος του βρόχου, υπάρχει
παρανόηση εκ μέρους των μαθητών, αφού στο μυαλό τους η επανάληψη ως κυριολεκτικός όρος έχει νόημα
μόνο από τη δεύτερη φορά και μετά. Αντίστοιχα ξένη τους είναι και η εκδοχή των άπειρων επαναλήψεων.
Η αποτυχία ορθής διατύπωσης της συνθήκης ελέγχου είναι ένα ακόμη σύνηθες σημείο δυσκολίας, που
καταλήγει στην εκτέλεση περισσότερων (λιγότερων) επαναλήψεων, και, ανάλογα με το σκοπό του
αναπτυσσόμενου αλγόριθμου, μπορεί να δίνει λανθασμένα (ημιτελή) αποτελέσματα, να οδηγεί σε
επεξεργασία κόμβων μια Δ.Δ. περισσότερων (λιγότερων) των συνολικά διαθέσιμων προς επεξεργασία, κ.λπ.
Η αδυναμία μετάφρασης της λεκτικής περιγραφής της εκφώνησης σε ορθά διατυπωμένη
ρεαλιστική
συνθήκη οδηγεί σε ατέρμονα βρόχο.
Η σειρά των εντολών στο σώμα του βρόχου καθορίζει (και καθορίζεται από) την εκχώρηση αρχικών τιμών
πριν την είσοδο σε αυτόν ή/και από τη θέση της εντολής μεταβολής της μεταβλητής-μετρητή των
επαναλήψεων (όπου αυτή προβλέπεται). Λάθη στο σημείο αυτό οδηγούν σε εκτέλεση περισσότερων ή
λιγότερων επαναλήψεων από τις αναμενόμενες, υπολογισμό λανθασμένων τελικών αποτελεσμάτων,
προσπέλαση λανθασμένων κόμβων μιας Δ.Δ. κ.λπ.
Η αρχικοποίηση μεταβλητών υπολογισμού σωρευτικών αποτελεσμάτων (αθροίσματος, γινομένου,
πλήθους) τοποθετείται εντός της Δομής Επανάληψης, με αποτέλεσμα να αποτυγχάνει ο υπολογισμός.
Η είσοδος ενός δεδομένου από το πληκτρολόγιο τίθεται (λανθασμένα) εντός της Δομής Επανάληψης, ή η
είσοδος πολλών δεδομένων υλοποιείται εκτός αυτής.
Η χρήση λογικών εκφράσεων αποτελούμενων από περισσότερες της μίας συνθήκες ή λογικών τελεστών με
ενσωματωμένη διάζευξη (
<>, >=, <=) οδηγεί σε παρανόηση ως προς το πλήθος των επαναλήψεων. Π.χ. για
μια μεταβλητή
x που αρχικοποιείται σε 0 και η τιμή της αυξάνεται στο σώμα του βρόχου υπάρχει
παρανόηση ως προς το πλήθος των επαναλήψεων στις παραλλαγές
ΜΕΧΡΙΣ_ΟΤΟΥ x>=5,

ΜΕΧΡΙΣ_ΟΤΟΥ x<=5, ΜΕΧΡΙΣ_ΟΤΟΥ x<>5 ή , ΟΣΟ x<>5 ΕΠΑΝΑΛΑΒΕ.
Η χρήση λογικών εκφράσεων αποτελούμενων από περισσότερες της μίας συνθήκες οδηγεί σε λανθασμένη
διατύπωση των επί μέρους συνθηκών (αντί της ορθής που ταιριάζει π.χ. σε Δομή Επανάληψης της μορφής
ΟΣΟ, διατυπώνεται εκείνη που αντιστοιχεί σε ΜΕΧΡΙΣ_ΟΤΟΥ και αντιστρόφως) ή σε λανθασμένη χρήση
των λογικών τελεστών (π.χ.
ΚΑΙ αντί του Ή και αντιστρόφως, χρήση του ΟΧΙ χωρίς παρενθέσεις με
αποτέλεσμα την λανθασμένη εμβέλεια
κ.λπ.).
Η χρονικά ύστερη διδασκαλία των Δομών Επανάληψης με χρήση Δομών Δεδομένων (όπου όλα τα δεδομένα
είναι διαθέσιμα ανά πάσα στιγμή) επηρεάζει αρνητικά την ικανότητα των μαθητών να αντιμετωπίζουν
προβλήματα χωρίς χρήση Δομών Δεδομένων.
3.1.4 Υποπρογράμματα
Τα υποπρογράμματα, είναι από τα πλέον δύσκολα, στην κατανόησή τους, θέματα που διδάσκονται στο
σχολείο.
Κατ’ αρχάς η ίδια η αναγκαιότητα χρήσης υποπρογραμμάτων προβάλλει όταν ο προγραμματιστής (η
μαθήτρια και ο μαθητής) εμπλακεί με προβλήματα αρκετά πολύπλοκα, ώστε η χρήση υποπρογραμμάτων
να είναι πραγματικά απαραίτητη – αλλιώς η χρησιμότητά τους παραμέν αμφίβολη.
Αλλά ακόμη και τότε, η διάκριση ανάμεσα σε διαδικασίες και συναρτήσεις, τα διάφορα είδη «περάσματος
των παραμέτρων», η διάκριση ανάμεσα σε τοπικές και καθολικές μεταβλητές και η έννοια της εμβέλιας μιας
μεταβλητής, απαιτούν αρκετή διανοητική προσπάθεια για την κατανόησή τους.
Οι μαθητές δυσκολεύονται να κατανοήσουν έτσι την κλήση υποπρογραμμάτων από το κυρίως πρόγραμμα
(από ποιο σημείο; Τι συμβαίνει όταν καλείται το υποπρόγραμμα με διαφορετικές τιμές; κ.ά.).
Οι (Τζιμογιάννης Αθ. et als 2019 – στ) πέραν των δυσκολιών αυτών, αναφέρουν και δυσκολίες στην ορθή
σύνταξη των σχετικών τμημάτων κώδικα. Φαίνεται εξάλλου ότι οι μαθητές έχουν γενικότερα μια ελλιπή
κατανόηση του τρόπου με τον οποίο το σύστημα διαχειρίζεται την εσωτερική μνήμη που απαιτείται για τις
μεταβλητές και τις παραμέτρους και επομένως δυσκολεύονται να πραγματευτούν τα θέματα των
υποπρογραμμάτων.
Προφανώς η ορθολογική επιλογή εκείνων των τμημάτων ενός προγράμματος που οφείλουν να γίνουν
υποπρογράμματα είναι μια διαδικασία που απαιτεί εμπειρία από τον προγραμματιστή και διανοητική
προσπάθεια (ibid).
Η οπτική αναπαράσταση και η προσομοίωση της βηματικής εκτέλεσης ενός προγράμματος με
υποπρογράμματα αποτελούν πολυ ισχυρά εργαλεία για την υποστήριξη της διδασκαλίας. Τα σχετικά
Μαθησιακά Αντικείμενα του Φωτόδενδρου εστιάζουν χρησιμοποιούν ακριβώς τα μέσα αυτά για την
ενίσχυση της διδασκαλίας.
3.1.5 Ταξινομήσεις και Αναζήτηση
Με ένα γενικό τρόπο, όπως αναφέρουν οι (Τζιμογιάννης Αθ. et als 2019 – ε) οι μαθητές, έχουν μια δυσκολία
διάκρισης ανάμεσα στους δείκτες (Pointers) και το περιεχόμενο της θέσης προς την οποία δείχνουν. Όσο
πιο σύνθετες είναι οι εκφράσεις που χρησιμοποιούνται, τόσο πιο δυσνόητα είναι για τους αρχάριους
προγραμματιστές: για παράδειγμα Κ[2*i+5] ή K[L[i]]. To ίδιο ισχύει και για τους “explicit” pointers που
χρησιμοποιούν ορισμένες γλώσσες προγραμματισμού. Δυσκολίες επίσης φαίνεται να παρουσιάζει η


κατανόηση πινάκων με διάσταση μεγαλύτερη του 1 (2,3,,4 κ.λπ. διαστάσεις).
Όπως είναι γνωστό, οι αναζητήσεις στοιχείων και οι ταξινομήσεις στοιχείων σε πίνακα (ή και σε άλλες δομές
δεδομένων) είναι από τα πιο σημαντικά αλγοριθμικά θέματα. Στο μνημειώδες έργο του «Τhe Art of
Computer Programming. Vol III Sorting and Searching» ο D. E. Knuth αναφέρει δεκάδες αλγορίθμους που
κλιμακώνονται από πιο στοιχειώδεις ως τους πιο πολύπλοκους. Μεταξύ αυτών οι «απλοί αλγόριθμοι»
επιλογής, παρεμβολής, φυσαλίδων (σε διάφορες παραλλαγές), το λεγόμενο quick sort καθώς και ένας
ταχύτατος αλγόριθμος που ταξινομεί, υπό ορισμένες προϋποθέσεις εύρους των αριθμών προς ταξινόμηση,
έναν πίνακα χωρίς καμιά σύγκριση (!).
Επίσης, στο ίδιο έργο αναφέρονται πολλοί αλγόριθμοι αναζήτησης, από την απλή σειρικαή αναζήτηση ως
τη δυαδική αναζήτηση σε διάφορα είδη δομών δεδομένων. Μάλιστα ο D.E. Knuth προτείνει μια μικρή
αλλαγή στον κλασικό αλγόριθμο της σειριακής αναζήτησης για να διευκολύνει τη διδικασία κωδικοποίησης:
αν σε μια δομή έχουμε Ν στοιχεία και αναζητούμε ένα στοιχεία Σ, τότε μπορούμε να προσθέσουμε στη
δομή, στο τέλος, ώς στοιχείο στη Ν+1 θέση, το ίδιο το Σ. Τότε η αναζήτηση μπορεί να συνεχίζεται
έως ότου
βρεθεί το Σ – δεδομένου ότι θα βρεθεί σίγουρα. Αν εντοπιστεί σε κάποια από τις θέσεις 1 έως Ν, τότε το Σ
υπάρχει, αλλιώς, αν εντοπιστεί στη θέση Ν+1, τότε δεν ανήκει στα στοιχεία της δομής.
Πρακτικά δεν υπάρχουν σχετικά πλήρη συγγράμματα και βιβλία για αλγορίθμους χωρίς αναφορά στις
αναζητήσεις και ταξινομήσεις.
Όσον αφορά τους αρχάριους – ή μη-πεπειραμένους- προγραμματιστές, οι (Τζιμογιάννης Αθ. et als 2019 – ε)
αναφέρουν ότι είναι προτιμότερο να ξεκινούν από αλγορίθμους δισαιθητικά πιο «εύκολους» ή
αλγορίθμους που στηρίζονται σε πρότερες γνώσεις τους. Έτσι για παράδειγμα, ο αλγόριθμος επιλογής
(εντοπισμός του ελάχιστου στοιχείου και τοποθέτησή του στην κατάλληλη θέση) είναι πιο εύκολα
κατανοητός. Επίσης, πάντα σύμφωνα με σχετικές έρευνες, φαίνεται ότι ο αλγόριθμος παρεμβολής (insertion
sort) ή εισαγωγής (που βασίζεται στην παρεμβολή ενός νέου στοιχείου σε ένα ήδη ταξινομημένο πίνακα –
οριακά με 1 στοιχείο) είναι σχετικά κατανοητός διαισθητικά. Αντίθετα οι αλγόριθμοι ευθείας ανταλλαγής
στοιχείων είτε διπλανών (αλγόριθμος «φυσαλίδας»), είτε σε μεγάλη «απόσταση» είναι πολύ λιγότερο
συμβατοί με τις αυθόρμητες αντιλήψεις και τη διαίθηση των μαθητών – παρόλο αυτός είναι που διδάσκεται
στο σχολείο.
Επομένως, οι μαθητές είναι προτιμότερο να ασχοληθούν αρχικά με βασικές τεχνικές όπως η αναζήτηση
στοιχείου σε πίνακα, η εύρεση του ελαχίστου ή του μεγίστου από τα στοιχεία ενός πίνακα και ο εντοπισμός
της θέσης του καθώς και η εισαγωγή στοιχείου σε ταξινομημένο πίνακα (παρεμβολή στοιχείου).
3.1.6 Μεταβλητές και απλές εκχωρήσεις
Ο αρχάριος προγραμματιστής δυσκολεύεται να κατανοήσει:
τον τρόπο με τον οποίο λειτουργούν οι μεταβλητές,
την ανάγκη αρχικοποίησης των μεταβλητών,
την ενημέρωση και τον έλεγχο των τιμών των μεταβλητών σε βρόχους.
Πιο συγκεκριμένα, η έννοια και ο ρόλος της μεταβλητής (της αλγοριθμικής και προγραμματιστικής
μεταβλητής) υπήρξε ένα από τα αντικείμενα εκτεταμένων ερευνών (για παράδειγμα Schneiderman 1980,
Mayer 1981, Bayman & Mayer1983, Rouchier et als1984, Samurçay 1989, Dagdilelis 1986, Rogalski 1989).


H μεταβλητή έχει πολλές φορές μια εκφορά (σύνταξη) η οποία είναι συγγενής με των μαθηματικών, αλλά
με τελείως διαφορετικό νόημα: η έκφραση X=X+1 από μαθηματική άποψη είναι χωρίς νόημα (δεν είναι
βέβαια δυνατόν ένας αριθμός X να είναι ίσος με τον εαυτό του συν μία μονάδα), ενώ προγραμματιστικά
παριστάνει μια εκχώρηση. Στην περίπτωση αυτή, η έννοια της μεταβλητής είναι ήδη γνωστή στον αρχάριο
προγραμματιστή από τα μαθηματικά, αλλά ακριβώς το γεγονός αυτό σημαίνει ότι της αποδίδονται οι
ιδιότητες που έχει στα μαθηματικά.
Tο σύμβολο X στην έκφραση X=X+1 αποτελεί ταυτόχρονα
– μια πηγή πληροφορίας: στο δεξιό μέλος το σύμβολο X αντιπροσωπεύει μια αριθμητική τιμή καταχωρημένη
σε μια διεύθυνση μνήμης
– ένα στόχο πληροφορίας: στο αριστερό μέλος το σύμβολο X αντιπροσωπεύει μια διεύθυνση μνήμης στην
οποία θα καταχωρηθεί το αποτέλεσμα των πράξεων του δεξιού μέλους (Tennent 1984, Ledgard et als 1987).
H εκχώρηση είναι λοιπόν ασύμμετρη και η ασυμμετρία αυτή αποτελεί μια πρόσθετη πηγή δυσκολιών για
τον αρχάριο (στην πραγματικότητα υπάρχει μεγαλύτερη πολυπλοκότητα: στην έκφραση A[I]:=I, το I είναι
πηγή πληροφορίας και στα δυο “μέλη”). Oρισμένοι ερευνητές διατυπώνουν, επιπλέον, την άποψη ότι στις
εκχωρήσεις του τύπου
20 LET A=B+1
υπάρχει μια σύγχυση ανάμεσα στο σύμβολο “=” ως σύμβολο ισότητας και στο σύμβολο “=” ως σύμβολο
εκχώρησης. Aλλά και όταν ο αρχάριος προγραμματιστής κατανοεί ότι η παραπάνω έκφραση αντιστοιχεί σε
μια εκχώρηση και όχι σε μια εξίσωση, σε πολλές περιπτώσεις, δυσκολεύεται να αντιληφθεί το αποτέλεσμα
της εκχώρησης, θεωρώντας, για παράδειγμα, ότι αυτό που αποθηκεύεται στη μνήμη είναι ολόκληρη η
έκφραση «Β+1» και όχι η τιμή B+1, στην μνήμη A. Θα πρέπει ίσως να επισημάνουμε ότι οι αντιλήψεις αυτές,
ίσως να είναι πιο σπάνιες σε προγραμματιστικά περιβάλλοντα στα οποία η εκχώρηση και η εξίσωση
εκφράζονται με διαφορετικά σύμβολα – όπως στην Pascal.
Aπό διδακτική άποψη, δεν είναι βέβαια τόσο οι κανόνες σύνταξης, ούτε η σημασία τους (semantics) που
παρουσιάζουν ενδιαφέρον, αλλά η χρήση των μεταβλητών, ο ρόλος τους (pragmatics). Έτσι, για
παράδειγμα, υπάρχουν μεταβλητές με
τυποποιημένους ρόλους, όπως του αθροιστή, του μετρητή και της
μεταβλητής προσωρινής ενδιάμεσης χρήσης (οι γνωστές temp), αλλά και χρήσεις της μεταβλητής πιο
περίπλοκες όπως για παράδειγμα της εισόδου δεδομένων:
read-data,
δεδομένα που εισάγονται από το πληκτρολόγιο,
από αρχεία,
από αναλογικές συσκευές κλπ
Oι μεταβλητές με τυποποιημένη χρήση έχουν δυο τουλάχιστον επιπτώσεις: για έναν πεπειραμένο χρήστη,
εντολές του τύπου
X:=0;
….
repeat
X:=X+1;
….


until x>10;
είναι εύκολα αναγνωρίσιμες (σχεδόν αυτόματα) και διευκολύνουν την κατανόηση ενός προγράμματος που
διαβάζει. Mε την ίδια ακριβώς ευκολία, ο πεπειραμένος χρήστης, χρησιμοποιεί σε σημεία ενός
προγράμματος που κατασκευάζει ο ίδιος, τυποποιημένες μεταβλητές για εκτέλεση διεργασιών, με επίσης
τυποποιημένο χαρακτήρα. O Soloway (1983) έδειξε εξ άλλου, ότι η παραβίαση άγραφων κανόνων
τυποποίησης μπορεί να είναι πηγή δυσκολιών ακόμη και για τους πεπειραμένους προγραμματιστές: για
παράδειγμα, σε ένα πρόγραμμα στο οποίο χρειαζόταν ένας ενδιάμεσος υπολογισμός του ελαχίστου ενός
συνόλου ακεραίων, ο ελάχιστος αποθηκευόταν σε μια μνήμη με όνομα max. H “ασυνήθιστη” αυτή χρήση
του ονόματος μιας μεταβλητής, υπήρξε πηγή δυσκολιών για πεπειραμένους προγραμματιστές, στους
οποίους προτάθηκε το πρόγραμμα, ζητώντας τους να προσδιορίσουν την εργασία που αυτό εκτελεί.
Mεταβλητές με “πεπλεγμένο” υπολογισμό τιμών
X:=X+5;
……
Α:=A+3;
…..
M:=A+X:
…..
N:=N+M;
H “συναρτησιακή εξάρτηση” της N στο παραπάνω παράδειγμα, αποτελεί έναν παράγοντα δυσκολίας, γιατί
ούτε οι διαδοχικές τιμές της N είναι εύκολο να προσδιοριστούν, ούτε και ο ρόλος της N μπορεί εύκολα να
συναχθεί από τα “συμφραζόμενα” (Dagdilelis 1986).
Tέλος, η έννοια της μεταβλητής παρουσιάζει σημαντικές δυσκολίες κατανόησης όταν πρόκειται για
περιπτώσεις που δεν αφορούν σε άμεση και απλή εκχώρηση: μεταβλητές δείκτες (pointers), buffers,
παράμετροι διαδικασιών και συναρτήσεων, τύποι, μεταβλητές σε αναδρομικές διαδικασίες, έννοιες του
αντικειμενοστρεφούς προγραμματισμού κλπ. Η ορθή χρήση των μεταβλητών στις περιπτώσεις αυτές, συχνά
απαιτεί έναν υψηλό βαθμό αφαίρεσης από τους αρχάριους προγραμματιστές και αποτελεί πηγή σύγχυσης
ανάμεσα στη δήλωση ενός τύπου και στη δήλωση μιας μεταβλητής αυτού του τύπου, ανάμεσα στις τυπικές
και τις τρέχουσες παραμέτρους διαδικασιών κλπ. Mία από τις πλέον γνωστές δυσκολίες των αρχαρίων
έγκειται στο ότι οι αρχάριοι συχνά δυσκολεύονται να διακρίνουν τη δήλωση ενός τύπου από τη δήλωση
μιας μεταβλητής ενός τύπου
Οι σπουδαστές, τέλος, δυσκολεύονται πολλές φορές να αντιληφθούν το γεγονός ότι – κατά κανόνα – οι
πράξεις επιτρέπονται μεταξύ μεταβλητών του ιδίου ή συγγενούς τύπου και επίσης ότι υπάρχουν πράξεις
που είναι επιτρεπτές για μια κατηγορία μεταβλητών και απαγορευμένες για τις υπόλοιπες κατηγορίες.
Σχετική
πρόδρομη έννοια – η οποία μάλιστα μπορεί να παίξει έναν παραγωγικό ρόλο με την έννοια που
προσδιορίσαμε παραπάνω – αποτελούν τα σχετικά μαθηματικά αντικείμενα: οι πραγματικοί αριθμοί, οι
μιγαδικοί, τα διανύσματα.
Oι Rouchier et als (1984) και Samurçay (1985) διετύπωσαν τη γενικότερη άποψη, ότι οι μεταβλητές οι
οποίες χρησιμοποιούνται κατά τρόπο συστηματικό στα μαθήματα (π.χ. μετρητές, αθροιστές κλπ) είναι πιο
εύκολα διαχειρίσιμες από τους αρχάριους προγραμματιστές, από εκείνες τις οποίες επινοούν οι ίδιοι, κατά


την κατασκευή ενός αλγορίθμου.
3.1.7 Eισαγωγή δεδομένων
H διαχείριση μεταβλητών που χρησιμοποιούνται για είσοδο δεδομένων (π.χ. το read-readln της PASCAL, το
read-data και το input της BASIC), παρουσιάζει επίσης δυσκολίες για τους αρχάριους προγραμματιστές.
Στις εντολές τύπου INPUT A, όταν δηλαδή τα δεδομένα εισάγονται από το πληκτρολόγιο, ο αρχάριος
χρήστης
α) ερμηνεύει την “ακινησία” της οθόνης σαν ένα είδος βλάβης ή εν πάση περιπτώσει ως ένα είδος
προβλήματος και
β) δυσκολεύεται να εξηγήσει την κίνηση της πληροφορίας (εισαγωγή από πληκτρολόγιο και αποθήκευση
της σε μια θέση μνήμης A)
Εξ άλλου η εντολή INPUT A, πολλές φορές ερμηνεύεται ως αποθήκευση στη μνήμη του ίδιου του συμβόλου
«A» (Bayman 1983).
Στις εντολές του τύπου READ-DATA, οι αρχάριοι δε μπορούν να ερμηνεύσουν σωστά την “προέλευση” των
πληροφοριών (την ουρά δεδομένων) και την αποθήκευση τους στην αντίστοιχη μεταβλητή. Συγκεκριμένα,
οι αρχάριοι προγραμματιστές θεωρούν ορθή μια εντολή του τύπου READ, κατά την οποία ο Η.Υ.
«απομνημονεύει» ένα δεδομένο, ενώ η ρητή αναφορά της μεταβλητής στην οποία αποθηκεύεται το
δεδομένο φαίνεται περιττή. Mία παρόμοια αντίληψη εκφράζεται από τους αρχάριους και στην
πραγματοποίηση υπολογισμών – η ρητή αναφορά της μεταβλητής στην οποία αποθηκεύεται το
αποτέλεσμα, τους φαίνεται περιττή. Oι δυο πλέον διαδομένες σχετικές αντιλήψεις των αρχαρίων είναι οι
ακόλουθες:
α) οι εντολές
10 DATA 20, 30, 40
20 READ A
έχουν σαν αποτέλεσμα την αποθήκευση των 20, 30, 40 στη μνήμη ή την εμφάνιση τους στην οθόνη
β) η εντολή 20 READ A έχει σαν αποτέλεσμα την εμφάνιση της τιμής της μεταβλητής A στην οθόνη (Bayman
1983).
Ωστόσο, η Samurçay (1985) διεπίστωσε ότι παρ’ όλη τη δυσκολία της διαχείρισης των εντολών εισόδου
δεδομένων, οι εντολές αυτές θεωρούνται απαραίτητες από τους αρχάριους προγραμματιστές, στις
περιπτώσεις απόδοσης αρχικών τιμών σε μεταβλητές. Tο φαινόμενο αυτό μπορεί να παρατηρηθεί ακόμη
και με σπουδαστές της τριτοβάθμιας εκπαίδευσης οι οποίοι, για παράδειγμα, γράφουν το εξής τμήμα ενός
κώδικα:

X:=30;
readln(X);
….
ενώ δηλαδή αποδίδουν μια τιμή στη μεταβλητή, προσθέτουν και μια εντολή εισαγωγής δεδομένων, την
οποία, όταν ερωτώνται, δεν μπορούν να ερμηνεύσουν, αλλά απλώς διερωτώνται “δηλαδή δε χρειάζεται”;
“Διπλή χρήση” και απευθείας εκχωρήσεις
Πολύ συχνά οι σπουδαστές αναθέτουν σε κάθε μεταβλητή έναν και μόνο ρόλο.


Για τον υπολογισμό του αθροίσματος 1+2+…+300, για να δώσουμε ένα παράδειγμα, εμφανίζονται κυρίως
λύσεις του είδους:
s:=0; x:=0;
for i:=1 to 300 do begin
x:=χ+1;
s:=s+x
end
αντί για
s:=0;
for i:=1 to 300 do s:=s+i;
Eίναι δηλαδή σαν οι άπειροι προγραμματιστές να θεωρούν ότι κάθε μεταβλητή
παίζει ένα ρόλο και δε
μπορεί να χρησιμοποιηθεί για δυο διαφορετικούς σκοπούς
. Tο φαινόμενο αυτό μπορεί να παρατηρηθεί
ακόμη και με σπουδαστές της τριτοβάθμιας εκπαίδευσης. Σε άσκηση που προτάθηκε σε πρωτοετείς
σπουδαστές, εζητείτο η κατανομή μαθητών σε τέσσερις κατευθύνσεις, ανάλογα μ’ έναν κωδικό που ήταν
1,2,3 ή 4. Επί συνόλου 40 περίπου σπουδαστών, μόνον ένας επέλεξε την προφανή λύση:
readln (KODIKOS);
DESMH[KODIKOS]:=DESMH[KODIKOS}+1;

ενώ οι υπόλοιποι επέλεξαν λύσεις του τύπου:
readln (KODIKOS);
I:=KODIKOS;
if I=1 then DESMH[1]:=DESMH[1]+1;
κλπ
Oι σπουδαστές δεν έλαβαν υπ’ όψη τους ότι οι μεταβλητές KODIKOS και I περιέχουν την ίδια ακριβώς
πληροφορία και άρα μια από τις δυο είναι περιττή και δε χρησιμοποιούν την πληροφορία της KODIKOS
άμεσα, παρά μόνο μέσω της I.
3.1 Πηγές των δυσκολιών των μαθητών στην Πληροφορική
Για τα θέματα που εξετάζουμε, σημαντικός είναι και ο ακριβής προσδιορισμός των πηγών, των αιτίων
δηλαδή των δυσκολιών αυτών. Οι πηγές μπορούν να είναι ποικίλες. Ο προγραμματισμός, για παράδειγμα,
απαιτεί την κατανόηση πολλών σύνθετων εννοιών και η κατανόηση του παρουσιάζει εγγενείς δυσκολίες.
Βέβαια, άλλοι ερευνητές, έχουν επισημάνει και άλλες δυσκολίες, εκτός όσων αναφέραμε στα προηγούμενες
ενότητες – όπως, για παράδειγμα, την τάση των σπουδαστών
για γρήγορη γενίκευση.
Ο Du Boulay (1989) περιγράφει πέντε βασικές περιοχές όπου, κατά τη γνώμη του, εντοπίζεται η δυσκολία
της εκµάθησης του προγραμματισμού (Ξυνόγαλος 2000, Ξυνόγαλος 2002, Ξυνόγαλος & Σατρατζέμη 2002).
Η πρώτη περιοχή καλείται
Προσανατολισμός (Orientation): περιγράφοντάς την συνοπτικά, περιλαμβάνει
τις απαντήσεις στα ερωτήματα «τι είναι ο προγραμματισμός και σε τι µας είναι χρήσιµος». Οι μαθητές,
αρκετές φορές, συναντούν δυσκολίες µε τις διάφορες µορφές προγραµµατισµού. Σήµερα, περισσότερο από
ποτέ, ο προγραµµατισµός καλύπτει µια ευρεία περιοχή εφαρµογών λογισµικού και δεν συναντάται


αποκλειστικά στα περιβάλλοντα των κλασσικών γλωσσών. Πολλά περιβάλλοντα εργασίας ενσωµατώνουν
δυνατότητες προγραµµατισµού (συνήθως µέσω µακροεντολών), όπως τα λογιστικά φύλλα, οι επεξεργαστές
κειµένου, διάφορα προγράµµατα δηµιουργίας γραφικών κ.ά. Αυτό το γεγονός, έχει καταστήσει πλέον
ασαφή τα όρια µεταξύ του χρήστη εφαρµογών και του προγραµµατιστή.
Η δεύτερη περιοχή καλείται
Νοητή µηχανή (Notional Machine): «πώς λειτουργεί ο υπολογιστής». Ο
µαθητής καλείται να «ελέγξει» µια εικονική µηχανή. Τι µορφή παίρνει η εικονική µηχανή και ποιο είδος
εντολών αναµένεται να καταλαβαίνει; Πώς γίνεται η επικοινωνία, η έκδοση και η ανάγνωση των εντολών;
Τα διανοητικά µοντέλα που κατασκευάζουν οι µαθητές είναι κρίσιµα για την κατανόηση κάθε νέας έννοιας
στην οποία εισάγονται. Επιπλέον, η κατοχή ενός «φτωχού» διανοητικού µοντέλου µπορεί να οδηγήσει τους
µαθητές στην ανάπτυξη φτωχών στρατηγικών εκµάθησης, µε αποτέλεσµα την απουσία κινήτρου, την
έλλειψη ενδιαφέροντος, την αποθάρρυνση και απογοήτευση (Kessler & Anderson 1986). Ο Mordechai BenAri (1998) αναφέει ένα χαρακτηριστικό παράδειγμα: ένα εικονίδιο (όπως ενός άντρα που τρέχει) μπορεί
απλούστατα να είναι μια εντολή για να αρχίσει να «τρέχει» η διαδικασία της compilation και της εκτέλεσης
ενός προγράμματος. Άρα, για να έει νόημα αυτό το εικονίδιο για ένα χρήστη, θα πρέπει αυτός να έχει μια
νοητή εικόνα, ένα μοντέλο της λειτουργίας του όλου συστήματος. Το ίδιο ιχύει και γενικότερα για το
μοντέλο WYSIWYG: ο χρήστης πρέπει να έχει ια καλή γνώση των μηχανισμών που υπονοούνται στα
εικονίδια και γενικότερα του τρόπου λειτουργίας των Η.Υ. και των ψηφιακών συστημάτων. Αυτό σημαίνει,
πάντα κατά τον ίδιο ερευνητή, ότι τα μοντέλα λειτουργίας των ψηφιακών συστημάτων πρέπει να
διδάσκονται συστηματικά στους μαθητές και σπουδαστές.
Η τρίτη περιοχή δυσκολίας που περιγράφει ο Du Boulay (1989), αναφέρεται στα προβλήµατα που
προκύπτουν από την ίδια τη γλώσσα προγραµµατισµού, συµπεριλαµβανοµένων των συντακτικών κανόνων
και των κανόνων σημασίας. Αυτοί οι κανόνες, περιλαµβάνουν δυσνόητες διαδικασίες και οδηγούν εύκολα
σε λάθη.
Η τέταρτη περιοχή δυσκολίας περιγράφει ένα απαραίτητο στοιχείο της µετάβασης από τον αρχάριο στον
έµπειρο προγραµµατιστή: την εκµάθηση και πραγµατική κατάκτηση των δοµών (Structures), µε τέτοιο
τρόπο, ώστε µελλοντικά να µπορούν να ανακληθούν εύκολα και να ενσωµατωθούν σε µια λύση ενός
προβλήµατος. Παραδείγµατα τέτοιων δοµών είναι ο υπολογισµός ενός αθροίσµατος µε χρήση βρόχου, ένας
αλγόριθµος αναζήτησης, ένας αλγόριθµος ταξινόµησης, κώδικας για την αντιµετάθεση τιµών κ.α. Οι
Spohrer et als (1989) τα αναφέρουν με τον όρο
σχήματα plan-goal. Οι έµπειροι προγραµµατιστές έχουν στο
µυαλό τους τέτοια σχήματα, έτοιμα προς χρήση ανά πάσα στιγµή, αφού έχουν αντιµετωπίσει ανάλογες
καταστάσεις στο παρελθόν. Οι αρχάριοι, λόγω απειρίας, δεν έχουν αυτήν τη δυνατότητα.
Η τελευταία περιοχή δυσκολίας παραµελείται συχνά στα µαθήµατα προγραµµατισµού, παρά τη
σπουδαιότητά της. Έχει να κάνει µε τις βοηθητικές δεξιότητες που είναι απαραίτητες για τον
προγραµµατισµό και αφορούν την ικανότητα προσαρµογής και ελέγχου ενός περιβάλλοντος στον
υπολογιστή, που θα χρησιµοποιηθεί για τη συγγραφή κώδικα, τη µεταγλώττιση και αποσφαλµάτωση των
λαθών ενός προγράµµατος (Pragmatics). Οι µαθητές, ορισµένες φορές, έχουν δυσκολία να εγκλιµατισθούν
στο περιβάλλον ανάπτυξης προγραµµάτων και να µάθουν να χρησιµοποιούν τα διαθέσιµα εργαλεία, πριν
ακόµα αρχίσουν να εξετάζουν την ίδια τη γλώσσα προγραµµατισµού.
O Du Boulay (1989) επίσης, θεωρεί ότι τα λάθη των µαθητών µπορούν να ταξινοµηθούν στις ακόλουθες
τρεις κατηγορίες:
1. Κακή εφαρµογή της αναλογίας (Misapplication of analogy): η µεταβλητή παροµοιάζεται με ένα κουτί
αποθήκευσης, οπότε αρκετοί µαθητές θεωρούν ότι θα µπορούσε να αποθηκεύσει περισσότερες από µία

τιµές.
2. Υπεργενίκευση (Overgeneralization): ό,τι λειτουργεί σωστά για έναν τύπο αντικειµένου θα πρέπει να
λειτουργεί σωστά και για κάποιον άλλο. Λ.χ. η χρήση του χαρακτήρα “;” για το διαχωρισµό ορισµάτων σε
ένα βρόχο FOR, µπορεί να οδηγήσει τους µαθητές να χρησιµοποιήσουν τον ίδιο χαρακτήρα ( “;” ) ως
διαχωριστικό των παραµέτρων στην κλήση µιας συνάρτησης.
3. Λάθος χειρισµός της πολυπλοκότητας και της αλληλεπίδρασης: κακή διαχείριση και τοποθέτηση σε
λανθασμένο σηµείο των υποτµηµάτων ενός µεγάλου προγράµµατος.
3.2 Μερικές μέθοδοι για μια εισαγωγή στον προγραμματισμό
Ορισμένες συνήθεις τεχνικές για την αντιμετώπιση των δυσκολιών που συναντούν οι αρχάριοι
προγραμματιστές περιλαμβάνουν, μεταξύ άλλων, και τα εξής:
Κατάλληλη οργάνωση της διδασκαλίας. Όπως είναι φυσικό, αφού έχει πλέον διαπιστωθεί και
επαληθευτεί από πλήθος ερευνών, το γεγονός ότι οι αρχάριοι προγραμματιστές αντιμετωπίζουν
ένα πλήθος δυσκολιών, η διδασκαλία να προσαρμόζεται κατάλληλα, ώστε να καθίσταται πιο
αποτελεσματική. Για παράδειγμα, η επιλογή κατάλληλων παραδειγμάτων για μελέτη, η ενασχόληση
των σπουδαστών με ειδικές κατηγορίες προβλημάτων ή η χρήση ειδικά σχεδιασμένων ασκήσεων
και σχεδίων εργασίας (projects) μπορεί να βοηθήσει τους σπουδαστές να κατανοήσουν καλύτερα
ορισμένες έννοιες ή να αναπτύξουν δεξιότητες στη χρήση συγκεκριμένων τεχνικών και μεθόδων. Σε
κάθε περίπτωση, τα σημαντικά και επαληθευμένα ευρήματα των σχετικών ερευνών, μπορούν να
αποτελέσουν ένα χρήσιμο οδηγό για τον εκπαιδευτικό που διδάσκει προγραμματισμό. Για
παράδειγμα, ένας σχετικός και εκτεταμένος προβληματισμός έχει αναπτυχθεί στην επιστημονική
κοινότητα σχτικά με τα εισαγωγικά μαθήματα στον αντικειμενοστρεφή προγραμματισμό.
Χρήση κατάλληλα προσαρμοσμένων αναπαραστατικών μεθόδων. Σε πολλές περιπτώσεις, δηλαδή
στη διδασκαλία ορισμένων εννοιών και μεθόδων μπορούν να αναπτυχθούν και να
χρησιμοποιηθούν σε μια διδασκαλία αναπαραστατικές μεθόδοι, οι οποίες μπορούν με τη σειρά
τους, να βοηθήσουν στην κατανόηση βασικών εννοιών και μεθόδων. Αν και γενικά οι
αναπαραστατικές μέθοδοι δεν μπορούν να καλύψουν παρά μόνο ένα πολύ περιορισμένο μέρος των
εννοιών του προγραμματισμού, ωστόσο η ευχρηστία τους και η αποτελεσματικότητά τους μπορεί
να είναι διδακτικά πολύ χρήσιμες. Ως χαρακτηριστικό παράδειγμα αναπαράστασης μπορούμε να
αναφέρουμε τη δυνατότητα για χρήση μεθόδων για την καλύτερη κατανόηση της λειτουργίας του
Η.Υ. είτε με ειδικό υλικό (όπως μηχανικές διατάξεις και χάρτινοι Η.Υ.), είτε με τα κατάλληλα
παιχνίδια ρόλων (όπως η προσομοίωση της εκτέλεσης ενός προγράμματος από τους μαθητές μιας
τάξης κ.ά.).


Χρήση κατάλληλων εκπαιδευτικών προγραμματιστικών περιβαλλόντων (Berg et als 1998).
Πρόκειται για τη δημιουργία και τη χρήση κατάλληλων προγραμματιστικών περιβαλλόντων, που
ασποσκοπούν στη διευκόλυνση των αρχαρίων προγραμματιστών. Κατά κανόνα, τα συνήθη
(επαγγελματικά) προγραμματιστικά περιβάλλοντα και οι ευρέως χρησιμοποιούμενες
προγραμματιστικές γλώσσες είναι έτσι σχεδιασμένα, ώστε να βοηθούν είτε τους επαγγελματίες
προγραμματιστές, είτε τους ερευνητές. Τα περιβάλλοντα αυτά δεν είναι λοιπόν σχεδιασμένα για
την εκπαίδευση και, κατά συνέπεια, μπορεί να αποδειχθούν ιδιαιτέρως αναποτελεσματικά στη
διδασκαλία, αυξάνοντας τις δυσκολίες των σπουδαστών, όπως αναλύθηκε και στην προηγουμένη
παράγραφο. Μια προτεινόμενη λύση, είναι η χρήση ειδικών περιβαλλόντων και η χρήση γλωσσών
προγραμματισμού, ειδικά σχεδιασμένων για τη διδασκαλία.
Προσαρμοσμένη γραφική διεπαφή (GUI). Τα περιβάλλοντα μπορούν να περιλαμβάνουν
συγκεκριμένες λειτουργίες με μορφή εύχρηστης διεπαφής (menus, buttons, pop-up menus κ.ά.) η
οποία να υποστηρίζουν τους μη-πεπειραμένους χρήστες του περιβάλλοντος. Στοιχεία επίσης της
προσαρμοσμένης διεπαφής μπορεί να περιλαμβάνουν τη δυνατότητα επιλογής μεγέθους,
χρωματισμού και στυλ γραμματοσειράς, τη δυνατότητα αλλαγής γλώσσας της διεπαφής, την
ενδεχόμενη δυνατότητα σηματοδότησης «καίριων» σημείων του κώδικα (code highlight) ή τη
δυνατότητα επιλογής χαρακτηριστικών της διεπαφής από το χρήστη (preferences).
«Έξυπνος εκδότης» κειμένου – για προγραμματισμό που χρησιμοποιεί κειμενικό στυλ. Ο εκδότης
μπορεί να ενσωματώνει αυτόματες λειτουργίες, όπως ο κατάλληλος χρωματισμός των
εμφωλευμένων δομών, η αυτόματη εσοχή ή η διαχείριση των μηνυμάτων του συστήματος. Σε
ορισμένα εκπαιδευτικά περιβάλλοντα, για παράδειγμα, οι βρόχοι μπορούν να παρεμαβληθούν στο
κείμενο ενός προγράμματος με τη χρήση ενός κατάλληλου πλήκτρου (button). Γενικά, η έλλειψη
ενός λειτουργικού εκδότη, προσαρμοσμένου στο εκάστοτε περιβάλλον, καθιστά δυσχερή τη χρήση
του περιβάλλοντος και δεν ενισχύει την τάση για τμηματική ανάπτυξη του κώδικα. Αντίθετα, ένας
λειτουργικός εκδότης κειμένου και δομής, μπορεί να αποτελέσει σημαντικό παράγοντα στη
διευκόλυνση των μη-πεπειραμένων χρηστών, αν περιλαμβάνει, για παράδειγμα, λειτουργίες όπως
την αντιστοίχιση παρενθέσεων και αγκυλών (brackets matching), την αυτόματη αρίθμηση γραμμών,
τη αυτόματη αναδίπλωση κειμένου, προσφέρει πρότυπα ανάπτυξης κώδικα (templates) και την
αυτόματη συμπλήρωση κώδικα (Ξυνόγαλος 2005).
Λειτουργικά μηνύματα του συστήματος προς το χρήστη. Για παράδειγμα, στα περισσότερα
συστήματα για τη γλώσσα Logo, τα μηνύματα λάθους μπορεί να είναι δυσνόητα καθώς
αναφέρονται στην πηγή του λάθους – η οποία, ενδεχομένως, βρίσκεται σε μια άλλη διαδικασία


(procedure), στην οποία εντοπίστηκε ένα run time λάθος. Επίσης, ο μικρόκοσμος
Karel++ for
Windows
αναφέρει σε αρκετές περιπτώσεις (π.χ. παράλειψη ; ή }) μηνύματα λάθους που
αναφέρουν μόνο τη γραμμή του πηγαίου κώδικα, ενώ αρκετά από αυτά είναι δυσνόητα. Και στο
προγραμματιστικό περιβάλλον
JKarelRobot όμως, τα μηνύματα λάθους δεν είναι φιλικά, καθώς
στην πλειοψηφία τους είναι πολύ συνοπτικά και δυσνόητα. Αντίθετα, το περιβάλλον
objectKarel
όπως και το περιβάλλον WIPE, αναφέρoυν φιλικά προς τον χρήστη μηνύματα λάθους, που
χρησιμοποιούν απλή γλώσσα, περιγράφουν την αιτία του λάθους και αναφέρουν την πραγματική
γραμμή που βρίσκεται αυτό. Επιπλέον, ο μικρόκοσμος
objectKarel παρέχει τη δυνατότητα
αλληλεπίδρασης με τα μηνύματα λάθους (Ξυνόγαλος 2005).
Βηματική εκτέλεση κώδικα διπλής κατευθύνσεως, επεξηγηματική οπτικοποίηση και ενσωμάτωση
αποσφαλματωτή. Πολλά εκπαιδευτικά προγραμματιστικά περιβάλλοντα ενωματώνουν ένα
σύστημα δυναμικής προσομοίωσης εκτέλεσης των προγραμμάτων και συγκεκριμένα τη δυνατότητα
της βήμα προς βήμα εκτέλεσης ενός προγράμματος, προς τα εμπρός. Επιπλέον, ορισμένοι
μικρόκσομοι παρέχουν τη δυνατότητα εκτέλεσης της τρέχουσας εντολής-μεθόδου, χωρίς να
εκτελεστούν βήμα προς βήμα οι επιμέρους εντολές αυτής (step over). Για παράδειγμα, αν η
τρέχουσα εντολή είναι η turnRight και ο χρήστης επιλέξει αυτό τον τρόπο εκτέλεσης, το ρομπότ θα
στρίψει αμέσως δεξιά και δεν θα εκτελεστούν βήμα προς βήμα οι 3 εντολές turnLeft από τις οποίες
αποτελείται. Επιπλέον, ορισμένοι μικρόκοσμοι παρέχουν τη δυνατότητα της βηματικής εκτέλεσης
ενός προγράμματος
προς τα πίσω. Η δυνατότητα αυτή, μπορεί να χρησιμοποιηθεί όταν ο
σπουδαστής κατά τη βηματική εκτέλεση ενός προγράμματος δεν αντιλαμβάνεται τη «ροή» του
προγράμματος, δηλαδή δεν καταλαβαίνει γιατί εκτελείται μια εντολή ή πως προέκυψε ένα
αποτέλεσμα. Για την αντιμετώπιση αυτού ακριβώς του προβλήματος ο Brusilovsky (1993) πρότεινε
τη χρήση της
επεξηγηματικής οπτικοποίησης, η οποία μπορεί να βοηθήσει στην πληρέστερη
κατανόηση της λειτουργίας της κάθε εντολής, αλλά και του προγράμματος, στο σύνολό του. H
δυνατότητα της εκτέλεσης προς τα πίσω είναι επίσης σημαντική και στηρίζει ουσιαστικά τους
σπουδαστές στην αποσφαλμάτωση των προγραμμάτων τους. Σημαντικά επίσης είναι και τα
χαρακτηριστικά του ίδιου του αποσφαλματωτή. Ο αποσφαλματωτής θα πρέπει να ενεργοποιείται
αυτόματα ή να καλείται με απλό τρόπο και να ενσωματώνει τη δυνατότητα επιλεκτικής
παρακολούθησης μεταβλητών, καθολικών, τοπικών ή στιγμιαίων, την αυτόματη παρακολούθηση
των μεταβολών των μεταβλητών και να επιτρέπει την παρεμβολή σημείων ελέγχου (breakpoints,
Ξυνόγαλος 2005).


Δυνατότητα ενδιάμεσης παρέμβασης. Σε ορισμένα περιβάλλοντα, ο χρήστης έχει τον έλεγχο και τη
διαχείριση ορισμένων χαρακτηριστικών του συστήματος ακόμη και κατά την ώρα της εκτέλεσης
ενός προγράμματος. Έτσι, στο περιβάλλον WIPE, ο χρήστης μπορεί να μεταβάλλει το συμβολικό
κώδικα (assembly, Εφόπουλος 2005) ενώ το περιβάλλον
objectKarel, είναι το μοναδικό από τα
περιβάλλοντα για τη διδασκαλία του αντικειμενοστραφούς προγραμματισμού που παρέχει τη
δυνατότητα επέμβασης στην κατάσταση του κόσμου, κατά την εκτέλεση ενός προγράμματος.
Χρήσιμη επίσης, μπορεί να είναι η δυνατότητα ενδιάμεσης δημιουργίας πρόσθετων δομών, όπως
αντικειμένων, κατά την ώρα εκτέλεσης του κώδικα ή της εκτέλεσης μεμονωμένων μεθόδων, στον
αντικειμενοστραφή προγραμματισμό. Η δυνατότητα αυτή ενθαρρύνει την διερευνητική μάθηση και
διευκολύνει το διδάσκοντα στην παρουσίαση της συμπεριφοράς ενός προγράμματος, για
διαφορετικές αρχικές καταστάσεις (Ξυνόγαλος 2004, Ξυνόγαλος 2005).
Η δυνατότητα δημιουργίας διαγραμμάτων ροής δεν είναι καθολικά αποδεκτή, καθώς υπάρχουν
πολλές αντιρρήσεις για το διδακτικό ρόλο τους και μια γενικότερη διαμάχη για το στυλ του
«αδόμητου» προγραμματισμού που έμμεσα ευνοεί. Όπως επισημαίνουν και οι δημιουργοί του
JKarelRobot (Buck & Stucki 2001), τα διαγράμματα ροής έχουν απορριφθεί από πολλούς και
σημαντικούς επιστήμονες ως εργαλεία σχεδίασης προγραμμάτων – και κατά κάποιον τρόπο, ήταν
στον αντίποδα του δομημένου προγραμματισμού. Για το λόγο αυτό, η συγκεκριμένη δυνατότητα,
κατά κανόνα, χρησιμοποιείται όχι για τη σχεδίαση αλλά για τη μετάφραση ενός υπάρχοντος
προγράμματος σε λογικό διάγραμμα. Μια τέτοια άσκηση, σύμφωνα με τους δημιουργούς του
JKarelRobot, μπορεί να βοηθήσει τους σπουδαστές να κατανοήσουν τις δομές ελέγχου και την
εμφώλευσή τους.
Η επιλογή μιας κατάλληλης γλώσσας προγραμματισμού. Τα παραδείγματα (paradigms)
προγραμματισμού και τα μοντέλα προγραμματιστικών περιβαλλόντων (για παράδειγμα, Logo-like
περιβάλλοντα ή η οικογένεια Karel), μπορoύν να λειτουργήσουν με διάφορες γλώσσες
προγραμματισμού. Ορισμένα προγραμματιστικά περιβάλλοντα προσφέρουν τη δυνατότητα
επιλογής μιας γλώσσας – για παράδειγμα τα Lego Mindstorm επιτρέπουν την επιλογή μιας γλώσσας
προγραμματισμού, από μια ευρεία γκάμα επιλογών (Schumacher 2001, Καγκάνη 2004, Kagani 2005,
van Lent 2004).
Eπιπλέον στήριξη και βοήθεια. Τα περιβάλλοντα μπορούν να περιλαμβάνουν και συστήματα
βοήθειας (online βοήθεια, εγχειρίδια αναφοράς, δυνατότητα άμεσης σύνδεσης με σχετικούς
ιστοχώρους ή forae, «έξυπνη» ad hoc βοήθεια εκεί όπου εντοπίζεται ένα πρόβλημα) ή ακόμη και
επιπλέον στήριξη με τη μορφή δομημένων μαθημάτων, προτάσεις ασκήσεων και σχεδίων εργασίας


(projects), τεστ και κριτήρια αξιολόγησης, πρόσθετες πηγές, tutorials ή online μαθήματα για τους
αρχαρίους (Καγκάνη 2005, Ξυνόγαλος 2005, Εφόπουλος 2005, Φωληάς 2004). Οι πρόσθετες αυτές
δυνατότητες στηρίζουν τους σπουδαστές και με άμεσο, αλλά και με έμμεσο τρόπο, καθώς
υποστηρίζουν και το διδάσκοντα στην οργάνωση των διδασκαλιών.
Καταγραφή και διαχείριση των ενεργειών των σπουδαστών. Η δυνατότητα αυτή, η οποία ωφελεί
έμμεσα τους σπουδαστές, επιτρέπει την καταγραφή των ενεργειών των σπουδαστών και την
αναπαραγωγή τους σε κατοπινό χρόνο. Σε ορισμένες περιπτώσεις (όπως τα περιβάλλοντα WIPE και
objectKarel), καταγράφονται μόνο τα σημαντικά στιγμιότυπα από τις ενέργειες των σπουδαστών,
ενώ σε άλλες γίνεται πλήρης καταγραφή (ακόμη και ήχου – για την καταγραφή των ενδεχομένων
διαλόγων σε περίπτωση εργασίας κατά ομάδες). Η δυνατότητα αυτή αποδείχτηκε ιδιαίτερα
χρήσιμη για τη διερεύνηση των δυσκολιών των σπουδαστών κατά την εισαγωγή τους στον
προγραμματισμό, καθώς και των τεχνικών επίλυσης προβλημάτων που υιοθετούν οι σπουδαστές.
Λοιπά στοιχεία. Ανάλογα με το ιδιαίτερο προγραμματιστικό παράδειγμα ή μοντέλο που
ακολουθείται, χρήσιμες για τον αρχάριο προγραμματιστή μπορεί να είναι και πρόσθετες
λειτουργίες, όπως η πλήρης οπτικοποίηση της κληρονομικότητας (διαγράμματα UML), των
αντικειμένων, των δομών των κλάσεων και των διαγραμμάτων ροής (CSD).