Το άσπρο πρόβατο

Ξεκίνησε από gpapargi, 31 Μαΐου 2007, 03:08:41 ΜΜ

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

filippos

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

Τι λέτε ρε παιδιά;  Μετά από 7 χρόνια εξακολουθούμε να έχουμε τέτοιες ενστάσεις;

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

filippos

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

filippos

Προς τι το μίσος και ο αλληλοσπαραγμός;

Που το είδατε το goto;

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

Δηλαδή πιστεύετε ότι πρέπει να υπάρχει έστω και ένας μαθητής που να διακιούται να μη μπορεί να κατανοεί έναν αλγόριθμο που του δίνεται ΣΕ ΟΠΟΙΑΔΗΠΟΤΕ μορφή (έστω και τον απλούστατο που δόθηκε) και να τον "σερβίρει" σε δομημένη;

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

Δεν του ζητήθηκε να κωδικοποιήσει αλγόριθμο ΚΑΤΑΣΤΡΑΤΗΓΟΝΤΑΣ τις αρχές του δομημένου προγραμματισμού αλλά το αντίθετο.  Από αυτό μέχρι τη μαζική υστερία της μορφής... "στο εξής διδάσκουμε goto" υπάρχει απόσταση.

Δε βλέπω λόγο ανησυχίας.

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

Τα θέματα των τελευταίων ετών (και τα φετινά) φωνάζουν : ΑΥΤΟ ΤΟ ΜΑΘΗΜΑ ΔΕ ΘΕΛΕΙ ΝΑ ΜΠΕΙ ΣΤΗ ΛΟΓΙΚΗ ΤΩΝ ΣΟΣ.  Όλα είναι μέσα στην ύλη.  Διδάξτε μεθοδικά και μην εστιάζεται σε ένα σημείο. 

Εμένα μου άρεσαν.  Χρόνο με το χρόνο τα θεματ απλωνονται ΣΕ ΟΛΟ το βιβλίο και στην πλήρη έκταση του αναλυτικού προγράμματος.  Οι μαθητές που διάβασαν έτσι τα βρήκαν απλά.  Το θέμα 3 τους δυσκόλεψε αλλά και αυτό επιβεβαίωσε την ΑΝΤΙ-ΣΟΣ φιλοσοφία.

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

Αλλού ας ψάξουμε τα αίτια της αποτυχίας των μαθητών..


Δε μας φτάνει ο χρόνος... Όμως:
- ΔΙΔΑΣΚΕΤΑΙ η αλγοριθμική (έστω και εισαγωγικά) από την Γ' Γυμνασίου;
- Χρησιμοποιείται μέρος του χρόνου των μαθημάτωνεπιλογής των πρώτων τάξεων του Λυκείου για εργαστηριακή ενασχόληση με βασικές έννοιες αλγοριθμικής ή μας βολεύει να τους αφήνουμε να σερφάρουν και εμείς να τυπώνουμε  papers;

Μετά ας μην εκπλησσόμαστε που δε μας φτάνει ο χρόνος στη Γ'Λυκείου.. Περιμένοντας να αλλάξει κάτι θεσμικά (ας μην είναι η εξαίρεση του μαθήματος από το Γενικό Λύκειο) ας κάνουμε κάτι να βελτιώσουμε την ατάσταση με αυτά που έχυμε.

Ο ρόλος του Γυμνασίου (ιδιαίτερα) είναι ουσιαστικός.  Πόσοι συνάδελφοι μπαίνουν στον κόπο να εισαγάγουντους μαθητές στην αλγοριθμική σκέψη;


gpapargi

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

Τα ΔΡ είναι ένα ανθρώπινο κατασκεύασμα όπως και η ψευδογλώσσα. Είναι μέσο για να αναπαραστήσεις ένα αλγόριθμο. Δεν είναι σκοπός. Σκοπός είναι ο αλγόριθμος. Ο τρόπος αναπαράστασης είναι ένα μέσο. Όταν κάτι έχει μειονεκτήματα σε σχέση με κάτι άλλο ξεπερνιέται. Αυτό συνέβη με τα ΔΡ. Ξεπεράστηκαν. Το μόνο πεδίο εφαρμογής τους πια είναι το να δώσεις μια οπτική αντίληψη στο πρώτο στάδιο κατανόησης των εντολών επανάληψης και επιλογής. Βλέπεις δηλαδή τη διακλάδωση και άρα την καταλαβαίνεις πιο εύκολα.  Μετά από αυτό το πρώτο στάδιο κατανόησης δεν έχουν πια πεδίο εφαρμογής και αντικαθίστανται από την ψευδογλώσσα.

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

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

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

Είναι σαν να μαθαίνουμε θεωρίες στη φυσική που καταρρίφθηκαν (πχ αιθέρας). Αλλά αν εμείς δεν τα καταλαβαίνουμε όλα αυτά ας ακολουθήσουμε τα πανεπιστήμια. Ας αναρωτηθούμε «έχει θέση η φυσική γλώσσα κατά βήματα στα πανεπιστήμια;» «Έχει θέση η μετατροπή αδόμητου σε δομημένου στα πανεπιστήμια;» Αν δεν διδάσκεται εκεί κάτι σημαίνει αυτό. Για ποιο λόγο λοιπόν εμείς να ασχολούμαστε με τέτοια θέματα;
Ομοίως οι φυσικοί αναρωτιούνται: «Έχει θέση η κλασσική μηχανική στα πανεπιστήμια;» «Έχει θέση το μοντέλο του αιθέρα στα πανεπιστήμια;» και αναλόγως πράττουν.

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

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

Dem

Παράθεση από: gpapargi στις 12 Ιουν 2007, 12:31:49 ΜΜ
Και ο αδόμητος προγραμματισμός έλαβε τέλος. Τώρα πια ότι φτιάχνεται είναι δομημένο. Ποιος ο λόγος λοιπόν να μάθει ο μαθητής να κάνει τη μετατροπή; Μήπως δεν υπάρχουν ενεργές περιοχές της πληροφορικής να διδάξουμε και έχουμε χρόνο για χάσιμο;
Είναι σαν να μαθαίνουμε θεωρίες στη φυσική που καταρρίφθηκαν (πχ αιθέρας).
δεν νομιζω οτι ειναι λαθος να παιρνουμε και μια εικονα αδομητου προγραμματισμου εμεις οι μαθητες..επισης θεωρω κακη την παρομοιωση του αδομητου προγραμματισμου με τον αιθερα......ενα προγραμμα θα τρεξει και με go to.......ενω η θεωρια του αιθερα απλα δεν ισχυει!!
και επισης γιατι εγω αφου κανω την δουλεια μου ευκολα και γρηγορα και χωρις πολυ σκεψη με go to να νοιαστω για αυτον που πιθανα θα θελει να κατανοησει και να αλλαξει πιθανως το προγραμμα μου??γιατι να νοιαστω για το χασιμο χρονου το δικο του και οχι για το δικο μου??
λεμε τωρα....... >:D

gpapargi

Παράθεσηκαι επισης γιατι εγω αφου κανω την δουλεια μου ευκολα και γρηγορα και χωρις πολυ σκεψη με go to να νοιαστω για αυτον που πιθανα θα θελει να κατανοησει και να αλλαξει πιθανως το προγραμμα μου??γιατι να νοιαστω για το χασιμο χρονου το δικο του και οχι για το δικο μου??

Για 2 λόγους:
1. Γιατί μπορεί εσύ να είσαι όχι αυτός που θα πρωτογράψει τον κώδικα αλλά αυτός που θα τον διορθώσει. Μη θεωρείς δεδομένο ότι το συγκεκριμένο μήνυμα το βλέπεις μόνο εσύ. Μπορεί να το βλέπει και αυτός που θα γράψει τον κώδικα που θα πρέπει εσύ να διορθώσεις  :P
Θέλω να πω ότι αν όλοι ακολουθούμε μια κοινή δεοντολογία τότε όλοι θα είμαστε κερδισμένοι.

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

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

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

alkisg

Να προσθέσω έναν τρίτο λόγο: η χρήση της goto σε αυτό το επίπεδο θα οδηγήσει τη σκέψη σου σε λανθασμένη μεθοδολογία επίλυσης προβλημάτων.
Δεν θα σκέφτεσαι δομημένα, δηλαδή "τώρα θέλω να κάνω μια επανάληψη, ας μελετήσω ποια από τις επαναλητικές δομές ταιριάζει καλύτερα", αλλά αδόμητα, δηλαδή "α, σ' αυτό το σημείο που έφτασα κατάλαβα ότι θέλω οι παραπάνω εντολές να εκτελούνται πολλές φορές... ας βάλω μια goto 10_γραμμές_παραπάνω".

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

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

Dem

ενταξει δν λεω να κανεις μια σαρωση ανα γραμμες σε πινακα με go to!!!αλλα υπαρχουν σιγουρα προβληματα που πρωτα το μυαλο σου παει στο να βαλεις εκει μια go to παρα να κατσεις να σκεφτεις τις 10 παραπανω εντολες που χρειαζονται για να λες οτι το κανες δομημενα...........

alkisg

#23
Συνήθως οι εντολές που χρειάζονται με goto είναι ίδιες ή περισσότερες από ότι αν χρησιμοποιήσεις μια εντολή επανάληψης. Π.χ.
με goto:
ι <- 1
:ΕΠΑΝΑΛΗΨΗ_ΝΟΥΜΕΡΟ_2126
  ΓΡΑΨΕ ι
  ι <- ι + 1
  ΑΝ ι <= 10 ΤΟΤΕ
    ΠΗΓΑΙΝΕ ΕΠΑΝΑΛΗΨΗ_ΝΟΥΜΕΡΟ_2126
  ΤΕΛΟΣ_ΑΝ

χωρίς goto:
ι <- 1
ΟΣΟ ι <= 10 ΕΠΑΝΑΛΑΒΕ
  ΓΡΑΨΕ ι
  ι <- ι + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

και φυσικά αν το κάνεις με ΓΙΑ ωφελείσαι περισσότερο.

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

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

gpapargi

#24
ΠαράθεσηΠρώτα να σκεφτείς ότι χρειάζεσαι επανάληψη και μετά να αρχίσεις να γράφεις κώδικα. Μόλις το συνηθίσεις θα δεις ότι τελικά είναι πιο απλό από τις goto.

Ακριβώς αυτό.

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

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

darap


@filippos
Συνάδελφε, το μάθημα του λυκείου είναι ΕΠΙΛΟΓΗΣ, όπως και ο ίδιος είπες. Δεν μπορούμε να πούμε στα παιδιά: "Διαλέξτε Εφαρμογές Πληροφορικής ή Η/Υ για να κάνουμε επιπλέον ώρες σε Δ.Ρ και GOTO". Οπότε, εκ των πραγμάτων, δε μειώνεται ο χρόνος που έχουμε να αφιερώσουμε στην διδασκαλία του πακέτου της Γ΄Λυκείου.

Όσο για το γυμνάσιο... ακόμη και τα παιδιά που έχουν κάνει Δ.Ρ. στο γυμνάσιο, το μόνο που θυμούνται στην Γ΄ Λυκείου είναι "κάτι κύκλοι και γραμμές"! Αυτή είναι η προσωπική μου εμπειρία.