Αν...λογική μεταβλητή?

Ξεκίνησε από john81, 08 Δεκ 2009, 10:00:23 ΠΜ

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

pgrontas

#15
Πάντως δεν έχω καταλάβει γιατί θεωρείτε ότι τα παιδιά δεν καταλαβαίνουν την ύπαρξη συνθήκης με μόνο λογική μεταβλητή. Μπορεί να μην είναι προφανές, αλλά μετά την πρώτη εξήγηση πιστεύω γίνεται κατανοητό.
Έχετε συγκεκριμένα παραδείγματα παρανοήσεων;
Αντίθετα η άλλη άποψη έχει 3 λογικά επιχειρήματα:
1. Αποτίμηση με ένα βήμα λιγότερο (όχι τόσο σημαντικό)
2. Πιο ευανάγνωστο αλγόριθμο (για μένα πολύ σημαντικό)
3. Γιατί αλλιώς καταργείται ο λόγος ύπαρξης των λογικών μεταβλητών (σούπερ σημαντικό)
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

sstergou

Οπότε αν κατάλαβα καλά όλοι συμφωνούμε για την ορθότητα της συνθήκης η οποία περιλαμβάνει μόνο μία λογική μεταβλητή. Η παιδαγωγική προσέγγιση του καθενός μπορεί να διαφέρει. Προσωπικά στα παραδείγματά μου χρησιμοποιώ και τους δύο τρόπους σύνταξης
1)Αν λμ = Αληθής τότε
2)Αν λμ τότε
νομίζω έτσι καταλαβαίνουν καλύτερα τον σκοπό ύπαρξης αυτών των μεταβλητών. Είναι το μοναδικό σοβαρό επιχείρημα που μπορώ να σκεφτώ όταν κάποιος μαθητής/τρια με ρωτήσει "γιατί δεν το κάνουμε με μετρητή, το ίδιο δεν είναι;". Σαφώς και είναι το ίδιο αλλά οι λογικές μεταβλητές είναι καταλληλότερες γιατί αποτελούν από μόνες τους έγκυρες συνθήκες και μπορούν να χρησιμοποιηθούν χωρίς συγκριτικούς τελεστές. Εκτός από τη χρήση τους σε κάποιες άλλες εξεζητημένες τεχνικές δεν νομίζουν ότι προσφέρουν κάτι παραπάνω στο μάθημα.

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

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

Π.χ. Το:

Αν ΕίναιΌλοιΆρτιοι τότε  ...

είναι πιο λογικό (στην κυριολεξία!) από το:

Αν ΕίναιΌλοιΆρτιοι=αληθής τότε  ...

Αλλά και το:

Αν όχι ΕίναιΌλοιΆρτιοι τότε  ...

είναι πιο λογικό (στην κυριολεξία!) από το:

Αν ΕίναιΌλοιΆρτιοι=ψευδής τότε  ...

Τότε γιατί δεν βάζουμε:

Αν ΕίναιΌλοιΆρτιοι=1 τότε  ...

και να τελειώνουμε καταργώντας τις λογικές μεταβλητές;

Σε μία μελλοντική αλλαγή/ανανέωση του βιβλίου θα ήθελα οι λογικές μεταβλητές να έχουν περισσότερο χώρο! Να πω μάλιστα πως έχω ξεκινήσει μία εργασία πάνω σε αυτό το ζήτημα...

pgrontas

Παράθεση από: Νίκος Αδαμόπουλος στις 09 Δεκ 2009, 04:40:35 ΜΜ
Αν όχι ΕίναιΌλοιΆρτιοι τότε  ...
Επίσης, με βάση το παραπάνω παράδειγμα του Νίκου, θέλω να πω ότι το αγγλικό not μεταφράζεται και ως ΔΕΝ.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

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

Μεγάλε λες και είσαι μέσα στη σκέψη μου! Την ώρα που έγραφα το παραπάνω μήνυμα σκεφτόμουν ποια θα ήταν μια καλύτερη απόδοση του not για την περίπτωσή μας! Το "Δεν" που είπες, το "ΔενΙσχύει", "ΔενΕίναι" ....  :)

evry

#20
  Συνήθως ο λόγος που κάποια πράγματα στο μάθημά μας φαίνονται στα παιδιά δυσνόητα είναι ότι δεν έχουν καταλάβει πως δουλεύουν. Απλά μαθαίνουν έναν τυφλοσούρτη που τους κάνει να νιώθουν ασφαλή και αυτό είναι όλο. Αν τους βγάλεις έξω από αυτά παθαίνουν blackout.
    Για παράδειγμα εδώ δεν έχουν καταλάβει ότι ουσιαστικά το αποτέλεσμα της έκφρασης α>0 είναι του ίδιου τύπου με την τιμή μιας λογικής μεταβλητής, δηλαδή ότι κανονικά θα έπρεπε να μπορώ να γράψω 
θετικός <- α>0
δηλαδή ότι οι εκφράσεις θετικός, α>0 είναι το ίδιο (από θέμα τιμής) και άρα αφού μπορώ να γράψω
Αν  α>0 Τότε             και όχι    Αν  α>0 = Αληθής  Τότε     
με τον ίδιο ακριβώς τρόπο μπορώ να γράψω
Αν  θετικός  Τότε             και όχι    Αν  θετικός = Αληθής  Τότε     

   Τέτοια προβλήματα υποδηλώνουν παρανόηση του μαθητή σε κάτι πιο θεμελιακό.
1-2 παραδείγματα για να καταλάβετε τι εννοώ είναι τα παρακάτω
Σίγουρα έχετε δει κώδικα μαθητή του στυλ
   Διάβασε χ
   α[ι] <- χ

Γιατί δεν γράφει κατευθείαν Διάβασε α[ι]
ή γιατί αν του δώσουμε την έκφραση α[α[ι]ι] θα κολλήσει?
Μήπως επειδή δεν έχει κατανοήσει ότι το α[ι] δεν είναι πίνακας αλλά στοιχείο πίνακα, δηλαδή ουσιαστικά μια ακόμα μεταβλητή που μπορεί να χρησιμοποιηθεί όπως ακριβώς χρησιμοποιείται και οποιαδήποτε άλλη ακέραια μεταβλητή?

Το άλλο παράδειγμα έχει σχέση με τις δομές επανάληψης
Ποια δομή επανάληψης θεωρούν τα παιδιά πιο απλή? Σίγουρα όλοι θα συμφωνήσουμε ότι είναι η Για..από...μέχρι
Ποια δομή επανάληψης θεωρούμε εμείς οι καθηγητές την πιο δύσκολη να διδάξουμε? Αυτήν που μας έχει φέρει πολλές φορές σε δύσκολο σημείο και δυσκολευόμαστε να εξηγήσουμε τη λογική της στα παιδιά? Μήπως είναι επίσης η Για..από...μέχρι? Ακόμα ρωτάνε καθηγητές στο φόρουμ τι γίνεται όταν έχουμε βήμα αρνητικό ή ακόμα χειρότερα 0.

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

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

Παράθεση από: evry στις 09 Δεκ 2009, 06:12:47 ΜΜ
Άρα όταν κάτι δεν το καταλαβαίνουν τα παιδιά δεν σημαίνει ότι είναι κάτι που θα πρέπει να αποφύγουμε. Απλά θα πρέπει να βρούμε τα αίτια αυτής της παρανόησης.

Σωστός!

gthal

Να 'μαι κι εγώ, καθυστερημένος...
Έχει πάρει φωτιά βλέπω το topic, ωραίες και σεβαστές όλες οι απόψεις!
Πράγματι είναι ένα θέμα που δυσκολεύει πολλούς μαθητές γιατί απαιτεί ένα παραπάνω επίπεδο κατανόησης.
Αλλά επειδή από κάποιους μαθητές  σαφώς το θέλουμε αυτό το παραπάνω επίπεδο κατανόησης (και τους το οφείλουμε, ε;), εγώ εξηγώ την εναλλακτική με τη λογική μεταβλητή (είναι και μια εκπληκτική ευκαιρία να διευρύνουν την κατανόησή τους στο τι είναι λογική έκφραση - και γενικότερα έκφραση) , και στα επόμενα χρησιμοποιώ αρχικά τον κλασσικό τρόπο (=αληθής) και θυμίζω ότι μπορεί να γραφεί και αλλιώς ή ρωτάω "πώς θέλετε να το βάλουμε, έτσι ή αλλιώς?" (πολύ συχνά επιλέγουν τη λογική μεταβλητή)

Τα επιχειρήματα που γράφτηκαν υπέρ, με εκφράζουν συνολικά.
Θα ήθελα όμως να γράψω και κάτι πιο προσωπικό, σχεδόν γραφικό ίσως, που πιστεύω όμως ότι αντιστοιχεί σε όλους μας κάπου.
Υπάρχουν κάποιες στιγμές όταν μελετάμε αυτό που μας αρέσει, στις οποίες ανακαλύπτουμε κάτι, μας αποκαλύπτεται μια μαγεία, στιγμές που μας κάνουν να το αγαπήσουμε περισσότερο. Μια τέτοια φωτεινή στιγμή για μένα ήταν όταν έμαθα/ανακάλυψα ότι είναι το ίδιο αν βάλω σκέτη τη λογική μεταβλητή αντί για συνθήκη. Ήταν μια στιγμή στην οποία πείστηκα ότι αυτό το οικοδόμημα (ο προγραμματισμός - η συγκεκριμένη γλώσσα - ας το πούμε όπως θέλουμε) είναι συνεπές με τον εαυτό του! Ήταν λογικό να λειτουργεί έτσι και λειτουργούσε πράγματι έτσι! Τέτοια σημεία, που εμένα με φώτισαν και με ενθουσίασαν, θέλω να τα μεταδίδω στους μαθητές μου και ίσως σε κάποιους να αποκαλύψουν κάτι, ίσως σε άλλους να μην πουν τίποτα. Πιστέψτε με ότι κάποια προσωπάκια πάντως φωτίζονται σ' αυτό το σημείο και για μένα αξίζει μια αναφορά και μόνο για αυτό.
Φιλικά,
Γιώργος Θαλασσινός

Vangelis

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