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

8. Συμβατότητα του μικρόκοσμου με το προγραμματιστικό περιβάλλον που τον υποστηρίζει

8.1. Εισαγωγή

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

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

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

8.2. Είσοδοι / Έξοδοι

"Η ευελιξία των διαδικασιών είναι αυτό που τις κάνει τόσο δυναμικές. Για να χειριστούμε αυτή την ευελιξία, χρειαζόμαστε ένα τρόπο για να πούμε στην διαδικασία τι ακριβώς θέλουμε να κάνει. Επομένως, κάθε διαδικασία μπορεί να δεχθεί ένα συγκεκριμένο αριθμό εισόδων. Κάθε είσοδος είναι ένα κομμάτι πληροφορίας." [1]
Ο τρόπος σύνταξης των εισόδων στη LOGO είναι συγκεκριμένος.  Τα σημεία στίξης που χρησιμοποιούνται για να δηλωθούν οι είσοδοι σε μία διαδικασία είναι: Τα εισαγωγικά μπαίνουν μπροστά από μία λέξη με σκοπό να μην θεωρήσει τη λέξη αυτή σαν διαδικασία αλλά σαν ένα απλό όνομα. Για παράδειγμα ενώ το SQUARE η LOGO το θεωρεί σαν όνομα κάποιας διαδικασίας και την εκτελεί, το "SQUARE το θεωρεί σαν απλό όνομα, το οποίο μπορεί να τυπωθεί, να χρησιμοποιηθεί σαν μεταβλητή...

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

Οι εντολές του μικροκόσμου μας χρησιμοποίησαν τον ίδιο τρόπο σύνταξης για τις εισόδους τους, διατηρώντας συμβατότητα με το περιβάλλον της LOGO. Η πρώτη εντολή στο μικρόκοσμο μας είναι η TAG. Αυτή δίνει ένα όνομα στο σχήμα που παράγεται από μία διαδικασία. Δέχεται δύο εισόδους, η πρώτη είναι το όνομα της διαδικασίας με τις παραμέτρους της (αν υπάρχουν) και η δεύτερη είναι το όνομα που δίνουμε στο σχήμα.

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

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

Αν έχουμε μια διαδικασία HOUSE που κατασκευάζει ένα σπίτι και θέλουμε να δώσουμε στο σχήμα της το όνομα SPITI τότε μπορούμε να δώσουμε: TAG "HOUSE "SPITI

Μπορούμε επίσης να δώσουμε και TAG [HOUSE] "SPITI

Αν έχουμε μια διαδικασία που κατασκευάζει τετράγωνα διαφόρων μεγεθών, ορισμένη σαν SQUARE :X, όπου :X το μήκος πλευράς του τετραγώνου, τότε πρέπει να χρησιμοποιήσουμε υποχρεωτικά τις αγκύλες. Μπορούμε έτσι να πούμε TAG [SQUARE 10] "TETRAGONO

Μία εντολή της APPLE LOGO, που είναι αντίστοιχη με την TAG, είναι η SAVEL. Αυτή σώζει στο δίσκο μία ομάδα διαδικασιών που τις έχουμε τοποθετήσει σε μια λίστα. Για παράδειγμα, έστω ότι έχουμε τις διαδικασίες SQUARE, TRIANGLE και HOUSE και θέλουμε να σώσουμε τις δύο πρώτες σε ένα αρχείο. Τότε πρέπει να τις βάλουμε σε μια λίστα και να τις σώσουμε στο δίσκο σε ένα αρχείο με το όνομα πχ. SXHMATA δίνοντας την εντολή:
SAVEL [SQUARE TRIANGLE] "SXHMATA

Έτσι βλέπουμε μια αντιστοιχία ανάμεσα στις δύο εντολές, αφού και δύο δέχονται σαν είσοδο μια λίστα και ένα όνομα.
Η επόμενη εντολή του μικρόκοσμού μας είναι η GET. Αυτή λέει στη χελώνα να πιάσει ένα σχήμα με το όνομα που του έχει δώσει η TAG. Η GET δέχεται μία είσοδο η οποία είναι το όνομα του σχήματος που θέλουμε να πιάσει η χελώνα. Επειδή αναφερόμαστε σε ένα όνομα, πρέπει να χρησιμοποιήσουμε εισαγωγικά. Αν για παράδειγμα έχουμε δώσει το όνομα TETRAGONO στο σχήμα της διαδικασίας SQUARE 10, τότε μπορούμε να πούμε να πιάσει αυτό το σχήμα δίνοντας την εντολή:
GET "TETRAGONO

Αντίστοιχη εντολή της LOGO είναι LOAD η οποία φορτώνει ένα αρχείο.[2] Και αυτή δέχεται σαν είσοδο το όνομα του αρχείου που θέλουμε να φορτώσουμε. Για παράδειγμα αν έχουμε ένα αρχείο με όνομα DEMO δίνουμε:
LOAD "DEMO

Η επόμενη εντολή είναι η SET. Αυτή λέει στη χελώνα πόσο πρέπει να μετακινήσει το σχήμα που κρατάει η χελώνα. Έχει μία είσοδο, η οποία είναι λίστα που περιέχει δύο αριθμούς.  Οι αριθμοί είναι μία ειδική περίπτωση ονόματος. Δεν απαιτούνται τα εισαγωγικά, τα οποία εννοούνται. Αν θέλουμε να μετακινήσουμε το σχήμα 10 βήματα δεξιά και 10 βήματα πάνω τότε λέμε:
SET [10 10]

Αν θέλουμε να πάει αριστερά ή κάτω χρησιμοποιούμε το (-). Η εντολή SET είναι αντίστοιχη με την εντολή SETPOS της LOGO.  Αυτή τοποθετεί την χελώνα στις γραφικές συντεταγμένες, που της ορίζουμε. Εδώ οι αριθμοί αναφέρονται στις αποστάσεις από το κέντρο της οθόνης. Η σύνταξή της είναι ακριβώς ίδια με την SET.  Και εδώ όταν θέλουμε να πάμε αριστερά ή κάτω από το κέντρο της οθόνης βάζουμε πάλι (-). Μπορούμε δηλαδή να πούμε στη χελώνα να πάει 10 βήματα κάτω από το κέντρο και 20 βήματα δεξιά του λέγοντας:
SETPOS [-10 20]

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

H εντολή SHAPES είναι operation και έχει σαν έξοδο μία λίστα, που αποτελείται από τα ονόματα των σχημάτων τα οποία βρίσκονται στην οθόνη. Το κάθε σχήμα έχει πάρει το όνομά του από την εντολή TAG.

Έστω, για παράδειγμα, ότι έχουμε στην οθόνη τα σχήματα TETRAGONO και SPITI. Τότε αν ζητήσουμε να μας τυπώσει τα ονόματα των σχημάτων που βρίσκονται στην οθόνη θα έχουμε
PR SHAPES
TETRAGONO SPITI
Η σύνταξή της είναι ακριβώς όμοια με την σύνταξη της BURIEDNAMES. Η εντολή αυτή της Macintoch LOGO επιστρέφει σαν έξοδο μια λίστα με τα ονόματα των μεταβλητών, που είναι κρυμμένες  με την εντολή BURYNAME ή την εντολή BURYALL.

Τέλος η operation CURRENT επιστρέφει το όνομα του σχήματος που κρατάει η χελώνα. Είναι το όνομα του τελευταίου σχήματος, που έχει "πιαστεί" από την χελώνα μέσω της GET.
Έτσι αν είχαμε κάνει GET "SPITI και αργότερα δεν γνωρίζαμε ποιο σχήμα κρατάει η χελώνα, τότε μπορούσαμε να ζητήσουμε να μας τυπώσει το τρέχων σχήμα λέγοντας
PR CURRENT
SPITI

Μια εντολή της LOGO, αντίστοιχη με την CURRENT είναι η PREFIX η οποία επιστρέφει το όνομα του τρέχοντος δίσκου.
Για όλες τις εντολές του μικρόκοσμού μας προσπαθήσαμε να ακολουθήσαμε τον τρόπο σύνταξης και τα σημεία στίξης που χρησιμοποιεί η LOGO για την σύνταξη των εντολών της.  Πετύχαμε έτσι να υπάρχουν αντιστοιχίες ανάμεσα στις εντολές μας και στις εντολές της LOGO. Η αντιστοιχία δεν περιοριζόταν μόνο στο συντακτικό κομμάτι των εντολών, αλλά και στην εννοιολογική τους δομή.
 

8.3. Μηνύματα λάθους

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

Η πληροφορία που εμπεριέχεται σε ένα μήνυμα λάθους είναι:

Για παράδειγμα έστω μία διαδικασία HOUSE, που κατασκευάζει ένα σπίτι και περιέχει τις υποδιαδικασίες SQUARE και TRIANGLE.
Αν το όνομα της SQUARE είχε γραφεί σαν SQURE τότε κατά την
εκτέλεση της HOUSE θα  εμφανιζόταν το μήνυμα
I DON’T KNOW HOW TO SQURE IN HOUSE
Αυτό το μήνυμα μας λέει τα εξής: Πρώτον το είδος του λάθους
που παρουσιάζεται μέσα από τη φράση
I DON’T KNOW HOW TO ...
Αυτό το μήνυμα το παρουσιάζει επειδή καλείται μία διαδικασία (η SQURE) η οποία δεν έχει οριστεί. Δεύτερον μας λέει ότι η συγκεκριμένη έκφραση στην οποία εμφανίστηκε το λάθος είναι η λέξη SQURE. Τέλος μας λέει ότι το λάθος ανιχνεύτηκε καθώς η LOGO εκτελούσε την διαδικασία με όνομα HOUSE.

Οι πιο συνηθισμένες εκφράσεις μηνυμάτων λάθους είναι οι ακόλουθες:

Το μήνυμα " ... DOESN’T LIKE ... AS INPUT" σημαίνει ότι έχουν παραβιαστεί οι κανόνες για το είδος των εισόδων μιας διαδικασίας. Εμείς όταν διαπιστώναμε κάποιο λάθος στον τύπο δεδομένων των εισόδων βγάζαμε παρόμοιο μήνυμα λάθους.

Για παράδειγμα
SET [3]
SET DOESN’T LIKE [3] AS INPUT
H SET έχει σαν είσοδο μία λίστα με δύο συντεταγμένες. Το είδος του λάθους είναι ότι δεν είναι σωστές οι είσοδοι της διαδικασίας. Η έκφραση στην οποία υπάρχει το λάθος είναι το [3]. Τέλος η διαδικασία, στην οποία δεν ταιριάζουν οι είσοδοι, είναι η SET γιατί η λίστα που δέχτηκε σαν είσοδο, περιείχε μόνο τη μία από τις συντεταγμένες που απαιτούσε.
Το μήνυμα "... IS UNDEFINED" παρουσιάζεται όταν ζητηθεί κάτι που δεν έχει ορισθεί. Για παράδειγμα όταν ζητήσουμε να τυπωθεί (Print Out) ο κώδικας μίας διαδικασίας δίνοντας PO "xxx και δεν υπάρχει η διαδικασία xxx, τότε εμφανίζεται το μήνυμα
xxx IS UNDEFINED

Αντίστοιχο μήνυμα παρουσιάζεται στο πρόγραμμά μας όταν ζητήσουμε στη χελώνα να πιάσει κάποιο σχήμα που δεν υπάρχει.  Για παράδειγμα αν ζητήσουμε να "πιάσει" η χελώνα ένα σχήμα HOUSE, το οποίο δεν είναι ορισμένο τότε θα συμβεί το εξής:
GET "HOUSE
HOUSE IS UNDEFINED

Το μήνυμα αυτό λέει ότι το είδος του λάθους είναι ότι δεν έχει οριστεί κάτι. Επίσης μας λέει η έκφραση στην οποία παρουσιάζεται το λάθος είναι το HOUSE.
Το μήνυμα "I DON’T KNOW HOW TO ..." εμφανίζεται θέλουμε να εκτελέσουμε μία διαδικασία, που δεν έχει οριστεί. Παρόμοιο μήνυμα εμφανίζεται και στο πρόγραμμά μας όταν ζητηθεί από την χελώνα να μετακινήσει κάποιο σχήμα, χωρίς προηγουμένως να έχει επιλεχθεί κάποιο. Για παράδειγμα
CS
SET [10 10]
I DON’T KNOW WHAT SHAPE TO SET
Εδώ με το CS καθάρισε η οθόνη και χάθηκαν όλα τα σχήματα που υπήρχαν. Έτσι η χελώνα δεν "κρατάει" πια κανένα σχήμα. Το μήνυμα που εμφανίστηκε μας λέει πρώτον ότι η χελώνα δεν κρατάει κάποιο σχήμα. Κατόπιν μας λέει ότι στην έκφραση SET παρουσιάστηκε το λάθος.

Παρόλο που τα μηνύματα "I DON’T KNOW HOW TO SQURE" και "I DON’T KNOW WHAT SHAPE TO SET" δεν αποτελούνται ακριβώς από τις ίδιες λέξεις, καθώς μόνο ορισμένες ταιριάζουν μεταξύ τους ("I DON’T KNOW ... TO ..."), το μήνυμα του μικρόκοσμού μας δίνει όλες τις πληροφορίες που παρέχουν και τα μηνύματα της LOGO, με τον ίδιο τρόπο.

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

8.4. Διάκριση Command - Operation

Στη Logo υπάρχουν δύο είδη διαδικασιών : οι Operations και οι Commands. Τον ορισμό τους τον δίνει ο B. Harvey[1]:
"Οperation είναι μία διαδικασία η οποία υπολογίζει μία τιμή και την βγάζει σαν έξοδο.

Command είναι μία διαδικασία η οποία δεν έχει σαν έξοδο κάποια τιμή αλλά έχει κάποιο αποτέλεσμα, όπως να τυπώνει κάτι πάνω στην οθόνη να μετακινεί την χελώνα ή να κάνει έναν ήχο", εκτελεί δηλαδή μία λειτουργία. Επισημαίνει επίσης ότι "μερικές commands έχουν αποτελέσματα, τα οποία δεν είναι φανερά στην οθόνη, αλλά αντί για αυτό αλλάζουνε κάτι εσωτερικά στο υπολογιστή, το οποίο μπορεί να χρησιμοποιηθεί αργότερα στο πρόγραμμα". Για παράδειγμα η SETPC (SET Pen Color) αλλάζει το χρώμα με το οποίο γράφει η χελώνα. Το αποτέλεσμα δεν είναι άμεσα αντιληπτό αλλά φαίνεται αργότερα καθώς ζωγραφίζουμε.

Όσον αφορά τις εντολές του μικρόκοσμού μας οι TAG  GET SET είναι commands. Κάθε μία από αυτές εκτελεί μία συγκεκριμένη λειτουργία και δεν επιστρέφουν κάποια έξοδο, που θα χρησιμοποιούσαν άλλες διαδικασίες.

Η λειτουργία της TAG είναι να δίνει ένα όνομα στο σχήμα που παράγεται από μία διαδικασία και δεν επιστρέφει καμία έξοδο.  Εάν η TAG ήταν operation, τότε θα έδινε σαν έξοδο το όνομα του σχήματος, σε σχέση με το όνομα της διαδικασίας και τις παραμέτρους της. Για παράδειγμα θα μπορούσαμε να δώσουμε: PR TAG [TETRAGONO]. Εδώ ένα πιθανό αποτέλεσμα θα ήταν:
TETRAGONO.01. Το όνομα του σχήματος όμως, δεν θα μπορούσε να το ορίσει ο χρήστης και θα ήταν κάτι "έξω από αυτόν" και πιθανώς όχι αντιπροσωπευτικό του σχήματος. Επίσης δεν θα ήταν εύκολος ο χειρισμός των σχημάτων, γιατί με κάθε TAG θα έπρεπε να γίνει ταυτόχρονα και εκτύπωση του ονόματος. Τέλος δεν υπάρχει κάτι αντίστοιχο στη LOGO. Έτσι τα προβλήματα κατανόησης της εντολής θα ήταν πιθανώς αρκετά.

Η GET λέει στη χελώνα να πάει να "πιάσει" ένα σχήμα που έχει ένα συγκεκριμένο όνομα. Το αποτέλεσμα αυτής της εντολής δεν είναι άμεσα φανερό στην οθόνη, αλλά δηλώνει στην χελώνα ποιο σχήμα κρατάει και μπορεί να μετακινεί. Βέβαια αν η χελώνα δεν κρατάει το σχήμα, τότε πηγαίνει πάνω σ’ αυτό.

Τέλος η SET μετακινεί το σχήμα που "κρατάει" η χελώνα όσο της ορίσουμε. Εδώ η λειτουργία είναι συγκεκριμένη και το αποτέλεσμά της είναι πάντα φανερό στην οθόνη.

Αντίθετα οι SHAPES CURRENT είναι operations επιστρέφοντας κάποια τιμή.
Η SHAPES επιστρέφει μία λίστα με τα ονόματα των σχημάτων που βρίσκονται στην οθόνη. Αυτή τη λίστα αν θέλουμε, μπορούμε να την επεξεργαστούμε. Μπορούμε για παράδειγμα να την εκτυπώσουμε ολόκληρη, να εκτυπώσουμε ένα ένα τα στοιχεία της, να την χρησιμοποιήσουμε μέσα από άλλες διαδικασίες βάζοντας για παράδειγμα τη χελώνα να πιάσει διαδοχικά όλα τα σχήματα και να τα μετακινήσει, και να κάνουμε οτιδήποτε άλλο χρειαστούμε. Αν η operation SHAPES είχε γίνει command η οποία απλά θα εκτύπωνε τα ονόματα των σχημάτων, για παράδειγμα POSHAPES (Print Out SHAPES), δεν θα είχαμε την δυνατότητα για καμία επεξεργασία στη λίστα των ονομάτων.

Για τους ίδιους λόγους έγινε και η CURRENT operation. Αυτή επιστρέφει το όνομα του σχήματος που κρατάει η χελώνα.
 

8.5. Μοναδικότητα των λειτουργιών

Μία από της ιδιότητες της LOGO είναι η ισοδυναμία των εντολών που δημιουργεί ο χρήστης, με τις εντολές που ήδη έχει η γλώσσα. Όπως αναφέρει ο B. Harvey[1] "οι διαδικασίες που γράφεις είναι ακριβώς όμοιες με τις διαδικασίες που γνωρίζει η LOGO εξ’ αρχής. Απλά κάποιος άλλος έγραψε τα primitive και εσύ χρησιμοποιείς τις δικιές σου διαδικασίες με τον ίδιο ακριβώς τρόπο που χρησιμοποιείς τα primitive".

Με το όρο primitive εννοεί "όλες τις αρχικές εντολές" με τις οποίες είναι εφοδιασμένη η γλώσσα. Το έργο αυτών που προγραμματίζουν σε LOGO είναι "να προσθέσουν στο ρεπερτόριο της LOGO νέες διαδικασίες, ορισμένες από τους ίδιους".

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

Τα primitive όμως για να γίνουν κατανοητά, πρέπει να είναι απλά. Πρέπει δηλαδή το καθένα να εκτελεί μία και μόνο "στοιχειώδη" λειτουργία. Τα παιδιά μπορούν να τα χρησιμοποιήσουν, για να φτιάξουν πιο πολύπλοκες διαδικασίες, που και αυτές είναι ισοδύναμες με τα primitive, λόγω της ισοδυναμίας διαδικασιών και primitive που έχει η LOGO. Όπως λέει και ο Schwartz[3] "μπορούν να φτιάξουν σύνθετα "primitive" για ειδικούς σκοπούς, χρησιμοποιώντας κάποια απλά. Μοναδικοί περιορισμοί που τίθενται είναι το ταλέντο και η φαντασία τους".

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

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

Έτσι πετύχαμε σε ένα ακόμη τομέα συμβατότητα με το περιβάλλον της LOGO, αφού όλα τα primitive της LOGO εκτελούν μία απλή λειτουργία.
 

8.6. Συμβατότητα του μικροκόσμού μας με την εσωγενή γεωμετρία

Όταν χρησιμοποιούμε τον μικρόκοσμό μας φτιάχνουμε σχήματα μέσα από κάποια διαδικασία. Σ’ αυτά δίνουμε από ένα όνομα και μπορούμε να τα μετακινήσουμε με την εντολή SET. Η νέα θέση κάθε σχήματος εξαρτάται μόνο από την προηγούμενη θέση του. Υπολογίζεται δίνοντας την οριζόντια και κατακόρυφη απόσταση από την προηγούμενη θέση του.

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

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

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

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

Σύμφωνα με τον Papert[4] η εκμάθηση μιας νέας έννοιας πρέπει να ακολουθεί δύο στάδια: Αναφέρει σαν χαρακτηριστικό παράδειγμα την εκμάθηση μιας νέας λέξης. Πρώτα κοιτάμε να βρούμε κάποια συγγενική "ρίζα" αυτής και μετά χρησιμοποιούμε την λέξη σε μία πρόταση που εμείς φτιάχνουμε.

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

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

[1] Harvey B.: "Computer Science Logo Style. Volume 1: Intermediate Programming". The MIT Press. 1986
[2] Haigh R. & Radford L.: "Macintoch Logo. A self-teaching Guide". Wiley Press. 1986
[3] Schwartz J.: "Can we solve the problem SOLVING PROBLEM without posing the problem POSING PROBLEM" NATO Advanced Research Workshop Information Techologies & Mathematic Problem Solving Research. Oporto, Protugal. April 1991
[4] Papert Seymour: "Mindstorms" The Harvester Press 1980


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