Το ζήτημα που αναθερμαίνεται με έχει απασχολήσει υπέρ του δέοντος... Στις τελευταίες, και εκτενείς η αλήθεια είναι, αναφορές μου είτε δεν έλαβα απαντήσεις, είτε δεν ήταν αυτές που θα με έκαναν να αναθεωρήσω την άποψή μου. Βλ. σχετικά:
https://alkisg.mysch.gr/steki/index.php?topic=2937.msg31334#msg31334https://alkisg.mysch.gr/steki/index.php?topic=2937.msg31335#msg31335https://alkisg.mysch.gr/steki/index.php?topic=2937.msg34194#msg34194Σημεία που στα λέγομενά σου δεν συμφωνώ και που σχολιάζω (και) στις παραπάνω παραπομπές:
1. "Διόρθωση δεκτή, εάν η πρόταση: ήταν στο κεφάλαιο 9. Όμως είναι στο κεφάλαιο 3. Και μιλάει γενικά για προγραμματισμό, μετάφραση, εκτέλεση χωρίς αναφορά σε συγκεκριμένη γλώσσα."
--> Ωστόσο αποτελεί αναφορά για αυτά που ακολουθούν στο 9. Η ψευδογλώσσα δεν φτιάχτηκε με σκοπό να μεταφράζεται και να εκτελείται από Η/Υ. Δεν είναι γλώσσα προγραμματισμού. Ο
προγραμματισμός στο βιβλίο ξεκινάει από το κεφάλαιο 6 με τίτλο "Εισαγωγή στον Προγραμματισμό". Μάλιστα στο κεφάλαιο 7 στην ΓΛΩΣΣΑ, αναφέρει:
"Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια.
1) Τον ακριβή προσδιορισμό του προβλήματος. [από την εκφώνηση της άσκησης]
2) Την ανάπτυξη του αντίστοιχου αλγορίθμου. [αυτό που ζήταγε το θέμα 3]
3) Τη διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή. [αυτό που δεν ζήταγε το θέμα 3]
Ο
προγραμματισμός ασχολείται με το τρίτο αυτό στάδιο, τη δημιουργία του προγράμματος δηλαδή του συνόλου των εντολών που πρέπει να δοθούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος."
2. "....το θεωρείτε γνωστό και το δηλώνεται ως τέτοιο, π.χ. Δεδομένα //Ν//"
--> Η εντολή Δεδομένα δεν είναι αντίστοιχη της
δήλωσης των μεταβλητών και σταθερών της ΓΛΩΣΣΑΣ ούτε δείχνει ότι το Ν θα είναι είναι γνωστό στον "προγραμματιστή". Για το λόγο αυτό δεν γράφουμε Δεδομένα // Α[Ν] // αλλά Δεδομένα // Α, Ν //. Ουσιαστικά η εντολή αυτή αποτελεί είσοδο δεδομένων στο ξεκίνημα "της εκτέλεσης" του αλγορίθμου που σε πραγματικό πρόγραμμα θα μπορούσε να δίνεται από τον χρήστη με εντολές εισόδου ή με παραμέτρους σε υποπρόγραμμα κλπ. Αυτό όπως εξηγώ στις παραπάνω παραπομπές μου αποτελεί παρερμηνεία!
3. "3) να μπορούν να μετατρέπουν έναν αλγόριθμο επίλυσης ενός προβλήματος σε απλό πρόγραμμα με τη χρήση δομημένης γλώσσας προγραμματισμού"
--> Το βιβλίο από το Κεφ. 6 και μετά αναφέρει κι άλλες γλώσσες προγραμματισμού και εισάγει και τη ΓΛΩΣΣΑ. Να θυμίσω ότι τα πρώτα χρόνια του μαθήματος κάποιοι δίδασκαν και άλλες γλώσσες (και μάλιστα από την περσινή έρευνα προέκυψε ότι κάποιοι ακόμα το κάνουν!) Επίσης, δεν γίνεται να μετατραπούν όλοι οι αλγόριθμοι του βιβλίου σε ΓΛΩΣΣΑ, π.χ. ο περιβόητος αλγόριθμος της σελ. 90. Επίσης, στην 3η παραπομπή μου θυμίζω ότι έτσι κι αλλιώς η ψευδογλώσσα δεν συμπεριφέρεται πάντα όμοια με τη ΓΛΩΣΣΑ και δεν υπόκειται στους ίδιους περιορισμούς...
---------------
Τώρα κάτι που κάποια στιγμή είχα ξαναθίξει αλλά χάθηκε μέσα στο ποτάμι των μηνυμάτων. Το βιβλίο αναφέρει:
"Θα πρέπει να δοθεί μεγάλη προσοχή στην ανίχνευση των δεδομένων ενός προβλήματος. Επισημαίνεται πως δεν είναι πάντοτε εύκολο να διακρίνει κάποιος τα δεδομένα. Υπάρχουν πολλές περιπτώσεις προβλημάτων όπου τα δεδομένα θα πρέπει να “
ανακαλυφθούν” μέσα στα λεγόμενα του προβλήματος. Η διαδικασία αυτή απαιτεί προσοχή, συγκέντρωση και σκέψη. Μεθοδολογία προσδιορισμού των δεδομένων ενός προβλήματος δεν υπάρχει, ούτε και μεθοδολογία εντοπισμού και αποσαφήνισης των ζητούμενων ενός προβλήματος.
Το ίδιο προσεκτικά θα πρέπει να αποσαφηνιστούν και τα ζητούμενα του προβλήματος. Δεν είναι πάντοτε ιδιαίτερα κατανοητό τι ακριβώς ζητάει ένα πρόβλημα. Σε μια τέτοια περίπτωση θα πρέπει να θέτονται μιασειρά από ερωτήσεις με στόχο την διευκρίνηση πιθανών αποριών σχετικά με τα ζητούμενα, τον τρόπο παρουσίασής τους, το εύρος τους κ.λπ.
Οι ερωτήσεις αυτές μπορούν να απευθύνονται είτε στο δημιουργό του προβλήματος, είτε στον ίδιο μας τον εαυτό αν εμείς καλούμαστε να αντιμετωπίσουμε το πρόβλημα."
Ο Σπύρος κάπου μίλαγε για κλειστά και ανοιχτά-κλειστά προβλήματα... Δεν το έχω σκεφτεί και πολύ βέβαια - δεν είμαι σίγουρος ότι έχει σχέση με αυτό που λέω εδώ, αλλά βάσει αυτής της αναφοράς του βιβλίου, για μένα, δεν είναι παράλογο και δεν θα πρέπει να το καταπολεμάμε, σε ένα πρόβλημα της αλγοριθμικής ο μαθητής να μπορεί να κάνει μόνος του κάποιες παραδοχές. Π.χ. σχολικός αγώνας, άρα θα μπορεί να τεθεί ένα άνω όριο στο ποιο μπορεί να είναι το πλήθος αυτό. Με αυτή τη λογική ακόμα και σε ΓΛΩΣΣΑ θα μπορούσε να λυθεί ένα αντίστοιχο πρόβλημα, αρκεί το Ν που θα δίνει ο χρήστης να είναι 0<Ν<=όριο.
------------
Κατ' εμέ, από τη στιγμή που οι απόψεις διίστανται, το συγκεκριμένο ζήτημα αποτελεί γκρίζα ζώνη, όπως υπάρχουν κι άλλες τέτοιες στο βιβλίο. Βέβαια πολλές από αυτές προκύπτουν από την τάση μας να βλέπουμε ως ισοδύναμες 1-1 την ψευδογλώσσα και τη ΓΛΩΣΣΑ, ενώ όμως είναι διαφορετικά πράγματα. Η πρώτη αποτελεί τρόπο αναπαράστασης της διαδικασίας επίλυσης ενός προβλήματος (όπως π.χ. είναι και το ελεύθερο κείμενο!) που δεν είναι και σίγουρο ότι πρόκειται να δοθεί για επίλυση σε Η/Υ. Η δεύτερη είναι γλώσσα προγραμματισμού. Εγώ θα μπορούσα ακόμα και να δεχτώ ότι στην ψευδογλώσσα δεν έχει νόημα να μιλάμε για στατικότητα, δέσμευση μνήμης, χωρητικότητα μνήμης, και πολλά άλλα, αλλά δεν είναι αναγκαίο να φτάσουμε (ακόμα!) μέχρι εκεί! Αρκεί να αποφεύγουμε αυτές τις γκρίζες ζώνες, και μάλλον πρέπει, αφού από ό,τι φαίνεται δεν πρόκειται να καταλήξουμε!