Στήλη: Προγραμματισμός

Scratch

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

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

Ο ιστότοπος δείχνει ταχεία ανάπτυξη της κοινότητας του Scratch: από το Μάρτιο 2007 ως τον Ιούνιο 2008, άνω των 119,000 λογαριασμών έχουν καταχωρηθεί, με άνω των 148,000 έργων να έχουν φορτωθεί. Η ταχέως αυξανόμενη διεθνής κοινότητα έχει μεταφράσει το Scratch σε διάφορες γλώσσες, με περισσότερες υπό εξέλιξη.

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

Scratch Αρχές εύρους και χρήσης της γλώσσας

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

Εμπειρικές μελέτες έχουν γίνει για διάφορες λειτουργίες — αυτές που παρεμπόδιζαν την φυσική εκμάθηση απορρίφθηκαν, ενώ αυτές που ενθάρρυναν τους αρχάριους και έκαναν εύκολη τη διερεύνηση και την εκμάθηση, διατηρήθηκαν. Ορισμένα από τα αποτελέσματα προκαλούν έκπληξη, κάνοντας το Scratch αρκετά διαφορετικό από άλλες διδασκόμενες γλώσσες (όπως η BASIC, η Logo, ή η Alice).

Για παράδειγμα, ο πολυνηματικός κώδικας μέσω περάσματος μηνυμάτων είναι θεμελιώδης για το Scratch, αλλά δεν έχει διαδικασίες ή Είσοδο/Έξοδο αρχείων (I/O) και υποστηρίζει μόνο μονοδιάστατους πίνακες, γνωστούς ως Λίστες. Οι αριθμοί κινητής υποδιαστολής και τα αλφαριθμητικά υποστηρίζονται από την έκδοση 1.3, αλλά με περιορισμένη ικανότητα διαχείρισης αλφαριθμητικών.

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

Η γλώσσα μοιάζει περισσότερο με γλώσσες κινούμενης εικόνας όπως η ActionScript παρά με τις παραδοσιακές γλώσσες προγραμματισμού.

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

Το περιβάλλον χρήστη του περιβάλλοντος ανάπτυξης του Scratch χωρίζει την οθόνη σε πολλαπλές περιοχές: στα αριστερά είναι η παλέτα με τα τμήματα κώδικα, στο κέντρο είναι οι πληροφορίες για την τρέχουσα φιγούρα και η περιοχή των σεναρίων (κώδικα), και στα δεξιά είναι η σκηνή και η λίστα με τις φιγούρες. Η παλέτα των τμημάτων κώδικα έχει τμήματα κώδικα (καλούνται «blocks») που μπορούν να συρθούν πάνω στην περιοχή των σεναρίων για τη δημιουργία προγραμμάτων. Για να διατηρηθεί η παλέτα σε όχι πολύ μεγάλο μέγεθος, οργανώνεται σε 8 ομάδες τμημάτων κώδικα: κίνηση, όψεις, ήχος, πένα, έλεγχος, αισθητήρες, αριθμοί, και μεταβλητές.

Top