Μέγεθος πίνακα στην ψευδογλώσσα

Ξεκίνησε από Michael, 15 Ιαν 2008, 09:36:37 ΜΜ

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

gpapargi

Παράθεση από: pgrontas στις 12 Φεβ 2008, 11:28:02 ΠΜ
Αυτό που θέλω να πω είναι ότι σε αρχικό επίπεδο είναι ίσως παιδαγωγικά καλύτερο να χαλαρώσεις την σύνταξη και να άρεις περιορισμούς προς ώφελος της γνωριμίας με την αλγοριθμική σκέψη. Όταν προχωρήσεις στην ΓΛΩΣΣΑ τότε βάζεις όλους τους πραγματικούς περιορισμούς που ισχύουν στον υπολογιστή.

Αυτό Παναγιώτη θεωρητικά είναι σωστό και στηρίζεται από το βιβλίο καθηγητή (κεφάλαιο 2 σελίδα 72). Αλλά στην πράξη μάλλον δημιουργήθηκε η τάση για ομογενοποίηση (και πιστεύω καλώς) οπότε η χαλαρότητα της ψευδογλώσσας τείνει να εγκαταλειφτεί. Δεν ξέρω αν εκφράσεις της μορφής «Θέσε Χ=2» ή η χρήση των συνηθισμένων μαθηματικών συμβάσεων κάνουν καλό ή κακό. Το πράγμα δείχνει πως είναι προτιμότερη η «αυστηρή» εκδοχή της ψευδογλώσσας, κυρίως λόγω χρόνου.

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

gpapargi

Παράθεση από: sstergou στις 12 Φεβ 2008, 04:37:11 ΜΜ
Ο καθένας μπορεί να έχει την δική του προσωπική άποψη σχετικά με την παιδαγωγική χρησιμότητα της ΓΛΩΣΣΑΣ και της Ψευδογλώσσας η οποία είναι σεβαστή.

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

Παράθεση από: sstergou στις 12 Φεβ 2008, 04:37:11 ΜΜ
Όσον αφορά την εντολή Δεδομένα. Πιστεύω ότι δημιουργήθηκε με σκεπτικό

  • την κληση αλγορίθμου από αλγόριθμο
  • Να απαλλαγεί ο μαθητής από την συνεχή ενασχόληση με την είσοδο δεδομένων και τον έλεγχο εγκυρότητάς τους

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

Παράθεση από: sstergou στις 12 Φεβ 2008, 04:37:11 ΜΜ
Η περίφημη οδηγία "κάθε επιστημονικά τεκμηριωμένη λύση ...." είναι ένα παράδειγμα για το που μπορεί να μας οδηγήσει η άκριτη υιοθέτηση εννοιών και τακτικών που αρμόζουν στα μαθηματικά και όχι στην πληροφορική.

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

Αυτό που θέλω να πω (άσχετο με τη συγκεκριμένη κουβέντα) είναι ότι πουθενά τα μαθηματικά δεν λένε ότι οι αλγόριθμοι δε χρειάζεται να είναι ποιοτικοί και ότι πρέπει απλά να τρέχουν. Η ποιότητα είναι πολύ περισσότερο μαθηματικό θέμα παρά κομπιουτερίστικο. Η αλγοριθμική πολυπλοκότητα είναι μια συνάρτηση με ανεξάρτητη μεταβλητή τα στοιχεία προς επεξεργασία και εξαρτημένη μεταβλητή το πλήθος των βημάτων.  Δηλαδή καθαρά μαθηματικές έννοιες. Το να επικαλούμαστε την οδηγία «Κάθε λύση επιστημονικά…» για να λέμε ότι τα μαθηματικά δε ασχολούνται με την αλγοριθμική ποιότητα είναι λάθος. Δε λένε αυτό τα μαθηματικά. Δεν υπάρχει διαφορετική νοοτροπία στα μαθηματικά και στην πληροφορική. Οι αλγόριθμοι είναι μαθηματικές λύσεις που επεκτείνονται σε προβλήματα που δεν επιδέχονται αλγευρική λύση. Οι αλγευρικές λύσεις είναι αλγόριθμοι σταθερής τάξης. Είμαι πολύ κατά των διαχωριστικών γραμμών. Ο Ερατοσθένης και ο Ευκλείδης με τους αλγόρίθμους για πρώτους και ΜΚΔ έκαναν μαθηματικά. Έδιναν καθαρά μαθηματικές λύσεις σε προβλήματα που δεν επιδέχονται αλγεβρική προσέγγιση.  Και που να δεις πόσο ίδια θεωρώ τα μαθηματικά και τη φυσική μεταξύ τους. Είμαι οπαδός της ρωσικής σχολής των θετικών επιστημών (Vladimir  Arnold κλπ). Άλλο αν οι μαθηματικοί σε κάποιες χώρες έχουν τραβήξει άλλο δρόμο. Η θετικές επιστήμες είναι ενιαίο σώμα.

sstergou

#77
Σε κάποιο άλλο θέμα συζητήθηκε η έννοια της αποτελεσματικότητας και της διαφοράς της πληροφορικής από τις άλλες επιστήμες.
Εμένα με καλύπτει πλήρως η άποψη του 'Αλκη : https://alkisg.mysch.gr/steki/index.php?topic=988.msg5415#msg5415

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

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


Να ξέρουμε βρε παιδί μου τι μας περιμένει !!!!!

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

Υ.Γ. Όταν θα τρέχουμε και οι δύο , κάποια στιγμή να συνεννοηθούμε να αλλάξουμε τη σκυτάλη!!

gpapargi

#78
Παράθεση από: sstergou στις 14 Φεβ 2008, 03:01:33 ΜΜ
Σε κάποιο άλλο θέμα συζητήθηκε η έννοια της αποτελεσματικότητας και της διαφοράς της πληροφορικής από τις άλλες επιστήμες.
Εμένα με καλύπτει πλήρως η άποψη του 'Αλκη : https://alkisg.mysch.gr/steki/index.php?topic=988.msg5415#msg5415

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

Τη θυμάμαι καλά εκείνη την κουβέντα. Ήμασταν στην ίδια μεριά με τον Άλκη.
https://alkisg.mysch.gr/steki/index.php?topic=988.msg5506#msg5506

Και το θέμα της φράσης «Κάθε λύση επιστημονικά τεκμηριωμένη το σχολίασα επίσης
https://alkisg.mysch.gr/steki/index.php?topic=988.msg5572#msg5572

Κοίτα τι είχε γίνει τότε: Η αντίθετη άποψη από τη δική μας (εμένα και του ʼλκη) υποστήριξε ότι στα μαθηματικά δε μετράει η ποιότητα της λύσης και άρα δεν πρέπει να μετράει και στην πληροφορική. Οπότε και οι 2 μας προσπαθήσαμε να εξηγήσουμε τις διαφορές των 2 επιστημών. Δε θεωρώ ότι κάναμε λάθος.
Νομίζω όμως ότι η απόλυτη αλήθεια είναι ότι ποτέ τα μαθηματικά δεν ισχυρίστηκαν ότι δε μετράει η ποιότητα της λύσης και είναι λάθος να τους αποδίδουμε κάτι τέτοιο. Ο αλγόριθμος του Ευκλείδη για ΜΚΔ είναι μια καθαρά μαθηματική λύση σε ένα καθαρά μαθηματικό πρόβλημα. Δεν υπήρχε αλγεβρική λύση και τα μαθηματικά το μόνο που μπορούσαν να κάνουν ήταν να χρησιμοποιήσουν αλγόριθμο. Αυτή ήταν η μαθηματική προσέγγιση. Και σίγουρα η πρώτη μαθηματική λύση ήταν να βρεθούν όλοι ι διαιρέτες του κάθε αριθμού και από τους κοινούς διαιρέτες να βρεθεί ο μεγαλύτερος. Μετά όμως οι ίδιοι οι μαθηματικοί βρήκαν κάτι καλύτερο (τον αλγόριθμο του Ευκλείδη). Οι μαθηματικοί λοιπόν ήταν αυτοί που έψαξαν για αποδοτικότερο αλγόριθμο.

Για μένα η επίλυση προβλημάτων είναι μαθηματικό θέμα είτε το θέλουμε είτε όχι. Τα βήματα που κάνουμε για να λύσουμε ένα πρόβλημα είναι ο αλγόριθμος. 
Ένας αλγόριθμος σταθερής τάξης (που δεν εξαρτάται από το πλήθος των στοιχείων προς επεξεργασία) είναι αυτό που λέμε «αλγεβρική λύση» και είναι αυτό που διδασκόμαστε συνήθως στα μαθηματικά.
Τα προβλήματα όμως δεν έχουν όλα σα λύσεις τους αλγορίθμους σταθερής τάξης (δηλαδή αλγεβρικές λύσεις). ʼρα για να δώσουν τα μαθηματικά κάποια λύση πάνε σε αλγορίθμους μεγαλύτερης τάξης. 

Παράδειγμα:
Θέλω να βρω το άθροισμα 1+2+3+4+ ….+1000
Αφού υπάρχει ο τύπος της αριθμητικής προόδου χρησιμοποιώ τον αλγόριθμο σταθερής τάξης:

Αλγόριθμος ʼθροισμα_1
S<-(1+1000)/2 * 1000
Εμφάνισε αποτέλεσμα
Τέλος ʼθροισμα_1

Αν θέλω να βρω το άθροισμα 1^3 + 2^3 + 3^3 + ..+ 1000^3 δεν έχω αλγόριθμο σταθερής τάξης (αλγεβρική λύση). Ο μόνος αλγόριθμος που ξέρω είναι γραμμικής τάξης

Αλγόριθμος ʼθροισμα_κύβων
S<-0
Για ι από 1 μέχρι 1000
   S<-S+i^3
Τέλος_επανάληψης
Εμφάνισε S
Τέλος ʼθροισμα_κύβων

Αν ήθελα να βρω το άθροισμα 1+2+3+4+ ….+1000 και δεν είχα στη διάθεσή μου τον τύπο της αριθμητικής προόδου θα έκανα

Αλγόριθμος ʼθροισμα_2
S<-0
Για ι από 1 μέχρι 1000
   S<-S+i
Τέλος_επανάληψης
Εμφάνισε S
Τέλος ʼθροισμα_2

Υπάρχει κάποιος λόγος για να ονομάσουμε τον αλγόριθμο_2 λύση πληροφορικής και τον αλγόριθμο_1 λύση των μαθηματικών; Μου απαγορεύει κανένας να χρησιμοποιήσω τον τύπο της αριθμητικής προόδου στην πληροφορική;

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

edit: (Ο μαθητής μου Ηλίας Διαμαντάκος επικοινώνησε μαζί μου και με ενημέρωσε ότι υπάρχει αλγεβρικός τύπος για το άθροισμα των κύβων. Είναι το ((ν(ν+1))/2)^2.
Ασφαλώς δεν πέρασε το πρόβλημα από την πληροφορική στα μαθηματικά. Απλά τώρα που ξέρω τον τύπο θα χρησιμοποιώ αυτόν ενώ το παράδειγμά μου δεν ήταν εύστοχο.
Ψάχνοντας για άλλο παράδειγμα είδα ότι υπάρχει τύπος για το άθροισμα 1^κ + 2^κ +3^ κ … για κάθε κ.
http://mathworld.wolfram.com/FaulhabersFormula.html
Σαν παράδειγμα στο επιχείρημα που γράφω μπορεί να μπει οποιοδήποτε άθροισμα δεν δίνεται ακόμα από κάποιο αλγεβρικό τύπο που παρακάμπτει όλες τις προσθέσεις.) 

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

Πιστεύω πως το μεγάλο λάθος που έκαναν οι μαθηματικοί στην Ελλάδα είναι ότι έβαλαν διαχωριστικές γραμμές μεταξύ μαθηματικών και φυσικής.
Παρένθεση: Καλό θα ήταν οι μαθηματικοί της παρέας να δουν το παρακάτω άρθρο
http://pauli.uni-muenster.de/~munsteg/arnold.html

Παράθεση από: sstergou στις 14 Φεβ 2008, 03:01:33 ΜΜ
Γιώργο, επειδή πιστεύω ότι με την άποψή σου συμφωνούν και άλλοι συνάδελφοι (ίσως οι περισσότεροι), θα ήθελα να μου πεις πόσο θα έκοβες στην περίφημη λύση  ::)
και γιατί; (εννοείται σε γραπτό πανελληνίων).

Να ξέρουμε βρε παιδί μου τι μας περιμένει !!!!!

Το είχα απαντήσει από την αρχή. Είχα πει για 2 στα 10. Δες πρώτη σελίδα του thread τρίτο δικό μου μήνυμα (το έκανα bold για να φανεί). Δες τα 3 αρχικά μου μηνύματα όπου εξηγώ τη σκέψη μου. Πάντως έχε υπόψη σου ότι δεν είμαι βαθμολογητής. Αν ήμουν θα έκανα κουβέντα με το συντονιστή αφού προέχει η ενιαία βαθμολόγηση. Καλό είναι οι βαθμολογητές μας να απαντήσουν σε αυτό.

Παράθεση από: sstergou στις 14 Φεβ 2008, 03:01:33 ΜΜ
Α, και κάτι άλλο. Αν πιστεύεις (ή όχι) ότι υπάρχει πρόβλημα το οποίο πρέπει να διορθωθεί π.χ. με σαφέστερους ή διαφορετικούς ορισμούς.

Κοίτα… εμένα το μυαλό μου δεν είχε πάει σε όλα αυτά. Θεωρούσα δεδομένο ότι λόγω του ότι το βιβλίο είναι εκπαιδευτικό αποκλείεται να λέει αντικρουόμενα πράγματα εδώ και εκεί (εκτός αν έγινε κατά λάθος). ʼρα η ΓΛΩΣΣΑ είναι το σημείο αναφοράς μας. Τώρα βέβαια είδα και άλλες απόψεις οπότε καλό θα ήταν να έμπαινε μια πρόταση στο βιβλίο καθηγητή που να λέει πχ ότι «η ψευδογλώσσα είναι χαλαρή και δε δηλώνουμε τις μεταβλητές και έτσι δε γράφουμε το μέγεθος του πίνακα, αλλά αυτό δε σημαίνει ότι μπορεί να αλλάζει το μέγεθος κατά την εκτέλεση κλπ κλπ» προς αποφυγή παρεξηγήσεων. Αν βέβαια ήθελαν στην ψευδογλώσσα να κάνουμε χρήση πινάκων διαφορετικής στατικότητας/δυναμικότητας από ότι στη ΓΛΩΣΣΑ θα έπρεπε να βάλουν ανάλογο σχόλιο. 

sstergou

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

Αυτό που ήθελα εγώ να αναφέρω είναι η χρήση της εντολής δεδομένα όπως περιέγραψες σε αυτό το post
https://alkisg.mysch.gr/steki/index.php?topic=1194.msg8105#msg8105

δηλαδή για το ορισμό σταθερών μαθηματικής λογικής.

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

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

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

P.Tsiotakis

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

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

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

Θέλω να ελπίζω και εύχομαι το :huh  ???   να μην εκφράζει ειρωνία



sstergou

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

??? Η φατσούλα δεν εκφράζει καμία ειρωνία, μάλλον λίγο προβληματισμένη τη βλέπω.

evry

  Κοίτα δε διαφωνώ με τη φιλοσοφία σου, όμως το μάθημα είναι αυτό που είναι οπότε θεωρούμε τον πίνακα στατική δομή. Τώρα σχετικά με το θέμα 3 προφανώς και κόπηκαν μόρια και να σου πω την αλήθεια έπρεπε να κοπούν και πολλά μάλιστα. Δυστυχώς οι περισσότεροι μαθητές που βαριούνται να σκεφτούν λένε ας βάλουμε πίνακα για να είμαστε σίγουροι, το έχουν σαν πανάκεια δηλαδή, ενώ ο στόχος θα ήταν να μπορούν να σκεφτούν και να βρουν πότε χρειάζεται πίνακας και πότε όχι.
    Στο συγκεκριμένο παράδειγμα δηλαδή που δε σου λέει πόσα γραμματόσημα θα διαβάσεις, και είναι φανερό ότι όλη η επεξεργασία γίνεται τη στιγμή που διαβάζεις μια πληροφορία, δεν είναι απαραίτητο να χρησιμοποιήσεις πίνακες.
   Επίσης σκέψου ότι με τη χρήση πινάκων ο μαθητής ξεγλιστράει από κάποιες "κακοτοπιές" του θέματος όπως το πότε θα σταματήσει την επανάληψη και στο οποίο εξετάζεται.
   Πάντως οι περισσότεροι που χρησιμοποίησαν πίνακες δεν κρατούσαν καν μετρητή για το πόσα στοιχεία διαβάζουν. Είχαν θεωρήσει ότι είναι Ν από την αρχή. Στα γραπτά που διόρθωσα οι περισσότεροι είχαν κάνει αυτό. Τώρα υπήρχαν και 2 εξαιρέσεις (στους 370) που είχαν κάνει κάτι πιο σωστό από προγραμματιστικής σκοπιάς. Είχαν ορίσει πίνακες πολύ μεγάλους του στυλ Α[999999] και κράταγαν σε μετρητή πόσα γραμματόσημα διαβάζουν. Επίσης οι υπολογισμοί ήταν όλοι σωστοί. Σε αυτούς το σκέφτηκα πολύ να κόψω, τελικά έκοψα 1 μονάδα γιατί ήταν πολύ καλά γραπτά. Δεν ξέρω αν έκανα καλά, αλλά αυτό θεώρησα σωστό, άλλωστε τα παιδιά είχαν εξαρχής ορίσει τον πίνακα σαν στατική δομή   :) και δε νομίζω να μπορούσε να αγοράσει κανένας 999999 γραμματόσημα μόνο με 1500 ευρώ ;)


Παράθεση από: sstergou στις 15 Φεβ 2008, 02:40:18 ΜΜ

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

Βέβαια για κάποιους τέτοια οδηγία δεν είναι απαραίτητη καθώς το βιβλίο είναι ξεκάθαρο. Οι πίνακες είναι στατική δομή και το μέγεθός τους καθορίζεται στη μεταγλώττιση  ???
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

Παράθεση από: sstergou στις 16 Φεβ 2008, 02:47:55 ΠΜ
Αν δεν υφίσταται μεταγλώττιση, μεταγλωττιστής ή μνήμη τότε δεν πρέπει να υφίσταται και στατική/δυναμική δομή έτσι όπως την αναφέρει το βιβλίο στη σελίδα 56 στην παράγραφο 3.3.

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

Αυτό που έγραψα προηγουμένως είναι ότι στην ψευδογλώσσα δείχνει να γίνεται χρήση της αφηρημένης δομής δεδομένων (ΑΔΔ) πίνακας. Δες προσεκτικά Στάθη το παρακάτω μήνυμά μου.
https://alkisg.mysch.gr/steki/index.php?topic=1194.msg8055#msg8055

Στην τελευταία παράγραφο αναφέρομαι στη διαφορά μεταξύ ΑΔΔ πίνακα και δυναμικού πίνακα. Ίσως σε καλύψει πάνω σε αυτό που γράφεις στον Παναγιώτη.

sstergou

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

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

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

alkisg

Γιώργο σόρρυ γιατί κάπου μπλέχτηκα.

Καταρχάς συμφωνείς ότι δεν έχει νόημα να μιλάμε για στατικές ή δυναμικές δομές στην ψευδογλώσσα. Επίσης, στη λύση του Μιχάλη θα έκοβες μονάδες επειδή δεν υπάρχει άνω όριο στον πίνακα, όχι επειδή δεν είναι στατικός, αλλά επειδή δεν μεταφέρεται αυτούσιος σε προγραμματιστικό περιβάλλον (αν σε κατάλαβα σωστά).
Μα σε προγραμματιστικό περιβάλλον (όχι στη ΓΛΩΣΣΑ, σε άλλες γλώσσες) η λύση του Μιχάλη δουλεύει μια χαρά. Π.χ. συχνά βλέπουμε
Αρχή_επανάληψης
  Διάβασε χαρακτήρα
  κείμενο <- κείμενο + χαρακτήρα
Μέχρις_ότου χαρακτήρα = ' '

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

Θα ήθελα κι εγώ να "ενοποιούσαμε" κάπως τη ΓΛΩΣΣΑ με την ψευδογλώσσα και να επιτρέπουμε περίπου τα ίδια πράγματα, αλλά η ψευδογλώσσα όπως έχει οριστεί είναι πιο ελεύθερη.
Δηλαδή αν ο μαθητής έδινε την ΙΔΙΑ λύση σε C, Basic ή Pascal, όπου επιτρέπεται, θα το δεχόμασταν σωστό, και αν γράφει ψευδογλώσσα το παίρνουμε λάθος;

Δηλαδή η ψευδογλώσσα είναι πιο αυστηρή από τη C, την Basic και την Pascal;

Αμάν επιτέλους να καταργηθεί είτε η ψευδογλώσσα είτε η ΓΛΩΣΣΑ, και αυτή που θα μείνει να οριστεί ΣΩΣΤΑ!

gpapargi

Παράθεση από: alkisg στις 20 Φεβ 2008, 04:06:39 ΜΜ
Καταρχάς συμφωνείς ότι δεν έχει νόημα να μιλάμε για στατικές ή δυναμικές δομές στην ψευδογλώσσα. Επίσης, στη λύση του Μιχάλη θα έκοβες μονάδες επειδή δεν υπάρχει άνω όριο στον πίνακα, όχι επειδή δεν είναι στατικός, αλλά επειδή δεν μεταφέρεται αυτούσιος σε προγραμματιστικό περιβάλλον (αν σε κατάλαβα σωστά).

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

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

Πιστεύω λοιπόν πως πρέπει να επιβάλουμε τους περιορισμούς της  ΓΛΩΣΣΑΣ στην ψευδογλώσσα όπου είναι δυνατόν. Δηλαδή σε επίπεδο αλγορίθμου και σε επίπεδο δομών δεδομένων. Δε ενδιαφέρει αν στην ψευδογλώσσα επιτρέπεται το «Θέσε Χ=0» γιατί δε θα μπερδέψει κανέναν στη ΓΛΩΣΣΑ. Στη ΓΛΩΣΣΑ το αντίστοιχο είναι Χ<-0. Αλλά με ενοχλεί το θέμα των πινάκων απροσδιόριστου μεγέθους γιατί αυτή η προσέγγιση είναι μη αποδεκτή στη ΓΛΩΣΣΑ. Η ΓΛΩΣΣΑ είναι το διπλανό περιβάλλον και πιστεύω πως πρέπει να καταφεύγουμε σε αυτή για να δούμε τι πρέπει να ανεχτούμε στη χαλαρή ψευδογλώσσα και τι όχι. Δε με απασχολούν οι άλλες γλώσσες προγραμματισμού.

Η χαλαρότητα της ψευδογλώσσας είναι ένα θέμα που κατά τη γνώμη μου παρεξηγείται. Το «Θέσε Χ=0» και η χρήση της τετραγωνικής ρίζας ολογράφως επιτρέπονται αλλά δε με χαλάνε (αν και η ανάγκη για ομογενοποίηση τείνει να τα εξαλείψει) γιατί δε θα μου δημιουργήσουν μπελά κατά τη μεταφορά τους στη ΓΛΩΣΣΑ. Με χαλάνε οι διαφορετικές δυνατότητες πάνω στις δομές δεδομένων γιατί αυτές θα μου δημιουργήσουν μπελά.

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

Τα είπα με πολλά λόγια τουλάχιστο για είναι κατανοητή η θέση μου.

Παράθεση από: alkisg στις 20 Φεβ 2008, 04:06:39 ΜΜ
Μα σε προγραμματιστικό περιβάλλον (όχι στη ΓΛΩΣΣΑ, σε άλλες γλώσσες) η λύση του Μιχάλη δουλεύει μια χαρά. Π.χ. συχνά βλέπουμε
Αρχή_επανάληψης
  Διάβασε χαρακτήρα
  κείμενο <- κείμενο + χαρακτήρα
Μέχρις_ότου χαρακτήρα = ' '

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

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

Παράθεση από: alkisg στις 20 Φεβ 2008, 04:06:39 ΜΜ
Δηλαδή αν ο μαθητής έδινε την ΙΔΙΑ λύση σε C, Basic ή Pascal, όπου επιτρέπεται, θα το δεχόμασταν σωστό, και αν γράφει ψευδογλώσσα το παίρνουμε λάθος;

Αν εννοείς στην ψευδογλώσσα το
Διάβασε Ν
Για ι από 1 μέχρι Ν
  Διάβασε α[ι]
Τέλος_επανάληψης

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

sstergou

#87
Μήπως όμως με το να παίρνουμε ιδέες από ένα συγκεκριμένο αυστηρό προγραμματιστικό περιβάλλον και να προσπαθούμε να τις επιβάλλουμε στην ψευδογλώσσα ακυρώνουμε τη φύση της;

Παράθεση από: gpapargi στις 21 Φεβ 2008, 09:45:34 ΠΜΠιστεύω επίσης ότι είναι λάθος από παιδαγωγική σκοπιά να θεωρούμε σωστούς στην ψευδογλώσσα αλγορίθμους που θεωρούμε λάθος στη ΓΛΩΣΣΑ

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

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

Τι είναι πιο σωστό; Είναι λίγο μπερδεμένα τα πράγματα! :(

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

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

pgrontas

Παράθεση από: sstergou στις 21 Φεβ 2008, 11:20:03 ΠΜ
Μήπως όμως με το να παίρνουμε ιδέες από ένα συγκεκριμένο αυστηρό προγραμματιστικό περιβάλλον και να προσπαθούμε να τις επιβάλλουμε στην ψευδογλώσσα ακυρώνουμε τη φύση της;

Σε αυτό συμφωνώ απόλυτα (όπως και στο υπόλοιπο post σου Στάθη, απλά η παραπάνω παράθεση εκφράζει καλύτερα αυτό που σκέφτομαι).

Άλλωστε για μένα δεν είναι παιδαγωγικό σφάλμα στην περίπτωση των πινάκων (ή collections ή ΑΔΔ) απροσδιόριστου μεγέθους, να λέμε ότι στην ψευδογλώσσα επικεντρωνόμαστε στο γενικότερο πρόβλημα (στην κλάση του προβλήματος) και ότι στην ΓΛΩΣΣΑ λύνουμε το πρόβλημα σε μια συγκεκριμένη περίπτωση του - για ένα συγκεκριμένο πλήθος στοιχείων (σε ενα instance). Ίσα ίσα τονίζει την περατότητα του υπολογιστή.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gpapargi

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

Το λεπτό θέμα είναι αυτό που θέτεις: τελικά πρέπει να υπάρχουν και τα 2 ή μόνο το ένα κι αν ναι ποιο είναι αυτό;

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

Αλλά θέλω να γλιτώσω το ότι αν θέλω να βάλω πραγματική μεταβλητή με ακέραια τιμή σε ακέραια μεταβλητή δεν μπορώ να το κάνω απευθείας αλλά πρέπει να χρησιμοποιήσω τη συνάρτηση ακεραίου μέρους. Δε μου αρέσει για αρχή να τους μπλέξω με τέτοια. Με την ψευδογλώσσα το γλιτώνω. Έχει πλεονεκτήματα η ύπαρξη και των 2. Ίσως είναι καλύτερη λύση το να έχουμε και τα 2 και να κουμαντάρουμε τη χαλαρότητα της ψευδογλώσσας. Αλλιώς θα πρέπει να επιλέξουμε τι από τα 2 θα καταργήσουμε και εκεί θα γίνει χαμός καθώς υπάρχουν απόψεις που προτιμούν την κατάργηση τη ΓΛΩΣΣΑΣ. Τι θα γίνει όμως τότε με τα υποπρογράμματα (super must για την αναλυτική ικανότητα και τον τμηματικό προγραμματισμό) και ειδικά με το πέρασμα παραμέτρων;