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

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

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ NETLOGO: ΕΝΑ ΕΡΓΑΛΕΙΟ ΔΙΔΑΣΚΑΛΙΑΣ ΚΑΙ ΜΑΘΗΣΗΣ ΣΤΙΣ ΦΥΣΙΚΕΣ ΚΑΙ ΤΙΣ ΠΕΡΙΒΑΛΛΟΝΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ

Αριστοτέλης Γκιόλμας

Άνθιμος Χαλκίδης

Αρτεμησία Στούμπα

Κωνσταντίνος Σκορδούλης

Εισαγωγή

Η NetLogo (Wilensky, 1999) είναι ένα πολυ-πρακτορικό (Multi-Agent-Based, MAB) υπολογιστικό περιβάλλον, που χρησιμοποιείται για μοντελοποίηση, προσομοίωση και προγραμματισμό, τόσο στην εκπαίδευση όσο και σε άλλους επιστημονικούς τομείς. Η NetLogo ανακαλύφθηκε και εξελίχθηκε από τον καθηγητή Uri Wilensky και τους συνεργάτες στου στο Center of Connected Learning (CCL) αρχικά (1997) στοTufts University και μεταφέρθηκε το 2000 στο Northwestern University, στις ΗΠΑ.

Εικόνα 1: Η γενεαλογία της NetLogo

H NetLogo στηρίζεται στους λεγόμενους «πράκτορες» (“agents”), που εκτελούν -ο καθένας- συγκεκριμένες ενέργειες μέσα στο μικρόκοσμο της NetLogo, και είναι ταυτόσημοι με αυτό που στην γλώσσα Logo λεγόταν «χελώνες». O κάθε πράκτορας (χελώνα) έχει το παραδοσιακό τριγωνικό σχήμα και κινείται μέσα στα τετραγωνάκια του μικρόκοσμου, που στη NetLogo λέγονται “patches”. Μία ριζική διαφορά της NetLogo από προηγούμενα παρόμοια περιβάλλοντα, είναι ότι τα τετραγωνάκια (“patches”) μπορούν και αυτά να προγραμματιστούν από το χρήστη ώστε να κάνουν ενέργειες, είναι δηλαδή «ενεργά».

Λόγω του μεγάλου πλήθους των πρακτόρων (χελωνών) που μπορεί να έχει ένα μοντέλο και της ικανότητας να προγραμματίζουμε τη δράση του κάθε πράκτορα, η NetLogo είναι ιδανική για να προσομοιώνει, να μοντελοποιεί, να διδάσκει και να ερευνά Φυσικά συστήματα που λέγονται «Πολύπλοκα Συστήματα» (Complex Systems). Τέτοια συστήματα είναι επίσης: περιβαλλοντικά, οικονομικά, κοινωνικά κ.α.

Ως προς τον προγραμματισμό της, η NetLogo είναι μία γλώσσα φτιαγμένη στη λογική: “low threshold, no ceiling”. Αυτό σημαίνει ότι είναι φτιαγμένη για να είναι εύκολη στην εκμάθηση για τον αρχάριο χρήστη, ακόμη και για το μαθητή (εξ΄ ου και η ευρεία χρήση της στην εκπαίδευση), ενώ ταυτόχρονα μπορεί να προγραμματιστούν πολύ σύνθετα μοντέλα, ακόμη και για ερευνητικούς σκοπούς.

Τα πρώτα βήματα στη NetLogo.

Καταρχήν κατεβάζουμε τη γλώσσα από την αντίστοιχη διεύθυνση http://ccl.northwestern.edu/netlogo/download.shtml. Αυτή τη στιγμή, η έκδοση που κατεβαίνει είναι η 6.0.1. Το περιβάλλον διατίθεται δωρεάν, είναι άλλωστε και ακαδημαϊκό, και η παροχή στοιχείων που ζητείται από την ιστοσελίδα λήψης είναι προαιρετική.

Για να «τρέξει» η NetLogo είναι απαραίτητη η πλατφόρμα της Java. Από τον εγκαταστάτη (installer) εγκαθίστανται επίσης και η τρισδιάστατη εκδοχή της NetLogo (3D) και το περιβάλλον HubNet που θα μας απασχολήσει αργότερα.

Όταν έχει εγκατασταθεί η NetLogo, πατάμε στο εικονίδιό της (το χαρακτηριστικό κόκκινο τριγωνάκι του πράκτορα!) και ανοίγει το περιβάλλον. Όπως παρατηρεί κανείς, υπάρχουν τρείς «καρτέλες» (tabs) που μπορεί κανείς να επιλέξει:

(i)                 η καρτέλα “Interface που αρχικά βλέπουμε, και λέγεται Επιφάνεια Διεπαφής Χρήστη (Graphics User Interface, GUI). Σε αυτήν εκτυλίσσεται το μοντέλο / η προσομοίωση και αλληλεπιδρούμε με αυτό. Στο εξής για συντομία θα τη λέμε: Επιφάνεια Διεπαφής

(ii)               η καρτέλα “Info που υπάρχουν πληροφορίες για κάθε μοντέλο: τι κάνει, ποια είναι η λογική που φτιάχτηκε, ποιες επιστημονικές έννοιες και αρχές υπάρχουν από πίσω, πώς μπορεί να τροποποιηθεί και να επεκταθεί κλπ. Σε αυτήν γράφει ο δημιουργός του μοντέλου και ο χρήστης βρίσκει στοιχεία για αυτό και

(iii)             η καρτέλα “Code”,  που είναι ο χώρος που γράφουμε τον κώδικα, δηλ. προγραμματίζουμε

Εικόνα 2: Στιγμιότυπο οθόνης από την αρχική επιφάνεια της NetLogo

Είναι χρήσιμο να δει κανείς, από το μενού “Files” → “Models’ Library”  την πάρα πολύ πλούσια Βιβλιοθήκη Μοντέλων που έχει η γλώσσα αυτή. Τα μοντέλα αυτά είναι ήδη ολοκληρωμένα και μπορούν π.χ. να χρησιμοποιηθούν για εκπαιδευτικούς σκοπούς, ως έχουν ή με τροποποιήσεις. Αφορούν πάρα πολλούς επιστημονικούς κλάδους, όπως μπορεί κανείς να δει, αν μπει και δοκιμάσει  κάποια από αυτά.

 

Εικόνα 3: Στιγμιότυπο οθόνης με τη Βιβλιοθήκη μοντέλων της NetLogo

Ξεκινώντας να γράφουμε ένα απλό πρόγραμμα

Βασική δομή στον προγραμματισμό στη NetLogo είναι η έννοια της «διαδικασίας» (“procedure”). Μία διαδικασία ξεκινάει πάντα από τη λέξη “to”, έχει ένα όνομα και τελειώνει πάντα με τη λέξη “end”. Μέσα στη διαδικασία, η NetLogo «διαβάζει» μία σειρά από εντολές, που αφορούν τους πράκτορες, τους συνδέσμους (links, θα τα δούμε αργότερα) ή/και τα τετραγωνάκια (“patches”) και τις εκτελεί.

Προφανώς, μία διαδικασία γράφεται στην καρτέλα “code” και ένα πρόγραμμα σε NetLogo δομείται με πολλές τέτοιες διαδικασίες. Μέσα στη διαδικασία μπορεί να καλείται και μία άλλη ή και άλλες που πρέπει και αυτές να ονομαστούν. Π.χ.

to telis     ;;   διαδικασία με το όνομα telis
     clear-all
     anthimos ;; καλείται η διαδικασία με το όνομα anthimos

     artemisia ;; καλείται η διαδικασία με το όνομα artemisia
end

 

 

Εικόνα 4: Στιγμιότυπο οθόνης από την καρτέλα κώδικα, με την παραπάνω διαδικασία

Προσέξτε τη στοίχιση του αρχικού με το τελικό της διαδικασίας! Η στοίχιση είναι βασικό προτέρημα και ιδιότητα όταν προγραμματίζουμε σε NetLogo. Επίσης προσέξτε τα διπλά ερωτηματικά, που αφορούν σχόλια. Ό,τι είναι γραμμένο μετά από διπλά ερωτηματικά, η NetLogo το αγνοεί. Έτσι είναι πολύ χρήσιμα για να θυμόμαστε τι κάναμε στο σημείο αυτό του προγράμματος, αλλά και να καταλαβαίνει άλλος που το χρησιμοποιεί τι κάνουμε εδώ, χρησιμοποιείται δηλαδή για την τεκμηρίωση του κώδικα. Η εντολή clear-all ανήκει στο ρεπερτόριο εντολών της γλώσσας.

Κάθε διαδικασία έχει τη δυνατότητα να αντιστοιχηθεί σε ένα κουμπί στην Επιφάνεια Διεπαφής της γλώσσας. Έτσι πηγαίνουμε στην καρτέλα “Interface”, επιλέγουμε “button”, από το dropdown μενού πάλι “button” και με το σταυρόνημα βάζουμε όπου θέλουμε το κουμπί στην επιφάνεια (συνήθως αριστερά από το μικρόκοσμο).

Μετά, στο περιεχόμενο του κουμπιού, εκεί που λέει “commands” γράφουμε ΥΠΟΧΡΕΩΤΙΚΑ “telis” και εκεί που λέει “display name” γράφουμε “telis” ή κάτι άλλο. Έτσι η NetLogo καταλαβαίνει ότι στο πάτημα αυτού του κουμπιού θα εκτελείται η διαδικασία “telis” .

Σημειώστε ότι –όπως παρατηρείτε– με δεξί κλικ πάνω σε ένα κουμπί μπορούμε να το διαμορφώσουμε (edit), να το επιλέξουμε (κυρίως για να το μετακινούμε) ή να το καταργήσουμε (σβήσουμε).

 

Πάμε τώρα στο πρώτο μας αληθινό προγραμματάκι!! 
A. Αδειάστε την καρτέλα “code” και γράψτε την παράξενη αυτή διαδικασία: 
to setup
clear-all
create-turtles 100 [ setxy random-xcor random-ycor ]
reset-ticks
end
Πολύ χρήσιμο είναι και το πλήκτρο “check”, που το πατάμε συχνά όταν έχουμε γράψει κώδικα, τον ελέγχει και μας βγάζει τα λάθη με προτάσεις σε κίτρινο φόντο.! 
Β. Τώρα δημιουργήστε στην Επιφάνεια Διεπαφής ένα κουμπί με το όνομα αυτό: “setup”. Γράφουμε setup στα commands, δεν χρειάζεται να δώσουμε display name. (Αν δώσετε, θα έχει το όνομα που του δίνετε, αλλιώς παίρνει το όνομα που γράφει στο commands!) 
Πατήστε το κουμπί αυτό. Τι παρατηρείτε; Το περιμένατε; 
Συνεχίζουμε ακάθεκτοι το ταξίδι στη NetLogo! 
Φτιάξτε στην Επιφάνεια Διεπαφής ένα κουμπί με το όνομα “go” (“commands”). Βγάζει κόκκινο και λέει “Nothing named GO has been defined!”.  Έχει δίκιο!! 
Γι αυτό πάμε στην  καρτέλα  code και γράφουμε, μετά την προηγούμενη διαδικασία, αυτά: 
to go
move-turtles
tick
end
  
to move-turtles
ask turtles [
right random 360
forward 1
]
end
  
Αν πατήσουμε το go, τι λέτε ότι θα γίνει; Ας το πατήσουμε.!  
  

Εικόνα 5: Στιγμιότυπο οθόνης με τον πηγαίο κώδικα

 

Εικόνα 6: Στιγμιότυπο οθόνης με τον μικρόκοσμο σε εξέλιξη, και τα πλήκτρα “setup” και “go”

Δοκιμάστε να κάνετε το go κουμπί συνεχούς εκτέλεσης (forever button) από το edit.  
Πατήστε τώρα πρώτα “setup” και μετά “go” [Έτσι είναι πάντα η σειρά στη NetLogo]. Τι βλέπετε;  
Αρχίζει ο πολύχρωμος χορός των χελωνών (“ball of turtles”) που τόσα μαθαίνει σε εμάς και τους μαθητές..! 

Συνεχίζεται....

Βιβλιογραφία

Grimm, V., & Railsback, S., F. (2011). Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton, New Jersey: Princeton University Press.

NetLogo User Manual – Web Version (2017). Version 6.0.1 Ανακτήθηκε διαδικτυακά από: http://ccl.northwestern.edu/netlogo/docs/ στις 31-03-2017.

Vázquez, J., C., G., & Caparrini, F. S. (2016) NetLogo: A modeling tool. Ανακτήθηκε διαδικτυακά από:  https://payhip.com/b/VhKb, στις 31-03-2017.

Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Wilensky, U., & Rand, W. (2015) An Introduction to Agent-Based Modeling: Modeling natural, social and engineered Complex Systems with NetLogo. Cambridge, MA: MIT Press.

Σήμα

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

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

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

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

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

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

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

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

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

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

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

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

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

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