Διδακτική Προγραμματισμού Χαρίκλεια Τσαλαπάτα 20/2/2012
Διδακτική προγραμματισμού Παλαιότερα, η διδασκαλία του προγραμματισμού ταυτιζόταν με τη διδακτική της πληροφορικής Πλέον Η διδακτική της πληροφορικής ενδιαφέρεται και για Το πώς η τεχνολογία διευκολύνει τη μάθηση Μεθόδους επίλυσης προβλημάτων Μορφές συλλογισμού για αρχάριους και έμπειρους προγραμματιστές
Επιρροές Το πώς διδάσκεται εξαρτάται από το πώς αντιλαμβανόμαστε το τι είναι ένα πρόγραμμα Μια σειρά υπολογισμών (κλασική αντίληψη στη 2-βάθμια) Συναρτήσεις με εισόδους που παράγουν μια έξοδο Αντικείμενα και σχέσεις μεταξύ τους Τελικά όμως αφορά την επίλυση ενός προβλήματος
Δεξιότητες Συνεπώς η διδακτική επικεντρώνεται στην ανάπτυξη δεξιοτήτων για επίλυση προβλημάτων Κατανόηση του προβλήματος Κατανόηση δεδομένων εισόδου Συλλογή επιπλέον πληροφορίας ικανής για επίλυση Ανάλυση πιθανών λύσεων, διάσπαση του προβλήματος σε μικρότερα Σύνθεση λύσης Προγραμματισμός εντολών Έλεγχος αποτελεσμάτων
Δεξιότητες
Τυπικές πρακτικές διδασκαλίας Τα περισσότερα εγχειρίδια διδάσκουν: Δομές - Τι είναι ένας βρόγχος, δομή επιλογής, κλπ Πρακτική εφαρμογή των δομών με παραδείγματα Κατανόηση προγραμμάτων Ανάπτυξη προγραμμάτων σε προεπιλεγμένη γλώσσα Συχνά δε δίνεται επαρκής έμφαση στην αλγοριθμική σκέψη (στρατηγικές επίλυσης)
Όσον αφορά διαδικασίες και αντικείμενα Διαδικαστικός προγραμματισμός Αρχική κατάσταση Τελική κατάσταση (αποτελέσματα) Συντακτικό Χρησιμοποιείται από αρχάριους Αντικειμενοστρεφής προγραμματισμός Αντικείμενα και σχέσεις Είναι δύσκολος στην εφαρμογή από αρχάριους Συνήθως ξεκινούν από διαδικαστικό μοντέλο και μετά εφαρμόζουν το αντικειμενοστρεφές Μπορεί να δηλώσουν αντικείμενα που δεν είναι απαραίτητα, κλπ.
Η εξελικτική διαδικασία της εκμάθησης Ο προγραμματιστής αισθάνεται ότι εξελίσσεται συνεχώς Η επίλυση ενός προβλήματος δημιουργεί ιδέες για επίλυση και άλλων Καθώς αυξάνεται η εμπειρία χρησιμοποιεί πιο αποδοτικές μεθόδους επίλυσης Π.χ. αντικείμενα, recursion, κλπ. Απαιτείται χρόνος και πρακτική εφαρμογή Πολλοί πιστεύουν ότι απαιτούνται 10 χρόνια για να γίνει κάποιος έμπειρος προγραμματιστής
Επιπτώσεις και δεξιότητες που αναπτύσσονται Δομή στη σκέψη Ακρίβεια έκφρασης Αναλυτική και κριτική σκέψη Αλγοριθμική σκέψη, αναζήτηση παρόμοιων περιπτώσεων, διάσπαση σε μέρη, σύνθεση Τεχνικές αναζήτησης λαθών Που μπορεί να μεταφερθούν σε άλλα αντικείμενα Τεχνικές επίλυσης προβλημάτων Που μπορεί να μεταφερθούν σε άλλα αντικείμενα
Έμπειροι προγραμματιστές Έχουν αναπτυγμένες στρατηγικές δεξιότητες Είναι ευέλικτοι Πρόθυμοι να εγκαταλείψουν υποθέσεις Αναγνωρίζουν εύκολα παρόμοια προβλήματα Αντιμετωπίζουν ένα πρόβλημα από πάνω προς τα κάτω Τείνουν να βρίσκουν λύση μέσω δομών ή αντικειμένων Καλή συντακτική και σημασιολογική γνώση Ταχύτεροι και ακριβέστεροι
Αρχάριοι προγραμματιστές Επιφανειακή γνώση (αναμενόμενο) Ξοδεύουν λίγο χρόνο στο σχεδιασμό Δυσκολεύονται να εφαρμόσουν στρατηγικές επίλυσης Δυσκολεύονται να εφαρμόσουν τη θεωρητική γνώση στην πράξη (π.χ. αλγορίθμους) Επιχειρούν τοπικές λύσεις με έλλειψη σύνδεσης με τη γενική εικόνα του προβλήματος Προσεγγίζουν το πρόγραμμα γραμμή προς γραμμή
Προσεγγίσεις διδασκαλίας Κλασική Παρουσίαση εννοιών Εναλλακτικές μέθοδοι Πειραματισμός Εξερεύνηση εκτέλεση μικρών παραδειγμάτων στον υπολογιστή Συνεργασία Αξιοποίηση εκπαιδευτικών εργαλείων Έμφαση στην επίλυση προβλημάτων Έμφαση στο σχεδιασμό και την αλγοριθμική σκέψη
Μελέτη περίπτωσης Περιγραφή ενός προβλήματος Συζήτηση για τη λύση Παρουσίαση μιας γενικά αποδεκτής λύσης Σχολιασμός της λύσης από τους μαθητές Έμφαση στην κατανόηση Πιθανές βελτιώσεις Διόρθωση λαθών Συζήτηση για την εφαρμογή της λύσης σε άλλα προβλήματα Μεταφορά σε άλλες περιπτώσεις Ανάπτυξη επιπλέον ασκήσεων από του μαθητές
Πηγές Παλαιγεωργίου, Διδακτική της Πληροφορικής Ι και ΙΙ Κόμης