Ορισμός και κανόνες σχεδίασης του κωδικΟράματος

Το κωδικΌραμα είναι ένας οπτικοποιημένος δισδιάστατος πίνακας που απεικονίζει το σύνολο του κώδικα.

Η καινοτομία της αναπαράστασης του κώδικα με χρήση του κωδικΟράματος  έγινε στην αρχή προαιρετικά (2018), και από τον επόμενο χρόνο υποχρεωτικά. Στην οριζόντια διάσταση του πίνακα παρατίθενται τα αντικείμενα που εμπλέκονται σε ένα προγραμματιστικό πρόβλημα και ...

στην κατακόρυφη διάσταση παρατίθενται οι καταστάσεις στις οποίες βρίσκονται τα αντικείμενα κατά την εκτέλεση του προγράμματος.

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

Οι διάφορες διασυνδέσεις που συμβολίζουν την επικοινωνία μεταξύ των τμημάτων του κώδικα αναπαριστώνται με βέλη που δείχνουν τη ροή της πληροφορίας.

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

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

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

Σε πολύπλοκα όμως κωδικΟράματα, για να μειωθεί ο οπτικός θόρυβος, αυτές οι συνδέσεις έχουν αντικατασταθεί με μια τοπολογία επιπέδων όπου οι κώδικες που ορίζουν τις διαδικασίες τοποθετούνται στο ίδιο ύψος (εάν είναι εφικτό) και δεξιότερα από το πλακίδιο που καλεί τη διαδικασία (Λαδιάς, 2016).

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

 

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

Σε μια γραμμή πάνω από κάθε αντικείμενο εμφανίζονται τα δεδομένα και οι δομές δεδομένων που ως «τοπικές» μεταβλητές (είναι αφενός οι εξ ορισμού από το Scratch όπως θέση Χ, θέση Υ, κατεύθυνση... και αφετέρου αυτές που ορίζονται από τον προγραμματιστή) χρησιμοποιούνται από το πρόγραμμα, ενώ το σύνολο των κοινών για όλα τα αντικείμενα (καθολικών) μεταβλητών (όπως π.χ. ο timer του συστήματος) και
δομών δεδομένων εμφανίζεται στο πάνω αριστερά κελί του κωδικΟράματος (σχήμα 24).

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

Η ευαναγνωσιμότητα των κωδικΟραμάτων (σχήμα 27) βελτιώνεται αν ο κώδικας ακολουθεί τις συμβάσεις του ευανάγνωστου προγραμματισμού με εννοιολογική ονοματολογία των μεταβλητών και των διαδικασιών (προτεινόμενη η «τυποποίηση της καμήλας»), ώστε να περιορίζεται η ανάγκη για προσθήκη επεξηγηματικών σχολίων τεκμηρίωσης και έτσι το κωδικΌραμα που παράγεται να διαβάζεται ως κείμενο (Βασιλοπούλου, κ.ά., 2016)

 

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

 

Επίσης η κατάλληλη χωρική τοποθέτηση/γειτνίαση των καταστάσεων (που αντιστοιχεί στην τοποθέτηση των οριζόντιων γραμμών) αποσκοπεί στο να αναδεικνύεται η χρονική εξέλιξη του συστήματος. Οι διακριτές χρονικές καταστάσεις αναπαρίστανται στην κατακόρυφη διάσταση του ΚωδικΟράματος με αποτέλεσμα η χρονική εξέλιξη του συστήματος να αναπαρίσταται με μεταπτώσεις στον κατακόρυφο άξονα (συνήθως από
πάνω προς τα κάτω). Περιορισμοί σε αυτό τίθενται από τη φύση των εκάστοτε προβλημάτων π.χ. όταν έχουμε επαναληπτικές ή αναδρομικής φύσεως διαδικασίες υλοποιημένες με τη χρήση μηνυμάτων

 

Πηγές:

Αποτίμηση της ευχρηστίας του κωδικΟράματος με τη μέθοδο SUS Αν. Λαδιάς, Δ. Γιάτας

To κωδικΌραμα ως εργαλείο αναπαράστασης του κώδικα Scratch και η εφαρμογή του στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής του WRO-Hellas

Leave a Reply