Site hosted by Angelfire.com: Build your free website today!

7. Object Oriented τεχνικές και τρόπος σκέψης των παιδιών

7.1. Εισαγωγή

Ο όρος Object Oriented είναι στην πρώτη γραμμή της επικαιρότητας τελευταία. Όπως είναι φυσικό σε τέτοιες περιπτώσεις, ο όρος αυτός χρησιμοποιείται από πολλούς ανθρώπους με διαφορετικές έννοιες. [1] Οι Object Oriented τεχνικές εφαρμόζονται σε πολλά πεδία. Εδώ θα εξεταστούν σαν τρόπος σκέψης των παιδιών, που θα τα βοηθήσουν στην εκμάθηση διαφόρων εννοιών.

Ο τρόπος σκέψης με τη χρήση τεχνικών Object Oriented βασίζεται στην ακόλουθη κεντρική ιδέα: Ο πραγματικός κόσμος αποτελείται από διάφορα αντικείμενα. Αν δοθεί βάρος όχι στην απευθείας μάθηση ενός νέου αντικειμένου αλλά στην αντιστοίχηση του με κάποιο άλλο, στο οποίο υπάρχουν εμπειρίες, τότε η κατανόηση γίνεται πιο εύκολα.

Όπως λέει και ο Papert [2] "οτιδήποτε είναι εύκολο αν μπορείς να το αφομοιώσεις στην συλλογή των μοντέλων σου. Εάν δεν μπορείς, οτιδήποτε μπορεί να είναι υπερβολικά δύσκολο.  Το τι μπορεί να μάθει ένα άτομο και με ποιο τρόπο, εξαρτάται από το τι μοντέλα έχει διαθέσιμα."

Η LOGO σαν γλώσσα προγραμματισμού, περιέχει αρκετές έννοιες της object oriented φιλοσοφίας, όπως θα δούμε στη συνέχεια.  Ο μικρόκοσμός μας εμπλουτίζει την LOGO με περισσότερες τέτοιες έννοιες. Η χρήση αυτού του περιβάλλοντος βοηθάει τα παιδιά να αποκτήσουν νέες εμπειρίες. Αυτές θα αποτελέσουν τα μοντέλα τα οποία θα χρησιμοποιήσουν για την εκμάθηση νέων εννοιών.

7.2. LOGO και Object Oriented προγραμματισμός

Ο κόσμος γύρω μας αποτελείται από διάφορα αντικείμενα. Όταν κοιτάμε ένα αυτοκίνητο δεν το βλέπουμε σαν ένα σύνολο μορίων. Το διαιρούμε σε επιμέρους μονάδες: τροχοί, τιμόνι, παράθυρα, που η κάθε μία αντιστοιχεί σε ένα ξεχωριστό αντικείμενο. Μεταφέροντας το παράδειγμά μας στον κόσμο των υπολογιστών, οι σημερινές γλώσσες προγραμματισμού έχουν σαν βάση τους τα μόρια ενός συνόλου. Αντίθετα, οι Object Oriented γλώσσες προγραμματισμού έχουν σαν βάση τους τα ξεχωριστά αντικείμενα ενός συνόλου.[3] Η Lapidot [4] αναφέρει ότι "η αρχική object-oriented γλώσσα προγραμματισμού θεωρείται ότι είναι η SMALLTALK, αλλά το object-oriented πλαίσιο είναι διαθέσιμο και σε άλλες γλώσσες, όπως και η LOGO."
 

7.2.1. Object Oriented έννοιες στη LOGO

Σαν αντικείμενο (object) θεωρείται "μία αυτόνομη έξυπνη οντότητα, υπεύθυνη για τη δική της συμπεριφορά" [1]. Στην LOGO, το κύριο αντικείμενο που υπάρχει είναι η χελώνα. Η χελώνα έχει ιδιότητες όπως θέση και προσανατολισμό. Οι τιμές αυτών των ιδιοτήτων καθορίζουν την κατάσταση αυτού του αντικειμένου.

Μπορούμε να μιλήσουμε στη χελώνα στέλνοντας μηνύματα όπως FORWARD 50, RIGHT 90... Τα αντικείμενα έχουν μεθόδους για να χειριστούν τα μηνύματα που παίρνουν. Έτσι και η χελώνα έχει μεθόδους για να χειριστεί αυτά τα μηνύματα. Οι μέθοδοι είναι διαδικασίες οι οποίες απλά εκτελούνται με την αποστολή μηνυμάτων στα αντικείμενα.

Μία από τις βασικές έννοιες του Object oriented προγραμματισμού είναι η έννοια των κλάσεων. Σαν κλάση εννοούμε πολλά διαφορετικά αντικείμενα, που έχουν παρόμοια χαρακτηριστικά. Όλα τα αντικείμενα, που είναι μέλη μίας μεγαλύτερης ομάδας (κλάσης) κληρονομούν τις ιδιότητες που καθορίζονται από αυτή την κλάση. Επομένως ένα αντικείμενο είναι μία συγκεκριμένη οντότητα (στιγμιότυπο - instance) που ανήκει σε μία μεγαλύτερη ομάδα (κλάση). Αν δούμε ότι υπάρχουν ομάδες ομοειδών αντικειμένων που είναι στιγμιότυπα μιας μεγαλύτερης κλάσης μπορούμε να δημιουργήσουμε μία καινούργια κλάση σαν υποκλάση (subclass) της προηγούμενης.

Οι υποκλάσεις κληρονομούν όλα τα χαρακτηριστικά των parent class και μπορεί να έχουν ορισμένα χαρακτηριστικά που δεν έχει η parent class. [5]

Για παράδειγμα σαν κλάση μπορεί να θεωρήσουμε το σύνολο σχημάτων. Υποκλάσεις σε αυτή την κλάση μπορεί να είναι τα παραλληλόγραμμα, πολύγωνα, κύκλοι ... Στην κλάση των παραλληλογράμμων έχουμε υποκλάσεις τα ορθογώνια και τα πλάγια παραλληλόγραμμα. Στην κλάση των ορθογωνίων πάλι έχουμε τα τετράγωνα και τα συνήθη ορθογώνια. Τέλος η υποκλάση των τετραγώνων περιέχει σαν στιγμιότυπα τα σχήματα που παράγονται από μία διαδικασία SQUARE :X η οποία κατασκευάζει τετράγωνα πλευράς :X.

Όλα τα σχήματα έχουν το χαρακτηριστικό ότι αποτελούνται από ένα σύνολο γραμμών. Τα παραλληλόγραμμα έχουν το ιδιαίτερο χαρακτηριστικό ότι οι πλευρές τους είναι ανά δύο παράλληλες.  Τα ορθογώνια έχουν επιπλέον το χαρακτηριστικό ότι οι πλευρές τέμνονται κάθετα. Τέλος τα τετράγωνα έχουν το πρόσθετο χαρακτηριστικό ότι όλες οι πλευρές τους είναι ίσες. Με αυτό το τρόπο εξασφαλίζεται η κληρονομικότητα μεταξύ των διαφόρων επιπέδων κλάσεων.

Η LOGO υποστηρίζει αυτές τις αρχές του Object oriented προγραμματισμού. Αλλά όπως λέει και η Lapidot [4] "έννοιες όπως αφαίρεση, dynamic binding και property lists, που προσφέρονται από την LOGO, μας βοηθούν να δουλέψουμε μέσα με χρήση object oriented τεχνικών τόσο καλά όσο και με τις procedure oriented τεχνικές".
 

7.2.2. Οι διαδικασίες σαν αντικείμενα

Τις διαδικασίες, που φτιάχνονται στη LOGO, μπορούμε να τις θεωρήσουμε εκτός από εντολές και σαν αντικείμενα. Αν δίναμε άμεσα εντολές στη χελώνα για να φτιάξει ένα σχήμα, τότε καθαρίζοντας την οθόνη θα χάναμε το σχήμα και θα έπρεπε να ξαναδώσουμε αναλυτικά τις ίδιες εντολές για φτιάξουμε ένα όμοιο σχήμα. Επίσης, το σχήμα δεν είναι μια αυτόνομη οντότητα γιατί παράγεται σταδιακά από ανεξάρτητα μεταξύ τους τμήματα.

Αντίθετα, χρησιμοποιώντας διαδικασίες, μπορούμε να έχουμε όσα σχήματα θέλουμε, απλά καλώντας τη διαδικασία με το όνομά της. Το σχήμα έτσι, είναι μία αυτόνομη οντότητα και κατασκευάζεται με την κλήση του ονόματος της διαδικασίας. Τα τμήματα της διαδικασίας έχουν συγκεκριμένη θέση και σειρά εκτέλεσης και εκτελούνται πάντοτε με τον ίδιο τρόπο.

Έτσι, μπορούμε να θεωρήσουμε ένα τετράγωνο εκτός από διαδικασία και σαν αντικείμενο. Το αντικείμενο αυτό θεωρούμε ότι περιλαμβάνει και τη διαδικασία που κατασκευάζει το σχήμα και το ίδιο το σχήμα.

Ο μικρόκοσμός μας προσπαθεί να κάνει φανερό στα παιδιά ότι οι διαδικασίες θεωρούνται και σαν αντικείμενα.

7.3. Ο Μικρόκοσμός μας και η Χρήση object oriented τεχνικών

7.3.1. Οι διαδικασίες σαν αντικείμενα

Η LOGO είναι μια διαδικαστική ιεραρχική γλώσσα. Η διαδικασία είναι μία αυτοτελής αλληλεπιδραστική οντότητα δηλαδή έχει θέση ισοδυναμίας με οποιαδήποτε primitive εντολή ή operation της γλώσσας.[6]

Οι διαδικασίες που φτιάχνει το παιδί βασίζονται στις στοιχειώδεις εντολές της γλώσσας αλλά και στις άλλες διαδικασίες που φτιάχνει το ίδιο. Οι διαδικασίες αυτές ανήκουν σε ανώτερα επίπεδα ιεραρχικής δομής των διαδικασιών.  Οι εντολές της γλώσσας, αλλά και οι διαδικασίες του παιδιού, αναφέρονται σε λειτουργίες κατωτάτου επιπέδου. Για παράδειγμα λένε στη χελώνα να προχωρήσει, να στρίψει κλπ.

Τις εντολές που συνιστούν τον μικρόκοσμό μας, τα παιδιά τις θεωρούν ότι ανήκουν στο ίδιο χαμηλό επίπεδο με τις εντολές της LOGO. Οι εντολές αυτές όμως, αναφέρονται σε λειτουργίες που ανήκουν σε ανώτερα επίπεδα. Για παράδειγμα μπορούν να μετακινήσουν ένα ολόκληρο σχήμα που παράγεται από μία διαδικασία. Μπορούν επίσης να μεταφέρουν σχήματα που παράγονται από διαδικασίες ανωτέρων επιπέδων. Αυτό βοηθάει τα παιδιά να θεωρήσουν τις διαδικασίες και σαν αντικείμενα.

Με το μικρόκοσμό μας, τα παιδιά μπορούν να αναφερθούν σε κάποια διαδικασία που έχουν φτιάξει τα ίδια. Η LOGO δίνει στα παιδιά τη δυνατότητα να ομαδοποιούν τις διαδικασίες τους. Τα παιδιά, μεταφέροντας το σχήμα κάποιας διαδικασίας, που είναι σύνθεση άλλων υποδιαδικασιών, βλέπουν ολόκληρο τα σχήμα να μετακινείται και θεωρούν την διαδικασία σαν μια αυτόνομη οντότητα. Επίσης, όταν μία διαδικασία περιέχει δύο σχήματα, τότε τα παιδιά βλέπουν να μετακινούνται και τα δύο σχήματα μαζί λέγοντας ότι "αν κάνουμε SET θα μετακινήσουμε και τα δύο και όχι μόνο το ένα". Έτσι αντιστοιχούν ολόκληρες τις διαδικασίες με τα σχήματα που κατασκευάζουν και θεωρούν την κάθε διαδικασία σαν μία οντότητα.

Τα παιδιά μπορούν να κατασκευάσουν με μία διαδικασία, πολλά σχήματα - όμοια ή διαφορετικά το ένα με το άλλο - και να τα θεωρούν σαν αυτόνομες οντότητες ,κάνοντας χρήση της εντολής του μικρόκοσμού μας TAG, η οποία δίνει όνομα στο σχήμα που παράγεται από μία διαδικασία.  Έτσι, ακόμα και στην περίπτωση που έχουν φτιάξει μερικά όμοια τετράγωνα, έχουν τη δυνατότητα να τα βλέπουν σαν διαφορετικές οντότητες λόγω των διαφορετικών ονομασιών που έδωσαν με την TAG.
 

7.3.2. Δομή των αντικειμένων

Οι διαδικασίες σαν αντικείμενα, όπως όλα τα αντικείμενα στον object oriented προγραμματισμό [5] μπορούν να αναπαρασταθούν με την εξής γενική μορφή:

Το ιδιωτικό μέρος (private part) ενός object είναι η δομή των δεδομένων (data structure) και το σύνολο των λειτουργιών (operations) που μπορούν να εκτελεστούν πάνω σ’ αυτή τη δομή. Το object έχει επίσης ένα μέρος, που το μοιράζεται (shared part) και που είναι τα σημεία επαφής του (interface) με τον γύρω κόσμο.

Διάφορα μηνύματα (messages) κατευθύνονται προς τα σημεία επαφής (interface) ενός αντικειμένου που περιγράφουν τι λειτουργία απαιτείται από το object, αλλά όχι πώς θα εκτελεστεί αυτή η λειτουργία. Το object που παίρνει το μήνυμα αποφασίζει πώς θα εκτελέσει τη λειτουργία που του ζητήθηκε.

Το ρόλο του interface παίζει το όνομα του σχήματος .

Στην Data Structure υπάρχει το σύνολο των σημείων του σχήματος, αλλά χωρίς να φαίνεται στο παιδί.

Οι λειτουργίες που μπορούν να επιδράσουν πάνω σ’ αυτό το object, είναι η μεταφορά του σχήματος η οποία επηρεάζει το σύνολο των σημείων του και η ενεργοποίησή του. Άλλες λειτουργίες που θα μπορούσαν να είχαν μπει είναι η περιστροφή, η μεγέθυνση, η σμίκρυνση κλπ. Όμως δεν ενσωματώθηκαν στον μικρόκοσμο, επειδή θα δυσκόλευαν τα παιδιά στην κατανόηση των καρτεσιανών συντεταγμένων.

Τα μηνύματα που στέλνονται στα objects είναι η SET και η GET.

7.3.3. Αφαίρεση δεδομένων

Καθορίζοντας σε ένα object το ιδιωτικό του μέρος και παρέχοντας μηνύματα που ενεργοποιούν μια συγκεκριμένη λειτουργικότητα, πετυχαίνουμε το κρύψιμο της πληροφορίας (information hiding), πράγμα που σημαίνει ότι λεπτομέρειες για υλοποίηση των διαφόρων λειτουργιών, κρύβονται από οτιδήποτε βρίσκεται έξω από το object (στοιχεία του προγράμματος, πραγματικός κόσμος κλπ).

Το πρόγραμμά μας υποστήριξε την αφαίρεση των δεδομένων (data abstraction)."Σκοπός της αφαίρεσης των δεδομένων είναι να επιτρέψει την χρήση των δεδομένων (data objects) απλώς με την χρησιμοποίηση του ονόματός τους, χωρίς την ανάγκη ύπαρξης πλήρους γνώσης για την υλοποίησής τους." [1] Αυτό έγινε με την αντιστοιχία ενός ονόματος στο σύνολο της ευθυγράμμων τμημάτων που αποτελούν ένα σχήμα.

Η αφαίρεση και το κρύψιμο πληροφορίας είναι πολύ φυσιολογικές δραστηριότητες, που τις χρησιμοποιούμε καθημερινά όταν προσπαθούμε να δημιουργήσουμε μοντέλα για τον κόσμο που μας περιβάλλει και για τις λειτουργίες που εκτελούνται δίπλα μας. Έτσι αν θέλουμε να περιγράψουμε την κατασκευή ενός σπίτιου θεωρούμε τα αντικείμενα : σκελετός, παράθυρα, πόρτα, σκεπή. Κάθε ένα από αυτά αποτελείται από άλλα αντικείμενα. Οι λειτουργίες, που γίνονται χρησιμοποιώντας τα, αφορούν την κατασκευή (σύνθεση) ενός σπιτιού, τη βελτίωση κάποιων μερών του κλπ.

Έτσι στα παιδιά η αναπαράσταση του πραγματικού κόσμου γίνεται πιο άμεση. Ο τρόπος σκέψης τους οργανώνεται καλύτερα και βρίσκεται πιο κοντά στο τρόπο με τον οποίο είναι οργανωμένος ο έξω κόσμος.
 

7.4. Object Oriented τεχνικές σαν μέσο μάθησης

Ο object oriented σχεδιασμός συστημάτων δημιουργεί ένα μοντέλο του πραγματικού κόσμου το οποίο μπορεί να πραγματοποιηθεί με software. Τα objects παρέχουν ένα μηχανισμό για την αναπαράσταση του πεδίου πληροφοριών ενώ οι λειτουργίες περιγράφουν τη διεργασία η οποία σχετίζεται με το πεδίο πληροφοριών. Τα μηνύματα (σα μηχανισμός interface) παρέχουν ένα μέσο με το οποίο εκτελούνται οι λειτουργίες. Το κύριο χαρακτηριστικό του Object Oriented Σχεδιασμού  είναι ότι τα αντικείμενα "γνωρίζουν" τι λειτουργίες μπορούν να εφαρμοστούν πάνω σ’ αυτά. Η γνώση αυτή επιτυγχάνεται συνδυάζοντας δεδομένα και διαδικασίες γενικής μορφής σε ένα object.[5]

Ο γενικός τρόπος σχεδιασμού object oriented συστημάτων είναι ο ακόλουθος[7]:

Το ίδιο γενικό διάγραμμα μπορούμε να το χρησιμοποιήσουμε σαν μέθοδο στη διαδικασία της μάθησης. Το παραπάνω γενικό πλαίσιο μάθησης είναι σύμφωνο με την θέση του Papert [2], που θεωρεί απαραίτητες τις εμπειρίες για την κατανόηση νέων εννοιών. Επίσης η επανάληψη των σταδίων της μάθησης είναι ταυτόσημο με τον κοινό ισχυρισμό των Lawler και diSessa ότι "η γνώση είναι αποσπασματική και ότι η μάθηση συμβαίνει μέσα από μία διαδικασία απόκτησης και αναδιοργάνωσης διακριτών ποσοτήτων γνώσης" [8].

Η θέση των αντικειμένων μέσα σ’ αυτό τη διαδικασία της μάθησης είναι ίδια με την θέση των μικροόψεων στη θεωρία του Lawler. Ο Lawler [9] υποστηρίζει ότι η δόμηση του νου είναι μία διαδικασία γέννησης και αλληλεπίδρασης μικροόψεων, δηλαδή αποσπασματικών αντιλήψεων του κόσμου. Σαν μικροόψεις θεωρεί τις εσωτερικές γνωστικές δομές, που είναι άμεσα εξαρτημένες με το περιβάλλον, τα προβλήματα και τις πραγματικές εμπειρίες από την καθημερινή ζωή.

Αλλά σαν αντικείμενο έχουμε θεωρήσει μία αυτόνομη οντότητα, που περιγράφει ένα τμήμα του πραγματικού κόσμου. Μπορούμε δηλαδή, κάνοντας μια αντιστοίχηση στα αντικείμενα και στις μικροόψεις, να θεωρήσουμε ότι ο νους δομείται από αντικείμενα. Η μάθηση μπορεί να επιτευχθεί συσχετίζοντας τα ήδη οργανωμένα αντικείμενα με τις νέες έννοιες που προσπαθούμε να κατανοήσουμε.

Τα παιδιά χρησιμοποιώντας αυτές τις αρχές του object oriented σχεδιασμού, αποκτούν παρόμοιο τρόπο για τη σκέψη τους. Έτσι μια νέα έννοια, για να την κατανοήσουν, την συσχετίζουν με τις προηγούμενες εμπειρίες τους και προσπαθούν να δημιουργήσουν συνδέσεις με αυτές. Οι τυχόν προσπάθειες για κατανόηση, ανεξάρτητα από τις υπάρχουσες εμπειρίες δύσκολα καρποφορούν.

7.5. Συμπεράσματα

Η Logo και ο μικρόκοσμος που κατασκευάσαμε, δίνουν ευκαιρίες στα παιδιά να χρησιμοποιήσουν έννοιες του Object Oriented προγραμματισμού. Επεκτείνοντας τις συσχετίσεις μεταξύ των αντικειμένων στο προγραμματιστικό περιβάλλον στις συσχετίσεις μεταξύ των νέων εννοιών, που θέλουμε να μάθουμε και των εμπειριών που ήδη έχουμε, η διαδικασία της μάθησης γίνεται πολύ εύκολη.

Η Lapidot [4] επισημαίνει ότι "δεν είναι επιτακτικό να αντικαταστήσουμε τον procedure oriented τρόπο με τον object oriented, αλλά οφείλουμε να αντιμετωπίσουμε σοβαρά τις object oriented τεχνικές ως προς τον τρόπο που βλέπουμε τη ζωή και σκεπτόμαστε για τον προγραμματισμό".

Δεν είναι μέσα στους στόχους μας να μάθουμε τα παιδιά object oriented προγραμματισμό. Αυτό που επιδιώκουμε είναι να δώσουμε έμφαση σε μια απλουστευμένη μορφή του, έτσι ώστε να μάθουν να οργανώνουν τη σκέψη τους και να αντιλαμβάνονται καλύτερα τον πραγματικό κόσμο.
 

7.6. Βιβλιογραφία:

[1] Τσαλγατίδου Α.: "Σημειώσεις για ανάπτυξη λογισμικού με χρήση τεχνικών Object Oriented". Πανεπιστήμιο Αθηνών 1990
[2] Papert S.: "MINDSTORMS". The Harvester Press 1980
[3] "Περιοδικό RAM". Τεύχος 19 /Οκτώβριος 1989
[4] Lapidot T.: "Communication Issues in programming - The role of Objects." Proceedings of the third International Conference for Logo and Mathematics Education. Mondreal 1987
[5] Pressman R.: "SOFTWARE ENGINEERING. A practitioner’s Approach".
McGraw Hill 1987 [6] Κυνηγός Χ.: "Ο προγραμματισμός σαν μέσο μαθησιακής εμπειρίας στην οργάνωση της σκέψης στο δημοτικό σχολείο". Πανεπιστήμιο Αθηνών 1991
[7] Booch G. : "Software engineering with ADA". Benjamin-Cummings 1983
[8] Κυνηγός Χ.: "Σημειώσεις του μαθήματος Ηλεκτρονικοί Υπολογιστές ΙΙ για του φοιτητές του τμήματος ΦΠΨ με κατεύθυνση την Ψυχολογία". Πανεπιστήμιο Αθήνας 1991
[9] Lawler R.W : "Computer Experience and Cognitive Development. A Child’s Learnigs in a Computer Culture". Ellis Horwood 1985

[Επιλογές] [Βιογραφικό] [Εισαγωγή]
[Προηγούμενο Κεφάλαιο] [Επόμενο Κεφάλαιο]