Τι αλλαγές θα προτείναμε ώστε να εξορθολογιστεί η ύλη μας;

Ξεκίνησε από Καρκαμάνης Γεώργιος, 19 Ιουλ 2019, 07:08:22 ΜΜ

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

evry

@George Eco
Σε επίπεδο σχεδίασης αλγορίθμου τι κερδίζει ένας μαθητής με την Επίλεξε. Δηλαδή τι επιπλέον κέρδος έχει το οποίο να δικαιολογεί τον χρόνο που θα χάσει για την εξοικείωση με αυτή?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: evry στις 27 Ιουλ 2019, 01:23:30 ΜΜ
@George Eco
Σε επίπεδο σχεδίασης αλγορίθμου τι κερδίζει ένας μαθητής με την Επίλεξε. Δηλαδή τι επιπλέον κέρδος έχει το οποίο να δικαιολογεί τον χρόνο που θα χάσει για την εξοικείωση με αυτή?


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

ilias_s

Παράθεση από: Νίκος Αδαμόπουλος στις 27 Ιουλ 2019, 10:34:23 ΜΜ
... Έλα όμως που θα προβληματιστούν τελικά αφού υπάρχουν γκρίζα σημεία σε αυτήν!

Η ΕΠΙΛΕΞΕ, σε σύγκριση με την ΑΝ, μάλλον θέτει περισσότερους περιορισμούς. Πάντα ήθελα να πιστεύω πως αυτός ήταν ο κύριος λόγος που βγήκε εκτός ύλης και όχι επειδή απλά δεν προσφέρει το "κάτι παραπάνω". Ναι, είναι πιο "συμπαγής" στην ανάγνωση κώδικα όταν μιλάμε για πολλές τιμές στις περιπτώσεις της ΕΠΙΛΕΞΕ αλλά υπάρχουν και περιορισμοί (π.χ αν θυμάμαι καλά στη ΓΛΩΣΣΑ δεν παίρνει σύνθετες συνθήκες στη λίστα τιμών).

Έχουμε καταλήξει επίσημα τι παίζει με την ΕΠΙΛΕΞΕ ή απλά θα μας ταλαιπωρήσει περισσότερο; Αυτό είναι που με ανησυχεί...


Obelix

Παράθεση από: evry στις 26 Ιουλ 2019, 07:34:45 ΜΜ
Σχόλιο για επίλεξε
Πραγματικά δεν μπορώ να καταλάβω γιατί πρέπει να μπει η Επίλεξε. Δηλαδή τι πρόβλημα λύνουμε με αυτή τη δομή? Θυμάστε τι προβλήματα και ασάφειες δημιουργούσε με τα διαστήματα  <4 και κάτι τέτοιες βλακείες?
Αφού έχουμε την πολλαπλή επιλογή Αν...Αλλιώς_αν , ποιο το νόημα της Επίλεξε παιδαγωγικά? Σε προγραμματιστικό επίπεδο υποτίθεται ότι σε κάποιες περιπτώσεις είναι πιο γρήγορη, όμως με την εξέλιξη που υπάρχει στην βελτιστοποίηση των μεταγλωττιστών δεν ξέρω αν έχει νόημα.
Ασχολούμαστε λοιπόν με την Επίλεξε και τα συντακτικά της προβλήματα. Κατά τα άλλα κάνουμε Αλγοριθμική όμως και όχι προγραμματισμό έτσι?
Α μην το ξεχάσω ο δημιουργός της Python έχει κάνει ένα τεράστιο λάθος. Δεν έχει βάλει switch στην Python. :o

Γενικό σχόλιο

Και εγώ δεν συμφωνώ σχεδόν με τίποτα με αυτά που έβαλαν στη νέα ύλη. Θα πρέπει όμως όλοι μας (και οι φροντιστές) να δούμε λίγο πέρα από τον δικό μας μικρόκοσμο. Δεν είναι δυνατόν όταν ένα μάθημα από 2 ώρες πάει στις 7 να μην υπάρχει αύξηση στην ύλη. Για να είμαστε ειλικρινείς η αύξηση που έγινε ήταν πολύ μικρή δεδομένων των ωρών και δεδομένου ότι οι μαθητές έχουν διδαχθεί κάποιες έννοιες στην Β Λυκείου. Δεν γίνονται όλα ξαφνικά στην Γ.
Παρακαλώ πολύ μην ακούσω το επιχείρημα ότι στην Β δεν γίνεται τίποτα και τα παιδιά δεν μαθαίνουν τίποτα γιατί η απάντηση σε αυτό θα είναι από εκπαιδευτικό άλλου κλάδου που θα μας πει ότι αφού δεν γίνεται τίποτα γιατί υπάρχει αυτό το μάθημα καταργήστε το.
Να θυμίσω μήπως πιο ήταν το πρώτο σχόλιο των μαθηματικών στην δική τους παρουσίαση στο ΙΕΠ? ότι κάποια μαθήματα διδάσκονται υπερβολικά πολλές ώρες και δεν είναι δυνατόν τα μαθηματικά να διδάσκονται τις ίδιες ώρες.
Τι θέλω να πω: και εύκολο μάθημα, και πολλές ώρες δεν γίνεται. Αν θέλουμε να έχουμε λόγο ύπαρξης θα πρέπει να έχουμε σοβαρό μάθημα. Μόνο έτσι μπορούμε να πάμε στην Θετική κατεύθυνση. Όσοι είναι ευχαριστημένοι με την παρούσα κατάσταση και τη θέση μας στην Οικονομίας - Πληροφορικής λογικά δεν πρέπει να είναι πληροφορικοί.

Γράφω όλα αυτά (αν και δεν έχω χρόνο) γιατί αυτή η στιγμή είναι κομβική. Από ότι φαίνεται θα σχεδιάσουν νέο σύστημα για το οποίο μάλιστα η υπουργός είπε ότι κάποια μαθήματα που υποβαθμίστηκαν θα αναβαθμιστούν και έφερε ως παράδειγμα τα Λατινικά και την Πληροφορική.
Άρα θα πρέπει η ΠΕΚΑΠ να ζητήσει άμεσα συνάντηση με την υπουργό και να τις θέσει τα εξής θέματα:
1. λογικές περικοπές στην ύλη
2. να την πείσει ότι το μάθημα έχει θέση στην θετική. Δεν είναι δυνατόν σχολές που βγάζουν καθηγητές πληροφορικής να εισάγονται σε αυτές χωρίς να δίνουν πληροφορική. Μιλάω για τις σχολές ΗΜΜΥ και Μηχανικών Υπολογιστών.

Αν μπει Python και μαζί κάποια στοιχεία πολυπλοκότητας και λίγο αναδρομή τότε θα έχουμε φτιάξει ένα μάθημα το οποίο θα είναι αντίστοιχο με όλα τα εισαγωγικά μαθήματα προγραμματισμού πολλών θετικών σχολών (Το μαθηματικό κάνει Python!)
Αυτό θα είναι αληθινή αλγοριθμική σε αντίθεση με αυτό που κάνουμε τώρα που είναι προγραμματισμός δεκαετίας 80'.
Δεν θα έχουν επιχείρημα να μην μας βάλουν στη θετική. Αυτό όμως θέλει συντονισμό ΠΕΚΑΠ και τμημάτων πληροφορικής, μηχανικών Η/Υ και ΗΜΜΥ (δεν μιλάω μόνο για τα μέλη ΔΕΠ αλλά και για τους συλλόγους φοιτητών).
Επίσης όπως φαίνεται θα ενεργοποιηθεί πάλι η ΑΔΙΠ. Το πόρισμα που είχε βγάλει μας συνέφερε πάρα πολύ.

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


Πάρα πολύ σωστά....

George Eco

Παράθεση από: evry στις 27 Ιουλ 2019, 01:23:30 ΜΜ
@George Eco
Σε επίπεδο σχεδίασης αλγορίθμου τι κερδίζει ένας μαθητής με την Επίλεξε. Δηλαδή τι επιπλέον κέρδος έχει το οποίο να δικαιολογεί τον χρόνο που θα χάσει για την εξοικείωση με αυτή?

Εγώ προσωπικά switch θεωρώ πως δεν είναι απαραίτητες για έναν προγραμματιστή, αρκεί να έχει πολύ εξοικειωμένο μάτι και καλή τεκμηρίωση με σχόλια, ώστε να μη χάνεται στο ίδιο του το πρόγραμμα.
Η switch, η οποία είναι η ΕΠΙΛΕΞΕ το μόνο που προσφέρει είναι πιο ευανάγνωστο κώδικα, ευκολότερο στο debug κι ίσως η μορφή αυτή στο μάτι, να φαίνεται ως καλύτερος και ποιοτικός κώδικας.
Ειλικρινά μαθησιακά δε δίνει τίποτα. ΄Ίσως μπέρδεμα και δουλειά για εμάς, ξέρω 'γω; Ίσως τη δυνατότητα για θέμα Δ από άλλο πλανήτη.


Τώρα όσον αφορά τη python και την έλλειψη switch, ε λογικό δεν είναι;
Είναι eυανάγνωστη ήδη ως σύνταξη και βάλε κι ότι μπορείς να κάνεις παρόμοιες λειτουργίες με συναρτήσεις και dictionaries.


bugman

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

ilias_s

Παράθεση από: bugman στις 29 Ιουλ 2019, 08:22:03 ΠΜ
Η Επίλεξε είναι απαραίτητη. ...

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

bugman

Απαραίτητη για να εμπλουτίσει τη ΓΛΩΣΣΑ. Παίζει και στον διερμηνευτή.


petrosp13

Μια χρησιμότητα της πέρα από την προφανή των διακριτών τιμών (χ=1, χ=2, χ=3 κτλ) είναι ότι σε διαστήματα τιμών, δεν χρειάζεται να ξαναγράφει κάποιος την μεταβλητή ή την έκφραση

Επίλεξε χ * 2 + α
Περίπτωση < 0
...
Περίπτωση < 10
...
Περίπτωση < 100
...
κτλ
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Ρε Πέτρο αυτό διδακτικά δεν είναι πλεονέκτημα αλλά μειονέκτημα.
Είπα να κάνω διακοπές αλλά με αυτά που λέτε (petrosp και bugman) δεν μπορώ να μην γράψω. Λοιπόν η Επίλεξε είναι ένα έκτρωμα. Το ξαναλέω Ε-Κ-Τ-Ρ-Ω-Μ-Α του προγραμματισμού και εξηγώ γιατί. Όταν σχεδιάζουμε μια γλώσσα προγραμματισμού μια από τις αρχές είναι να έχει μια ομοιομορφία στον τρόπο σύνταξης των εντολών και μια λογική. Π.χ. η Python 3 έκανε την print συνάρτηση και όχι statement αφού και η input ήταν συνάρτηση. Θυμάμαι όταν ξεκίνησα να μαθαίνω Java, έλεγα ότι αν υπάρχει αυτή η εντολή θα είναι στην τάδε βιβλιοθήκη και θα λέγεται έτσι και θα συντάσσεται έτσι. Και ως δια μαγείας πράγματι υπήρχε στην τάδε βιβλιοθήκη και λεγόταν έτσι όπως είχα φανταστεί. Γιατί είχαν όλα σχεδιαστεί υπακούοντας στην κοινή λογική.
Τι συμβαίνει όμως με την Επίλεξε και γιατί είναι έκτρωμα όπως υποστηρίζω. Παραθέτω τον εξής πραγματικό διάλογο που είχα με αστέρι μαθητή πριν πολλά χρόνια (προφανώς δεν τον θυμάμαι ακριβώς και συμπληρώνω τα κενά όπως με συμφέρει)  :D:

Μ: Κύριε στην επίλεξε γιατί έχει <3 ποια είναι η λογική? Θεωρείται αυτό συνθήκη? Τι έκφραση είναι? Γιατί στο βιβλίο λέει για συνθήκη.
Κ: Εεεε ναι δεν είναι ακριβώς συνθήκη. Κοίταξε η συνθήκη σχηματίζεται από τον όρο που έχει δίπλα στην Επίλεξε και είναι κάποια έκφραση ή μεταβλητή μαζί με αυτό που υπάρχει μετά την Περίπτωση
Μ: Αν ισχύει αυτό που λέτε, τότε όταν βάζουμε διακριτές τιμές και όχι διάστημα δεν θα έπρεπε να έχει = μπροστά από την τιμή, δηλαδή να είναι =3 και όχι 3?
Κ: Έχεις δίκιο για αυτό και εγώ δεν την χρησιμοποιώ ποτέ.
Μ: Ούτε εγώ κύριε. Αλλά να σας ρωτήσω γιατί υπάρχει αυτό? Τι εξυπηρετεί?
Κ: Υποθέτω γιατί έπρεπε να βάλουν κάτι που να μεγαλώνει την ύλη σε γραμμές αλλά μην προσθέτει τίποτα ουσιαστικό αλγοριθμικά.

Αυτό που λέω λοιπόν είναι ότι η ΕΠΙΛΕΞΕ διδακτικά δεν προσφέρει τίποτα παρά μόνο σύγχυση και αποτελεί ένα εργαλείο το οποίο στα χέρια του "κατάλληλου" θεματοδότη θα μπορούσε να αποβεί καταστροφικό!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

petrosp13

Εφόσον στο τελευταίο βιβλίο που εκδόθηκε, υπάρχουν παραδείγματα για κάθε περίπτωση (εκτός από το από...έως), η ασάφεια πού βρίσκεται;
Δεν έχουμε το main βιβλίο της ΑΕΠΠ που ήταν ελλιπές ως προς την Επίλεξε
Είναι ένα εργαλείο που παρέχεται από διάφορες γλώσσες, ας παρέχεται και από την δική μας
Όπως υπάρχει και η Όσο, υπάρχει και η Μέχρις_ότου, χωρίς κανένα σημαντικό πλεονέκτημα
Αφήνεται στον προγραμματιστή η ευχέρεια να τις χρησιμοποιήσει
H python δεν έχει Μέχρις_ότου

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

evry

Η python δεν έχει μέχρις_ότου παρά μόνο while επειδή σου δίνει τη δυνατότητα να χρησιμοποιήσεις τη break.Οπότε μπορείς να κάνεις emulate την repeat until ως εξής:
Κώδικας: Python
while True:
     statements
     if condition :
          break


το οποίο είναι ισοδύναμο με
Κώδικας: Pascal
repeat
     statements
until  condition

Χωρίς τη break χρειάζεσαι τη repeat...until αλλιώς αν πας με τη while σε προβλήματα που χρειάζονται repeat...until θα χρειαστεί να επαναλάβεις κώδικα έξω από την while για να εξασφαλίσεις ότι ο κώδικας θα εκτελεστεί τουλάχιστον μια φορά.

όσο για την ασάφεια, δεν είναι αυτό το πρόβλημά μου όσο ότι δεν ακολουθεί μια λογική, αλλά δημιουργεί εξαιρέσεις που πρέπει να μάθει ο μαθητής όπως εξήγησα παραπάνω με το = στην περίπτωση των διακριτών τιμών
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

bugman

Η Επίλεξε ασφαλώς και δεν είναι έκτρωμα. Η διαφορά με το δομή ΑΝ, έτσι όπως υπάρχει η Επίλεξε στη ΓΛΩΣΣΑ είναι ότι στην Επίλεξε έχουμε έναν συνοπτικό τρόπος ανάπτυξης. Σε κάθε περίπτωση αρκεί μια συνθήκη να ικανοποιείται για να επιλεχθεί αυτή και μόνο η περίπτωση. Δεν υπάρχει το fall-through, ο μηχανισμός για να συνεχίσει ένας αριθμός περιπτώσεων να εκτελείται. Επίσης επειδή οι συναρτήσεις της ΓΛΩΣΣΑΣ δουλεύουν μόνο με πέρασμα με τιμή, σημαίνει ότι οι πολλαπλές περιπτώσεις δεν έχουν παρενέργειες (αλλαγή κατάστασης), έτσι η εξέταση των επιμέρους περιπτώσεων δεν αλλοιώνει τις επόμενες περιπτώσεις. Επίσης μπορούν να λογαριαστούν οι συνθήκες ως να εκτελούνται μέχρι αυτήν που δίνει αληθές, αλλιώς όλες εκτελούνται (δίνουν ψευδές) και πάλι χωρίς παρενέργειες (αλλαγή κατάστασης). Φυσικά όταν θα εκτελεστεί η επιλεγμένη περίπτωση τότε θα έχουμε κάποια αλλαγή κατάστασης.
Πρακτικά αυτό που μετράει στο κτίσιμο της Επίλεξε είναι να σκεφτούμε τις διακριτές περιπτώσεις, και να τις ομαδοποιήσουμε σε μια κατάλληλη σειρά, ώστε όλες οι συνθήκες να δύναται να εκτελεστούν. Το να την κάνουμε την Επίλεξε με μια μεγάλη Αν δεν κερδίζουμε κάτι, απλά μεγαλώνουμε τον κώδικα. Η σειρά των συνθηκών παραμένει η ίδια είτε έχουμε την Επίλεξε ή την Αν.
Η διαφορά της Επίλεξε από την Αν είναι ότι στην Επίλεξε η κάθε σύγκριση γίνεται με ένα αποτέλεσμα έκφρασης, έστω τη βάση της επιλογής. Στην Αν μπορούμε να βάζουμε οποιαδήποτε σύγκριση. Για παράδειγμα στην Αν μπορούμε να συγκρίνουμε τα Α και Β και αν δεν πετύχει η σύγκριση να συγκρίνουμε τα Γ και Δ, ως δεύτερη περίπτωση. Αυτό δεν μπορεί να γίνει με την Επίλεξε (εκτός και αν βάλουμε την Αν για τα Γ και Δ εντός της περίπτωσης όπου συγκρίνουμε το Α με το Β, όπου το Α θα είναι η βάση της επιλογής).

**Προσθήκη: Στις Περιπτώσεις της Επίλεξε μπαίνουν μόνο σταθερές. Δεν μπαίνουν μεταβλητές και συναρτήσεις.

George Eco

Εμμμ... bugman, έχει δίκιο ο evry νομίζω. Η υλοποίηση της ΕΠΙΛΕΞΕ στη ΓΛΩΣΣΑ είναι έκτρωμα.
Προσωπικά μου δημιουργεί το ίδιο συναίσθημα, όταν βλέπω σε BASIC  IF A = B και πιο κάτω Α = 15. Το ότι δεν έχει διαφορετικό τελεστή για ανάθεση από σύγκριση με πειράζει. Τόσο μαθησιακά, όσο και προγραμματιστικά.

Από τη στιγμή που δεν έχει μια ορθή μορφή, τουλάχιστο ας άλλαζε το συντακτικό, να είχε μόνο διακριτές τιμές ως ορίσματα. Θέλω να πω, γιατί να μη χρησιμοποιήσω ΑΝ σε διαστήματα, είναι πολύ λογικό. Να συμπληρωθεί δε εδώ πως σε προγράμματα με μενου΄και διακριτές τιμές ως επιλογές μενού, παράδειγμα 1] Πρόσθεση, 2] Αφαίρεση κλπ, είναι πολύ όμορφο να έχεις μία SWITCH για κάθε διακριτή ακέραια τιμή. Απ' τη στιγμή όμως που σου δίνει τη δυνατότητα να συντάξεις με δύο τρόπους όμως την εντολή, θα γίνει πάλι μπάτε σκύλοι αλέστε. Και θα καταναλώνει το παιδί χρόνο σε αυτό ανούσια.

Θα μου άρεσε μια διορθωτική κίνηση κι η ΕΠΙΛΕΞΕ εντός ύλης. Σε όλες τις περιπτώσεις, θα την ήθελα εκτός εξεταστέας ύλης όμως, με τη δυνατότητα optional αλλά πότέ ζητούμενη ΑΠΑΡΑΙΤΗΤΑ.

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

bugman

Διαφωνώ με το ξεχωριστό = όπως το έχει η ΓΛΩΣΣΑ για την δήθεν απλοποίηση. Όπως το μάθεις παίζει. Δηλαδή το <- ως = όπως υπάρχει σε πολλές γλώσσες δεν έχει δυσκολία στο να γίνει κατανοητό, αφού οι συνθήκες ξεχωρίζουν από τις αναθέσεις τιμών. Εκεί που όντως υπάρχει δυσκολία είναι στη C, όπου μπορούν να μπουν πολλές αναθέσεις σε μια έκφραση πχ σε μια for, οπότε οπτικά για να βοηθάει στην κατανόηση του προγράμματος ο τελεστής ισότητας αντί για = είναι ==. Στη ΓΛΩΣΣΑ έχουμε το <- για ανάθεση τιμής και το = ως τελεστής ισότητας σε συνθήκη. Στη δική μου γλώσσα έχω το ίδιο σύμβολο = για ανάθεση τιμής και ισότητα, αλλά έχω και τα := και <= για ανάθεση τιμής (σε ειδικές περιπτώσεις), και το == για ισότητα (με περιορισμένη ακρίβεια δεκατριών δεκαδικών). Γενικά πριν ασχοληθεί κανείς με μια γλώσσα μαθαίνει τους τελεστές ανάθεσης, αριθμητικής αλλαγής τιμών (πχ το ++ ή το +=) και συγκρίσεων.


Για την επίλεξε έχω αφήσει μια άσκηση εδώ:
https://alkisg.mysch.gr/steki/index.php?topic=7849.msg87051#msg87051
Δίνω το πρώτο μέρος (την κωδικοποίηση) και ζητώ το δεύτερο μέρος (την αποκωδικοποίηση).