Πρέπει να κοπούν βαθμοί;

Ξεκίνησε από gpapargi, 10 Φεβ 2009, 09:59:13 ΠΜ

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

gpapargi

Σε άσκηση που ζητάει να βρεθεί ο μέσος όρος 100 αριθμών που διαβάζονται από είσοδο ένας μαθητής απαντάει:

Σ<-0
Για ι από 1 μέχρι 100
   Διάβασε χ
   Σ<-Σ+χ
   ΜΟ<-Σ/ι
Τέλος_επανάληψης
Εμφάνισε ΜΟ

Το αποτέλεσμα μπορεί να είναι σωστό αλλά είναι φανερό ότι ο μαθητής δεν καταλαβαίνει τίποτα αφού κάνει τη διαίρεση μέσα.

Η ερώτηση είναι: «πόσους βαθμούς πρέπει να πάρει στα 10;»

ΥΓ
Το παραπάνω παράδειγμα δεν είναι αληθινό. Το έφτιαξα για να γίνει κουβέντα σχετικά με το τι γίνεται σε εξόφθαλμα λάθη που δίνουν σωστό αποτέλεσμα. Θα μπορούσα να φτιάξω πολλά τέτοια παραδείγματα με Όσο, Μέχρις_ότου κλπ. Να μη σταθούμε σε οτιδήποτε δε μας αρέσει αλλά μόνο στη διαίρεση εντός του βρόχου που δείχνει ότι ο μαθητής δεν καταλαβαίνει τι κάνει.

petrosp13

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

P.Tsiotakis

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

Δεδομένα //Α//  ! 200 στοιχεία
μιν <-- Α[108]
Για ι απο 1 μεχρι 200
  Αν Α[ι] < μιν τότε
     μιν <-- Α[ι]
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μιν

Το σωστό είναι;;;
Δεδομένα //Α//  ! 200 στοιχεία
μιν <-- Α[108]
Για ι απο 1 μεχρι 200
  Αν Α[ι] < μιν και ι <> 108 τότε
     μιν <-- Α[ι]
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μιν

evry

#3
Παναγιώτη το παράδειγμα που δίνεις δεν είναι αντίστοιχο με το παράδειγμα που έδωσε ο Γιώργος.
Ποιος λέει ότι πρέπει να αρχικοποιήσεις με το πρώτο? δεν είναι κάποιος κανόνας. Με όποιο θέλεις αρχικοποιείς. Μάλιστα αν θα έπρεπε να απορρίψουμε κάποιο από τα τμήματα κώδικα που έγραψες μάλλον θα απορρίπταμε το 2ο και όχι το 1ο, το οποίο απλά κάνει μια μόνο παραπάνω περιττή σύγκριση.

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


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

Δίνω 1 ακόμα παράδειγμα στο σκεπτικό του Γιώργου (όπως το έχω καταλάβει εγώ δηλαδή)

Σ<-0
Για ι από 1 μέχρι 100
   Διάβασε χ
   Αν χ > 0 τότε
      θετικοί <- θετικοί +1
   Τέλος_Αν
   ποσοστό <- θετικοί / ι
Τέλος_επανάληψης
Εμφάνισε ποσοστό

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

pgrontas

Παιδιά εγώ νομίζω ότι πρέπει να κοπουν βαθμοί στο παράδειγμα του Γιώργου και μάλιστα αρκετοί.
Το ότι το αποτέλεσμα είναι σωστό είναι κάτι εντελώς συγκυριακό.
Στο μάθημα μας δεν έχει αξία το αποτέλεσμα αλλά τα βήματα που έχεις ακολουθήσει για να φτάσεις εκεί. Εδώ τα βήματα αυτά είναι λάθος. Εγώ στα δεκα θα έκοβα τα πέντε.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gpapargi

Εννοώ αυτό ακριβώς που κατάλαβε ο Ευριπίδης.

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

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

Wizard

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

P.Tsiotakis

Μάγκες, το σχόλιό μου αφορούσε αυτό που έγραψε ο Πέτρος...

Παράθεση από: petrosp_13 στις 10 Φεβ 2009, 10:42:07 ΠΜ
Αντίστοιχη περίπτωση "λάθους" είναι η αναζήτηση μεγίστου σε μονοδιάστατο πίνακα, να θέτεις αρχικά σαν μέγιστο το πρώτο στοιχείο και να ξεκινάς κατόπιν την επανάληψη από 1
Θεωρώ και γω όπως και σεις οτι δεν είναι ίδια περίπτωση

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

ΩΣΤΟΣΟ, αν το ερώτημα της άσκησης είναι "να εμφανίζει το μέσο όρο", τότε απαντάει μήπως σωστά;
Αν το ερώτημα είναι "να υπολογίζει και να εμφανίζει το μέσο όρο", τότε χάνει σίγουρα μονάδες.


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



petrosp13

#8
Παράθεση από: Τσιωτάκης Παναγιώτης στις 10 Φεβ 2009, 11:07:57 ΠΜ
Δηλαδή στον παρακάτω αλγόριθμο εύρεσης ελαχίστου (που ΔΕΝ αρχικοποίησα με το πρώτο αλλά με άλλο στοιχείο), πρέπει να κοπούν 2 μονάδες στις 10;

Δεδομένα //Α//  ! 200 στοιχεία
μιν <-- Α[108]
Για ι απο 1 μεχρι 200
  Αν Α[ι] < μιν τότε
     μιν <-- Α[ι]
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μιν

Το σωστό είναι;;;
Δεδομένα //Α//  ! 200 στοιχεία
μιν <-- Α[108]
Για ι απο 1 μεχρι 200
  Αν Α[ι] < μιν και ι <> 108 τότε
     μιν <-- Α[ι]
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μιν

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

Και στην τελική, εφόσον θέσεις το πρώτο σαν μέγιστο και όχι το 108ο, είναι ανεπίτρεπτο για την κοινή λογική να ξεκινήσεις την επανάληψη από 1 και αυτό εννοούσα. Δεν χρειάζεται να κάνουμε σύγκριση σε μεθόδους και προτιμήσεις

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

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

Αυτά και με συγχωρείτε που ξέφυγα από το θέμα
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

S_Siokos

Πάλι κάτι έχασα...

Για παρανόηση στο μαθηματικό τύπο θα κόψετε από 1-5 μονάδες στα 10 ανεξάρτητα του ότι τελικά υπολογίζει το αποτέλεσμα..?
Δλδ θα συνυπολογιστεί και η αποδοτικότητα του αλγορίθμου? Το γεγονός ότι κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή δεν λαμβάνεται υπόψιν? Το ανησυχητικότερο όλων όμως νομίζω πως είναι το γεγονός ότι κάποιοι κόβουν μονάδες σύμφωνα με την ποιότητα της λύσης και άλλοι όχι.. Και προφανώς δεν μιλάω για το συγκεκριμένο παράδειγμα...

evry

Κατ'αρχήν δεν πρόκειται για παρανόηση στον μαθηματικό τύπο αλλά για παρανόηση στον αλγοριθμικό τύπο. Δηλαδή στα βήματα που ζητούνται. Άρα το θέμα είναι σημαντικό. Επίσης να ξεκαθαρίσουμε τι ακριβώς σημαίνει επιστημονικά τεκμηριωμένη λύση. Σημαίνει ότι τεκμηριώνεται επιστημονικά. Και πως μπορούμε να τεκμηριώσουμε επιστημονικά την ορθότητα ενός αλγορίθμου?
1) Αποδεικνύοντας ότι τερματίζει
2) Αποδεικνύοντας ότι εκτελεί σωστά τα βηματα που πρέπει να εκτελέσει, τίποτα περισσότερο και τίποτα λιγότερο και ότι το αποτέλεσμα που βγάζει είναι ορθό.

ʼρα στα πλαίσια του μαθημάτος το "επιστημονικά τεκμηριωμένη" πάει περίπατο.

Τώρα σχετικά με τη βαθμολόγηση. Προφανώς η κουβέντα γίνεται στο επίπεδο του τι θα θέλαμε ή θεωρούμε σωστό ότι ισχύει ή τι κάνουμε στην τάξη μας.
Δε νομίζω ότι στη βαθμολόγηση των πανελληνίων μπορείς να κόψεις 5 μονάδες επειδή εσύ πιστεύεις ότι αυτό είναι το σωστό ακόμα και αν έχεις δίκιο. Υπάρχει ενημέρωση από τους επόπτες και η αντιμετώπιση σε τέτοια θέματα είναι ενιαία.
   Απλά πάντα υπάρχει και ο υποκειμενικός παράγοντας, για παράδειγμα μπορεί να κοπεί 1 μονάδα στις 100 για κάτι τέτοιο ή και 2 αλλά και πάλι εξαρτάται. Και φυσικά κανείς δεν κόβει μονάδες για την ποιότητα της λύσης. Το πιθανότερο που μπορεί να συμβεί είναι να πριμοδοτήσεις με 2-3 μονάδες ίσως κάποιον που έχει κάνει μια έξυπνη λύση και έχει χάσει μονάδες για μια απροσεξία κάπου αλλού. Αλλά σίγουρα κανείς δεν κοβεί εκεί που έχει συμφωνηθεί ότι δεν πρέπει να κόψει ακόμα και αν αυτό είναι λάθος

Παράθεση από: S_Siokos στις 11 Φεβ 2009, 03:58:56 ΜΜ
Πάλι κάτι έχασα...

Για παρανόηση στο μαθηματικό τύπο θα κόψετε από 1-5 μονάδες στα 10 ανεξάρτητα του ότι τελικά υπολογίζει το αποτέλεσμα..?
Δλδ θα συνυπολογιστεί και η αποδοτικότητα του αλγορίθμου? Το γεγονός ότι κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή δεν λαμβάνεται υπόψιν? Το ανησυχητικότερο όλων όμως νομίζω πως είναι το γεγονός ότι κάποιοι κόβουν μονάδες σύμφωνα με την ποιότητα της λύσης και άλλοι όχι.. Και προφανώς δεν μιλάω για το συγκεκριμένο παράδειγμα...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

Παράθεση από: S_Siokos στις 11 Φεβ 2009, 03:58:56 ΜΜ
Πάλι κάτι έχασα...

Για παρανόηση στο μαθηματικό τύπο θα κόψετε από 1-5 μονάδες στα 10 ανεξάρτητα του ότι τελικά υπολογίζει το αποτέλεσμα..?
Δλδ θα συνυπολογιστεί και η αποδοτικότητα του αλγορίθμου? Το γεγονός ότι κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή δεν λαμβάνεται υπόψιν? Το ανησυχητικότερο όλων όμως νομίζω πως είναι το γεγονός ότι κάποιοι κόβουν μονάδες σύμφωνα με την ποιότητα της λύσης και άλλοι όχι.. Και προφανώς δεν μιλάω για το συγκεκριμένο παράδειγμα...

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

Τι μας δείχνει αυτό;
Προφανώς ότι ο μαθητής ξέρει καλά το μαθηματικό τύπο και νομίζει ότι αυτό ακριβως κάνει ο κώδικας που έδωσε. Άρα δεν καταλαβαίνει τι κάνει.

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

Στο αρχικό παράδειγμα που αναφέρει ο Γιώργος νομίζω ότι πρέπει να κοπούν 2 στα 10 (με βαθμολόγηση 0-100)

ntzios kostas

#13
Στο συγκεκριμένο παράδειγμα του Γιώργου, η άποψη μου είναι ότι δεν πρέπει να κοπούν μονάδες. Παρότι είναι πολύ παράλογο και επανειλημμένα δίνω παραδείγματα στους μαθητές μου για την κακή θέση της εντολής, δεν νομίζω ότι πρέπει να κοπούν μονάδες αφού βγάζει το αποτέλεσμα. Αυτό ζητάμε αυτό βγάζει. 
Αν πρέπει να κόψουμε μονάδες και σε αυτό τότε θα πρέπει να κόψουμε και από άλλες λύσεις που δεν τις θεωρούμε ιδανικότερες. Για παράδειγμα αν θέλουμε να κάνουμε έλεγχο εγκυρότητας μίας τιμή ας πούμε να είναι θετική και πρέπει να εμφανίζουμε ένα μήνυμα λάθους, τότε υπάρχουν δύο δεκτές λύσεις
η πρώτη
διάβασε χ
αν χ<0 τότε
αρχή_επανάληψης
     γράψε '....'
     διάβασε χ
μέχρις_ότου χ=>0
τέλος_αν


και η δεύτερη

διάβασε χ
αρχή_επανάληψης
    αν χ<0 τότε
        γράψε '....'
        διάβασε χ
    τέλος_αν
μέχρι_ότου χ>=0


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

gpapargi

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

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

Διάβασε χ
Όσο χ<0 επανάλαβε
  Γράψε «…»
  Διάβασε χ
Τέλος επανάληψης

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