Αλλαγή συνθήκης από διαγράμματα ροής σε ψευδοκώδικα ?

Ξεκίνησε από lsourtzo, 11 Φεβ 2011, 11:10:31 ΠΜ

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

lsourtzo

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

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

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

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

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

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

sstergou

Τέτοιες ασκήσεις βάζω στο κεφάλαιο 6 όπου εξηγείται η εντολή goto.

Ο κώδικας :

Ετικέτα1 :
Εντολές
Αν συνθήκη τότε GOTO Ετικέτα1


μετατρέπεται σε :

Αρχή_επανάληψης
  εντολές
Μέχρις_ότου όχι συνθήκη


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

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

Αν κατάλαβα καλά εννοείς θέμα παρόμοιο με το παράδειγμα 5 και με την δραστηριότητα ΔΣ1, Κεφ 2 τετράδιο μαθητή;

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


pgrontas

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

sstergou

Σπύρο είναι στο κεφάλαιο 6 οι ΔΤ1 και ΔΣ1.

Παγαγιώτη, συμφωνώ.

Και μια που το φερε η κουβέντα, φέτος εισήγαγα την δομή επανάληψης (καλά αποτελέσματα) χρησιμοποιώντας την εντολή GOTO.

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

Βλ. σχετικά, στην ενότητα 3.3 αλλά και παρακάτω, στο:
http://dide.ilei.sch.gr/keplinet/education/docs/syn_dp2010_adamopoulos.pdf

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

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


Sergio

Δε βλέπω τίποτα το περίεργο σε ασκήσεις αυτής της μορφής.. 

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

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

Βέβαια περιορίζομαι σε απλά προβλήματα, εστιάζοντας αποκλειστικά στην ανάπτυξη 2 βασικών δεξιοτήτων:
α) ανάλυσης σε επιμέρους βήματα και
β) αναγνώρισης του "τύπου" του βήματος. 
Έχω καταλήξει να τους προτείνω 4 τύπους βημάτων:
#1 : Χρειάζεται πάντα, και γίνεται με συγκεκριμένο τρόπο
#2 : Δε χρειάζεται πάντα, αλλά εκετελείται υπο προϋποθέσεις
#3 : Χρειάζεται πάντα, αλλά έχει περιπτώσεις
#4 : Οτιδήποτε από τα παραπάνω, αλλά χρειάζεται πολλές, συνεχόμενες φορές..

Προτιμώ λοιπόν σε πρώτη φάση (πρώτη σπείρα) να ΜΗΝ ασχολούμαι καθόλου με κωδικοποίηση παρά ΜΟΝΟ με διαγραμματική αναπαράσταση ώστε αφενός να έχουν μεγαλύτερη ελευθερία περιγραφής συνθηκών (είτε επιλογής είτε συνέχειας είτε τερματισμού) χωρίς να περιορίζονται από τους συντακτικούς κανόνες μιας ψευδογλώσσας.

Έτσι, εντελώς αυθόρμητα, αρκετοί μαθητές ερμηνεύουν περιορισμούς της μορφής "το πάγιο χρεώνεται μόνο όταν η διάρκεια ΔΕΝ ξεπερνά τις 3 ώρες" σε συνθήκη επιλογής Διάρκεια > 3 βάζοντας την ενέργεια Κόστος <- Κόστος + Πάγιο στη ροή του ΟΧΙ και αφήνοντας τη ροή του ΝΑΙ κενή..  Ισοδύναμα, επαναλαμβανόμενες διαδικασίες που "απαντάνε" σε εκφώνηση της μορφής "..θα συνεχίζει μέχρι συγκεντρωθούν 100 άτομα.." ερμηνεύονται σε βρόχους (με έλεγχο στο τέλος), όμως από άλλους μαθητές με συνθήκη τερματισμού άτομα >= 100 και από άλλους με συνθήκη συνέχειας άτομα < 100.

Αυτή η "ελευθερία" ΕΙΝΑΙ ζητούμενο σε επίπεδο ανάπτυξης της αλγοριθμικής σκέψης, δίνεται μέσω της διαγραμματικής αναπαράστασης πιο εύκολα απ'ότι μέσω της κωδικοποίησης.

Με αυτό τον τρόπο διδάσκονται (πάντα στο πλαίσιο της πρώτης - εσωτερικής σπείρας) όλες τις αλγοριθμικές δομές:
1) ακολουθία (τύπος #1)
2) επιλογή (τύποι #2 & #3)
3) επανάληψη (τύπος #4)
αποκλειστικά με απλές ασκήσεις και ΟΠΩΣΔΗΠΟΤΕ με ταυτόχρονη εξάσκηση στο εργαστήριο με τον  Δημιουργό Διαγραμμάτων Ροής

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

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

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

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

Sergio

Παράθεση από: sstergou στις 11 Φεβ 2011, 12:15:44 ΜΜ
Σπύρο είναι στο κεφάλαιο 6 οι ΔΤ1 και ΔΣ1.
Οι δραστηριότητες που αυτές από το κεφάλαιο 6 (ΔΤ1 και ΔΣ2), δίνουν αδόμητες κωδικοποιήσεις που, ακολουθώντας τη μεθοδολογία που περιγράφεις (μέσω διαγραμματικής αναπαράστασης) μπορούν να οδηγήσουν στις αντίστοιχες δομημένες κωδικοποιήσεις.

Παράθεση από: sdoukakis στις 11 Φεβ 2011, 11:45:58 ΠΜ
Αν κατάλαβα καλά εννοείς θέμα παρόμοιο με το παράδειγμα 5 και με την δραστηριότητα ΔΣ1, Κεφ 2 τετράδιο μαθητή;
Νομίζω ότι ο Σπύρος αναφερόταν στον προβληματισμό του lsourtzo. Οι περιπτώσεις που αναφέρει από το κεφάλαιο 2 δίνουν διαγραμματικά αλγορίθμους με συνθήκη τερματισμού στην αρχή του βρόχου.

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

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

και εγώ αυτό υπέθεσα από το μνμ... και για αυτό ρώτησα... αλλά καλύτερα να απαντήσει ο lsourtzo

Παράθεση από: sdoukakis στις 11 Φεβ 2011, 11:45:58 ΠΜ
Αν κατάλαβα καλά εννοείς θέμα παρόμοιο με το παράδειγμα 5 και με την δραστηριότητα ΔΣ1, Κεφ 2 τετράδιο μαθητή;


Παράθεση από: Sergio στις 11 Φεβ 2011, 03:20:30 ΜΜ

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

Σωστά;

Παράθεση από: lsourtzo στις 11 Φεβ 2011, 11:10:31 ΠΜ
η καθηγήτρια τους του έβαλε σε ένα διαγώνισμα να μετατρέψουν ένα διάγραμμα ροής στον ισοδύναμο ψευδοκώδικα.

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

lsourtzo

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

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

τώρα για να τα πάρω ένα ένα :

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

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

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

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

ευχαριστώ.

περιμένω τα σχόλια σας ...

sstergou

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

Κατά την γνώμη μου η goto θα μπορούσε να αξιοποιηθεί διδακτικά για την κατασκευή των δομών επανάληψης, σύνθετης και πολλαπλής επιλογής.

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

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

Ως προς την εταιρία, εκεί έτσι κι αλλιώς θα χρησιμοποιούνται κανονικές γλώσσες... Μην θεωρούμε την Αρχή_επανάληψης και την Όσο, με τον τρόπο που αυτές δίνονται στο σχολικό βιβλίο ως το α και το ω του προγραμματισμού. Π.χ. στη C έχουμε αντίστοιχα τις:

while (συνθήκη) εντολή

do εντολή while (συνθήκη)

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

Ομοίως στη VB έχουμε:

Do [{while | Until} συνθήκη]
  εντολές
Loop


Do
  εντολές
Loop [{while | Until} συνθήκη]


Η 1η έχει τη συνθήκη στην αρχή του βρόχου και η δεύτερη στο τέλος του βρόχου, παρόλα αυτά και οι δύο τερματίζουν το βρόχο με ψευδή συνθήκη (αν χρησιμοποιείται το while) ή και οι δύο τερματίζουν το βρόχο με αληθή συνθήκη (αν χρησιμοποιείται το until)...

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

Για αυτό και πιο πάνω είχα πει ότι "... τα διαγράμματα ροής αποτελούν αυθύπαρκτη μορφή αναπαράστασης αλγορίθμων και τα διάφορα δομικά στοιχεία τους δεν αντιστοιχούν κατ' ανάγκη στο ρεπερτόριο των εντολών που περιλαμβάνει η ψευδογλώσσα του σχολικού βιβλίου...". Στην πραγματικότητα δεν υπάρχει 1 προς 1 αντιστοίχιση των διαγραμμάτων ροής με τη σύνταξη των εντολών στην ψευδογλώσσα ή τη ΓΛΩΣΣΑ του βιβλίου. Βλέποντας κάποιος ένα διάγραμμα ροής που περιέχει βρόχο μπορεί να "δει" μέσα σε αυτό εντολή Όσο, ή να "δει" εντολή Για ή να "δει" GoTο ... κλπ

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

Θα μπορούσες να μας παρουσιάσεις το θέμα του διαγωνίσματος;

Παράθεση από: lsourtzo στις 11 Φεβ 2011, 11:10:31 ΠΜ
καλησπέρα ... διδάσκω το μάθημα εδώ και 10 χρόνια (από την αρχή) σε ένα φροντιστήριο.
φέτος για πρώτη φορά βρέθηκα αντιμέτωπος με το εξής θέμα ...
στο σχολείο μιας μαθήτριας μου η καθηγήτρια τους του έβαλε σε ένα διαγώνισμα να μετατρέψουν ένα διάγραμμα ροής στον ισοδύναμο ψευδοκώδικα.

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

lsourtzo

Παράθεση από: Νίκος Αδαμόπουλος στις 14 Φεβ 2011, 12:03:25 ΜΜ
H goto δεν οδηγεί κατ' ανάγκη σε αδόμητη μορφή... Είναι καθαρά θέμα τρόπου χρήσης της εντολής αυτής...

(μίλαγα πάντα για τα παραδείγματα που αναφέρθηκα παραπάνω.)

Για αυτό και πιο πάνω είχα πει ότι "... τα διαγράμματα ροής αποτελούν αυθύπαρκτη μορφή αναπαράστασης αλγορίθμων και τα διάφορα δομικά στοιχεία τους δεν αντιστοιχούν κατ' ανάγκη στο ρεπερτόριο των εντολών που περιλαμβάνει η ψευδογλώσσα του σχολικού βιβλίου...". Στην πραγματικότητα δεν υπάρχει 1 προς 1 αντιστοίχιση των διαγραμμάτων ροής με τη σύνταξη των εντολών στην ψευδογλώσσα ή τη ΓΛΩΣΣΑ του βιβλίου. Βλέποντας κάποιος ένα διάγραμμα ροής που περιέχει βρόχο μπορεί να "δει" μέσα σε αυτό εντολή Όσο, ή να "δει" εντολή Για ή να "δει" GoTο ... κλπ

σύμφωνα με το βιβλίο νομίζω ότι υπάρχει ... δίπλα από την αναφορά κάποια καινούργια δομής ... αναφέρει και το αντίστοιχο διάγραμμα.
συμφωνώ μαζί σου ότι μπορεί να γίνει ... αν πρέπει να είναι στα αντικείμενα που εξετάζει το μάθημα διαφωνώ λίγο ...
απλά πιστεύω ότι η ουσία του μαθήματος θα έπρεπε να είναι η δημιουργία αλγοριθμικού τρόπου σκέψης, που είναι και το ζητούμενο.
θα ήθελα πολύ οι 60 μαθητές που μπορεί να έχω καταλαβαίνουν τόσο άμεσα και απλά τα αλγοριθμικά προβλήματα που να μου μπορώ να τους κάνω και ένα σορό πράγματα ακόμα ... αλλά επιμένω ότι εκ του αποτελέσματος μόνο ένα 30-40 % είναι σε θέση να καταλάβει στοιχειωδώς αυτά που λέμε, για αυτό και θεωρώ ένα τέτοιο θέμα εξεζητημένο πόσο μάλλον για διαγώνισμα 2 θεμάτων που κρίνει τον βαθμό τετραμήνου.

lsourtzo

Παράθεση από: sdoukakis στις 14 Φεβ 2011, 12:17:49 ΜΜ
Θα μπορούσες να μας παρουσιάσεις το θέμα του διαγωνίσματος;

θα προσπαθήσω. δεν το στα χέρια μου, τα παιδιά μου το φέραν πριν κανέναν μήνα. θα ζητήσω να μου το ξαναφέρουν αν το έχουν και θα προσπαθήσω.

Sergio

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

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

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

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

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

Έτσι:
- απλή επιλογή με τις ενέργειες στο ΝΑΙ, θα κωδικοποιηθεί ως ΑΝ (ΣΥΝΘΗΚΗ) ΤΟΤΕ..
- απλή επιλογή με τις ενέργειες στο ΟΧΙ, θα κωδικοποιηθεί ως ΑΝ ΟΧΙ (ΣΥΝΘΗΚΗ) ΤΟΤΕ..
- βρόχος με έλεγχο στην αρχή και είσοδο με το ΝΑΙ, θα κωδικοποιηθεί ως ΟΣΟ (ΣΥΝΘΗΚΗ) ΕΠΑΝΑΛΑΒΕ..
- βρόχος με έλεγχο στην αρχή και είσοδο με το ΟΧΙ, θα κωδικοποιηθεί ως ΟΣΟ ΟΧΙ (ΣΥΝΘΗΚΗ) ΕΠΑΝΑΛΑΒΕ..
- βρόχος με έλεγχο στο τέλος και έξοδο με το ΝΑΙ, θα κωδικοποιηθεί ως ΜΕΧΡΙΣ_ΟΤΟΥ (ΣΥΝΘΗΚΗ)..
- βρόχος με έλεγχο στο τέλος και έξοδο με το ΟΧΙ, θα κωδικοποιηθεί ως ΜΕΧΡΙΣ_ΟΤΟΥ ΟΧΙ (ΣΥΝΘΗΚΗ)..

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

Sergio

Παράθεση από: lsourtzo στις 14 Φεβ 2011, 12:27:26 ΜΜ
Στην πραγματικότητα δεν υπάρχει 1 προς 1 αντιστοίχιση των διαγραμμάτων ροής με τη σύνταξη των εντολών στην ψευδογλώσσα ή τη ΓΛΩΣΣΑ του βιβλίου. Βλέποντας κάποιος ένα διάγραμμα ροής που περιέχει βρόχο μπορεί να "δει" μέσα σε αυτό εντολή Όσο, ή να "δει" εντολή Για ή να "δει" GoTο ... κλπ

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

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

Το αντίστροφο όμως δεν είναι πάντα το ίδιο..
Όπως είπε και ο Νίκος ..Βλέποντας κάποιος ένα διάγραμμα ροής που περιέχει βρόχο μπορεί να "δει" μέσα σε αυτό εντολή Όσο, ή να "δει" εντολή Για ή να "δει" GoTο ... κλπ 

Για παράδειγμα, σε ένα διάγραμμα με βρόχο και έλεγχο στην αρχή, αλλά με συνθήκη τερματισμού, μπορεί να "δει" μία ΟΣΟ η οποία έχει ως συνθήκη συνέχειας την αντίθετης εκείνης που υπάρχει στο διάγραμμα:
Όσο ΟΧΙ (συνθήκη) επανάλαβε
  εντολές
Τέλος_Επανάληψης

Στο ίδιο διάγραμμα, ένας προγραμματιστής VB μπορεί να δει:
Do Until συνθήκη
  εντολές
Loop

Αντίστοιχα, σε ένα διάγραμμα με βρόχο και έλεγχο στο τέλος, αλλά με συνθήκη συνέχειας, μπορεί να "δει" μία ΜΕΧΡΙΣ_ΟΤΟΥ η οποία έχει ως συνθήκη τερματισμού την αντίθετης εκείνης που υπάρχει στο διάγραμμα:
Αρχή_Επανάληψης
  εντολές
Μέχρις_ότου ΟΧΙ συνθήκη

Στο ίδιο διάγραμμα, ένας προγραμματιστής VB μπορεί να δει:
Do
  εντολές
Loop while συνθήκη

ενώ ένας προγραμματιστής C να δει: do εντολή while (συνθήκη)

Επιπλέον, σε ένα διάγραμμα με βρόχο και έλεγχο στη μέση, ένας προγραμματιστής ALGOL μπορεί να "δει" αντίστοιχη εντολή, ενώ σε ψευδογλώσσα, ΓΛΩΣΣΑ, VB ή C, θα πρέπει να γίνει δραστικότερος μετασχηματισμός προκειμένου να κωδικοποιηθεί

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



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