Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM Οδηγίες για την υλοποίηση της διδακτικής παρέμβασης 1η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 1 με τίτλο «Λαμπάκι LED που αναβοσβήνει». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την πρώτη τους εφαρμογή με τον μικροελεγκτή Arduino (Εικόνα 1). Στη συνέχεια ο εκπαιδευτικός, αφού κάνει αναφορά στους τρόπους αναπαράστασης των αλγορίθμων, εξηγεί στους μαθητές τη μορφή του ισοδύναμου προγράμματος σε Ψευδογλώσσα (Εικόνα 2), την οποία θα χρησιμοποιήσουν καθ όλη τη διάρκεια του σχολικού έτους. Οι μαθητές έρχονται για πρώτη φορά σε επαφή με την εντολή Επανάλαβε Τέλος_επανάληψης, η οποία αφορά μόνο τον μικροελεγκτή Arduino, και εκτελεί τις εντολές που περιέχει συνέχεια (ατέρμονος βρόχος). Εικόνα 1: Πρόγραμμα στο Ardublock Εικόνα 2: Αλγόριθμος σε Ψευδογλώσσα Στο τέλος της 1ης διδακτικής ώρας οι μαθητές έχουν έρθει σε επαφή με μια οπτική γλώσσα προγραμματισμού, το Ardublock, και έχουν δει στο IDE του Arduino το ισοδύναμο πρόγραμμα σε Wiring C το οποίο μεταγλωττίζεται και στη συνέχεια φορτώνεται στον μικροελεγκτή Arduino. Επομένως, έχουν δει και ένα παράδειγμα κειμενικής γλώσσας προγραμματισμού. Επιπλέον, έχουν δει και ένα απλό πρόγραμμα σε Ψευδογλώσσα, με την οποία θα δουλέψουν μέχρι το τέλος του σχολικού έτους. Τέλος, έχουν δει και μια δομή επανάληψης, την εντολή Επανάλαβε Τέλος_επανάληψης. 2η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 2 με τίτλο «Φωτεινός σηματοδότης». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν τη δεύτερη εφαρμογή τους με τον μικροελεγκτή Arduino (Εικόνα 3). Στη συνέχεια, μαζί με τον εκπαιδευτικό αναπτύσσουν το ισοδύναμο πρόγραμμα σε Ψευδογλώσσα (Εικόνα 4). Ο εκπαιδευτικός εξηγεί στους μαθητές τη δομή ακολουθίας. Η δομή ακολουθίας χρησιμοποιείται για την αντιμετώπιση προβλημάτων στα οποία οι εντολές εκτελούνται η μία μετά την άλλη από πάνω προς τα κάτω. Εικόνα 4: Αλγόριθμος σε Ψευδογλώσσα Εικόνα 3: Πρόγραμμα στο Ardublock
Τέλος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 του φύλλου εργασίας 2 και στη συνέχεια να αναπτύξουν το ισοδύναμο πρόγραμμα σε Ψευδογλώσσα. 3η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 3 με τίτλο «Ρύθμιση της φωτεινότητας ενός LED με ποτενσιόμετρο». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του τρίτου φύλλου εργασίας (Εικόνα 5). Εικόνα 5: Πρόγραμμα στο Ardublock Εικόνα 6: Αλγόριθμος σε Ψευδογλώσσα Αφού οι μαθητές υλοποιήσουν την εφαρμογή, γίνεται συζήτηση στην τάξη για την συνάρτηση μετατροπή (map). Ο εκπαιδευτικός εξηγεί στους μαθητές ότι μια συνάρτηση χρησιμοποιείται για να εκτελέσει μια προκαθορισμένη λειτουργία. Κάθε συνάρτηση έχει ένα όνομα ακολουθούμενο από ζεύγος παρενθέσεων που περικλείουν μια μεταβλητή ή μια σταθερά ή γενικότερα μια έκφραση. Η συνάρτηση μετατροπή παίρνει την τιμή που επιστρέφει το ποτενσιόμετρο (με την εντολή αναλογική ακίδα # 0), και η οποία ανήκει στο διάστημα [0, 1023], και την αντιστοιχεί σε έναν αριθμό στο διάστημα [0, 255]. Η μετατροπή αυτή είναι απαραίτητη γιατί οι τιμές που επιτρέπεται να στείλουμε στον ακροδέκτη (pin) 3, στον οποίο είναι συνδεδεμένο το LED, πρέπει να ανήκουν στο διάστημα [0, 255]. Η εντολή Θέσε_αναλογική_ακίδα λειτουργεί μόνο στις PWM ψηφιακές θύρες οι οποίες στις περισσότερες πλακέτες είναι οι 3, 5, 6, 9, 10, 11. Στις θύρες αυτές μπορούμε να παράγουμε ενδιάμεσες τάσεις στο διάστημα [0, 5] Volt στέλνοντας τιμές από 0 έως 255. Ο εκπαιδευτικός εξηγεί επίσης την έννοια της μεταβλητής. Η τιμή που επιστρέφει η συνάρτηση μετατροπή πρέπει να αποθηκευτεί προσωρινά, σε μια μεταβλητή (pot) για να την επεξεργαστούμε αργότερα. Οι μεταβλητές είναι συμβολικά ονόματα που αντιστοιχούν σε θέσεις μνήμης του υπολογιστή και χρησιμοποιούνται για την προσωρινή αποθήκευση διάφορων τιμών οι οποίες μπορεί να αλλάξουν κατά τη διάρκεια εκτέλεσης του προγράμματος. Στη συνέχεια, ο εκπαιδευτικός εξηγεί στους μαθητές τη μορφή του ισοδύναμου προγράμματος σε Ψευδογλώσσα (Εικόνα 6). Αναφέρει, ότι για την απόδοση τιμής σε μια μεταβλητή χρησιμοποιείται η εντολή εκχώρησης Μεταβλητή <- Έκφραση. Στην εντολή εκχώρησης (<-) πρώτα εκτελούνται οι πράξεις στην Έκφραση και στη συνέχεια η τιμή της Έκφρασης εκχωρείται στη μεταβλητή (Δουκάκης κ.α., 2014). Επίσης, αναφέρει ότι στην Ψευδογλώσσα μπορούν να χρησιμοποιηθούν όλες οι συνηθισμένες συναρτήσεις, όπως οι τριγωνομετρικές ΗΜ(χ), ΣΥΝ(χ), ΕΦ(χ), οι μαθηματικές Α_Τ(χ) για την απόλυτη τιμή, Ε(χ) για την e x, ΛΟΓ(χ) για το δεκαδικό λογάριθμο, Τ_Ρ(χ) για την τετραγωνική ρίζα, και Α_Μ(χ) για το ακέραιο μέρος (Δουκάκης κ.α., 2014). Αν φτάσει ο χρόνος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 και τη Δραστηριότητα 2 του φύλλου εργασίας 3 και στη συνέχεια να αναπτύξουν τα ισοδύναμα προγράμματα σε Ψευδογλώσσα. 4η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 4 με τίτλο «Αυτόματο φωτάκι νυκτός». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του τέταρτου φύλλου εργασίας (Εικόνα 7).
Εικόνα 7: Πρόγραμμα στο Ardublock Εικόνα 8: Αλγόριθμος σε Ψευδογλώσσα Αφού οι μαθητές υλοποιήσουν την εφαρμογή, γίνεται συζήτηση στην τάξη για την εντολή αν/αλλιώς (δομή επιλογής) και τη χρησιμότητας της. Στο σημείο αυτό οι μαθητές αντιλαμβάνονται ότι με την εντολή αν/αλλιώς μπορεί να τροποποιηθεί η σειρά εκτέλεσης των εντολών ενός αλγορίθμου. Η διαδικασία επιλογής περιλαμβάνει τον έλεγχο μιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης εντολών με βάση την τιμή αυτής της συνθήκης. Στη συνέχεια, ο εκπαιδευτικός εξηγεί στους μαθητές τη μορφή του ισοδύναμου προγράμματος σε Ψευδογλώσσα (Εικόνα 8). Τέλος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 και τη Δραστηριότητα 2 του φύλλου εργασίας 3 σε Ψευδογλώσσα και αν προλάβουν στο προγραμματιστικό περιβάλλον του Ardublock. Στόχος των δραστηριοτήτων αυτών είναι οι μαθητές να κατανοήσουν ότι οι δομές επιλογής χρησιμοποιούνται όταν θέλουμε να εκτελέσουμε κάτι υπό συνθήκη. 5η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 5 με τίτλο «Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED)». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του πέμπτου φύλλου εργασίας (Εικόνα 9).
Εικόνα 9: Πρόγραμμα στο Ardublock Εικόνα 10: Αλγόριθμος σε Ψευδογλώσσα Αφού οι μαθητές υλοποιήσουν την εφαρμογή, ο εκπαιδευτικός εξηγεί στους μαθητές τη λειτουργία της εντολής repeat. Ο στόχος της συγκεκριμένης δραστηριότητας είναι οι μαθητές να κατανοήσουν τη λειτουργία της εντολής επανάληψης repeat και να κατανοήσουν επίσης τη σπουδαιότητά της. Στη συνέχεια, ο εκπαιδευτικός εξηγεί στους μαθητές τη μορφή του ισοδύναμου προγράμματος σε Ψευδογλώσσα (Εικόνα 10). Τέλος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 του φύλλου εργασίας 5 σε Ψευδογλώσσα και αν προλάβουν στο προγραμματιστικό περιβάλλον του Ardublock. 6η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 6 με τίτλο «Θερμόμετρο εξωτερικού χώρου». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του έκτου φύλλου εργασίας (Εικόνα 11).
Εικόνα 11: Πρόγραμμα στο Ardublock Αφού οι μαθητές υλοποιήσουν την εφαρμογή, γίνεται συζήτηση στην τάξη για τους τύπους δεδομένων σε μια γλώσσα προγραμματισμού και ιδιαίτερα στην Ψευδογλώσσα. Όλες οι παραπάνω αριθμητικές πράξεις έχουν ως σκοπό την μετατροπή της τιμής που επιστρέφει ο αισθητήρας θερμοκρασίας στην κλίμακα των βαθμών Κελσίου. Οι αναλογικές τιμές που επιστρέφει ο αισθητήρας θερμοκρασίας αντιστοιχίζονται σε ψηφιακές διακριτές τιμές στον μικροελεγκτή Arduino. Στη συνέχεια ο εκπαιδευτικός εξηγεί ότι κάθε γλώσσα έχει συγκεκριμένους τύπους δεδομένων. Οι πιο συνήθεις τύποι δεδομένων είναι οι ακόλουθοι: Ακέραιος τύπος: για την αναπαράσταση ακεραίων αριθμών. Πραγματικός τύπος: για την αναπαράσταση πραγματικών αριθμών. Λογικός τύπος: για την αναπαράσταση λογικών δεδομένων. Αλφαριθμητικός τύπος: για την αναπαράσταση αλφαριθμητικών δεδομένων. Ο εκπαιδευτικός αναφέρει ότι στην συγκεκριμένη εφαρμογή χρησιμοποιήσαμε την εντολή set decimal number variable αντί για την εντολή set integer variable που έχουμε μάθει μέχρι τώρα. Με την εντολή set integer variable μπορούμε να διαχειριστούμε μόνο ακέραιους αριθμούς. Με την εντολή set decimal number variable μπορούμε να διαχειριστούμε πραγματικούς αριθμούς κινητής υποδιαστολής. Χρησιμοποιήσαμε την εντολή set decimal number variable διότι οι τιμές της θερμοκρασίας είναι πραγματικοί αριθμοί. Σε κάθε τύπο δεδομένων μπορούν να εφαρμοστούν διαφορετικές πράξεις. Επομένως, κατά τον σχεδιασμό ενός αλγορίθμου έχει σημασία το είδος των τύπων δεδομένων που υποστηρίζονται. Τέλος, ο εκπαιδευτικός επισημαίνει ότι η Ψευδογλώσσα υποστηρίζει όλους τους παραπάνω τύπους δεδομένων (Ακέραιος, Πραγματικός, Λογικός, Αλφαριθμητικός) και αναφέρει τους τελεστές που επιτρέπεται να χρησιμοποιήσουν οι μαθητές για την ανάπτυξη των αλγορίθμων τους. 7η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 7 με τίτλο «Δημιουργώ τα δικά μου χρώματα με το RGB LED». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την πρώτη εφαρμογή του έβδομου φύλλου εργασίας. Αφού οι μαθητές υλοποιήσουν την εφαρμογή, γίνεται συζήτηση στην τάξη για την εντολή Θέσε_αναλογική_ακίδα, την οποία έχουν γνωρίσει σε προηγούμενη δραστηριότητα. Στη συνέχεια, ο εκπαιδευτικός εξηγεί στους μαθητές τη μορφή του ισοδύναμου προγράμματος σε Ψευδογλώσσα και τους καλεί να αναπτύξουν τη δεύτερη εφαρμογή του φύλλου εργασίας στην οποία οι μαθητές χρησιμοποιούν επανειλημμένως την εντολή επανάληψης repeat, την οποία έχουν γνωρίσει σε προηγούμενη δραστηριότητα. Τέλος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 και τη Δραστηριότητα 2 του φύλλου εργασίας 7 και στη συνέχεια να αναπτύξουν τα ισοδύναμα προγράμματα σε Ψευδογλώσσα. 8η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 8 με τίτλο «Ανιχνευτής απόστασης». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του όγδοου φύλλου εργασίας (Εικόνα 12).
Εικόνα 12: Πρόγραμμα στο Ardublock Αφού οι μαθητές υλοποιήσουν την εφαρμογή, καλούνται να υλοποιήσουν τη Δραστηριότητα 1 του φύλλου εργασίας 8 σε Ψευδογλώσσα και αν προλάβουν στο προγραμματιστικό περιβάλλον του Ardublock. Οι στόχοι των δραστηριοτήτων αυτών είναι οι μαθητές να επιλέγουν την κατάλληλη αλγοριθμική δομή (ανάλογα με το πρόβλημα), να χρησιμοποιούν τη δομή επιλογής και να χρησιμοποιούν έτοιμες συναρτήσεις στο περιβάλλον του Ardublock. 9η και 10η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 9 με τίτλο «Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων». Οι μαθητές εργαζόμενοι σε ομάδες υλοποιούν την εφαρμογή του ένατου φύλλου εργασίας. Αφού οι μαθητές υλοποιήσουν την εφαρμογή, ο εκπαιδευτικός εξηγεί στους μαθητές ότι ένας αλγόριθμος μπορεί να κληθεί από έναν άλλο αλγόριθμο. Οι αλγόριθμοι turn_left και turn_right καλούνται από τον κυρίως αλγόριθμο για να στρίψει το ρομποτικό όχημα αριστερά ή δεξιά. Στη συνέχεια, μαζί με τον εκπαιδευτικό αναπτύσσουν το ισοδύναμο πρόγραμμα σε Ψευδογλώσσα. Τέλος, οι μαθητές καλούνται να υλοποιήσουν τη Δραστηριότητα 1 του φύλλου εργασίας 9 σε Ψευδογλώσσα και αν προλάβουν στο προγραμματιστικό περιβάλλον του Ardublock. Στόχος των δραστηριοτήτων αυτών είναι οι μαθητές να συνδυάσουν αλγοριθμικές δομές και δεδομένα για να δημιουργήσουν ένα ολοκληρωμένο πρόγραμμα στο περιβάλλον του Ψευδογλώσσα. Ardublock και στην