Αποστολέας Θέμα: ΘΕΜΑ Δ  (Αναγνώστηκε 3837 φορές)

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3168
  • to Iterate is human to Recurse divine
Απ: ΘΕΜΑ Δ
« Απάντηση #45 στις: 18 Ιούν 2017, 08:57:24 πμ »
Συμφωνώ απόλυτα

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

Όσο για τα εκτός ύλης κλπ, είναι τελείως λάθος να αλλάζουμε τους κανόνες της ΓΛΩΣΣΑΣ ανάλογα με το τι είναι κάθε χρονιά στην ύλη. Η ΓΛΩΣΣΑ είναι και διαδικασιακή και αντικειμενοστραφής και event driven κλπ, ακόμα κι αν δεν είναι στην ύλη όλα αυτά τα χρόνια ο οδηγούμενος από τα γεγονότα προγραμματισμός, ή αν δεν έχει υλοποιηθεί στον Διερμηνευτή κλπ.

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

ΥΓ. Αυτό με το ότι το όνομα συνάρτησης αποτελεί μεταβλητή μόνο στο αριστερό μέλος και τη Result τι μου θύμισε ρε Άλκη, 23 χρόνια πίσω :( .  Turbo Pascal 7. Αν θυμάμαι καλά το Result ήταν μόνο στην Delphi ή στην Object Pascal?
« Τελευταία τροποποίηση: 18 Ιούν 2017, 09:24:36 πμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5165
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΘΕΜΑ Δ
« Απάντηση #46 στις: 18 Ιούν 2017, 10:09:44 πμ »
Σάββα δοκίμασα αυτό που λες και ισχύει, δηλαδή test := test + 1 στην Free Pascal (fp-compiler-3.0.0) δεν κάνει κλήση/αναδρομή,
ενώ αντίθετα στην Turbo Pascal 7 κάνει αναδρομή.

Επιπρόσθετα, στην Free Pascal επιτρέπεται κλήση συνάρτησης χωρίς παραμέτρους είτε ως test είτε ως test(),
ενώ στην Turbo Pascal 7 μόνο ως test. Αν βάλεις και παρενθέσεις είναι συντακτικό λάθος.

Το πρόβλημα που έχω με την υλοποίηση της Free Pascal είναι ότι η εντολή x := test + 1, αν είναι έξω από τη συνάρτηση test τότε κάνει κλήση, ενώ αν είναι μέσα στη συνάρτηση test δεν κάνει κλήση. Αυτό μου φαίνεται χαοτικό.

Οπότε να διορθώσω λέγοντας ότι ο Διερμηνευτής ακολουθεί την υλοποίηση της Turbo Pascal και όχι της Free Pascal.

Για μεταφορά του Διερμηνευτή σε Android ή σε άλλα περιβάλλοντα δυστυχώς δεν έχω χρόνο, θεωρώ ότι η υποστήριξη Ubuntu/LTSP είναι πιο σημαντική για την καλή κατάσταση των εργαστηρίων μας. Αλλά θέλει κάποιος να το ξεκινήσει μόνος του, μπορώ να δώσω κάποιες συμβουλές...

Καλημέρα σε όλους!

Sergio

  • Αστέριος Φανίκος, Καθηγητής Πληροφορικής, fanikosaATschDOTgr
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 801
  • Κάλλιο γνώση, παρά γρόσι.. (ΛΑΪΚΗ ΠΑΡΟΙΜΙΑ)
    • Προσωπική Σελίδα
Απ: ΘΕΜΑ Δ
« Απάντηση #47 στις: 20 Ιούν 2017, 08:35:16 μμ »
Η βαθμολόγηση των γραπτών τελείωσε και ίσως να φαίνεται μάταιο να συζητάμε τώρα, όμως θα έρθουν και οι επόμενοι μαθητές και, είμαι σίγουρος πως το ενδιαφέρον όλων για διαμόρφωση σωστών πρακτικών & αντιλήψεων που θα βοηθήσουν στην ορθότερη λειτουργία μας ως δασκάλους, παραμένει, παρά το τέλος αυτής της χρονιάς.

Θα επιμείνω λοιπόν, γιατί θεωρώ ιδιαίτερα σημαντικό το θέμα της σωστής, προβλέψιμης, δίκαιης και αντικειμενικής βαθμολόγησης των γραπτών των μαθητών.

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

Στην προκείμενη περίπτωση, δηλαδή στον προβληματισμό που αρχικά διατύπωσα:
ΛΥΣΗ η οποία, στη συνάρτηση ΣΥΝΑΠ δεν κάνει χρήση τοπικής μεταβλητής για τον υπολογισμό του αποτελέσματος αλλά χρησιμοποιεί τη ΣΥΝΑΠ ως κοινή μεταβλητή (ΣΥΝΑΠ <- ΣΥΝΑΠ + ...) έχει βαθμολογική απώλεια ;;
αυτό στο οποίο οφείλουμε να εστιάσουμε είναι τα κριτήρια βάση των οποίων θα βαθμολογήσουμε.

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

Και το ερώτημα που τίθεται είναι το εξής: πώς μπορούμε, ως δάσκαλοι να αποτρέψουμε τη διαμόρφωση αυτής της αντίληψης στο πλαίσιο της ύλης;
Ο μόνος τρόπος που έχω βρει εγώ, και χρησιμοποιώ με τους μαθητές μου, είναι κάνοντας (εκτός ύλης) αναφορά στην έννοια της αναδρομής, μόνο και μόνο για να τους εξηγήσω πως η σύγκρουση στην οποία ενδέχεται να οδηγηθούν συνεκτιμώντας τα αντικρουόμενα (βλ.παραπάνω post ) :
Είναι μεταβλητή αφού:
-   στην αριστερή πλευρά μιας εντολή εκχώρησης υπάρχει όνομα μεταβλητής,
-   στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης αλλά,
ΔΕΝ είναι μεταβλητή αφού:
-   στη δεξιά πλευρά μιας εντολή εκχώρησης υπάρχει έκφραση,
-   oι συναρτήσεις εκτελούνται απλά με την εμφάνιση του ονόματος τους σε οποιαδήποτε έκφραση,
έχει απάντηση (εκτός ύλης).

ΔΕΝ θεωρώ όμως αυτονόητο πως όλοι οι συνάδελφοι κάνουν το ίδιο και γι’ αυτό, στο πλαίσιο της τελικής εξέτασης των μαθητών για την εισαγωγή τους στην τριτοβάθμια θεωρώ πως
Παράθεση
για το συγκεκριμένο "λάθος" ΔΕΝ πρέπει να υπάρχει βαθμολογική απώλεια μονάδων.  Ούτε ΜΙΑΣ !!

Δεν έχει να κάνει με την υλοποίηση του διερμηνευτή, ούτε με την υλοποίηση άλλων γλωσσών προγραμματισμού, ούτε καν με τη ΓΛΩΣΣΑ αυτή καθ’ αυτή στο πλαίσιο του βιβλίου.  Εχει να κάνει με τη συνέπεια και την πληρότητα στη διαμόρφωση αναπαραστάσεων στο πλαίσιο της ΥΛΗΣ.

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

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

Και, εντελώς τυχαία, σε ένα από τα τελευταία γραπτά που βαθμολογούσα εχθές, κάποιο παλληκάρι (δεν πρέπει να ήταν κοπέλα, με τέτοιο γραφικό χαρακτήρα) είχε ως μόνο λάθος το 4ο Σ/Λ (και το υπό συζήτηση ΣΥΝΑΠ <- ΣΥΝΑΠ + …).  Το βαθμολόγησα με 98 και θεωρώ πως καλά έκανα.
Καλό μας καλοκαίρι !
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 817
Απ: ΘΕΜΑ Δ
« Απάντηση #48 στις: 21 Ιούν 2017, 12:43:48 πμ »
θεωρώ ότι θα λυθούν άπειρα απο τα προβλήματα μας εαν μεταβούμε σε ενα περιβάλλον γλώσσας προγραμματισμού όπως η Python

Το διαπίστωσα φέτος κάνοντας Python σε παιδιά του ΕΠΑ.Λ....