Γενικό Λύκειο > Β΄ Λυκείου

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

<< < (3/10) > >>

evry:
Είσαι απίστευτος!!!

--- Παράθεση από: gthal στις 28 Νοε 2020, 07:20:06 μμ ---Ευριπίδη ξέχασες τη διαφορά στο με_βήμα  έναντι του ΜΕ ΒΗΜΑ    :D

--- Τέλος παράθεσης ---

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?

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 να τον καταλάβει. Η ψευδογλώσσα μπορεί να είναι χαλαρή όσον αφορά τις δεσμευμένες λέξεις και τη σύνταξη, αλλά όχι στη σημασιολογία των εντολών. Όμως θεωρώ ότι αυτή η χαλαρότητα στη σύνταξη δεν έχει κανένα πλεονέκτημα στη διδασκαλία, είναι πιο κατανοητό αν διδάσκουμε με συγκεκριμένη σύνταξη παρά με χαοτική. Η χαλαρότητα θα έπρεπε να υπάρχει μόνο στη βαθμολόγηση, να μην μας απασχολεί αν ο μαθητής ξεχάστηκε και αντί για ΓΡΑΨΕ έβαλε Εμφάνισε.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση