ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ

Ξεκίνησε από giannhs555, 09 Μαρ 2010, 12:11:00 ΠΜ

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

giannhs555

ΚΑΛΗΣΠΕΡΑ,

ΠΑΡΑΚΟΛΟΥΘΩ ΤΙΣ ΣΥΖΗΤΗΣΕΙΣ  ΠΟΥ ΕΧΟΥΝ ΓΙΝΕΙ ΣΧΕΤΙΚΑ ΜΕ ΤΗ ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ. ΕΠΕΙΔΗ ΕΧΟΥΝ ΔΙΑΤΥΠΩΘΕΙ ΔΙΑΦΟΡΕΣ ΓΝΩΜΕΣ ΚΑΙ ΔΙΑΦΟΡΟΙ ΑΛΓΟΡΙΘΜΟΙ, ΤΕΛΙΚΑ ΥΠΑΡΧΕΙ ΚΑΤΙ ΣΥΓΚΕΚΡΙΜΕΝΟ ΤΟ ΟΠΟΙΟ ΜΠΟΡΟΥΜΕ ΝΑ ΔΙΔΑΣΚΟΥΜΕ ΣΤΟΥΣ ΜΑΘΗΤΕΣ?

ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΟΝ ΧΡΟΝΟ ΣΑΣ.

Laertis

Συγκεκριμένος αλγόριθμος δεν υπάρχει στο βιβλίο αλλά υπάρχουν οι οδηγίες για να τον φτιάξεις (Κεφ. 3 σελ. 64).  Στην ουσία είναι ο αλγόριθμος σειριακής αναζήτησης που δίνεται στο βιβλίο με την προσθήκη μιας ακόμη συνθήκης όπου το στοιχείο του πίνακα είναι μεγαλύτερο της τιμής αναζήτησης.
Δες στο παρακάτω link απο το site του Παναγιώτη :

http://users.kor.sch.gr/ptsiotakis/aepp/aepp_theory3b.htm
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

sstergou

Δες και αυτόν, ίσως σου φανεί χρήσιμος
Αλγόριθμος σειριακή_αναζήτηση_ταξινομημένος
Δεδομένα //π, Ν, τιμή//

ξεπέρασε ← Ψευδής
βρέθηκε ← Ψευδής
θέση ← 0
ι ← 1

Όσο όχι βρέθηκε και όχι ξεπέρασε και ι ≤ Ν επανάλαβε
	Αν π[ι] = τιμή τότε
		βρέθηκε ←  Αληθής
		θέση ← ι
	αλλιώς_αν π[ι] > τιμή τότε
		ξεπέρασε ← Αληθής
	Τέλος_αν
	ι← ι + 1
Τέλος_επανάληψης

Αποτελέσματα //βρέθηκε, θέση//
Τέλος σειριακή_αναζήτηση_ταξινομημένος


giannhs555

ΕΧΩ ΔΕΙ ΤΟΝ ΑΛΓΟΡΙΘΜΟ ΤΟΥ ΠΑΝΑΓΙΩΤΗ. ΕΙΝΑΙ ΜΙΑ ΚΑΛΗ ΛΥΣΗ.

ΝΟΜΙΖΩ ΟΜΩΣ ΟΤΙ ΔΕΝ ΚΑΛΥΠΤΕΙ ΤΗΝ ΠΕΡΙΠΤΩΣΗ ΝΑ ΒΡΕΙ ΟΛΕΣ ΤΙΣ ΘΕΣΕΙΣ ΤΟΥ ΣΤΟΙΧΕΙΟΥ ΠΡΟΣ ΑΝΑΖΗΤΗΣΗ, ΟΤΑΝ ΑΥΤΟ ΥΠΑΡΧΕΙ ΣΕ ΠΕΡΙΣΣΟΤΕΡΕΣ ΑΠΟ ΜΙΑ.

ΜΗΠΩΣ ΤΟ ΠΟΤΕ ΘΑ ΣΤΑΜΑΤΑ Ο ΑΛΓΟΡΙΘΜΟΣ ΘΑ ΕΠΡΕΠΕ ΝΑ ΕΙΝΑΙ ΑΝΕΞΑΡΤΗΤΗ ΛΟΓΙΚΗ ΜΕΤΑΒΛΗΤΗ ΑΠΟ ΑΥΤΗ ΠΟΥ ΔΗΛΩΝΕΙ ΟΤΙ ΤΟ ΣΤΟΙΧΕΙΟ ΒΡΕΘΗΚΕ?

Laertis

#4
Στην περίπτωση αυτή η λύση του Στάθη είναι ενδεδειγμένη βάζοντας μάλιστα σε πίνακα με δείκτη μετρητή τις θέσεις των στοιχείων που βρέθηκαν. Μεταφέρω απο τη λύση του Στάθη:
.......
κ <--0
Όσο όχι βρέθηκε και όχι ξεπέρασε και ι ≤ Ν επανάλαβε
   Αν π[ι] = τιμή τότε
      βρέθηκε ←  Αληθής
      κ <-- κ +1
      θέση[κ] ← ι
   αλλιώς_αν π[ι] > τιμή τότε
........
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

sstergou

το "όχι βρέθηκε" όμως πρέπει να φύγει από πάνω οπότε η όσο γίνεται :
....
Όσο όχι ξεπέρασε και ι ≤ Ν επανάλαβε
...

Laertis

Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Σπύρος Δουκάκης

Ευκαιρία να εξετασθεί και ως υποερώτημα σε θέμα εξετάσεων...

Σπύρος Δουκάκης

Επανέρχομαι λίγο στο θέμα για τον ακόλουθο λόγο...

Το βιβλίο λέει ότι: "Εξ άλλου, αν τα στοιχεία του πίνακα είναι ταξινομημένα, τότε ο αλγόριθμος πρέπει να σταματήσει, μόλις συναντήσει κάποιο στοιχείο που είναι μεγαλύτερο από το αναζητούμενο".

Την πρόταση αυτή την έχω ερμηνεύσει ως εξής:

Σε έναν ταξινομημένο πίνακα αν θέλεις να κάνεις αναζήτηση πρέπει να ακολουθήσεις την παραπάνω πρακτική. Σε αντίθετη περίπτωση π.χ. κάνεις αναζήτηση σε ταξινομημένο με Για ή με Όσο χωρίς τη λογική μεταβλητή ξεπέρασε, θα σου κόψω μονάδες...

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

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

Σπύρος Δουκάκης

Είναι μία προσέγγιση και αυτή. Δεν έχει λειτουργήσει έτσι μέχρι σήμερα. Το ερώτημα είναι γιατί δεν λαμβάνουμε υπόψη τα πρέπει του βιβλίου; Μας βοηθούν να κάνουμε πιο αποδοτικούς αλγορίθμους, που είναι και πιο κοντά στην ανθώπινη σκέψη.

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

ntzios kostas

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

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

Παράθεση από: sdoukakis στις 09 Μαΐου 2010, 10:51:22 ΜΜ
Είναι μία προσέγγιση και αυτή. Δεν έχει λειτουργήσει έτσι μέχρι σήμερα. Το ερώτημα είναι γιατί δεν λαμβάνουμε υπόψη τα πρέπει του βιβλίου; Μας βοηθούν να κάνουμε πιο αποδοτικούς αλγορίθμους, που είναι και πιο κοντά στην ανθώπινη σκέψη.

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

Με αφορμή  τα παραπάνω θα θίξω το θέμα στην ανομοιομορφία που υπάρχει μεταξύ των βαθμολογικών κέντρων.

Σπύρος Δουκάκης

Θα προσπαθήσω να κάνω μία συνολική τοποθέτηση επί του θέματος της αναζήτησης, της ταξινόμησης και της εύρεσης min και max.

Οδηγός μου θα είναι το βιβλίο μαθητή.

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

Πάμε τώρα στο βιβλίο. Στην αναζήτηση, σελ. 64, λέει τα ακόλουθα:

1. "Το πρόβλημα της αναζήτησης (searching) ενός στοιχείου σε πίνακα είναι ιδιαίτερα ενδιαφέρον λόγω της χρησιμότητάς του σε πλήθος εφαρμογών. Υπάρχουν αρκετές μέθοδοι αναζήτησης σε πίνακα που εξαρτώνται κυρίως από το, αν ο πίνακας είναι ταξινομημένος ή όχι" (βιβλίο μαθητή, σελ. 64).

2. "... ο προηγούμενος (εννοεί τον αλγόριθμο με το done και το Όσο) αλγόριθμος ισχύει για την περίπτωση όπου κάθε στοιχείο υπάρχει μία μόνο φορά στον πίνακα".

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

Στη συνέχεια λέει "αν τα στοιχεία του πίνακα είναι ταξινομημένα, τότε ο αλγόριθμος πρέπει να σταματήσει, μόλις συναντήσει κάποιο στοιχείο που είναι μεγαλύτερο από το αναζητούμενο".

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

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

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

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

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

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

Κώστα και Γιώργο η διαφωνία δεν είναι προσωπική. Αντίθετα θεωρώ ότι η συζήτηση βοηθάει να γίνει εκ νέου να γίνει μία συνολική κουβέντα για να υποστηρίξουμε τη δουλειά μας. Είμαι σίγουρος -και το λέω για δεύτερη φορά- ότι κανείς από εσάς και πιστεύω και από όλους τους συναδέλφους, δεν παροτρύνει τα παιδιά να χρησιμοποιούν τη Για στην περίπτωση της αναζήτησης ύπαρξης ή την ταξινόμηση για την εύρεση του max. Άρα ας πάνε στο καλό οι "κακές" λύσεις. Αφαιρώντας μάλιστα μονάδες, τότε πάνε σίγουρα στο καλό...

Τέλος, θα ήθελα να επανέλθω σε κάτι που όλοι το συζητάμε και το θέλουμε.

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

θα έχουμε επιτύχει ως δάσκαλοι.

Αλεξόπουλος Ανδρέας

κι εμένα η άποψή μου είναι ότι κακώς κόβονται μονάδες σε περίπτωση που κάποιος κάνει αναζήτηση με το ΓΙΑ αντί του ΟΣΟ. Θα συμφωνήσω με τον sdoukakis (δυστυχώς δε ξέρω ποιο είναι το κανονικό σου όνομα για να το γράψω!) ότι πρέπει να καλλιεργούμε στους μαθητές την σκέψη να χρησιμοποιούν αποδοτικά τους αλγορίθμους. Αλλά αυτό δεν συνιστά λόγο να κόψω σε κάποιον μονάδες επειδή ο αλγόριθμός του κάνει σάρωση σε όλον τον πίνακα ενώ θα μπορούσε να είχε σταματήσει. Εξάλλου η αποδοτικότητα των αλγορίθμων είναι κάτι που δεν μας απασχολεί στα πλαίσια αυτού του μαθήματος.
Χωρίς να διαφωνώ λοιπόν με το σκεπτικό σου παραπάνω (και ίσως θέλοντας να κάνω τον δικηγόρο του διαβόλου) να σου φέρω ένα αντιπαράδειγμα. Ακόμα κι αν θέλουμε λοιπόν να πάρουμε αυτά που λέει το βιβλίο κατά γράμμα, ότι πρέπει δηλαδή εξ ορισμού να σταματάμε όταν βρούμε κάτι που ξέρουμε ότι υπάρχει μια φορά. Αυτό σε ποιον αλγόριθμο ισχύει; Στον αλγόριθμο που ονομάζει το βιβλίο Σειριακή Αναζήτηση. Στο θέμα πανελληνίων λοιπόν του 2006 γιατί να κοπούν μονάδες; Το ερώτημα εννοεί ότι πρέπει να γίνει αναζήτηση για να δούμε αν η πόλη υπάρχει, αλλά δε μας λέει με ποιον τρόπο πρέπει να γίνει. Τι θέλω να πω: Ότι αν έλεγε να ψάξετε να βρείτε αν υπάρχει η πολή χρησιμοποιώντας τον αλγόριθμο της σειριακής αναζήτησης, τότε ναι να κοπούν μονάδες αν κάποιος το κάνει με Για (ακόμα κι αν δεν αναφέρεται στην εκφόνιση ότι η αναζήτηση πρέπει να σταματάει όταν η πόλη βρεθεί). Από την στιγμή όμως που δεν αναφέρεται σχεδόν σε καμμία άσκηση ο όρος Σειριακή Αναζήτηση αλλά αφήνεται στον μαθητή να σκεφτεί το πώς θα ψάξει να βρει αν κάτι υπάρχει, τότε δε πρέπει να κοπούν μονάδες. Ακόμα κι αν αυτό που θα κάνει δεν έχει την καλύτερη απόδοση σαν ταχύτητα αλγορίθμου.
Και για να το πάω και λίγο παραπέρα (χωρίς να το τονίσω να θέλω να έρθω σε αντιπαράθεση με κανέναν, απλά μια σκέψη κάνω) γιατί να μην κοπούν πχ μονάδες και από κάποιον που χρησιμοποίησε σε ένα πρόγραμμα δυο-τρεις μεταβλητές παραπάνω από αυτές που πιθανώς χρειαζόντουσαν; Θα μπορούσα πχ να πω ότι το πρόγραμμα λύνεται και πιο απλά. Το ξέρω ότι είναι πολύ τραβιγμένο αυτό το τελευταίο που γράφω, απλά το λέω για να δείξω πως αφού δεν εξετάζουμε την αποδοτικότητα (ταχύτητα) ενός αλγορίθμου τότε θεωρώ άδικο πώς από την στιγμή που δεν δηλώνεται ξεκάθαρα σε μια άσκηση, να κόβονται μονάδες επειδή μια αναζήτηση γίνεται με ΓΙΑ αντί του ΟΣΟ.

Και κάτι τελευταίο. Ακόμα κι αν ο μαθητής έχει στο μυαλό του ότι θα μπορούσε να χρησιμοποιήσει σε μια άσκηση την σειριακή αναζήτηση με το done, το ΟΣΟ κλπ , αν δε του το ζητάει η άσκηση συνήθως δε το κάνει γιατί η λύση με το ΓΙΑ είναι πιο σύντομη (άποψή μου, αλλά νομίζω ότι ισχύει αυτό)

evry

#15
Αν κόβουμε μονάδες από κάτι τέτοιο θα πρέπει να κόβουμε και σε όποιον μαθητή χρησιμοποιεί πίνακα όταν δεν πρέπει, αφού όπως λέει το βιβλίο οι πίνακες απαιτούν μνήμη και περιορίζουν τις δυνατότητες του προγράμματος.
  Το παραμυθάκι αυτό το ζητάμε από τους μαθητές σαν θεωρία αλλά δεν τους ζητάμε να το εφαρμόσουν στην πράξη!!! Καλό ε?
   Αφού κάθε λύση με πίνακες είναι αποδεκτή ακόμα και αν μπορεί γίνει χωρίς πίνακες γιατί να μην είναι αποδεκτή αυτή η μορφή της σειριακής αναζήτησης?
   
   Επίσης το επιχείρημα της απόδοσης δεν ισχύει. Μην ξεχνάμε πως είτε χρησιμοποιήσεις Όσο είτε Για η πολυπλοκότητα είναι η ίδια Ο(n) για πίνακα n στοιχείων. Άρα δεν υπάρχει θέμα επιστημονικότητας. Σίγουρα όταν ψάχνουμε έναν τηλεφωνικό κατάλογο σταματάμε μόλις βρούμε αυτό  που ψάχνουμε και σίγουρα μπορεί να θεωρηθεί χαζό να συνεχίσουμε και σίγουρα το λέει και το βιβλίο!!! αλλά αυτό δε σημαίνει ότι έχουμε δικαίωμα να κόψουμε μονάδες από έναν μαθητή από την στιγμή που η ποιότητα της λύσης δεν βαθμολογείται και αφού κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή.
   
  Και θα πω και ένα άλλο επιχείρημα. Όταν βλέπω έναν μαθητή να εκτελεί σειριακή αναζήτηση με Για βγάζω το συμπέρασμα ότι το σκέφτηκε μόνος του. όταν βλέπω την σειριακή αναζήτηση του βιβλίου με done, pos και ειδικά αυτό το απίστευτο    αλλιώς   ι <-- ι + 1   δίνω στον μαθητή το όσκαρ της αποστήθισης αφού τα έχει μάθει καλά.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

Σπύρο, εννοείται ότι δεν υπάρχει καμια αντιπαράθεση.
θα σου αναφέρω και το εξής: πολλοί συνάδερφοι διδάσκουν  αναζήτησημόνο με ΓΙΑ και αυτήν χρησιμοποιούν κατά κατά κανόνα, και στην σειριακή αναζήτηση του βιβλιου κάνουν απλη αναφορά.

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

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

Παράθεση από: Καρκαμάνης Γεώργιος στις 12 Μαΐου 2010, 12:24:19 ΠΜ
... πολλοί συνάδερφοι διδάσκουν  αναζήτησημόνο με ΓΙΑ και αυτήν χρησιμοποιούν κατά κατά κανόνα, και στην σειριακή αναζήτηση του βιβλιου κάνουν απλη αναφορά...

Άσχετα με το αν πρέπει να κόβονται μονάδες ή όχι, που από ότι φαίνεται οι απόψεις διίστανται, το παραπάνω κατά τη γνώμη μου είναι απαράδεκτο!  :-X

P.Tsiotakis

αν στα μαθηματικά/φυσική κάποιος μαθητής αποδείξει/λύσει κάτι σε ΜΙΑ σελίδα αν και μπορεί να το κάνει σε 5 γραμμές κόβονται μονάδες;;

Δεν είναι ειρωνική η ερώτηση, απλά αναρωτιέμαι πως αντιμετωπίζουν το ζήτημα παλιότερα/ωριμότερα από εμάς μαθήματα

Βασίλης Παπαχρήστος

Παράθεση από: evry στις 11 Μαΐου 2010, 10:37:38 ΠΜ
Αν κόβουμε μονάδες από κάτι τέτοιο θα πρέπει να κόβουμε και σε όποιον μαθητή χρησιμοποιεί πίνακα όταν δεν πρέπει, αφού όπως λέει το βιβλίο οι πίνακες απαιτούν μνήμη και περιορίζουν τις δυνατότητες του προγράμματος.
  Το παραμυθάκι αυτό το ζητάμε από τους μαθητές σαν θεωρία αλλά δεν τους ζητάμε να το εφαρμόσουν στην πράξη!!! Καλό ε?
   Αφού κάθε λύση με πίνακες είναι αποδεκτή ακόμα και αν μπορεί γίνει χωρίς πίνακες γιατί να μην είναι αποδεκτή αυτή η μορφή της σειριακής αναζήτησης?
   
   Επίσης το επιχείρημα της απόδοσης δεν ισχύει. Μην ξεχνάμε πως είτε χρησιμοποιήσεις Όσο είτε Για η πολυπλοκότητα είναι η ίδια Ο(n) για πίνακα n στοιχείων. Άρα δεν υπάρχει θέμα επιστημονικότητας. Σίγουρα όταν ψάχνουμε έναν τηλεφωνικό κατάλογο σταματάμε μόλις βρούμε αυτό  που ψάχνουμε και σίγουρα μπορεί να θεωρηθεί χαζό να συνεχίσουμε και σίγουρα το λέει και το βιβλίο!!! αλλά αυτό δε σημαίνει ότι έχουμε δικαίωμα να κόψουμε μονάδες από έναν μαθητή από την στιγμή που η ποιότητα της λύσης δεν βαθμολογείται και αφού κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή.
   
  Και θα πω και ένα άλλο επιχείρημα. Όταν βλέπω έναν μαθητή να εκτελεί σειριακή αναζήτηση με Για βγάζω το συμπέρασμα ότι το σκέφτηκε μόνος του. όταν βλέπω την σειριακή αναζήτηση του βιβλίου με done, pos και ειδικά αυτό το απίστευτο    αλλιώς   ι <-- ι + 1   δίνω στον μαθητή το όσκαρ της αποστήθισης αφού τα έχει μάθει καλά.

Συγνώμη αλλά για να καταλάβω, τι εννοείς απίστευτο i <- i + 1 ;;;

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

...εννοεί που μπαίνει μέσα σε αλλιώς ....

Βασίλης Παπαχρήστος

Δηλαδή θέλεις να πεις πως θα ήταν προτιμότερο να μην υπήρχε καθόλου το Αλλιώς και να υπήρχε ένα απλό Αν το οποίο θα περιείχε και το i <- i + 1;;;

sstergou

Όντως αυτό το :

αλλιώς
  ι <- ι + 1

είναι άθλιο γιατί δεν σου επιτρέπει να σχηματίσεις σταδιακά τον αλγόριθμο.

Ξεκινάς με μια δομή επανάληψης η οποία προσπελαύνει όλα τα στοιχεία του πίνακα
Όσο ι <= Ν επανάλαβε

  ι <- ι + 1
Τέλος_επανάληψης

και στη συνέχεια προσθέτεις τον έλεγχο, την λογική μεταβλητή την θέση κοκ.

Το μόνο που στα χαλάει για να καταλήξεις στον αλγόριθμο του βιβλίου είναι αυτό το ρημάδι το αλλιώς!

Φαντάζομαι αυτό εννοεί και ο Ευριπίδης.

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

Παράθεση από: Τσιωτάκης Παναγιώτης στις 12 Μαΐου 2010, 10:13:31 ΠΜ
αν στα μαθηματικά/φυσική κάποιος μαθητής αποδείξει/λύσει κάτι σε ΜΙΑ σελίδα αν και μπορεί να το κάνει σε 5 γραμμές κόβονται μονάδες;;

Δεν είναι ειρωνική η ερώτηση, απλά αναρωτιέμαι πως αντιμετωπίζουν το ζήτημα παλιότερα/ωριμότερα από εμάς μαθήματα

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

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

Όμως άλλο αυτό, και άλλο να λέμε στους μαθητές πως αφού δεν κόβονται βαθμοί (που τελικά από ότι φαίνεται άλλοι θα έκοβαν και άλλοι όχι!) τότε κάντε τα όλα με Για για να μην μπερδεύεστε... (αναφέρομαι στο προ-προηγούμενο μήνυμά μου)

Βασίλης Παπαχρήστος

Παράθεση από: sstergou στις 12 Μαΐου 2010, 01:10:52 ΜΜ
Όντως αυτό το :

αλλιώς
  ι <- ι + 1

είναι άθλιο γιατί δεν σου επιτρέπει να σχηματίσεις σταδιακά τον αλγόριθμο.

Ξεκινάς με μια δομή επανάληψης η οποία προσπελαύνει όλα τα στοιχεία του πίνακα
Όσο ι <= Ν επανάλαβε

  ι <- ι + 1
Τέλος_επανάληψης

και στη συνέχεια προσθέτεις τον έλεγχο, την λογική μεταβλητή την θέση κοκ.

Το μόνο που στα χαλάει για να καταλήξεις στον αλγόριθμο του βιβλίου είναι αυτό το ρημάδι το αλλιώς!

Φαντάζομαι αυτό εννοεί και ο Ευριπίδης.

Υπάρχει πάντως λογική μιας και θεωρείς πως στην περίπτωση που βρεθεί το προς αναζήτηση στοιχείο δεν υπάρχει λόγος να συνεχίσεις να προσπελαύνεις τον πίνακα. Φαντάζομαι αυτό ήθελε να τονίσει ο αλγόριθμος που παρουσιάζεται στο βιβλίο. Θα ήταν βέβαια πιο κομψό αν δεν χρησιμοποιούσε κάθολου το pos και σου έλεγε πως αν το στοιχείο έχει βρεθεί, η θέση του είναι το ίδιο το i.

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

Παράθεση από: Βασίλης Παπαχρήστος στις 12 Μαΐου 2010, 01:01:56 ΜΜ
Δηλαδή θέλεις να πεις πως θα ήταν προτιμότερο να μην υπήρχε καθόλου το Αλλιώς και να υπήρχε ένα απλό Αν το οποίο θα περιείχε και το i <- i + 1;;;

Το  i <- i + 1 θα μπορούσε να βρίσκεται έξω από την Αν και πριν το Τέλος_επανάληψης. Με αυτόν το τρόπο η Όσο θα ερχόταν πιο κοντά στη Για για την οποία γίνεται παράλληλη συζήτηση και άρα οι μαθητές (και όχι μόνο!) θα έβλεπαν ουσιαστικά ότι η Όσο της σειριακής αναζήτησης είναι ουσιαστικά μια ενισχυμένη Για (τώρα από κάπου το έχω κλέψει αυτό!) με δυνατότητα γρηγορότερου τερματισμού...

Βασίλης Παπαχρήστος

Παράθεση από: Νίκος Αδαμόπουλος στις 12 Μαΐου 2010, 01:18:58 ΜΜ
Το  i <- i + 1 θα μπορούσε να βρίσκεται έξω από την Αν και πριν το Τέλος_επανάληψης. Με αυτόν το τρόπο η Όσο θα ερχόταν πιο κοντά στη Για για την οποία γίνεται παράλληλη συζήτηση και άρα οι μαθητές (και όχι μόνο!) θα έβλεπαν ουσιαστικά ότι η Όσο της σειριακής αναζήτησης είναι ουσιαστικά μια ενισχυμένη Για (τώρα από κάπου το έχω κλέψει αυτό!) με δυνατότητα γρηγορότερου τερματισμού...
ok κατανοητό! ευχαριστώ για τη διευκρίνιση

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

Παράθεση από: Νίκος Αδαμόπουλος στις 12 Μαΐου 2010, 01:18:58 ΜΜ
... είναι ουσιαστικά μια ενισχυμένη Για (τώρα από κάπου το έχω κλέψει αυτό!) με δυνατότητα γρηγορότερου τερματισμού...

Το βρήκα: https://alkisg.mysch.gr/steki/index.php?topic=2373.msg19244#msg19244

Και ένα σχετικό θέμα: https://alkisg.mysch.gr/steki/index.php?topic=2531.msg21229#msg21229

Σπύρος Δουκάκης

Δεν νομίζω ότι είναι επιστημονικά τεκμηριωμένη λύση η χρήση της Για κατά την αναζήτηση σε ταξινομημένο.

Μάλλον είναι τεκμηριωμένο ότι δεν είναι σωστή λύση και μάλιστα είναι και αντιεπιστημονική.

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

Όμως η αναζήτηση σε ταξινομημένο...

Όσο για την ανάγκη μας να δούμε αν έχουν οι μαθητές παπαγαλίσει (αλήθεια γιατί αποτελεί ανάγκη μας;)... νομίζω ότι δεν είναι ο αλγόριθμος της θεωρίας το τμήμα που θα το ελέγξουμε, αλλά ένα πλήθος ασκήσεων... Ούτως ή άλλως ξεκινάμε -υποθέτω- από αναζήτηση πλήθους και καταλήγουμε σε αναζήτηση στοιχείου και συγγραφή κατάλληλου αλγορίθμου (αν χρειάζεται το αλλιώς, αν το done είναι απαραίτητο ή μπορεί να γίνει με τη θέση, αν θέλει πόσα, αν θέλει κάποια, αν θέλει θέσεις, αν θέλει κάποιες θέσεις...) και τόσα άλλα θέματα που ένας παπαγάλος έχει χάσει...

Πέρσι στα θέματα μπήκε η εντολή

Αν συνθήκη τότε Αντιμετάθεσε x, y
...

Οι μαθητές που δεν είχαν διδαχτεί την απλή επιλογή χωρίς το Τέλος_αν έχασαν τη μπάλα, επειδή κάποιοι συνάδελφοι ως χειραφετημένοι και μάγκες δίδασκαν αποκλειστικά γλώσσα... Αυτό το λέω για αυτούς που διδάσκουν μόνο Για και όπως λέει ο Νίκος είναι απαράδεκτο...

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

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

evry

Παράθεση από: sdoukakis στις 12 Μαΐου 2010, 01:28:43 ΜΜ
Δεν νομίζω ότι είναι επιστημονικά τεκμηριωμένη λύση η χρήση της Για κατά την αναζήτηση σε ταξινομημένο.

Μάλλον είναι τεκμηριωμένο ότι δεν είναι σωστή λύση και μάλιστα είναι και αντιεπιστημονική.
Ποια αναζήτηση έχεις στο μυαλό σου? Η δυαδική δεν είναι εκτός ύλης? Αν εννοείς τη σειριακή σκέψου ότι κάνει μια σύγκριση παραπάνω για να ελέγξει αν α[ι]>key οπότε το overhead που έχεις από αυτό δεν ξέρω αν σου δίνει τόσο καλή απόδοση. Αν υπολογίσεις τις μέσες χρονικές πολυπλοκότητες των 2 αλγορίθμων θα δεις ότι δεν έχουν και τόσο μεγάλη διαφορά.
Αυτό λοιπόν που λες ισχύει εφόσον οι μαθητές έχουν διδαχθεί την δυαδική αναζήτηση. Αν δεν έχουν διδαχθεί αυτή την αναζήτηση γιατί θα το βαθμολογήσεις λάθος? Δεν είναι τραβηγμένο? Θα σου δώσω ένα παράδειγμα για να καταλάβεις γιατί στο μάθημα που διδάσκουμε με αυτή τη μορφή δεν μπορείς να κόψεις μονάδες από κάτι τέτοιο:

Ζητήθηκε από έναν μαθητή να εμφανίσει το στοιχείο που βρίσκεται στην 3η γραμμή και την 7η στήλη ενός πίνακα ΝxN και έδωσε τον παρακάτω αλγόριθμο

Για γ από 1 μέχρι Ν
   Για σ από 1 μέχρι Ν
       Αν (γ=3 και σ=7)  Τότε   Εμφάνισε Α[γ,σ]
   Τέλος_Επανάληψης
Τέλος_Επανάληψης


Θα μπορούσες να κόψεις από αυτό? Προφανώς όχι γιατί η έννοια της επίδοσης του αλγορίθμου δεν είναι στην ύλη. Εδώ λοιπόν έχουμε ένα πρόβλημα που μπορεί να λυθει με αλγόριθμο πολυπλοκότητας Ο(1) και ο μαθητής το λύνει με αλγόριθμο τάξης O(n^2) και δεν του κόβουμε και εσύ προτείνεις να κόβουμε για λύση η οποία έχει την ίδια πολυπλοκότητα O(n) με τη βέλτιστη? Δεν σου φαίνεται λίγο παράδοξο?

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

Παράθεση
Να πω και κάτι τελευταίο. Σύμφωνα με το ΠΣ (πρόγραμμα σουδών) πρετοιμάζουμε μαθητές και για την τριτοβάθμια εκπάιδευση. Αποτελεί βασικό θέμα των δομών δεδομένων η αναζήτηση και αφού μπορούμε σε επίπεδο στατικών δομών να την αξιολογήσουμε πλήρως , θεωρώ ότι είναι σημαντικό να την αξιολογούμε πλήρως.
Εντάξει, δεν πάνε όμως όλοι οι μαθητές της τεχνολογικής σε σχολές πληροφορικής αλλά τι εννοείς να την αξιολογήσεις πλήρως?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

evry

Μα με την τελευταία πρότασή σου αναιρείς τα προηγούμενα. Δηλαδή γιατί να χρειάζεσαι την τιμή του i από τη στιγμή που έχεις την pos. Και αφού έχεις την pos γιατί να μην χρησιμοποιήσεις την ίδια για τιμή-φρουρό. Προφανώς ο αλγόριθμος αυτός αντιγράφηκε από κάποιο ξένο βιβλίο (done, pos ...) και πρέπει να τον διδάσκουμε έτσι.
  Πραγματικά σκέψου ότι αν κάποιος υποψιασμένος μαθητής σου κάνει τις παρακάτω ερωτήσεις δεν ξέρεις τι να απαντήσεις

1) Γιατί χρειαζόμαστε την pos αφού το i δεν θα αλλάξει;
2) Γιατί υπάρχει αυτό το αλλιώς;
3) Γιατί να μην βάλω τη συνθηκή pos>0 αντι για την done? δεν είναι το ίδιο;
4) Μπορώ να ονομάσω τη δική μου μεταβλητή ΒΡΕΘΗΚΕ ή θα μου κόψουν τίποτα

άσε το άλλο που κάποιοι μαθητές όποια λογική μεταβλητή χρησιμοποιήσουν θα την ονομάσουν done!!! Αυτό που το πάς;

Παράθεση από: Βασίλης Παπαχρήστος στις 12 Μαΐου 2010, 01:18:16 ΜΜ
Υπάρχει πάντως λογική μιας και θεωρείς πως στην περίπτωση που βρεθεί το προς αναζήτηση στοιχείο δεν υπάρχει λόγος να συνεχίσεις να προσπελαύνεις τον πίνακα. Φαντάζομαι αυτό ήθελε να τονίσει ο αλγόριθμος που παρουσιάζεται στο βιβλίο. Θα ήταν βέβαια πιο κομψό αν δεν χρησιμοποιούσε κάθολου το pos και σου έλεγε πως αν το στοιχείο έχει βρεθεί, η θέση του είναι το ίδιο το i.

ούτε το μυαλό μου να διάβαζες αυτό ακριβώς εννοούσα ότι το σημαντικό είναι να δείξεις στον μαθητής πως μπορείς να προκύψει αυτός ο αλγόριθμος από αυτά που ξέρεις με έναν "ανώδυνο" τρόπο και αυτό το καταραμένο αλλιώς στα χαλάει όλα
Παράθεση από: sstergou στις 12 Μαΐου 2010, 01:10:52 ΜΜ
Φαντάζομαι αυτό εννοεί και ο Ευριπίδης.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

pgrontas

#31
Πάντως παιδιά, κατά την γνώμη μου το i<-i+1 μέσα στο αλλιώς της σειριακής δεν το θεωρώ τόσο τραγικό.
Συμβαδίζει με την περιγραφή σε υψηλότερο επίπεδο που λέει: αν το βρεις σημείωσε την θέση, αλλιώς προχώρα (i<-i+1).
Αλλιώς κάποιος οξυδερκής μαθητής μπορεί να μας βουλώσει λέγοντας αφού το βρήκαμε γιατί προχωράμε; Δεν είναι περιττό βήμα, χωρίς νόημα αφού το έχεις βρει;
Έχετε δίκιο βέβαια ότι μας χαλάει τον σχηματισμό της όσο. Μπορούμε όμως να φτιάξουμε την όσο και να το παρουσιάσουμε αυτό ως μια βελτίωση μετά τον σχηματισμό της.
Και φυσικά δεν χρειάζομαστε την pos ή από την άλλη την ΒΡΕΘΗΚΕ, done, όπως λέει ο Ευριπίδης. Προσωπικά όμως νομίζω ότι η παραπάνω ερώτηση (γιατί προχωράμε δηλ. μας 'εκθέτει' περισσότερο)
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

Σπύρος Δουκάκης

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

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

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

Παράθεση από: evry στις 12 Μαΐου 2010, 05:27:09 ΜΜ
Θέλω να πω ότι άλλο πράγμα είναι να διδάσκουμε και να εξηγούμε στους μαθητές ότι δεν είναι καλή πρακτική (από επιστημονικής πλευράς) να κάνουν σειριακή αναζήτηση με Για, αλλά μέχρι εκεί. Δεν μπορείς να κόβεις από έναν μαθητή που αποτυπώνει τη σκέψη του σωστά στο χαρτί μόνο και μόνο επειδή δεν έχει μαθει απέξω τον αλγόριθμο του βιβλίου ή επειδή δεν έχει σκεφτεί να τον κάνει αποδοτικότερο χωρίς να τον έχει ενημερώσει κανένας ότι αυτό βαθμολογείται. Δεν το θεωρώ σωστό.

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

evry

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

Ο αλγόριθμος που συζητάμε πληροί και τα 2 παραπάνω κριτήρια εφόσον δεν έχουμε μιλήσει για δυαδική αναζήτηση άρα είναι επιστημονικά τεκμηριωμένος.

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

Φυσικά το σωστό και το λάθος είναι αρκετά υποκειμενικές έννοιες, γιατί αν σκεφτούμε όπως είπες πως προετοιμάζουμε και υποψήφιους φοιτητές πληροφορικής πολύ θα ήθελα να δω τι απάντηση θα δίναμε σε αυτά τα παιδιά όταν γεμάτα απορία θα μας ρώταγαν:
Στον παρακάτω αλγόριθμο αναζήτησης που είναι το λάθος;

for (int k=0; k<N;k++)
   if (A[k]==key)
       return true;
return false;
 
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αλεξόπουλος Ανδρέας

Αν και ξεφεύγω λίγο από το θέμα της αναζήτησης αλλά παραμένοντας στο πότε θα κόβονταν μονάδες από έναν αλγόριθμο.
3ο θέμα στις Πανελλήνιες των εσπερινών 2007. Σε μια άσκηση που ζητάει να υπολογίσουμε το κόστος ασφάλισης. Αφού λοιπόν έχουμε υπολογίσει γενικά το κόστος ασφάλισης μας λέει οτι προσαυξάνεται κατά 10% αν ο οδηγός είναι από 18 ως και 24 χρονών. Και επίσης έχει μια σημείωση στο τέλος ότι θεωρούμε η ηλικία είναι μεγαλύτερη του 18. Οπότε κάποιος γράφει το παρακάτω:

Αν η>=18 και η<=24 Τότε
  τελικό_κόστος <- αρχικό_κόστος + 0.10*αρχικό_κόστος
Αλλιώς_Αν η>24 Τότε
   τελικό_κόστος <- αρχικό_κόστος
Τέλος_Αν

έχουμε κάνει βασικά δυο περιττούς ελέγχους αφού μπορεί να γραφεί απλά

Αν η<=24 Τότε
τελικό_κόστος <- αρχικό_κόστος + 0.10*αρχικό_κόστος
Αλλιώς
   τελικό_κόστος <- αρχικό_κόστος
Τέλος_Αν

ή ακόμα πιο απλά να μην είχαμε καν την μεταβλητή τελικό_κόστος και να το γράφαμε

Αν η<=24 Τότε
αρχικό_κόστος <- αρχικό_κόστος + 0.10*αρχικό_κόστος
Τέλος_Αν

και το βιβλίο μας λέει ότι : "ένα συχνό λάθος που παρατηρείται στα προγράμματα είναι ο έλεγχος περιττών συνθηκών. Οι επιπλέον έλεγχοι αυξάνουν την πολυπλοκότητα του προγράμματος"
Άρα αν κάποιος έχει δώσει την πρώτη απάντηση που έγραψα (ή ακόμα και την δεύτερη αφού τελικά το πρόγραμμα βγαίνει ακόμα πιο απλά με την τρίτη εκδοχή), του κόβουμε μονάδες;
Γιατί και σε αυτή την περίπτωση για πολυπλοκότητα μιλάμε την οποία μάλιστα το βιβλίο κάνει σύσταση ότι πρέπει να αποφεύγουμε. Άρα θα κόβονταν μονάδες σε πανελλήνιες;

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

Παράθεση από: evry στις 12 Μαΐου 2010, 10:58:08 ΜΜ
...πληρ...

for (int k=1; k<=N;k++)
   if (A[k-1]==key)
       return true;
return false;

(αν και δεν ξέρω το γενικότερο πλαίσιο του παραπάνω τμήματος κώδικα...)

OK, παίδες, καταλάβαμε...!  Όχι άλλο!   :D

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

Παράθεση από: Αλεξόπουλος Ανδρέας στις 13 Μαΐου 2010, 01:01:20 ΠΜ
Αν και ξεφεύγω λίγο από το θέμα της αναζήτησης αλλά παραμένοντας στο πότε θα κόβονταν μονάδες από έναν αλγόριθμο.
3ο θέμα στις Πανελλήνιες των εσπερινών 2007....

Σχετική ήταν και η εξής συζήτηση: https://alkisg.mysch.gr/steki/index.php?topic=2145.0

evry

Σωστός Νίκο το διόρθωσα

@Αλεξόπουλος Ανδρέας
Αυτό είναι το πρόβλημα. Ότι αν αρχίσουμε να κόβουμε για θέματα απόδοσης ή περιττούς υπολογισμούς τότε ανοίγουμε κυριολεκτικά το κουτί της Πανδώρας. Υπάρχουν πολλές περιπτώσεις στις οποίες μπορείς να κόψεις έλα όμως που δεν είναι όλες ίδιες. Οπότε πόσο θα κόψεις σε κάθε περίπτωση;
Η μόνη λύση στο θέμα αυτό κατά τη γνώμη μου είναι να εισάγουμε τον όρο της αλγοριθμικής τάξης οπότε θα δίνουμε μονάδες ανάλογα με την πολυπλοκότητα του αλγορίθμου που είναι μετρήσιμο χαρακτηριστικά.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Αλεξόπουλος Ανδρέας

@evry, την είχα διαβάσει εκείνη τη συζήση που λες. απλά ρωτάω πάλι γιατί όταν βλέπω ότι κόβονται μονάδες σε κάποια βαθμολογικά για πράγματα τα οποία θεωρούσα αυτονόητα μέχρι τώρα ότι δεν κόβονται, είπα να ξαναρωτήσω τι θα συνέβαινε και σε αυτή τη περίπτωση.
Γιατί όπως και να χει (είτε μας αρέσει είτε όχι) οι πανελλήνιες είναι πανελλήνιες. Δεν είναι εξετάσεις στο πανεπιστήμιο που άμα δε συμφωνούσαμε με κάποιο βαθμό μπορούσαμε να πάμε στο γραφείο του καθηγητή, να το συζητήσουμε και πιθανώς αν του δείχναμε ότι αυτό που γράψαμε δεν ήταν τόσο λάθος όσο νόμιζε, να μας άλλαζε το βαθμό. Γιατί τα παιδία περιμένουν ξεκάθαρη θέση από εμάς. Δεν μπορείς να τους λες, η άσκηση είναι σωστή αν την λύσεις έτσι, αλλά πρέπει να είσαι και λίγο τυχερός σε ποιο βαθμολογικό κέντρο θα πέσεις, γιατί εκεί μπορεί να έχουν διαφορετική άποψη.
Γιατί κι εγώ είμαι υπέρ της αλγοριθμικής σκέψης και όχι της καθαρής παπαγαλίας της θεωρίας και μεθογολογιών που λύνουν κάποιους αλγορίθμους, αλλά μέχρι εκεί. Από εκεί και πέρα πρέπει και εμείς οι ίδιοι να έχουμε ξεκάθαρες απαντήσεις να δόσουμε σε κάποια θέματα.
Γιατί μια φορά θυμάμαι σε μια άσκηση που είχε μέσα κάποια μορφή αναζήτησης είπα σε ένα μαθητή μου γιατί την κάνεις με ΓΙΑ και όχι με ΟΣΟ (θέλοντας να δω τι θα μου απαντήσει). Και η φυσιολογική του απάντηση ήταν: γιατί να την κάνω με ΟΣΟ; την κάνω με ΓΙΑ αφού είναι πιο γρήγορο να το γράψω και αφού δεν μου ζητάει να σταματάει όταν το βρει.
Εγώ απλά συμφώνησα μαζί του λέγοντας του πώς αν έπρεπε η αναζήτηση να σταματάει θα χρειαζόταν το ΟΣΟ (κάτι το οποίο βέβαια ο μαθητής το είχε ήδη καταλάβει αλλά αφού δε του το ζητούσε η άσκηση δε θεώρησε ότι πρέπει να το κάνει με οσο)

Το τελευταίο απλά το γράφω σαν παράδειγμα για να τονίσω αυτό που είπα πριν. Ότι δεν είμαστε σχολή πληροφορικής αλλά ετοιμάζουμε μαθητές για πανελλήνιες. Ωραία η αγάπη για το μάθημα, την αλγοριθμική σκέψη και τις προτότυπες ασκήσεις, αλλά μην καταστρέφουμε μόνοι μας την εικόνα του μαθήματος.

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

Παράθεση από: Νίκος Αδαμόπουλος στις 12 Μαΐου 2010, 08:30:23 ΠΜ
Άσχετα με το αν πρέπει να κόβονται μονάδες ή όχι, που από ότι φαίνεται οι απόψεις διίστανται, το παραπάνω κατά τη γνώμη μου είναι απαράδεκτο!  :-X
Συμφωνώ μαζί σου Νικο ότι αυτό είναι απαράδεκτο και δεν πρέπει να συμβαίνει.

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

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

Ετσι και σε αυτό που αναφέρεις,κάποιοι θα κόψουν μονάδες, οι περισσότεροι νομίζω πως όχι.