Ο προγραμματισμός με Snap!

Καλωσήρθατε στον ιστότοπό μου

The wonderful thing about computer programming is that it is fun, perhaps not for everyone, but for very many people. There aren't many mathematical activities that appeal so spontaneously. Kids get caught up in the excitement of programming, in the same way that other kids (or maybe the same ones) get caught up in acting, in sports, in journalism (provided the paper isn't run by teachers), or in ham radio

Brian Harvey, δημιουργός του Snap

Σύντομη περιγραφή του SnapHE.gr

Το SnapHE.gr (πρώην Snap! Hide Everything) είναι μια ανεπίσημη τροποποίηση του Snap. Βασικό του χαρακτηριστικό είναι η δυνατότητα να κρύβει/κλειδώνει τα πάντα, δίνοντας έτσι τη δυνατότητα στον καθηγητή να δημιουργεί δραστηριότητες προσαρμόζοντας το περιβάλλον σύμφωνα με τις ανάγκες του.

Κίνητρο και έμπνευση για τη δημιουργία του ήταν οι δραστηριότητες της "Ώρας του κώδικα", που γνωρίζουν μεγάλη ανταπόκριση από τους μαθητές και είναι ιδιαίτερα αποτελεσματικές στην εισαγωγή στις βασικές έννοιες του προγραμματισμού. Έγινε λοιπόν προσπάθεια να προσαρμοστεί το περιβάλλον του Snap, ώστε να είναι δυνατή η εκπόνηση τέτοιων δραστηριοτήτων. Οι δυνατότητές όμως δεν περιορίζονται μόνο σε αυτό.

Η τροποποίηση δεν αλλοιώνει σε κανένα σημείο τη λειτουργία του Snap. Ο καθηγητής μπορεί να επιλέξει να μην κρύψει τίποτα χρησιμοποιώντας το Snap όπως ακριβώς στην επίσημη έκδοσή του.

Χαρακτηριστικά
  • Κρύψιμο μορφών/σκηνικού.Οι μορφές(sprites) εμφανίζονται στη σκηνή αλλά τα εικονίδια τους(όπως και αυτό του σκηνικού) κρύβονται. Τα σενάριά τους εκτελούνται κανονικά, αλλά ο μαθητής δεν έχει πρόσβαση σε αυτά.
  • Κλείδωμα μορφών. Τα εικονίδια των μορφών και τα σενάριά τους είναι ορατά αλλά ο μαθητής δεν μπορεί να αλλάξει το όνομα, διαγράψει, διπλασιάσει τη μορφή κλπ. Μπορεί όμως να αλλάξει τα σενάριά της.
  • Κλείδωμα της δυνατότητας προσθήκης νέων μορφών.
  • Κρύψιμο σεναρίων. Η λειτουργικότητά τους παραμένει(αν πχ συνδεθούν με κάποιο γεγονός)
  • Κλείδωμα σεναρίων/κώδικα διαδικασιών . Ο μαθητής μπορεί να προσθέσει εντολές στα σενάρια αυτά, αλλά δεν μπορεί να τα μετακινήσει ή να διαγράψει τις κλειδωμένες εντολές τους. Η δυνατότητα αυτή είναι χρήσιμη όταν θέλουμε να δώσουμε στους μαθητές το σκελετό ενός αλγόριθμου τον οποίο αυτοί πρέπει να συμπληρώσουν.
  • Κρύψιμο βασικών εντολών, διαδικασιών και μεταβλητών(τόσο καθολικών όσο και τοπικών). Σημ.Οι βασικές εντολές μπορούν να κρυφτούν και στην επίσημη έκδοση του Snap.
  • Κλείδωμα διαδικασιών. Οι μαθητές δεν μπορούν να δουν το κώδικά τους. Ουσιαστικά οι εντολές αυτές χρησιμοποιούνται όπως οι βασικές. Συνδυαζόμενο το με τις καταπληκτικές δυνατότητες που προσφέρει το Snap στη δημιουργία εντολών αλλά και με την παραπάνω δυνατότητα, επιτρέπει στον καθηγητή να σχεδιάσει το ρεπερτόριο των εντολών από το μηδέν.
  • Ειδικά μπλοκ. Πρόκειται για διαδικασίες οι οποίες εμφανίζονται στην παλέτα του μαθητή ως κουμπιά και όχι ως εντολές.
  • Απόκρυψη βασικών κατηγοριών.
  • Δημιουργία νέων κατηγοριών από τον καθηγητή και το μαθητή.
  • Αποθετήριο εντολών(Διαθέσιμες εντολές/depository). Είναι μια πρόσθετη κατηγορία εντολών στην οποία, εφόσον το επιθυμεί, ο καθηγητής μπορεί να συγκεντρώσει όλες τις εντολές(βασικές/custom) και μεταβλητές που θέλει να είναι διαθέσιμες στον μαθητή στα πλαίσια μιας δραστηριότητας. Εφόσον επιλέξει να το χρησιμοποιήσει, τότε οι "Διαθέσιμες εντολές" είναι η μόνη κατηγορία που είναι ορατή στο μαθητή(πολύ χρήσιμο για δραστηριότητες τύπου "Ώρα του κώδικα").
  • Υποστήριξη συμβάντος "onload".
  • Απόκρυψη κοστουμιών/ήχων
  • Δυνατότητα απενεργοποίησης της εκτέλεσης των μπλοκ με το πάτημα του ποντικιού.
  • Συμβουλές κώδικα. Ο καθηγητής μπορεί να δημιουργήσει συμβουλευτικούς αλγόριθμους(πχ την απάντηση ή μέρος αυτής) ή μπλοκ, η δημιουργία των οποίων προβάλλεται τμηματικά.
  • Συνεργασία με το Joomla, ώστε να είναι δυνατή η υποστήριξη των δραστηριοτήτων με φύλλα εργασίας καθώς και η υλοποίηση του cloud για την αποθήκευση των έργων.
  • Συμβατότητα με τον επίσημο Snap, στο βαθμό που χρησιμοποιούνται μπλοκ που υπάρχουν και στις δύο εκδόσεις(εννοείται ότι δεν κρύβεται τίποτα).

Το περιβάλλον περιλαμβάνει δύο καταστάσεις λειτουργίας(modes): την κατάσταση ανάπτυξης(development mode) και την κατάσταση μαθητή(student mode).

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

Οι δύο καταστάσεις αντιστοιχούν σε δύο διαφορετικές εκδόσεις του SnapHE.gr(snap-dev.html και snap.html αντίστοιχα). Από κάθε μια όμως υπάρχει η δυνατότητα μετάβασης στην άλλη.(Shift-click στο λογότυπο) Αυτό δίνει την ευχέρεια στον καθηγητή να επιτρέψει στους μαθητές να δουν τα κρυμμένα κομμάτια της δραστηριότητας.

Τέλος, προστέθηκε η δυνατότητα στην κατάσταση μαθητή, να κρύβονται κατηγορίες. Η δυνατότητα αυτή δεν αποθηκεύεται. Η επιλογή γίνεται από το μενού "Ρυθμίσεις".

Αναλυτικές οδηγίες για τα παραπάνω θα βρείτε εδώ, όπως και στην επιλογή "Modification reference manual" του μενού του λογότυπου του Snap(μόνο στην κατάσταση ανάπτυξης). Ο πηγαίος κώδικας της τροποποιημένης έκδοσης μπορεί να κατέβει από το ίδιο μενού.

Προτάσεις αξιοποίησης
  • Δραστηριότητες τύπου "Ώρα του κώδικά"
  • Ημιτελείς εφαρμογές τις οποίες οι μαθητές καλούνται να ολοκληρώσουν, είτε προγραμματίζοντας μια ή περισσότερες μορφές είτε συμπληρώνοντας τα σενάριά της ή κάποιο σκελετό αλγορίθμου.
  • Υλοποίηση σε περιβάλλον Snap, δραστηριοτήτων που προέρχονται από άλλα περιβάλλοντα όπως το Robomind ή το Karel.
  • Ολοκληρωμένη δημιουργία μικρόκοσμων που τρέχουν στο περιβάλλον του Snap. Ο καθηγητής θα πρέπει να σχεδιάσει το ρεπερτόριο των εντολών από την αρχή(δημιουργώντας custom εντολές) καθώς επίσης και τους ήρωες/μορφές του μικρόκοσμου.
Υποστήριξη (τοπικού) δικτύου

Η δυνατότητα αυτή επιτρέπει τη δημιουργία δικτυακών εφαρμογών, όπως στο BYOB 3.1. Για να την αξιοποιήσετε, θα χρειαστεί να κατεβάσετε τον αντίστοιχο server. Αναλυτικότερες οδηγίες θα βρείτε στο αντίστοιχο άρθρο. Στα παραδείγματα, στο φάκελο "network-demo" θα βρείτε δύο έργα επίδειξης.

Επίλογος

Στο Snap γίνεται εκτεταμένη αναφορά στην έννοια της αφαίρεσης. Το SnapHE.gr αξιοποιεί αυτή την ιδέα δημιουργώντας διάφορα επίπεδα αφαίρεσης, τα οποία αξιοποιούνται στη διδασκαλία. 

Η τελευταία έκδοση του SnapHE.gr στηρίζεται στην επίσημη 4.2.1.3. Από τη στιγμή της δημιουργίας του χρειάστηκε να αναβαθμιστεί πολλές φορές στις νέες εκδόσεις του Snap που κυκλοφορούν συνεχώς, έργο ιδιαίτερα κοπιώδες. Τη στιγμή που γράφεται αυτό το κείμενο, έχει κυκλοφορήσει η επίσημη έκδοση 5. Μια νέα αναβάθμιση είναι πιθανή στο μέλλον.

ΝέαΑνακοινώσεις
Βοήθεια στα Ελληνικά
  • Τελευταία Ενημέρωση: Σεπτέμβριος 2019

Το SnapHE.gr διαθέτει όλες τις οθόνες βοήθειας των εντολών στα Ελληνικά.

Σε αυτές συμπεριλαμβάνονται τα νέα μπλοκ της έκδοσης 5.1, της υποστήριξης δικτύου και της βιβλιοθήκης "OpenLayers maps".

Περισσότερα...
Αναβάθμιση στην επίσημη έκδοση 5.1
  • Τελευταία Ενημέρωση: Σεπτέμβριος 2019

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

Περισσότερα...
Το SnapHE.gr στο Φωτόδεντρο

Έχουν δημοσιευτεί στο "Φωτόδεντρο" τα εργαλεία με τα οποία δημιουργήθηκε ο παρών ιστότοπος.

Περισσότερα...
Βέλτιστη Πρακτική

Το εκπαιδευτικό υλικό του ιστότοπου βραβεύτηκε σε διαγωνισμό του Φωτόδεντρου.

Διαβάστε περισσότερα ...
Snap

Το Snap είναι μια γλώσσα πλακιδίων. Αποτελεί εξέλιξη του Scratch.

Διαβάστε περισσότερα ...
The Beatuty and Joy of Computing

Το BJC είναι εκπαιδευτικό πρόγραμμα του UC Berkeley.

Διαβάστε περισσότερα ...
The Hour of Code

Η "Ώρα του Κώδικα" είναι μια διεθνής καμπάνια του code.org, που αφορά μαθητές.

Διαβάστε περισσότερα ...