Βαθμολόγηση λύσεων και απόδοση αλγορίθμων

Ξεκίνησε από gpapargi, 03 Ιουν 2007, 11:41:58 ΠΜ

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

gpapargi

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

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

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

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

Δεν είναι πληροφορική παιδιά αυτό. Είναι κάτι άλλο. ΑΟΔΕ μου θυμίζει και με πονάει πολύ αυτό.

johnny_xp

@gpapargi
Όλα αυτά είναι συνέπεια μιας κοινή αρχής η οποία δεν είναι άλλη από την: "έλα μωρέ τώρα...".

Έκανε σεριακή αναζήτηση με ΓΙΑ. "Έλα μωρέ τώρα". "Μη κόψουμε στο παιδί. Τι ΓΙΑ τι ΟΣΟ;". Υπάρχει δε ακόμα πιό ισχυρό επιχείρημα: "Έ το ίδιο δε θα βρεί και με την μια και με την άλλη;"

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

Διέκοψε ένα βρόχο ΓΙΑ αλλάζωντας το μετρητή. "Έλα μωρέ τώρα". Υπάρχει δε ακόμα πιό ισχυρό επιχείρημα: "Το βιβλίο δεν είναι απόλυτο ότι δεν πρέπει να αλλάζουμε το μετρητή εντός του βρόχου". Η ουσία: ότι ο μαθητής δεν έχει καταλάβει ότι δεν έπρεπε να πάρει ΓΙΑ (και για το ότι δεν το έχει καταλάβει φταίμε εμείς οι δάσκαλοι και όχι ο μαθητής) παραλείπεται...

Πιό πρόσφατο παράδειγμα: Ανοίξαμε ολόκληρη - ατελείωτη κουβέντα γιατί δε μπορούμε να δεχθούμε τη παρουσίαση που κάνει το βιβλίο (αν είναι ορθή ή όχι δε το κρίνω) ότι μια ΣΥΝΑΡΤΗΣΗ δεν είναι τόσο ισχυρή σε λειτουργίες όσο μια ΔΙΑΔΙΚΑΣΙΑ...

Θα μπορύσα να αραδιάσω πολλά ακόμα παραδείγματα. Ωστόσο αυτά είναι αρκετά ώστε να καταλάβει κάποιος τι κλίμα περνάμε στους μαθητές. Άλλωστε η αποτελεσματικότητα του αλγορίθμου ειναι και εκτός ύλης και ούτε εξετάζεται. Και μετά εγω όσο και να γκαρίζω "αυτό μη το κάνετε έτσι" η απάντηση είναι η ίδια "εμένα μου είπε (ο άλλος καθηγητής) πως και έτσι σωστό είναι. Γιατί να κάνω το πιό πολύπλοκο που λες εσύ;" !

P.Tsiotakis


Μήπως λοιπόν, ένα μεγάλο πρόβλημα είναι το "έλα μωρέ τώρα;" και πρέπει να ανοίξουμε μια ωραία συζήτηση για αυτό;;


Sergio

Σε επίπεδο διδασκαλίας, είμαι προσωπικά πεπεισμένος ότι πρέπει να διδάσκουμε στην κατεύθυνση της οικοδόμησης από το μαθητή της ορθής συλλογιστικής για την επίλυση προβλημάτων.  Να δίνουν όλο το βάρος αρχικά στην κατανόηση του χώρου του προβλήματος (χαριτολογώντας τους "προστάζω" να ξεκινήσουν με ΚΛΕΙΣΤΟ τετράδιο). Να συνεχίσουν αναλύοντας το πρόβλημα για να διακρίνουν τα επιμέρους δομικά του στοιχεία και να αναγνωρίσουν τα βήματα που θα τους οδηγήσουν από τα ζητούμενα στα δεδομένα (χαριτολογώντας τους προτείνω να ανοίξουν δειλά - δειλα το τετράδιο στο πρόχειρο και να αρχίσουν να "σκιτσάρουν").  Να συνεχίσουν συνθέτοντας τη λύση, ακολουθώντας την αντίστροφη της διαδικασίας που ανκάλυψαν με την ανάλυση ώστε να οδηγηθούν από τα δεδομένα στα ζητούμενα.

Όταν είναι έτοιμοι τότε ξεκινά η επίλυση.  

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

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

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

Εάν ένα μαθητής λύσει μία άσκηση μαθηματικών σε 3 σελίδες αντί για μισή (που θα μπορούσε να δώσει για τη βέλτιστη ή έστω και ενδεδειγμένηλύση), ο μαθηματικός βαθμολογητής τη θεωρεί σωστή και της δίνει το σύνολο των μονάδων.  Θα μπορούσε βέβαια να θεωρήσει ότι δεν υλοποιεί την ορθή μαθηματική σκέψη και πρέπει να χάσει μονάδες.  Χρόνια τώρα όμως αυτό δε γίνεται.  Κακώς ;;

Στο μάθημά μας όμως προβληματιζόμαστε με όμοια περιστατικά. Καλώς;;

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

Η ένοια της "αποτελεσματικότητας" της λύσης δεν οφείλει να υπάρχει και στα υπόλοιπα μαθήματα;

Σε τι διαφέρει το δικό μας (αν διαφέρει);;
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

alkisg

Παράθεση από: Sergio στις 03 Ιουν 2007, 03:59:48 ΜΜ
Η έννοια της "αποτελεσματικότητας" της λύσης δεν οφείλει να υπάρχει και στα υπόλοιπα μαθήματα;

Σε τι διαφέρει το δικό μας (αν διαφέρει);;

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

Στην πληροφορική:
Ένας μαθητής λύνει μια ταξινόμηση με 5 γραμμές, χρησιμοποιώντας τη φυσαλίδα.
Ένας καθηγητής του λέει ότι υπάρχει αποδοτικότερη ταξινόμηση, με 5 σελίδες (π.χ. radix sort).

Τι σχέση έχει η μία επιστήμη με την άλλη; Απολύτως καμία.

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

Στην πληροφορική μια αποτελεσματική λύση θα ήταν μια γρήγορη λύση από πλευράς υπολογιστή, όχι από πλευράς λύτη (ή μια λύση που να καταναλώνει λιγότερη μνήμη κτλ).

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


Έστω ότι δίνεται το πρόβλημα "να λυθεί μια δευτεροβάθμια εξίσωση".
Τον κλασσικό τρόπο τον ξέρουμε όλοι.
Ένας μαθητής αποφασίζει να κάνει το εξής:
Κώδικας: ΓΛΩΣΣΑ
ΓΙΑ Χ1 από -1000000000000 ΜΕΧΡΙ 1000000000000 ΜΕ_ΒΗΜΑ 0.0000000000001
   ΑΝ Τριώνυμο(Χ) = 0 ΤΟΤΕ
     ΓΡΑΨΕ 'Βρέθηκε μια λύση'
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


Όπου η αρχική και τελική τιμή είναι ο μικρότερος/μεγαλύτερος πραγματικός που υποστηρίζει ο υπολογιστής.

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

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

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

alkisg

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

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

Όπως δεν θεωρούμε αποδεκτές τις λύσεις που παιδεύουν τον χαμάλη (= τον λύτη) στις άλλες επιστήμες, έτσι δεν πρέπει να θεωρούμε αποδεκτές και τις λύσεις που παιδεύουν τον χαμάλη (= τον υπολογιστή) στην πληροφορική... :)

pgrontas

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

johnny_xp

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

Έστω πάλι το θέμα των 10 μονάδων. Έστω, για να μιλάμε πιό πρακτικά, ότι το θέμα ζητά σειριακή αναζήτηση. Έστω ότι ο πρώτος μαθητής παρνει ΟΣΟ και ο δεύτερος ΓΙΑ. Ε εκεί κατ' εμέ η βαθμολογία πρέπει να είναι διαφορετική. Το πόσο διαφορετική είναι υποκειμενικό και είναι προς συζήτηση, αλλά διαφορετική. Η ουσιά δεν είναι ότι και οι δυο βρίκσουν το ίδιο, αλλά και με πιό τρόπο το βρίσκουν. Κατά μείζωνα λόγο δε όταν στο συγκεκριμένο θέμα το βιβλίο είναι σαφέστατο. Έκτος πλέον αν επικαλούμαστε το βιβλίο κατεκδοχήν όπου μας "συμφέρει". Αυτή είναι η γνώμη μου. Προσωπικά εγώ θα έδινα 10 μονάδες στο μαθητή με την ΟΣΟ και το πολύ 7 στο μαθητή με τη ΓΙΑ. Το γεγονός ότι ο ένας μαθητής έχει καταλάβει εν προκειμένω περισσότερο από τον άλλον πρέπει να φανεί στη βαθμολογία.

pgrontas

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

johnny_xp

@pgrontas
Έχεις δίκιο, δεν ήμουν ακριβής στην διατύπωση μου. Εννοώ φυσικά σειριακή αναζήτηση όπου το ζητούμενο εμφανίζεται το πολύ μια φορά.

pgrontas

Τότε έχεις απόλυτο δίκιο και οι λύσεις είναι πολύ διαφορετικές και τυπικά και ουσιαστικά.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gpapargi

Στο συγκεκριμένο post θα σχολιάσω απλώς τη συνηθισμένη δικαιολογία που κυκλοφορεί στους κύκλους μας και λέει ότι: «Δεν μπορούμε να ελέγχουμε την απόδοση ενός αλγορλιθμου γιατί το κεφάλαιο της πολυπλοκότητας είναι εκτός ύλης».

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

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

Είναι θέμα κοινής λογικής ότι αν βρω αυτό που ψάχνω δεν υπάρχει λόγος να συνεχίζω να το ψάχνω (περιμένοντας τι άραγε;) Άρα μπορεί να καταλάβει ότι το να κάνει αναζήτηση με «Όσο» είναι καλύτερο από το να κάνει αναζήτηση με τη «Για». Δε χρειάζεται να ξέρει να βρίσκει το πλήθος των βημάτων στη μέση περίπτωση για να το καταλάβει αυτό. Και ένα παιδάκι μπορεί να καταλάβει ότι το σαλόνι του σπιτιού είνα μικρότερο από το σπίτι που το περιέχει. Δε χρειάζεται να ξέρει από εμβαδά. 

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

Σε άλλο post θα γράψω και κάποια πράγματα για τη διαφορά πληροφορικής με τις άλλες επιστήμες, στηρίζοντας ευθέως την άποψη του ʼλκη.

Vangelis

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

Για τον ίδιο ακριβώς λόγο (μαζί με άλλους για να είμαι ακριβής) πρίν από μερικά χρόνια το μάθημα της Πληροφορικής στο Λύκειο έγινε μη γραπτώς εξεταζόμενο.  Ο υπεύθυνος "φοβήθηκε" τους βέρους  προγραμματιστές τους βέρους Hardware-άδες κ.λπ.  Το αποτέλεσμα το ζούμε στο "πετσί" μας σήμερα.

Β.Κ

Sergio

Είμαι πιό κοντά στην άποψη του Βαγγέλη σε αυτή τη συζήτηση.

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

Με απλά λόγια συνήθως τους παρουσιάζω στους μαθητές μου ως εξής:

Αυτό που πρέπει να μάθεις φέτος ΔΕΝ είναι προγραμματισμός Η/Υ.  Αυτό θα το μάθεις του χρόνου.  Φέτος θα μάθεις:
1. Να κατανοείς ένα πρόβλημα που σου δίνεται
2. Να το αναλύεις: να αναγνωρίζεις τα ζητούμενα του προβλήματος καθώς και τα στοιχεία που έχεις στη διάθεσή σου για να το λύσεις.  Να οδηγείσαι βήμα - προς - βήμα από τα ζητούμενα του προβλήματος στα στοιχεία που έχεις στη διάθεσή σου, ανακαλύπτοντας όλα εκείνα βήματα που πρέπει να εκτελέσεις προκειμένου να κατασκευάσεις τα στοιχεία που χρειάζεσαι, μέχρι να χρειάζεσαι μόνο τα στοιχεία που σου δίνονται
3. Να λειτουργείς αντίστροφα και να συνθέτεις τη λύση του προβλήματος που ανέλυσες.  Ο στόχος σου είναι να βρίσκεις τη λύση εκείνη που θα ακολουθούσες ΕΣΥ για να λύσεις το πρόβλημα με το χέρι.
4. Να περιγράφεις τη λύση με τρόπο ακριβή και σαφή.  Για το σκοπό αυτό θα μάθεις να χρησιμοποιείς κάποια εργαλεία τα οποία θα σου επιτρέψουν να είσαι σαφής στην περιγραφή της λύσης σου.  Ο Η/Υ μπαίνει ακριβώς σε αυτό το σημείο.  Αν είσαι σαφής, η λύση σου θα είναι κατανοητή από τον Η/Υ και θα παράγει τα αναμενομενα αποτελέσματα.  Διαφορετικά ψάξε να βρεις που λάθεψες στα προηγούμενα.

Όταν λοιπόν κάποιος μαθητής μου κάνει σειριακή αναζήτηση με ΓΙΑ αντί με ΟΣΟ, τον προτρέπω να κάνει το ίδιο σε μία λίστα από στοιχεία χρησιμοποιώντας για i το δάχτυλό του.  Μόνος του καταλαβαίνει ότι μόλις βρει το στοιχείο δεν πρόκειται να συνεχίσει να κοιτά.  Έτσι κατανοεί το λάθος του και δέχεται ότι πρέπει να το κάνει αλλιώς ώστε ΝΑ ΜΙΜΗΘΕΙ (αλγοριθμικά) αυτό που θα έκανε με το χέρι.  Το ίδιο ισχύει και για την εύρεση του μέγιστου.  Ποτέ δε θα έμπαινε στον κόπο να κάνει ταξινόμηση (αυτό βέβαια εξηγεί και το γεγονός γιατί οι περισσότεροι αλγόριθμοι που διδάσκονται είναι "λαίμαργοι" (greedy) όπως σωστά παρατήρησε σε άλλο σημείο ο evry)

Δε μπαίνω όμως στον κόπο να δώσω άλλη διάσταση από αυτή στην έννοια της αποτελεσματικότητας.  Ειλικρινά, ΔΕΝ πιστεύω ότι ο σκοπός του μαθήματος είναι να διδάξει προγραμματισμό.  Έίναι βασικότερα τα προβλήματα που καλείται να λύσει το συγκεκριμένο μάθημα.  Οι μαθητές δεν ξέρουν να ακουν ΤΙ λέει η διατύπωση ενός προβλήματος, να το κατανοούν, να το αναλύουν και να το λύνουν, έστω και με το χέρι.

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

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

ΑΛΚΗ: μήπως να ανοίγαμε καινούργιο topic και να μεταφέραμε τη συζήτηση εκεί;;
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

alkisg

Παράθεση από: Vangelis στις 03 Ιουν 2007, 06:56:35 ΜΜ
Άμα δεν μπορούμε να συμφωνήσουμε πως πρέπει να βαθμολογείται το μάθημα και διδάσκουμε  αλγορίθμους  με το ένα μάτι στον καθαρό προγραμματισμό ...

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

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

Φυσικά και δεν διδάσκουμε συγκεκριμένη γλώσσα. Ουπς, μισό λεπτό, όντως διδάσκουμε, τη ΓΛΩΣΣΑ. Και ποια ακριβώς είναι τα πλεονεκτήματά της από μια εξελληνισμένη Pascal;
Φυσικά και δεν επιμένουμε στο συντακτικό της ΓΛΩΣΣΑΣ που διδάσκουμε. Ουπς, μισό λεπτό, όντως επιμένουμε, μάλιστα κόβουμε και μονάδες. Η ΔΙΑΒΑΣΕ μέσα σε συνάρτηση φυσικά και δεν αφορά το συντακτικό, αλλά αποσκοπεί στην καλλιέργεια της αλγοριθμικής σκέψης!  >:D

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

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

Ουφ, τα είπα και ησύχασα...