Πανεπιστήµιο Πελοποννήσου Τµήµα Κοινωνικής & Εκπαιδευτικής Πολιτικής Το λογισµικό υναµικής Ο τικο οίησης Αλγορίθµων DAVE και η αξιο οίησή του στη διδασκαλία της Αλγοριθµικής Βραχνός Ευριπίδης, Αθανάσιος Τζιµογιάννης Προγραµµατισµός και Αλγοριθµική Ο προγραµµατισµός ως γνωστική και εκπαιδευτική δραστηριότητα συνιστά ένα έργο µε ιδιαίτερες δυσκολίες. Σύµφωνα µε τη βιβλιογραφία δύο είναι, κατά βάση, οι πηγές δυσκολιών (Κόµης & Τζιµογιάννης,, 2006; Τζιµογιάννης,, 2005): O χειρισµός αφηρηµένων οντοτήτων που έχουν µικρή σχέση µε τα στοιχεία της καθηµερινής εµπειρίας των µαθητών (π.χ. δείκτης πίνακα, αναδροµή κ.α.)..). Οι αρχάριοι προγραµµατιστές δεν έχουν αναπτύξει τους µηχανισµούς και τα υποδείγµατα προγραµµατισµού των έµπειρων προγραµµατιστών.
Αντιµετώ ιση των δυσκολιών Ο σχεδιασµός των διδακτικών στρατηγικών που θα πρέπει να ακολουθηθούν, προϋποθέτει τον εντοπισµό των δυσκολιών αυτών, καθώς και των αναπαραστάσεων που έχουν οι µαθητές για τις προγραµµατιστικές έννοιες. Μια πηγή δυσκολιών συνιστούν οι αφηρηµένες έννοιες/δοµές (de Raadt 2007, Jenkins 2002; Lahtinen et al. 2005) Αντιλήψεις των µαθητών για τις αλγοριθµικές δοµές Σύµφωνα µε µια µεγάλη έρευνα σε εκπαιδευτικούς (Dale 2006), η δοµή επανάληψης και οι πίνακες αποτελούν τις έννοιες στις οποίες οι µαθητές παρουσιάζουν τις περισσότερες δυσκολίες. Τη δυσκολία στον προγραµµατισµό µε πίνακες αναφέρει και ο Garner (2005). εν υπάρχει κάποια διεθνής έρευνα εστιασµένη στις αντιλήψεις των µαθητών για τους πίνακες Η βιβλιογραφία στις δοµές δεδοµένων είναι φτωχή (Seppällä et al. 2006, Danielsek et al. 2012) Ο du Boulay (1986) αναφέρει ότι οι φοιτητές συγχέουν το στοιχείο του πίνακα µε τον δείκτη (i, A[ i ])]
Computer Science Curricula 2013 In Joint Task Force on Computing Curicula.. IEEE Computer Society and Association for Computing Machinery, CS2013 Strawman draft. Identify array as a fundamental data structure that constitutes a required component of programming. Arrays, however, are considered a difficult topic in computer science education. Students often do not acquire an accurate mental model even after receiving instruction. Πίνακες i 1 2 3 4 5 6 Σ[ [ i ] 8 13 21 34 55 89 Η πιο σηµαντική δοµή δεδοµένων στις περισσότερες γλώσσες προγραµµατισµού Η πρώτη δοµή δεδοµένων µε την οποία έρχονται σε επαφή οι φοιτητές πληροφορικής αλλά και οι µαθητές (Γ Λυκείου, ΑΕΠΠ) Παρατηρούνται πολλές δυσκολίες των µαθητών κατά τη διδασκαλία αλγορίθµων επεξεργασίας πινάκων (αναζήτηση, ταξινόµηση)
Ερευνητικά Ερωτήµατα Ποιες είναι οι αναπαραστάσεις/αντιλήψεις αντιλήψεις των µαθητών για την δοµή δεδοµένων του ίνακα; Ποιες είναι οι παρανοήσεις/δυσκολίες στον προγραµµατισµό µε πίνακες; Μεταφέρονται κάποιες από τις παρανοήσεις που έχουν οι µαθητές στην έννοια της µεταβλητής στους πίνακες; 1 η Έρευνα Ενότητα: Βασικές Έννοιες Πινάκων Χρόνος: Μία διδακτική ώρα είγµα: : 102 µαθητές της τεχνολογικής κατεύθυνσης της Γ τάξης του Γενικού Λυκείου οµή Ερωτηµατολογίου Ερωτήσεις ανοιχτού τύπου Εκτέλεση κώδικα (tracing code) Εξήγηση της λειτουργίας του (explaining code) Ασκήσεις ανάπτυξης κώδικα (writing code)
Συµ εράσµατα Η έννοια του πίνακα είναι χτισµένη πάνω στην έννοια της µεταβλητής άρα οι παρανοήσεις των µαθητών για την έννοια της µεταβλητής µεταφέρονται και στους πίνακες ιατηρούν την αντίληψη ότι σε µια µεταβλητή αποθηκεύεται όλο το ιστορικό τιµών που αυτή έχει διαχειριστεί. εν έχουν οικοδοµήσει επαρκείς αναπαραστάσεις για την έννοια του στοιχείου A[i] ενός πίνακα Α, όσον αφορά τη χρήση του σε εντολές και υπολογισµούς όπως µε µια µεταβλητή.. (Χ[( Χ[ i ] ] 1) Αντιµετωπίζουν την έκφραση A[i] ως ένα (σταθερό) αντικείµενο παρότι πρόκειται για δύο οντότητες (Α, i). 2 η Έρευνα Ενότητα: Αλγόριθµοι Ταξινόµησης Χρόνος: Μια διδακτική ώρα είγµα: : 200 µαθητές της τεχνολογικής κατεύθυνσης της Γ τάξης του Λυκείου 1 ο Λύκειο Πετρούπολης Πειραµατικό Λύκειο Ιλίου Πειραµατικό Λύκειο Αγίων Αναργύρων 7 ο Γενικό Λύκειο Περιστερίου 42 φοιτητές του τµήµατος Επιστήµης Υπολογιστών του Πανεπιστηµίου Πελοποννήσου
2 η Έρευνα: Συµ εράσµατα Ενώ µπορούν να εφαρµόσουν τον αλγόριθµο ταξινόµησης της φυσαλίδας σε µια σειρά από αντικείµενα µε τα χέρια, αντιµετωπίζουν σοβαρές δυσκολίες κατά την κωδικοποίηση. Τα βασικά προβλήµατα εµφανίζονται πάλι στον χειρισµό εκφράσεων µε πίνακες και κυρίως όταν η αναφορά σε στοιχείο του πίνακα είναι έκφραση και όχι µια απλή µεταβλητή, π.χ. A[ j 1 ] Να λάβουµε υπόψη ότι η φυσαλίδα έχει και κάποιες εγγενείς δυσκολίες Προτεινόµενες Παρεµβάσεις Οι µαθητές θα πρέπει να οικοδοµήσουν κατάλληλα µοντέλα αναπαράστασης της δοµής του πίνακα. Τα µοντέλα αυτά δεν είναι εύκολο να οικοδοµηθούν µε την παραδοσιακή διδασκαλία στον πίνακα και µε παραδείγµατα µε χαρτί και µολύβι. Η χρήση εναλλακτικών περιβαλλόντων, όπως είναι τα περιβάλλοντα οπτικοποίησης αλγορίθµων µπορούν να συµβάλλουν στην οικοδόµηση επαρκών αναπαραστάσεων για τους πίνακες και τους σχετικούς αλγορίθµους επεξεργασίας.
Ο τικο οίηση Η οπτικοποίηση βοηθάει τους µαθητές να κατασκευάσουν επεξηγηµατικά µοντέλα αλγοριθµικών εννοιών και δοµών δεδοµένων Static algorithm Visualization Algorithm Animation Algorithm Visualization Static code & data Visualization Code & data Animation Program Visualization Ο τικο οίηση Αλγορίθµου Algorithm Animation/Visualization Μια διαδραστική οπτικοποιηµένη παρουσίαση της λογικής που κρύβεται πίσω από τον αλγόριθµο, βασισµένη σε µια σειρά εικόνων και αναπαραστάσεων που εστιάζουν στα βασικά χαρακτηριστικά της συµπεριφοράς του (Hundhausen & Brown,, 2007). Μήπως η απόκρυψη κάποιων χαρακτηριστικών µπορεί να δηµιουργήσει επιπλέον παρανοήσεις στους µαθητές; Που πρέπει να εστιάσουµε;
Α οτελεσµατικότητα Ο τικο οίησης Προφανώς ναι Οι πειραµατικές έρευνες όµως δεν είχαν τα αναµενόµενα αποτελέσµατα (Byrne et al., 1999; Hundhausen & Brown,, 2006; Stasko,, 1993; 1997). Ο Hundhausen (2002) Τελικά µάλλον όχι... Α οτελεσµατικότητα Ο τικο οίησης Ο Hundhausen (Hundhausen 2002) µετά από την ανάλυση των αποτελεσµάτων 24 πειραµατικών διδασκαλιών, κατέληξε στο συµπέρασµα ότι όσο ιο ενεργά συµµετέχουν οι µαθητές σε δραστηριότητες µε το εκ αιδευτικό λογισµικό, τόσο καλύτερα α οδίδουν αργότερα, όταν καλούνται να υλο οιήσουν τον αλγόριθµο ου διδάχθηκαν. Στο ίδιο συµπέρασµα έχουν καταλήξει και άλλες έρευνες (Hundhausen 2006) (Byrne( 1997) (Kehoe( 1999) (Stasko( 1993,1997).
Ενεργο οίηση του µαθητή Πως θα επιτύχουµε τον µέγιστο βαθµό ενεργοποίησης του µαθητή στην οπτικοποίηση του αλγορίθµου; ίνοντάς του τη δυνατότητα να οπτικοποιήσει τον δικό του αλγορίθµου και να ανιχνεύσει µόνος του τα λογικά λάθη που έχει κάνει Ο µαθητής πρέπει να επικεντρωθεί σε λογικά και όχι συντακτικά ή άλλα σφάλµατα που προκύπτουν κατά την πληκτρολόγηση του αλγορίθµου Η διδακτική χρησιµότητα τους λάθους Τι ροτείνουµε Σχεδιασµός λογισµικού οπτικοποίησης αλγορίθµων που θα βασίζεται στις αρχές της διερευνητικής µάθησης. Βασική προϋπόθεση είναι η ενεργή συµµετοχή του µαθητή στην προσοµοίωση του αλγορίθµου, ελέγχοντας την οπτικοποίηση ή τροποποιώντας τον κώδικά του. Πρόταση κατάλληλων γραφικών αναπαραστάσεων για κάθε είδος αλγορίθµου
Χαρακτηριστικά του λογισµικού Παροχή κατάλληλων γραφικών αναπαραστάσεων των αντικειµένων, για διαφορετικούς αλγορίθµους, έτσι ώστε να αναδεικνύονται τα ιδιαίτερα χαρακτηριστικά της συµπεριφοράς κάθε αλγορίθµου. Ανεξαρτησία πλατφόρµας (HTML5/JavaScript) Μεγάλος βαθµός αλληλεπίδρασης Έλεγχος της εκτέλεσης του αλγορίθµου Τροποποίηση σηµαντικών σηµείων του αλγορίθµου Αλγόριθµοι ου υ οστηρίζονται Αλγόριθµος Πολυ λοκότητα Χειρότερη Μέση Ταξινόµηση Ευθείας Ανταλλαγής (Bubble Sort) O( N 2 ) O( N 2 ) Ταξινόµηση µε Ε ιλογή (Selection Sort) O( N 2 ) O( N 2 ) Ταξινόµηση µε Εισαγωγή (Insertion Sort) O( N 2 ) O( N 2 ) Γρήγορη Ταξινόµηση ( Quick Sort ) O( N 2 ) O(N logn) Συγχώνευση ( Merge ) O(N + M) O(N + M) ιαχωρισµός ( Partitioning ) O( N ) O( N ) Σειριακή Αναζήτηση ( Linear Search ) O( N ) O( N ) υαδική Αναζήτηση ( Binary Search ) O( logn ) O( logn )
Ταξινόµηση Ευθείας Ανταλλαγής Ταξινόµηση Ευθείας Ανταλλαγής 2
υαδική Αναζήτηση Γρήγορη Ταξινόµηση
Η διαφορά της θεωρίας α ό την ράξη είναι ολύ µικρή στη θεωρία αλλά ολύ µεγάλη στην ράξη 3 η Έρευνα Ενότητα: Αλγόριθµοι Ταξινόµησης Χρόνος: ύο διδακτικές ώρες (διάλειµµα προαιρετικό ) Χώρος : Σχολικό Εργαστήριο Πληροφορικής Οι µαθητές χωρίστηκαν σε οµάδες των 12 ώστε να έχουµε 1 µαθητή ανά Η/Υ Η έρευνα πραγµατοποιήθηκε σε 4 οµάδες είγµα 4x12 = 48 µαθητές της τεχνολογικής κατεύθυνσης δύο γενικών λυκείων (7 ο και 10 ο Λύκειο Περιστερίου)
3 η Έρευνα Ερωτηµατολόγιο: ραστηριότητες δοµηµένες σε απλά βήµατα, οι οποίες ήταν σχεδιασµένες έτσι ώστε ο µαθητής να επιλύσει τα προβλήµατα που του δίνονταν µε τη βοήθεια του λογισµικού. Κάθε δραστηριότητα χτίζεται πάνω στην προηγούµενη (εποικοδοµητισµός). Ζητήθηκε από τους µαθητές να καταγράψουν στο ερωτηµατολόγιο εκτός από τις απαντήσεις και τον τρόπο σκέψης τους όσο αυτό ήταν δυνατόν 3 η Έρευνα: Συµ εράσµατα Όλοι οι µαθητές απάντησαν στις περισσότερες ερωτήσεις. Σε δύσκολα ερωτήµατα αρκετοί µαθητές διέθεσαν πολύ ώρα εκτελώντας δοκιµές µε το λογισµικό Σε αρκετά ερωτήµατα άλλαξαν την αρχική τους απάντηση αφού είδαν τα αποτελέσµατα της οπτικοποίησης Σε δύσκολα ερωτήµατα που στην 2 η έρευνα απάντησε ένα 10% τώρα απάντησε το 50%.
3 η Έρευνα: Συµ εράσµατα Με τη βοήθεια του λογισµικού διόρθωσαν λογικά λάθη που έκαναν όπως Προσπέλαση πέρα από τα όρια του πίνακα, π.χ. Α[0], Α[Ν+1] Περισσότερες ή λιγότερες από τις απαιτούµενες επαναλήψεις Η άµεση οπτικοποίηση του αλγορίθµου διευκόλυνε τους διαδοχικούς πειραµατισµούς των µαθητών. Γενικές Παρατηρήσεις Χρειάστηκαν τουλάχιστον 20 λεπτά για να εξοικειωθούν οι µαθητές µε το λογισµικό Ελάχιστοι διάβασαν καλά τις οδηγίες στην πρώτη σελίδα πριν ξεκινήσουν Προτίµησαν την εκτέλεση του αλγορίθµου πολλές φορές παρά βήµα βήµα ( προς τα πίσω εκτέλεση ) Η συντριπτική πλειοψηφία των µαθητών ασχολήθηκε και τις 2 ώρες και έδειξε ενδιαφέρον
Τι τους βοήθησε Χαρακτηριστικά του λογισµικού που βοήθησαν Η παράλληλη εκτέλεση του κώδικα δίπλα από την οπτικοποίηση και η ένδειξη της εκτελούµενης εντολής Η εµφάνιση των δεικτών i, j Προτιµούν το στοιχείο του πίνακα να µεταφέρεται και όχι να αντιγράφεται ( 70% ) Θεωρούν ότι πρώτα πρέπει να πειραµατιστούν µε το λογισµικό και µετά να τους ζητηθεί να γράψουν κώδικα Τους διευκόλυνε στον εντοπισµό και στην διόρθωση (λογικών) λαθών Οι µαθητές εί αν Πρέ ει αρχικά ο µαθητής να ειραµατιστεί µόνος του ώστε να καταλάβει τι γίνεται Το βρήκα χρήσιµο και µε βοήθησε να κατανοήσω τον αλγόριθµο της φυσαλίδας, διότι βλέ ω ως τρέχει ο αλγόριθµος εντολή, εντολή και τι κάνει η καθεµία α ό αυτές Στην αντιµετάθεση θα µ ορούσε το κενό ου αφήνει το κουτί να είχε κά οιο χρώµα ή κάτι άλλο. εν χρειάζεται να µένει το αντίγραφο, γιατί για να καταλάβεις τι γίνεται, ρέ ει να βλέ εις αυτό ου γίνεται στον ραγµατικό κόσµο και όχι στις µηχανές.
Μελλοντική Έρευνα και Εφαρµογές Απόδοση Πολυπλοκότητα Αλγορίθµου Ευστάθεια Αλγορίθµου Σύγκριση Αλγορίθµων π.χ. Σειριακή µε υαδική Αναζήτηση Επιστροφή σε προηγούµενο βήµα του αλγορίθµου (προς τα πίσω εκτέλεση) ηµοσιεύσεις Ευριπίδης Βραχνός, Αθανάσιος Τζιµογιάννης, Μελέτη των Ανα αραστάσεων των µαθητών της Γ' Λυκείου για την έννοια του Πίνακα χρησιµο οιώντας την ταξινοµία SOLO. 5ο Πανελλήνιο Συνέδριο " ιδακτική της Πληροφορικής", Απρίλιος, Τµήµα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ,, 2010 Ευριπίδης Βραχνός, Αθανάσιος Τζιµογιάννης. Εκ αιδευτικά εριβάλλοντα ο τικο οίησης αλγορίθµων: Μια ε ισκό ηση των τεχνικών και αιδαγωγικών χαρακτηριστικών. Θέµατα στην Εκπαίδευση,, 2:3, 215-145, 145, 2009. Euripides Vrachnos, Athanassios Jimoyiannis.Dave Dave: : A Dynamic Algorithm Visualization Environment for Novice Learners. 8th IEEE International Conference on Advanced Learning Technologies, Santander, Spain, July 1-55 2008 Ευριπίδης Βραχνός, Αθανάσιος Τζιµογιάννης, Σχεδιασµός ενός Περιβάλλοντος υναµικής Ο τικο οίησης Αλγορίθµων: Το Σύστηµα Dave. 4ο Πανελλήνιο Συνέδριο " ιδακτική της Πληροφορικής", Μάρτιος, Πάτρα 2008
ηµοσιεύσεις Τζιµογιάννης, Α.. (2005). Προς ένα παιδαγωγικό πλαίσιο διδασκαλίας του προγραµµατισµού στη δευτεροβάθµια εκπαίδευση, στο Α. Τζιµογιάννης (επιµ επιµ.), Πρακτικά 3 ου Πανελλήνιου Συνεδρίου ιδακτική της Πληροφορικής, (σελ 99-111), Κόρινθος. Κόµης, Β.. & Τζιµογιάννης, Α.. (2006). Ο Προγραµµατισµός ως µαθησιακή δραστηριότητα: από τις εµπειρικές προσεγγίσεις στη γνώση παιδαγωγικού περιεχοµένου, Θέµατα στην Εκ αίδευση, 7(3), 229-255. 255. Hundhausen,, C.D., Douglas A.S., and Stasko T.J. (2002) A metastudy of algorithm visualization effectiveness.. Journal of Visual Languages & Computing, 3(3):259-290. 290. Hundhausen,, C.D., Brown L.J. (2006) Designing, visualizing, and discussing algorithms within a CS 1 studio experience: An empirical study. Computers & Education. Hundhausen,, C.D., Brown, J.L. (2007), What You See Is What You Code: A 'Live' Algorithm Development and Visualization Environment for Novice Learners. Journal of Visual Languages and Computing, 18(1):22-47.