Το ολοκληρωμένο βιβλίο βρίσκεται στη διεύθυνση http://www.koduplay.gr


Ομάδα 7
Βουρονίκου Ασημίνα
Ζυγούρα Βαΐα



Τα παιδιά μαθαίνουν προγραμματισμό παίζοντας
Τι είναι προγραμματισμός

H Microsoft κυκλοφορεί το Kodu
Τα παιδιά μαθαίνουν με το Kodu
Learning at Kodu Kamp
Kodu Game-Creation Tool for Kids Adapted for the PC
Μια εισαγωγή στον προγραμματισμό
Η δημιουργία παιχνιδιών στο Kodu βοηθάει στη μάθηση
Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα - Προγραμματισμός
Κεφάλαιο 1 του βιβλίου scratchplay (20/3)
Αλγόριθμος - Προγραμματισμός - Γλώσσες Προγραμματισμού
Computational thinking (30/3)
Lego Mindstorms
Επίδειξη απο την 12 χρονη Sparrow (3/5)
Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα - Κεφ. 1 Ψηφιακός Κόσμος (4/5)









Παραδοτέο αρχείο σε Word ->



εικόνα ->


ΚΕΦΑΛΑΙΟ 1 : Κάθε αρχή και ...εύκολη!

1.1 Σκοπός του βιβλίου
1.2 Μαθαίνω τι είναι πρόγραμμα και προγραμματισμός
1.3 Πως επικοινωνούμε με τους υπολογιστές;
1.4 Γιατί να μάθω προγραμματισμό;
1.5 Προγραμματισμός και παιχνίδια – Πολλά περιβάλλοντα
1.6 Kodu και προγραμματισμός



  1. Να ορίζουν τι είναι πρόγραμμα.
  2. Να καταδεικνύουν περιπτώσεις από την καθημερινή τους ζωή στις οποίες έχουν χρησιμοποιήσει κάποιο πρόγραμμα .
  3. Να ορίζουν τι είναι προγραμματισμός.
  4. Να αναγνωρίσουν την χρησιμότητα του προγραμματισμού.
  5. Να περιγράφουν τι είναι το Kodu.
Όλα τα παραπάνω θα πρέπει να επιτευχθούν μέσα στο πλαίσιο ότι τα παιδιά μπορούν να μάθουν προγραμματισμό μέσα από την ευχάριστη διαδικασία της δημιουργίας παιχνιδιών μέσω του Kodu- για τις ανάγκες του παρόντος βιβλίου- αλλά και χρησιμοποιώντας άλλα περιβάλλοντα προγραμματισμού παιχνιδιών .





Σε αυτή την φάση ότι γράφουμε είναι απλά ένα προσχέδιο / προτάσεις για την τελική μορφή του κεφαλαίο που θα ανεβαίνει σταδιακά και από τις 2 μας






Κεφάλαιο 1ο : Κάθε αρχή και... εύκολη!


Στο κεφάλαιο που ακολουθεί θα έχετε την δυνατότητα να έρθετε σε μια πρώτη επαφή με το αντικείμενο που θα αναπτυχθεί σε όλο το βιβλίο. Θα μάθετε τον λόγο για τον οποίο θα μάθουμε να προγραμματίζουμε με το MSKodu, θα πάρετε μερικές απαντήσεις για τους λόγους που πρέπει να μάθετε προγραμματισμό και θα μπορέσετε να αντιληφθείτε ότι ο προγραμματισμός δεν είναι μια νέα έννοια, αλλά ότι μπορείτε να την βρείτε κριμένη σε πολλές καθημερινές σας ενέργιες. Ας ξεκινήσουμε λοιπόν!



1.1 Σκοπός του βιβλίου



Καθημερινά χρησιμοποιούμε διάφορες υπολογιστικές εφαρμογές όπως κειμενογράφους για να γράφουμε τα κείμενά μας και πλοηγητές για να εξερευνούμε το διαδίκτυο. Έχετε αναρωτηθεί πως δημιουργούνται οι εφαρμογές αυτές; Θα θέλατε να δημιουργήσετε τις δικές σας εφαρμογές; Σκοπός αυτού του βιβλίου είναι να σας εισάγει στον κόσμο του προγραμματισμού, ένα κόσμο που θα μας επιτρέψει να δημιουργούμε τα δικά μας προγράμματα με ένα όμως ιδιαιτέρως διασκεδαστικό και δημιουργικό τρόπο. Πως θα σας φαινόταν αν αντί για απλοί χρήστες ενός παιχνιδιού μπορούσατε να γίνετε οι κατασκευαστές του; Θα θέλατε να μπορείτε να προσδιορίσετε τη συμπεριφορά των ηρώων σας, πότε πυροβολούν, πότε χάνουν, ποια εμπόδια πρέπει να αποφύγουν, ποιους εχθρούς μπορούν να εξολοθρεύσουν ή πόσα νομίσματα πρέπει να συλλέξουν για να κερδίσουν;
Θα συζητήσουμε για όλα αυτά μέσα από τη χρήση της εφαρμογής προγραμματισμού MSKodu, ενός περιβάλλοντος προγραμματισμού. Ένα περιβάλλον που δημιουργήθηκε για να εμπνεύσει μικρούς και μεγάλους να δημιουργήσουν εύκολα και γρήγορα συναρπαστικά παιχνίδια! Ο κεντρικός μας ήρωας που θα κληθείτε να οδηγήσετε σε συναρπαστικές περιπέτειες είναι ο Kodu που φαίνεται στην επόμενη εικόνα (Εικόνα 1.1).

01_cartoon_kodu.png
Εικόνα 1.1


Στο τέλος της μελέτης του βιβλίου μας θα είστε σε θέση να προγραμματίζετε τον ήρωα μας ώστε με τη βοήθεια του χρήστη να ανατινάζει κάστρα (Εικόνα 1.2), να πυροβολεί τους αντιπάλους του, να τρώει μήλα, να κολυμπάει και να κερδίζει πόντους και ζωές. Θα μπορείτε να φτιάξετε ένα παιχνίδι στο οποίο ο παίκτης θα μπορεί με τον Kodu να παίζει ποδόσφαιρο σε ένα γήπεδο και να προσπαθεί να βάλει γκολ (Εικόνα 1.3). Ακόμη να σώζει την αγαπημένη του προσπαθώντας να περάσει μέσα από χαράδρες με λάβα και ψηλά βουνά (Εικόνα 1.4). Μπορείτε να το κάνετε να παίξει ακόμα και το παιχνίδι κλέφτες και αστυνόμοι που παίζατε πιο μικροί (Εικόνα 1.5).

k01_world.PNG
Εικόνα 1.2
k01_lava.png
Εικόνα 1.3



K01_stadium.PNG
Εικόνα 1.4
K01_kleftis.PNG
Εικόνα 1.5


Καλωσορίσατε στον μαγικό κόσμο του προγραμματισμού με το MSKodu!
Σας ευχόμαστε καλή διασκέδαση!!




1.2 Μαθαίνω τι είναι πρόγραμμα και προγραμματισμός



Ας δούμε πως ορίζει η βικιπαιδεία το πρόγραμμα:
Στην επιστήμη υπολογιστών με τον όρο πρόγραμμα αναφερόμαστε σε μια συγκεκριμένη ακολουθία εντολών τις οποίες πρέπει να εκτελέσει ένας υπολογιστής για να παραγάγει το επιθυμητό για το χρήστη αποτέλεσμα.
Σας μπέρδεψε; Ας κάνουμε τα πράγματα πιο απλά…. Πρόγραμμα είναι η ακολουθία των βημάτων που πρέπει να γίνουν για να λυθεί ένα πρόβλημα. Δυο είναι δηλαδή τα βασικά μας στοιχεία, το πρόβλημα και ο τρόπος επίλυσής του.
Τι προβλήματα συναντάμε στον κόσμο των υπολογιστών; Θέλουμε να παίζουμε παιχνίδια, να γράφουμε κείμενα, να επισκεπτόμαστε ιστοσελίδες στο διαδίκτυο, να κάνουμε σύνθετες πράξεις για να προβλέψουμε τον καιρό. Προγραμματισμός είναι η διαδικασία με την οποία προσπαθούμε να δώσουμε τις κατάλληλες οδηγίες στον υπολογιστή για το πώς θα λύσει τα συγκεκριμένα προβλήματα ενώ προγράμματα είναι τα τελικά σύνολα των εντολών που εμείς ως προγραμματιστές καταλήξαμε ότι λύνουν τα προβλήματά μας.
Όμως ο προγραμματισμός είναι μια γενική έννοια που δεν συναντάμε μόνο στους υπολογιστές αλλά και στην καθημερινή μας ζωή. Δημιουργούμε προγράμματα για να λύνουμε προβλήματα την καθημερινότητα μας.
Εσείς στο σχολείο καλείστε κυρίως να λύσετε μαθηματικά προβλήματα που περιλαμβάνουν υπολογισμούς και λογικές πράξεις όπως π.χ. ο υπολογισμός του όγκου ενός κυλίνδρου (Εικόνα 2.1). Πώς θα το επιλύατε ένα αντίστοιχο πρόβλημα;

01_kilindros.png

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

01_embadon.png
Δεύτερο βήμα είναι να πολλαπλασιάσουμε το εμβαδόν που βρήκαμε με την ακτίνα του κυλίνδρου στο τετράγωνο και έτσι έχουμε σαν αποτέλεσμα τον όγκο του κυλίνδρου.
01_ogkos.png
Ένα άλλο πρόβλημα είναι και ο τρόπος που θα μπει μια τάξη 130 μαθητών σε λεωφορεία χωρητικότητας 50 ατόμων για να πάει εκδρομή με το σχολείο. Ξεκινάμε σαν πρώτο βήμα να υπολογίσουμε ποσά λεωφορεία θα χρειαστούν. Αφού το κάθε λεωφορείο χωράει 50 μαθητές και η τάξη έχει 130 μαθητές θα χρειαστούν 3 λεωφορεία για να σας μεταφέρουν. Κατόπιν, δεύτερο βήμα είναι να βάλουμε τους μαθητές ισομερώς στα λεωφορεία. Έτσι διαιρούμε τον αριθμό των μαθητών με τον αριθμό των λεωφορείων που υπολογίσαμε στο πρώτο βήμα. Έτσι επειδή προκύπτει κάτι πάνω από 43 βάζουμε τους 43 πρώτους μαθητές στο πρώτο λεωφορείο. Έπειτα βάζουμε τους επόμενους 43 στο δεύτερο λεωφορείο και τέλος τους τελευταίους 44 μαθητές που περισσεύουν στο τρίτο λεωφορείο.
k01_bus.png

Για να λύσουμε τα παραπάνω προβλήματα ακολουθήσαμε μια σειρά από βήματα. Ο τρόπος που σκεπτόμαστε για να λύσουμε ένα πρόβλημα ονομάζεται αλγόριθμος. Το πρόγραμμα είναι ο τρόπος εκτέλεσης αυτού του αλγορίθμου. Κάθε πρόγραμμα “κρύβει” πίσω του έναν αλγόριθμο. Όπως ίσως ήδη έχετε αντιληφθεί για να λύσουμε το πρόβλημα και να χτίσουμε σωστά τον αλγόριθμο πρέπει να κατανοήσουμε πλήρως το πρόβλημα, το περιβάλλον του και τις προϋποθέσεις που μας δίνονται. Για να δούμε όμως το πρόβλημα του παρακάτω λαβυρίνθου. Το ζητούμενο είναι ο ιππότης να βγει από τον λαβύρινθο και να σώσει την πριγκίπισσα (Εικόνα 2.2). Οι διαθέσιμες οδηγίες που έχουμε είναι οι επιτρεπτές κινήσεις που μπορεί να κάνει. Μπορεί να κινηθεί δεξιά, αριστερά, προς τα πάνω και προς τα κάτω αλλά δεν μπορεί να διαπερνά τους τοίχους. Πώς θα καθοδηγούσαμε λοιπόν τον ιππότη για να σώσει την αγαπημένη του;

lavirinthos.png
Εικόνα 2.2

Ένα σύνολο οδηγιών που θα έλυνε επιτυχώς το πρόβλημα είναι το ακόλουθο :
Ιππότη
1. Κάνε πέντε βήματα προς τα κάτω
2. Κάνε τέσσερα βήματα προς τα δεξιά
3. Κάνε τέσσερα βήματα προς τα δεξιά
4. Κάνε ένα βήμα προς τα δεξιά
5. Κάνε δύο βήματα προς τα κάτω
6. Κάνε δύο βήματα προς τα δεξιά
7. Κάνε δύο βήματα προς τα κάτω

Να η πριγκίπισσα σου!
last.png
Ας δούμε άλλο ένα παράδειγμα.Έχουμε μια χελωνίτσα που αγαπά να ζωγραφίζει .

turtle_one.png
Ποιες οδηγίες πρέπει να της δώσουμε για να ζωγραφίσει ένα τετράγωνο; Οι διαθέσιμες οδηγίες που μας δίνονται είναι το σύνολο των κινήσεων που μπορεί να κάνει - δεξιά, αριστερά, πάνω, κάτω - και ότι δεν μπορεί να σηκώσει το μολύβι πριν τελειώσει το τετράγωνο.
Οι οδηγίες θα μπορούσαν να είναι οι εξής :
1. Τράβηξε μία γραμμή προς τα δεξιά

turtle_two.png





2. Τράβηξε μια ίδιου μήκους γραμμή προς τα κάτω
turtle_three.png
3. Τράβηξε μία ίδιου μήκους γραμμή προς τα αριστερά
turtle_forth.png
4. Τράβηξε μία όμοια γραμμή προς τα πάνω

turtle_fifth.png
Ο τρόπος υλοποίησης του αλγορίθμου στον υπολογιστή που μας οδηγεί στην επίλυση του προβλήματος είναι το πρόγραμμα. Τα βήματα που αποτελούν ένα πρόγραμμα λέγονται εντολές - οδηγίες. Το κλειδί λοιπόν για την λύση αυτών των προβλημάτων είναι η σωστή διατύπωση των εντολών - οδηγιών.
Οι εντολές αυτές πρέπει να ακολουθούνε μια λογική σειρά. Σκεφτείτε, τι θα συνέβαινε αν λέγαμε στην χελώνα να κάνει πρώτα το βήμα 3 και έπειτα το βήμα 2. Θα ζωγράφιζε τελικά η χελώνα το τετράγωνο; Προφανώς όχι. Θα προέκυπτε κάτι τέτοιο:
01_turtle_wrong.png
Σκεφτείτε τώρα τι συμβαίνει όταν παίζετε το ηλεκτρονικό παιχνίδι super mario (Εικόνα 2.3). Εσείς πατάτε πλήκτρα , ο υπολογιστής αντιστοιχίζει τα πλήκτρα με τις εντολές του προγράμματος και κινεί ανάλογα τον mario.
Πατώντας το δεξί βελάκι ο mario προχωράει προς τα δεξιά, με το space χοροπηδάει, με το αριστερό βελάκι γυρίζει πίσω κλπ. Η κίνηση του Mario στον υπολογιστή είναι ένα πρόβλημα που καλείται να λύσει κάποιος προγραμματιστής.

01_mario.png
Εικόνα 2.3


Αυτό που πρέπει να γίνει απολύτως κατανοητό είναι ότι ο υπολογιστής δεν έχει νοημοσύνη. Οι εντολές που χρησιμοποιεί έχουν γραφτεί από κάποιον προγραμματιστή. Έτσι για κάθε πρόβλημα ο υπολογιστής εκτελεί μια σειρά εντολών που θα οδηγήσουν στην επίλυση τους.
Φυσικά δεν είναι μόνο τα παιχνίδια, που η υλοποίησή τους βασίζεται πάνω σε αυτή την λογική. Ο browser που σίγουρα έχετε χρησιμοποιήσει για να επισκέπτεστε διάφορες ιστοσελίδες, το πρόγραμμα του ηλεκτρονικού ταχυδρομείου με το οποίο έχετε στείλει ένα μαιλ σε έναν φίλο σας είναι μερικά από τα προγράμματα τα οποία δημιουργήθηκαν από τους προγραμματιστές. Τα προγράμματα αυτά μπορεί να σας φαίνονται πολύ δύσκολο για να δημιουργηθούν, αλλά η λογική που χρησιμοποιήθηκε για να κατασκευαστούν είναι η ίδια. Οι προγραμματιστές ανέλυσαν τα προβλήματα σε μικρότερα υποπροβλήματα, έφτιαξαν αλγόριθμους για να βρουν την λύση σε αυτά και στην συνέχεια συνέθεσαν τις λύσεις που βρήκαν για να βρουν την συνολική. Αυτό λοιπόν είναι πρόγραμμα. Είναι μέσα στην ζωή μας ακόμα και αν δεν το καταλαβαίνουμε και την διευκολύνει! Η διαδικασία σύνταξης προγραμμάτων ονομάζεται προγραμματισμός.
Ο προγραμματισμός είναι μια ταχύτατα εξελισσόμενη επιστήμη που μέσα από τα διάφορα επιτεύγματα που έχουν επιτύχει οι επαγγελματίες του κλάδου - οι προγραμματιστές - έχει συμβάλει κατά πολύ στην τεχνολογική πρόοδο.
Τέλος, η συγγραφή των προγραμμάτων από τους προγραμματιστές γίνεται με τις γλώσσες προγραμματισμού.




1.3 Πως επικοινωνούμε με τους υπολογιστές ;
Πίσω από όλα τα προηγούμενα παραδείγματα κρύβεται μια γλώσσα προγραμματισμού, δηλαδή ένας τρόπος με τον οποίο μιλάμε σε ένα αντικείμενο και του διατυπώνουμε μια σειρά εντολών. Έτσι για παράδειγμα η γλώσσα προγραμματισμού της χελώνας περιλάμβανε εντολές οι οποίες μας επέτρεπαν να κινήσουμε την χελώνα δεξιά, αριστερά, πάνω, κάτω. Αλλά και στο παράδειγμα με τον ιππότη είδαμε τον ήρωά μας ο οποίος ακολουθώντας μια σειρά εντολών κατάφερε τελικά να σώσει την πριγκίπισσα του.
Διαλέγοντας το τελευταίο παράδειγμα, τι θα γινόταν στην περίπτωση που στη θέση του ιππότη είχαμε έναν υπολογιστή; Με ποιον τρόπο καταλαβαίνει την σειρά εντολών “Κάνε πέντε βήματα προς τα κάτω”, “Κάνε τέσσερα βήματα προς τα δεξιά” κτλ που δώσαμε στον ιππότη, ένας υπολογιστής; Και σίγουρα προβληματίζεστε για το πως είναι καν δυνατό να αντιληφθεί μια σειρά βημάτων ένας υπολογιστής αφού δεν έχει ούτε αυτιά για να ακούσει τις εντολές, ούτε μάτια για να δει ένα σχέδιο του λαβυρίνθου με την διαδρομή που θα πρέπει να ακολουθήσει.
Η απάντηση σε όλα τα παραπάνω ερωτήματα είναι πως ναι, ο υπολογιστής μπορεί να καταλάβει μια σειρά ενεργειών θέλουμε να εκτελέσει. Αρκεί να του μιλήσουμε στην δική του γλώσσα, την μοναδική γλώσσα που καταλαβαίνει και ονομάζεται γλώσσα μηχανής. Ας μάθουμε λοιπόν, κάτι παραπάνω για την γλώσσα μηχανής.
Ανατρέχοντας στην ιστορία των υπολογιστών, βλέπουμε ότι οι πρώτοι υπολογιστές (από την δεκαετία του 1940) δημιουργήθηκαν, για να εκτελούν αριθμητικές πράξεις. Ωστόσο, οι κατασκευαστές της εποχής εκείνης ήρθαν αντιμέτωποι με ένα μεγάλο πρόβλημα. Τα αριθμητικά ψηφία (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ) του δεκαδικού συστήματος δεν μπορούσαν να χρησιμοποιηθούν, αφού η κατασκευή ενός τέτοιου υπολογιστή ήταν εξαιρετικά πολύπλοκη. Η λύση ήρθε με την χρήση ενός άλλου συστήματος αρίθμησης, του δυαδικού, με το οπόιο όλοι οι αριθμοί μπορούσαν να αναπαρασταθούν με τον συνδυασμό δύο καταστάσεων του 0 και 1. Οι δύο αυτες καταστάσεις διευκόλυναν τους κατασκευαστές γιατί τους έδωσε την δυνατότητα να αντιστοιχίσουν :
  • την απουσία ρεύματος (που περνάει μέσα από τα κυκλώματα του υπολογιστή) με : 0 (Εικόνα 3.1 α)
  • την παρουσία ρεύματος (που περνάει μέσα από τα κυκλώματα του υπολογιστή) με : 1 (Εικόνα 3.1 β)
k01_bold.png
Εικόνα 3.1

και έτσι μπόρεσαν να δημιουργήσουν μια γλώσσα που είχε σαν αλφάβητο το 0 και το 1. Αν ήθελαν λοιπόν, να δώσουν μια απλή εντολή στον υπολογιστή π.χ. να προσθέσει το
5 + 6 και να εμφανίσει το αποτέλεσμα, έπρεπε να μετατρέψουν όλη αυτή την εντολή, σε μια γραμμή από 0 και 1. Η γλώσσα αυτή ονομάστηκε γλώσσα μηχανής.
Οι γλώσσες προγραμματισμού λειτουργούν όπως οι φυσικές γλώσσες(ελληνικά, αγγλικά, κτλ) που χρησιμοποιούν οι άνθρωποι για να επικοινωνούν μεταξύ τους. Κάθε μία έχει διαφορετικό λεξιλόγιο και συντακτικό αλλά όλες κατασκευάστηκαν για να ικανοποιούν τον ίδιο στόχο, δηλαδή την πιο “ανθρώπινη” επικοινωνία με τον υπολογιστή. Φυσικά τώρα αναρωτιέστε, πόσες γλώσσες υπάρχουν; Μια δεν είναι αρκετή; Ποια η διαφορά της μιας γλώσσας από την άλλη;
Σε αυτή την φάση δεν χρειάζεται να αγχώνεστε με όλα τα παραπάνω. Αρκεί να αναφέρουμε ότι υπάρχουν πολλές διαφορετικές γλώσσες και ο λόγος ύπαρξής τους είναι ότι καμία δεν μπορεί να υλοποιήσει τις πολύ διαφορετικές απαιτήσεις των ανθρώπων. Κάθε μια από αυτές δημιουργήθηκε για να αντιμετωπίζει διαφορετικά προβλήματα (π.χ. μαθηματικά προβλήματα ή παιχνίδια με γραφικά) και καταλαβαίνετε πως όσο αναπτύσσεται η επιστήμη των υπολογιστών και αυξάνονται οι απαιτήσεις των ανθρώπων, τόσο θα κάνουν την εμφάνιση τους νέες γλώσσες προγραμματισμού.
Ήδη αναφέραμε πως οι γλώσσες προγραμματισμού αναλαμβάνουν να μετατρέψουν τις εντολές που παρέχουν, σε γλώσσα μηχανής. Την μετατροπή αυτή εκτελεί ένα πρόγραμμα που ονομάζεται μεταγλωττιστής και την λειτουργία του θα προσπαθήσουμε να εξηγήσουμε με το πιο κάτω παράδειγμα.
Κατά την επίσκεψή σας στην πινακοθήκη της πόλης σας, παρατηρείτε τους διάφορους τουρίστες που έρχονται να θαυμάσουν τα εκθέματα. Στην συνέχεια οι τουρίστες θέλουν να μάθουν περισσότερα για την ιστορία του κάθε εκθέματος και να θέσουν κάποια ερωτήματα στον ιστορικό τέχνης του μουσείου (Εικόνα 3.2). Κανένας από αυτούς δεν γνωρίζει την ελληνική γλώσσα, ωστόσο όλα τα γκρουπ των επισκεπτών έχουν μαζί τους από έναν ξεναγό ο οποίος μεταφέρει τα ερωτήματα στον ιστορικό τέχνης. Ο ξεναγός για παράδειγμα, από ένα γκρουπ Άγγλων θα μεταφράσει τα ερωτήματα από τα αγγλικά στα ελληνικά, ο Ιταλός ξεναγός θα μεταφράσει τα ερωτήματα από τα ιταλικά στα ελληνικά κ.ο.κ

k01_analogia_2.png
Εικόνα 3.2

Αναλογικά θα μπορούσαμε να πούμε, όπως λειτουργούν οι διαφορετικές φυσικές γλώσσες (αγγλικά, ιταλικά, κτλ) που χρησιμοποιούν οι τουρίστες για να επικοινωνούν μεταξύ τους και να διατυπώνουν τα ερωτήματά τους, έτσι λειτουργούν και οι γλώσσες προγραμματισμού για να μπορέσουν οι άνθρωποι να επικοινωνήσουν με τον υπολογιστή. Όπως κάθε γκρουπ έχει τον δικό της ξεναγό, έτσι και κάθε γλώσσα προγραμματισμού έχει τον δικό της μεταγλωττιστή που μετατρέπει τις εντολές γλώσσα προγραμματισμού εντολές σε γλώσσα μηχανής. Τέλος, όπως ο ιστορικός τέχνης καταλαβαίνει μόνο την δική του γλώσσα και καμία άλλη, έτσι και ο υπολογιστής καταλαβαίνει μόνο την γλώσσα μηχανής.
Ας δώσουμε και σχηματικά την επικοινωνία ανθρώπου - υπολογιστή (Σχήμα 3.1). Ο άνθρωπος προγραμματίζει σε μια γλώσσα προγραμματισμού. Στην συνέχεια ο μεταγλωττιστής της γλώσσας κάνει την μετατροπή του προγράμματος σε γλώσσα μηχανής και έπειτα ο υπολογιστής αναλαμβάνει να εκτελέσει το πρόγραμμα στην νέα του μορφή.
k01_pc_user.png
Σχήμα 3.1





1.4 Γιατί να μάθω προγραμματισμό;
Για ποιον λόγο να μάθουμε προγραμματισμό; Έχουμε να κερδίσουμε κάτι ή είναι ένα αντικείμενο με το οποίο ασχολούνται μόνο ειδικοί στους υπολογιστές; Καταρχάς να αναφέρουμε πως εμείς με την βοήθεια του Kodu θα μάθουμε προγραμματισμό για να κατασκευάζουμε τα δικά μας παιχνίδια! Άρα προβλέπεται πολύ διασκέδαση!
Επιπλέον θα ικανοποιήσετε την περιέργεια που έχετε για τον τρόπο δημιουργίας ενός παιχνιδιού και παράλληλα θα νιώσετε χαρά δημιουργώντας τα δικά σας. Πέρα όμως από το να κατασκευάζετε παιχνίδια μπορείτε να σκεφτείτε τον προγραμματισμό σαν ένα λευκό καμβά πάνω στον οποίο θα μπορείτε να ζωγραφίσετε ότι θέλετε. Δηλαδή θα είσαστε σε θέση να κατασκευάσετε ότι προγράμματα θέλετε χωρίς κανείς να περιορίσει την δημιουργικότητά σας.
Χρησιμοποιώντας γλώσσες προγραμματισμού, θα μπορείτε να φτιάξετε για παράδειγμα ένα ηλεκτρονικό ημερολόγιο που θα κρατάει τα γενέθλια και τις γιορτές των φίλων σας και θα σας ενημερώνει όταν πλησιάζει κάθε μία. Θα μπορείτε να φτιάξετε ένα πρόγραμμα στο οποίο να εισάγεται τους βαθμούς των μαθημάτων σας και να εμφανίζει τον μέσο όρο. Θα μπορούσατε να κατασκευάσετε, ακόμη και έναν ηλεκτρονικό διαχειριστή των οικονομικών σας, με την βοήθεια του οποίου να διαχειρίζεστε καλύτερα το εβδομαδιαίο χαρτζιλίκι. Ο προγραμματισμός λοιπόν μπορεί να διευκολύνει αλλά και να δώσει μια ευχάριστη και διασκεδαστική νότα στην καθημερινότητά σας.
Ακόμη, θα καταλάβετε πως όλες αυτές οι εφαρμογές με τις οποίες ασχολούμαστε καθημερινά δε δουλεύουν με ένα μαγικό τρόπο, αλλά αξιοποιούν απλές εντολές που καθορίζουν τη συμπεριφορά τους. Θα μπορέσετε για παράδειγμα να καταλάβετε το σκεπτικό ενός προγραμματιστή όταν γράφετε μια έκθεση στον κειμενογράφο, ή όταν ζωγραφίζεται ένα χαμογελαστό πρόσωπο στο πρόγραμμα ζωγραφικής. Κατανοώντας τον προγραμματισμό θα σταματήσετε να αντιμετωπίζεται την τεχνολογία των υπολογιστών σαν κάτι ακαταλαβίστικο και ίσως επικίνδυνο. Με μεγαλύτερη αυτοπεποίθηση θα χρησιμοποιείται τους υπολογιστές ενώ κατασκευάζοντας τα δικά σας προγράμματα θα γίνεται συν - δημιουργοί του μέλλοντος, αφού θα διαπιστώσετε πως εσείς οι ίδιοι μπορείτε να δημιουργείτε τεχνολογία. Μην θεωρείτε πως είμαστε υπερβολικοί! Πολλοί συμμαθητές από διάφορα μέρη του πλανήτη κατάφεραν να κατασκευάσουν καταπληκτικά προγράμματα τα οποία εντυπωσίασαν ακόμα και τους πιο έμπειρους προγραμματιστές.
Φωτεινό παράδειγμα είναι η 12χρονη Sparrow. Το κορίτσι αυτό επιλέχθηκε από την ίδια την Microsoft, την εταιρία που δημιούργησε το Kodu, για να παρουσιάσει το περιβάλλον του MSKodu στο κοινό (Εικόνα 4.1). Η Sparrow κατά την επίδειξη δημιούργησε ένα τόσο συναρπαστικό παιχνίδι το οποίο δεν θαύμασε μόνο το κοινό αλλά και πολλοί καταξιωμένοι προγραμματιστές της Microsoft. Αν θέλετε να δείτε όλη την επίδειξη, με την Sparrow να επιδεικνύει το παιχνίδι μπορείτε, ακολουθόντας τον σύνδεσμο: Επίδειξη του MSKodu

01_sparrow_2.png
Εικόνα 4.1 Η 12χρονη Sparrow με τον προγραμματιστή της Microsoft, Robbie Bach


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

Τι λέτε λοιπόν θέλετε να αρχίσουμε σιγά σιγά την αναρρίχηση του προγραμματισμού;
k01_climber.png



1.5 Προγραμματισμός και παιχνίδια – Πολλά περιβάλλοντα
Ήδη έχουμε αναφέρει ότι σκοπός αυτού του βιβλίου είναι να σας μάθει προγραμματισμό δημιουργώντας τα δικά σας παιχνίδια. Για να το πετύχουμε αυτό θα ακολουθήσουμε την πορεία του μικρού ήρωα του βιβλίου, του Kodu. Εκτός όμως από τον Kodu θα μάθουμε και για άλλους χαρακτήρες, όπως τον Μηχανάκια, το Υποβρύχιο, το Χελιδονόψαρο, το Κανόνι, την Χελώνα. Θα έχουμε την δυνατότητα να προγραμματίσουμε την συμπεριφορά αυτών των χαρακτήρων επιλέγοντας να κάνουν διάφορες ενέργειες όπως, να πυροβολούν, να τρώνε μήλα, να ακούνε ήχους, να κουβαλάνε διάφορα αντικείμενα και να τα μετακινούν σε νέες θέσεις. Με το MSKodu θα φτιάξουμε τους τα πιο όμορφα παιχνίδια, μέσα στα οποία αναπτύσσονται και δραστηριοποιούνται οι χαρακτήρες μας, μαθαίνοντας παράλληλα προγραμματισμό!
Το MSKodu δεν είναι το μόνο περιβάλλον με το οποίο μπορούμε να μάθουμε προγραμματισμό με διασκεδαστικό τρόπο. Προσφέρονται πολλά διαφορετικά προγραμματιστικά περιβάλλοντα που μας επιτρέπουν να κατασκευάσουμε τα δικά μας παιχνίδια, να κατασκευάζουμε ρομπότ, να παρουσιάσουμε ιστορίες και να δημιουργούμε ζωγραφιές. Ας δούμε κάποια για να πάρουμε μια γεύση από τις ενδιαφέρουσες πτυχές του προγραμματισμού.


Scratch
Μέσα απο το περιβάλλον του Scratch θα μπορέσετε να φτιάξετε τις δικές σας ιστορίες και παιχνίδια εύκολα και γρήγορά ενώ θα κάνετε παράλληλα μια εισαγωγή στις βασικές έννοιες του προγραμματισμού! Με το Scratch μπορείτε να φτιάξετε το δικό σας packman, το δικό σας tetris (Εικόνα 5.1) ή τον μοναδικό σας βυθό που αποτελείτε απο μικρά και μεγάλα ψάρια (βλέπε δεξιά της Εικόνας 5.2). Με το Scratch δημιουργείτε πολύ εύκολα όλα αυτά τα παιχνίδια μιας και οι εντολές που αποτελούν το δομικό κομμάτι του προγράμματος απεικονίζονται με μικρά τουβλάκια (βλέπε αριστερά της Εικόνας 5.2). Τα τουβλάκια αυτά τα συνθέτετε μεταξύ τους και δημιουργείτε όποιο πρόγραμμα έχετε φανταστεί, τους πιο καταπληκτικούς κόσμους μέσα στους οποίους ζουν οι ήρωες σας.Κάθε νέο κόσμο που δημιουργείτε έχετε την δυνατότητα να τον βλέπετε άμεσα, να τον τροποποιείται και να πειραματίζεστε πάνω σε αυτόν

k01_tetris.PNG
Εικόνα 5.1 Tetris με το Scratch

k01_scratch.png
Εικόνα 5.2 Τα πορτοκαλί δομικά τουβλάκια του Scratch



Alice 3


Με το Alice μπορείτε να φτιάξετε εικονικούς κόσμους τριών διαστάσεων μέσα στους οποίους δραστηριοποιούνται αντικείμενα που έχετε δημιουργήσει. Τα αντικείμενα αυτά μπορεί να είναι εξωγήινοι ή διαστημόπλοια, δράκοι ή δεινόσαυροι, ιππότες ή νεράιδες. Αν επιλέξετε το αντικείμενο που θα δημιουργήσετε να είναι άνθρωπος, τότε μπορείτε να του δώσετε χαρακτηριστικά όπως φύλο, χρώμα του δέρματος, ύψος, χρώμα των μαλλιών ή ματιών, να διαλέξετε ρούχα κτλ. Έτσι, μπορείτε να δημιουργήσετε μια κοπέλα με καστανά μαλλιά και κορμάκι να κάνει πατινάζ σε μια παγωμένη λίμνη. Έναν αστροναύτη να προσσεληνώνεται (Εικόνα 5.3). ΄Η να φτιάξετε έναν κόσμο με ιππότες, δράκους και μάγους (Εικόνα 5.4). Μπορείτε να δημιουργήσετε ακόμα και το γνωστό παραμύθι του κακού λύκου με τα τρία γουρουνάκια! Παράλληλα με την κατασκευή των κόσμων σας, θα μαθαίνεται προγραμματισμό, αφού έχετε την δυνατότητα να προγραμματίζεται τις ενέργειες που θα κάνουν οι χαρακτήρες σας καθώς και την συμπεριφορά τους όταν έρχονται σε επαφή με άλλους χαρακτήρες.

Adventures-in-Programming-Alice.jpg
Εικόνα 5.3 Κύριο μενού του Alice για την δημιουργία των κόσμων

k01_knight.PNG
Εικόνα 5.4 Ο κόσμος των Ιπποτών μέσα απο το Alice



Lego Mindstorms


Τα Lego Mindstorms περιέχουν, τα ήδη γνωστά σε όλους, τουβλάκια Lego τα οποία συναρμολογούσαμε και για να δημιουργήσουμε κάστρα, αυτοκίνητα, πόλεις και ότι άλλο πρόκυπτε από την φαντασία μας. Όμως με τα Lego Mindstorms δεν έχετε μόνο την δυνατότητα να δημιουργήσετε μια κατασκευή αλλά μπορείτε να προγραμματίσετε την συμπεριφορά που θέλετε να έχει! Για παράδειγμα μπορείτε να κατασκευάσετε ένα σκυλάκι (Εικόνα 5.5) αλλά και να ορίσετε την συμπεριφορά του έτσι ώστε όταν ακούει την φωνή σας να πλησιάζει προς το μέρος σας ή όταν αντιλαμβάνεται μια κίνηση λίγο πιο μακρυά να ανοίγει το στόμα δείχνοντας απειλητικά τα δόντια του. Εσείς δηλαδή προγραμματίζετε τη συμπεριφορά για το ρομποτικό σκυλάκι ώστε να έχει την αίσθηση του ήχου καθώς και την αντίληψη της απόστασης. Και φυσικά το σκυλάκι / ρομποτάκι μπορεί να αποκτήσει και άλλες αισθήσεις αν εσείς το επιθυμείτε. Μπορεί να έχει επιπλέον, την αίσθηση της αφής και του φωτός. Πιο σύνθετα παραδείγματα είναι η κατασκευή ρομπότ / ποδοσφαιριστή (Εικόνα 5.6) που προσπαθεί να βάλει γκολ σε ρομπότ / τερματοφύλακα, ή ρομποτάκια που παλεύουν σε μια μεσαιωνική μάχη για να σώσουν την πριγκίπισσα που βρίσκεται στον πύργο, ή ένα ρομποτάκι σαν άλλος Leonardo da Vinci, να ζωγραφίζει την Μόνα Λίζα (Εικόνα 5.7). Όλα αυτά προγραμματίζοντας απλές εντολές.

k01_dog.PNG
Εικόνα 5.5 Ρομποτικός σκύλος
k01_lego_1.PNG
Εικόνα 5.6 Ρομποτικός ποδοσφαιριστής
k01_lego_davinci.PNG
Εικόνα 5.7 Ρομποτικός ζωγράφος




1.6 Kodu και προγραμματισμός


To MSKodu αρχικά είχε σχεδιαστεί ως εργαλείο μάθησης για τους νέους που χρησιμοποιούν το Xbox 360 και κυκλοφόρησε επίσημα στις 7 Ιανουαρίου του 2009. Δύο χρόνια αργότερα, το MSKodu ήταν επιτυχία στο Xbox Live και το χρησιμοποιούσαν σε περισσότερα από 60 εκπαιδευτικά ιδρύματα σε όλη την υφήλιο για να εισάγουν τα παιδιά στον προγραμματισμό. Τώρα όμως είναι διαθέσιμο δωρεάν και για το PC.
Χρησιμοποιώντας το cartoon Kodu μπορείτε να δημιουργήσετε απίθανα παιχνίδια και να προκαλέσετε τους γύρω σας να τα τερματίσουν!

01_kodu1.png 01_kodu2.png


01_kodu3.png 01_kodu4.png

Ας κάνουμε και μια βόλτα στα περιεχόμενα του βιβλίου. Στο κεφάλαιο 2 θα μάθετε πώς να εγκαταστήσετε το Kodu και θα παίξετε τα πρώτα παιχνίδια σας! Στο κεφάλαιο 3 ξεκινάτε από τόσο νωρίς να φτιάχνετε τα δικά σας παιχνίδια. Στο κεφάλαιο 4 θα μάθετε να δημιουργείτε τους δικούς σας εντυπωσιακούς κόσμους για τα παιχνίδια σας. Στα κεφάλαια 5, 6 και 7 θα μελετήσουμε πως δημιουργούμε αντικείμενα, πως προγραμματίζουμε τη συμπεριφορά τους, πως τους επιτρέπουμε να αλληλεπιδρούν με τον χρήστη, με άλλα αντικείμενα και τον κόσμο του παιχνιδιού μας. Στο κεφάλαιο 8 θα σας δείξουμε πως τα παιχνίδια σας μπορούν να αποκτήσουν τις γνωστές μεταβλητές ζωές, σκορ, χρόνο, ενέργεια. Στο κεφάλαιο 9 θα συζητήσουμε κάποιες πιο σύνθετες προγραμματιστικές τεχνικές του MSKodu ώστε τα παιχνίδια μας να γίνουν πιο αληθοφανή! Στο κεφάλαιο 10 θα σας παρουσιάσουμε βασικές αρχές της μηχανικής παιχνιδιών, δηλαδή των σχεδιαστικών επιλογών που πρέπει να λαμβάνουμε υπόψη για να προκαλούμε τους συμμαθητές μας με τα παιχνίδια μας. Τέλος, στο κεφάλαιο 11 θα εφαρμόσουμε όλες τις γνώσεις των προηγουμένων κεφαλαίων για να δημιουργήσουμε μαζί 5 ολοκληρωμένα παιχνίδια. Θυμηθείτε ότι ο μόνος περιορισμός στον προγραμματισμό είναι η φαντασία σας!



Περίληψη


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

Καλή μελέτη!!!



Ερωτήσεις


1.Περιγράψτε τι είναι πρόγραμμα και ποια είναι τα βασικά του χαρακτηριστικά.
2.Ποιες είναι οι διαφορές μεταξύ του αλγορίθμου και του προγράμματος;
3.Ποια πιστεύετε ότι είναι τα οφέλη που μπορεί να σας προσφέρει ο προγραμματισμός στην καθημερινή σας ζωή;
4. Περιγράψτε καθημερινές σας δραστηριότητες στις οποίες χρησιμοποιείται προγραμματιστικές εφαρμογές.
5. Ποιος πιστεύετε ότι είναι ο λόγος που δημιουργήθηκαν οι γλώσσες προγραμματισμού; Τι κοινό έχουν μεταξύ τους; Αρκεί μία γλώσσα προγραμματισμού;

Δραστηριότητες


1. Περιγράψτε τον αλγόριθμο 7 βημάτων, που θα δίνατε στην μητέρα σας για να φτιάξει το αγαπημένο σας κέικ!
  • Στις οδηγίες που θα δώσετε, χρησιμοποιείστε τα παρακάτω: αλεύρι, μείγμα, αυγά, ζάχαρη, ρίξε, ανακάτεψε, βγάλε, σοκολάτα, φόρμα ψησίματος, βάλε, φούρνος, άφησε να ψηθεί 1 ώρα.
  • Στην συνέχεια συγκρίνετε τον αλγόριθμό σας με τους αλγορίθμους που κατασκεύασαν οι υπόλοιποι συμμαθητές σας. Τι παρατηρείτε και σε ποιο συμπέρασμα καταλήγετε;

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

k01_drastiriotita.png