Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Β΄ Λυκείου => Μήνυμα ξεκίνησε από: komni στις 27 Νοε 2020, 01:27:39 μμ

Τίτλος: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 27 Νοε 2020, 01:27:39 μμ
Καλησπέρα σε όλους,

Με αφορμή τη συζήτηση που προέκυψε στο post μου για τον διερμηνευτή (https://alkisg.mysch.gr/steki/index.php?topic=8534.0) για την Ψευδογλώσσα δημιουργώ αυτό ώστε να συζητήσουμε αν θα πρέπει ή όχι να υλοποιείται η Ψευδογλώσσα.

Χθες έκανα ένα μικρό ερωτηματολόγιο στο Instagram μου, όπου ρώτησα υποψήφιους, ανάμεσα σε άλλα, αν μπορούν να μου εξηγήσουν την διαφορά ανάμεσα στην Γλώσσα και την Ψευδογλώσσα.

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

Μπορείτε να δείτε τις απαντήσεις εδώ (https://imgur.com/a/PQSiIYL)

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

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

Έχω βάλει μια ψηφοφορία σε αυτό το post ώστε να μπορείτε να ψηφίσετε επί του θέματος. Αν αποφασίσετε να το ψηφήσετε καλό θα ήταν επίσης να απαντήσετε στο post με κάποια αιτιολόγηση ώστε να μπορέσουμε να καταλήξουμε κάπου.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dimpapadop στις 27 Νοε 2020, 04:34:29 μμ
@komni
Ναι, λέγοντας στον μαθητή ότι η ψευδογλώσσα είναι ένα "προσχέδιο" αλγορίθμου, σαφώς του δημιουργείς μια "Α" σύγχυση όταν το βλέπει να εκτελείται. (ή/και όχι :) ).
Από την άλλη στο εργαστήριο όταν θέλεις να δοκιμάσουν μια άσκηση from scratch και όχι πάνω σε ένα προ-πληκτρολογημένο σκελετό, θα καθυστερήσεις πολύ χωρίς χρήση ψευδογλώσσας.
Επίσης μέχρι να κατανοήσουν τις μεταβλητές όπως πρέπει στην Β' ώστε να μάθουν να τις χρησιμοποιούν σωστά και να τις δηλώνουν, καλό είναι να υπάρχει. Άλλωστε σε ψευδογλώσσα έχουν γραφεί τα σχολικά εγχειρ. στη Β'
Μάλιστα υπό τις τρέχουσες συνθήκες και μιας και πολλοί μαθητές με παρακολουθούν από κινητό, (άλλοι δεν έχουν πρόσβαση σε Η/Υ λόγω αδελφών στην οικογένεια κλπ) προσπαθώ να μπορούν να γράψουν/δοκιμάσουν εύκολα τον αλγόριθμό τους και από κινητό και για αυτό όπως σου ανέφερα στο άλλο νήμα νομίζω καλό κάνει και μια οπτική blockly like υλοποίηση πχ πρόχειρη http://1lyk-florin.flo.sch.gr/pliroforiki/

Γνώμη μου είναι ότι πρέπει να υπάρχει αν και συμμερίζομαι την άποψη σου.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dski στις 27 Νοε 2020, 05:27:13 μμ
Επειδή είμαι από αυτούς που σε παρότρυναν να φτιάξεις διερμηνευτή και για την Ψευδογλώσσα:

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

Όμως στο μάθημα της Β' ΓΕΛ η Ψευδογλώσσα είναι το μόνο "προγραμματιστικό" εργαλείο του βιβλίου για τους μαθητές και η προσωπική μου εμπειρία από τα χρόνια που έχω διδάξει το μάθημα είναι ότι οι μαθητές που χρησιμοποίησαν διερμηνευτή για να λύσουν τις ασκήσεις τους είχαν τελικά αρκετά καλύτερη κατανόηση των προγραμματιστικών δομών και εννοιών από όσους έμειναν μόνο στο χαρτί ακριβώς επειδή δοκίμασαν του αλγορίθμους στην πράξη (παρακολούθηση τιμών, αποτίμηση εκφράσεων κτλ), είδαν τα λάθη τους, δοκίμασαν άλλους τρόπους κτλ. Για το λόγο αυτό θεωρώ εξαιρετικά χρήσιμη την ύπαρξη ενός διερμηνευτή για την ψευδογλώσσα έστω και με κάποιες παραδοχές, περιορισμούς ή απλοποιήσεις.

Ελπίζω η συζήτηση που ανοίξαμε στο σχετικό νήμα να μην σε "τρόμαξε". Από τη μεριά μου η συζήτηση αυτή είναι κυρίως "φιλολογική". Θεωρώ ότι η υλοποίηση της Ψευδογλώσσας όπως γίνεται π.χ. από το pseudoglossa.gr ή τον Διερμηνευτή της Γλώσσας είναι και στη σωστή κατεύθυνση αλλά και απολύτως επαρκής για τις ανάγκες του μαθήματος και αν τελικά προχωρήσεις σε προτρέπω να ακολουθήσεις και εσύ αυτή την προσέγγιση.

Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dpa2006 στις 27 Νοε 2020, 05:59:07 μμ
Κατά τη γνώμη μου πρέπει να υλοποιείται η Ψευδογλώσσα είτε με τον ίδιο είτε με διαφορετικο διερμηνευτή είτε με ένα Wizard που να ρωτάει ποιο από τα δύο θέλεις να εκτελέσεις,Ψευδογλώσσα ή ΓΛΩΣΣΑ
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: George Eco στις 27 Νοε 2020, 09:45:04 μμ
Για αρχή επειδή είμαι αυτός που έθιξε το θέμα με τη σύγχιση των μαθητών, θέλω να ξεκαθαρίσω, πως η σύγχιση αφορά παιδιά που βρίσκονται στη Γ Λυκείου μόνο. Εκεί καλούνται να ξεκαθαρίσουν μια και καλή τι συμβαίνει και τι όχι.
Από την άλλη, συνάδελφοι που διδάσκουν στη Β Λυκείου αλγοριθμικά concepts, δεν έχουν τρόπο να δείξουν αλγοριθμικά κάτι σε εργαστηριακό περιβάλλον, εκτός της ΓΛΩΣΣΑΣ, που μεν ομοιάζει, αλλά δεν είναι στα πλαίσια του μαθήματος της Β Λυκείου. Οπότε αν κάποιος θέλει να έχει κάτι σαν διερμηνευτή, που τρέχει αλγόριθμο, καλό θα ήταν να το διαχωρίζει από τη ΓΛΩΣΣΑ. Επειδή αυτος ο διαχωρισμός δε γίνεται συχνά, συμβαίνει αυτό που έθιξες.

Έτσι, νομίζω πως ένα πρόγραμμα που "εκτελεί" ψευδοκώδικα, ως ξεχωριστό εργαλείο θα βοηθάει πολύ στη Β Λυκείου, ενώ η Γ Λυκείου θα μπορεί να έχει ένα διερμηνευτή που δε θα προκαλεί σύγχιση.
Το κακό komni, είναι πως τα παιδιά δε μπορούν να το ξεχωρίσουν επειδή η ΓΛΩΣΣΑ δε διαφέρει και πολύ συντακτικά της ψευδογλώσσας στην Ελληνική. Οπότε και πάλι θα επικρατεί παρόμοιο κλίμα σύγχισης, με λιγότερη επιβάρυνση όμως από το διερμηνευτή σου.
Πάντως δεν έχω λόγια να σε ευχαριστήσω για το feedback που έδωσες από τη μικρή σου έρευνα.



Κατά τη γνώμη μου πρέπει να υλοποιείται η Ψευδογλώσσα είτε με τον ίδιο είτε με διαφορετικο διερμηνευτή είτε με ένα Wizard που να ρωτάει ποιο από τα δύο θέλεις να εκτελέσεις,Ψευδογλώσσα ή ΓΛΩΣΣΑ

Η ιδέα του wizard μπορεί να είναι ένα αρχικό μενού επιλογής. Δεν είναι κακή ιδέα. Κι εγώ δεν είμαι εναντίον ύπαρξης κάποιου εργαλείου, απλά παράθεσα την άποψή μου και την οπτική μου, για ένα φαινόμενο που χρόνια παρατηρώ. Το εργαλείο δε βοηθάει ποτέ. Ο τρόπος χρήσης από τον εκπαιδευτικό βοηθάει.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 27 Νοε 2020, 11:47:59 μμ
@komni
Ναι, λέγοντας στον μαθητή ότι η ψευδογλώσσα είναι ένα "προσχέδιο" αλγορίθμου, σαφώς του δημιουργείς μια "Α" σύγχυση όταν το βλέπει να εκτελείται. (ή/και όχι :) ).
Από την άλλη στο εργαστήριο όταν θέλεις να δοκιμάσουν μια άσκηση from scratch και όχι πάνω σε ένα προ-πληκτρολογημένο σκελετό, θα καθυστερήσεις πολύ χωρίς χρήση ψευδογλώσσας.
Επίσης μέχρι να κατανοήσουν τις μεταβλητές όπως πρέπει στην Β' ώστε να μάθουν να τις χρησιμοποιούν σωστά και να τις δηλώνουν, καλό είναι να υπάρχει. Άλλωστε σε ψευδογλώσσα έχουν γραφεί τα σχολικά εγχειρ. στη Β'
Μάλιστα υπό τις τρέχουσες συνθήκες και μιας και πολλοί μαθητές με παρακολουθούν από κινητό, (άλλοι δεν έχουν πρόσβαση σε Η/Υ λόγω αδελφών στην οικογένεια κλπ) προσπαθώ να μπορούν να γράψουν/δοκιμάσουν εύκολα τον αλγόριθμό τους και από κινητό και για αυτό όπως σου ανέφερα στο άλλο νήμα νομίζω καλό κάνει και μια οπτική blockly like υλοποίηση πχ πρόχειρη http://1lyk-florin.flo.sch.gr/pliroforiki/

Γνώμη μου είναι ότι πρέπει να υπάρχει αν και συμμερίζομαι την άποψη σου.
Ευχαριστώ για το feedback! Στο άλλο ποστ νόμιζα πως εννοούσατε τη δημιουργία νέας γλώσσας η οποία θα είναι φάση blockly. Καλό μου ακούγεται για την Ψευδογλώσσα, θα το βάλω στη λίστα μου.

Επειδή είμαι από αυτούς που σε παρότρυναν να φτιάξεις διερμηνευτή και για την Ψευδογλώσσα:

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

Όμως στο μάθημα της Β' ΓΕΛ η Ψευδογλώσσα είναι το μόνο "προγραμματιστικό" εργαλείο του βιβλίου για τους μαθητές και η προσωπική μου εμπειρία από τα χρόνια που έχω διδάξει το μάθημα είναι ότι οι μαθητές που χρησιμοποίησαν διερμηνευτή για να λύσουν τις ασκήσεις τους είχαν τελικά αρκετά καλύτερη κατανόηση των προγραμματιστικών δομών και εννοιών από όσους έμειναν μόνο στο χαρτί ακριβώς επειδή δοκίμασαν του αλγορίθμους στην πράξη (παρακολούθηση τιμών, αποτίμηση εκφράσεων κτλ), είδαν τα λάθη τους, δοκίμασαν άλλους τρόπους κτλ. Για το λόγο αυτό θεωρώ εξαιρετικά χρήσιμη την ύπαρξη ενός διερμηνευτή για την ψευδογλώσσα έστω και με κάποιες παραδοχές, περιορισμούς ή απλοποιήσεις.

Ελπίζω η συζήτηση που ανοίξαμε στο σχετικό νήμα να μην σε "τρόμαξε". Από τη μεριά μου η συζήτηση αυτή είναι κυρίως "φιλολογική". Θεωρώ ότι η υλοποίηση της Ψευδογλώσσας όπως γίνεται π.χ. από το pseudoglossa.gr ή τον Διερμηνευτή της Γλώσσας είναι και στη σωστή κατεύθυνση αλλά και απολύτως επαρκής για τις ανάγκες του μαθήματος και αν τελικά προχωρήσεις σε προτρέπω να ακολουθήσεις και εσύ αυτή την προσέγγιση.


Ευχαριστώ για το feedback! Χαχαχα δεν τρόμαξα απλά περίμενα τα αποτελέσματα από το ερωτηματολόγιο για να απαντήσω...

Κατά τη γνώμη μου πρέπει να υλοποιείται η Ψευδογλώσσα είτε με τον ίδιο είτε με διαφορετικο διερμηνευτή είτε με ένα Wizard που να ρωτάει ποιο από τα δύο θέλεις να εκτελέσεις,Ψευδογλώσσα ή ΓΛΩΣΣΑ
Ευχαριστώ για το feedback!

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

Έτσι, νομίζω πως ένα πρόγραμμα που "εκτελεί" ψευδοκώδικα, ως ξεχωριστό εργαλείο θα βοηθάει πολύ στη Β Λυκείου, ενώ η Γ Λυκείου θα μπορεί να έχει ένα διερμηνευτή που δε θα προκαλεί σύγχιση.
Το κακό komni, είναι πως τα παιδιά δε μπορούν να το ξεχωρίσουν επειδή η ΓΛΩΣΣΑ δε διαφέρει και πολύ συντακτικά της ψευδογλώσσας στην Ελληνική. Οπότε και πάλι θα επικρατεί παρόμοιο κλίμα σύγχισης, με λιγότερη επιβάρυνση όμως από το διερμηνευτή σου.
Πάντως δεν έχω λόγια να σε ευχαριστήσω για το feedback που έδωσες από τη μικρή σου έρευνα.



Η ιδέα του wizard μπορεί να είναι ένα αρχικό μενού επιλογής. Δεν είναι κακή ιδέα. Κι εγώ δεν είμαι εναντίον ύπαρξης κάποιου εργαλείου, απλά παράθεσα την άποψή μου και την οπτική μου, για ένα φαινόμενο που χρόνια παρατηρώ. Το εργαλείο δε βοηθάει ποτέ. Ο τρόπος χρήσης από τον εκπαιδευτικό βοηθάει.
Ευχαριστώ για το feedback και τα καλά σας λόγια. Το είχα αναφέρει και εγώ ότι οι μαθητές δεν μπορούν να καταλάβουν τις διαφορές σε απάντηση στη σελίδα 3 του συγκεκριμένου ποστ.

Μάλλον αυτό που θα γίνει τελικά είναι πως θα υλοποιηθεί σε ξεχωριστό domain με διαφορετικό design και κουμπί που θα εξηγεί πως η Ψευδογλώσσα είναι ψευδοκώδικας και τι σημαίνει αυτο.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: George Eco στις 28 Νοε 2020, 12:57:02 πμ
Μάλλον αυτό που θα γίνει τελικά είναι πως θα υλοποιηθεί σε ξεχωριστό domain με διαφορετικό design και κουμπί που θα εξηγεί πως η Ψευδογλώσσα είναι ψευδοκώδικας και τι σημαίνει αυτο.

Δεν έχω λόγια να εκφράσω το πόσα μπράβο θέλω να σου πω. Από εμένα εύγε!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: evry στις 28 Νοε 2020, 01:47:37 μμ
Ο σκοπός του ψευδοκώδικα είναι να γράψει πρώτα ο άνθρωπος στο χαρτί ένα σκαρίφημα του αλγορίθμου που θέλει να υλοποιήσει.
Από την στιγμή που υπάρχει περιβάλλον εκτέλεσης της ψευδογλώσσας τότε η "ψευδογλώσσα" παύει να είναι ψευδογλώσσα και γίνεται πραγματική γλώσσα.
Δυστυχώς λέμε ότι γράφουμε σε μια γλώσσα προγραμματισμού η οποία είναι ίδια με τη ΓΛΩΣΣΑ απλά έχει τις εξής διαφορές: (αν ξέχασα κάποια μπορείτε να προσθέσετε)
1) Δεν έχει δήλωση τύπων αλλά το σύστημα τύπων δεν είναι δυναμικό  :D
2) Έχει έναν τύπο για αριθμούς, δεν διαχωρίζει ακέραιες/πραγματικές
3) Στο βιβλίο συντάσσεται με μικρά γράμματα
4) Η απλή if με μια εντολή συντάσσεται σε μια γραμμή.
5) Έχει εντολή Αντιμετάθεσε
6) Έχει αυστηρή σύνταξη αδιανόητο για ψευδοκώδικα

Για αυτό οι μαθητές δεν μπορούν να διαχωρίσουν τη ΓΛΩΣΣΑ με την ψευδογλώσσα, γιατί κάνουν ουσιαστικά τα ίδια πράγματα και για να είμαι πιο ακριβής βρίσκονται στο ίδιο επίπεδο αφαίρεσης.
Πολύ πιο κοντά στην ψευδογλώσσα είναι γλώσσες όπως οι JavaScript, Python, Ruby κλπ.
Παραθέτω σε εικόνα και ένα παράδειγμα που το χρησιμοποιώ συχνά για να δείξω πόσο κοντά είναι η Python σε αυτό που λέμε Αλγοριθμική και παράλληλα πόσο μακριά είναι η ψευδογλώσσα

ΥΓ. Ξέχασα ότι η ψευδογλώσσα μας έχει και στατικές δομές!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: pgrontas στις 28 Νοε 2020, 03:58:29 μμ
komni,
Πραγματικά συγχαρητήρια και respect για τη δουλειά σου.

Bonus points για το dark theme :)
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: gthal στις 28 Νοε 2020, 07:20:06 μμ
Ευριπίδη ξέχασες τη διαφορά στο με_βήμα  έναντι του ΜΕ ΒΗΜΑ    :D
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: evry στις 28 Νοε 2020, 07:48:28 μμ
Είσαι απίστευτος!!!
Ευριπίδη ξέχασες τη διαφορά στο με_βήμα  έναντι του ΜΕ ΒΗΜΑ    :D
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 28 Νοε 2020, 09:17:04 μμ
@evry Ευχαριστώ για το feedback!

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

Όσον αφορά το παράδειγμα με την Python, άμα στην Ψευδογλώσσα είχαν προσθέσει εντολές break και continue, θα ήταν το ίδιο ευανάγνωστο με την Python!

Επίσης, πολύ χρήσιμη η λίστα που φτιάξατε.

@pgrontas Ευχαριστώ!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: evry στις 28 Νοε 2020, 09:49:37 μμ
Το πρόβλημα δεν είναι η ψευδογλώσσα που είναι λογικό να χρησιμοποιείται για διδακτικούς λόγους αλλά η απουσία πραγματικής γλώσσας προγραμματισμού για την υλοποίηση πραγματικών σύγχρονων εφαρμογών. Απλά το πλεονέκτημα γλωσσών όπως η Javascript και η Python είναι ότι είναι πιο απλές ακόμα και από την δική μας ψευδογλώσσα, οπότε σε αυτή την περίπτωση δεν έχει νόημα να χρησιμοποιείς ψευδοκώδικα παρά μόνο αν είναι χαλαρός και σε πιο υψηλό επίπεδο αφαίρεσης.
Στην Σκωτία από όσο θυμάμαι όταν το είχα ψάξει επιτρέπουν στους καθηγητές να χρησιμοποιήσουν οποία γλώσσα θέλουν από Scratch και App Inventor μέχρι C++ αλλά στο τέλος εξετάζονται σε κοινή ψευδογλώσσα την Haggis.
Δες εδώ , είναι χειρότερη από τη δική μας:
http://www.bannermanhigh.glasgow.sch.uk/Websites/SchSecBannerman/UserFiles/file/Departments/Computing/Haggis%20Pseudo%20Code.pdf (http://www.bannermanhigh.glasgow.sch.uk/Websites/SchSecBannerman/UserFiles/file/Departments/Computing/Haggis%20Pseudo%20Code.pdf)
Νομίζω όμως ότι πάλι επιτρέπουν στους μαθητές να δώσουν λύσεις σε όποια γλώσσα θέλουν!!
Στις άλλες χώρες χρησιμοποιούν ψευδογλώσσα σε συνδυασμό με μια πραγματική γλώσσα προγραμματισμού, π.χ. Python, Javascript σε Αμερική, Καναδά ή Java στο IB που στα θέματα αυτά είναι πιο πίσω.
Στα A Levels νομίζω έχει πολλές επιλογές C, Java, Python σε συνδυασμό με ψευδογλώσσα, δεν ξέρω αν τα έχουν αλλάξει τελευταία.

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

Σίγουρα η return, break (και όχι continue) είναι χρήσιμες. Παρατήρησε όμως ότι ο ένας αλγόριθμος είναι για συγκεκριμένο τύπο αντικειμένων και για συγκεκριμένο μέγεθος πίνακα, ενώ ο άλλος λόγω της δυναμικής φύσης της Python δεν έχει τέτοιους περιορισμούς. Όταν μιλάμε για αλγοριθμική υποτίθεται ότι θέλουμε αυτού του επιπέδου την αφαίρεση, δηλαδή να ορίσουμε αφαιρετικά έναν αλγόριθμο ανεξάρτητο από το πλήθος και πολλές φορές τον τύπο των δεδομένων όσο πιο generic γίνεται.
Παράθεση
Όσον αφορά το παράδειγμα με την Python, άμα στην Ψευδογλώσσα είχαν προσθέσει εντολές break και continue, θα ήταν το ίδιο ευανάγνωστο με την Python!

Δεν ξέρω ποια είναι η άποψή σου σε αυτό.
Εσύ ποια πραγματική γλώσσα θα προτιμούσες να χρησιμοποιούσαν οι μαθητές στην εκπαίδευση?
Υποθέτω ότι δεν ξεκίνησες κατευθείαν από Typescript, σίγουρα έχεις κάνει C, C++ και ίσως Python?
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 28 Νοε 2020, 11:21:01 μμ
Στις άλλες χώρες χρησιμοποιούν ψευδογλώσσα σε συνδυασμό με μια πραγματική γλώσσα προγραμματισμού, π.χ. Python, Javascript σε Αμερική, Καναδά ή Java στο IB που στα θέματα αυτά είναι πιο πίσω.

Στις άλλες χώρες, όμως, υπάρχει γενικώς μεγαλύτερη ύλη στα μαθήματα του Λυκείου. Για παράδειγμα, το A level Further Math (https://www.cambridgeinternational.org/Images/414957-2020-2022-syllabus.pdf) (ζητήται από όλα τα σοβαρά πανεπιστήμια για σπουδές πληροφορικής/μαθηματικών) έχει ύλη πρώτου έτους Ελλάδας και πολύ στατιστική και πιθανότητες! Ακόμα και το plain A level Math (https://www.cambridgeinternational.org/Images/415060-2020-2022-syllabus.pdf) έχει παραπάνω όγκο ύλης από τα μαθηματικά στο ελληνικό Λύκειο...

Στα A Levels νομίζω έχει πολλές επιλογές C, Java, Python σε συνδυασμό με ψευδογλώσσα, δεν ξέρω αν τα έχουν αλλάξει τελευταία.

Εξαρτάται το A level. Στου Cambridge που έκανα εγώ είχε ψευδογλώσσα(μοιάζει πολύ με τη δική μας, βλ. εικόνα) + Pascal ή Python ή VB. Η ψευδογλώσσα είχε ίδια βαρύτητα με την γλώσσα προγραμματισμού. Δεν έχω στατιστικά αλλά θεωρώ πως οι περισσότεροι επιλέγουν Python.

Σίγουρα η return, break (και όχι continue) είναι χρήσιμες.

Την return την ξέχασα(αν και κάποιες σοβαρές γλώσσες π.χ. (standard) Pascal δεν την έχουν.
Η continue χρειάζεται σε πολλούς αλγορίθμους αλλιώς μπερδεύονται τα πράγματα με πολλά ifs. Δεν την ανέφερα για το συγκεκριμένο παράδειγμα..

Δεν ξέρω ποια είναι η άποψή σου σε αυτό.
Εσύ ποια πραγματική γλώσσα θα προτιμούσες να χρησιμοποιούσαν οι μαθητές στην εκπαίδευση?
Υποθέτω ότι δεν ξεκίνησες κατευθείαν από Typescript, σίγουρα έχεις κάνει C, C++ και ίσως Python?

Εγώ είχα αρχίσει με Java αλλά δεν έφτασα πολύ μακριά και άλλαξα σε  C++ όταν μπήκα στον Πανελλήνιο Διαγωνισμό Πληροφορικής(τότε δεν υποστήριζαν την Java) οπότε η C++ ήταν η πρώτη γλώσσα που έμαθα σοβαρά. Η συγκεκριμένη είναι πολύ low-level για το Λύκειο. Το μόνο καλό με αυτήν είναι ότι θα μπορούσαν πολύ εύκολα μέσω της να εξηγήσουν πράγματα τύπου πως δουλεύει η μνήμη, τι κάνει ο linker, κ.λπ.

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

Πάντως, άποψή μου είναι πως θα έπρεπε να καταργηθεί η Ψευδογλώσσα και να διδάσκεται η Γλώσσα από την Β Λυκείου(αν και πάνω κάτω το ίδιο γίνεται και τώρα γιατί Ψευδογλώσσα ~= Γλώσσα).
Άμα θέλουν να αυξήσουν την ύλη ας εντάξουν τον αντικειμενοστραφή προγραμματισμό στη Γλώσσα και ας βάλουν παραπάνω θεωρία ή δυσκολότερα προβλήματα(Γιατί πιο πολύ το μάθημα θέλει να διδάξει τη σκέψη, παρά μια συγκεκριμένη γλώσσα).
Το A level, επίσης, είναι 50% θεωρία, 50% προγραμματισμός, βλ εδώ (https://www.cambridgeinternational.org/Images/415023-2020-syllabus.pdf).

Χθες σκευτόμουν να εντάξω bindings στη Γλώσσα ώστε να μπορεί κανείς να δημιουργήσει ιστοσελίδες 100% σε Γλώσσα και να βλέπει και ο μαθητής λίγο από web development.

Γενικά πιστεύω πως η Γλώσσα έχει πολύ potential άμα ξεκαθαριστούν οι ασάφειες και επεκταθεί λιγάκι. Δεν είναι σκοπός του Λυκείου να βγάζει προγραμματιστές και γι' αυτό το λόγο, παίρνοντας υπ' όψην μου και την κουλτούρα του ελληνικού σχολείου, πιστεύω πως η ένταξη πραγματικής γλώσσας προγραμματισμού στο πρόγραμμα σπουδών θα ήταν λάθος.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: alkisg στις 28 Νοε 2020, 11:34:51 μμ
Απλά το πλεονέκτημα γλωσσών όπως η Javascript και η Python είναι ότι είναι πιο απλές ακόμα και από την δική μας ψευδογλώσσα, οπότε σε αυτή την περίπτωση δεν έχει νόημα να χρησιμοποιείς ψευδοκώδικα παρά μόνο αν είναι χαλαρός και σε πιο υψηλό επίπεδο αφαίρεσης.

Οι Python/Javascript έχουν δυνατότητες για απλούστερη σύνταξη. Οι ΓΛΩΣΣΑ/Pascal/C είναι πιο κοντά στα βήματα που θα εκτελέσει τελικά ο υπολογιστής. Για το χτίσιμο της αλγοριθμικής σκέψης θα προτιμούσα να ξεκινήσω με απλές εντολές παρά με απλή σύνταξη. Π.χ. για την ΑΕΠΠ θα επέλεγα Python αλλά θα δίδασκα την επανάληψη με μετρητή, αρχική/τελική τιμή και βήμα. Τις σύνθετες εντολές όπως "for item in list" θα τις χρησιμοποιούσα μόνο αφότου η κλασσική επανάληψη είχε κατακτηθεί ως διδακτικός στόχος.

Σίγουρα η return, break (και όχι continue) είναι χρήσιμες.

Γιατί όχι η continue; Οι `break N` και `continue N`, όπου N ο αριθμός των βρόχων που θέλουμε να σπάσουμε, είναι απλές εντολές, αντιστοιχούν σε μια goto. Επίσης είναι δομημένες, γιατί αναφέρονται σε συγκεκριμένα σημεία του κώδικα, το τέλος και την αρχή του βρόχου, χωρίς να κάνουν χρήση ταμπελών (labels), που είναι το μελανό σημείο της goto.

Τέλος, σχετικά με τη σημασία της λέξης "ψευδογλώσσα". Για μένα, σημαίνει "μια χαλαρή γλώσσα με απλές εντολές σε σχέση με το πρόβλημα που πάω να λύσω". Το "set1 = set2 + set3" δεν είναι απλή εντολή όταν προσπαθώ να διδάξω ένωση από σετ. Μπορεί να δημιουργήσει παρανοήσεις στους μαθητές ότι γίνεται σε Ο[1]. Αν ένας επιστήμονας θέλει να εξηγήσει έναν αλγόριθμο σε κάποιον, μπορεί να τον πει σε C ή σε ΓΛΩΣΣΑ και ο συνομιλητής του που ξέρει Pascal να τον καταλάβει. Η ψευδογλώσσα μπορεί να είναι χαλαρή όσον αφορά τις δεσμευμένες λέξεις και τη σύνταξη, αλλά όχι στη σημασιολογία των εντολών. Όμως θεωρώ ότι αυτή η χαλαρότητα στη σύνταξη δεν έχει κανένα πλεονέκτημα στη διδασκαλία, είναι πιο κατανοητό αν διδάσκουμε με συγκεκριμένη σύνταξη παρά με χαοτική. Η χαλαρότητα θα έπρεπε να υπάρχει μόνο στη βαθμολόγηση, να μην μας απασχολεί αν ο μαθητής ξεχάστηκε και αντί για ΓΡΑΨΕ έβαλε Εμφάνισε.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: evry στις 29 Νοε 2020, 10:09:24 πμ
Άλκη υπάρχει το εξής θέμα το οποίο δεν το έχω ξεκαθαρίσει, πιο πολύ το βλέπω σαν την αιώνια διαμάχη bottom-up vs top-down.
Δηλαδή, θέλεις να μιλήσεις για επανάληψη. Τι είναι καλύτερο να δώσεις κάτι σαν το παρακάτω:

Κώδικας: Python
  1. primes = [1, 2, 3, 5, 7, 11]
  2. for number in primes:
  3.    print( number*number )

που ισοδυναμεί με:

Κώδικας: Pascal
  1. primes = [1, 2, 3, 5, 7, 11]
  2. Για κάθε αριθμό στους πρώτους μέχρι το 12:
  3.    Εμφάνισε το τετράγωνό του

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

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

Για την continue έχω την εντύπωση ότι μπορεί να προκαλέσει διδακτικά περισσότερα προβλήματα από αυτά που πάει να λύσει, αυτή είναι η δική μου αίσθηση ότι μπερδεύει τους μαθητές.
Ίσως να υπάρχουν κάποιες περιπτώσεις που χωρίς αυτήν τα πράγματα γίνονται πολύ δύσκολα αλλά δεν ξέρω αν έχει νόημα να την γνωρίζουν οι μαθητές.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: pgrontas στις 29 Νοε 2020, 11:31:15 πμ
Κατά τη γνώμη μου η συζήτηση χάνει την ουσία.

Το βασικό πλεονέκτημα της Python και της κάθε πραγματικής γλώσσας προγραμματισμού είναι ότι μπορεί να δώσει στους μαθητές εργαλεία για να είναι δημιουργικοί.
Για παράδειγμα, ο Κομνηνός δεν έκανε το διερμηνευτή σε (ψευδο)ΓΛΩΣΣΑ.
Φυσικά δεν μπορούν ούτε πρέπει να φτιάξουν οι μαθητές κάτι τέτοιο, αλλά με μια πραγματική γλώσσα θα μπορούσαν να υλοποιήσουν μικρά προγράμματα που να  τους ικανοποιούν την περιέργεια ή να καλύπτουν μικρές ανάγκες τους (ένα χαζό παράδειγμα: να οργανώσουν τις φωτογραφίες τους σε φακέλους ανάλογα με το έτος λήψης ή να πειραματιστούν με αλγόριθμους για σχεδιασμό γραφικών ή ό,τι άλλο θέλουν). Για να μην πούμε τι μπορούν να κάνουν στα μαθηματικά. Ή πόσο σημαντικό εφόδιο θα είναι στο πανεπιστήμιο.

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

Bonus points - food for thought:
Στην Α Λυκείου, επειδή τα παιδιά είχαν πρόβλημα να εγκαταστήσουν τα appinventor, alice κλπ. (τα οποία με την ευκαιρία θεωρώ ακατάλληλα και ότι αν παραμείνουν θα καταστρέψουν το μάθημα και θα μας ξανακάνουν επιλογής, αλλά αυτό είναι μια άλλη ιστορία) αποφάσισα  όσο κάνουμε τηλεεκπαίδευση να δείξω λίγο Python (με hands on προσέγγιση). Οι μαθητές μου δεν έχουν εμπειρία στον προγραμματισμό αλλά είναι φιλότιμα και έξυπνα παιδιά.
Στην εισαγωγή στην if λοιπόν έβαλα την κλασική άσκηση για τον χαρακτηρισμό επίδοσης μαθητή ανάλογα με το μέσο όρο του.
Οι μαθητές λοιπόν με εξέπληξαν και μου έμαθαν ότι το:

Παράθεση
if 18<mo<=20:
    print("Αριστα")

δουλεύει στην Python  Ναι δεν χρησιμοποιήσαν το and και θα πρέπει να τους κάνω σχετική συζήτηση του χρόνου, αλλά έλυσαν το πρόβλημα.
Αυτό δεν έχει αξία;
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 29 Νοε 2020, 01:18:45 μμ
Όλες οι γλώσσες μπορούν να χρησιμοποιηθούν στην εκπαίδευση, αρκεί ως εργαλεία να περιοριστούν στο εκπαιδευτικό αντικείμενο. Τα παραδείγματα που αποτελούν syntatic sugar όπως αυτό της python, δεν πρέπει να αποτελέσουν ανάχωμα σε μια διαδικασία ένταξης της Python. Δεν θα είναι η γλώσσα που θα δείχνει το τρόπο επίλυσης αλλά ο στόχος της διδακτικής ώρας, που δεν θα ζητάει την οποιαδήποτε δυνατή λύση με τη γλώσσα που θα υποδεικνύει αλλά βάσει των δικών της περιορισμών.

Η ΓΛΩΣΣΑ μπορεί να εμπλουτιστεί με αλφαριθμητικά σε ένα καλύτερο σύνολο συναρτήσεων και να μπει και η συνένωση. Επίσης μπορεί να εμπλουτιστεί με αντικείμενα (ας πάρει το παράδειγμα της Μ2000, όπου τα αντικείμενα τα ονομάζει Ομάδες).
Επίσης η continue και η break είναι απαραίτητες (για μένα και η goto αλλά ας το παραβλέψουμε για τη ΓΛΩΣΣΑ).

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

Τέλος για τις αριθμητικές συναρτήσεις μια Τυχαίος() λείπει!

Υ.Γ.
Ψευδογλώσσα και περιβάλλον εκτέλεσης δεν έχει νόημα. Θα πρέπει ο μαθητής να μετατρέπει το κώδικα της ψευδογλώσσας σε ΓΛΩΣΣΑ.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: George Eco στις 29 Νοε 2020, 03:25:07 μμ
Κατά τη γνώμη μου η συζήτηση χάνει την ουσία. Το βασικό πλεονέκτημα της Python και της κάθε πραγματικής γλώσσας προγραμματισμού είναι ότι μπορεί να δώσει στους μαθητές εργαλεία για να είναι δημιουργικοί.


Το βασικό πλεονέκτημα κάθε πραγματικής γλώσσας προγραμματισμού, έναντι ψευδογλώσσας κι ομοιάζουσας ΓΛΩΣΣΑΣ, είναι πως είναι πραγματική γλώσσα προγραμματισμού. Επιτέλους ας μη θεωρούμε τα παιδιά ανίκανα να καταλάβουν μια input() και μία print(). Τα έχουμε πει κι αλλού αυτά όμως.

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

Με άλλα λόγια μπορεί να είναι συνδετικός κρίκος σε STEM σενάρια προγραμματιστικά projects με διαθεματική προσέγγιση. Καλά τα λες.

Έχοντας αυτό το  αδιαμφισβήτητο πλεονέκτημα, η πραγματική γλώσσα δεν πρέπει να αποδείξει ότι είναι καλύτερη αλλά ότι δεν είναι χειρότερη. Δηλαδή ότι δεν θα λειτουργήσει απωθητικά για κάποιους μαθητές. Εκεί πρέπει να επικεντρωθεί η συζήτηση και η έρευνα.
Και στα δύο πιστεύω. Αλλά η δεύτερη οπτική που δίνεις συνάδελφε, είναι πιστεύω σημαντικό να τονισθεί. Παράλληλα με τα γιατί ναι, πρέπει να βλέπουμε και τα γιατί όχι, όταν θέλουμε να χρησιμοποιήσουμε ένα εργαλείο στην εκπαίδευση. Για Python ο λόγος γίνεται διότι Παγκοσμίως παρατηρείται το πόσο καλή είναι για διδασκαλία.


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

Θες τη προσωπική μου γνώμη; Αυτό έχει τη μεγαλύτερη αξία! Το αν θα πρέπει να προσαρμοστούν τα παιδιά στη Γ Λυκείου στο "Αυτό δε το χρησιμοποιούμε, είναι εκτός ύλης" είναι προφανές θέμα, θα γίνει, αλλά θα ακολουθήσουν την οδηγία, αναγνωρίζοντας το γιατί. Θα έχουν όμως και γνώση που άμεσα εφαρμόζεται στο πραγματικό κόσμο, πέρα από τα πλαίσια του μαθήματος. Γιατί να  μην έχει αξία ΑΥΤΟ; Κατ' εμέ θα έπρεπε να είσαι περήφανος που τους προσφέρεις το κάτι τις παραπάνω. Αν στη Β τους το μαζέψεις εξηγώντας τις ευκολίες της Python και τους λογικούς τελεστές και την "ορθότερη" κατά το μάθημα εναλλακτική... μικρό το κακό. Ωστόσο ναι! Έλυσαν ένα πρόβλημα ΜΟΝΑ ΤΟΥΣ! Δοκιμάζοντας τι μπορούν να κάνουν με το εργαλείο! Πού είναι το κακό;  ;)

Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: stam12 στις 02 Δεκ 2020, 08:52:17 πμ
Ερώτημα: Τι θα γίνει με τον "online" διερμηνευτή γλώσσας (https://www.pseudoglossa.gr), τώρα που καραργείται τo "flash player" μετά το Δεκέμβρη 2020; (στο "chrome" μου εμφανίζει σχετικό μήνυμα εδώ και καιρό)...
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: sstergou στις 03 Δεκ 2020, 12:03:47 πμ
Γεια σας συνάδελφοι παλιοί και νέοι!
komni μου φαίνεται αδιανόητο πως ένας μαθητής έφτιαξε ένα τέτοιο πρόγραμμα όπως το δικό σου. Είμαι περίεργος για το background σου :)

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

Είμαι ανοιχτός σε οποιαδήποτε πρόταση.

Ο κώδικας είναι open source - https://github.com/markoutso/pseudoglossa.gr.
Μπορώ να δώσω το image του server που το τρέχει (είναι το πιο φτηνό instance στο digital ocean),  με το σχήμα της βάσης αλλά χωρίς τα δεδομένα τα οποία θα διαγράψω.
Μπορώ να δώσω το domain, να βάλω linκ, να κάνω redirect ή οτιδήποτε άλλο.

Για τους επόμενους δύο μήνες (τουλάχιστον) δεν θα έχω χρόνο να εμπλακώ σε κάτι νέο.

Αν κάποιος από σας έχει κάποια ιδέα για το θέμα ευχαρίστως να βοηθήσω όσο μπορώ.
Όποιος θέλει να ασχοληθεί ας στείλει μήνυμα στο sstergou AT gmail.com. Το στέκι δεν το πολυεπισκέποτομαι πλέον.


Καλή συνέχεια!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 03 Δεκ 2020, 12:27:09 πμ
Είμαι περίεργος για το background σου :)
https://www.linkedin.com/in/komninoschat/

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

Είμαι ανοιχτός σε οποιαδήποτε πρόταση.

Ο κώδικας είναι open source - https://github.com/markoutso/pseudoglossa.gr.
Μπορώ να δώσω το image του server που το τρέχει (είναι το πιο φτηνό instance στο digital ocean),  με το σχήμα της βάσης αλλά χωρίς τα δεδομένα τα οποία θα διαγράψω.
Μπορώ να δώσω το domain, να βάλω linκ, να κάνω redirect ή οτιδήποτε άλλο.

Για τους επόμενους δύο μήνες (τουλάχιστον) δεν θα έχω χρόνο να εμπλακώ σε κάτι νέο.

Αν κάποιος από σας έχει κάποια ιδέα για το θέμα ευχαρίστως να βοηθήσω όσο μπορώ.
Όποιος θέλει να ασχοληθεί ας στείλει μήνυμα στο sstergou AT gmail.com. Το στέκι δεν το πολυεπισκέποτομαι πλέον.
Ευχαριστώ για την διάθεσή σας και για την δουλεία που έχετε κάνει πάνω στην ΑΕΠΠ! Σας έχω στείλει mail.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dpa2006 στις 05 Δεκ 2020, 09:24:10 πμ
Η ιδέα του wizard μπορεί να είναι ένα αρχικό μενού επιλογής. Δεν είναι κακή ιδέα. Κι εγώ δεν είμαι εναντίον ύπαρξης κάποιου εργαλείου, απλά παράθεσα την άποψή μου και την οπτική μου, για ένα φαινόμενο που χρόνια παρατηρώ. Το εργαλείο δε βοηθάει ποτέ. Ο τρόπος χρήσης από τον εκπαιδευτικό βοηθάει.

Συμφωνώ απόλυτα...!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: stam12 στις 06 Δεκ 2020, 10:09:10 μμ
Εδώ και κάποιο καιρό σκέφτομαι και εγώ το τι πρέπει να γίνει με το pseudoglossa.gr.
Το πρόβλημα είναι ότι έχω απομακρυνθεί τόσο πολύ από την εκπαίδευση που δεν ξέρω καν τι διδάσκεται στις μέρες μας.

Η αλήθεια είναι πως στο μάθημα της Β' ΓΕΛ τώρα με την εξ' αποστάσεως, βολεύει να χρησιμοποιούν οι μαθητές τον online διερμηνευτή γλώσσας. Οι περισσότεροι δε μπαίνουν στη διαδικασία να εγκαταστήσουν το διερμηνευτή στον υπολογιστή τους, οπότε δοκιμάζουν εκεί τους αλγόριθμους. Βέβαια μπαίνουν και πολλοί με φορητές συσκευές, και δε μπορούν να τον χρησιμοποιήσουν. Πάντως σίγουρα μια online έκδοση διερμηνευτή ψευδογλώσσας, που να λειτουργεί σε πολλές συσκευές, θα εξυπηρετούσε το μάθημα της Β, ειδικά τώρα με την εξ' αποστάσεως, για να κάνουν οι μαθητές τις ασκήσεις τους εκεί και να δοκιμάζουν τους αλγόριθμους. 
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 14 Ιαν 2021, 03:47:46 πμ
Υλοποίησα την Ψευδογλώσσα στο pseudo.gloglossa.gr (https://pseudo.gloglossa.gr).

Βοηθήστε με να βρω όποια bugs υπάρχουν και θα στείλω στον κ. Στέργου για να πάρουμε και το domain name ;D
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dpa2006 στις 15 Ιαν 2021, 08:21:16 πμ
Ξεκινάμε δοκιμές...
:) ;)
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: pgrontas στις 19 Ιαν 2021, 11:07:31 πμ
Συγχαρητήρια και πάλι Κομνηνέ!

Δες λίγο αυτό:
Εμφάνισε 'α' > 'β' ή όχι 7 mod 5 > Τ_Ρ(4)
Προκύπτει το σφάλμα:
 Περίμενα τον αριστερό τελεστέο να είναι τύπου Λογική, αλλά έλαβα μη συμβατό τύπο Αριθμός

Όμως η πράξη μπορεί να γίνει γιατί προηγείται ο συγκριτικός τελεστής από το όχι.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 01:35:00 μμ
Συγχαρητήρια και πάλι Κομνηνέ!

Δες λίγο αυτό:
Εμφάνισε 'α' > 'β' ή όχι 7 mod 5 > Τ_Ρ(4)
Προκύπτει το σφάλμα:
 Περίμενα τον αριστερό τελεστέο να είναι τύπου Λογική, αλλά έλαβα μη συμβατό τύπο Αριθμός

Όμως η πράξη μπορεί να γίνει γιατί προηγείται ο συγκριτικός τελεστής από το όχι.

Καλησπέρα λέει κάτι το σχολικό πάνω σε αυτό; Στις γλώσσες που γράφω εγώ το όχι έχει μεγαλύτερη προτεραιότητα από τους συγκρητικούς.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: geochatz στις 19 Ιαν 2021, 03:02:53 μμ
Συγχαρητήρια Κομνηνέ και σε ευχαριστούμε για την εντυπωσιακή δουλειά σου!
Σκέφτεσαι στην ψευδογλώσσα (και γιατί όχι και στην ΓΛΩΣΣΑ) να προσθέσεις και την συνάρτηση ΤΥΧΑΙΟΣ_ΑΚΕΡΑΙΟΣ(...,...);
Δίνει την ευκαιρία να ασχοληθούμε με αρκετές ενδιαφέρουσες ασκήσεις.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 03:26:10 μμ
Συγχαρητήρια Κομνηνέ και σε ευχαριστούμε για την εντυπωσιακή δουλειά σου!
Σκέφτεσαι στην ψευδογλώσσα (και γιατί όχι και στην ΓΛΩΣΣΑ) να προσθέσεις και την συνάρτηση ΤΥΧΑΙΟΣ_ΑΚΕΡΑΙΟΣ(...,...);
Δίνει την ευκαιρία να ασχοληθούμε με αρκετές ενδιαφέρουσες ασκήσεις.

Ευχαριστώ! Δεν την έχω ξανακούσει αυτή τη συνάρτηση.. Υπάρχει πουθενά στο σχολικό;
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: geochatz στις 19 Ιαν 2021, 03:54:02 μμ
Ευχαριστώ! Δεν την έχω ξανακούσει αυτή τη συνάρτηση.. Υπάρχει πουθενά στο σχολικό;
Η αλήθεια είναι ότι δεν αναφέρεται στο σχολικό αλλά είναι κρίμα που δεν υπάρχει.
Εδώ (https://alkisg.mysch.gr/steki/index.php?topic=6412.0) και μια παλαιότερη συζήτηση επί του θέματος.
Θα μου πεις, βέβαια, άμα προσθέταμε όποια συνάρτηση του κατέβει του καθενός, θα χάναμε τη μπάλα...
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: pgrontas στις 19 Ιαν 2021, 03:54:40 μμ
Καλησπέρα λέει κάτι το σχολικό πάνω σε αυτό; Στις γλώσσες που γράφω εγώ το όχι έχει μεγαλύτερη προτεραιότητα από τους συγκρητικούς.

Ναι, και στην ΓΛΩΣΣΑ και στην ΨΕΥΔΟΓΛΩΣΣΑ, οι λογικοί τελεστές (άρα και το όχι) έπονται των συγκριτικών (σελ. 139 Γ Λυκείου και σελ 35 Β Λυκείου).
Με την ευκαιρία,  Κομνηνέ τι τάξη πας (φυσικά αν θες απαντάς).
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 04:53:51 μμ
Πάλι έσβησαν την απάντησή μου!
Έδωσα την λύση στο πρόβλημα και αυτός που το έσβησε απλά δεν το κατάλαβε!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 05:30:26 μμ
Η αλήθεια είναι ότι δεν αναφέρεται στο σχολικό αλλά είναι κρίμα που δεν υπάρχει.
Εδώ (https://alkisg.mysch.gr/steki/index.php?topic=6412.0) και μια παλαιότερη συζήτηση επί του θέματος.
Θα μου πεις, βέβαια, άμα προσθέταμε όποια συνάρτηση του κατέβει του καθενός, θα χάναμε τη μπάλα...

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

Παρόλα αυτά είναι πολύ εύκολο για κάποιον να κάνει extend τον διερμηνευτή μου και να βάλει δικές του συναρτήσεις με λίγες γνώσεις Javascript/Typescript(π.χ. εδώ η υλοποίηση του Τ_Ρ (https://github.com/komninoschat/glo/blob/develop/modules/library-pseudoglossa/src/squareRoot.ts)). Ίσως βάλω επιλογή να γίνεται αυτό από το web interface για να μην χρειάζεται clone και redeploy.

Ναι, και στην ΓΛΩΣΣΑ και στην ΨΕΥΔΟΓΛΩΣΣΑ, οι λογικοί τελεστές (άρα και το όχι) έπονται των συγκριτικών (σελ. 139 Γ Λυκείου και σελ 35 Β Λυκείου).
Με την ευκαιρία,  Κομνηνέ τι τάξη πας (φυσικά αν θες απαντάς).

Οκ δεκτό! Θα το αλλάξω αύριο το πρωί πριν τις 8.
Γ λυκείου πάω σε (ιδιωτικό πλέον..) ΓΕΛ στον Άλιμο.

Πάλι έσβησαν την απάντησή μου!
Έδωσα την λύση στο πρόβλημα και αυτός που το έσβησε απλά δεν το κατάλαβε!

Δεν νομίζω να σου σβήνει κανείς τις απαντήσεις.. Κάποιο bug θα ήταν.

Παράθεση από: bugman
Το Όχι λειτουργεί όπως και το μείον στις αριθμητικές εκφράσεις. Εφαρμόζεται στο πρώτο όρο που γυρίζει τύπο λογικό.
Για να το πετύχεις αυτό θες ένα flag το οποίο μόνο το Όχι θα το κάνει true. Όταν λοιπόν το flag είναι true τότε η διερμηνεία εκτελείται μέχρι εκεί που η έκφραση δίνει το πρώτο λογικό αποτέλεσμα.

Το όχι ψευδής και όχι ψευδής
λειτουργεί ως (όχι ψευδής) ή (όχι ψευδής) δηλαδή δίνει αληθής
και όχι ως
όχι (ψευδής ή όχι ψευδής)
που θα έδινε ψευδής
Δεν καταλαβαίνω που χρησιμοποιείς τα flags στην συντακτική ανάλυση.. Ο διερμηνευτής μου κάνει μια απλή αναδρομούλα(βλ. συνακτική ανάλυση για το unary + (https://github.com/komninoschat/glo/blob/develop/modules/parser/src/Parser.ts#L1561)).

Το παράδειγμα που έδωσες νομίζω είναι ασάφεια γιατί δεν προσδιορίζει το σχολικό προτεραιότητα ανάμεσα στους λογικούς συντελεστής( @alkisg ισχύει;)
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 05:38:46 μμ
Εκ παραδρομής το ΚΑΙ πρέπει να γίνει Ή εδώ: Το όχι ψευδής Ή όχι ψευδής

λειτουργεί ως (όχι ψευδής) ή (όχι ψευδής) δηλαδή δίνει αληθής
και όχι ως
όχι (ψευδής ή όχι ψευδής)
που θα έδινε ψευδής

Δεν είναι ασάφεια. Δες τις παρενθέσεις και θα το καταλάβεις!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 05:49:59 μμ
Κοίταξα τον κώδικά σου:
Έχεις το private atom(): AST.AST {  .... }
Στο οποίο παίζουν μόνο δυο unary τελεστές, οι οποίοι γυρνούν ενδιάμεσα AST, όπως το   AST.UnaryPlusAST(atom).inheritPositionFrom(....) και το   AST.UnaryMinusAST(atom).inheritPositionFrom(...)

Ομοίως πρέπει να γίνει για το Not που το έχει return new AST.NotAST(this.atom()).inheritPositionFrom(savedToken)
(το flag πρέπει να κόβει το ενδιάμεσο AST όταν ολοκληρώσει μια λογική έκφραση )

Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 06:01:48 μμ
Εκ παραδρομής το ΚΑΙ πρέπει να γίνει Ή εδώ: Το όχι ψευδής Ή όχι ψευδής

λειτουργεί ως (όχι ψευδής) ή (όχι ψευδής) δηλαδή δίνει αληθής
και όχι ως
όχι (ψευδής ή όχι ψευδής)
που θα έδινε ψευδής

Δεν είναι ασάφεια. Δες τις παρενθέσεις και θα το καταλάβεις!

Αυτό εννοώ ασάφεια. Η έκφραση "όχι ψευδής Ή όχι ψευδής" έχει δύο ερμηνίες:
1) (όχι ψευδής) ή (όχι ψευδής)    <-- το όχι έχει μεγαλύτερη προτεραιότητα από το η
2) όχι (ψευδής ή όχι ψευδής)      <-- το η έχει μεγαλύτερη προτεραιότητα από το όχι
Και από όσο ξέρω το σχολικό δεν ορίζει προτεραιότητα μεταξύ όχι και η

Κοίταξα τον κώδικά σου:
Έχεις το private atom(): AST.AST {  .... }
Στο οποίο παίζουν μόνο δυο unary τελεστές, οι οποίοι γυρνούν ενδιάμεσα AST, όπως το   AST.UnaryPlusAST(atom).inheritPositionFrom(....) και το   AST.UnaryMinusAST(atom).inheritPositionFrom(...)

Ομοίως πρέπει να γίνει για το Not που το έχει return new AST.NotAST(this.atom()).inheritPositionFrom(savedToken)
Ναι ακριβώς

(το flag πρέπει να κόβει το ενδιάμεσο AST όταν ολοκληρώσει μια λογική έκφραση )
Όχι δεν χρειάζεται κανένα flag, μόνο του το απο πάνω δουλεύει.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 06:05:25 μμ
Το NOT προηγείται γιατί είναι unary operator.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 06:12:53 μμ
Το NOT προηγείται γιατί είναι unary operator.

Που το γράφει αυτό το σχολικό;;

Για προτεραιότητα λέει σελ. 167
"Η ιεραρχία των λογικών τελεστών είναι μικρότερη των αριθμητικών."
"Ακόμη, οι λογικοί τελεστές έχουν χαμηλότερη ιεραρχία από τους συγκριτικούς."
Δεν μιλάει όμως για προτεραιότητα μεταξύ ή και όχι.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 07:01:16 μμ
Ας μην το λέει, εδώ δεν έχουμε προτεραιότητα μεταξύ τελεστών, αλλά το τι είναι unary operator και πώς τον χειριζόμαστε.
ρίξε μια ματιά εδώ https://en.wikipedia.org/wiki/Unary_operation
Η ασάφεια έχει να κάνει με τα Η και ΚΑΙ και όχι με το ΌΧΙ.
Το όχι παίρνει λογική έκφραση και μόνο, αλλά αν η έκφραση έχει δυο ή περισσότερους όρους, όπως κάθε unary operator εφαρμόζεται στο πρώτο όρο.
Πχ στο -2*3 το - είναι μοναδιαίος τελεστής και εφαρμόζεται στο 2. Ομοίως το -2*-3 έχει δυο μοναδιαίους και εφαρμόζονται πριν τον τελεστή *.
Ασφαλώς μπορεί κανείς να μην έχει στο διερμηνευτή μια τόσο συγκροτημένη εκτέλεση εκφράσεων και να βάζει παντού παρενθέσεις. Νομίζω όμως ότι η αιτιολογημένη άποψη, ότι το Όχι είναι μοναδιαίος τελεστής (κάτι που δεν φαίνεται στο κώδικά σου), θα έλυνε το πρόβλημα της μη καθορισμένης αναφοράς στο βιβλίο περί των προτεραιοτήτων των τελεστών Ή, ΚΑΙ, ΌΧΙ.

Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 07:39:23 μμ
@bugman

Δεν ισχύει τίποτα απ' όσα έχεις γράψει.

Παρόλο που στο -2*-3 έχει παραπάνω προτεραιότητα το -, στο -obj.prop (στην C) έχει παραπάνω προτεραιότητα ο τελεστής . και διερμηνεύεται σαν -(obj.prop) και όχι σαν (-obj).prop.

Εννοείται πως υπάρχει προτεραιότητα ανάμεσα και στους unary operators.

Όσον αφορά την υλοποίηση μου λες ότι δεν έχω υλοποιήσει το Νot ως unary operator ενώ ένα ποστ πριν ανέφερες το παρακάτω κομμάτι κώδικά μου:
AST.NotAST(this.atom()).inheritPositionFrom(savedToken)
Εδώ βλέπουμε πως το AST node του Not παίρνει ένα AST node ως παράμετρο και όχι 2 άρα είναι unary operator. Δεν ξέρω καν πως μπορείς να υλοποιήσεις το Not και να μην είναι unary δεν βγάζει λογική.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: alkisg στις 19 Ιαν 2021, 07:55:47 μμ
@bugman, αφού έχουμε πει τόσες φορές ότι δεν πρέπει να δίνεις συμβουλές για τα μαθήματα, γιατί επιμένεις; Δεν είναι ένα τεχνολογικό φόρουμ σαν το insomnia όπου ο καθένας λέει το μακρύ και το κοντό του, εδώ υπάρχουν διακριτοί ρόλοι, οι καθηγητές και οι μαθητές, και αυτά που γράφονται πρέπει να είναι υπεύθυνα γιατί μπορεί να επηρεάσουν το μέλλον των μαθητών. Οι σκέψεις σου μπορεί να ισχύουν σε Visual Basic κλπ, αλλά μπορεί να είναι τελείως λάθος στα πλαίσια των μαθημάτων που διδάσκουμε.

@komni, γενικά μην επηρεάζεσαι από αυτά που γράφει ο bugman, δεν είναι καθηγητής. Η προτεραιότητα των τελεστών έχει πλέον διευκρινιστεί: https://alkisg.mysch.gr/steki/index.php?topic=7661.msg84995#msg84995
Αυτά που γράφει ο pgrontas ισχύουν και στον Διερμηνευτή μου και στην Python, οπότε ναι αν έχεις όρεξη καλό είναι να το διορθώσεις.

Κώδικας: Python
  1. $ python3 -c "import math; print('α'>'β' or not 7 // 5 > math.sqrt(4))"
  2. True
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 08:01:15 μμ
το -obj δεν έχει καμία έννοια, επειδή το - δεν εφαρμόζεται στο αντικείμενο.
Ομοίως το Όχι 7 mod 5 > Α_Ρ(4) δεν μπορεί να είναι (Όχι 7) ούτε (Όχι 7 mod 5)... κ.ο.κ. Πρέπει η δεξιά έκφραση να είναι τύπου λογικός. Το ζήτημα είναι μέχρι που; Δηλαδή αν το Όχι 7 mod 5>Α_Ρ(4) είχε συνέχεια το Και (....) το ΚΑΙ θα ήταν μέσα ή όχι στην δεξιά έκφραση του Όχι; Κατά την γνώμη δεν είναι. Όπως πχ στο -3-4 το πρώτο - είναι unary, ενώ το δεύτερο (-) δεν είναι, οπότε έχουμε (-3)-(4) και όχι -(3-(4))

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

Alkis, εδώ συζητάμε για ένα λάθος στο διερμηνευτή και αυτό είναι τεχνικό θέμα. Αυτό που δείχνεις με την python, είναι σωστό, όπως και αν το έβαζες και στη Μ2000, αλλά στο διερμηνευτή του komni, βγαίνει λάθος!
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 19 Ιαν 2021, 10:47:45 μμ
Διόρθωσα το bug με το οχι
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 19 Ιαν 2021, 11:55:46 μμ
Διόρθωσα το bug με το οχι
Ωραίος!

Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: dski στις 20 Ιαν 2021, 08:01:14 μμ
Αφού σε συγχαρώ για την εξαιρετική δουλειά σου και σε ευχαριστήσω για τη βοήθειά που μας παρέχεις με την δημιουργία του διερμηνευτή για την Ψευδογλώσσα, θα ήθελα να προτείνω, αν δεν είναι δύσκολο, να προστεθεί σε κάποιο σημείο (π.χ. στα δεξιά της σελίδας) μια λίστα με τις εντολές της Ψευδογλώσσας ώστε να μπορούν να εισαχθούν με ένα κλικ στον αλγόριθμο. Αυτό υπάρχει στο παλιό pseudoglossa.gr αλλά και στον Διερμηνευτή της Γλώσσας/Ψευδογλώσσα και θεωρώ ότι βοηθάει τους μαθητές καθώς δεν είναι όλοι γρήγοροι με την πληκτρολόγηση στα ελληνικά, ειδικά όταν πρόκειται για εντολές προγραμματισμού, ενώ, επιπλέον, η λίστα νομίζω τους βοηθάει και να τις θυμούνται.
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: komni στις 30 Ιαν 2021, 07:56:57 μμ
Αφού σε συγχαρώ για την εξαιρετική δουλειά σου και σε ευχαριστήσω για τη βοήθειά που μας παρέχεις με την δημιουργία του διερμηνευτή για την Ψευδογλώσσα, θα ήθελα να προτείνω, αν δεν είναι δύσκολο, να προστεθεί σε κάποιο σημείο (π.χ. στα δεξιά της σελίδας) μια λίστα με τις εντολές της Ψευδογλώσσας ώστε να μπορούν να εισαχθούν με ένα κλικ στον αλγόριθμο. Αυτό υπάρχει στο παλιό pseudoglossa.gr αλλά και στον Διερμηνευτή της Γλώσσας/Ψευδογλώσσα και θεωρώ ότι βοηθάει τους μαθητές καθώς δεν είναι όλοι γρήγοροι με την πληκτρολόγηση στα ελληνικά, ειδικά όταν πρόκειται για εντολές προγραμματισμού, ενώ, επιπλέον, η λίστα νομίζω τους βοηθάει και να τις θυμούνται.

Καλησπέρα και ευχαριστώ για τα καλά σας λόγια.

Μου το έχουν προτείνει ξανά αυτό αλλά αποφάσισα να μην το υλοποιήσω πρώτον διότι θα κάνει το UI της ιστοσελίδας πολύ πιο bloated και επίσης γιατί οι μαθητές θα πρέπει να γνωρίζουν τις εντολές απ' έξω.

το -obj δεν έχει καμία έννοια, επειδή το - δεν εφαρμόζεται στο αντικείμενο.
Ομοίως το Όχι 7 mod 5 > Α_Ρ(4) δεν μπορεί να είναι (Όχι 7) ούτε (Όχι 7 mod 5)... κ.ο.κ. Πρέπει η δεξιά έκφραση να είναι τύπου λογικός. Το ζήτημα είναι μέχρι που; Δηλαδή αν το Όχι 7 mod 5>Α_Ρ(4) είχε συνέχεια το Και (....) το ΚΑΙ θα ήταν μέσα ή όχι στην δεξιά έκφραση του Όχι; Κατά την γνώμη δεν είναι. Όπως πχ στο -3-4 το πρώτο - είναι unary, ενώ το δεύτερο (-) δεν είναι, οπότε έχουμε (-3)-(4) και όχι -(3-(4))

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

Alkis, εδώ συζητάμε για ένα λάθος στο διερμηνευτή και αυτό είναι τεχνικό θέμα. Αυτό που δείχνεις με την python, είναι σωστό, όπως και αν το έβαζες και στη Μ2000, αλλά στο διερμηνευτή του komni, βγαίνει λάθος!


Η C++ μας αφήνει να κάνουμε overload unary operators:

Κώδικας: [Επιλογή]
#include <iostream>

class Obj {
    public:
        double prop;

    Obj operator-() {
        Obj* newObj = new Obj();
        newObj->prop = 1 / this->prop;
       
        return *newObj;
    }
};

int main()
{
    Obj obj = *new Obj();
    obj.prop = 10;

    std::cout << (-obj).prop << std::endl; // 0.1
    std::cout << -obj.prop << std::endl;   // -10
   
    return 0;
}
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: George Eco στις 30 Ιαν 2021, 10:51:59 μμ
Κομνηνέ λεβέντη μου, στο βιβλίο Β Λυκείου έχει εντολή Επανάλαβε μέχρις ότου (εκτός του Αρχή_Επανάληψης) για ψευδογλώσσα, που αναγνωρίζεται στο διερμηνευτή σου ως δεσμευμένη λέξη, αλλά δε κλείνει σωστά με Μέχρις_ότου όπως θα έπρεπε. Για τσέκαρέ το μια! ;)

Αλγόριθμος Παράδειγμα

χ <- 0
Επανάλαβε
χ <- χ+1
ΓΡΑΨΕ χ
Μέχρις_ότου χ > 10

Τέλος Παράδειγμα
Τίτλος: Απ: Υλοποίηση Ψευδογλώσσας
Αποστολή από: bugman στις 30 Ιαν 2021, 11:05:30 μμ
@komni,
συμφωνώ ότι όταν το ορίσεις (και γίνεται να το ορίσεις στη γλώσσα που χρησιμοποιείς) το έχεις. Και η Μ2000 που έχω γράψει ορίζει τελεστές στα αντικείμενά της, αν και έχει το περιορισμό ότι οι πράξεις γίνονται με αντικείμενα δηλαδή δεν μπορείς να κάνεις Α * 10  (όπου Α αντικείμενο και 10 αριθμός), αλλά μπορείς να κάνεις το Α*Β (να είναι δηλαδή το Α και Β αντικείμενα).
Όπως σου έγραψα το -obj δεν έχει νόημα ενώ το -obj.propertyA έχει, γιατί για το δεύτερο εφόσον είναι αριθμός έχει νόημα, ενώ για το πρώτο πρέπει να το ορίσεις!

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