Όπως αναφέρεται στο άρθρο που δημοσιεύθηκε στο Ιστολόγιο Ανοιχτού Λογισμικού της Google από τον Elango Cheran, Μηχανικό Πληροφορικής:
«Σήμερα θα παρουσιάσουμε δύο προγράμματα-εφαρμογές που δίνουν την δυνατότητα στα παιδιά να προγραμματίζουν χρησιμοποιώντας την τοπική γλώσσα τους. Οι εφαρμογές αυτές είναι οι: clojure-turtle και clj-thamil και είναι γραμμένες σε Clojure, μία διάλεκτο της γλώσσας προγραμματισμού Lisp η οποία «τρέχει» στο περιβάλλον της εικονικής μηχανής της Java (JVM). Αυτό που καθιστά την Clojure μοναδική είναι η απλή της σχεδίαση, χαρακτηριστικό που μπορεί να κάνει ευκολότερη την εκμάθηση του προγραμματισμού για τα παιδιά.»
Clojure-turtle: μια γέφυρα ανάμεσα στους αρχάριους της Logo και τους προχωρημένους χρήστες της Lisp.
Όπως αναφέρει το συγκεκριμένο άρθρο: για ορισμένους αρχάριους, η καμπύλη εκμάθησης της Clojure είναι απότομη όσον αφορά τις συναρτήσεις και τον συναρτησιακό προγραμματισμό. Ως εκ τούτου, πολλοί μαθητές που ασχολούνται με την εκμάθηση προγραμματισμού προτιμούν να ασχοληθούν αρχικά με την εκμάθηση της Logo. Μάλιστα η Logo αποτελεί μια διάλεκτο της γλώσσας Lisp η οποία χρησιμοποιείται στο Scratch αλλά και σε άλλες εφαρμογές σχεδιασμένες για την εκμάθηση προγραμματισμού όπως για παράδειγμα η ιστοσελίδα code.org. Σχεδιάσαμε την clojure-turtle έχοντας αυτό ακριβώς κατά νου.
Το πρότζεκτ clojure-turtle δημιουργήθηκε με σκοπό να γεφυρώσει το χάσμα ανάμεσα σε όσους χρησιμοποιούν την γλώσσα Lisp: αφενός από την σκοπιά των μαθητευόμενων και αφετέρου από την σκοπιά των «ειδικών». Είναι κατάλληλη για όσους μαθαίνουν προγραμματισμό για πρώτη φορά και ταυτόχρονα το ίδιο κατάλληλη και για όσους ασχολούνται με τις προγραμματιστικές απαιτήσεις του «πραγματικού κόσμου», όπως για παράδειγμα όσοι ασχολούνται με την συγγραφή μακροεντολών. Το συγκεκριμένο πρότζεκτ υλοποιεί την Logo σε περιβάλλον Clojure, παραμένοντας πιστό στις βασικές αρχές/ εντολές της Logo – «πήγαινε μπροστά κατά 10», «στρίψε δεξιά κατά 90 μοίρες», κλπ. Παράλληλα, δίνεται η δυνατότητα στον εκάστοτε προγραμματιστή να πειραματιστεί και να λειτουργήσει συνδυαστικά, καθώς δεν υπάρχουν σαφή όρια και διακρίσεις μεταξύ της γλώσσας Lisp και της Clojure όπως επίσης και μεταξύ των εννοιών αρχάριου και προχωρημένου χρήστη κλπ:
Μία εφαρμογή στην οποία η προσέγγιση της clojure-turtle για την υλοποίηση της Logo έχει ήδη αποδειχθεί επιτυχημένη, είναι το ClojureBridge, ένα εργαστήριο προγραμματισμού για αρχάριους. Το εργαστήριο αυτό έχει ως στόχο την αύξηση του αριθμού συμμετοχής των ατόμων που προέρχονται από μειονοτικές ομάδες της κοινότητας Clojure, και οι οποίες είναι συνήθως εκπροσωπούμενες σε μικρό βαθμό. Το τμήμα εκμάθησης προγραμματισμού με χρήση συναρτήσεων είχε αποδειχθεί μέχρι πρότινος ιδιαίτερα απαιτητικό, αλλά τώρα πλέον που οι μαθητές εκπαιδεύονται μέσω της βασισμένης στην Logo προσέγγισης, μπορούν να ανταπεξέρχονται με ευκολία και να συνεχίζουν με την εκμάθηση πιο προχωρημένων προγραμματιστικών ζητημάτων.
Clj-thamil: προγραμματίζοντας στην τοπική μας γλώσσα.
Όπως αναφέρει ο ίδιος ο συγγραφέας του άρθρου:
«Αρχικά, όταν ξεκίνησα να δημιουργώ την βιβλιοθήκη επεξεργασίας για την γλώσσα thamil, διαπίστωσα πολύ σύντομα ότι είχα την δυνατότητα να προγραμματίσω απευθείας στην γλώσσα thamil. Οι συναρτήσεις είναι δεδομένα τα οποία μπορούν να συνδεθούν και να αποδοθούν ως τιμές σε νέα ονόματα. Οι μακροεντολές ήταν αυτές που μου έδωσαν την δυνατότητα να μεταφράσω τις υπόλοιπες έννοιες της clojure από τα Αγγλικά στην γλώσσα Thamil, με την μορφή της βιβλιοθήκης, χωρίς να χρειάζονται τροποποιήσεις σε επίπεδο μεταγλωττιστή, και μάλιστα με τέτοιο τρόπο ο οποίος θα μπορούσε να εφαρμοστεί συνολικά και για οποιαδήποτε άλλη γλώσσα, πέραν της Αγγλικής. Τώρα πια η συνάρτηση για την μετατροπή μιας λέξης στον πληθυντικό αριθμό στην thamil μπορεί να πραγματοποιηθεί μέσα από την ίδια την γλώσσα thamil. Στην ομιλία μου σχετικά με την clj-thamil στην διάσκεψη Clojure/West 2015, αναφέρθηκα στην μελλοντική επίδραση που μπορεί να έχει αυτή στην εδραίωση της πολιτισμικής ποικιλίας μεταξύ των προγραμματιστών. Αυτό είναι ένα σημαντικό γεγονός από μόνο του, αν αναλογιστούμε τον αριθμό των ατόμων παγκοσμίως που δεν έχουν πρόσβαση σε ένα (καλό) σύστημα εκμάθησης της Αγγλικής γλώσσας, η οποία αποτελεί και έναν έμμεσο προαπαιτούμενο παράγοντα για την εκμάθηση του προγραμματισμού.»
Συνοψίζοντας: η εκμάθηση της Logo στην τοπική μας γλώσσα.
Η προσέγγιση της γλώσσας clj-thamil είναι ευέλικτη και αρκετά ισχυρή ώστε να είναι δυνατή η «μετάφραση» οποιουδήποτε τμήματος κώδικα, και όχι αποκλειστικά και μόνο κώδικα προερχόμενο από τον πυρήνα της Clojure. Με αυτό το σκεπτικό επομένως, γιατί να μην μεταφράσουμε την λειτουργία της clojure-turtle σε λιγότερο από 30 γραμμές κώδικα;» (Δείτε το video)
Ο συγγραφέας του άρθρου, Elango Cheran, συμπληρώνει: «Οι απλές έννοιες της Logo αμβλύνουν την καμπύλη εκμάθησης του προγραμματισμού και τον κάνουν διασκεδαστικό για όλες τις ηλικίες! Η απλότητα της Clojure την κάνει ισχυρή ώστε να είναι δυνατή η διαμόρφωση ενός προγράμματος σύμφωνα με την θέλησή μας – οι μαθητές μπορούν να συντάξουν ολόκληρο των κώδικά τους στην τοπική τους γλώσσα, που δεν σχετίζεται με την Αγγλική. Ο συνδυασμός των απλών εννοιών δίνει την δυνατότητα εκμάθησης του προγραμματισμού ανά τον κόσμο, σε παιδιά που δεν γνωρίζουν Αγλλικά. Ελπίζω οτι η clojure-turtle και η clj-thamil μπορούν να χρησιμοποιηθούν για την βελτίωση της μόρφωσης και της εδραίωση της πολιτισμικής ποικιλίας για τους μαθητές του προγραμματισμού.»
Επισκεφθείτε τις σελίδες της clojure-turtle και της clj-thamil στην πλατφόρμα του Github για να μάθετε περισσότερα, να εγγραφείτε στις λίστες του ηλεκτρονικού ταχυδρομείου και να συμβάλλετε, προσθέτοντας βελτιώσεις που αφορούν τα διάφορα χαρακτηριστικά των προγραμμάτων αυτών.
Πηγή αρχικού άρθρου: http://google-opensource.blogspot.gr
Κατά την προσωπική μου γνώμη είναι λάθος η τεράστια εμμονή στην χρήση των λεγόμενων turtle graphics για τη διδασκαλία προγραμματισμού. Να σημειώσω πως η LOGO σχεδιάστηκε για τη διδασκαλία των μαθηματικών και όχι για τη διδασκαλία προγραμματισμού. Για μάθει ένα παιδί να φτιάχνει ένα τετράγωνο με την LOGO, πρέπει να ξέρει τα βασικά χαρακτηριστικά του (4 πλευρές ίσες μεταξύ τους και 4 ορθές γωνίες). Αν δεν ξέρει αυτό το πράγμα, δεν μπορεί να κάνει τίποτα. Ο προγραμματισμός όμως δεν μπορεί να απευθύνεται μόνο σε αυτόν που ξέρει γεωμετρία! Κατά την προσωπική μου άποψη είναι πολύ πιο χρήσιμο ένα παιδί να διδαχθεί τις βασικές αρχές προγραμματισμού (μεταβλητές, εντολές επανάληψης κ.λπ.) και μετά να μάθει προγραμματισμό GUI. Οι σκέψεις αυτές έχουν περιγραφεί αναλυτικά εδώ: http://arxiv.org/abs/1404.5870