Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος
Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές
Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό Πλάνο Φάσεις Διδακτικού πλάνου
Εισαγωγή Στην εποχή μας, η ευχέρεια στη χρήση νέων τεχνολογιών, είναι προαπαιτούμενο σε τομείς όπως εκπαίδευση/μάθηση, εξάσκηση επαγγέλματος αλλά και ουσιαστική συμμετοχή στην κοινωνία. Η ευκολία χρήσης των τεχνολογικών εργαλείων είναι απαραίτητη έτσι ώστε οι χρήστες να είναι ικανοί όχι μόνο να καταναλώνουν περιεχόμενο, αλλά και να το κατασκευάσουν. (Resnick,2009)
Εισαγωγή Ο βασικός τρόπος με τον οποίο μπορεί κάποιος να κατασκευάσει μία ατομική δημιουργία στον υπολογιστή είναι ο προγραμματισμός. Αποτελεί ένα εργαλείο για να αποκτήσει κάποιος δομημένο τρόπο σκέψης, ο οποίος μπορεί να εφαρμοστεί σε πολλούς τομείς.
Προβλήματα Δυσκολίες Σύμφωνα με αρκετές έρευνες σχετικές με τη διδασκαλία του προγραμματισμού, έχει διαπιστωθεί ότι αρκετοί αρχάριοι προγραμματιστές συναντούν δυσκολίες στην κατανόηση και εφαρμογή βασικών αρχών και κανόνων του προγραμματισμού. Οι δυσκολίες αυτές μεταφράζονται σε κατασκευή αλγορίθμου ή/και προγράμματος.
Προβλήματα Δυσκολίες Ορισμένες δυσκολίες συναντώνται με συστηματικό τρόπο ανεξάρτητα από τη διδακτική μέθοδο που χρησιμοποιείται. Σαν αποτέλεσμα, παραμένουν ανθεκτικές στο χρόνο και συναντώνται τόσο σε μαθητές δημοτικού όσο και σε φοιτητές/σπουδαστές.
Προβλήματα Δυσκολίες Βάσει ερευνών έχουν διαπιστωθεί προβλήματα όπως : Κατανόηση Αλγορίθμου Ένας προγραμματιστής επιχειρεί να προβλέψει τη συμπεριφορά,να αιτιολογίσει ή να διορθώσει έναν αλγόριθμο. Μαθητές συχνά θεωρούν ότι το πρόγραμμα θα επιστρέψει το αποτέλεσμα που οι ίδιοι επιθυμούν και όχι αυτό που θα προκύψει από την εκτέλεση των εντολών. Κατανόηση Μεταβλητών
Προβλήματα Δυσκολίες Κατανόηση Εντολών Επιλογής Κατανόηση Επαναληπτικών Δομών Πίνακες Αναδρομή Μεταφορά γνώσεων από ένα προγραμματιστικό περιβάλλον σε ένα άλλο
Διδακτικό Πλάνο
Διδακτικό Πλάνο Το παρόν διδακτικό πλάνο αφορά αρχάριους προγραμματιστές κυρίως μαθητές, μπορεί όμως να εφαρμοστεί και με τη μορφή σεμιναρίου για οποιονδήποτε χρειάζεται μία πρώτη εξοικείωση με τον προγραμματισμό. Σαν πρόγραμμα θα χρησιμοποιηθεί το Scratch και θα συμπληρώνει τη θεωρία.
Διδακτικό Πλάνο Απαιτήσεις από τους μαθητές Βασική γνώση Η/Υ Ενασχόληση με το προγραμματιστικό εργαλείο Απαιτήσεις για το χώρο διεξαγωγής των μαθημάτων Η/Υ ανά δύο άτομα Εγκατάσταση του προγράμματος Δίκτυο
Διδακτικό Πλάνο Το παραπάνω πλάνο μπορεί να εφαρμοστεί σαν μάθημα στα πλαίσια μιας σχολικής χρονιάς ή σαν συμπλήρωμα ενός άλλου μαθήματος (π.χ. κατά τη διδασκαλία πληροφορικής στην Β & Γ Γυμνασίου).
Διδακτικό Πλάνο Ο διαχωρισμός μπορεί να γίνει σε φάσεις ως εξής : 1 η φάση : Χωρισμός σε ομάδες και γνωριμία με το Scratch 2 η φάση : Γνωριμία με την κοινότητα του Scratch 3 η φάση : Βασικές Δομές Προγραμματισμού
Διδακτικό Πλάνο Οι πρώτες δύο φάσεις μπορούν να ολοκληρωθούν στα πλαίσια δύο διδακτικών ωρών το καθένα. Η τρίτη φάση μπορεί να ολοκληρωθεί ανάλογα με τις απαιτήσεις του διδάσκοντα καθώς και την πρόοδο των μαθητών.
1 η Φάση - Scratch
Scratch Lifelong Kindergarten group στο ΜΙΤ Εκπαιδευτικό Λογισμικό διαθέσιμο σε πολλές γλώσσες (και στα Ελληνικά) Στόχος : διδασκαλία εννοιών προγραμματισμού σε παιδιά και εφήβους. Οπτικός Κώδικας Καλύτερη ανάγνωση σε σχέση με άλλες γλώσσες προγραμματισμού. scratch.mit.edu
2 η Φάση Κοινότητα του Scratch
Scratch Community Ομαδικό πνεύμα Υποστηρίζει τη συνεργασία Ανταλλαγή έργων, ιδεών, απόψεων Επαναχρησιμοποίηση προγραμμάτων Γρήγορη εκμάθηση και παραγωγικότητα
Scratch Community
3 η Φάση Βασικές Δομές Προγραμματισμού
Μεταβλητές-Τελεστές Στις γλώσσες Basic και Pascal μια μεταβλητή είναι μια συμβολική αναφορά σε μια θέση μνήμης του υπολογιστή που μπορεί να δεχθεί ως περιεχόμενο δεδομένα συγκεκριμένου τύπου (ακέραιους, πραγματικούς, αλφαριθμητικές τιμές, λογικές τιμές) και που έχει τη δυνατότητα να μεταβάλλεται κατά τη διάρκεια της εκτέλεσης της προγράμματος. Ο τύπος της και το όνομά της παραμένουν σταθερά κατά τη διάρκεια της εκτέλεσης της προγράμματος. Το όνομα της μεταβλητής μπορεί να περιέχει τόσο αλφαβητικά όσο και αριθμητικά σύμβολα περιορίζεται της από της κανόνες δημιουργίας ονομάτων που ισχύουν σε κάθε γλώσσα προγραμματισμού.
Μεταβλητές-Τελεστές Για να αποδοθεί μια τιμή ως περιεχόμενο μιας μεταβλητής χρησιμοποιείται είτε μια εντολή ανάγνωσης τιμής από το πληκτρολόγιο πχ. READ (Χ) είτε μια εντολή απόδοσης τιμής. Η εντολή απόδοσης τιμής (όνομα_μεταβλητής := αριθμητική παράσταση) υπολογίζει αρχικά την τιμή της αριθμητικής παράστασης στα δεξιά της εντολής και την αποδίδει ως περιεχόμενο της μεταβλητής που βρίσκεται στα αριστερά της εντολής. Οποιοδήποτε προηγούμενο περιεχόμενο της μεταβλητής χάνεται. Π.χ. Α := 3+2, Β := Α-Γ/2, Α:= Α+1.
Μεταβλητές-Τελεστές Για να υποστηριχθεί η θέση ότι η κατανόηση της μεταβλητής και της εντολής απόδοσης τιμής στον προγραμματισμό είναι μια περίπτωση εννοιολογικής αλλαγής έγινε έρευνα για να ανιχνευθούν πιθανές αναπαραστάσεις των μαθητών/μαθητριών που έχουν τη μορφή των συνθετικών μοντέλων. Από τις απαντήσεις των μαθητών/μαθητριών φάνηκε ότι οι μαθητές έχουν αρκετές εναλλακτικές αναπαραστάσεις για τη μεταβλητή και την εντολή απόδοσης τιμής. Κάποιες από τις εναλλακτικές αναπαραστάσεις των μαθητών/μαθητριών φαίνεται να προέρχονται από τις προϋπάρχουσες γνώσεις τους για τη μεταβλητή και την ισότητα στα Μαθηματικά.
Μεταβλητές-Τελεστές Γνωρίζουμε ότι οι έννοιες της μεταβλητής στα Μαθηματικά και της μεταβλητής στον Προγραμματισμό δεν είναι πλήρως ασύμβατες μεταξύ τους αλλά μερικώς ασύμβατες. Ένας καλός τρόπος κατανόησης τους στον προγραμματισμό θα ήταν αν χρησιμοποιούσαμε το Scratch
Μεταβλητές-Τελεστές
ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ Η Δομή Επιλογής ή ελέγχου είναι μια από τις βασικότερες δομές που εμφανίζονται σε ένα πρόγραμμα Ο αλγόριθμος επιλέγει ουσιαστικά ποιες εντολές θα εκτελεστούν ανάλογα με το αν μια συνθήκη είναι αληθής ή ψευδής
Δυσκολίες στην κατανόηση της από τους μαθητές οι πολύπλοκες λογικές εκφράσεις που έχουν να κάνουν με τη συνθήκη ελέγχου ο βαθμός εμφώλευσης ο εντοπισμός του χώρου εμβέλειας μετά το ΤΟΤΕ και το ΑΛΛΙΩΣ Οι μαθητές έχουν μάθει να εκτελούν σειριακά εντολές και η μεταπήδηση κάποιον εντολών μετά τον έλεγχο τους μπερδεύει.
Πρόταση διδασκαλίας με το Scratch Εισαγωγή στις δομές επιλογής με παράδειγμα If-else(). Ρωτάμε πόσο χρονών είστε? Εάν ηλίκια <18 ανήλικος αλλιώς ενήλικος
Εμφωλευμένες δομές επιλογής Ένα παράδειγμα όπου το πρόγραμμα θα μας ζητάει να εισάγουμε στοιχεία κι αναλόγως θα αποφασίζει τι να εκτελέσει. Οι μαθητές θα έχουν τη δυνατότητα να πειραματιστούν πάνω στα παραδείγματα.
Δομές επανάληψης Πολύ χρήσιμο εργαλείο στον προγραμματισμό Εισάγει τους μαθητές σ ένα νέο τρόπο προγραμματισμού διαφορετικό από αυτόν της σειριακής εκτέλεσης εντολών. Οι μαθητές μαθαίνουν να κάνουν πράγματα πολύ πιο γρήγορα απο ότι νωρίτερα.
Δυσκολίες στην κατανόηση της από τους μαθητές Μη κατανόηση ύπαρξης του ατέρμονα βρόχου Στην αναγνώριση της αρχικής τιμής της μεταβλητής ελέγχου Στην αναγνώριση της εντολής που χρησιμοποιείται για την ανανέωση της τιμής της μεταβλητής ελέγχου
Ένα ποσοστό των μαθητών (περίπου 35%) δεν είναι σε θέση να προσδιορίσει την αρχική τιμή της συνθήκης ελέγχου, τον ελάχιστο και το συνολικό αριθμό επαναλήψεων, καθώς και να περιγράψει πότε τερματίζει η επανάληψη.
Πρόταση διδασκαλίας με το Scratch Εισαγωγή στις δομές επανάληψης με παραδείγματα.
Πίνακες Σύνολο μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης
Πίνακες Προβλήματα Δεν είναι εξοικειωμένοι με την έννοια του πίνακα Αρίθμηση από 0 Προσδιορισμός ορίων πίνακα Δεν εξετάζουν πότε είναι πραγματικά απαραίτητη η χρήση τους
Κλήση Συναρτήσεων Βασικό δομικό στοιχείο του προγραμματισμού Προβλήματα Οι αρχάριοι συνηθίζουν να μην χρησιμοποιούν Έλλειψη αφαιρετικής σκέψης
Κλήση Συναρτήσεων Επίλυση Κατανόηση διαίρει και βασίλευε Ανάλυση σύνθετων προγραμμάτων σε απλούστερα Κάποιο παράδειγμα από τα μαθηματικά F(x) = x + 5
Αναδρομή Δυσκολία στην κατανόηση του πως καλεί μια συνάρτηση τον εαυτό της Προβλήματα Οι αρχάριοι συχνά χρησιμοποιούν ένα επαναληπτικό μοντέλο για να αναπαραστήσουν την αναδρομή Συνθήκη τερματισμού
Ερωτήσεις - Απορίες