11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής H σημασία της Επίδοσης & Απόδοσης Αλγορίθμων στην υπολογιστική σκέψη - Πρόταση διδασκαλίας Κωνσταντίνος Κάππας 1, Γιάτας Δημήτριος 2, Ματθές Δημήτριος 3 1 kostas@kappas.eu ή kkappas@sch.gr, 2 dyiatas@gmail.com, 3 dimmat@gmail.com 1 1Καθηγητής Πληροφορικής 7ο Γενικό Λύκειο Αθηνών 2 Καθηγητής Πληροφορικής 1ο Πειραματικό Λύκειο Αθηνών 3 Καθηγητής Πληροφορικής 38ο Γενικό Λύκειο Αθηνών Περίληψη Σκοπός της εργασίας μας είναι η παρουσίαση μιας εκπαιδευτικής προσέγγισης διδασκαλίας εννοιών που συσχετίζονται με την αποδοτικότητα ενός αλγορίθμου στον προγραμματισμό. Τόσο στο Γυμνάσιο όσο και στο Λύκειο έχει παρατηρηθεί σημαντική δυσκολία στους μαθητές στο να κατανοήσουν τη σημασία της έννοια αυτής. Στη παρούσα πρόταση το σχέδιο μαθήματος κάνει οπτικοποίηση της εκτέλεσης, αντιπαραβολή και σύγκριση αλγορίθμων που επιλύουν ακριβώς το ίδιο πρόβλημα και μια καταμέτρηση του κόστους εκτέλεσης-επίδοσης. Η διδακτική αυτή προσέγγιση πραγματοποιήθηκε σε μαθητές της Γ τάξης σε τρία Γενικά Λύκεια. Το ενδιαφέρον των παιδιών ήταν έντονο ενώ η κατανόηση του θέματος φαίνεται να είναι ιδιαίτερα ικανοποιητική. Λέξεις κλειδιά: επίδοση-αποδοτικότητα αλγορίθμων, dynalab, δεδομένα-μέγεθος εισόδου, χρόνος εκτέλεσης προγράμματος Summary The aim of our project is to present an educational approach of teaching meanings that are associated with the efficiency of an algorithm in programming. In High school as well as in Lyceum, there has been noticed a significant difficulty for students to understand the importance of that meaning. In this proposal the lesson s project creates a visualization of the execution and comparison of algorithms that solve the exact same problem and a measurement of the cost execution performance. This teaching approach has been applied to third grade students of three general Lyceums. The student s interest was great while they seemed to understand the subject in a quite satisfactory way. Key words: performance-efficiency of algorithms, dynalab, input data size, execution programming cost Εισαγωγή Ο προγραμματισμός διδάσκεται σε όλους τους τύπους και τις βαθμίδες εκπαίδευσης (Δημοτικό, Γυμνάσιο, Γενικό Λύκειο, ΕΠΑΛ, Πανεπιστήμιο). Στη δευτεροβάθμια εκπαίδευση, δύο από τους στόχους της διδασκαλίας προγραμματισμού είναι οι μαθητές να μπορούν να χρησιμοποιούν προγραμματιστικές δομές και να επιλύουν προβλήματα χρησιμοποιώντας ποικίλα εργαλεία (Linn & Dalbey, 1989). Επειδή η επίλυσή τους βασίζεται πάντα σε κάποιον αλγόριθμο, ένας ακόμη στόχος, όπου τα τελευταία χρόνια δεν δινόταν ιδιαίτερη σημασία, θα ήταν να υπάρχει κάποιος τρόπος εκτίμησης της επίδοσης (performance) και αποδοτικότ ητάς (efficiency) του. Προϋπόθεση για τη ν κατανόηση αυτής έννοιας είναι: ο υπολογισμός του χρόνου εκτέλεσης, σύγκριση διαφορετικών αλγορίθμων για το ίδιο πρόβλημα και αν ένας αλγόριθμος είναι βέλτιστος. Οι μαθητές τόσο στο Γυμνάσιο όσο και στο Λύκειο αντιμετωπίζουν αρκετά γνωστικά εμπόδια σχετικά με την έννοια αυτή. Αυτό συμβαίνει γιατί θα πρέπει να συλλέξουν βασικές πληροφορίες που αφορούν στην αναγνώριση της χειρότερης περίπτωσης και στο καθορισμό μεγέθους προβλήματος βάση το πλήθος δεδομένων, Πρακτικά Εργασιών 11 ου Πανελλήνιου Συνεδρίου Καθηγητών Πληροφορικής, Χαλκίδα 5-7 Μαΐου 2017
2 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής που σχετίζεται και με την έννοια της μεταβλητής, γεγονός που έχει ερευνηθεί επισταμένα (Φεσάκης & Δημητρακοπούλου, 2005). Ακόμα, στο Προγραμματισμό στη Δευτεροβάθμια εκπαίδευση προκύπτουν πολλά προβλήματα στην κατανόηση της νέας έννοιας της απόδοσης αλγορίθμων, γιατί αφ ενός δεν επαρκεί ο χρόνος διδασκαλίας που προβλέπεται από το αναλυτικό πρόγραμμα για εμπέδωση και αφ ετέρου τα βιβλία (των Γ τάξεων Γυμνασίου και Λυκείου), στο Γυμνάσιο δεν αναφέρεται και δεν προβλέπεται στη ύλη, ενώ στο Λύκειο τα προηγούμενα χρόνια έμμεσα με την επίλυση κάποιων ασκήσεων γινόταν ίσως κατανοητή, χωρίς όμως να δίνεται έμφαση, χρόνος και η απαιτούμενη προσοχή. Συνεπώς οι καθηγητές πληροφορικής υποχρεώνονται να εφευρίσκουν τρόπους, μεθόδους και τεχνικές για να γίνουν κατανοητές έννοιες, που ίσως να μοιάζουν ως νέες στους μαθητές. Από τη νέα σχολική χρονιά 2015-16 αφιερώνεται σχετικός και ξεχωριστός χώρος για την εμπέδωσή της ως νέα έννοια (5ο κεφάλαιο ΑΕΠΠ). Ωστόσο η προσέγγιση είναι περισσότερο θεωρητικού τύπου με χαρακτήρα αναφορών και όχι πρακτικού, που θα βοηθούσε στην εμβάθυνση και πλήρη κατανόησή της. Αντιλαμβανόμαστε ότι μια διαφορετική προσέγγιση θα ήταν απαραίτητη και θα βοηθούσε αρκετά στην άμεση κατανόηση αυτών των νέων εννοιών που προστέθηκαν στην εξεταστέα ύλη και ως πανελλαδικά εξεταζόμενου μαθήματος. Επίσης το κυριότερο σημείο που παρατηρείται ως γνωστικό εμπόδιο είναι η απάντηση στο ερώτημα: «εφόσον ο αλγόριθμος είναι σωστός και επιλύει το πρόβλημα, ποια η σημασία για το αν είναι γρήγορος, απλός ή πολύπλοκος, βέλτιστος, αν έχει καλή ή όχι αποδοτικότητα και άμεση σχέση με τα δεδομένα αποτελέσματα». Όμως από την άλλη θα πρέπει να επαναπροσδιορίσουμε κάποιες συμπεριφορές του παρελθόντος και του παρόντος που έχουμε σε άλλα μαθήματα (π.χ. μαθηματικά, φυσική), αλλά και καθημερινά προβλήματα κάθε φύσης, όπου η επίλυση ενός προβλήματος με διαφορετικό τρόπο να δείχνει αισθητά πολύ καλύτερος σε χώρο, χρόνο και κόστος. Στο σημείο αυτό κρίναμε ωφέλιμο να επηρεαστούν οι μαθητές, όσο αυτό είναι δυνατό, από τις έννοιες αυτές ώστε να συμβάλλουν στην υπολογιστική σκέψη όταν επιλύουν ένα πρόβλημα και στην συνέχεια υλοποιούν το σχετικό αλγόριθμο - πρόγραμμα. Άλλωστε η υπολογιστική σκέψη περιλαμβάνει τις διεργασίες σκέψης που σχετίζονται με τη διατύπωση προβλημάτων και λύσεών τους ώστε αυτές να αναπαριστώνται σε μία μορφή που να καθιστά δυνατή την αποτελεσματική υλοποίησή τους από ένα μέσο ( agent) επεξεργασίας πληροφοριών (Wing, 2011). Από μια άλλη πλευρά, η Υπολογιστική σκέψη είναι η διαδικασία αναγνώρισης των υπολογιστικών πτυχών στον κόσμο που μας περιβάλλει και η εφαρμογή εργαλείων και τεχνικών από την Επιστήμη Υπολογιστών για την κατανόηση και την αιτιολόγηση τόσο των φυσικών όσο και των τεχνητών συστημάτων και διεργασιών (Royal Society, 2012). Τα θέματα εφαρμογής και πρακτικής είναι ουσιαστικά ασκήσεις επί χάρτου, στοιχείο που προσδίδει στην αναγκαιότητα να δουν στην πράξη οι μαθητές αυτό που σχεδίασαν στο χαρτί. Η πίεση χρόνου δεν αφήνει τους καθηγητές να εμβαθύνουν και μένουν συνήθως σε θεωρητικό επίπεδο. Μια αναπαράσταση εκτέλεσης σε λογιστικό φύλλο (π.χ. Excel) θα μπορούσε να λειτουργήσει σαν παράδειγμα αναπαράστασης της μνήμης και των αποθηκευμένων δεδομένων σε κελιά για την οπτικοποίηση της εκτέλεσης ενός αλγορίθμου (π.χ. της ταξινόμησης με τη μέθοδο της φυσαλίδας) (Κάππας, 2002). Επίσης, στο ερώτημα αν η καλή απόδοση και το μικρό κόστος σχετίζονται άμεσα ή έμμεσα με την αλγοριθμική υπολογιστική σκέψη, η απάντηση είναι προφανής. Για να αντιμετωπιστούν τα παραπάνω ζητήματα στο Λύκειο, σκεφτήκαμε ότι: 1) θα πρέπει να χρησιμοποιήσουμε κι άλλα λογισμικά εκτός του Διερμηνευτή Γλώσσας, διότι δεν μας δείχνει εύκολα και άμεσα την απόδοση ενός αλγορίθμου, 2) να δείξουμε μια αναλυτική οπτικοποιημένη εκτέλεση ενός αλγορίθμου όπου θα διακρίνονται άμεσα οι εκτελέσεις των εντολών από τους μαθητές και θα διαφαίνεται η σύγκριση στην εκτέλεση κάποιου εξυπνότερου - ίσως βέλτιστου αλγορίθμου, 3) τα παραδείγματα να είναι μέσα από την νέα διδακτέα ύλη και να καλύπτουν έμμεσα και άλλες
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Σύγχρονες Διδακτικές Προσεγγίσεις 3 ανάγκες (π.χ. δυαδική αναζήτηση κ.α.), 4) τη βοήθεια κάποιου εκπαιδευτικού λογισμικού (DynaLab) για μια έστω ενδεικτική εκτίμηση του κόστους εκτέλεσης που δείχνει μια σχετική εκτίμηση της αποδοτικότητας, επίδοσης και πολυπλοκότητας ενός αλγορίθμου, 5) η προσέγγιση να είναι παιδαγωγικά κατάλληλη ώστε το τελικά συμπεράσματα να είναι η έννοια της απόδοσης και του κόστους εκτέλεσης, αλλά κυρίως στο ότι συμβάλλει στην βελτίωση της υπολογιστικής σκέψης και τη σημασία που έχει για την υλοποίηση ενός βελτιωμένου αλγορίθμου προγράμματος, λαμβάνοντας υπόψη μας κάποια βασικά χαρακτηριστικά της. Σχέδιο Μαθήματος Διδακτική ενότητα: Αποδοτικότητα Αλγορίθμων. Τάξεις: Γ Λυκείου. Εκτιμώμενη διάρκεια: 2 ώρες. Γνωστικό υπόβαθρο: Η έννοια του αλγορίθμου είναι γνωστή. Επίσης οι μαθητές έχουν μια πρώτη εκτίμηση από δικά τους παραδείγματα αντιμετώπισης καταστάσεων και λύσεις ασκήσεων του μαθήματος ΑΕΠΠ, αλλά και άλλων μαθημάτων. Σκοπός: Να κατανοήσουν οι μαθητές έννοιες σχετικές με την απόδοση ενός αλγορίθμου και τη σημασία τους. Στόχοι: Οι προσδοκώμενοι εκπαιδευτικοί στόχοι, μετά το τέλος των δραστηριοτήτων, είναι οι μαθητές να μπορούν: Να κατανοήσουν την έννοια της επίδοσης απόδοσης αλγορίθμου. Να διακρίνουν τη χειρότερη και τη καλύτερη περίπτωση ενός αλγορίθμου με απλά παραδείγματα. Να εστιάζουν στο μέγεθος εισόδου ενός αλγορίθμου και στις μεταβλητές που εκφράζουν το μέγεθος αυτό. Να εκτιμούν την αποδοτικότητα ενός αλγορίθμου. Να επιλέγουν τον καταλληλότερο αλγόριθμο με βάση την απόδοση σε σχέση με το χρόνο εκτέλεσης του. Να διαχειρίζονται συστήματα και μεθόδους για τη σύγκριση αλγορίθμων. Να συσχετίζουν τη σύγκριση και την επιλογή αλγορίθμων με χρήση ίδιων δεδομένων και κυρίως ίδιων συνθηκών Να αξιολογούν την επίδοση αλγορίθμου με χρήση ίδιων δεδομένων και κυρίως διαφορετικών συνθηκών. Να αναγνωρίζουν ή να συμπεράνουν τη πολυπλοκότητα αλγορίθμων σε μικρό βαθμό. Πρόβλεψη δυσκολιών: Τα παιδιά γνωρίζουν σχετικές έννοιες, όπως, της καλύτερης λύσης, βέλτιστης-συντομότερης επίλυσης ενός προβλήματος συνήθως από τα μαθηματικά και τη φυσική που βασίζεται κυρίως στην εμπειρία τους. Σε καμιά περίπτωση όμως αυτό δεν τα βοηθά αντιθέτως τα δυσκολεύει να καταλάβουν τη σημασία που έχει η επίλυση ενός προβλήματος με ένα αλγόριθμο που συμφέρει και υπάρχει ουσιαστικό κέρδος, όχι μόνο στο χρόνο εκτέλεσής του από Η/Υ, αλλά και στη σύνθεσή του για τον ίδιο τον δημιουργό. Επειδή, η υπολογιστική σκέψη είναι μια διαδικασία που περιλαμβάνει πολλά χαρακτηριστικά, θα πρέπει να εστιάσουμε σε μερικά που κρίναμε βασικά για αυτή τη πρόταση διδασκαλίας. Βάση του
4 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής λειτουργικού ορισμού CSTA & ISTE τέσσερα από αυτά χαρακτηριστικά είναι: α)μορφοποίηση προβλημάτων με τρόπο ώστε να είναι δυνατή η επίλυσή τους από Η/Υ ή άλλα εργαλεία, β)λογική οργάνωση & ανάλυση δεδομένων, γ)αναπαράσταση δεδομένων μέσω αφαιρέσεων (όπως μοντέλα & προσομοιώσεις), δ)αναγνώριση, ανάλυση και υλοποίηση πιθανών λύσεων με στόχο την επίτευξη των πιο αποτελεσματικών αποδοτικών συνδυασμών βημάτων και πόρων. Διδακτικές τεχνικές: Εισήγηση, Επίδειξη, Ερωτήσεις-Απαντήσεις, Συζήτηση, Άσκηση, Ομάδες εργασίας. Μέσα: Βιντεοπροβολέας, Η/Υ, Λογισμικό Power Point Λογισμικό Διερμηνευτής Γλώσσας, Λογισμικό DynaLab, Φύλλα Εργασίας με δραστηριότητες. Εκτέλεση δραστηριοτήτων Διδακτική Ώρα (1η ) Εισαγωγή Κάνουμε σύνδεση με τα προηγούμενα μαθήματα. Ξεκινάμε τη παρουσίαση με τις διαφάνειες και ενδιάμεσα ρωτάμε τα παιδιά για ποιο λόγο να επιλέξουμε τον αλγόριθμο της σειριακής αναζήτησης ή της φυσαλίδας. Κύριο μέρος Φθάνουμε και εξηγούμε πως και ποια είναι η χειρότερη περίπτωση με παραδείγματα και στη συνέχεια τους τα δίνουμε έτοιμα σε προγράμματα με Διερμηνευτή Γλώσσας να τα εκτελέσουν και να επιβεβαιώσουν την καλύτερη και χειρότερη περίπτωση, έχοντας μια πρώτη εικόνα της απόδοσης. Στη συνέχεια παραμένουμε και προτείνουμε στους μαθητές να εργαστούν σε ομάδες των δύο(2) και να βρουν ποια/ές μεταβλητές καθορίζουν το μέγεθος εισόδου των αλγορίθμων-προγραμμάτων αυτών, καθώς αν σχετίζεται με την χειρότερη περίπτωση και να την προσδιορίσουν. Οπότε συνεχίζουμε για εμβάθυνση με νέα παραδείγματα ώστε να τα κατανοήσουν άμεσα και να εμπεδώσουν τις έννοιες αυτές. Εξηγούμε για το χρόνο εκτέλεσης προγράμματος ενός αλγορίθμου, δηλαδή πως υπολογίζεται η επίδοσή του με βάση τον αριθμό των πράξεων (εντολών) που προτείνει το σχολικό βιβλίο. Συνεχίζουμε και παρουσιάζουμε από αρχείο (.xls) οπτικοποιημένη την εκτέλεση του αλγορίθμου ταξινόμησης με τη μέθοδο της φυσαλίδας και ενώ οι μαθητές είναι σε ομάδες των 2, τους δίνουμε οδηγίες για δραστηριότητες μέσα από φύλλο εργασίας για να εκτελέσουν το αρχείο (. xls) και να παρατηρήσουν οπτικοποιημένη την εκτέλεση του αλγορίθμου της φυσαλίδας για συγκεκριμένες τιμές του πίνακα. Στη συνέχεια τους θέτουμε τα σχετικά ερωτήματα για τον όχι και τόσο καλό χρόνο εκτέλεσής του και τους παραθέτουμε τις δραστηριότητες που σχετίζονται με τον τρόπο βελτιστοποίησής του. Εδώ διακρίνουν το πλήθος των άχρηστων-περιττών εκτελέσεων και την ανάγκη τερματισμού όταν ο πίνακας είναι ταξινομημένος. Οπότε προκύπτει η αναγκαιότητα για τη δημιουργία της βελτιωμένης φυσαλίδας. Εικόνα 1. Περιβάλλον αρχείου.xls Οπτικοποίηση εκτέλεσης φυσαλίδας
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Σύγχρονες Διδακτικές Προσεγγίσεις 5 Στο τέλος, απαντάμε σε πιθανές απορίες, κουβεντιάζουμε και κάνουμε ανακεφαλαίωση. Διδακτική Ώρα (2η) Εισαγωγή Υποδεικνύουμε το περιβάλλον του λογισμικού DynaLab μέσω των ήδη έτοιμων αλγορίθμων - προγραμμάτων γραμμένα σε κανονική γλώσσα προγραμματισμού ( Pascal) από τα προηγούμενα παραδείγματα και ελέγχουμε ότι έχουν δοθεί σωστά όλα τα αρχεία προς διαχείριση για σύντομη εξοικείωση με το περιβάλλον. Εστιάζουμε στη συνέχεια σε δύο έτοιμα αρχεία-προγράμματα με τους δύο αλγορίθμους ταξινόμησης (φυσαλίδα και βελτιωμένη φυσαλίδα). Κύριο μέρος Αφήνουμε τους μαθητές να εκτελέσουν μέσω αυτού του λογισμικού DynaLab τα προγράμματα που ήταν σε Διερμηνευτή Γλώσσας (με τις ίδιες εντολές) σε κανονική πλέον γλώσσα Pascal, κάνοντας προσομοίωση της εκτέλεσης και λαμβάνοντας ένα κατά προσέγγιση κόστος απόδοσης της εκτέλεσής τους. Με αυτό τον τρόπο επιβεβαιώνονται και τυπικά τα συμπεράσματα της προηγούμενης διδακτικής ώρας, επιβεβαιώνοντας και στη πράξη τη διαφορά κόστους εκτέλεσης, λαμβάνοντας από το λογισμικό ενδεικτικές τιμές. Στη συνέχεια τους δίνουμε δύο νέα αρχεία μέσα από το λογισμικό με τη γενική δομή των προγραμμάτων και τις αρχικοποιήσεις για να τα συμπληρώσουν - ολοκληρώσουν μόνοι τους οι μαθητές σε Pascal. Τα προγράμματα είναι οι δύο αλγόριθμοι αναζήτησης (ολική σάρωση και μερική σάρωση για το ζητούμενο στοιχείο). Με τη βοήθεια του καθηγητή (λόγω έλλειψης εμπειρίας σε Pascal κυρίως στη σύνταξη) κάνουν τις αντίστοιχες ενέργειες με τα προηγούμενα για να εξάγουν τα σχετικά συμπεράσματα. Εικόνα 2. Περιβάλλον λογισμικού DynaLab Τίθεται το ερώτημα: αν στα συμπεράσματα που εξήχθησαν και στις δύο περιπτώσεις από τις συγκρίσεις των αλγορίθμων, έχουν αντιληφθεί πλήρως τη σημασία τους και τους ζητάμε να αιτιολογήσουν. Εστιάζουμε στη σύγκριση αλγορίθμων που πρέπει να γίνεται με χρήση ίδιων δεδομένων και κυρίως ίδιων συνθηκών. Ολοκληρώνουμε με πιθανές επερωτήσεις και περαιτέρω εξηγήσεις. Συνεχίζοντας επικαλούμαστε τις δύο περιπτώσεις διαφορετικών συνθηκών δίνοντας τα παραδείγματα: Ταξινόμηση με Συγχώνευση ήδη ταξινομημένων πινάκων σε νέο ταξινομημένο πίνακα και αναζήτηση μόνο σε ταξινομημένο πίνακα Δυαδική Αναζήτηση.
6 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Αναλύουμε και συζητάμε με τους μαθητές τις περιπτώσεις αυτές και εμβαθύνουμε στην αποδοτικότητα, το χρόνο εκτέλεσής τους, τις προϋποθέσεις σύγκρισης, τις περιττές επαναλήψεις. Τέλος αναθέτουμε στους μαθητές εργασία για το σπίτι, να υλοποιήσουν αυτούς τους αλγόριθμους σε Διερμηνευτή Γλώσσας και στη συνέχεια να προσομοιώσουν την εκτέλεσή τους μέσω του λογισμικού DynaLab και για να κάνουν σύγκριση με τους κανονικούς αλγόριθμους ταξινόμησης και αναζήτησης συμπληρώνοντας ένα πινακάκι με τις τιμές κόστους και τα στοιχεία τους. Πειραματική εφαρμογή Η προτεινόμενη διαδικασία διδασκαλίας εφαρμόστηκε τις σχολικές χρονιές 2015-16 και 2016-17 σε τρία Γενικά Λύκεια τμήματα στην Γ τάξη. Συγκεκριμένα, στο 7ο ΓΕΛ Αθηνών όπου σύμφωνα με το καταστατικό έχει ένα τμήμα Πληροφορικής-Οικονομίας με 20 μαθητές και ένα Θετικής κατεύθυνσης με 17 μαθητές για το πρώτο έτος και ένα τμήμα Πληροφορικής-Οικονομίας με 20 μαθητές και δύο Θετικής κατεύθυνσης με 16 και 15 μαθητές για το δεύτερο έτος, σύνολο 88. Το 1ο Πειραματικό Γενικό Λύκειο Αθηνών - Γεννάδειο είχε ένα τμήμα Πληροφορικής-Οικονομίας με 15 μαθητές και δύο Θετικής κατεύθυνσης με 18 και 18 μαθητές για το πρώτο έτος και ένα τμήμα Πληροφορικής-Οικονομίας με 12 μαθητές και δύο Θετικής κατεύθυνσης με 26 και 24 μαθητές για το δεύτερο έτος, σύνολο 113. Επίσης στο 38ο ΓΕΛ Αθηνών όπου σύμφωνα με το καταστατικό έχει ένα τμήμα Πληροφορικής-Οικονομίας με 26 μαθητές, καθώς και δύο τμήματα Θετικής κατεύθυνσης με 13 και 16 μαθητές αντίστοιχα για το πρώτο έτος και ένα τμήμα Πληροφορικής-Οικονομίας με 22 μαθητές, καθώς και ένα τμήμα Θετικής κατεύθυνσης με 26 μαθητές για το δεύτερο έτος, σύνολο 103. Συνολικά 143 μαθητές για το πρώτο έτος και 161 μαθητές για το δεύτερο έτος ή 168 μαθητές Πληροφορικής-Οικονομίας και 189 Θετικής κατεύθυνσης. Οι διδασκαλίες με τις δραστηριότητες διεξήχθησαν μέσα στα εργαστήρια και διήρκησαν δύο διδακτικές ώρες (90 λεπτά) η κάθε μια. Στο τέλος της 2ης διδακτικής ώρας συζητήσαμε και αξιολογήσαμε την όλη διαδικασία της διδασκαλίας και στη συνέχεια σε επόμενο χρόνο συγκρίναμε τα αποτελέσματα και τις εντυπώσεις των μαθητών από τα τρία σχολεία. Ο παρακάτω πίνακας παρουσιάζει το πλήθος των σωστών αποτελεσμάτων / απαντήσεων που έδωσαν οι μαθητές στις δραστηριότητες των Φύλλων Εργασίας 1 και 2, όταν τις υλοποίησαν μόνοι τους σε συνεργασία ανά ομάδες των δύο-τριών ατόμων σε Η/Υ, καθώς και στις επιμέρους εκτελέσεις των προγραμμάτων. Το πλήθος των μαθητών προκύπτει και από τα δύο σχολικά έτη ανά σχολείο. Πίνακας 1. Πλήθος απαντήσεων των μαθητών ανά δραστηριότητα Φύλλο Εργασίας 1 Φύλλο Εργασίας 2 Δραστηριότητες 1η 2η 3η 1η 2η 3η 7 ο ΓΕΛ Αθηνών 88 μαθητές 83 67 79 84 68 80 1 ο Πειρ. ΓΕΛ Αθηνών 113 μαθητές 106 89 101 109 86 102 38 ο ΓΕΛ Αθηνών 103 μαθητές 96 76 94 99 77 87 Πλήθος Σωστών Αποτελεσμάτων - Απαντήσεων στις 304 285 232 274 292 231 269 Παρατηρούμε ότι στη πρώτη δραστηριότητα οι μαθητές στο σύνολό τους ανταποκρίθηκαν σχετικά πολύ καλά. Στη δεύτερη δραστηριότητα παρατηρείται αισθητή πτώση των σωστών απαντήσεων και αυτό οφείλεται μάλλον στη δυσκολία να ξεχωρίσουν τις μεταβλητές που καθορίζουν το μέγεθος εισόδου των αλγορίθμων. Αρκετοί ειδικά στον δεύτερο αλγόριθμο αναφέρθηκαν στη μεταβλητή ι της δομής επανάληψης Για. Στη συνέχεια στην εκτέλεση του φύλλου excel της τρίτης δραστηριότητας
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Σύγχρονες Διδακτικές Προσεγγίσεις 7 οι σωστές απαντήσεις αυξήθηκαν σημαντικά κι αυτό διότι ο τρόπος προσομοίωσης της εκτέλεσης δεν άφηνε περιθώρια λάθους για τους μαθητές που ήταν παρατηρητικοί. Εντύπωση μας έκανε ότι κινητοποιήθηκαν ακόμη και μαθητές που ήταν σχετικά αδιάφοροι. Στη δεύτερη διδακτική ώρα, η πρώτη δραστηριότητα απαντήθηκε σχεδόν άριστα. Εμπέδωσαν άψογα τη διαφορά απόδοσης των δύο αλγορίθμων ταξινόμησης στοιχείων σε μονοδιάστατο πίνακα, που είχαν βρει μόνοι τους από τη προηγούμενη δραστηριότητα, εστιάζοντας τώρα μόνο στο κόστος και παρατηρώντας την καλύτερη και χειρότερη περίπτωση. Με τη δεύτερη δραστηριότητα υπήρξαν τεχνικά προβλήματα & δυσκολίες λόγο απειρίας των μαθητών να γράφουν κώδικα σε κανονική γλώσσα Pascal. Οι καθηγητές τους βοήθησαν πολύ για να κερδηθεί χρόνος. Η τελευταία δραστηριότητα ήταν καταλυτική διότι έδωσε αφορμή για μακροσκελείς συζητήσεις και εύστοχες ερωτήσεις σχετικές με τη σημασία που έχουν η επίδοση & απόδοση, ο χρόνος εκτέλεσης και γενικά το κόστος εκτέλεσης ενός αλγορίθμου κυρίως στην υπολογιστική σκέψη, που επηρεάζει την αρχική του σχεδίαση, αλλά την περαιτέρω βελτίωσή του στη συνέχεια. Βασικό συμπέρασμα ήταν ο τρόπος οργάνωσης της υπολογιστικής σκέψης των μαθητών να επηρεάζεται από απόδοση και το κόστος εκτέλεσης του αλγορίθμου. Συμπεράσματα Ειδικά την πρώτη σχολική χρονιά τα συμπεράσματα αυτά επαναπροσδιορίστηκαν - χρησιμοποιήθηκαν και σε επόμενα μαθήματα της διδακτέας ύλης. Επίσης, αυξήθηκε το ενδιαφέρον των μαθητών για το μάθημα και από μαθητές της θετικής κατεύθυνσης για ευνόητους λόγους ( δεν εξετάζεται το μάθημα πανελλαδικά). Όσο για τη δεύτερη σχολική χρονιά (που το 5ο κεφάλαιο είναι εκτός ύλης), εστιάσαμε περισσότερο στη σύγκριση συγκεκριμένων αλγορίθμων (κυρίως αναζήτησης και ταξινόμησης), ώστε να εξάγουμε τα επιθυμητά συμπεράσματα. Να σημειωθεί ότι η εξάσκηση στον υπολογιστή (με την οπτικοποίηση εκτέλεσης και το λογισμικό) ανά ζεύγη μαθητών είναι πολύ σημαντική γιατί αφ ενός αυξάνει το ενδιαφέρον και αφ ετέρου βοηθά το μαθητή να αντιληφθεί και να κατανοήσει τις νέες έννοιες που δεν αναλύονται ικανοποιητικά στο πίνακα. Επίσης, βοηθά το μαθητή να εστιάσει στο λάθος του και να προσπαθήσει ξανά, καθώς και να επιβεβαιώσει τη σκέψη του. Με αυτό τον τρόπο οι μαθητές μπόρεσαν να εμπεδώσουν και να εμβαθύνουν στις νέες έννοιες που ήταν οι στόχοι αυτής της διδασκαλίας. Πέραν όλων αυτών, η συγκεκριμένη πρόταση διδασκαλίας στοχεύει και σε μια σύνοψη σύγκρισης των διαφορετικών αλγορίθμων ταξινόμησης και αναζήτησης που προτάσσονται στις νέες οδηγίες διδασκαλίας του μαθήματος και που βοηθούν στην βελτίωση της υπολογιστικής σκέψης των μαθητών, καθώς και σε βασικές & ιδιαίτερες έννοιες του 6ου κεφαλαίου ΑΕΠΠ. Μέσα από τη συζήτηση με τους μαθητές, προέκυψε ότι οι μαθητές που στο παρελθόν είχαν σχετικά εξοικειωθεί με την έννοια της απόδοσης ενός αλγορίθμου, δεν είχαν συνειδητοποιήσει τη σημασία του βέλτιστου αλγόριθμου ή την επιλογή αλγορίθμου υπό συνθήκες, καθώς και το κέρδος στο χρόνο εκτέλεσης. Επίσης, τους έβαλε στο νόημα να μην υλοποιούν άμεσα έναν αλγόριθμο που θα είναι πιθανόν επιστημονικά σωστός, αλλά όχι και ο καλύτερος ή ο εξυπνότερος και ότι πρέπει να λαμβάνουν υπόψη τους και άλλα στοιχεία στην υλοποίησή του. Βοήθησε τους μαθητές στην αλλαγή του τρόπου σκέψης και τη σημασία που έχει στην βελτίωση της υπολογιστικής σκέψης για τη δημιουργία ενός αλγόριθμου/προγράμματος. Προσαρμόστηκαν, κατανόησαν, εμβάθυναν πολύ πιο εύκολα τις νέες αυτές έννοιες, που αν και κάποιοι την είχαν παρατηρήσει, δεν είχαν κατανοήσει τη χρησιμότητά τους και τη μεγάλη σημασία τους.
8 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Αναφορές Linn, M., & Dalbey, J. (1989). Cognitive Consequences of Programming Instruction, In E. Soloway & J. C. Spohrer (Eds), Studying the Novice Programmer, 57-81, Hillsdale, NJ, Lawrence Erlbaum Associates. Γεωργακόπουλος, Γ. Φ. (2002). Δομές Δεδομένων, Έννοιες, Τεχνικές και Αλγόριθμοι. Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο. Γεωργακόπουλος., Γ. Φ. (2006). Εισαγωγή στους αλγορίθμους. Τόμος Ι, T.H. Cormen, C.E. Leiserson, R.L. Rivest, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο. Κάππας, Κ.. (2002). Εκπαιδευτική και Παιδαγωγική Προσέγγιση της Αλγοριθμικής και του Προγραμματισμού με τις ΤΠΕ και Λογισμικά. Πρακτικά Εργασιών 3ου Πανελλήνιου Συνεδρίου «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση». Ξυνογαλάς, Σ., & Σατρατζέμη, Μ., & Δαγδιλέλης, Β. (2000). Η εισαγωγή στον προγραμματισμό: Διδακτικές Προσεγγίσεις και Εκπαιδευτικά Εργαλεία, Στο Β. Κόμης (Επιμ.), Πρακτικά Εισηγήσεων 2ου Πανελληνίου Συνεδρίου «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», 115-124, Πάτρα. Τζιµογιάννης, Α. & Κόµης, Β. (2000). Η έννοια της μεταβλητής στον Προγραμματισμό: δυσκολίες και παρανοήσεις μαθητών του Ενιαίου Λυκείου, Στο Β. Κόμης (Επιμ.), Πρακτικά Εισηγήσεων 2ου Πανελληνίου Συνεδρίου «Οι Τεχνολογίες της Πληροφορίας και της Επικοινωνίας στην Εκπαίδευση», 103-114, Πάτρα. Τζιμογιάννης, Α. (2003). Η διδασκαλία του Προγραμματισμού στο Ενιαίο Λύκειο: προς ένα ολοκληρωμένο πλαίσιο με στόχο την ανάπτυξη δεξιοτήτων επίλυσης προβλημάτων, Πρακτικά 2ου Πανελλήνιου Συνεδρίου των Εκπαιδευτικών για τις ΤΠΕ: «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη Διδακτική Πράξη», Τόμος Α, 706-720, Σύρος. Τζιμογιάννης, Α., & Πολίτης, Π. & Κόμης, Β. (2005). Μελέτη των Αναπαραστάσεων Τελειόφοιτων Μαθητών Ενιαίου Λυκείου για την Έννοια της Μεταβλητής, Πρακτικά Εργασιών 3ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Κόρινθος. Τσίχλας, Κ., & Μανωλόπουλος, Ι., & Γούναρης Α. (2015). Σχεδίαση και Ανάλυση Αλγορίθμων. Κοστολόγηση στοιχειωδών & βασικών πράξεων Αλγοριθμικές τεχνικές - Αλγόριθμοι Αναζήτησης και Ταξινόμησης. Φεσάκης, Γ. & Δημητρακοπούλου, Α. (2005). Γνωστικές Δυσκολίες Μαθητών Δευτεροβάθμιας Εκπαίδευσης σχετικά με την Έννοια της Προγραμματιστικής Μεταβλητής και Προτεινόμενες Παρεμβάσεις, Πρακτικά Εργασιών 3ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Κόρινθος. Φεσάκης Γ. Μαυρουδή Ε. & Πέτρου Α. (2014). Υπολογιστική Σκέψη: Εννοιολογική εξέλιξη, διεθνείς πρωτοβουλίες και προγράμματα σπουδών. Πρακτικά Εργασιών 7ου Πανελλήνιου Συνεδρίου «Διδακτική της Πληροφορικής», Ρέθυμνο.
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Σύγχρονες Διδακτικές Προσεγγίσεις 9 ΠΑΡΑΡΤΗΜΑ Φύλλο εργασίας 1 Δραστηριότητα 1 Ν 20 Αρχή_επανάληψης Διάβασε Χ Ν Ν 1 Μέχρις_ότου Χ=0 ή Ν=0 Γράψε Χ, Ν Σ 0 Διάβασε Μ Όσο Σ <= 100 και Μ>0 επανάλαβε Σ Σ + Μ ΠΛ ΠΛ + 1 Διάβασε Μ Τέλος_επανάληψης Γράψε Σ Θα κάνει : - 20 επαναλήψεις Μπορείτε να εντοπίστε την χειρότερη και καλύτερη περίπτωση ; στη χειρότερη περίπτωση που το Ν=? - 1 επανάληψη στη καλύτερη που το Χ=? στη πρώτη είσοδο. Ανοίξτε τα αρχεία ασκ1.γλώσσα και ασκ2.γλώσσα και εκτελέστε τα δίνοντας τις τιμές εισόδου για τη χειρότερη και καλύτερη περίπτωση αντίστοιχα. Τι παρατηρείτε ; Ανοίξτε το λογισμικό DynaLab, φορτώστε τα αρχεία par1.cod και par2.cod και πατήστε Animate, εκτελέστε τα για τις ίδιες τιμές. Παρατηρήστε τα αποτελέσματα και το κόστος. Δραστηριότητα 2 Σας δίνονται οι δύο αλγόριθμοι : Διάβασε Χ, Β Αν Χ >0 και Χ<10 τότε Α Χ 3 Αλλιώς Αν Χ < 100 τότε Α Χ + 3*Β + Β^2 Τ_Ρ(Χ+Β) Χ Α/2 Τ (Α Χ + Α_Τ(Β))/3 Σ Α + Χ + Τ Α Σ/3 Αλλιώς Χ Χ * 4 Διάβασε Χ Αν Χ MOD 2 = 0 τότε Α Χ 3 Γράψε Α Αλλιώς Για ι από 1 μέχρι 50 Διάβασε Β Σ Σ + Β Τέλος-επανάληψης ΜΟ Σ/50 Γράψε ΜΟ Τέλος_Αν
10 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Α Χ+2 Α Α Χ/2 Τέλος_Αν Γράψε Α Χωριστείτε σε ομάδες των 2 ανά Η/Υ και προσδιορίστε την καλύτερη και τη χειρότερη περίπτωση. Ποια/ές μεταβλητή/ές καθορίζει/ουν το μέγεθος εισόδου των δύο αλγορίθμων ; Αιτιολογήστε την απάντησή σας. Ανοίξτε το λογισμικό DynaLab, φορτώστε τα αρχεία par3.cod και par4.cod και πατήστε Animate, εκτελέστε τα για τις ίδιες τιμές. Παρατηρήστε τα αποτελέσματα και το κόστος. Δραστηριότητα 3 Ανοίξτε το αρχείο ela_fillin.xls και θεωρήστε ότι έχετε έναν πίνακα 1x10 και οι 10 θέσεις του είναι τα κελιά A1 ως Α10. Συμπληρώστε τα εσείς, αρχίζοντας από το Α1 προς το Α10 τα νούμερα :10, 9, 8, 7, 6, 5, 4, 3, 2, 1 αντίστοιχα ο πίνακάς σας δηλαδή θα έχει τη μορφή: 110 table(1) 99 table(2) 88 table(3) 77 table(4) 66 table(5) 55 table(6) 44 table(7) 33 table(8) 22 table(9) 11 table(10) Πατήστε το πλήκτρο ΕΚΤΕΛΕΣΗ ΒΗΜΑ-ΒΗΜΑ. Καθώς εκτελείται το πρόγραμμα εμφανίζει πιο μεγάλα και έντονα τα στοιχεία (αριθμούς) που συγκρίνονται. Σε περίπτωση που το αποτέλεσμα της σύγκρισης απαιτεί αντιμετάθεση υπάρχει ενημέρωση από το πρόγραμμα, με το μήνυμα αντιμετάθεση και πατώντας ΟΚ θα δούμε τα δύο στοιχεία να αλλάζουν θέση στον πίνακα. Μόλις τελειώσει τη σύγκριση μας ενημερώνει και εκεί μπορούμε να διακόψουμε τη διαδικασία, αν θέλουμε. Εσείς πατήστε Ναι σε όλα τα σημεία που θα γίνει η ερώτηση αυτή για να συνεχιστεί η διαδικασία μέχρι τέλους. Επίσης το πρόγραμμα μας ενημερώνει για το τέλος μιας σάρωσης (περάσματος) του πίνακα. (Σημ. Μια σάρωση τελειώνει όταν εκτελεστεί η εσωτερική επανάληψη και αλλάξει η τιμή της μεταβλητής που ορίζει την εξωτερική επανάληψη). (ΠΡΟΣΟΧΗ!. Για να εκτελεστεί σωστά η συγκεκριμένη δραστηριότητα δεν πρέπει να διακόψετε τη διαδικασία πατώντας Οχι σε κάποια από τις ερωτήσεις, γιατί τότε θα πρέπει να εισάγετε τα στοιχεία του πίνακα από την αρχή). Επαναλάβετε τη διαδικασία αυτή δίνοντας στο πίνακα τα στοιχεία 1, 5, 4, 3, 6, 2, 7, 8, 9, 10 αντίστοιχα. Ο πίνακάς σας δηλαδή θα έχει τη μορφή: 11 table(1) 55 table(2)
Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση Σύγχρονες Διδακτικές Προσεγγίσεις 11 44 table(3) 63 table(4) 66 table(5) 22 table(6) 77 table(7) 88 table(8) 99 table(9) 110 table(10) Πατήστε το πλήκτρο ΕΚΤΕΛΕΣΗ ΒΗΜΑ-ΒΗΜΑ. Καθώς τρέχει το πρόγραμμα εμφανίζει πιο μεγάλα και έντονα τα στοιχεία που συγκρίνονται. Σε περίπτωση που το αποτέλεσμα της σύγκρισης απαιτεί αντιμετάθεση θα ενημερωθούμε από το πρόγραμμα με το μήνυμα αντιμετάθεση και πατώντας ΟΚ θα δούμε τα δύο στοιχεία να αλλάζουν θέση στον πίνακα. Μόλις τελειώνει κάθε σάρωση να παρατηρείτε αν ο πίνακας ταξινομήθηκε ή όχι. Όταν ενημερώνει στο τέλος της σάρωσης αν θέλουμε να συνεχίσουμε ή όχι συνεχίζουμε αφού καταγράψουμε τη παρατήρησή μας. Εσείς πατήστε Ναι σε όλα τα σημεία που θα γίνει η ερώτηση αυτή για να συνεχιστεί η διαδικασία μέχρι τέλους. Παρατηρήστε προσεκτικά ότι πίνακας κάποια στιγμή θα είναι ταξινομημένος, ενώ ο αλγόριθμος θα συνεχίζει να εκτελείται. Μπορείτε να θυμηθείτε από τις παρατηρήσεις σας σε πόσες σαρώσεις (φροντίστε να τις έχετε μετρήσει), είχε ταξινομηθεί ο πίνακας πριν τελειώσει ο αλγόριθμος.? Ζητούμενο Α Τώρα αντιληφθήκατε γιατί εν λόγω αλγόριθμος δεν θεωρείται και ο καλύτερος γρηγορότερος ; που εστιάζεται η αδυναμία του;.............. Ζητούμενο Β Περιγράψτε συνοπτικά, με απλά λόγια το σκεπτικό βελτίωσής του, όπου είναι ο τρόπος αντιμετώπισης της παραπάνω αδυναμίας του.... Ποια από τις δύο δομές επανάληψης θα πρέπει να μετατρέψουμε με επανάληψη που δεν γνωρίζουμε εξ αρχής τον αριθμό των επαναλήψεων?.... Η χρήση μιας λογικής μεταβλητής θα σας βοηθούσε στη μετατροπή του αλγορίθμου.?...... Ζητούμενο Γ Προσπαθήστε να γράψετε τον βελτιωμένο αλγόριθμο και ονομάστε τον «Έξυπνη φυσαλίδα»........ Φύλλο εργασίας 2 Το λογισμικό DYNALAB βρίσκεται στο σύνδεσμο : https://www.dropbox.com/s/atzlllhxgy71gcz/dynalab.rar?dl=0 Δραστηριότητα 1
12 11 ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής Εκτελέστε από φάκελο Προσομοίωση που βρίσκεται στην επιφάνεια εργασίας σας το αρχείο PASCAL.exe και ανοίξτε τώρα το αρχείο taxin1.pas (πρόγραμμα με τον αλγόριθμο ταξινόμησης με φυσαλίδα σε pascal) και να κάνετε Compile, όπου αν δεν έχετε συντακτικά λάθη, γίνεται αυτόματη μετατροπή του και σε αρχείο taxin1.cod. Στη συνέχεια εκτελέστε από τον ίδιο φάκελο το αρχείο ANIMATE.exe και φορτώστε το αρχείο taxin1.cod, πατήστε το πλήκτρο EXECUTE και παρατηρήστε την εκτέλεση σε κανονική γλώσσα Pascal. Επίσης προσέξτε την εκτίμηση του κόστους εκτέλεσης για την τιμή/ές εισόδου που δώσατε και θα δείτε ότι διαφέρει σε κάθε περίπτωση. Να κάνετε το ίδιο και για το αρχείο taxin2.pas και taxin2.cod (πρόγραμμα με τον αλγόριθμο ταξινόμησης με τη βελτιωμένη - έξυπνη φυσαλίδα σε pascal) και εξάγετε τα συμπεράσματά σας, συγκρίνοντας τους αλγορίθμους και παρατηρώντας τα κόστη εκτέλεσης τους. Δραστηριότητα 2 Φορτώστε με τη σειρά τα αρχεία anaz1.pas και anaz2.pas που είναι τα προγράμματα με τους αλγόριθμους αναζήτησης και συμπληρώστε σε γλώσσα Pascal τα υπόλοιπα στοιχεία των προγραμμάτων. Αν δυσκολεύεστε ζητήστε τη βοήθεια του καθηγητή σας. Μετατρέψτε τα σε.cod και βρείτε τα κόστη εκτέλεσης. Δραστηριότητα 3 Μέχρι τώρα η σύγκριση αλγορίθμων γίνεται με χρήση ίδιων δεδομένων και κυρίως ίδιων συνθηκών, αλλά πως θα συγκρίνουμε και θα επιλέξουμε τον κατάλληλο αλγόριθμο για περιπτώσεις όπου τα δεδομένα είναι ίδια αλλά όχι και οι συνθήκες. Σας δίνονται οι αλγόριθμοι της Ταξινόμησης με συγχώνευση ήδη ταξινομημένων πινάκων και της Αναζήτηση μόνο σε ταξινομημένο πίνακα Δυαδική. Ως δραστηριότητα για το σπίτι σας ζητάμε να τους υλοποιήσετε και εκτελέσετε αρχικά σε διερμηνευτή γλώσσας παρατηρώντας την απόδοσή τους ή καλύτερα στο περιβάλλον του λογισμικού DynaLab για να έχετε και μια εκτίμηση του κόστους εκτέλεσής του, κυρίως για τη δυαδική αναζήτηση.