Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής Πτυχιακή Εργασία

Σχετικά έγγραφα
OLPC. Το εγχείρημα: «Ο φορητός υπολογιστής των φτωχών» ή «One Laptop Per Child»

Εγχειρίδιο Εκμάθησης Squeak / Squeak Etoys

OLPC. Ο Μαθητικός Υπ ολογιστής των 100$ Αθανασιάδης Γιάννης Msc Πληροφοριακών Συστημάτων

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

1. Τα τμήματα της επιφάνειας εργασίας των Windows

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Εμφανίζονται 3 επιλογές με 3 εικονίδια, η «ζωγραφική», η «εισαγωγή» και η «κάμερα».

Ταυτότητα εκπαιδευτικού σεναρίου

Ελεύθερο Ανοικτό Λογισμικό

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

ΣΗΜΕΙΩΣΕΙΣ. στη γλώσσα προγραμματισμού. Γκέτσιος Βασίλειος

Προγραμματισμός. Το περιβάλλον του scratch

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

περιεχόμενα Εισαγωγή 6 Τα βασικά συστατικά του υπολογιστή 10 Η επιφάνεια εργασίας (desktop) 16 Windows 7 Windows 8 Τα πρώτα βήματα στο Internet 84

Φύλλα εργασίας. MicroWorlds Pro. Πολυμεσικές Εφαρμογές με την χρήση της γλώσσας LOGO Στο Γυμνάσιο. Β. Χ. Χρυσοχοΐδης

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

ΦΥΛΛΟ ΕΞΟΙΚΕΙΩΣΗΣ ΜΕ ΤΟ ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΤΗΡΙΟ

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Ας μετονομάσουμε τη γάτα που εμφανίζεται μόλις ανοίγουμε το Scratch. Επιλέγουμε το εικονίδιο Μορφή1 που βρίσκεται στη λίστα αντικειμένων.

Εφαρμογή δημιουργίας σεναρίων Sctatch

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create

ΤΟ MICROSOFT WORD XP. Ας ξεκινήσουμε λοιπόν!

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Το σκηνικό μας είναι πλέον έτοιμο για εισάγουμε τα υπόλοιπα αντικείμενα του έργου μας.

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

WiFi V-Timer ΕΚΔΟΣΗ 2Η

One Laptop Per Child

Η εντολή «επανέλαβε Χ»

Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Scratch 2.0 Προκλήσεις

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Ευ ομή. Εγχειρίδιο χρήσης του περιβάλλοντος LT125-dp

Μάθημα 1: Εισαγωγή. Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση

Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στοn επεξεργαστή κειμένου Microsoft Word. Εισηγητής: Χαριτωνίδης Γεώργιος. Βόλος, Νοέμβριος 2008

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: PowerPoint Κεφάλαιο 2: Εκκίνηση του PowerPoint... 13

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

ΤΟ MICROSOFT POWERPOINT XP

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

Εγχειρίδιο Χρήσης Draw for Children. Περιεχόμενα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Scratch Δημοτικό 2 : Εισαγωγή στις βασικές εντολές και λειτουργίες της Scratch

Μάθημα 4ο. Προγράμματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Οδηγίες Χρήσης της MySQL

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Ενδυμασίες. Μετονομάζουμε την νέα ενδυμασία του αντικείμενου μας και έχουμε ολοκληρώσει τη δημιουργία της.

ΥΠΟΒΟΛΗ ΑΝΑΛΩΣΙΜΩΝ ΥΛΙΚΩΝ

1. Το ηλεκτρικό ρεύμα και τα ηλεκτρικά κυκλώματα

Vodafone Business Connect

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

Copyright 2017 HP Development Company, L.P.

Βασικές Εντολές MicroWorlds Pro.

Τιμή Τιμή. σκορ. ζωές

Παιχνιδάκια με τη LOGO

Εντολές της LOGO (MicroWorlds Pro)

1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης. 1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης

Inspiration 7 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΜΕ ΠΑΡΑΔΕΙΓΜΑ

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ LOGO

Προγραμματισμός με Logo στο MicroWorlds Pro

Οδηγός ξεκινήματος. έκδοση 2.0.

Εισαγωγή στο Libre Office. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Στην επόμενη σελίδα μπορούμε πια να ξεκινήσουμε να δημιουργούμε.

Γνωρίστε το Excel 2007

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Με λίγα λόγια, το TCP/IP καθορίζει τον τρόπο που πακετάρονται και μεταφέρονται τα δεδομένα της σύνδεσής μας.

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

[συνέχεια του εγγράφου Word 2]

ΕΕΓΔ Οδηγίες προς τους μαθητές για τη χρήση του λογισμικού εξέτασης (EL)

Οδηγίες για smartphone ή tablet με λογισμικό Android

Κεφάλαιο 1 Χρήση προτύπου 2. Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9. Κεφάλαιο 4 Προσθήκη αντικειμένων 26. Κεφάλαιο 5 Ειδικά εφέ 35

Σημείωση για το προϊόν

Αναπαραγωγή με αρχεία ήχου

Slalom Race Computer Game on Scratch

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΙΔΑΓΩΓΙΚΟ ΤΜΗΜΑ ΔΗΜΟΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΦΛΩΡΙΝΑ

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Βασικές Έννοιες Υπολογιστών

Transcript:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής Πτυχιακή Εργασία ΘΕΜΑ: Μελέτη και τεκμηρίωση της πλατφόρμας Squeak-Etoys για την ανάπτυξη πολυμεσικών εφαρμογών ΕΠΙΜΕΛΕΙΑ ΕΚΠΟΝΗΣΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Άγριος Μάριος Βαζακόπουλος Αλέξανδρος (agriosmarios@yahoo.gr) (vazakopoulos@yahoo.gr) ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : Γεωργακόπουλος Κωνσταντίνος ΣΥΝΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : Δρ. Τσινάκος Αύγουστος Καβάλα 2009

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα Πτυχιακής Εργασίας : Μελέτη και τεκμηρίωση της πλατφόρμας Squeak-Etoys για την ανάπτυξη πολυμεσικών εφαρμογών Σπουδαστές: Επιβλέποντας Εκπαιδευτικός Πτυχιακής Εργασίας: Γεωργακόπουλος Κωνσταντίνος Συνεπιβλέποντας Εκπαιδευτικός Πτυχιακής Εργασίας: Δρ. Τσινάκος Αύγουστος Ευχαριστίες : Το παρόν σύγγραμμα αφιερώνεται πρώτα και κύρια στους γονείς μας, που χωρίς την υποστήριξη τους τίποτα από αυτά δεν θα ήταν εφικτό και φυσικά στην πολύ καλή μας φίλη Κωνσταντίνα που χάρη στην αμέριστη βοήθεια της ολοκληρώθηκε επιτυχώς η εργασία μας. Και όσους ενδεχομένως ξεχάσαμε, στέλνουμε και σ αυτούς τις ευχαριστίες μας. ------------------------------------------------------------------------------------------------------- Copyright Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τους συγγραφείς. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τους συγγραφείς δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Τμήματος Βιομηχανικής Πληροφορικής. - 2 -

Περιεχόμενα Περιεχόμενα Παράρτημα εικόνων Περιεχόμενα Παράρτημα εικόνων... - 3 - Ι Εισαγωγή... - 8-1.1 Στόχος πτυχιακής εργασίας :... - 8-1.2 Αναλυτική περιγραφή κεφαλαίων που ακολουθούν :... - 9 - ΙΙ Βιβλιογραφική ανασκόπηση... - 10-2.1 Λίγα λόγια για το Squeak etoys... - 10-2.2 Το Squeak etoys ως ανακυκλωμένη γλώσσα προγραμματισμού :... - 11-2.3 Γιατί χρειάζεται το Squeak etoys στην εκπαιδευτική διαδικασία ;... - 11-2.4 Δουλεύοντας με το Squeak etoys στην εκπαιδευτική διαδικασία :... - 12 - ΙΙΙ Ερευνητική μεθοδολογία της πλατφόρμας Squeak... - 13-3.1 Λίγη ιστορία για το Squeak etoys... - 13-3.2 Λίγα λόγια για το OLPC... - 14-3.2.1 Φορέας υλοποίησης παγκοσμίως... - 15-3.2.2 Η πρώτη γενιά design του OLPC... - 15-3.2.3 Η δεύτερη γενιά design του OLPC... - 16-3.2.4 Η τρίτη γενιά design του OLPC... - 17-3.2.5 Η τέταρτη γενιά design του OLPC... - 17-3.3 Ποια η στάση της Ελλάδας για το OLPC... - 18-3.4 Δυνατότητες μαθητικού υπολογιστή... - 19 - ΙV Παρουσίαση της πλατφόρμας Squeak... - 20-4.1 Το Squeak etoys... - 20-4.2 Ανάλυση αντικειμένων (Εργαλεία ζωγραφικής) :... - 23-4.2.1 Πινέλο... - 23-4.2.2 Γόμα... - 24-4.2.3 Διορθωτικές γραμμές... - 24-4.2.4 Παλέτα χρωμάτων... - 25-4.2.5 Εργαλείο κουβάς... - 25-4.2.6 Ευθεία γραμμή... - 26-4.2.7 Έλλειψη... - 28-4.2.8 Παραλληλόγραμμο... - 28-4.2.9 Πολύγωνο... - 29-4.2.10 Χρωματολείπτης... - 30-4.2.11 Στάμπα... - 31-4.3 Εργαλεία HALO... - 32-4.3.1 Γνωρίζοντας τα εργαλεία HALO... - 32-4.3.2 Επόπτης... - 33-4.3.3 Αντιγραφέας χρώματος και μεγέθους... - 33-4.3.4 Εργαλείο αναχρωματισμού... - 34-4.3.5 Διαχειριστής κλίμακας... - 34-4.3.6 Μετακίνηση αντικειμένου... - 35-4.3.7 Εργαλείο για περιστροφή αντικειμένου... - 35 - - 3 -

4.3.8 Εργαλείο για διαγραφή αντικειμένου... - 36-4.3.9 Επαναφορά αντικειμένου... - 36-4.3.10 Εργαλείο ελαχιστοποίησης αντικειμένου... - 37 - V Τεκμηρίωση λειτουργιών και αντικειμένων πλατφόρμας... - 39 - (Λειτουργικά παραδείγματα)... - 39-5.1 Δημιουργία πρώτου προγράμματος... - 39-5.1.1 Το πρώτο μου πρόγραμμα... - 39-5.1.2 Κάνοντας το ίδιο με κώδικα!... - 47-5.2 Δημιουργία αριθμομηχανής... - 51-5.2.1 Φτιάχνοντας μία αριθμομηχανή... - 51-5.2.2 Επέκταση αριθμομηχανής με περισσότερες πράξεις... - 54-5.3 Tetris γνώσεων... - 54-5.4 Δημιουργία μαγνητικού γερανού για την κατανόηση της βαρυτικής και μαγνητικής δύναμης πάνω σε μία μεταλλική μπάλα :... - 76-5.5 Θερμοκρασία και Πίεση... - 92 - VI Παρουσίαση γλώσσας SmallTalk και ανάλυση των μεταβλητών της... - 114-6.1 Αναλύοντας την γλώσσα SmallTalk... - 114-6.2 Αντικείμενα... - 114-6.2.1 Ενθυλάκωση... - 115-6.3 Κλάσεις... - 116-6.3.1 Η κλάση ως εργοστάσιο... - 117-6.3.2 Η κλάση ως κλάση αφαιρετών... - 118-6.3.3 Η κληρονομιά... - 118-6.3.4 Ο πολυμορφισμός... - 121-6.3.5 Αφηρημένο Superclass... - 123-6.4 Μέθοδοι... - 124-6.4.1 Τύποι μεθόδων... - 124-6.4.2 Μήκος Μεθόδου... - 125-6.4.3 Ονόματα Μεθόδων... - 125-6.4.4 Χαζοί Μεθόδοι... - 126-6.4.5 Μέθοδοι μορφοποίησης... - 126-6.4.5 Δημόσιοι και Ιδιωτικοί μέθοδοι... - 127-6.4.6 Επιστρέφοντας από μια μέθοδο... - 129-6.4.7 Επιστρέφοντας αντικείμενο ορισμένο από όνομα μεθόδου... - 130-6.4.8 Επιστρέφοντας αντικείμενο με βάση την τελευταία δήλωση... - 130-6.4.9 Διάταξη φύλακα... - 131-6.4.10 Συνέπεια σε αντικείμενα όπου επιστρέφονται... - 131-6.4.11 Άστοχες Μέθοδοι... - 132-6.4.12 Αριθμός των Μεθόδων... - 132-6.4.13 Αρχικοποιώντας τις παραμέτρους... - 133 - VII Συμπεράσματα - Παρατηρήσεις... - 134-7.1 Συμπεράσματα... - 134-7.2 Παρατηρήσεις... - 136 - VII Βιβλιογραφία Πηγές πληροφόρησης... - 137-8.1. Βιβλιογραφία... - 137-8.2 Πηγές πληροφόρησης... - 138 - - 4 -

Παράρτημα εικόνων Περιληπτική αναφορά Εικόνα 1 : 1 η γενιά design Εικόνα 2 : 2 η γενιά design Εικόνα 3 : 3 η γενιά design Εικόνα 4 : 4 η γενιά design Εικόνα 5 : Η αρχική οθόνη Εικόνα 6 : Τα βασικά εργαλεία Εικόνα 7 : Μενού επιλογών Εικόνα 8 : Εργαλεία ζωγραφικής Εικόνα 9 : Εργαλεία αντικειμένων Εικόνα 10 : Πινέλο Εικόνα 11 : Παράδειγμα Εικόνα 12 : Γόμα Εικόνα 13 : Διορθωτικές γραμμές Εικόνα 14 : Παλέτα χρωμάτων Εικόνα 15 : Εργαλείο κουβάς Εικόνα 16 : Υπερχείληση Εικόνα 17 : Ευθεία γραμμή Εικόνα 18 : Παράδειγμα Εικόνα 19 : Έλλειψη Εικόνα 20 : Παραλληλόγραμμο Εικόνα 21 : Πολύγωνο Εικόνα 22 : Χρωματολείπτης Εικόνα 23 : Ανάλυση χρώματος Εικόνα 24 : Στάμπα Εικόνα 25 : Εργαλεία HALO Εικόνα 26 : Για εμφάνιση εργαλείων Εικόνα 27 : Επόπτης Εικόνα 28 : Αντιγραφέας Εικόνα 29 : Εργαλείο αναχρωματισμού Εικόνα 30 : Διαχειρηστής κλίμακας Εικόνα 31 : Μετακίνηση αντικειμένου Εικόνα 32 : Εργαλείο περιστροφής Εικόνα 33 : Διαγραφή αντικειμένου Εικόνα 34 : Επαναφορά αντικειμένου Εικόνα 35 : Συνολικά Εικόνα 36 : Εργαλείο ελαχιστοποίησης Εικόνα 37 : Το αποτέλεσμα θα είναι κάπως έτσι Εικόνα 38 : Επιλογές που εμφανίζονται με αριστερό κλικ Εικόνα 39 : Τα αντικείμενα (objects) του Squeak Εικόνα 40 : Επιλογές που εμφανίζονται με δεξί κλικ Εικόνα 41 : Μενού Εικόνα 42 : Επιλέγοντας τα αντικείμενα τύπου Text (κείμενο) Εικόνα 43 : Επιλέγουμε το αντικείμενο Text και το σύρουμε στην επιφάνεια εργασίας Εικόνα 44 : Εμφανίζοντας τον κέρσορα γραψίματος Εικόνα 45 : Γεια σου κόσμε! Εικόνα 46 : Στοιχεία που αφορούν το αντικείμενο κειμένου Hello world! Εικόνα 47 : Σύροντας το κουμπί size από τα attributes ενός αντικειμένου - 5 -

Εικόνα 48 : το attribute «μάτι» Εικόνα 49 : Επεξήγηση attributes ενός αντικειμένου Εικόνα 50 : Εμφανίζοντας το attribute Text s character στην επιφάνεια εργασίας του squeak Εικόνα 51 : Το text s character στην επιφάνεια εργασίας Εικόνα 52 : τα στοιχεία του κουμπιού Text Εικόνα 53 : Επιλογή show code textually Εικόνα 54 : Επιλέγοντας την αποδοχή για το καινούριο κείμενο Εικόνα 55 : Αποδοχή και εφαρμογή της αλλαγής που κάναμε Εικόνα 56 : Κλείσιμο του παραθύρου Εικόνα 57 : Κατασκευή τριών text (border) Εικόνα 58 : Τοποθέτηση του attribute numeric Value στον κόσμο Εικόνα 59 : Σύνδεση Number1 με το Result Εικόνα 60 : Συνδεδεμένα Result, Number1 και Number2 Εικόνα 61 : Ξεκινάμε με το payfield. Εικόνα 62 : τοποθετούμε το πρώτο μας button. Εικόνα 63 : Πατάμε την επιλογή change label για μετονομασία του κουμπιού μας. Εικόνα 64 : Γράφουμε στο πλαίσιο τον τίτλο που επιθυμούμε. Εικόνα 65 : Και έτσι έχουμε έτοιμο το button μας με τον τίτλο Zwo. Εικόνα 66 : Ομοίως και για το button Fagito. Εικόνα 67 : Ομοίως και για το button Start. Εικόνα 68 : Ομοίως και για το button Reset. Εικόνα 69 : Για την τοποθέτηση text πηγαίνουμε στην καρτέλα supplies. Εικόνα 70 : Μαρκάρουμε το κείμενο προκειμένου να το μετονομάσουμε. Εικόνα 71 : Γράφουμε τον επιθυμητό τίτλο ( Alogo ). Εικόνα 72 : Ομοίως και για το text fakes. Εικόνα 73 : Ομοίως και για το text Apantisi. Εικόνα 74 : Για scrolling text κάνουμε τα εξής. Εικόνα 75 : Και έτσι τοποθετούμε και το scrolling text. Εικόνα 76 : Τοποθετώντας μία επιπλέον μεταβλητή Εικόνα 77 : Για να βγάλουμε τα scripts Εικόνα 78 : Έτσι εμφανίζουμε τις ιδιότητες του αντικειμένου Fakes. Εικόνα 79 : Τώρα τραβάμε ένα script για τις Fakes. Εικόνα 80 : Ομοίως για το script για το Alogo. Εικόνα 81 : Ομοίως για το script για το Zwo. Εικόνα 82 : Ομοίως για το script για το Fagito. Εικόνα 83 : Ομοίως για το script για το Start. Εικόνα 84 : Ομοίως για το script για το Reset. Εικόνα 85 : Ομοίως για το script για το World. Εικόνα 86 : Το script του Reset Εικόνα 87 : Έπειτα περνάμε στο World Script το οποίο μηδενίζει τις επιπρόσθετες μεταβλητές κατά τη μετάβαση από ένα script σε άλλο. Εικόνα 88 : Στη συνέχεια κατασκευάζουμε τα scripts που αφορούν τα κουμπιά απαντήσεων των χρηστών. Εικόνα 89 : Scripts για τα κουμπιά επιλογής του χρήστη Εικόνα 90 : Στοιχεία που πρέπει να μπουν μέσα στο script της ένωσης Εικονα 91 : Master script - 6 -

Εικόνα 92 : Αντικείμενα playfield, joystick και stop/step/go. Εικόνα 93 : Στη συνέχεια σχεδιάζουμε την σιδερένια μπάλα. Εικόνα 94 : Άνοιγμα του εργαλείου μάτι του αντικειμένου-σιδερένια μπάλα: Εικόνα 95 : Δημιουργία καινούργιας μεταβλητής για το αντικείμενο σιδερένια μπάλα Εικόνα 96 : Η κατηγορία variables του αντικειμένου-διαστημόπλοιο Εικόνα 97 : Το script gravity Εικόνα 98 : Κατασκευάζοντας το script gravity βήμα 1 Εικόνα 99 : Κατασκευάζοντας το script gravity βήμα 2 Εικόνα 100 : Κατασκευάζοντας το script gravity βήμα 3 Εικόνα 101 : Κατασκευάζοντας το script gravity βήμα 4 Εικόνα 102 : Κατασκευάζοντας το script gravity βήμα 5 Εικόνα 103 : Το script motor Εικόνα 104 : Κατασκευή του αντικειμένου μαγνητικός γερανός. Εικόνα 105 : Το script stuck Εικόνα 106 : Το script allprocesspause Εικόνα 107 : Επεκτείνοντας τη λειτουργικότητα του script stuck Εικόνα 109 : Η επιλογή button to fire this script στο menu ενός script Εικόνα 109 : Το τελικό πρόγραμμα Εικόνα 110 : Για το script Mpala gravity θα γράφαμε Εικόνα 111 : Για το script Mpala motor θα γράφαμε Εικόνα 112 : Για το script Mpala stuck θα γράφαμε Εικόνα 113 : Για το script Mpala allprocesspause θα γράφαμε Εικόνα 114 : Για το script Mpala reset θα γράφαμε Εικόνα 115 : Δημιουργώντας ένα Kedama-World αντικείμενο Εικόνα 116 & 117: Το εικονίδιο του μενού των attributes Εικόνα 118 : Το «χρωματιστό κουτί». Εικόνα 119 & 120: Πολλές κόκκινες χελώνες μέσα στο Kedama World. Εικόνα 121 & 122 & 123 & 124: Συμπληρώνοντας το αντικείμενο Text (border) Εικόνα 125: Βάζοντας τις τιμές του παραδείγματός μας. Εικόνα 128 : Η μεταβλητή global του αντικειμένου world. Εικόνα 131 : Script του αντικειμένου 20. Εικόνα 134 : Script του αντικειμένου 20 Εικόνα 135 : Script του αντικειμένου 20 Εικόνα 139 : νέα γραμμή για το script του αντικειμένου 20 Εικόνα 140 : Η μεταβλητή world s global παίρνει την τιμή της μεταβλητής Εικόνα 141 : Τα script της θερμοκρασίας-πίεσης. Εικόνα 142 : Το κουμπί εκτέλεσης του πρώτου script. Εικόνα 144 : Ολοκλήρωση της δημιουργίας των κουμπιών εκτέλεσης script Εικόνα 147 : Αλλαγή χρώματος του αντικειμένου Kedama World. Εικόνα 148 : Δημιουργία script για την κίνηση των μορίων Εικόνα 150 : Τελική φάση του παραδείγματος Εικόνα 151 : Ενθυλάκωση Εικόνα 152 : Ενέργειες της κλάσης Εικόνα 153 : Κληρονομημένη μέθοδος Εικόνα 154 : Πολυμορφισμός Εικόνα 155 : Αφηρημένο Superclass - 7 -

Εισαγωγή Κεφάλαιο Ι 1.1 Στόχος πτυχιακής εργασίας : Σκοπός της παρούσας πτυχιακής εργασίας είναι η δημιουργία κειμένου τεχνικής τεκμηρίωσης για την πλατφόρμα Squeak etoys, στο οποίο κείμενο περιγράφονται λεπτομερώς οι δυνατότητες δημιουργίας εφαρμογών με την συγκεκριμένη πλατφόρμα. Η τεκμηρίωση θα πλαισιωθεί με εφαρμογές, που θα δημιουργηθούν με την χρήση της πλατφόρμας στα πλαίσια της εργασίας κ θα χρησιμεύσουν ως παραδείγματα. Η τεκμηρίωση εκτός των εφαρμογών, περιγράφει τα συστατικά μέρη της πλατφόρμας, καθώς και τα αντικείμενα που έχει στη διάθεση του ο προγραμματιστής, μαζί με τις ιδιότητες και τις μεθόδους τους. Συνοψίζοντας την εισαγωγή μας, στην παρούσα πτυχιακή αναλύονται εκτενώς τα ακόλουθα : Μελέτη της λογικής και φιλοσοφίας της πλατφόρμας. Μελέτη του περιβάλλοντος της πλατφόρμας και τεκμηρίωση των λειτουργιών που παρουσιάζει στον χρήστη / προγραμματιστή. Μελέτη των αντικειμένων που παρέχει η πλατφόρμα και τεκμηρίωση όλων των επιμέρους ιδιοτήτων τους. Μελέτη της πλατφόρμας SmallTalk πάνω στην οποία στηρίζεται η πλατφόρμα και παρουσίαση των βασικών στοιχείων και δομών της. Δημιουργία και επίδειξη λειτουργικών παραδειγμάτων. - 8 -

1.2 Αναλυτική περιγραφή κεφαλαίων που ακολουθούν : Στο 2 ο κεφάλαιο θα αναπτύσσουμε την θεωρία για να περιγράψουμε και να προσδιορίσουμε τι έχει γραφτεί και μελετηθεί μέχρι τώρα πάνω στην πλατφόρμα Squeak. Τι έχουν βρει οι άλλες παρόμοιες εργασίες όπως αυτές που χρησιμοποιούμε στο εργαστήριο Τηλεματικής : Squeak tutorial advanced k Squeak tutorial final. Στο 3 ο κεφάλαιο θα αναπτύξουμε και θα περιγράψουμε τις σπουδαιότερες μεθοδολογίες που αναφέρθηκαν στο κεφάλαιο 2. Περιγράφουμε με ακρίβεια την δική μας μεθοδολογία. Στο 4 ο κεφάλαιο θα μελετήσουμε τη λογική και φιλοσοφία της πλατφόρμας, την μελέτη του περιβάλλοντος της πλατφόρμας και τεκμηρίωση των λειτουργιών που παρουσιάζεται στον χρήστη / προγραμματιστή και την μελέτη των αντικειμένων που παρέχει η πλατφόρμα και τεκμηρίωση όλων των επιμέρους ιδιοτήτων τους. Στο 5 ο κεφάλαιο θα τεκμηριώσουμε τις λειτουργίες της πλατφόρμας και θα προσθέσουμε λειτουργικά παραδείγματα για τα αντικείμενα και τις ιδιότητες τους. Στο 6 ο κεφάλαιο θα μελετήσουμε την γλώσσα SmallTalk πάνω στη οποία στηρίζεται η πλατφόρμα και παρουσίαση των βασικών στοιχείων και δομών της : Μεταβλητές, ροή ελέγχου, τύποι δεδομένων, εργαλεία, παραδείγματα, μέθοδοι. Στο 7 ο κεφάλαιο θα παρουσιάσουμε τα συμπεράσματα μας, τους περιορισμούς που είχαμε και τις παρατηρήσεις μας. - 9 -

Βιβλιογραφική ανασκόπηση Κεφάλαιο ΙΙ 2.1 Λίγα λόγια για το Squeak etoys Στην ενότητα αυτή θα σας δώσουμε μια αναλυτική εικόνα περί της λογικής του Squeak etoys. Βασικά χαρακτηριστικά Squeak etoys : Η πλατφόρμα περιέχει όλα τα χαρακτηριστικά ενός μοντέρνου περιβάλλοντος εργασίας ενώ χρησιμοποιείται για την εκπαίδευση, για παιχνίδια, internet, πολυμέσα, και έρευνα. Όσο αφορά τη γλώσσα Smalltalk είναι μια γλώσσα καθαρά αντικειμενοστραφής, διερμηνευμένη(interpreted), ανοιχτού κώδικα και επεκτάσιμη. Όσο αφορά την ιδεατή μηχανή του Squeak, έχει αναπτυχθεί χρησιμοποιώντας το ίδιο το περιβάλλον Squeak. Έτσι είναι δυνατόν να κάνεις debug και να εκτελέσεις το Squeak μέσα από το ίδιο το Squeak. Επίσης, μπορεί να χρησιμοποιηθεί για την ανάπτυξη Web εφαρμογών. Ένα άλλο πλεονέκτημα είναι η δυνατότητά του να υποστηρίζει Unicode αλλά και πολύγλωσσες εφαρμογές. Από μόνο του αποτελεί ένα IDE, πράγμα που σημαίνει ότι μπορείς να γράψεις κώδικα, να τον τρέξεις αλλά και να τον κάνεις debug στο ίδιο περιβάλλον. Τέλος να αναφερθεί ότι χρησιμοποιεί αυξανόμενο compiling δηλαδή με την αποθήκευση του κώδικα, είναι έτοιμος για να τον τρέξεις. Πιο συγκεκριμένα, το Squeak ως περιβάλλον ανάπτυξης κώδικα προσφέρει τονισμό στον κώδικα ενώ επίσης ο κώδικας που δεν είναι έγκυρος, τονίζεται και αυτός. Όσο αφορά τον Smalltalk compiler είναι build in και κάνει αυξητικό compiling καθώς φτιάχνεις κώδικα. Έτσι το squeak είναι ένα αρκετά καλό παιχνίδι ανάπτυξης πλατφόρμας. Επίσης παρέχεται προγραμματιστική πρόσβαση στο διαδικτυακό περιβάλλον του υπολογιστή σε όλα τα επίπεδα, από το πιο υψηλό επίπεδο του περάσματος αντικειμένων και των πρωτοκόλλων όπως το HTTP/FTP μέχρι το χαμηλό επίπεδο της επικοινωνίας με sockets. Τα υπάρχοντα sockets είναι σχεδιασμένα να υποστηρίζουν τα TCP/IP και UDP πρωτόκολλα καθώς και υψηλότερου επιπέδου πρωτόκολλα όπως το POP3 (mail retrieval), το SMTP(mail posting),το HTTP(web browsing), και το NTTP(network news). Επίσης στο squeak περιλαμβάνονται χαρακτηριστικά τα οποία του δίνουν τη δυνατότητα να έχει πρόσβαση σε υπηρεσίες του διαδικτύου. - 10 -

Τα προγράμματα αυτά είναι: Celeste:πρόγραμμα ανάγνωσης e-mail Scamper: φυλλομετρητής Telnet: βασικός telnet client IRC: IRC client Nebraska: shared Morphic world, server and client Seaside: πρόγραμμα για την ανάπτυξη δυναμικών πολύπλοκων web 2.2 Το Squeak etoys ως ανακυκλωμένη γλώσσα προγραμματισμού : Ο όρος ανακλώμενη αναφέρεται στο γεγονός ότι ο κώδικας ενός προγράμματος γραμμένο στην γλώσσα αυτή, είναι τροποποιήσιμος από τον προγραμματιστή καθώς το πρόγραμμα εκτελείται. Χάρη σε αυτήν την δυνατότητα, κάθε εφαρμογή που μεταφέρεται στο εσωτερικό του περιβάλλοντος του Croquet, γίνεται αυτόματα και άμεσα αντικείμενο συνεργασίας. Για παράδειγμα, μπορούν ταυτόχρονα δύο χρήστες να χειρίζονται το ίδιο παράθυρο και καθώς ο ένας το μετακινεί, ο άλλος να τροποποιεί το μέγεθος του. Αποτελεί εξέλιξη της γλώσσας Smalltalk και είναι διαθέσιμη σε πολλές πλατφόρμες και προγράμματα που παράγονται σε μια πλατφόρμα εκτελούνται πανομοιότυπα και στις υπόλοιπες. Οι δημιουργοί του Croquet επέλεξαν την γλώσσα αυτή διότι θεωρούν τον κώδικα ως ένα ακόμα είδος μέσου και επομένως θα πρέπει να παρουσιάζει τα ίδια χαρακτηριστικά μεταφερσιμότητας με τα άλλα μέσα [1]. Όπως προαναφέρθηκε, η γλώσσα αυτή δίνει την δυνατότητα επεξεργασίας καθώς εκτελείται. Επιπλέον, μέσα από αυτή την δυνατότητα μπορούν να δημιουργηθούν προγράμματα και συστήματα τα οποία αυτοπροσδιορίζονται, αυτοτροποποιούνται και επομένως εξελίσσονται. Γενικότερα η γλώσσα Squeak αποτελεί ένα ευρύ φάσματος περιβάλλον συγγραφής και λειτουργικότητας με υποστήριξη για δυναμικά αντικείμενα. Επιπλέον, παρέχει γενικευμένους storage allocator και συλλέκτη απορριμμάτων (garbage collector). 2.3 Γιατί χρειάζεται το Squeak etoys στην εκπαιδευτική διαδικασία ; Η εφαρμογή των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών για την υποστήριξη της διδασκαλίας της Φυσικής, έχει φέρει τα τελευταία χρόνια στα εργαστήρια υπολογιστών πολλά εξελιγμένα λογισμικά όπως τα Interactive Physics και Modulus Gr. Όμως βασικό αίτημα της διδακτικής της Φυσικής είναι η ανάγκη να παρέχονται από το λογισμικό στο φοιτητή «εργαλεία σχεδίασης του περιβάλλοντος και του σκηνικού». Ο μαθητής θα προβλέπει την εξέλιξη μιας φυσικής κατάστασης που ο ίδιος έχει σχεδιάσει και το λογισμικό θα του επιτρέπει με την βοήθεια κατάλληλων εργαλείων να επιβεβαιώσει τις προβλέψεις του. - 11 -

Η καταλληλότερη πλατφόρμα για τα παραπάνω είναι φυσικά το Squeak etoys. 2.4 Δουλεύοντας με το Squeak etoys στην εκπαιδευτική διαδικασία : Οι μαθητές φοιτητές μπορούν να σχεδιάσουν μόνοι τους το σχέδιο το οποίο μπορεί να γίνει αντικείμενο. Μπορούν να αντιληφθούν άμεσα τα αποτελέσματα του προγραμματισμού τους οπτικά. Μπορούν να θέτουν εύκολα σε κίνηση αντικείμενα σε προγραμματιστικό περιβάλλον. - 12 -

Ερευνητική μεθοδολογία της πλατφόρμας Squeak Κεφάλαιο ΙΙΙ 3.1 Λίγη ιστορία για το Squeak etoys Το Squeak etoys έχει τις ρίζες του στη LOGO, στην PARC-Smalltalk, στην Hypercard και στην StarLOGO. Είναι ένα αντικειμενοστρεφές προγραμματιστικό περιβάλλον πλούσιο σε εργαλεία ανάπτυξης, όπου τα αντικείμενα μπορούν να προγραμματιστούν είτε με έτοιμα script είτε με script που μπορεί να δημιουργήσει ο χρήστης στη γλώσσα Smalltalk-80. Το Squeak είναι μια μοντέρνα, ανοιχτού λογισμικού υλοποίηση της γλώσσας προγραμματισμού Smalltalk. Το Squeak είναι ιδιαίτερα φορητό ως πρόγραμμα ενώ το γεγονός ότι η ιδεατή μηχανή του είναι και αυτή γραμμένη σε Smalltalk μας δίνει τη δυνατότητα για εύκολο debugging, ανάλυση και αλλαγή. Αποτελεί ένα εργαλείο για ένα μεγάλο εύρος από έργα που αφορούν πολυμεσικές εφαρμογές, εκπαιδευτικές πλατφόρμες μέχρι και ανάπτυξη εμπορικών Web εφαρμογών. Το Squeak είναι ελεύθερα διαθέσιμο διαμέσου του διαδικτύου. Κάθε διάθεση του προγράμματος περιλαμβάνει υποστήριξη για χρώματα, ήχο και πρόσβαση στο δίκτυο ανεξαρτήτως πλατφόρμας ενώ παράλληλα περιλαμβάνει ολόκληρο τον κώδικά του. Επεκτείνει την θεμελιώδη φιλοσοφία της Smalltalk στην οποία όλα είναι διαθέσιμα να τα δεις, να τα κατανοήσεις, να τα αλλάξεις, και να τα επεκτείνεις για οποιοδήποτε σκοπό. Είναι ένα αυθεντικό, ολοκληρωμένο, συμπαγές, αποτελεσματικό και δυνατό περιβάλλον της Smalltalk. Δεν εξειδικεύεται για κάποιο συγκεκριμένο hardware ή λειτουργικό σύστημα. Έτσι λοιπόν το Porting, δηλαδή η μεταφορά του προγράμματος από ένα λειτουργικό σύστημα σε ένα άλλο, γίνεται εύκολα. Το Squeak είναι μια πρακτική Smalltalk στο οποίο ο ερευνητής, ο καθηγητής ή ο μαθητής μπορεί να εξετάσει τον πηγαίο κώδικα οποιοδήποτε μέρους του συστήματος ακόμα και την ίδια την ιδεατή μηχανή. Έτσι κάποιος μπορεί να κάνει αλλαγές αμέσως χωρίς την ανάγκη να δει ή να ασχοληθεί με άλλη γλώσσα πέρα από την Smalltalk. Επίσης τρέχει ίδιου format εικόνες σε ολόκληρη τη φορητή του βάση, επιτυγχάνοντας τεράστια συνεργασία σε διαφορετικά περιβάλλοντα. Οποιοδήποτε αρχείο εικόνας μπορεί να τρέχει σε οποιοδήποτε διερμηνευτή(interpreter) ακόμα και αν έχει σωθεί σε τελείως διαφορετικό hardware με τελείως διαφορετικό λειτουργικό σύστημα. Στη αναφορά αυτή θα γίνει μια εισαγωγή στο περιβάλλον Squeak e-toys καθώς και στον τρόπο ανάπτυξης απλών εφαρμογών. Το περιβάλλον Squeak e-toys έχει εγκατασταθεί στο λειτουργικό σύστημα του OLPC και είναι ιδιαίτερα εύχρηστο για ακόμα και για παιδιά μικρής ηλικίας. Η Smalltalk είναι μια καθαρά αντικειμενοστραφής γλώσσα, απλή και ομοιόμορφη. Η Smalltalk επηρέασε τις περισσότερες από τις μοντέρνες αντικειμενοστραφείς γλώσσες παρόλο που με τον καιρό έχασαν την κομψότητα και - 13 -

την απλότητα της. Το συντακτικό της γλώσσας αλλά και το μοντέλο αντικειμένων είναι ιδιαίτερα απλό: Όλα είναι ένα αντικείμενο. Τα αντικείμενα επικοινωνούν μεταξύ τους με το πέρασμα μηνυμάτων. Οι κλάσεις περιγράφουν με όρους κατάστασης(στιγμιότυπες μεταβλητές) και συμπεριφοράς(μέθοδοι) τα αντικείμενα που παράγουν. Όταν ένα αντικείμενο λαμβάνει ένα μήνυμα, η αντίστοιχη μέθοδος βρίσκεται στην κλάση (ή στην υπερκλάση) του ληφθέντα. Οι μέθοδοι είναι public. Οι στιγμιότυπες μεταβλητές (instance variables) είναι private. Οι κλάσεις κληρονομούν διαμέσου της απλής κληρονομικότητας. Για περαιτέρω πληροφορίες για τη γλώσσα αλλά και για το ίδιο το πρόγραμμα υπάρχουν στο http://www.squeak.org/smalltalk/ και στο http://wiki.squeak.org/squeak/471. Στο olpc έχει εγκατασταθεί το πρόγραμμα etoys που είναι ένα περιβάλλον για εκπαίδευση. Η βασική θεωρία είναι ότι τα παιδία μαθαίνουν καλύτερα εάν συναντήσουν, παίξουν και κατασκευάσουν τις ιδέες κινητικά, οπτικά, ηχητικά και συμβολικά. Το etoys έχει σχεδιαστεί έτσι ώστε τα παιδιά 8 μέχρι 12 ετών να μπορούν εύκολα να δημιουργήσουν projects και να εκφράσουν τις ιδέες τους σε ένα ευκολονόητο περιβάλλον. Το μεγάλο πλεονέκτημα του etoys είναι ότι οποιοδήποτε πρόγραμμα κατασκευάζεται στο squeak, μπορεί να τρέξει στο etoys. Αυτό σημαίνει ότι μια βασική πηγή για υλικό εκπαιδευτικού περιεχομένου αποτελεί η http://www.squeakland.org/. Δίνεται η δυνατότητα πέρα από την κατασκευή, της χρήσης φτιαγμένων ήδη προγραμμάτων για το etoys τα οποία έρχονται μαζί με το λειτουργικό. Επίσης έχει τη δυνατότητα εύρεσης αρχείου για εκτέλεση σε οποιοδήποτε σημείο του file system, γεγονός που σημαίνει ότι ο μαθητής μπορεί να κατεβάσει είτε από το διαδίκτυο είτε από κάποιο φίλο του ένα πρόγραμμα για το etoys, και στη συνέχεια να το τρέξει στο δικό olpc. 3.2 Λίγα λόγια για το OLPC One Laptop Per Child ή αλλιώς Ο φορητός υπολογιστής των φτωχών. Το OLPC πρόκειται για ένα φορητό ηλεκτρονικό υπολογιστή για κάθε παιδί με κόστος μόλις εκατό δολαρίων. Ο στόχος του είναι να προσφέρουμε νέες ευκαιρίες στα παιδιά όλου του κόσμου να πειραματιστούν και να εκφραστούν. - 14 -

3.2.1 Φορέας υλοποίησης παγκοσμίως MIT Media Lab Design Μη κερδοσκοπικός οργανισμός OLPC Nicholas Negroponte, Πρόεδρος Antonio Battro, υπεύθυνος εκπαίδευσης Walter Bender, υπεύθυνος λογισμικού και περιεχομένου Michael Bletsas, υπεύθυνος διασυνδεσιμότητας Mark Foster, υπεύθυνος οικονομικών και λειτουργιών Robert Fadel, Υπεύθυνος αρχιτεκτονικής Jim Gettys,Αντιπρόεδρος, ανάπτυξη λογισμικού David Cavallo, Υπεύθυνος Κεντρικής και Νότιας Αμερικής Khaled Hassounah,Υπεύθυνος Μ. Ανατολής και ΑΦρικής Mary Lou Jepsen,CTO Charles Kane, Υπεύθυνος Οικονομικού Τομέα Ivan Krstić, Υπεύθυνος Συστημάτων Διαχείρισης Περιεχομένου Ο οργανισμός απευθύνεται σε κυβερνήσεις χωρών, διότι μόνο μέσω μαζικών παραγγελιών επιτυγχάνεται η αντίστοιχη τιμή κτήσης. Οι χώρες που έχουν δείξει έμπρακτο ενδιαφέρον είναι οι Αργεντινή, ΗΠΑ, Ισπανία, Βραζιλία, Ινδία, Κίνα, Αίγυπτος, Νιγηρία, Λιβύη. Οι χώρες που έχουν εξαγγείλει την πρόθεση αγοράς είναι η Βραζιλία και η Λιβύη. 3.2.2 Η πρώτη γενιά design του OLPC Πραγματοποιήθηκε τον Ιανουάριο 2005 με επίσημη αναγγελία του καθηγητή Nicholas Negroponte στο παγκόσμιο οικονομικό forum του Νταβός. - 15 -

Εικόνα 1: 1 η γενιά design 3.2.3 Η δεύτερη γενιά design του OLPC Η πρώτη παρουσίαση του πρωτότυπου OLPC 2 ης γενιάς πραγματοποιήθηκε στη συνάντηση κορυφής για την κοινωνία της πληροφορίας στην Τυνησία. Τον Δεκέμβριο του 2005 επιλέγεται η Quanta Computer Inc. για την κατασκευή του φορητού. Τον Ιανουάριο του 2006 ο οργανισμός OLPC υπογράφει μνημόνιο συνεργασίας με το UNDP, το πρόγραμμα ανάπτυξης του ΟΗΕ. Τα πρώτα A-test boards διατίθενται τον Μάιο του ίδιου χρόνου και μερικά από τα οποία έρχονται και στην Ελλάδα από τον Μιχάλη Μπλέτσα. Το πρώτο βίντεο με το πρωτότυπο να λειτουργεί κυκλοφορεί τον Ιούνιο. Εικόνα 2: 2 η γενιά design - 16 -

3.2.4 Η τρίτη γενιά design του OLPC Η πρώτη γενιά που λειτουργούσε τελικά ήταν η 3 η γενιά OLPC που κυκλοφόρησε. Το πρώτο λειτουργικό πρωτότυπο της οθόνης ανακοινώνεται τον Αύγουστο του 2006 και τον Οκτώβριο ξεκινάνε οι δοκιμές. Εκείνη την περίοδο κυκλοφορούν και τα πρώτα B-test boards. Εικόνα 3: 3 η γενιά design 3.2.5 Η τέταρτη γενιά design του OLPC Με την εμφάνιση της τέταρτης γενιάς ήρθε και ο πρώτος φορητός που θα έχει την κανονική dual mode οθόνη και την τελική μορφή του OLPC. Στο συγκεκριμένο φορητό κυριαρχεί ο έξυπνος σχεδιασμός ειδικά για τον κοινό για το οποίο αναφέρεται, στα παιδιά. Τα σημαντικότερα έξυπνα σημεία του είναι : δεν υπάρχουν κινούμενα μέρη π.χ. σκληρός δίσκος οθόνη 9 έγχρωμη και ασπρόμαυρη λειτουργία αυτόματη δημιουργία ασύρματων Κοινοτήτων ανοικτό λογισμικό ελαφρύς / μικρό μέγεθος (σαν σχολικό βιβλίο) μεγάλη διάρκεια μπαταρίας ανθεκτική κατασκευή - 17 -

Εικόνα 4: 4 η γενιά design 3.3 Ποια η στάση της Ελλάδας για το OLPC Ο σκοπός της Ελλάδας σε πρώτη φάση ήταν ο πειραματισμός και η αξιολόγηση του προϊόντος. Για αυτό τον σκοπό συστάθηκε η επιτροπή πρωτοβουλίας (OLPC). Συστάθηκε τον Ιούνιο του 2006 από 30 μέλη της εκπαιδευτικής κοινότητας, 588 μέλη, 286 εκπαιδευτικούς, 292 προγραμματιστές ελεύθερου λογισμικού και μεταφραστές και 4 ομάδες εργασίας με συνολικά 171 μέλη όπου αυτές ασχολήθηκαν κυρίως με την ανάπτυξη και προσαρμογή εφαρμογών, εξελληνισμό εφαρμογών, εκπαιδευτικές εφαρμογές και σενάρια, δοκιμές, έλεγχο και επίδειξη λογισμικού. Επίσης συμμετείχαν δέκα εργαστήρια από ΤΕΙ και ΑΕΙ και ερευνητικά κέντρα. - 18 -

3.4 Δυνατότητες μαθητικού υπολογιστή Οι δυνατότητες του συγκεκριμένου φορητού υπολογιστή παρά το μέγεθος και την οικονομική του αξία είναι αρκετές, απαραίτητες και αρκετά χρήσιμες για τον χρήστη: o ασύρματη δικτύωση και διασύνδεση με άλλους υπολογιστές o περιήγηση στο διαδίκτυο o ανάγνωση ηλεκτρονικών βιβλίων o εκτέλεση εκπαιδευτικών εφαρμογών o συγγραφή και επεξεργασία κειμένων o αναπαραγωγή πολυμέσων o επικοινωνία και δημιουργία συνεργατικών κοινωτήτων o ανάπτυξη λογισμικού και εφαρμογών o εκτέλεση σχολικών εργασιών - 19 -

Παρουσίαση της πλατφόρμας Squeak Κεφάλαιο ΙV 4.1 Το Squeak etoys Στο κεφάλαιο αυτό θα αναφέρουμε περιληπτικά και αναλυτικά το περιβάλλον κ την μεθοδολογία που θα ακολουθηθεί πιστά στο επόμενο κεφάλαιο με τα λειτουργικά παραδείγματα. Εικόνα 5: Η αρχική οθόνη - 20 -

Εικόνα 6: Τα βασικά εργαλεία Εικόνα 7: Μενού επιλογών - 21 -

Εικόνα 8: Εργαλεία ζωγραφικής Εικόνα 9: Εργαλεία αντικειμένων - 22 -

4.2 Ανάλυση αντικειμένων (Εργαλεία ζωγραφικής) : 4.2.1 Πινέλο Στα εργαλεία ζωγραφικής διακρίνουμε έξι μεγέθη για το πινέλο μας. Εικόνα 10: Πινέλο Χρησιμοποιώντας και τα έξι μεγέθη φτιάχνουμε ένα σχολείο. Εικόνα 11: Παράδειγμα - 23 -

4.2.2 Γόμα Χρησιμοποιούμε την γόμα για να διορθώσουμε λεπτομέρειες. Στην γόμα ισχύει το ίδιο και για το πινέλο, υπάρχουν έξι μεγέθη γόμας. Εικόνα 12: Γόμα 4.2.3 Διορθωτικές γραμμές Πατώντας στο κάτω δεξί μέρος της παλέτας ανοίγουμε την καρτέλα με τις διορθωτικές γραμμές (Blanco roll). Και σε αυτή την περίπτωση έχουμε έξι μεγέθη. Εικόνα 13: Διορθωτικές γραμμές - 24 -

4.2.4 Παλέτα χρωμάτων Πατώντας πάνω στη παλέτα χρωμάτων ανοίγει ένα καινούριο παράθυρο όπου αποκαλύπτονται όλα τα χρώματα κ οι αποχρώσεις τους. Μετακινώντας το ποντίκι από πάνω τους τα βλέπουμε μεγεθυσμένα και έτσι μπορούμε να επιλέξουμε το χρώμα που επιθυμούμε. Εικόνα 14: Παλέτα χρωμάτων 4.2.5 Εργαλείο κουβάς Το εργαλείο κουβάς λειτουργεί σαν ένας κουβάς με χρώμα της επιλογής μας. Δηλαδή μπορεί να γεμίσει με χρώμα επιφάνειες οριοθετημένες ή μη. - 25 -

Εικόνα 15: Εργαλείο κουβάς Σε περίπτωση που προσπαθήσουμε να γεμίσουμε ένα αντικείμενο και το συγκεκριμένο αντικείμενο δεν είναι στεγανό, δηλαδή υπάρχει κάπου ένα άνοιγμα τότε θα έχουμε το φαινόμενο της υπερχείλισης. Το χρώμα θα ξεφύγει από το άνοιγμα και θα προχωρήσει και στο φόντο έξω από το σχήμα μας. Εικόνα 16: Υπερχείληση 4.2.6 Ευθεία γραμμή Πατώντας στη κάτω δεξιά γωνία της παλέτας μας ανοίγουμε ένα νέο παράθυρο. Σε αυτό το παράθυρο μπορούμε να επιλέξουμε το εργαλείο για να κάνουμε ευθείες γραμμές. - 26 -

Εικόνα 17: Ευθεία γραμμή Για να χρησιμοποιήσουμε αυτό το εργαλείο κρατάμε πατημένο το πλήκτρο shift. Κρατώντας το πατημένο μπορούμε να ζωγραφίσουμε γραμμές κάθετα, οριζόντια και σε γωνία 45 μοιρών. Ακόμα μπορούμε να επιλέξουμε ανάμεσα σε έξι μεγέθη. Εικόνα 18: Παράδειγμα - 27 -

4.2.7 Έλλειψη Ένα ακόμα εργαλείο της προηγούμενης παλέτας που ανοίξαμε είναι και η έλλειψη. Με αυτό το εργαλείο μπορούμε να φτιάξουμε ελλείψεις και τέλειους κύκλους, πάλι κρατώντας πατημένο το πλήκτρο shift και φυσικά υπάρχουν και έξι διαφορετικά μεγέθη. Εικόνα 19: Έλλειψη 4.2.8 Παραλληλόγραμμο Ένα ακόμα εργαλείο της παλέτας μας είναι ο σχεδιασμός γεωμετρικού σχήματος τεσσάρων γωνιών, τετράγωνο είτε ορθογώνιο. Και σε αυτό λειτουργούμε με τον ίδιο τρόπο σχεδιασμού και έχουμε έξι μεγέθη. - 28 -

Εικόνα 20: Παραλληλόγραμμο 4.2.9 Πολύγωνο Τελευταίο εργαλείο αυτής της παλέτας είναι το πολύγωνο, δηλαδή εργαλείο σχεδιασμού γεωμετρικού σχήματος με πολλές γωνίες. Εικόνα 21: Πολύγωνο - 29 -

4.2.10 Χρωματολείπτης Αυτό το εργαλείο είναι πολύ ιδιαίτερο και αρκετά χρήσιμο. Με αυτό το εργαλείο μπορείς να επιλέξεις οποιοδήποτε χρώμα από τα υπάρχοντα και έτσι δεν χρειάζεται να το ψάξεις από την αρχή, κάτι που δεν είναι και ιδιαίτερα εύκολο. Εικόνα 22: Χρωματολείπτης Επίσης ο χρωματολείπτης έχει την δυνατότητα να αναλύσει ένα χρώμα με μαθηματική ακρίβεια. Εικόνα 23: Ανάλυση χρώματος - 30 -

4.2.11 Στάμπα Ακόμα ένα χρήσιμο εργαλείο ζωγραφικής είναι η στάμπα. Η στάμπα χρησιμοποιείται σε περιπτώσεις όπου θέλουμε να αντιγράψουμε πανομοιότυπα ένα αντικείμενο. Εικόνα 24: Στάμπα Αυτά ήταν όλα τα εργαλεία ζωγραφικής και οι δυνατότητες τους. Ιδιαίτερα εύκολα στη χρήση τους και με λίγη εξάσκηση θα σας φανούν πολύ χρήσιμα για την δημιουργία αντικειμένων. - 31 -

4.3 Εργαλεία HALO 4.3.1 Γνωρίζοντας τα εργαλεία HALO. Τα συγκεκριμένα εργαλεία είναι ένα πακέτο ελέγχου του αντικειμένου μας το οποίο θα μας βοηθήσει αρκετά στον έλεγχο, στη διαχείριση και να τροποποίηση των αντικειμένων μας. Μπορούμε να τα εμφανίσουμε πατώντας δεξί click στο αντικείμενό μας. Εικόνα 25: Εργαλεία HALO Εικόνα 26: Για εμφάνιση εργαλείων - 32 -

4.3.2 Επόπτης Ο επόπτης έχει την ικανότητα να παρέχει πληροφορίες και να ελέγχει τις ενέργειες και τις ιδιότητες ενός αντικειμένου. Οι πληροφορίες αυτές προβάλλονται ανά κατηγορίες. Εικόνα 27: Επόπτης 4.3.3 Αντιγραφέας χρώματος και μεγέθους Με αυτό το εργαλείο μπορούμε να τροποποιήσουμε το μέγεθος ή την κλίμακα, να αναχρωματίσουμε και να αντιγράψουμε ένα αντικείμενο. Το πράσινο εικονίδιο δημιουργεί ακριβές αντίγραφο του αντικειμένου. Εικόνα 28: Αντιγραφέας - 33 -

4.3.4 Εργαλείο αναχρωματισμού Το εργαλείο του αναχρωματισμού είναι διαφορετικό για ζωγραφιές από αντικείμενα. Εικόνα 29: Εργαλείο αναχρωματισμού 4.3.5 Διαχειριστής κλίμακας Με το κίτρινο εικονίδιο μπορείς να αλλάξεις την κλίμακα και το μέγεθος ενός αντικειμένου. Εικόνα 30: Διαχειριστής κλίμακας - 34 -

4.3.6 Μετακίνηση αντικειμένου Για να μπορέσουμε να μετακινήσουμε ένα αντικείμενο υπάρχει και γι αυτό το κατάλληλο εργαλείο. Εικόνα 31: Μετακίνηση αντικειμένου 4.3.7 Εργαλείο για περιστροφή αντικειμένου Για να μπορέσουμε να πραγματοποιήσουμε μια περιστροφή έως και 360 ο υπάρχει το κατάλληλο εργαλείο χωρίς την ύπαρξη αλλοίωσης είτε παραμόρφωσης του αντικειμένου μας. Εικόνα 32: Εργαλείο περιστροφής - 35 -

4.3.8 Εργαλείο για διαγραφή αντικειμένου Για να διαγράψουμε ένα αντικείμενο πατάμε το Χ στην πάνω αριστερή γωνία του αντικειμένου. Εικόνα 33: Διαγραφή αντικειμένου 4.3.9 Επαναφορά αντικειμένου Και για να επαναφέρουμε ένα αντικείμενο που έχουμε διαγράψει μπορούμε να το αναζητήσουμε στον κάδο ανακύκλωσης. Ο κάδος ανακύκλωσης έχει την δυνατότητα να αποθηκεύει πολλά αντικείμενα. Εικόνα 34: Επαναφορά αντικειμένου - 36 -

Σε κάθε αντικείμενο υπάρχει στο κέντρο του ένα βελάκι το οποίο προβάλλει την διεύθυνση της κατεύθυνσης όπου έχουμε επιλέξει για το αντικείμενο μας. Εικόνα 35: Συνολικά 4.3.10 Εργαλείο ελαχιστοποίησης αντικειμένου Το εικονίδιο με τον κύκλο μπορεί να εξαφανίσει το αντικείμενο μας και να το μεταμορφώσει σε ένα μικρό κουμπάκι. Εικόνα 36: Εργαλείο ελαχιστοποίησης - 37 -

Εικόνα 37: Το αποτέλεσμα θα είναι κάπως έτσι Πατώντας το Χ θα διαγράψουμε το αντικείμενό μας και ο κύκλος θα το επαναφέρει. - 38 -

Τεκμηρίωση λειτουργιών και αντικειμένων πλατφόρμας (Λειτουργικά παραδείγματα) Κεφάλαιο V Σε αυτή την ενότητα γίνεται παρουσίαση παραδειγμάτων που δίνουν τη δυνατότητα στους χρήστες να εξοικειωθούν με το περιβάλλον Etoys και να μελετήσουν απλές και πιο προχωρημένες λειτουργίες του. 5.1 Δημιουργία πρώτου προγράμματος 5.1.1 Το πρώτο μου πρόγραμμα Αυτό είναι το πρώτο πρόγραμμα που φτιάχνει κάποιος μόλις ξεκινά να δουλεύει σε μία νέα γλώσσα προγραμματισμού (Hello World). Ανοίγοντας το squeak ερχόμαστε αντιμέτωποι με μία λευκή οθόνη και δύο επιλογές αριστερά και δεξιά. Εικόνα 38: Επιλογές που εμφανίζονται με αριστερό κλικ - 39 -

Αριστερά έχουμε το πλήκτρο που μας δίνει γενικές πληροφορίες για το squeak ενώ δεξιά, αν πατήσουμε το πλήκτρο tools μπορούμε να δούμε διάφορα εργαλεία για την ανάπτυξη προγραμμάτων και κώδικα. Δύο επιπλέον βασικά στοιχεία είναι οι επιλογές που εμφανίζονται αν στην κεντρική οθόνη πατήσουμε αριστερό κλικ ή και δεξί κλικ. Συγκριτικά με το περιβάλλον Squeak Etoys η διαφορά εντοπίζεται πως σε αυτό το περιβάλλον δουλεύουμε κυρίως με δεξί και αριστερό κλικ στην επιφάνεια εργασίας για να δούμε τα διάφορα εργαλεία του Squeak ενώ τα εργαλεία (tools) που πριν είδαμε στην πλατφόρμα εργαλείων τα βρίσκουμε στη δεξιά πλευρά της οθόνης. Είτε χρησιμοποιήσουμε αυτό το περιβάλλον είτε το Squeak Etoys το αποτέλεσμα που λαμβάνουμε είναι το ίδιο. Το περιβάλλον etoys είναι ωστόσο αρκετά πιο εύκολο στη χρήση και γι αυτό προτείνεται. Να σημειωθεί πως ότι βρίσκουμε στο περιβάλλον Squeak με δεξί και αριστερό κλικ το βρίσκουμε στο Squeak Etoys στα Navigator και Supplies. Εικόνα 39: Τα αντικείμενα (objects) του Squeak - 40 -

Εικόνα 40: Επιλογές που εμφανίζονται με δεξί κλικ Για να φτιάξουμε το πρώτο απλοϊκό μας πρόγραμμα κάνουμε αριστερό κλικ στο κέντρο της επιφάνειας εργασίας του squeak και επιλέγουμε την επιλογή object. Στην οθόνη εμφανίζεται το μενού που φαίνεται στην παρακάτω εικόνα. Εικόνα 41: Μενού - 41 -

Αφού ανοίξουμε τα αντικείμενα επιλέγουμε από το πάνω μέρος την επιλογή Text όπως φαίνεται στην παρακάτω εικόνα. Εικόνα 42: Επιλέγοντας τα αντικείμενα τύπου Text (κείμενο) Βλέπουμε πως εμφανίζονται τρία αντικείμενα τύπου κειμένου (text). Το πρώτο αντικείμενο δημιουργεί κινούμενο κείμενο (scrolling text), το δεύτερο δημιουργεί απλό κείμενο, ενώ το τρίτο δημιουργεί κείμενο με περίγραμμα (Text (border)). Επιλέγουμε το αντικείμενο «κείμενο» (Text) και αφού κρατήσουμε πατημένο το αριστερό πλήκτρο του ποντικιού σύρουμε το αντικείμενο στο λευκό χώρο της επιφάνειας εργασίας του Squeak όπως φαίνεται παρακάτω. - 42 -

Εικόνα 43: Επιλέγουμε το αντικείμενο Text και το σύρουμε στην επιφάνεια εργασίας Αφήνοντας το πλήκτρο του ποντικιού θα δούμε το αντικείμενο text να τοποθετείται στην επιφάνεια εργασίας. Εν συνεχεία πατούμε με το πλήκτρο του ποντικιού ακριβώς στα αριστερά του t της λέξης Text και βλέπουμε την παρακάτω εικόνα. Εικόνα 44: Εμφανίζοντας τον κέρσορα γραψίματος Αν πατήσουμε το πλήκτρο backspace θα δούμε ότι η λέξη TEXT σβήνεται και στη θέση της μπορούμε να γράψουμε οποιαδήποτε λέξη (στα αγγλικά). Εν προκειμένω γράφουμε το κείμενο Hello World! (Γεια σου κόσμε!) και προκύπτει το παρακάτω αποτέλεσμα. - 43 -

Εικόνα 45: Γεια σου κόσμε! Προκειμένου να βάλουμε τις λέξεις σε μία σειρά και όχι «κομμένες» όπως φαίνεται στην εικόνα κρατούμε το πλήκτρο Alt πατημένο και πατούμε αριστερό κλικ στο χώρο που είναι γραμμένο το Hello World!. Παρατηρούμε πως εμφανίζονται τα παρακάτω στοιχεία τριγύρω από το κείμενο Hello World!. Εικόνα 46: Στοιχεία που αφορούν το αντικείμενο κειμένου Hello world! Κρατώντας πατημένο το αριστερό πλήκτρο του ποντικιού πατούμε το κάτω αριστερό εικονίδιο από αυτά που εμφανίστηκαν και σύρουμε το ποντίκι προς τα δεξιά όπως φαίνεται παρακάτω. - 44 -

Εικόνα 47: Σύροντας το κουμπί size από τα attributes ενός αντικειμένου Μπορούμε να εμφανίσουμε ένα παράθυρο με όλες τις πληροφορίες για το αντικείμενο (attributes) εμφανίζοντας τα attributes και επιλέγοντας το εικονίδιο που φαίνεται παρακάτω («μάτι»). Εικόνα 48: το attribute «μάτι» Πατώντας το «μάτι» βλέπουμε μία σειρά στοιχείων για το αντικείμενο μας που εξηγούνται στην παρακάτω εικόνα. - 45 -

Εικόνα 49: Επεξήγηση attributes ενός αντικειμένου Μπορούμε να πειραματιστούμε με τα παραπάνω attributes. Για παράδειγμα μπορούμε να αλλάξουμε το ίδιο το κείμενο. Πατούμε μέσα στο Hello World (στα attributes), γράφουμε ένα καινούριο κείμενο (π.χ. Hi ) και πατούμε Enter. Βλέπουμε αμέσως πως το κείμενο αλλάζει από Hello World! σε Hi. Μπορούμε να αλλάξουμε τη θέση του αντικειμένου στο χώρο. Για παράδειγμα στο πεδίο Text s X στη θέση του 716 (η τιμή που θα φαίνεται σε εσάς θα είναι διαφορετική) γράφουμε 500 και πατούμε Enter. Το ίδιο κάνουμε και με το Text s y και αλλάζει η κάθετη τοποθέτηση του αντικειμένου στο χώρο. Σε όσα πεδία αριστερά υπάρχει το θαυμαστικό σε κίτρινο κυκλάκι (κουμπί εφαρμογής) θα πρέπει αφού επιλέξουμε την τιμή που θέλουμε να πατήσουμε το κυκλάκι για να δούμε ότι εφαρμόζεται. Για παράδειγμα στην επιλογή Text turn by, επιλέγουμε από τα βελάκια πάνω κάτω που βρίσκονται αριστερά από την αναγραφόμενη αριθμητική τιμή να αλλάξουμε αυτή την τιμή θέτοντας το πόσο θέλουμε να περιστραφεί το αντικείμενο. Πατώντας δύο φορές το βελάκι πάνω το 5 γίνεται 7. Ενώ αλλάζει από 5 σε επτά η τιμή δε βλέπουμε κάποια αλλαγή στο κείμενό μας, ωστόσο αν πατήσουμε το κουμπί εφαρμογής που βρίσκεται στα αριστερά του Text turn by θα δούμε το κείμενο να περιστρέφεται δεξιόστροφα. Για να «κλείσουμε» το παράθυρο των attributes πατούμε το πάνω κουμπί κλεισίματος. Συνεχίστε τον πειραματισμό με τα attributes ενός αντικειμένου. Σε περίπτωση που νιώθετε ότι κάνατε κάτι λάθος και έχετε χαλάσει τα αντικείμενα που είχατε στην επιφάνεια - 46 -

εργασίας του squeak, μπορείτε να σβήσετε οποιοδήποτε αντικείμενο ανοίγοντας τις επιλογές του και πατώντας το Χ που βρίσκεται πάνω αριστερά στις επιλογές. 5.1.2 Κάνοντας το ίδιο με κώδικα! Ανοίγουμε το κενό περιβάλλον του squeak και εμφανίζουμε τα αντικείμενα (objects). Επιλέγουμε το κείμενο και τοποθετούμε ένα Text στην επιφάνεια εργασίας. Εν συνεχεία ανοίγουμε τα attributes του αντικειμένου και επιλέγουμε από το Text characters το βελάκι που δείχνει προς τα αριστερά και το σύρουμε προς την επιφάνεια εργασίας του squeak όπως φαίνεται παρακάτω. Εικόνα 50: Εμφανίζοντας το attribute Text s character στην επιφάνεια εργασίας του squeak Βλέπουμε να εμφανίζεται η παρακάτω επιλογή στην επιφάνεια εργασίας. Εικόνα 51: Το text s character στην επιφάνεια εργασίας - 47 -

Εν συνεχεία κάνουμε αριστερό κλικ στο κουμπί Text και βλέπουμε να εμφανίζονται οι παρακάτω επιλογές. Εικόνα 52: τα στοιχεία του κουμπιού Text Επιλέγουμε την πρώτη επιλογή «show code textually» και βλέπουμε την παρακάτω εικόνα. Εικόνα 53: Επιλογή show code textually Σε αυτό που εμφανίζεται αντικαθιστούμε τη λέξη Text, με τη λέξη Hello World!, με προσοχή ώστε να μη σβήσουμε τα «αυτάκια» ( ). Για να εφαρμοστεί αυτό που αλλάξαμε πατούμε δεξί κλικ μέσα στη λευκή επιφάνεια που μας έχει εμφανιστεί και επιλέγουμε Accept όπως φαίνεται στο παρακάτω σχήμα. - 48 -

Εικόνα 54: Επιλέγοντας την αποδοχή για το καινούριο κείμενο Στο παράθυρο που μας εμφανίζεται γράφουμε τα αρχικά μας γράμμα και πατούμε Accept. Εν συνεχεία πατούμε το κουμπί αποδοχής που βρίσκεται πάνω αριστερά στο ανοικτό παράθυρο. Εικόνα 55: Αποδοχή και εφαρμογή της αλλαγής που κάναμε - 49 -

Βλέπουμε πως το κείμενο αλλάζει από Text σε Hello World!. Για να κλείσουμε το παράθυρο που έχει ανοίξει πατούμε το κουμπί κλεισίματός του. Εικόνα 56: Κλείσιμο του παραθύρου Μπορούμε να πειραματιστούμε επαναλαμβάνοντας την ίδια διαδικασία για τα ίδια attributes που δοκιμάσαμε παραπάνω. - 50 -

5.2 Δημιουργία αριθμομηχανής 5.2.1 Φτιάχνοντας μία αριθμομηχανή Πρώτο «σύνθετο» παράδειγμα. Κατασκευή μίας αριθμομηχανής που εκτελεί τις 4 βασικές πράξεις μεταξύ δύο αριθμών. Σε πρώτη φάση θα φτιάξουμε τρία texts (border) και θα τα συνδέσουμε μεταξύ τους. Προκειμένου να μπορέσουμε να συνδέσουμε στοιχεία μεταξύ τους θα πρέπει να φτιάξουμε ένα script για το αντικείμενο στο οποίο θα εμφανίζονται τα αποτελέσματα και μέσα του να προσθέσουμε «ανώδυνα» στοιχεία για τα υπόλοιπα αντικείμενα. Ας τα πάρουμε όμως όλα από την αρχή. Αρχικά κατασκευάζουμε τα τρία texts (border) όπως φαίνεται στο παρακάτω σχήμα. Εικόνα 57: Κατασκευή τριών text (border) Εν συνεχεία ονομάζουμε τα τρία αντικείμενα. Για να ονομάσουμε τα αντικείμενα ακολουθούμε τις ίδιες οδηγίες με το προηγούμενο κεφάλαιο. Δίνουμε τις ονομασίες Number1, Number2 και Result με τη σειρά που φαίνονται τα αντικείμενα από πάνω προς τα κάτω. Στη συνέχεια ανοίγουμε τα attributes του Result και τοποθετούμε στον κόσμο όπως φαίνεται παρακάτω το Result s numericvalue. - 51 -

Εικόνα 58: Τοποθέτηση του attribute numeric Value στον κόσμο Σε αυτή τη φάση θα πρέπει να συνδέσουμε τα Number1 και Number2 με το Result. Για να το κάνουμε αυτό θα πρέπει να πάρουμε ένα ανώδυνο στοιχεία από το καθένα και να το τοποθετήσουμε μαζί με τα στοιχεία του Result στο script που φτιάχνουμε. Το πιο εύκολο είναι να χρησιμοποιήσουμε το attribute emptyscrpt. Αφού ανοίξουμε τα attributes καθενός από τα Number1 και Number2 εκτελούμε τη διαδικασία που φαίνεται στην παρακάτω εικόνα. Εικόνα 59: Σύνδεση Number1 με το Result - 52 -

Όπως φαίνεται για να συνδέσουμε τα Number1 και 2 με το Result τοποθετούμε το attribute emptyscript μέσα στο script του Result. Αφού προσθέσουμε και τα δύο θα έχουμε. Εικόνα 60: Συνδεδεμένα Result, Number1 και Number2 Εν συνεχεία θα αλλάξουμε τον κώδικα του script με τον ίδιο τρόπο με προηγουμένως. Ο κώδικας που βλέπουμε μοιάζει με το παρακάτω κομμάτι: Τον αλλάζουμε ώστε να πραγματοποιεί πράξεις και τον μετατρέπουμε όπως φαίνεται παρακάτω: Στα στοιχεία δεν προσθέτουμε τα πραγματικά ονόματα των αντικειμένων αλλά αυτά που φαίνονταν μέσα στο πρώτο script, δηλαδή εν προκειμένω Number3 και Number4. Αφού τελειώσουμε μπορούμε να πατήσουμε το κουμπί εκτέλεσης ή να δημιουργήσουμε ένα κουμπί για εκτέλεση για να δούμε το αποτέλεσμα. - 53 -

5.2.2 Επέκταση αριθμομηχανής με περισσότερες πράξεις Προκειμένου να επεκτείνουμε την αριθμομηχανή προκειμένου να κάνει περισσότερες πράξεις θα πρέπει να επαναλάβουμε από την αρχή την παραπάνω διαδικασία από το σημείο που λαμβάνουμε το numericvalue του Result και ξεκινάμε τη διαδικασία σύνδεσης με τα Result1 και Result2. Αυτό έχει σαν συνέπεια να δημιουργηθεί ένα επιπλέον script το οποίο θα εκτελεί κάποια διαφορετική πράξη όπως αφαίρεση πολλαπλασιασμό κλπ. 5.3 Tetris γνώσεων Στο συγκεκριμένο παράδειγμα θα δημιουργήσουμε ένα παιχνίδι σαν το γνωστό TETRIS. Στο παράδειγμα θα δημιουργήσουμε ένα περιβάλλον για να «παίζει» το παιχνίδι. Η διαδικασία είναι η εξής: Από το πάνω μέρος του περιβάλλοντος θα πέφτουν αντικείμενα (φαγητά ή ζώα) και ο χρήστης θα πρέπει να επιλέξει αν το αντικείμενο που «πέφτει» είναι φαγητό ή ζώο. Η εφαρμογή θα διαθέτει και ένα παράθυρο όπου θα εμφανίζονται οι απαντήσεις στις επιλογές του. Αν το αντικείμενο φτάσει στο κάτω μέρος του περιβάλλοντος χωρίς να έχει δοθεί απάντηση, τότε θα πρέπει να του εμφανίζεται η σωστή απάντηση. Στο συγκεκριμένο παράδειγμα θα δούμε δύο αντικείμενα φακές (φαγητό) και άλογο (ζώο). Σύμφωνα με τα παραπάνω τα «υλικά» που θα χρειαστούμε είναι : Ένα playfield Τέσσερα buttons Τρία αντικείμενα τύπου TEXT Ένα scrolling text Ας δούμε αναλυτικά σε τι θα χρησιμεύσει το κάθε αντικείμενο. Το playfield θα είναι ο χώρος που θα εκτελείται όλη η διαδικασία (θα πέφτουν από το πάνω της μέρος τα αντικείμενα ). Τα τέσσερα κουμπιά θα είναι τα εξής: δύο θα χρησιμεύσουν για να επιλέγει ο χρήστης αν το αντικείμενο που «πέφτει» είναι φαγητό ή ζώο και άλλα δύο θα χρησιμεύσουν στο να γίνεται αρχικοποίηση όλων των τιμών και έναρξη του παιχνιδιού. Τα αντικείμενα τύπου text θα περιέχουν το όνομα του αντικειμένου και μία πινακίδα με την ένδειξη ΑΠΑΝΤΗΣΗ για να γνωρίζουν οι χρήστες που θα περιμένουν τις απαντήσεις τους. Τέλος μέσα στο scrolling text θα εμφανίζονται οι απαντήσεις του προγράμματος στις επιλογές του χρήστη. Αρχικά τοποθετούμε όλα τα αντικείμενα όπως φαίνεται στην παρακάτω οθόνη. - 54 -

Εικόνα 61: Ξεκινάμε με το payfield. Εικόνα 62: τοποθετούμε το πρώτο μας button. - 55 -

Εικόνα 63: Πατάμε την επιλογή change label για μετονομασία του κουμπιού μας. Εικόνα 64: Γράφουμε στο πλαίσιο τον τίτλο που επιθυμούμε. - 56 -

Εικόνα 65: Και έτσι έχουμε έτοιμο το button μας με τον τίτλο Zwo. Εικόνα 66: Ομοίως και για το button Fagito. - 57 -

Εικόνα 67: Ομοίως και για το button Start. Εικόνα 68: Ομοίως και για το button Reset. - 58 -

Εικόνα 69: Για την τοποθέτηση text πηγαίνουμε στην καρτέλα supplies. Εικόνα 70: Μαρκάρουμε το κείμενο προκειμένου να το μετονομάσουμε. - 59 -

Εικόνα 71: Γράφουμε τον επιθυμητό τίτλο ( Alogo ). Εικόνα 72: Ομοίως και για το text fakes. - 60 -

Εικόνα 73: Ομοίως και για το text Apantisi. Εικόνα 74: Για scrolling text κάνουμε τα εξής. - 61 -

Εικόνα 75: Και έτσι τοποθετούμε και το scrolling text. Στην εικόνα βλέπουμε τα τρία αντικείμενα τύπου TEXT ( Alogo=Άλογο, Fakes=Φακές και Apantisi=Απάντηση ), το playfield (με το πράσινο background, τα τέσσερα κουμπιά ( Zwo, Fagito, Start και Reset ) καθώς και το scrolling text στα δεξιά. Αρχικά θα πρέπει να εξετάσουμε το σενάριο μας προκειμένου να είναι πιο εύκολη η υλοποίηση του συστήματος. Αυτό που θέλουμε να πραγματοποιήσουμε είναι τα αντικείμενα Alogo και Fakes να φαίνονται σαν να «πέφτουν» από το πάνω μέρος του playfield ένα-ένα με τη σειρά και ο χρήστης κατά τη διάρκεια που ένα αντικείμενο πέφτει να μπορεί να επιλέξει αν είναι ζώο ή φαγητό. Ανάλογα με την απάντηση που δίνει ο χρήστης θα πρέπει να εμφανίζεται το αντίστοιχο μήνυμα μέσα στο scrolling text για το αν η απάντηση που έχει δοθεί είναι σωστή η λανθασμένη. Αν πάλι ο χρήστης δεν προλάβει να πατήσει κάποιο από τα κουμπιά και το αντικείμενο φτάσει στο κάτω μέρος του playfield θα πρέπει να πηγαίνουμε στο επόμενο αντικείμενο και να εμφανίζεται και πάλι στο scrolling text η σωστή απάντηση. Από αυτή την περιγραφή του παιχνιδιού προκύπτουν τα εξής. Για κάθε text-αντικείμενο θα πρέπει να ορίσουμε μία αρχική θέση (πάνω μέρος του playfield) και μία ταχύτητα καθόδου(y -άξονας). Συνεπάγεται ένα script για κάθε αντικείμενο. Μόλις ο χρήστης δώσει μία απάντηση θα πρέπει να την καταγράφουμε και να εφαρμόζουμε την εξής διαδικασία. Εμφάνιση αποτελέσματος στο scrolling text Σταμάτημα script του συγκεκριμένου αντικειμένου Εξαφάνιση αντικειμένου Εκτέλεση script επόμενου αντικειμένου - 62 -

Μόλις ο χρήστης πατήσει reset θα πρέπει όλα τα αντικείμενα να επανέλθουν σε αρχική κατάσταση Μόλις το αντικείμενο φτάσει στο κάτω μέρος θα πρέπει vα εμφανίζεται το αποτέλεσμα στο scrolling text Μόλις ο χρήστης πατήσει start θα πρέπει να γίνεται αρχικοποίηση όλων των μεταβλητών και επαναφορά αντικειμένων σε σημείο που να μην είναι ορατά στο playfield. Πριν συνεχίσουμε την ανάλυση ας δούμε με ποιον τρόπο μπορούμε να ελέγχουμε την ορθότητα των απαντήσεων που δίνουμε ανά πάσα στιγμή. Δημιουργούμε μεταβλητές για τα αντικείμενα που τα ονομάζουμε ίδια με το όνομα του αντικειμένου. (Για να δημιουργήσουμε μία μεταβλητή επιλέγουμε από τα στοιχεία του αντικειμένου το κουμπί V που βρίσκεται ακριβώς αριστερά στο όνομα του αντικειμένου). Έτσι έχουμε τόσες τέτοιες μεταβλητές για κάθε αντικείμενο όσα είναι και τα αντικείμενα. Εικόνα 76: Τοποθετώντας μία επιπλέον μεταβλητή - 63 -

Τοποθετώντας μία επιπλέον μεταβλητή σε ένα αντικείμενο κάθε φορά που ο χρήστης κάνει μία επιλογή (Ζώο ή Φαγητό), τότε θέτουμε τιμές σε αυτή τη μεταβλητή που ταιριάζουν με την επιλογή του χρήστη. Έτσι, αν έχουμε 4 αντικείμενα θα έχουμε και 4 αντικείμενα. Όταν ο χρήστης επιλέγει Ζώο ή Φαγητό, ΑΝΕΞΑΡΤΗΤΑ ΑΠΟ ΤΟ ΠΟΙΟ ΑΝΤΙΚΕΙΜΕΝΟ ΠΕΦΤΕΙ ΤΗ ΔΕΔΟΜΕΝΗ ΣΤΙΓΜΗ θα πρέπει να ανατεθούν τιμές σε αυτές τις μεταβλητές βάση της απάντησης. Έτσι αν έχουμε τρία ζώο και 1 φαγητό και ο χρήστης πατήσει ζώο τότε θα πρέπει να δώσουμε την τιμή 1 στις μεταβλητές των αντικειμένων που είναι φαγητά και την τιμή 2 στη μεταβλητή των αντικειμένων που είναι ζώο. Αν πατήσουμε ζώο θα πρέπει να δώσουμε την τιμή 2 στις μεταβλητές των αντικειμένων που είναι φαγητό και την τιμή 1 στη μεταβλητή των αντικειμένων που είναι ζώο. Με αυτό τον τρόπο θα μπορούμε να γνωρίζουμε τη σωστή απάντηση του χρήστη. Δεδομένου ότι για κάθε αντικείμενο που πέφτει θα πρέπει να αφήνουμε το χρήστη να επιλέξει αν είναι ζώο ή φαγητό κάθε φορά που θα ξεκινά ένα καινούριο script οι τιμές αυτές θα πρέπει να μηδενίζονται. Ας ξεκινήσουμε λοιπόν με αυτά τα στοιχεία να χτίζουμε το πρόγραμμά μας. Θα κάνουμε αρχή από τα απλά στοιχεία του προγράμματος. Θεωρούμε πως μέχρι τώρα έχουμε τα αρχικά στοιχεία του προγράμματος όπως δείξαμε στην αρχή καθώς και μία μεταβλητή για κάθε αντικείμενο το οποίο έχει το όνομα του αντικειμένου. Στο συγκεκριμένο παράδειγμα λοιπόν θα πρέπει να έχουμε τις επιπλέον μεταβλητές fakes μέσα στο αντικείμενο fakes και alogo μέσα στο αντικείμενο alogo. Αρχικά θα φτιάξουμε τα scripts για όλα τα αντικείμενα. Θα χρειαστούμε ένα script για κάθε κουμπί, ένα script για κάθε αντικείμενο και ένα επιπλέον script που θα έχει ρόλο να μηδενίσει τις τιμές των επιπρόσθετων μεταβλητών που φτιάξαμε όταν θα γίνεται η μετάβαση από ένα αντικείμενο σε άλλο. Αυτό το τελευταίο script δε μας απασχολεί σε ποιο αντικείμενο θα ανήκει γι αυτό θα το κάνουμε ένα script του κόσμου. Για να εμφανίσουμε τα στοιχεία του κόσμου πατάμε Alt+Click σε ένα κενό μέρος της οθόνης και επιλέγουμε το μάτι. Από εδώ θα φτιάξουμε αυτό το γενικό script. Έτσι δημιουργούμε επτά κενά scripts για το πρόγραμμά μας. - 64 -