Η παραδοσιακή ή κλασική προσέγγιση στην διδασκαλία του Προγραμματισμού. Προβλήματα και λύσεις. Παπαδάκης Σταμάτιος stpapadakis@gmail.com Πληροφορικός Περίληψη Την τελευταία εικοσαετία έχουν γίνει, σε διεθνές επίπεδο, αρκετές έρευνες σχετικές με την διδασκαλία και την εκμάθηση του προγραμματισμού στην Δευτεροβάθμια Εκπαίδευση. Η διεθνής εμπειρία δείχνει ότι οι αρχάριοι προγραμματιστές συναντούν αρκετές δυσκολίες στην κατανόηση και εφαρμογή βασικών αρχών και κανόνων του προγραμματισμού για τις οποίες εν μέρει ευθύνεται η κλασική ή παραδοσιακή διδακτική προσέγγιση στην διδασκαλία του προγραμματισμού. Στo πλαίσιο αυτό, η επιλογή του κατάλληλου εισαγωγικού περιβάλλοντος προγραμματισμού και τα αντίστοιχα παραδείγματα είναι κρίσιμα για την αντιμετώπιση των δυσκολιών που αντιμετωπίζουν οι μαθητές αλλά και για την διαμόρφωση θετικών στάσεων ως προς το μάθημα του προγραμματισμού. Στη παρούσα εργασία επιχειρείται μια επισκόπηση της σχετικής βιβλιογραφίας σχετικά με τα προβλήματα της διδασκαλίας του προγραμματισμού στους μαθητές της Δευτεροβάθμιας εκπαίδευσης αλλά και η παράθεση των λύσεων που έχουν κατά καιρούς προταθεί για την αντιμετώπισή τους. Λέξεις κλειδιά: Κλασική ή παραδοσιακή διδακτική προσέγγιση, αρχάριοι προγραμματιστές Εισαγωγή Η εκπαίδευση του 21 ου αιώνα πρέπει να προετοιμάζει τους νέους για θέσεις εργασίας που δεν υπάρχουν ακόμη, χρησιμοποιώντας τεχνολογίες που δεν έχουν ακόμα εφευρεθεί και για ανταγωνισμό που θα είναι παγκόσμιος. Στην ψηφιακή εποχή, το σχολείο καλείται να καλλιεργεί στους μαθητές ποικίλες δεξιότητες, όπως η απόκτηση, η ανάλυση και η σύνθεση πληροφοριών, η ανάπτυξη πρωτοβουλιών, η επίλυση προβλημάτων και η δημιουργικότητα. Για παράδειγμα, αυτήν την στιγμή στις ΗΠΑ οι δέκα πιο περιζήτητες θέσεις εργασίας δεν υπήρχαν το 2004 (Χούκλη, 2015). Στο πλαίσιο αυτό, το γνωστικό αντικείμενο της πληροφορικής βρίσκεται διαρκώς στο επίκεντρο της ερευνητικής κοινότητας (Guzdial, 2004; Kelleher & Pausch, 2005; Xinogalos, Satratzemi & Malliarakis, 2015) καθώς πολυάριθμες έρευνες έχουν αποδείξει την αξία της διδασκαλίας του προγραμματισμού στην «δημιουργία» μαθητών με κριτικό και ευέλικτο πνεύμα που θα τους βοηθά να προσαρμόζονται στις διαρκώς μεταβαλλόμενες ανάγκες των επαγγελματικών συνθηκών. Η σχετική έρευνα έχει καταγράψει ως «δύσκολη» την διδασκαλία και την εκμάθηση του προγραμματισμού. Οι αρχάριοι προγραμματιστές πρέπει να μάθουν τις βασικές προγραμματιστικές έννοιες, το αυστηρό συντακτικό μιας γλώσσας και ένα προγραμματιστικό περιβάλλον το οποίο θα τους βοηθήσει στις προγραμματιστικές δραστηριότητές τους (Ξυνόγαλος & Σατρατζέμη, 2002). Η εκμάθηση του προγραμματισμού δυσχεραίνεται από το γεγονός ότι η ανάπτυξη ενός προγράμματος για την επίλυση ενός προβλήματος μέσω του υπολογιστή, απαιτεί τόσο γνώση των δυνατοτήτων του υπολογιστή, δηλαδή ένα αποτελεσματικό νοητικό μοντέλο της λειτουργίας του υπολογιστή, όσο και ικανότητες στην ανάλυση του προβλήματος, στην σχεδίαση και στην «κωδικοποίηση» της λύσης (Μαρκέλης, 2008). Τα παραπάνω χαρακτηριστικά καθιστούν τον προγραμματισμό μια ελάχιστα ελκυστική δραστηριότητα στα μάτια των νεαρών μαθητών. Τα εισαγωγικά μαθήματα προγραμματισμού είναι συνήθως απογοητευτικά για τους μαθητές έχοντας τα υψηλότερα ποσοστά εγκατάλειψης (Soloway & Spohrer, 1989; Τζιμογιάννης, 2002; Μαρκέλης, 2008). Στην παρούσα εργασία, η οποία αποτελεί μια βιβλιογραφική επισκόπηση, επιχειρείται μια προσπάθεια καταγραφής των βασικών δυσκολίων-παρανοήσεων που αντιμετωπίζουν οι αρχάριοι προγραμματιστές, -οι οποίες οφείλονται κατά κύριο λόγο στην παραδοσιακή διδακτική προσέγγιση-, καθώς και των λύσεων που έχουν διαχρονικά προταθεί για την αντιμετώπιση των δυσκολιών αυτών. Πρακτικά Εργασιών 10 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Ναύπλιο 15-17 Απριλίου 2016
2 10 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Δυσκολίες παρανοήσεις αρχάριων προγραμματιστών Αποτελεί κοινά αποδεκτή διαπίστωση ότι η οικοδόμηση γνώσεων προγραμματισμού και η ανάπτυξη προγραμματιστικών δεξιοτήτων παρουσιάζει πολλές δυσκολίες κυρίως για τους αρχάριους προγραμματιστές (Γλέζου, Μπιρμπίλης & Γρηγοριάδου, 2009). Η εκμάθηση του προγραμματισμού είναι μια δύσκολη διαδικασία καθώς είναι μια εγγενώς πολύπλοκη διανοητική δραστηριότητα (Σατρατζέμη, Δαγδιλέλης & Ευαγγελίδης, 2002) η οποία απαιτεί από τους αρχάριους προγραμματιστές αφενός την κατανόηση του προς επίλυση προβλήματος και αφετέρου της λειτουργίας της μηχανής και των βασικών αλγοριθμικών δομών (Τσώνης & Κορδάκη, 2004). Σε όλα τα επίπεδα διδασκαλίας, είτε στο Γυμνάσιο, είτε στο Λύκειο, η διδασκαλία του προγραμματισμού συνοδεύεται από τα κλασικά φαινόμενα που χαρακτηρίζουν τα «δύσκολα» μαθήματα: οι μαθητές δεν κατανοούν ακόμη και βασικές έννοιες του προγραμματισμού και δυσκολεύονται να επιλύσουν και τα πιο απλά προβλήματα (Σατρατζέμη κ.α., 2002). Σε πολλές περιπτώσεις οι αρχάριοι προγραμματιστές δε γνωρίζουν τι ακριβώς πρέπει να κάνουν προκειμένου να οδηγηθούν στη λύση του προβλήματος και δυσκολεύονται να εξηγήσουν γιατί τα αποτελέσματα εκτέλεσης ενός προγράμματος δε συμπίπτουν με τα αναμενόμενα (Γρηγοριάδου, Γόγουλου & Γουλή, 2002; Μαρκέλης, 2008). Ορισμένες δυσκολίες μοιάζουν να είναι, κατά κάποιο τρόπο, εγγενείς στον ίδιο τον προγραμματισμό, με την έννοια ότι συναντώνται κατά τρόπο συστηματικό. Επίσης, πολλές απ αυτές παρουσιάζουν εξαιρετική ανθεκτικότητα στο χρόνο και συναντώνται είτε σε μαθητές δημοτικού είτε σε σπουδαστές και φοιτητές (Εφόπουλος, Ευαγγελίδης, Δαγδιλέλης & Κλεφτοδήμος, 2005). Η προσθήκη του όρου «δυσκολία» στην οικοδόμηση γνώσεων προγραμματισμού και στην ανάπτυξη προγραμματιστικών δεξιοτήτων σημαίνει ότι οι αρχάριοι προγραμματιστές, σε ένα πολύ σημαντικό ποσοστό, δεν κατανοούν ακόμη και μικρά προγράμματα και δε μπορούν να επιλύσουν απλά προγραμματιστικά προβλήματα (Εφόπουλος, Δαγδιλέλης & Ευαγγελίδης, 2004). Οι μαθητές εμφανίζουν σοβαρές αδυναμίες στην κατανόηση και στην εφαρμογή βασικών προγραμματιστικών εργαλείων για τη σύνταξη αλγορίθμων και την επίλυση απλών προβλημάτων (Τζιμογιάννης & Γεωργίου, 1998). Έρευνες σχετικά με τη διδασκαλία του προγραμματισμού οι οποίες έχουν γίνει και αναφέρονται στη διεθνή βιβλιογραφία (Soloway & Spohrer, 1989; Robins, Rountree & Rountree, 2003; Guzdial, 2004; Kelleher & Pausch, 2005) έχουν δείξει ότι οι αρχάριοι προγραμματιστές αντιμετωπίζουν προβλήματα κατά την εκμάθηση του προγραμματισμού σε έννοιες και δομές όπως οι μεταβλητές, στην δομή επανάληψης, στην δομή επιλογής με τον έλεγχο των συνθηκών και τις λογικές εκφράσεις. Και στον Ελλαδικό χώρο, τα τελευταία χρόνια έχουν αναφερθεί ενδιαφέροντα αποτελέσματα σχετικά με τις δυσκολίες που αντιμετωπίζουν οι μαθητές στην διδασκαλία του προγραμματισμού (Μαραγκός & Γρηγοριάδου, 2004; Σατρατζέμη, Ξυνόγαλος & Δαγδιλέλης, 2006). Ο Τζιμογιάννης (2003) αναφέρεται σε πορίσματα ερευνών τα οποία αφορούν σε παρανοήσεις μαθητών της Δευτεροβάθμιας Εκπαίδευσης για βασικές έννοιες του προγραμματισμού, σε δυσκολίες εφαρμογής των δομών επιλογής για την επίλυση απλών προβλημάτων, σε διδακτικές προσεγγίσεις και μεθοδολογίες. Οι Χαρίσης & Μικρόπουλος (2008) αναφέρουν δυσκολίες στον προγραμματισμό, με χαρακτηριστικά παραδείγματα αυτές που σχετίζονται με τις δομές επιλογής και επανάληψης. Οι δυσκολίες για τους αρχάριους μεγεθύνονται στην περίπτωση ανάπτυξης προγραμμάτων με χρήση αντικειμενοστραφών γλωσσών προγραμματισμού. Η δυσκολία οφείλεται στο γεγονός ότι η αντικειμενοστραφής σχεδίαση είναι πιο αφηρημένη από την τεχνική του δομημένου προγραμματισμού, απαιτεί νέους τρόπους σκέψης και είναι πιο απαιτητική όσον αφορά τις διαδικασίες της ανάλυσης και σχεδίασης. Ως εκ τούτου υπάρχουν περιπτώσεις που παρόλο που οι χρήστες αναπτύσσουν προγράμματα αντικειμενοστραφούς σχεδίασης δεν έχουν κατανοήσει και διασαφηνίσει τις έννοιες κλάση, αντικείμενο, ιδιότητα, στιγμιότυπο και μέθοδος (Μαυροχαλυβίδης, Μακρής & Μπέκος, 2012). Σε μια προσπάθεια κατηγοριοποίησης των μαθησιακών δυσκολιών που αντιμετωπίζουν οι αρχάριοι προγραμματιστές ο DuBοulay (1989 οπ. αναφ. στο Ξυνόγαλος, 2003) τις ταξινομεί στις ακόλουθες κατηγορίες: α) προσανατολισμός (orientation), β) νοητή μηχανή (notional machine), γ) κανόνες της γλώσσας προγραμματισμού (notation), δ) εκμάθηση των καθιερωμένων δομών (structures), και ε) επίλυση προβλήματος (pragmatics). Αντίστοιχα οι Τσώνης & Κορδάκη (2004)
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Ρόλος και Εφαρμογές 3 αναφέρουν ότι ειδικά για τους αρχάριους οι δυσκολίες σχετίζονται με την έλλειψη ύπαρξης ενός συμπαγούς και πλήρους νοητικού σχήματος για: α) την επίλυση προβλήματος, β) τη λειτουργία της μηχανής, γ) τον καθορισμό λύσης σε κάποια μορφή, δ) τον καθορισμό λύσης συμβατής με τον υπολογιστή, ε) τη μετάφραση της λύσης σε γλώσσα προγραμματισμού, και στ) τον έλεγχο και την εκσφαλμάτωση (debugging) του προγράμματος. Η παραδοσιακή διδακτική προσέγγιση στην διδασκαλία του προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση Η επίλυση προβλημάτων και η ανάπτυξη πνευματικών δεξιοτήτων και κριτικής σκέψης αποτελεί τον κύριο στόχο της διδασκαλίας των γλωσσών προγραμματισμού (Γεωργίου & Τζιμογιάννης, 1998). Οι αντικειμενικοί στόχοι που τίθενται συνήθως, για το μάθημα του εισαγωγικού προγραμματισμού περιλαμβάνουν τόσο την απόκτηση γνώσεων όσο και δεξιοτήτων. Οι γνώσεις σχετίζονται με την κατανόηση προβλήματος, τον σχεδιασμό αλγορίθμων, τα είδη-τεχνικές-περιβάλλοντα προγραμματισμού, τις δομές δεδομένων, τις δομές αλγορίθμων και την απόκτηση δεξιοτήτων σχετικά με την υλοποίηση-έλεγχο-εκσφαλμάτωση-τεκμηρίωση-αξιολόγηση ενός προγράμματος. Ειδικότερα η εκμάθηση δεξιοτήτων περιλαμβάνει εξοικείωση με τις βασικές δομές του δομημένου προγραμματισμού και την υλοποίηση προγραμμάτων σε εργαστήριο (Orfanakis & Papadakis, 2014). Για να αποκτήσουν οι μαθητές τις δεξιότητες αυτές, διδάσκονται το συντακτικό (syntax) και την σημασιολογία (semantics) μιας γλώσσας προγραμματισμού και δημιουργούν με την βοήθεια του εκπαιδευτικού Πληροφορικής μικρά και απλά προγράμματα (Καγκάνη, Δαγδιλέλης, Σατρατζέμη & Ευαγγελίδης, 2005). Ένας μαθητής-αρχάριος προγραμματιστής κατά την διάρκεια συγγραφής ενός προγράμματος θα πρέπει (Εφόπουλος κ.α., 2004): να επινοεί διαδικασίες που επιλύουν κλάσεις προβλημάτων (το ουσιαστικό γνώρισμα των αλγοριθμικών λύσεων), να προσαρμόζει τις διαδικασίες αυτές σε ένα συγκεκριμένο (αφηρημένο) μοντέλο επεξεργασίας (κατασκευή αλγορίθμου) και να τις κωδικοποιεί με συγκεκριμένο τρόπο (γλώσσα προγραμματισμού). Επιπλέον ο αρχάριος προγραμματιστής οφείλει ακόμη να κατανοήσει τον τρόπο επικοινωνίας του χρήστη με την μηχανή (την διεπιφάνεια χρήστη), μια διαδικασία η οποία καθορίζεται από συγκεκριμένους κανόνες και παραδοχές. Από την απλή παράθεση των επιθυμητών γνώσεων όσο και δεξιοτήτων τις οποίες απαιτεί ένα εισαγωγικό μάθημα προγραμματισμού εύκολα αντιλαμβάνεται κανείς ότι η διδασκαλία και εκμάθηση του προγραμματισμού είναι ιδιαίτερα δύσκολη για τους μαθητές της Δευτεροβάθμιας Εκπαίδευσης. Επιπρόσθετα, όπως προκύπτει από την σχετική βιβλιογραφία, ένας σημαντικός παράγοντας στον οποίο οφείλονται οι δυσκολίες κατά την εκμάθηση του προγραμματισμού είναι η παραδοσιακή ή η κλασσική διδακτική προσέγγιση η οποία ακολουθείται στη διδασκαλία των μαθημάτων προγραμματισμού (Ξυνόγαλος, 2002). Μια τέτοια προσέγγιση για τη διδασκαλία του προγραμματισμού αποδεικνύεται αναποτελεσματική, όπως αυτή τεκμηριώνεται εκτενώς στη σχετική αρθρογραφία καθώς θέτει μια σειρά από εμπόδια στους αρχάριους προγραμματιστές (Σατρατζέμη κ.α., 2002; Μάργαρης & Παπαστεργίου, 2008; Γλέζου κ.α., 2009; Κοσμοπούλου, Φλώρου, Μπαγιάτη & Χούστης, 2010). Οι έρευνες που έχουν πραγματοποιηθεί στο παρελθόν δείχνουν ότι η παραδοσιακή μέθοδος διδασκαλίας δεν διευκολύνει την εκμάθηση του προγραμματισμού αλλά αντίθετα συμβάλλει στην δημιουργία αρνητικής στάσης των μαθητών απέναντι στην διδασκαλία του προγραμματισμού (Μαρκέλης, 2008; Μπόκος, 2014). Στην παραδοσιακή μέθοδο διδασκαλίας δίδεται περισσότερη βαρύτητα στην εκμάθηση της ίδιας της γλώσσας προγραμματισμού η οποία απαιτεί αυστηρή πειθαρχία στο συντακτικό και την σημασιολογία της, παρά στην μεθοδολογία και στην ανάπτυξη ικανοτήτων για την επίλυση προβλημάτων (Κυριακού & Φαχαντίδης, 2012). Επιπρόσθετα οι γλώσσες γενικού σκοπού που χρησιμοποιούνται στην διδασκαλία διαθέτουν ένα μεγάλο πλήθος εντολών και είναι αρκετά πολύπλοκες (Ξυνόγαλος, 2002). Οι αρχάριοι προγραμματιστές, ερχόμενοι σε πρώτη επαφή με ένα προγραμματιστικό περιβάλλον αντιμετωπίζουν μια σχετικά πολύπλοκη διεπαφή και μια πληθώρα χαρακτηριστικών, λειτουργιών και εργαλείων ενσωματωμένων στο Πρακτικά Εργασιών 10 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Ναύπλιο 15-17 Απριλίου 2016
4 10 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής περιβάλλον που αρχικά δεν χρειάζονται. Συχνά τα πρόσθετα χαρακτηριστικά συμβάλουν μόνο στην γνωστική επιβάρυνση, την σύγχυση και την αποθάρρυνση των εκπαιδευομένων (Γλέζου κ.α., 2009). Όπως αναφέρει ο Ξυνόγαλος (2002) με τον όρο παραδοσιακή ή κλασική μέθοδο διδασκαλίας εννοούμε μια διδακτική προσέγγιση η οποία συνίσταται: στην χρήση μιας γλώσσας γενικού σκοπού (Pascal, VisualBasic, C, C++, κ.ά.), ενός επαγγελματικού περιβάλλοντος προγραμματισμού για την γλώσσα αυτή, στην επίλυση ενός συνόλου προβλημάτων επεξεργασίας αριθμών και συμβόλων, αντίστοιχων υπολογισμών ή/και την εμφάνιση κάποιων μηνυμάτων. Η πιο διαδεδομένη μέθοδος εισαγωγής στον προγραμματισμό είναι η σταδιακή παρουσίαση των δομών μιας γλώσσας προγραμματισμού γενικού σκοπού και η επίλυση προβλημάτων αυξανόμενης δυσκολίας με την χρήση αυτών των δομών (Μάργαρης & Παπαστεργίου, 2008; Κοσμοπούλου κ.α., 2010). Οι μαθητές μέσω της προσέγγισης αυτής καταλήγουν να διδάσκονται κυρίως δεξιότητες μιας συγκεκριμένης γλώσσας προγραμματισμού και όχι την μεθοδολογία για την επίλυση προβλημάτων. (Χαρίσης & Μικρόπουλος, 2008). Διδάσκονται το συντακτικό (syntax) και την σημασιολογία (semantics) μιας γλώσσας και δημιουργούν με την βοήθεια του εκπαιδευτικού μικρά και απλά προγράμματα. Μέσω της μεθόδου αυτής, επικεντρώνουν την προσοχή τους περισσότερο στην εκμάθηση της ίδιας της γλώσσας και λιγότερο στην ανάπτυξη ικανότητας επίλυσης προβλημάτων που τους φαίνονται πραγματικά χρήσιμα και ενδιαφέροντα (Μαρκέλης, 2008; Μπόκος, 2014). Ο λόγος σύμφωνα με τους Μάργαρη & Παπαστεργίου (2008) για τον οποίο η κλασική διδακτική προσέγγιση αυτή κρίνεται ως αναποτελεσματική, είναι ότι θέτει μια σειρά από γνωστικά εμπόδια στους αρχάριους προγραμματιστές. Αναλυτικότερα, οι λόγοι σύμφωνα με τους ίδιους ερευνητές είναι οι ακόλουθοι: α) απαιτείται από το μαθητή να εξοικειωθεί ταυτόχρονα τόσο με την αυστηρή σύνταξη και την σημασιολογία της ίδιας της γλώσσας όσο και με τις βασικές αρχές του προγραμματισμού, β) η διδασκαλία και χρήση μιας πλήρους γλώσσας προγραμματισμού στο σχολείο μπορεί να αποβεί πολύ χρονοβόρα, γ) παρέχεται συνήθως περιορισμένη υποστήριξη όσον αφορά στην κατανόηση των βασικών εντολών και δομών ελέγχου της γλώσσας αφού η διαδικασία της εκτέλεσης του προγράμματος παραμένει κρυμμένη από τον μαθητή, ενώ η έλλειψη οπτικής ανάδρασης εμποδίζει την κατανόηση της σημασιολογίας της γλώσσας, δ) οι μαθητές δύσκολα μπορούν να εντοπίσουν και να διορθώσουν λάθη στα προγράμματά τους, ε) τα πρώτα προβλήματα που τίθενται στους μαθητές αφορούν κατά κανόνα στην επεξεργασία αριθμών ή συμβόλων και αποτυγχάνουν να κινήσουν το ενδιαφέρον των μαθητών, ενώ η ανάπτυξη πιο ελκυστικών εφαρμογών απαιτεί την εκμάθηση ενός μεγάλου υποσυνόλου της γλώσσας. Σχετικά με την παροχή κινήτρων, αν η συγγραφή ενός προγράμματος που εμφάνιζε στην οθόνη την φράση Hello world κινούσε το ενδιαφέρον των μαθητών παλαιότερα, δεν συμβαίνει το ίδιο με την σημερινή «γενιά του Nintendo» που έλκεται από τα σύγχρονα πολυμεσικά μαθησιακά περιβάλλοντα (Μάργαρης & Παπαστεργίου, 2008) ή τις έξυπνες φορητές συσκευές (Papadakis, Kalogiannakis, Orfanakis & Zaranis, 2014). Αντίστοιχα, για την περίπτωση της διδασκαλίας του αντικειμενοστραφούς προγραμματισμού, σύμφωνα με πληθώρα διεθνών ερευνών οι παρανοήσεις και οι συνακόλουθες δυσκολίες που αντιμετωπίζουν οι αρχάριοι στην κατανόηση των βασικών αντικειμενοστραφών εννοιών είναι απόρροια μιας διδασκαλίας που επικεντρώνεται στην παρουσίαση των βασικών προγραμματιστικών δομών (δομή ακολουθίας, επιλογής και επανάληψης) (Ξυνόγαλος, 2012) και όχι στην ανάδειξη των αρχών της συγκεκριμένης τεχνικής προγραμματισμού (Σατρατζέμη & Ξυνόγαλος, 2010). Η γλώσσα προγραμματισμού και το επαγγελματικό προγραμματιστικό περιβάλλον Έρευνες σχετικά με την διδασκαλία του προγραμματισμού έδειξαν ότι δύο είναι οι βασικότεροι παράγοντες δυσκολιών των αρχάριων προγραμματιστών: η γλώσσα προγραμματισμού και το επαγγελματικό προγραμματιστικό περιβάλλον (Σατρατζέμη κ.α., 2006). Η εκπαίδευση των νέων προγραμματιστών γίνεται συνήθως αξιοποιώντας τα εμπορικά επαγγελματικά περιβάλλοντα ανάπτυξης εφαρμογών ή άλλα δωρεάν διαθέσιμα που τους μοιάζουν αρκετά. Τα περιβάλλοντα αυτά, παρά την εκτεταμένη τεκμηρίωση, απευθύνονται στον επαγγελματία προγραμματιστή και δεν είναι κατά ανάγκη κατάλληλα για το μαθητευόμενο προγραμματιστή, πόσο δε μάλλον για χρήση στην
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Ρόλος και Εφαρμογές 5 Δευτεροβάθμια και Πρωτοβάθμια εκπαίδευση (Φεσάκης & Δημητρακοπούλου, 2006). Οι Ξυνόγαλος, Σατρατζέμη & Δαγδιλέλης (2000) επισημαίνουν ότι η ακαταλληλότητα των περιβαλλόντων αυτών οφείλεται σε μια σειρά από παράγοντες οι κυριότεροι εκ των οποίων είναι: α) οι γλώσσες προγραμματισμού γενικού σκοπού διαθέτουν κατά κανόνα ένα μεγάλο ρεπερτόριο εντολών και είναι πολύπλοκες, β) η προσοχή των μαθητών επικεντρώνεται στην εκμάθηση της σύνταξης της γλώσσας και όχι στην ανάπτυξη ικανοτήτων επίλυσης προβλημάτων, γ) δεν υπάρχει, κατά κανόνα, επαρκής στήριξη του μαθητή στην κατανόηση των βασικών ενεργειών και δομών ελέγχου, αφού το περιβάλλον προγραμματισμού συνήθως δεν παρέχει δυνατότητες οπτικοποίησης, δ) οι εμπορικοί μεταγλωττιστές δεν ικανοποιούν τις ανάγκες των αρχάριων προγραμματιστών, ε) η διανοητική πολυπλοκότητα που απαιτεί η εκφορά ενός αλγορίθμου σε μια γλώσσα προγραμματισμού είναι μεγάλη, λόγω της «φύσης» της γλώσσας, και στ) η επίλυση ενδιαφερόντων προβλημάτων απαιτεί την εκμάθηση ενός μεγάλου υποσυνόλου της γλώσσας και την ανάπτυξη αρκετά μεγάλων προγραμμάτων, απαιτεί δηλαδή την επικέντρωση της προσοχής στην εκμάθηση της γλώσσας. Επιπρόσθετα οι Εφόπουλος, Δαγδιλέλης & Ευαγγελίδης (2005) επισημαίνουν ότι ακόμη και στην περίπτωση κατά την οποία μόνο ένα μικρό τμήμα των γλωσσών αυτών, διδάσκεται στους αρχάριους, αγνοώντας τα δυσνόητα και ισχυρά τους χαρακτηριστικά προκύπτουν αρκετά προβλήματα όπως: α) το συνοδευτικό υποστηρικτικό υλικό της γλώσσας (εγχειρίδια χρήσης, βιβλία, βοήθεια on-line) δεν είναι προσαρμοσμένο σε αρχάριους χρήστες, και β) ο μεταγλωττιστής της γλώσσας δεν περιορίζεται στο συγκεκριμένο υποσύνολο αλλά παράγει μηνύματα που αναφέρονται στο σύνολο της γλώσσας. Η ερευνητική κοινότητα για την αντιμετώπιση των δυσκολιών αυτών έχει διαχρονικά προτείνει αρκετές εναλλακτικές λύσεις και προσεγγίσεις. Οι προσεγγίσεις περιλαμβάνουν υπολογιστικά μοντέλα, που προσφέρουν άμεση ανάδραση στους προγραμματιστές και ενισχύουν τους βασικούς στόχους της διδασκαλίας του προγραμματισμού όπως την τεκμηρίωση και ανακάλυψη, τη μάθηση νέων συστημάτων συμβόλων, την επικοινωνία μεταξύ μηχανών και την μάθηση αλγορίθμων (Στούμπου, Δέτσικας & Αλιμήσης, 2013). Άλλες λύσεις περιλαμβάνουν την χρήση μικρόκοσμων και μικρογλωσσών, την βελτίωση των διαγνωστικών δυνατοτήτων των μεταγλωττιστών, τα κατανοητά μηνύματα λάθους, την χρήση εικονικών γλωσσών προγραμματισμού και συστημάτων δυναμικής προσομοίωσης εκτέλεσης προγραμμάτων, την χρήση τεχνικών δυναμικής προσομοίωσης εκτέλεσης αλγορίθμων, την δυναμική ηχητική προσομοίωση της εκτέλεσης προγραμμάτων (Ξυνόγαλος κ.α., 2000). Επίσης, προτείνεται η χρήση λογισμικών με οπτικοποίηση των τιμών των μεταβλητών και των δομών προγραμματισμού, η διδασκαλία αλγορίθμων σε περιβάλλον συνεργατικής μάθησης με εποπτικό μέσο διδασκαλίας τον υπολογιστή, η χρήση λογισμικού παρουσιάσεων και οι διαγραμματικές αναπαραστάσεις επαναληπτικών δομών (Χαρίσης & Μικρόπουλος, 2008). Μικρογλώσσες -Μικρόκοσμοι Η έννοια του προγραμματιστικού μικρόκοσμου μετρά ήδη τέσσερις δεκαετίες (Γλέζου κ.α., 2009) και τα τελευταία χρόνια η χρήση τους έχει προταθεί από αρκετούς ερευνητές για την αντιμετώπιση των προβλημάτων που παρουσιάζονται λόγω της κλασικής διδακτικής προσέγγισης (Ξυνόγαλος & Σατρατζέμη, 2004). Τα συγκεκριμένα μαθησιακά μίνι-περιβάλλοντα είναι εκπαιδευτικά περιβάλλοντα κατάλληλα σχεδιασμένα ώστε να καθοδηγούν πολύ προσεκτικά το χρήστη και να του προσφέρουν μια εκπαιδευτική εμπειρία. Συγκεκριμένα, οι διδακτικοί μικρόκοσμοι προσφέρουν μια νέα προοπτική στην εκπαιδευτική διαδικασία, καθώς μπορούν να χρησιμοποιηθούν όχι μόνο ως μέσο διδασκαλίας εισαγωγικών εννοιών του προγραμματισμού αλλά και ως μέσο αξιολόγησης των αντιλήψεων των μαθητών (Κοσμοπούλου κ.α., 2010). Ένας μικρόκοσμος συνιστά ένα «εκκολαπτήριο» γνώσης, αφού λόγω της ιδιότητάς του να προσομοιώνει τον πραγματικό κόσμο προσφέρει στο μαθητή την δυνατότητα να εξερευνά ένα γνωστικό αντικείμενο εκ των έσω με ζητούμενο την ανάπτυξη υψηλού επιπέδου γνωστικών δεξιοτήτων που μεταφέρονται σε ποικίλες καταστάσεις (Γλέζου κ.α., 2009). Στους περισσότερους από αυτούς τους προγραμματιστικούς μικρόκοσμους υφίσταται κάποιο είδος πρωταγωνιστή, δηλαδή ένα είδος οντότητας με προγραμματιζόμενη συμπεριφορά. Οι μαθητές μαθαίνουν τις βασικές αρχές του προγραμματισμού καθοδηγώντας τον πρωταγωνιστή στην εκπλήρωση διαφόρων έργων (Σατρατζέμη κ.α., 2006). Η βασική ιδέα της προσέγγισης των μίνι-γλωσσών στηρίζεται στην σχεδίαση μιας μικρής και απλής Πρακτικά Εργασιών 10 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Ναύπλιο 15-17 Απριλίου 2016
6 10 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής γλώσσας προκειμένου να υποστηριχθούν τα πρώτα βήματα στην εκμάθηση του προγραμματισμού που έχουν ως σκοπό την μείωση του όγκου των γνώσεων που πρέπει να αποκτήσει ο αρχάριος προγραμματιστής. Ανεξάρτητα από το επίπεδο διείσδυσης στον προγραμματισμό και ανεξάρτητα από την ηλικία του μαθητή, η μελέτη μιας μίνι-γλώσσας δίνει θετικά αποτελέσματα στην ανάπτυξη της αλγοριθμικής σκέψης και δεξιοτήτων επίλυσης προβλημάτων (Εφόπουλος κ.α., 2005; Γλέζου κ.α., 2009; Papadakis et al., 2014). Σύμφωνα με τους Ξυνόγαλο & Σατρατζέμη (2004) οι προγραμματιστικοί μικρόκοσμοι, οι οποίοι σχεδιάζονται και αναπτύσσονται για εκπαιδευτικούς καθαρά σκοπούς, προσπαθούν να αντιμετωπίσουν τα προβλήματα της κλασικής διδακτικής προσέγγισης καθώς: α) βασίζονται συνήθως σε υπαρκτά φυσικά μοντέλα και χρησιμοποιούν μια εκπαιδευτική γλώσσα προγραμματισμού. Σε ορισμένες περιπτώσεις η γλώσσα αυτή μπορεί να αποτελεί υποσύνολο μιας συμβατικής γλώσσας ή/και να παρουσιάζει αρκετές ομοιότητες με αυτή, β) είναι ολοκληρωμένα προγραμματιστικά περιβάλλοντα που χαρακτηρίζονται από ευχρηστία και ενσωματώνουν τεχνολογίες για τη στήριξη των σπουδαστών. Για παράδειγμα, η πλειοψηφία των προγραμματιστικών μικρόκοσμων ενσωματώνει δυνατότητες οπτικοποίησης και, γ) στα πλαίσια ενός μικρόκοσμου επιλύονται, συνήθως, προβλήματα που βασίζονται σε εμπειρίες της καθημερινής ζωής. Αξιοσημείωτη είναι η επιτυχία της Logo και των γραφικών της χελώνας η οποία έδωσε ώθηση στην ανάπτυξη της προσέγγισης των μίνι-γλωσσών για τη διδασκαλία του προγραμματισμού (Γλέζου κ.α., 2009). Ο κύριος εκπρόσωπος της κατηγορίας αυτής είναι βέβαια η Logo και το ρομπότ Karel, αλλά και η StarLogo, τα ρομπότ Legologo και πιο πρόσφατα τα Mindstorms (Εφόπουλος κ.α., 2005). Ωστόσο δεν απουσιάζουν και οι ενστάσεις από την χρήση των περιβαλλόντων αυτών. Οι ενστάσεις εστιάζονται στο γεγονός ότι τα πολυάριθμα Logo-like περιβάλλοντα είναι όμοια, ενώ σε πολλές περιπτώσεις, χαρακτηριστικά οπτικοποίησης ή και της διεπαφής επαναλαμβάνονται σχεδόν στερεότυπα σε κάθε νέο περιβάλλον που δημιουργείται, δίχως να είναι πάντοτε βέβαια η διδακτική τους αποτελεσματικότητα (Εφόπουλος, κ.α., 2005). Ακόμη και για την διδασκαλία του αντικειμενοστραφούς προγραμματισμού έχουν προταθεί μικρόκοσμοι οι οποίοι δίνουν μεγαλύτερη έμφαση στις εκπαιδευτικές ανάγκες των αρχαρίων παρά στις επαγγελματικές ανάγκες των προγραμματιστών (Σατρατζέμη κ.α., 2006). Ένας δημοφιλής μικρόκοσμος είναι o Karel με πρωταγωνιστή το ομώνυμο ρομπότ που εκτελεί διάφορες αποστολές σε ένα περιορισμένο κόσμο βάσει προγραμμάτων που συντάσσουν οι μαθητές. Στο ρομπότ Karel και το μεταγενέστερο ρομπότ Karel++ βασίστηκαν αρκετοί μικρόκοσμοι, όπως οι: JKarel Robot, objectkarel και Jeroo (Ξυνόγαλος, 2002; Ξυνόγαλος & Σατρατζέμη, 2004; Θεοδωράκη & Ξυνόγαλος, 2013). Όλοι τους αποτελούν ολοκληρωμένα προγραμματιστικά περιβάλλοντα παρέχοντας την δυνατότητα της βήμα προς βήμα εκτέλεσης (Ξυνόγαλος & Σατρατζέμη, 2004). Τα εκπαιδευτικά περιβάλλοντα προγραμματισμού Εκτός της χρήσης μικροκόσμων, τα τελευταία χρόνια έχει αναπτυχθεί πληθώρα εκπαιδευτικών γλωσσών προγραμματισμού και προγραμματιστικών περιβαλλόντων προκειμένου να υποστηριχθεί η διδασκαλία του προγραμματισμού αλλά και να βοηθηθούν οι αρχάριοι στην εκμάθησή του. Τα εκπαιδευτικά περιβάλλοντα προγραμματισμού έχουν παρόμοιους στόχους με τους μικρόκοσμους, αλλά και μια ουσιαστική διαφορά. Ενώ στους μικρόκοσμους υπάρχουν ένας ή περισσότεροι πρωταγωνιστές στους οποίους ανατίθενται διάφορες αποστολές, σε ορισμένα εκπαιδευτικά περιβάλλοντα προγραμματισμού μπορούν να υλοποιηθούν διαφορετικά σενάρια με διαφορετικούς κάθε φορά πρωταγωνιστές. Επιπλέον, σε αρκετά περιβάλλοντα προγραμματισμού χρησιμοποιούνται συμβατικές γλώσσες προγραμματισμού, όπως η Java, και όχι εκπαιδευτικές. Δημοφιλή περιβάλλοντα της κατηγορίας αυτής με έντονο το στοιχείο του παιχνιδιού είναι το Scratch που χρησιμοποιείται για τη διδασκαλία βασικών αρχών του προγραμματισμού σε μικρές ηλικίες και το Greenfoot που μπορεί να χρησιμοποιηθεί για τη διδασκαλία του αντικειμενοστραφούς προγραμματισμού σε Java ακόμα και σε φοιτητές. Τόσο το Scratch, το Greenfoot, η Alice και άλλα, είναι εκπαιδευτικά περιβάλλοντα στα οποίο μπορεί κανείς να δημιουργήσει διάφορα σενάρια παιχνιδιών χρησιμοποιώντας αντικείμενα (όπως άνθρωποι, ζώα, διαστημόπλοια κ.α.) και να τους δώσει ζωή και κίνηση μέσα από ένα αντικειμενοστρεφές πρόγραμμα (Θεοδωράκη & Ξυνόγαλος, 2013). Ωστόσο ένα μειονέκτημα χρήσης
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Ρόλος και Εφαρμογές 7 των περιβαλλόντων αυτών είναι ότι το ιδιαίτερο γραφικό περιβάλλον τους μπορεί να λειτουργήσει αντιπαραγωγικά όταν αυτά χρησιμοποιούνται όχι ως εργαλείο διδασκαλίας αλλά ως εργαλείο δημιουργίας animation (Παπαδάκης & Ορφανάκης, 2015). Η χρήση ενός εκπαιδευτικού προγραμματιστικού περιβάλλοντος για την διδασκαλία του αντικειμενοστραφούς προγραμματισμού είναι ιδιαίτερα σημαντική τοποθετώντας την εκμάθησή του στο ίδιο επίπεδο δυσκολίας σε σχέση με τον δομημένο προγραμματισμό (Ξυνόγαλος & Σατρατζέμη, 2004; Σατρατζέμη & Ξυνόγαλος, 2010; Ξυνόγαλος, 2012). Αναμφίβολα η επιλογή του κατάλληλου περιβάλλοντος αποτελεί κρίσιμο παράγοντα για την επιτυχία ενός εισαγωγικού μαθήματος στην αντικειμενοστρέφεια (Σατρατζέμη & Ξυνόγαλος, 2010). Στο σχήμα 1 παρουσιάζεται μια κατηγοριοποίηση των περιβαλλόντων εισαγωγής στον προγραμματισμό (Φεσάκης, & Δημητρακοπούλου, 2006). Σχήμα 1. Κατηγοριοποίηση των περιβαλλόντων εισαγωγής στον προγραμματισμό Χρήση προβλημάτων επεξεργασίας αριθμών και συμβόλων Συνήθη σχόλια από την μεριά των μαθητών είναι ότι ο Προγραμματισμός είναι μία «βαρετή και δύσκολη» διαδικασία. Αυτή η αντίδραση των μαθητών υποδεικνύει ότι ένας παράγοντας που εμποδίζει την μάθηση στο συγκεκριμένο αντικείμενο είναι το κίνητρο. Έτσι, ένας μαθητής που δεν έχει κίνητρο αντιμετωπίζει τον προγραμματισμό δύσκολο και βαρετό. Οι μαθητές που παρακινούνται εσωτερικά καταβάλλουν μεγαλύτερη προσπάθεια στο να μάθουν, νιώθουν την ανάγκη να μάθουν και χρησιμοποιούν αυτή την μάθηση περισσότερο στο μέλλον (Μαραγκός & Γρηγοριάδου, 2008). Η σημασία της εμπλοκής των μαθητών σε ευχάριστες και με νόημα για αυτούς δραστηριότητες, έχει αναγνωριστεί από αρκετούς ερευνητές, ως αποφασιστικής σημασίας για την διδασκαλία όλων των γνωστικών αντικειμένων καθώς επίσης και για την μάθηση εννοιών που αφορούν στην Πληροφορική και γενικότερα στις επιστήμες των υπολογιστών (Κορδάκη, Σικινιότης & Κάπρος, 2010). Παρόλες τις σχετικές διαφοροποιήσεις, η διδασκαλία του προγραμματισμού στην Δευτεροβάθμια Εκπαίδευση, παρουσιάζει διαχρονικά ορισμένα κοινά χαρακτηριστικά. Κατά κανόνα, τα προβλήματα που προτείνονται είναι μικρού μεγέθους, αναφέρονται στην επεξεργασία αριθμών και συμβόλων και συνήθως επιλύονται με την χρήση εντολών εισόδου/εξόδου, εντολών απόδοσης τιμής και πιθανόν με εντολές ελέγχου (Σατρατζέμη κ.α., 2002). Γίνεται σαφές ότι πέρα από τα προγραμματιστικά περιβάλλοντα που χρησιμοποιούνται στην Δευτεροβάθμια Εκπαίδευση, θα πρέπει να ενσωματωθούν και λιγότερο αφηρημένα εκπαιδευτικά εργαλεία και δραστηριότητες ώστε να εισαγάγουν τους μαθητές στις έννοιες του προγραμματισμού (Στούμπου, Δέτσικας & Αλιμήσης, 2013). Συχνά, τα προβλήματα που καλούνται να λύσουν οι μαθητές δεν προκαλούν το ενδιαφέρον τους, μιας και αφορούν την επεξεργασία αριθμών και συμβόλων (Ξυνόγαλος, 2003). Στα εισαγωγικά μαθήματα στον προγραμματισμό, τα προβλήματα επιλέγονται συχνά από τον χώρο των Μαθηματικών (Φεσάκης & Δημητρακοπούλου, 2006). Όταν οι μαθητές καλούνται να δημιουργήσουν τα πρώτα τους προγράμματα, αισθάνονται ότι πρέπει να καταβάλλουν μεγάλη προσπάθεια για να υλοποιήσουν κάτι το οποίο δεν τους φαίνεται χρήσιμο (Μαρκέλης, 2008). Από την μελέτη της σχετικής βιβλιογραφίας (Robins et al., 2003) προκύπτει ότι υπάρχουν κριτήρια Πρακτικά Εργασιών 10 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Ναύπλιο 15-17 Απριλίου 2016
8 10 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής σχετικά με την δομή μιας γλώσσας προγραμματισμού, τα οποία όταν δεν πληρούνται έχουν σαν αποτέλεσμα οι μαθητές να αντιμετωπίζουν δυσκολίες στον προγραμματισμό. Οι μαθητές χωρίς πρότερη εμπειρία στον προγραμματισμό δεν μπορούν να χρησιμοποιήσουν δομικά εργαλεία της γλώσσας, όταν αυτά δεν βρίσκονται σε αντιστοιχία με τις καθημερινές τους εμπειρίες. Χαρακτηριστικό παράδειγμα αποτελούν προγράμματα που απαιτούν τον χειρισμό πολλών αφηρημένων οντοτήτων που έχουν μικρή σχέση με τα στοιχεία της καθημερινής ζωής του μαθητή (π.χ. λογικά δεδομένα, εμφωλευμένες δομές επιλογής, βρόχους, μετρητές, αρχικοποιήσεις μεταβλητών, δείκτες πινάκων, χρήση αναδρομής κ.α.) (Μπόκος, 2014). Αναμφίβολα βασικός στόχος της διδασκαλίας της Πληροφορικής είναι η οικοδόμηση γνώσεων που αφορούν σε διαχρονικές έννοιες και διαδικασίες καθώς και η καλλιέργεια διαχρονικών τεχνικών δεξιοτήτων εξοικείωσης και χειρισμού των σύγχρονων περιβαλλόντων. Οι παραπάνω στόχοι μπορούν να επιτευχθούν μόνο μέσω της εμπλοκής των μαθητών σε αυθεντικές δραστηριότητες που θα έχουν ως απώτερο στόχο την ανάπτυξη δεξιοτήτων μεθοδολογικού χαρακτήρα (έκφραση και διερεύνηση ιδεών, δημιουργικότητα, μοντελοποίηση λύσεων) και δεξιοτήτων υψηλού επιπέδου (κριτική και αναλυτική σκέψη, συνθετική ικανότητα, διερευνητική-συνεργατική μάθηση, διαθεματική προσέγγιση) (Τζιμογιάννης, 2002). Επίλογος Η διδασκαλία της Πληροφορικής έχει πολλές ιδιαιτερότητες που δεν ευνοούν τις παραδοσιακές διδακτικές προσεγγίσεις, όπως είναι η μετωπική διδασκαλία, η αυστηρή διάρθρωση του περιεχομένου, οι συμβατικές μαθητικές εργασίες και δραστηριότητες. Ωστόσο, ακόμα και σήμερα οι αρχές του προγραμματισμού εξακολουθούν να διδάσκονται με την ίδια μέθοδο, χρησιμοποιώντας δηλαδή μια συμβατική γλώσσα προγραμματισμού και ένα επαγγελματικό περιβάλλον προγραμματισμού (Ξυνόγαλος, 2003) μέσω δραστηριοτήτων που δεν προκαλούν το ενδιαφέρον των μαθητών. Στο πλαίσιο μιας εποικοδομιστικής προσέγγισης της διδασκαλίας του προγραμματισμού, το ζητούμενο δεν είναι η διδασκαλία του προγραμματισμού, αλλά η βοήθεια που πρέπει να δοθεί στους μαθητές ώστε να οικοδομήσουν τα απαραίτητα νοητικά πλαίσια για να εξασκήσουν προγραμματιστικές δραστηριότητες (Κόμης, 2005). Από την επισκόπηση των εκπαιδευτικών προγραμματιστικών περιβαλλόντων διαπιστώνεται ποικιλία διαθέσιμων συστημάτων που μπορούν να καλύψουν όλο το φάσμα των μαθητικών ηλικιών. Κάθε περιβάλλον υιοθετεί διαφορετικό μοντέλο για την διαδικασία και τον σκοπό του προγραμματισμού με απλούστερο αυτό των περιηγητών και πολυπλοκότερο αυτό της εκπαιδευτικής ρομποτικής. Η επιλογή μιας γλώσσας προγραμματισμού που θα είναι κατάλληλη για την διδασκαλία και την εκμάθηση του προγραμματισμού σε αρχαρίους καθίσταται αναγκαία προκειμένου να προωθηθεί η διερευνητική προσέγγιση της γνώσης, η συνεργατική μάθηση, η ανάπτυξη δεξιοτήτων και μεθοδολογικών εργαλείων για την επίλυση προβλημάτων συμβάλλοντας στην ανάπτυξη της υπολογιστικής σκέψης των μαθητών. Αναφορές Guzdial, M. (2004). Programming environments for novices. Computer science education research, 2004, 127-154. Kelleher, C. & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys, 37, 2, pp. 83-137, June 2005. Orfanakis, V. & Papadakis, St. (2014). A new programming environment for teaching programming. A first acquaintance with Enchanting. Proceedings of the 2nd international virtual Scientific Conference - Scieconf 2014. EDIS - Publishing Institution of the University of Zilina, Slovakia. Papadakis, S., Kalogiannakis, M., Orfanakis, V. & Zaranis, N. (2014). Novice Programming Environments. Scratch & App Inventor: a first comparison. In H. M. Fardoun & J. A. Gallud (Eds.), Proceedings of the 2014 Workshop on Interaction Design in Educational Environments (IDEE '14) (p. 1). New York: ACM. Robins, A., Rountree, J. & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137-172. Soloway, E. & Spohrer, J. (1989). Studying the Novice Programmer. Lawrence Erlbaum Associates, Hillsdale, New Jersey.
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Ρόλος και Εφαρμογές 9 Xinogalos, S., Satratzemi, M. & Malliarakis, C. (2015). Microworlds, games, animations, mobile apps, puzzle editors and more: What is important for an introductory programming environment?. Education and Information Technologies, 1-32. Γεωργίου, Β. & Τζιμογιάννης, Α. (1998). Η Διδασκαλία τον Προγραμματισμού Η/Υ στη Δευτεροβάθμια Εκπαίδευση ως Διαδικασία Ανάπτυξης Πνευματικών Δεξιοτήτων. Μια Πρόταση Βασισμένη στη Δημιουργία Βάσης Ασκήσεων Γνωστής Δυσκολίας. Στο Α. Τζιμογιάννης (Επιμ.), Πρακτικά εργασιών 1 ης Πανηπειρωτικής Ημερίδας «Πληροφορική και Εκπαίδευση», Σύλλογος Καθηγητών Πληροφορικής Ηπείρου, 125-133. Γλέζου, Κ., Μπιρμπίλης, Γ. & Γρηγοριάδου, Μ. (2009). Εναλλακτική διδακτική προσέγγιση εισαγωγής στον προγραμματισμό και στη Logo με αξιοποίηση προκατασκευασμένων μικρόκοσμων. Στο Π. Πολίτης (Επιμ.) Πρακτικά 1 ου Εκπαιδευτικού Συνεδρίου «Ένταξη και Χρήση των ΤΠΕ στην Εκπαιδευτική Διαδικασία», Βόλος. Γρηγοριάδου, Μ., Γόγουλου, Α. & Γουλή, Ε. (2002). Εναλλακτικές Διδακτικές Προσεγγίσεις σε Εισαγωγικά Μαθήματα Προγραμματισμού. Στο Α. Δημητρακοπούλου (Επιμ.) Πρακτικά Εισηγήσεων 3 ου Πανελληνίου Συνεδρίου με Διεθνή Συμμετοχή «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», Ρόδος, 26-29 Σεπτεμβρίου 2002. Εφόπουλος, Β., Δαγδιλέλης, Β. & Ευαγγελίδης, Γ. (2004). Ένα περιβάλλον για τη συστηματική διδασκαλία του προγραμματισμού σε αρχαρίους. Πρακτικά 4 ου Πανελληνίου Συνεδρίου με Διεθνή Συμμετοχή «Οι τεχνολογίες της πληροφορίας και της επικοινωνίας στην εκπαίδευση», Αθήνα, 29/09 03/10/2004. Εφόπουλος, Β., Δαγδιλέλης, Β. & Ευαγγελίδης, Γ. (2005). Η επιλογή της κατάλληλης εισαγωγικής γλώσσας προγραμματισμού για αρχαρίους. Πρακτικά 3 ου Πανελλήνιου Συνέδριου για την «Αξιοποίηση των τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη», Σύρος. Εφόπουλος, Β., Ευαγγελίδης, Γ., Δαγδιλέλης, Β. & Κλεφτοδήμος Α. (2005). Οι δυσκολίες των αρχάριων Προγραμματιστών. Στο Α. Τζιμογιάννης (Επιμ.) Πρακτικά 3 ου Πανελλήνιου συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Πελοποννήσου, Κόρινθος 7-9 Οκτωβρίου 2005. Θεοδωράκη, Σ. & Ξυνόγαλος, Σ. (2013). Αξιοποίηση Εκπαιδευτικών Παιχνιδιών στη Διδασκαλία και Εκμάθηση του Προγραμματισμού. Στο Α. Λαδιάς, Α. Μικρόπουλος, Χ. Παναγιωτακόπουλος, Φ. Παρασκευά, Π. Πιντέλας, Π. Πολίτης, Σ. Ρετάλης, Δ. Σάμψων, Ν. Φαχαντίδης, Α. Χαλκίδης (Επιμ.) Πρακτικά 3 ου Πανελλήνιου Συνεδρίου «Ένταξη των ΤΠΕ στην Εκπαιδευτική Διαδικασία», Πανεπιστήμιο Πειραιώς, Πειραιάς, 10-12 Μαΐου 2013. Καγκάνη, Κ., Δαγδιλέλης, Β., Σατρατζέμη, Μ. & Ευαγγελίδης, Γ. (2005). Μια Μελέτη Περίπτωσης της Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση με τα LEGO Mindstorms. Στο Α. Τζιμογιάννης (Επιμ.) Πρακτικά 3 ου Πανελλήνιου συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Πελοποννήσου, Κόρινθος 7-9 Οκτωβρίου 2005. Κόμης, Β. (2005). Εισαγωγή στη Διδακτική της Πληροφορικής. Εκδόσεις Κλειδάριθμος. Κορδάκη, M., Σικινιότης, Σ. & Κάπρος, Χ. (2010). Ένα παιχνίδι σε υπολογιστή για τη μάθηση στοιχειωδών αρχών του δυαδικού συστήματος από αρχάριους. Στο Μ. Γρηγοριάδου (Επιμ.) Πρακτικά 5 ου Πανελληνίου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Αθηνών, 9-11 Απριλίου 2010. Κοσμοπούλου, I., Φλώρου, X., Μπαγιάτη, Αικ. & Χούστης, Η. (2010). Ανάπτυξη Διαδραστικής Εφαρμογής για τη Διδασκαλία του Προγραμματισμού στο Δημοτικό με Χρήση του Προγράμματος Scratch, βασισμένη σε Rubrics Αξιολόγησης και Αυτο-αξιολόγησης. Στο Μ. Γρηγοριάδου (Επιμ.) Πρακτικά 5 ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Αθηνών, 9-11 Απριλίου 2010. Κυριακού, Γ. & Φαχαντίδης, Ν. (2012). Διδακτική της Πληροφορικής με εφαρμογές Εκπαιδευτικής Ρομποτικής, βασισμένης στην Εποικοδομητική θεωρία. Πρακτικά 6 ου Πανελληνίου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Δυτικής Μακεδονίας, Φλώρινα, 20-22 Απριλίου 2012. Μαραγκός, Κ. & Γρηγοριάδου Μ. (2008). Σχεδίαση ενός Προσαρμοστικού Εκπαιδευτικού Ηλεκτρονικού παιχνιδιού για τη διδασκαλία εισαγωγικών εννοιών του Προγραμματισμού. Πρακτικά 4 ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Πατρών, 28-30 Μαρτίου 2008. Μαραγκός, Κ. & Γρηγοριάδου, Μ. (2004). Αντιλήψεις μαθητών σε βασικές λειτουργίες των πινάκων. Πρακτικά εργασιών 2 ης Πανελλήνιας Διημερίδας με διεθνή συμμετοχή «Διδακτική της Πληροφορικής», Βόλος. Μάργαρης, Μ. & Παπαστεργίου, Μ. (2008). Εισάγοντας αρχάριους στον προγραμματισμό με τα περιβάλλοντα Kara: Μια προσέγγιση βασισμένη στη θεωρία υπολογισμού. Πρακτικά 4 ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Πατρών, 28-30 Μαρτίου 2008. Μαρκέλης, Η. (2008). Χρήση των LEGO Mindstorms στο Δημοτικό: Το παιχνίδι ως έναυσμα μάθησης. (Μεταπτυχιακή εργασία). Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Θεσσαλονίκη. Μαυροχαλυβίδης, Γ. Μακρής, Γ. & Μπέκος, Ν. (2012). Διδακτική Προσέγγιση Του Αντικειμενοστραφούς Προγραμματισμού Με Το Scratch. Πρακτικά 6 ου Πανελληνίου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Δυτικής Μακεδονίας, Φλώρινα, 20-22 Απριλίου 2012. Μπόκος, Α. (2014). Ρομποτικά Εκπαιδευτικά Περιβάλλοντα: μελέτη της διαδικασίας προγραμματισμού (Μεταπτυχιακή εργασία). Πανεπιστήμιο Πατρών, Πάτρα. Πρακτικά Εργασιών 10 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Ναύπλιο 15-17 Απριλίου 2016
10 10 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Ξυνόγαλος Σ. (2002). Εκπαιδευτική Τεχνολογία: Ένας Διδακτικός Μικρόκοσμος για την Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό, (Διδακτορική Διατριβή). Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας. Ξυνόγαλος, Σ. & Σατρατζέμη, Μ. (2002). Εκπαιδευτικά Προγραμματιστικά Περιβάλλοντα βασισμένα στους Εκδότες Σύνταξης: Ανάλυση Εργαλείων και Επισκόπηση Αποτελεσμάτων Αξιολόγησης. Στο Α. Δημητρακοπούλου (Επιμ.) Πρακτικά 3 ου Πανελλήνιου Συνεδρίου «Πληροφορική και Εκπαίδευση», Πανεπιστήμιο Αιγαίου, Ρόδος, 26-29 Σεπτεμβρίου 2002. Ξυνόγαλος, Σ. & Σατρατζέμη, Μ. (2004). Η Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό: Προβλήματα και Μεθοδολογίες για την Αντιμετώπισή τους. Πρακτικά 4 ου Πανελλήνιου Συνεδρίου με Διεθνή Συμμετοχή «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», Αθήνα, 29/09 3/10/2004. Ξυνόγαλος, Σ. (2003). Σενάρια διδασκαλίας του προγραμματισμού στη δευτεροβάθμια εκπαίδευση. Πρακτικά 2 ου Πανελλήνιου Συνεδρίου των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη», Σύρος, 9-11 Μαΐου 2003. Ξυνόγαλος, Σ. (2012). Διδακτική Προσέγγιση για τον Αντικειμενοστρεφή Προγραμματισμό: εφαρμογή στο BlueJ. Πρακτικά 6 ου Πανελληνίου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Δυτικής Μακεδονίας, Φλώρινα, 20-22 Απριλίου 2012. Ξυνόγαλος, Σ., Σατρατζέμη, Μ. & Δαγδιλέλης, Β. (2000). Η εισαγωγή στον προγραμματισμό: Διδακτικές Προσεγγίσεις και Εκπαιδευτικά Εργαλεία. Πρακτικά 2 ου Πανελλήνιου Συνεδρίου με Διεθνή Συμμετοχή «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», Πάτρα, 13-15 Οκτωβρίου 2000. Παπαδάκης, Στ. & Ορφανάκης, Β. (2015). Alice ή App Inventor. Ποιο Προγραμματιστικό Περιβάλλον να επιλέξω για τη Διδασκαλία του Προγραμματισμού στην Α Λυκείου; Στο Β. Δαγδιλέλης, Α. Λαδιάς, Κ. Μπίκος, Ε. Ντρενογιάννη, Μ. Τσιτουρίδου (Επιμ.), Πρακτικά Εργασιών 4 ου Πανελλήνιου Συνεδρίου «Ένταξη των ΤΠΕ στην Εκπαιδευτική Διαδικασία», (ΕΤΠΕ), Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης & Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 30 Οκτωβρίου 1 Νοεμβρίου 2015. Σατρατζέμη, Μ. & Ξυνόγαλος, Σ. (2010). Συγκριτική Μελέτη των Εκπαιδευτικών Προγραμματιστικών Περιβαλλόντων BlueJ & Jgrasp. Στο Μ. Γρηγοριάδου (Επιμ.) Πρακτικά 5 ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Πανεπιστήμιο Αθηνών, 9-11 Απριλίου 2010. Σατρατζέμη, Μ., Δαγδιλέλης, Β. & Ευαγγελίδης, Γ. (2002). Μια Εναλλακτική Προσέγγιση Διδασκαλίας του Προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση. Στο Α. Δημητρακοπούλου (Επιμ.) Πρακτικά 3 ου Πανελλήνιου Συνεδρίου «Πληροφορική και Εκπαίδευση», Πανεπιστήμιο Αιγαίου, Ρόδος, 26-29 Σεπτεμβρίου 2002. Σατρατζέμη, Μ., Ξυνόγαλος, Σ. & Δαγδιλέλης, Β. (2006). Εκπαιδευτικά Προγραμματιστικά Περιβάλλοντα για τη Διδασκαλία του Αντικειμενοστραφούς Προγραμματισμού: μια επισκόπηση. Πρακτικά 5 ου Πανελλήνιου Συνεδρίου με Διεθνή Συμμετοχή «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», Θεσσαλονίκη, 5-8 Οκτωβρίου 2006. Στούμπου, Α., Δέτσικας, Ν. & Αλιμήσης, Δ. (2013). Διδασκαλία των δομών επιλογής και επανάληψης με εργαλείο την εκπαιδευτική ρομποτική: μια μελέτη περίπτωσης. Στο Α. Λαδιάς, Α. Μικρόπουλος, Χ. Παναγιωτακόπουλος, Φ. Παρασκευά, Π. Πιντέλας, Π. Πολίτης, Σ. Ρετάλης, Δ. Σάμψων, Ν. Φαχαντίδης, Α. Χαλκίδης (Επιμ.), Πρακτικά Εργασιών 3 ου Πανελλήνιου Συνεδρίου «Ένταξη των ΤΠΕ στην Εκπαιδευτική Διαδικασία», Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς, Πειραιάς, 10-12 Μαΐου 2013. Τζιμογιάννης Α. & Γεωργίου Β. (1998). Η αναγκαιότητα της διδασκαλίας του προγραμματισμού Η/Υ στη δευτεροβάθμια εκπαίδευση ως μεθοδολογία επίλυσης προβλημάτων. Το παράδειγμα των πινάκων. Πρακτικά Διημερίδας Πληροφορικής «Η Πληροφορική στη Δευτεροβάθμια Εκπαίδευση», ΕΠΥ, Αθήνα. Τζιμογιάννης, Α. (2002). Διδακτική Πληροφορικής, Προγράμματα Σπουδών και Διδακτικές Πρακτικές στο Ενιαίο Λύκειο. Στο Α. Δημητρακοπούλου (Επιμ.) Πρακτικά 3 ου Πανελλήνιου Συνεδρίου «Πληροφορική και Εκπαίδευση», Πανεπιστήμιο Αιγαίου, Ρόδος, 26-29 Σεπτεμβρίου 2002. Τζιμογιάννης, Α. (2003). Η διδασκαλία του προγραμματισμού στο Ενιαίο Λύκειο: Προς ένα ολοκληρωμένο πλαίσιο με στόχο την ανάπτυξη δεξιοτήτων επίλυσης προβλημάτων. Πρακτικά 2 ου Πανελλήνιου Συνεδρίου των Εκπαιδευτικών για τις ΤΠΕ: «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη Διδακτική Πράξη», Τόμος Α, 706-720, Σύρος Τσώνης, Γ. & Κορδάκη, Μ. (2004). H επίδραση εκπαιδευτικού λογισμικού στις προσεγγίσεις μαθητών σε βασικές αλγοριθμικές δομές. Πρακτικά 4 ου Πανελληνίου Συνεδρίου με Διεθνή Συμμετοχή «Οι τεχνολογίες της πληροφορίας και της επικοινωνίας στην εκπαίδευση», Αθήνα, 29/09 03/10/2004. Φεσάκης Γ. & Δημητρακοπούλου Α. (2006). Επισκόπηση του χώρου των εκπαιδευτικών περιβαλλόντων προγραμματισμού ΗΥ: Τεχνολογικές και Παιδαγωγικές προβολές. Θέματα στην Εκπαίδευση, 7(3), 279-304. Χαρίσης, Χ. & Μικρόπουλος, Τ. Α. (2008). Ρομποτική, Οπτικός Προγραμματισμός και Βασικές Προγραμματιστικές Δομές. Στο Β. Κόμης (Επιμ.), Πρακτικά 4 ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Πάτρα: Εκδόσεις Νέων Τεχνολογιών. Χούκλη, Μ. (2015). Μάθε παιδί μου ικανότητες. Ανακτήθηκε στις 20 Δεκεμβρίου 2015 από http://goo.gl/7zsbhi