Η Logo στην εκπαίδευση: Μια κοινότητα πρακτικής και μάθησης

Μαθαίνω - Κατασκευάζω - Συνεργάζομαι - Επικοινωνώ

Πριν λίγες μέρες αναρτήθηκε στον ιστότοπο scratched.media.mit.edu το θέμα  Ποιες είναι οι χειρότερες προγραμματιστικές πρακτικές;

Ανάμεσα στις κακές πρακτικές είχαν αναφερθεί η έλλειψη αρχικοποίησης, η χρήση μια σειράς από «εάν» αντί για εμφωλευμένα «εάν» και η μη χρήση της εντολής «σταμάτησε το σενάριο» όταν σταματάει ένα σενάριο.

O Jens Mönig προγραμματιστής σε πολλές γλώσσες προγραμματισμού, βασικός δημιουργός του BYOB και Scratcher αντί να δώσει και αυτός κάποιες κακές συνήθειες δεδομένου ότι γνωρίζει προγραμματισμό καλύτερα από πολλούς έδωσε μια απάντηση που έχει ενδιαφέρον και εκφράζει τη βασική φιλοσοφία του για τη Scratch.

Την αναδημοσιεύω εδώ σα θέμα προς συζήτηση:

 

Φοβόμουν ότι ένα τέτοιο θέμα θα προέκυπτε αργά ή γρήγορα, και ότι θα προσπαθούσαμε να μεταφέρουμε σα δόγματα στα παιδιά αυτά που εμείς οι ενήλικες θεωρούμε «καλές πρακτικές», ένας όρος που από μόνος του περιέχει μια μη-υγιή δόση ιδεολογίας.

 

Όποτε βλέπω ένα έργο στον ιστότοπο της  Scratch που πραγματικά με εντυπωσιάζει, όταν βλέπω τον κώδικα συνήθως απογοητεύομαι λίγο, γιατί είναι συνήθως γεμάτος από γιγαντιαία σενάρια, καθολικές μεταβλητές, δομές επανάληψης «για πάντα» και συνθήκες ανταγωνισμού. Αλλά – αυτό είναι που θέλω να πω – το έργο με είχε εντυπωσιάσει τόσο που ήθελα να δω τον κώδικα του. Το καλό σημείο της Scratch είναι ακριβώς το ότι τα παιδιά μπορούν να προγραμματίσουν περιεχόμενο αμέσως, χωρίς να έχουν πρώτα διδαχθεί τι να αποφεύγουν και τι να ακολουθούν. Σίγουρα, περισσότερο συχνά ο κώδικας είναι άσχημος, αλλά αυτό δεν τα εμποδίζει από το να δημιουργούν και να μοιράζονται.

 

Έτσι, δεν «πρέπει» να αρχικοποιείς μεταβλητές στη Scratch. Τίποτε δε χαλάει αν δεν το κάνεις, αρχικά είναι μηδέν. Δεν «πρέπει» να χρησιμοποιείς την πράσινη σημαία, στην πραγματικότητα, ούτε εγώ το κάνω. Μπορείς να χρησιμοποιήσεις – ας πούμε – ένα κλικ στο ποντίκι ή τα πλήκτρα του πληκτρολογίου για να πυροδοτήσεις πράγματα (και να αρχικοποιήσεις ή επαναθέσεις μεταβλητές). Δεν υπάρχει πρόβλημα αν αφήσεις μπλοκ που δεν εκτελούνται ή μισοτελειωμένα σενάρια να «επιπλέουν» μέσα στο χώρο των σεναρίων, επειδή μπορείς να τα χρησιμοποιήσεις για αποσφαλμάτωση (με διπλό κλικ) ή σαν απόθεμα για χαρακτηριστικά που μπορείς να χρησιμοποιήσεις αργότερα. Δεν υπάρχει κανένα πρόβλημα με το να χρησιμοποιήσεις μια μεγάλη εμφωλευμένη συνθήκη αν μπορείς να παρακολουθήσεις τη λογική της, από το να χρησιμοποιήσεις –τον ίδιο αριθμό(!) – από εμφωλευμένες εντολές «εάν».

 

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

 

Ποιο είναι το κακό με τα να χρησιμοποιείς απλώς την εντολή «εάν»; Συχνά δε χρειάζεσαι το «αλλιώς». Έτσι τα παιδιά γράφουν μια σειρά από «εάν» αντί για βαθιά εμφωλευμένα εάν/αλλιώς. Μπορώ να σκεφτώ τα ζητήματα απόδοσης αλλά από την άλλη πλευρά είναι καλύτερο να δω μια σειρά από απλές εντολές επιλογής από ένα μπερδεμένο χάος εμφωλευμένων «εάν/αλλιώς».

 

Έτσι, οι μεταβλητές στη Scratch δε χρειάζεται να δηλωθούν (στην πράξη δηλώνονται όταν δημιουργούνται), αλλά δεν είναι περιορισμένες σε συγκεκριμένο τύπο, κάποιος μπορεί να αποθηκεύσει έναν αριθμό ή ένα αλφαρηθμιτικό (ή στο BYOB, γεγονότα, λίστες, μορφές και μπλοκ). Είναι στ’ αλήθεια κακή πρακτική στον ενήλικο κόσμο να αλλάζεις την τιμή μιας μεταβλητής με μία διαφορετικού τύπου; Οι περισσότερες σύγχρονες προγραμματιστικές γλώσσες το επιτρέπουν, η Scratch γράφτηκε έτσι σε μεγάλο βαθμό και είναι φοβερή (επιπλέον, είναι σίγουρο ότι δουλεύει!)  :-)

Τα περισσότερα από τα άσχημα που προκύπτουν στα έργα με τη Scratch έχουν τη ρίζα τους στην έλλειψη της δυνατότητας για διαδικασίες ορισμένες από το χρήστη. Αυτή  η έλλειψη οδηγεί τα παιδιά στην μεταφορά του σύρε και άφησε και στη δημιουργία κώδικα  που δύσκολα μπορούν να τον επεξεργαστούν μετά. Αλλά ξέρω ότι η ομάδα της Scratch θα αντιμετωπίσει αυτό το ζήτημα τώρα που ξαναγράφουν τη Scratch για την έκδοση 2.0. Μέχρι τότε, ας μη λέμε στα παιδιά τι είναι «σωστό» και τι «λάθος» και ας αξιολογήσουμε τις υπόλοιπες γλώσσες προγραμματισμού ως προς το γιατί τόσες πολλές από αυτές δεν αντιμετωπίζουν  τις «σαν-παιδί» πρακτικές που η Scratch αντιμετωπίζει εύκολα. Ας πιέσουμε τις υπόλοιπες γλώσσας να γίνουν περισσότερο σαν τη Scratch ;-).

Jens

Προβολές: 517

Σήμα

Γίνεται φόρτωση...

Είστε νέο μέλος στο δίκτυο;

Σας προτείνουμε να προχωρήσετε στα παρακάτω:

1. Συμπλήρωση του προφίλ σας. Παρακαλούμε κάθε μέλος να προσθέσει φωτογραφία στο προφίλ του/της ή στο "Η σελίδα μου", αλλά και να συμπληρώσει όσο το δυνατόν περισσότερα στοιχεία σε αυτά, για να γνωριστούμε καλύτερα.

2. Προσθήκη φωτογραφιών.

3. Προσθήκη βίντεο.

4. Συμμετοχή σε μια ή περισσότερες ομάδα/ες του ενδιαφέροντός σας.

5. Συμμετοχή σε μια ή περισσότερες συζήτηση/εις του ενδιαφέροντός σας.

6. Συμμετοχή στη συζήτηση Γνωριμία μελών δικτύου για να γνωριστούμε καλύτερα.

7. Προσθήκη συζήτησης/σεων του ενδιαφέροντός σας (αν δεν υπάρχει/ουν ήδη).
Παρακαλούμε, η εκκίνηση νέων εξειδικευμένων συζητήσεων, να μην γίνεται στο φόρουμ των γενικών συζητήσεων, αλλά στο φόρουμ της αντίστοιχης ομάδας. Πχ για ένα θέμα σχετικό με Η Logo στο Δημοτικό, η συζήτηση θα πρέπει να εκκινηθεί στο φόρουμ της ομάδας αυτής. Αν δεν υπάρχει αντίστοιχη ομάδα και νομίζετε ότι πρέπει να δημιουργηθεί, προχωρήστε στη δημιουργία της!

8. Προσθήκη καταχώρισης/εων ιστολογίου.

9. Προσθήκη ομάδας/ων του ενδιαφέροντός σας (αν δεν υπάρχει/ουν ήδη).
Για επισημάνσεις, απορίες, ερωτήσεις, πληροφορίες επικοινωνήστε με την Κατερίνα Γλέζου.

© 2024   Created by Κατερίνα Γλέζου.   Με την υποστήριξη του

Διακριτικά  |  Αναφορά προβλήματος  |  Όροι χρήσης