Υλοποίηση Ψευδογλώσσας

Ξεκίνησε από komni, 27 Νοε 2020, 01:27:39 ΜΜ

« προηγούμενο - επόμενο »

Βοηθάει η ύπαρξη διερμηνευτή για την Ψευδογλώσσα τον μαθητή;

Ναι
17 (94.4%)
Όχι
1 (5.6%)

Σύνολο ψηφοφόρων: 18

komni

Καλησπέρα σε όλους,

Με αφορμή τη συζήτηση που προέκυψε στο post μου για τον διερμηνευτή για την Ψευδογλώσσα δημιουργώ αυτό ώστε να συζητήσουμε αν θα πρέπει ή όχι να υλοποιείται η Ψευδογλώσσα.

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

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

Μπορείτε να δείτε τις απαντήσεις εδώ

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

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

Έχω βάλει μια ψηφοφορία σε αυτό το post ώστε να μπορείτε να ψηφίσετε επί του θέματος. Αν αποφασίσετε να το ψηφήσετε καλό θα ήταν επίσης να απαντήσετε στο post με κάποια αιτιολόγηση ώστε να μπορέσουμε να καταλήξουμε κάπου.

dimpapadop

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

Γνώμη μου είναι ότι πρέπει να υπάρχει αν και συμμερίζομαι την άποψη σου.

dski

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

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

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

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


dpa2006

Κατά τη γνώμη μου πρέπει να υλοποιείται η Ψευδογλώσσα είτε με τον ίδιο είτε με διαφορετικο διερμηνευτή είτε με ένα Wizard που να ρωτάει ποιο από τα δύο θέλεις να εκτελέσεις,Ψευδογλώσσα ή ΓΛΩΣΣΑ
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

George Eco

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

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



Παράθεση από: dpa2006 στις 27 Νοε 2020, 05:59:07 ΜΜ
Κατά τη γνώμη μου πρέπει να υλοποιείται η Ψευδογλώσσα είτε με τον ίδιο είτε με διαφορετικο διερμηνευτή είτε με ένα Wizard που να ρωτάει ποιο από τα δύο θέλεις να εκτελέσεις,Ψευδογλώσσα ή ΓΛΩΣΣΑ

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

komni

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

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

Παράθεση από: dski στις 27 Νοε 2020, 05:27:13 ΜΜ
Επειδή είμαι από αυτούς που σε παρότρυναν να φτιάξεις διερμηνευτή και για την Ψευδογλώσσα:

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

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

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


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

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

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

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



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

Μάλλον αυτό που θα γίνει τελικά είναι πως θα υλοποιηθεί σε ξεχωριστό domain με διαφορετικό design και κουμπί που θα εξηγεί πως η Ψευδογλώσσα είναι ψευδοκώδικας και τι σημαίνει αυτο.

George Eco

Παράθεση από: komni στις 27 Νοε 2020, 11:47:59 ΜΜ
Μάλλον αυτό που θα γίνει τελικά είναι πως θα υλοποιηθεί σε ξεχωριστό domain με διαφορετικό design και κουμπί που θα εξηγεί πως η Ψευδογλώσσα είναι ψευδοκώδικας και τι σημαίνει αυτο.

Δεν έχω λόγια να εκφράσω το πόσα μπράβο θέλω να σου πω. Από εμένα εύγε!

evry

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

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

ΥΓ. Ξέχασα ότι η ψευδογλώσσα μας έχει και στατικές δομές!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

pgrontas

komni,
Πραγματικά συγχαρητήρια και respect για τη δουλειά σου.

Bonus points για το dark theme :)
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gthal

Ευριπίδη ξέχασες τη διαφορά στο με_βήμα  έναντι του ΜΕ ΒΗΜΑ    :D
Φιλικά,
Γιώργος Θαλασσινός

evry

Είσαι απίστευτος!!!
Παράθεση από: gthal στις 28 Νοε 2020, 07:20:06 ΜΜ
Ευριπίδη ξέχασες τη διαφορά στο με_βήμα  έναντι του ΜΕ ΒΗΜΑ    :D
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

komni

@evry Ευχαριστώ για το feedback!

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

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

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

@pgrontas Ευχαριστώ!

evry

Το πρόβλημα δεν είναι η ψευδογλώσσα που είναι λογικό να χρησιμοποιείται για διδακτικούς λόγους αλλά η απουσία πραγματικής γλώσσας προγραμματισμού για την υλοποίηση πραγματικών σύγχρονων εφαρμογών. Απλά το πλεονέκτημα γλωσσών όπως η Javascript και η Python είναι ότι είναι πιο απλές ακόμα και από την δική μας ψευδογλώσσα, οπότε σε αυτή την περίπτωση δεν έχει νόημα να χρησιμοποιείς ψευδοκώδικα παρά μόνο αν είναι χαλαρός και σε πιο υψηλό επίπεδο αφαίρεσης.
Στην Σκωτία από όσο θυμάμαι όταν το είχα ψάξει επιτρέπουν στους καθηγητές να χρησιμοποιήσουν οποία γλώσσα θέλουν από Scratch και App Inventor μέχρι C++ αλλά στο τέλος εξετάζονται σε κοινή ψευδογλώσσα την Haggis.
Δες εδώ , είναι χειρότερη από τη δική μας:
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 σε συνδυασμό με ψευδογλώσσα, δεν ξέρω αν τα έχουν αλλάξει τελευταία.

Παράθεση από: komni στις 28 Νοε 2020, 09:17:04 ΜΜ
Όντως, κανονικά το συντακτικό μιας ψευδογλώσσας θα έπρεπε να ήταν αρκετά loose. Παρόλα αυτά, ακόμα και στο Αγγλικό σύστημα εκπαίδευσης, ο ψευδοκώδικας που έχουν δημιουργήσει ορίζεται αυστηρά.

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

Δεν ξέρω ποια είναι η άποψή σου σε αυτό.
Εσύ ποια πραγματική γλώσσα θα προτιμούσες να χρησιμοποιούσαν οι μαθητές στην εκπαίδευση?
Υποθέτω ότι δεν ξεκίνησες κατευθείαν από Typescript, σίγουρα έχεις κάνει C, C++ και ίσως Python?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

komni

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Στις άλλες χώρες χρησιμοποιούν ψευδογλώσσα σε συνδυασμό με μια πραγματική γλώσσα προγραμματισμού, π.χ. Python, Javascript σε Αμερική, Καναδά ή Java στο IB που στα θέματα αυτά είναι πιο πίσω.

Στις άλλες χώρες, όμως, υπάρχει γενικώς μεγαλύτερη ύλη στα μαθήματα του Λυκείου. Για παράδειγμα, το A level Further Math (ζητήται από όλα τα σοβαρά πανεπιστήμια για σπουδές πληροφορικής/μαθηματικών) έχει ύλη πρώτου έτους Ελλάδας και πολύ στατιστική και πιθανότητες! Ακόμα και το plain A level Math έχει παραπάνω όγκο ύλης από τα μαθηματικά στο ελληνικό Λύκειο...

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Στα A Levels νομίζω έχει πολλές επιλογές C, Java, Python σε συνδυασμό με ψευδογλώσσα, δεν ξέρω αν τα έχουν αλλάξει τελευταία.

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

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Σίγουρα η return, break (και όχι continue) είναι χρήσιμες.

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

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Δεν ξέρω ποια είναι η άποψή σου σε αυτό.
Εσύ ποια πραγματική γλώσσα θα προτιμούσες να χρησιμοποιούσαν οι μαθητές στην εκπαίδευση?
Υποθέτω ότι δεν ξεκίνησες κατευθείαν από Typescript, σίγουρα έχεις κάνει C, C++ και ίσως Python?

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

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

Πάντως, άποψή μου είναι πως θα έπρεπε να καταργηθεί η Ψευδογλώσσα και να διδάσκεται η Γλώσσα από την Β Λυκείου(αν και πάνω κάτω το ίδιο γίνεται και τώρα γιατί Ψευδογλώσσα ~= Γλώσσα).
Άμα θέλουν να αυξήσουν την ύλη ας εντάξουν τον αντικειμενοστραφή προγραμματισμό στη Γλώσσα και ας βάλουν παραπάνω θεωρία ή δυσκολότερα προβλήματα(Γιατί πιο πολύ το μάθημα θέλει να διδάξει τη σκέψη, παρά μια συγκεκριμένη γλώσσα).
Το A level, επίσης, είναι 50% θεωρία, 50% προγραμματισμός, βλ εδώ.

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

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

alkisg

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Απλά το πλεονέκτημα γλωσσών όπως η Javascript και η Python είναι ότι είναι πιο απλές ακόμα και από την δική μας ψευδογλώσσα, οπότε σε αυτή την περίπτωση δεν έχει νόημα να χρησιμοποιείς ψευδοκώδικα παρά μόνο αν είναι χαλαρός και σε πιο υψηλό επίπεδο αφαίρεσης.

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

Παράθεση από: evry στις 28 Νοε 2020, 09:49:37 ΜΜ
Σίγουρα η return, break (και όχι continue) είναι χρήσιμες.

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

Τέλος, σχετικά με τη σημασία της λέξης "ψευδογλώσσα". Για μένα, σημαίνει "μια χαλαρή γλώσσα με απλές εντολές σε σχέση με το πρόβλημα που πάω να λύσω". Το "set1 = set2 + set3" δεν είναι απλή εντολή όταν προσπαθώ να διδάξω ένωση από σετ. Μπορεί να δημιουργήσει παρανοήσεις στους μαθητές ότι γίνεται σε Ο[1]. Αν ένας επιστήμονας θέλει να εξηγήσει έναν αλγόριθμο σε κάποιον, μπορεί να τον πει σε C ή σε ΓΛΩΣΣΑ και ο συνομιλητής του που ξέρει Pascal να τον καταλάβει. Η ψευδογλώσσα μπορεί να είναι χαλαρή όσον αφορά τις δεσμευμένες λέξεις και τη σύνταξη, αλλά όχι στη σημασιολογία των εντολών. Όμως θεωρώ ότι αυτή η χαλαρότητα στη σύνταξη δεν έχει κανένα πλεονέκτημα στη διδασκαλία, είναι πιο κατανοητό αν διδάσκουμε με συγκεκριμένη σύνταξη παρά με χαοτική. Η χαλαρότητα θα έπρεπε να υπάρχει μόνο στη βαθμολόγηση, να μην μας απασχολεί αν ο μαθητής ξεχάστηκε και αντί για ΓΡΑΨΕ έβαλε Εμφάνισε.