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

Ξεκίνησε από JDS, 06 Φεβ 2006, 06:06:28 ΜΜ

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

JDS

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

andreas

Μόνο σε περίπτωση (Παρατήρηση στο τέλος, συνήθως έτσι δίνεται) ρητής αναφοράς περί μη ενασχόλησης  με την ορθότητα  των δεδομένων  π.χ.
 "Θεωρήστε ότι οι ποσότητες είναι θετικές."
Διαφορετικά να γίνεται έλεγχος δεδομένων (με Μέχρις_ότου ή και με Όσο).

Ανδρέας

xaidi

Εγώ προτείνω στους μαθητές:
Να κάνουν έλεγχο εγκυρότητας φυσικά αν ζητείται (δίνονται κα μόρια τότε φυσικά),
Να μην κάνουν αν η εκφώνηση το καθορίζει ρητά,
Και σε περιπτώσεις που δεν αναφέρεται ούτε το ένα ούτε το άλλο να κάνουν έλεγχο σε περιπτώσεις «χτυπητές» π.χ. ζητάμε να γεμίζουμε πίνακα με αριθμούς μόνο από 1 έως 7 ή με απαντήσεις «ναι» ή «όχι» κλπ.
Πιστεύω πως αν δεν αναφέρεται κάτι στην εκφώνηση δεν ελέγχεται για λάθη και δεν δίνει μόρια ένας τέτοιος έλεγχος εγκυρότητας. Αλλά δεν είμαι ειδική σε βαθμολογήσεις. Θεωρώ όμως ότι για περιπτώσεις που «φωνάζουν» για έλεγχο εγκυρότητας καλό είναι να γίνεται.
Ευχαριστώ,

EleniK

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

Vangelis

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

Βαγγέλης

xaidi

«Πως διδάσκατε αλγορίθμους πριν φτάσετε στην δομή επανάληψης;»

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

Φίλιππος

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

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

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

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

Γιατί θα πρέπει ΠΑΝΤΑ:
- να κάνουν έλεγχο εγκυρότητας (για να είναι σίγουροι)
- να χρησιμοποιούν του συγκριτικούς τελεστές του προγραμματιστικού περιβάλλοντος (για να είναι σίγουροι)
- να χρησιμοποιούν την εντολή ΓΡΑΨΕ (για να είναι σίγουροι)
- να κάνουν είσοδο δεδομένων (για να είναι σίγουροι)

Γιατί προδικάζουμε ότι οι μαθητές δεν έχουν τη διακριτική ικανότητα να καταλάβουν πότε χρειάζεται ΤΙ?  Μήπως για να είμαστε εμείς σίγουροι;

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

EleniK

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

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

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

che

Καλησπέρα...

Αυτό το ζήτημα με έχει απασχολήσει πάρα πολύ. Το μόνο που με χαροποιεί είναι πως σε όλα τα μέχρι τώρα θέματα είτε είχαν μία παρατήρηση στο τέλος, αποτρέποντας τον έλεγχο εγκυρότητας είτε τον ζητούσαν σε κάποιο ερώτημα (πχ περσινό 4ο θέμα)

Με εκτίμηση,

P.Tsiotakis


Κατ΄αρχάς πρέπει να επισημάνουμε τα εξής:

1. Υφίσταται έλεγχος δεδομένων σε αλγόριθμο (παράδειγμα 4 σελίδα 19, τετράδιο μαθητή καθώς και πρόβλημα 8, σελίδα 71 βιβλίο καθηγητή)
2. Ο έλεγχος μπορεί να πραγματοποιείται με δομή επιλογής, αλλά είναι και μια χαρακτηριστική περίπτωση όπου προτιμάται η δομή επανάληψης Μέχρις_ότου (βιβλίο μαθητή, σελίδα 176)
3. Στο βιβλίο καθηγητή στη σελίδα 179 (στη ΓΛΩΣΣΑ) κάνει εκτενή αναφορά στον έλεγχο δεδομένων
4. Είναι δεδομένο οτι όταν ζητείται σε κάποια άσκηση ο έλεγχος δεδομένων, αυτό ΠΡΕΠΕΙ να πραγματοποιηθεί. Αυτό συμβαίνει ευτυχώς στις ασκήσεις των απολυτηρίων εξετάσεων (αλλιώς φαίνεται από το πλήθος των μονάδων που δίνεται σε ένα υποερώτημα - χωρίς αυτό να είναι κανόνας)

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

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

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

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

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

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

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

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

Φίλιππος

Το θέμα είναι να μην ξεφεύγουμε από το στόχο μας.

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

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

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

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

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

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

Μέχρι να αποκτήσουν οι μαθητές έστω και στοιχειωδώς αλγοριθμική σκέψη, μέχρι να μπορούν με ασφάλεια:
- να κατανοούν
- να αναλύουν
- να επιλέγουν τους σωστούς αλγοριθμικούς μηχανισμούς
- να τους υλοποιούν
είναι (ίσως) επικίνδυνο να τους "ζαλίζουμε" με "θορύβους"

yiorgos_5

#11
Γειά σας,είμαι μαθητής Γ'λυκείου και έχω μιά άλλη ερώτηση να σας υποβάλω...Υπάρχουν δυο τρόποι ελέγχου εγκυρότητας

1ος
ΓΡΑΨΕ'Δώσε τον αριθμό:'
ΔΙΑΒΑΣΕ a
Όσο α<0 Επανάλαβε
ΓΡΑΨΕ 'Ο αριθμός είναι εκτός των επιτρεπτών ορίων,εισάγετε ξανά:'
ΔΙΑΒΑΣΕ a
Τέλος_Επανάληψης

2ος

Αρχή_επανάληψης
ΓΡΑΨΕ'Δώσε τον αριθμό:'
ΔΙΑΒΑΣΕ a
Μέχρις_ότου a>=0

Εσείς ποιόν θεωρείτε σωστότερο;και αν θεωρείτε και τους δυο εξίσου λειτουργικούς το ερώτημα γίνετε,ποιον απο τους δυο προτιμάτε;
Δηλαδή με τον 1ο τρόπο θα εμφανιστεί ένα διαφορετικό μήνυμα που θα υποδείξει το λάθος...ενώ στον 2ο τρόπο θα εμφανιστεί το ίδιο μήνυμα...αν έχουμε την περίπτωση που πρέπει να διαβαστούν 20 συγκεκριμένα στοιχεία και να αποθηκευτούν σε συγκεκριμένηθέση ενός πίνακα π.χ. τότε κάνοντας μια λάθος εισαγωγή με την μεχρις_ότου δεν θα υπάρξει ιδιέτερη υπόδειξη και αν δεν το καταλάβει ο χρήστης  θα εισάγει όλα τα υπόλοιπα στοιχεία σε λάθος θέση...Σίγουρα με το Όσο και το μήνυμα λάθους θα φανεί καλύτερο σαν τακτική προγραμματισμού,έτσι;Εγώ προτιμώ πάντα το Όσο εκτός και αν υποδεικνύει την μέχρις_ότου η άσκηση...Καλά κάνω;Δεν είναι καμιά σπουδαία απορία,αλλά θέλω να ακούσω τι έχετε να μου προτείνετε...
Θα πετάξω το o'clock και θα πάρω κομποlock!!!

solaris

Αρχή_επανάληψης
        Διαβασε α
         Αν α < 0 τότε
                  Γράψε 'Λάθος αριθμός! Ξαναδώσε'
         Τέλος_Αν
Μέχρις_ότου α >= 0

Με τον τρόπο αυτό εμφανίζεται και μήνυμα λάθους εισαγωγής.

Προσωπικά, για την εγκυρότητα προτιμώ την Μέχρις_οτου διότι η Συνθήκη της μπαίνει "αυτούσια" ως Συνθήκη εγκυρότητας και αυτό πιστεύω πως βοηθά τους μαθητές. Στην Όσο, αντίθετα, η Συνθήκη πρέπει να μετατραπεί σε συνθήκη ΜΗ εγκυρότητας.

π.χ. εισαγωγή βαθμών στην κλίμακα (0..20]

Με Μέχρις_ότου:

Αρχή_Επανάληψης
Διάβασε β
Μέχρις_Ότου β > 0 ΚΑΙ β <= 20

Με Όσο:

Διάβασε β
Όσο β <= 0 Ή β > 20 επανάλαβε
Διάβασε β
Τέλος_Επανάληψης

Στον 2ο τρόπο πιστεύω ότι υπάρχει μεγαλύτερη πιθανότητα λάθους από τους μαθητές (στην Συνθήκη)

yiorgos_5

Πολύ καλός και ο δικός σου τρόπος....βασικά πιστεύω πως ο καθένας έχει τον δικό του βολικό τρόπο!εμένα με βολεύει η Όσο...τώρα,το εμφωλευμένο αν στην μέχρις_ότου θα μπορούσε να μπερδέψει κάποιους ενώ άλλους όχι...είναι το πώς σκέφτετε ο καθένας...ο μαθητής που έχει καταλάβει την Γλώσσα σε ικανοποιητικό βαθμό δεν έχει κανένα πρόβλημα να αναπτύξει τον δικό του τρόπο...το θέμα είναι με όσους τα μαθαίνουν παπαγαλία!!Αυτοί μπορεί να μπερδευτούν και με το πιο απλό...εγώ πάντως θα επιμείνω πως με την όσο τα πράγματα είναι απλά και ξεκάθαρα γιατί είναι μια η συνθήκη εγυρότητας ενώ με τον δικό σου τρόπο θα πρέπει να σκευτεί και την συνθήκη για την αν...ενώ με την όσο χρησιμοποιεί κατευθείαν την συνθήκη που έβαλες στην αν και ξεμπέρδεψε...τα ίδια είναι στην τελική,έτσι;
Θα πετάξω το o'clock και θα πάρω κομποlock!!!