ΚΕΦΆΛΑΙΟ 5 (χρόνος εκτέλεσης αλγορίθμου)

Ξεκίνησε από konstantinosA, 05 Απρ 2016, 07:01:22 ΜΜ

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

konstantinosA

για τον υπολογισμό του χρόνου  εκτέλεσης αλγορίθμου:
η εντολή x<- a*b (x εκχώρησε a*b) είναι (σύμφωνα με το βιβλίο) 2 πράξεις: 1η η εκχώρηση    και 2η το a*b

όμως για τον υπολογισμά του βήματος στο ΓΙΑ
το βήμα (που είναι της μορφής i<- i+1) το μετράει σαν μία πράξη (γιατί;)
επισυνάπτω παράδειγμα του βιβλίου

Laertis

Κωνσταντίνε, δες στο θέμα που άνοιξε πριν καιρό και έγινε μεγάλη συζήτηση, αλλά πρέπει να το παρακολουθήσεις μήνυμα προς μήνυμα. Το συμπέρασμα είναι, αν βαριέσαι να το διαβάσεις, ότι θα ακολουθήσουμε το βιβλίο οπότε i<-- i +1 ισοδυναμεί σε μία πράξη.

https://alkisg.mysch.gr/steki/index.php?topic=6494.msg75193#msg75193
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

gthal

Παράθεση από: Laertis στις 05 Απρ 2016, 07:53:57 ΜΜ
Το συμπέρασμα είναι, .... , ότι θα ακολουθήσουμε το βιβλίο οπότε i<-- i +1 ισοδυναμεί σε μία πράξη.
https://alkisg.mysch.gr/steki/index.php?topic=6494.msg75193#msg75193
Πάει λίγος καιρός που δεν έχω παρακολουθήσει εκείνη τη συζήτηση.
Όντως, καταλήξαμε συλογικά να ακολουθήσουμε το βιβλίο;
Στο σημείο που την άφησα, είχαν δοθεί διάφοροι πιθανοί λόγοι ως προς το γιατί μπορεί αυτή να μετριέται σαν μία πράξη στο βιβλίο. Υπήρχαν όμως και ενστάσεις, μιας και οι εξηγήσεις αυτές βασίζονταν σε πιθανολογιες για το πώς μπορεί να λειτουργεί ένας compiler όσον αφορά τη ΓΙΑ ή όσον αφορά την αντικατάσταση της τιμής μιας μεταβλητής με χρήση της προηγούμενης τιμής της, και κατά την ανάλυση δεν θα έπρεπε να μας αφορά η υλοποίηση μέσω του όποιου compiler - γιατί άλλος θα το κάνει έτσι κι άλλος αλλιώς. Αλλά επίσης οι μαθητές δεν έχουν δυνατότητα να το ξέρουν αυτό και το βιβλίο δεν εξηγεί πουθενά τη λογική του γιατί ι <- ι+1 είναι μία πράξη ενώ εξηγεί σαφώς ότι πχ α <- β+2 είναι δύο πράξεις.

Δεν έχω αντίρρηση να το διδάξουμε όπως το βιβλίο (από τη στιγμή που βρήκαμε τρόπο να το δικαιολογήσουμε στους ευατούς μας), επιμένω όμως στο εξής:
αν ένας μαθητής μετρήσει την ι <- ι+1 ως δύο πράξεις, θα πρέπει να του το εκλάβουν ως ΣΩΣΤΟ! γιατί αφενός κατάλαβε την ουσία και τη λογική  της εξήγησης του βιβλίου (απλά δεν βρήκε εξήγηση για την ασυνέπειά του στα παραδείγματα, και καλά έκανε) και ΔΕΝ παπαγάλισε τα παραδείγματα αλλά είχε το θάρρος να αποσχιστεί από αυτά και να εφαρμόσει αυτήν ακριβώς τη λογική που διδάχτηκε αμέσως παραπάνω. Και φοβάμαι ότι οι περισσότεροι σκεπτόμεονοι μαθητές θα κάνουν αυτό το "λάθος".
Φιλικά,
Γιώργος Θαλασσινός

Laertis

#3
Δε διαφωνώ καθόλου Γιώργο, εξάλλου εδώ διαφωνούμε μεταξύ μας ακόμη και μετά τις "διευκρινίσεις",  και δεν πρέπει να κοπεί ΤΙΠΟΤΑ απο μαθητή που θα μετρήσει ως 2  πράξεις το ι<-- ι + 1. Εξάλλου, η τάξη της πολυπλοκότητας που υποτίθεται ότι μας ενδιαφέρει στο 5ο κεφάλαιο δεν επηρεάζεται. Η όλη ρητορική βασίζεται σε ανεπίσημες "οδηγίες" ενός συμβούλου που ομολογουμένως προσπάθησε να διαλύσει την ομίχλη του θολού τοπίου του βιβλίου για την καταμέτρηση των βασικών πράξεων. Αλλά δυστυχώς το ότι μπήκε στην ύλη αυτό - και βγήκε εκτός ο υπολογισμός της πολυπλοκότητας -  χωρίς επίσημες οδηγίες αποτελεί ατόπημα για το μάθημά μας.
Προσωπικά πιστεύω ότι δε πρέπει να πέσει τέτοιο θέμα, κι αν πέσει θα πρέπει να μην περιλαμβάνει πράξεις για τις οποίες υπάρχει διχογνωμία.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

gthal

Χαίρομαι που συμφωνούμε  ;)
Και μιας και το θίγεις...
προσωπικά θεωρώ ατόπημα συνολικά την εισαγωγή του 5ου κεφαλαίου, το οποίο δεν μπορεί να διδαχθεί εμπεριστατωμένα παρά μόνο παπαγαλιστί γιατί ξεχνάμε ότι όλα αυτά θέλουμε να τα διδάξουμε σε έναν μαθητή που μόλις το Σεπτέμβριο ίσως να πρωτοέγραψε το δικό του "hello world" και το είδε να τρέχει (και το οποίο κάθε χρόνο φοβάμαι όταν τους το δείχνω, ότι κάποιος μπορεί να με πιάσει στα πράσα και να με΄κατηγορήσει ότι τους μαθαίνω λάθος πράγματα αφού σύμφωνα με το βιβλίο αυτό είναι "απαγορυεμένο" γιατί δεν έχει είσοδο   :D ).
Και αυτός ο μαθητής ως το Νοέμβριο πρέπει να έχει μάθει να λύνει παπάδες με τις βασικές αλγοριθμικές δομές, να κάνει διαγράμματα, να μετατρέπει από μια δομή σε άλλη και μάλιστα όχι τίποτα τετριμμένες περιπτώσεις αλλά σπαζοκεφαλιές. Και μόλις μπει ο Δεκέμβριος (και αργά είναι) να αρχίσει να χειρίζεται με άνεση πίνακες μονοδιάστατους και 2-διάστατους (πολύ φοβάμαι ότι κι η εισαγωγή των 3-διάστατων πλησιάζει, με τα μυαλά που έχουμε και τόσο καλά που τα έχουμε καταφέρει μ' αυτά τα λίγα ως τώρα), θα πρέπει να μάθει να υλοποιεί ουρά και στοίβα με πίνακα αλλά και να "γνωρίσει" τρεις αλγοριθμους ταξινόμησης και δύο αναζήτησης και να μάθει σε βάθος έναν από κάθε κατηγορία. Τέλος, θα πρέπει να μάθει να προγραμματίζει με υποπρογράμματα, αλλά και να κάνει ζογκλερικά μαζί τους (αλλάζοντας Συναρτήσεις σε διαδικασίες κι ανττίστροφα) και να καταλάβει όλη τη λογική του τμηματικού προγραμματισμού (τη λογική των παραμέτρων και τη λογική του by reference και by value) μέσα στον τελευταίο μήνα που, με την ψυχή στο στόμα, του τα πρωτοπαρουσιάζουμε. Κι άσε που, στο επίπεδο που βρίσκεται, με τίποτα δεν μπορείς να του αποδείξεις τα πλεονεκτήματά τους, αφού και μεγαλύτερα του κάνουν τα προγράμματά του, και πιο δυσνόητα και εν τέλει να φαίνονται πιο ηλίθια.
Και πάνω από όλα αυτά πρέπει να εισαχθεί και στη θεωρία της πολυπλοκότητας, λες και δε φτάνει που έμαθε να γράφει όπως-όπως έναν αλγόριθμο που λύνει ένα πρόβλημα, θα συζητάμε και για βέλτιστες λύσεις; (Αφήστε που απ' ότι φάνηκε οι περισσότεροι από εμάς έχουμε οι ίδιοι δυσκολία να συλλάβουμε την εν λόγω θεωρία)
Θα σου μάθω όλη την πληροφορική δηλαδή με το στανιό, μέσα σε εννέα μήνες! Εσύ δεν προλαβαίνεις να ανακαλύψεις τίποτα. Θα σου τα πω όλα εγώ, τις τεχνικές, τις μεθόδους, τι πρέπει να κάνεις για να βρεις το Α ή το Β.
Νομίζω πως τους αντιμετωπίζουμε σαν φοιτητές πληροφορικής.
Ας θυμηθούμε τους εαυτούς μας, κι ας μπούμε στη θέση τους. Εγώ την πληροφορική την ανακάλυψα παίζοντας. Στους δικούς μου χρόνους. Δοκιμή και λάθος. Έτσι έμαθα. Και μάλλον γιαυτό μου άρεσε. Και σιχαίνομαι που ό,τι εγώ ανακάλυψα, είμαι αναγκασμένος να τους το σερβίρω έτοιμο μέσα σε μια σχολική χρονιά. Με πείραζε και παλιότερα, αλλά φέτος παράγινε... Με λυπεί, με έχει εξοργίσει και με έχει εξαντλήσει η φετινή χρονιά γιατί η ύλη της ήταν απάλευτη. Κι όχι τίποτα άλλο, εμείς φωνάζαμε να γίνει έτσι, γιατί νομίζαμε ότι έτσι θα προαχθεί το μάθημα. Αλλά εδώ μιλάει ο Πληροφορικός και έχουμε ξεχάσει τον Εκπαιδευτικό. Θυμάται κανείς ποτέ ότι ο εγκέφαλος έχει μια εξελικτική πορεία, η οποία στο μέσο 17χρονο δεν έχει ολοκληρωθεί ακόμα; Κι έτσι οι μαθητές δεν αντιλαμβάνονται τα πράγματα και τις σχέσεις τους όπως αρχίσαμε να τα αντιλαμβανόμαστε εμείς από τα είκοσί μας και μετά...
Και το αποκορύφωμα βέβαια της απογοήτευσης είναι ότι όλα τα παραπάνω προσπαθούμε να τα βάλουμε στο μυαλό μαθητών από τους οποίους οι 6 στους 10 (κι ίσως να λέω λίγους) στην αρχή της χρονιάς δεν ξέρουν να υπολογίσουν πόσο θα γίνει το Χ αν το αυξήσουμε κατα 20% (συχνότερες απαντησεις: θα γίνει 20/100, θα γίνει Χ+20/100 ή θα γίνει Χ*20/100) και 3-4 από αυτούς δυστυχώς δεν θα το μπορούν ούτε στο τέλος της χρονιάς.
Τι ματαιότητα ...
Φιλικά,
Γιώργος Θαλασσινός

Καρκαμάνης Γεώργιος

Συμφωνώ απόλυτα και με τους δύο Γιώργηδες.