Επιχειρήματα μέσα από τα σχολικά βιβλία υπέρ της χρήσης πίνακα στο Γ

Ξεκίνησε από bagelis, 29 Μαΐου 2010, 01:20:01 ΜΜ

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

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

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

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

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

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

Το έγραψα αλλού και το παραθέτω.

Παράθεση από: sdoukakis στις 02 Ιουν 2010, 01:46:27 ΠΜ
Είναι η ώρα που χρειαζόμαστε επιμόρφωση. Διότι είμαστε πολύ καλοί γνώστες της δουλειάς μας, αλλά κολλήσαμε στη δουλειά μας...
Αυτό που χρειαζόμαστε είναι ένα διδακτικό συμβόλαιο και νομίζω ότι οι ενώσεις μας μπορούν να το "γράψουν".

Vangelis

Παράθεση από: dtheo στις 07 Ιουν 2010, 02:20:57 ΜΜ

"Pseudocode is a kind of structured english for describing algorithms. It allows the designer to focus on the logic of the algorithm without being distracted by details of language syntax.  At the same time, the pseudocode needs to be complete.  It describe the entire logic of the algorithm so that implementation becomes a rote mechanical task of translating line by line into source code. "


Δημήτρη για εξήγησε μας τι καταλαβαίνεις απο την τελευταία πρόταση.

dtheo

@gpapargi

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

Δηλαδή:
.....
ι<-1
α[ι] <- -1
Διάβασε χ
Οσο χ > 0 επαναλαβε
    α[ι] <- χ
    ι <- ι + 1
    copy(a, temp, i)
    increase(a, i)
    copy(temp, a, i)
    διαβασε χ
τέλος επανάληψης


αλγόριθμος copy
//δεδομενα a, ι//
αρχη
για κ απο ι μεχρι ι - 1
    temp[ι] <- a[i]
τελος επαναληψης
ι <- ι  + 1
temp[i] <- -1
//Αποτελεσμα temp//
τελος αλγορίθμου.

αλγόριθμος increase
//δεδομενα ι
Αρχη
   για κ απο 1 μεχρι ι
      a[ι] <- -1
    τελος επαναληψης
//Αποτέλεσμα a 
τελος αλγορίθμου   



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

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


@evry
Βασιζόμενος λοιπόν στην ψευδογλώσσα του βιβλίου θα ήθελα να σας παρακαλέσω να μου υποδείξετε το μέγεθος του πίνακα power στον αλγόριθμο της σελίδας 90. Εκτός βέβαια και αν αυτή είναι άλλη ψευδογλώσσα.

@Vangelis
Ότι είναι και ελεύθερο το οποίο δεν αποτελεί  πρότυπο -standard- (ο καθένας θα μπορούσε να ορίσει μια ψευδογλώσσα) και το οποίο απαγκιστρώνει το σχεδιαστή από τις ιδιαιτερότητες κάποιας γλώσσας. Με άλλα λόγια μπορείς να κάνεις παραδοχές τις οποίες κάποιες γλώσσες δεν θα σου επέτρεπαν -βλέπε γλώσσα Γλωσσα και πίνακες μη προκαθορισμένων στοιχείων. Άλλωστε αυτή είναι μία από τις χρήσεις των αλγορίθμων και η χρήση της ψευδογλώσσας. Να περιγράψεις τη λύση ενός προβλήματος χωρίς να δεσμεύεσαι από γλωσσικούς ή υπολογιστικούς περιορισμούς, όπως για παράδειγμα οι πύργοι του Ανόι. Ο αλγόριθμος δουλεύει και για 3 αλλά και για 100000 δίσκους. Ο υπολογιστής θα πεί stack overflow λόγω της αναδρομής στην περίπτωση των 100000 δίσκων. Αυτό όμως δε σημαίνει ότι είναι λάθος ο αλγόριθμος ή η ψευδογλώσσα στην οποία έχει περιγραφεί.   

Πάρε παράδειγμα τον παρακάτω ψευδοκώδικα:
1  function Dijkstra(Graph, source):
 2      for each vertex v in Graph:           // Initializations
 3          dist[v] := infinity               // Unknown distance function from source to v
 4          previous[v] := undefined          // Previous node in optimal path from source
 5      dist[source] := 0                     // Distance from source to source
 6      Q := the set of all nodes in Graph
        // All nodes in the graph are unoptimized - thus are in Q
 7      while Q is not empty:                 // The main loop
 8          u := vertex in Q with smallest dist[]
 9          if dist[u] = infinity:
10              break                         // all remaining vertices are inaccessible from source
11          remove u from Q
12          for each neighbor v of u:         // where v has not yet been removed from Q.
13              alt := dist[u] + dist_between(u, v)
14              if alt < dist[v]:             // Relax (u,v,a)
15                  dist[v] := alt
16                  previous[v] := u
17      return dist[]


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

@gpapargi, @evry και @Vangelis
Το κύριο ερώτημα όμως δεν είναι η ψευδογλώσσα σε όποια της μορφή με όποια σημασιολογία, αν και είναι ένα σοβαρό ερώτημα, αλλά αν ισχύει το ότι κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή, όπως ισχυρίζεται η ΚΕΕ. Αν ισχύει λοιπόν, τότε ή λύση του θέματος Γ είναι ολόσωστη, αποδεκτή και όχι "ελαφρώς" λάθος όπως θέλει να την παρουσιάσει η ΚΕΕ.   


Θα παρακαλούσα και τους τρεις αν έχετε χρόνο να σχεδιάζατε έναν αλγόριθμο για το ακόλουθο πρόβλημα:
Ένα υπολογιστικό σύστημα δεν διαθέτει δυνατότητες δυναμικής δέσμευσης μνήμης. Να υλοποιηθεί πρόγραμμα το οποίο να υλοποιεί πλήρες δυαδικό δένδρο αναζήτησης. Το ύψος του δένδρου δίδεται από τον χρήστη κατά την εκτέλεση του προγράμματος δηλαδή δεν είναι a priori γνωστό. Δεν ζητάω πρόγραμμα αλλά αλγόριθμο.

Ευχαριστώ εκ των προτέρων για τον πολύτιμο χρόνο σας


Δρ. Δημήτριος Θεοτόκης

Πληροφορικός ΠΕ19

gpapargi

Παράθεση από: dtheo στις 08 Ιουν 2010, 01:33:53 ΠΜ
@gpapargi

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

Λες «υπό τις παρακάτω προϋποθέσεις;» και στη συνέχεις περιγράφεις την αύξηση μεγέθους του πίνακα που σημαίνει δυναμικό πίνακα.

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

ΥΓ
Έχω γράψει για τα άλλα που ρωτάς. Θα το ψάξω λίγο στα μηνύματα και θα στο στείλω.

gpapargi

Παράθεση από: sdoukakis στις 08 Ιουν 2010, 12:58:09 ΠΜ
Έρχεται, λοιπόν, το θέμα με το οποίο ο θεματοδότης θέλει να ελέγξει κάτι που από ότι φαίνεται είναι ξεκάθαρο στο δικό του μυαλό, αλλά με διαφορετικό τρόπο από το πως είναι ξεκάθαρο στο δικό μου μυαλό... και κυρίως στο μυαλό των συγγραφέων. Φαίνεται ότι δεν ελέγθηκε ούτε τι συμβαίνει στην τριτοβάθμια αλλά ούτε και η άποψη των συγγραφέων.

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

Το ίδιο ερώτημα που θέτω στον dtheo θέλω να θέσω και σε σένα:
Στην ψευδογλώσσα του σχολικού βιβλίου ισχύει το παρακάτω:

ι<-0
Διάβασε χ
Όσο χ>=0 επανάλαβε
  ι<-ι+1
  α[ι]<-χ 
  Διάβασε χ
Τελος_επαναληψης

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

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

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

dtheo

@gpapargi

Όχι δεν μιλάω για δυναμικό πίνακα αλλά για επαναληπτικό ορισμό πίνακα (νέος πίνακας κάθε φορά - γι' αυτό μίλησα για απόδοτικότητα) . Άλλωστε φαίνεται καθαρά από τον αλγόριθμο που παρέθεσα, Πολύ μεγάλη διαφορα. Σε κάθε επανάληψη κατασκευάζεται νέος πίνακας μεγέθους ι. [Δεν μεγαλώνει ο αρχικός. Μπορείτε να δείτε τον κώδικα. Δυναμικός πίνακας σημαίνει έχω τον πίνακα και σε αυτόν τον πίνακα προσθέτω κελιά (realloc στη C - απλά για να έχουμε κοινό σημείο αναφοράς), δεν έχω βοηθητικό πινακα στον οποίο  αντιγράφω τα δεδομένα του παλιού κατασκευάζω εκ νέου τον αρχικό αλλά μεγαλύτερο αυτή τη φορά και αντιγράφω και πάλι.

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

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

Ευχαριστώ εκ των προτέρων

Δρ. Δημήτριος Θεοτόκης

Πληροφορικός ΠΕ19

merlin

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

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

Παρασκευάς Πανάγου
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής ΠΕ20

gpapargi

Δημήτρη ελπίζω ότι μιλάμε στον ενικό, έτσι;  :)

Παράθεση από: dtheo στις 08 Ιουν 2010, 12:13:49 ΜΜ
@gpapargi

Όχι δεν μιλάω για δυναμικό πίνακα αλλά για επαναληπτικό ορισμό πίνακα (νέος πίνακας κάθε φορά - γι' αυτό μίλησα για απόδοτικότητα) . Άλλωστε φαίνεται καθαρά από τον αλγόριθμο που παρέθεσα, Πολύ μεγάλη διαφορα. Σε κάθε επανάληψη κατασκευάζεται νέος πίνακας μεγέθους ι. [Δεν μεγαλώνει ο αρχικός. Μπορείτε να δείτε τον κώδικα. Δυναμικός πίνακας σημαίνει έχω τον πίνακα και σε αυτόν τον πίνακα προσθέτω κελιά (realloc στη C - απλά για να έχουμε κοινό σημείο αναφοράς), δεν έχω βοηθητικό πινακα στον οποίο  αντιγράφω τα δεδομένα του παλιού κατασκευάζω εκ νέου τον αρχικό αλλά μεγαλύτερο αυτή τη φορά και αντιγράφω και πάλι.


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

Παράθεση από: dtheo στις 08 Ιουν 2010, 12:13:49 ΜΜ
Η όποια ψευδογλώσσα (δεν υπάρχει πρότυπο) μπορεί να ορίσει πίνακα αφού πρώτα γίνει γνωστό το μέγεθος του.  Όπως στο θέμα Γ. Τόσο απλά. Σε κάθε άλλη περίπτωση μία ολόκληρη οικογένεια προβλημάτων δεν θα μπορούσε να εκφραστεί αλγοριθμικά (κλειστότητα συνόλων, πολλαπλασιασμός πινάκων, επεξεργασία γράφων κ.ο.κ).



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

Παραδείγματα

Βιβλίο μαθητή σελίδα 68 αλγόριθμος φυσαλλίδας. Θεωρείται δεδομένος ο πίνακας (table) καθώς και το μέγεθός του (n). Η δήλωση είναι
Δεδομένα //table,n//

Τετράδιο μαθητή σελίδα 33 παράδειγμα 5 με αραιούς πίνακες. Ξέρουμε ότι έχουμε n στοιχεία. Θέλουμε πίνακα μεγέθους 3n. Η δήλωση είναι
Δεδομένα  //sparse,n//  και όχι Δεδομένα //sparse 3n//

Τετράδιο μαθητή σελίδα 38 (ταξινόμηση επιλογής). Θεωρείται γνωστό το μέγεθος του πίνακα και ίσο με 1000. Γνωστά είναι και τα στοιχεία. Η δήλωση είναι
Δεδομένα //THL// και όχι Δεδομένα //THL, 1000// αφού δεν έχει νόημα να πούμε ότι το 1000 είναι γνωστό.

Δηλαδή απλά θεωρείς δεδομένα αυτά που χρειάζεται έτσι ώστε να γράψεις τον αλγόριθμο σε ψευδογλώσσα. Τα ίδια θα κάναμε και στον πολλαπλασιασμό πινάκων και όπου αλλού χρειαστεί. Πχ για τον πολλαπλασιασμό πινάκων Α[μ,ν] και Β[κ,λ] θα γράφαμε
Δεδομένα //Α, Β, μ,ν,κ,λ// αν θέλαμε να καλύψουμε με κάποια μήνυμα την περίπτωση τυχαίων μεγεθών (δηλαδή μήνυμα σφάλματος αν ν<>κ).

Επίσης κάτι σχετικό με την ψευδογλώσσα

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

https://alkisg.mysch.gr/steki/index.php?topic=2953.msg29847#msg29847

Όλα αυτά εμένα μου λένε ότι οι συγγραφείς έχουν στο νου τους κάτι όχι απαραίτητα ίδιο με την ψευδογλώσσα της βιβλιογραφίας. Αλλιώς γιατί να γίνει τέτοια εργασία;

dtheo

@gpapargi

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

Μη με κανεις να σου αποδειξω ισοδυναμία αλγοριθμων με Ζ και VDM ή λ-λογισμό. Τώρα αν δεν κάνω λάθος η ζητούμενη ιδιότητα εμφανίζεται στη σελίδα 90 για την οποία σελίδα, ενώ στην έχω αναφέρει αρκετές φορές, δεν φαινεται να σχολιάζεις. Το επιχείρημα είναι εκτός ύλης δεν το δέχομαι γιατί αναιρείται από το "κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή". (Παρένθεση: ξέρω ότι το 1986 φίλος χρησιμοποίησε ολοκληρωτικό λογισμό για να λύσει ασκήσεις της Φυσικής και πήρε 20 - "κάθε επιστημονικά τεκμηριωμένη λύση"). Το κομμάτι που έγραψες δεν τρέχει γιατί δεν πληροί το κριτήριο της αποτελεσματικότητας για αυτό που θέλεις να κάνεις συνεπώς είναι λάθος ο αλγόριθμος. Ο αλγόριθμος που σου δίνω το πληροί και επιλύει το ζητούμενο.


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

Συγνώμη που θα σε απογοητεύσω σε αυτό αλλά στη σελίδα 90 δεν το κάνει. Λυπάμαι !

Τελικά τον αλγόριθμο για το δυαδικό δένδρο ακόμη τον περιμένω.

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

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

@merlin & gpapargi
Εάν λοιπόν πιστεύετε ότι δεν γίνεται να γραφεί αλγόριθμος ο οποίος δέχεται από το χρήστη το μέγεθος του πίνακα, αποδείξτε μου ότι ο αλγόριθμος που σας ζήτησα με το δυαδικό δέντρο δεν μπορεί να υλοποιηθεί και ότι ο αλγόριθμος στη σελίδα 90 του σχολικού βιβλίου είναι λάθος. Σε κάθε άλλη περίπτωση, αποδεκτείτε επιτέλους ως επιστήμονες - οι οποίοι δέχονται επιστημονικά τεκμηριωμένες λύσεις - το γεγονός ότι είναι δυνατή η δημιουργία και χρήση πίνακα του οποίου αρχικά το μέγεθος δεν είναι γνωστό, αλλά πριν τη ρητή χρήση του γίνεται γνωστό. Μόνο φορμαλιστική (λ, Ζ κλπ) απόδειξη ότι δε γίνεται θα με πείσει για το αντίθετο. Αλλιώς, απλά θα συμφωνήσω στο ότι διαφωνούμε, διακρίνοντας μία σοβαρή αδυναμία τεκμηριωμένα, με συγκεκριμένα παραδείγματα, όπως η λύση του προβλήματος που σας έχω θέσει, να μου αποδείξετε ότι κάνω λάθος.

Αναρωτιέμαι πραγματικά γιατί δεν έχει κανείς σχολιάσει μέχρι τώρα, τον αλγόριθμο στη σελίδα 90.

Δρ. Δημήτριος Θεοτόκης
Πληροφορικός ΠΕ19

George

Παράθεση από: gpapargi στις 08 Ιουν 2010, 02:10:11 ΜΜ
Το βιβλίο αντιμετωπίζει όλα αυτά με τη δήλωση Δεδομένα. //ν// που σημαίνει ότι το ν είναι γνωστό. Δε μας ενδιαφέρει πως έγινε γνωστό, αλλά είναι γνωστό και μπορούμε να γράψουμε τον αλγόριθμο επίλυσης συναρτήσει του ν.


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

Παράθεση από: sdoukakis στις 08 Ιουν 2010, 12:58:09 ΠΜ

Αυτό που χρειαζόμαστε είναι ένα διδακτικό συμβόλαιο και νομίζω ότι οι ενώσεις μας μπορούν να το "γράψουν".

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

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

Μερικές φορές απαντάμε πάνω σε αυτά που μας ρωτούν, ενώ άλλες αποφεύγουμε.

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

ι<-0
Διάβασε χ
Όσο χ>=0 επανάλαβε
  ι<-ι+1
  α[ι]<-χ
  Διάβασε χ
Τελος_επαναληψης

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

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

Πολλές φορές κάτι μας αρέσει σε ένα περιβάλλον και άλλες όχι.

Π.χ.

Αν βρ = Αληθής τότε

Αν βρ τότε

Διάβασε a, b
x <- a > b

Είναι δεκτές οι εντολές στην ψευδογλώσσα; Συζητήσαμε και είπαμε ότι δεν πρέπει να απαγορεύονται. Μα δεν υπάρχει στο βιβλίο είπαν κάποιοι. Ε και; Είναι λάθος; Χαλάει την αλγοριθμική σκέψη; Την κριτική σκέψη;

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

Sergio

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

Νομίζω ότι με αυτό τον τρόπο επιβεβαιώνουμε τις απόψεις περί καπνού και φωτιάς που διάβασα πρόσφατα σε μία εκτενή έως κουραστική επιστολή
http://www.alfavita.gr/ank_b/ank7_6_10_1508.php

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

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

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

Ποια ασάφεια υπάρχει σχετικά με το αν τίθεται θέμα καταλληλότητας (ή μη) κάποιας από τις τρεις εντολές επανάληψης, θέμα που αποτελεί και σαφέστατα διατυπωμένο διδακτικό στόχο (#6 αν θυμάμαι καλά) στο κεφάλαιο 8 και παρουσιάζεται στο υπάρχον «διδακτικό συμβόλαιο» με φράσεις όπως:
-   όταν ο αριθμός των επαναλήψεων είναι γνωστός εκ των προτέρων είναι προτιμότερο να χρησιμοποιείται η εντολή Για
-   σε περιπτώσεις όπου η επανάληψη θα συμβεί υποχρεωτικά μία φορά είναι προτιμότερη η χρήση της Μεχρις_οτου
Εν τούτοις, και εδώ θα συμφωνήσω από προσωπική εμπειρία με το συντάκτη της επιστολής, συχνά ακούμε μαθητές να λένε ότι «ο καθηγητής μας έχει πει να χρησιμοποιούμε πάντα την ΟΣΟ».  Αυθαίρετο; Ναι. Λάθος; Χμμμ όπως το πάρει κανείς.  Ο καθηγητής τους μπορεί να προτιμάει την ΟΣΟ για τους προσωπικούς του λόγους. Νομιμοποιείται όμως να διδάσκει τους μαθητές του να κάνουν το ίδιο; Σέβεται το «διδακτικό συμβόλαιο» ή αυθαιρετεί επικίνδυνα σε βάρος των μαθητών του και μετά κατηγορεί τα θέματα που οι μαθητές απαντούν λάθος; (βλ.2009)

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

Στο επίμαχο τώρα. Ποια είναι η ασάφεια στη φράση: «το ακριβές μέγεθος καθορίζεται κατά τη στιγμή του προγραμματισμού και όχι κατά τη στιγμή της εκτέλεσης»;;

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

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

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

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

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

Η προσωπική μου αντίληψη σχετικά με τη διδασκαλία των δομών δεδομένων που επιχειρείται στο πλαίσιο του μαθήματος είναι ότι αυτή παρουσιάζεται με σαφήνεια στο κεφάλαιο 3 και συνεχίζεται χωρίς αντιφάσεις και εκπλήξεις (όπως οφείλει) στο κεφάλαιο 9.

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

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

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

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

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

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

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

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

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

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

Sergio

Σχετικά με το παράδειγμα της σελίδας 90.. μία άποψη. Ελπίζω να μην πω καμιά χαζομάρα, είναι και το προχωρημένο της ώρας..

Αλήθεια, ποιο είναι το μέγεθος του πίνακα;  Δε φαίνεται να ορίζεται πουθενά. Ούτε και να ζητείται από το χρήστη όμως.  Δε νομίζω ότι είναι παράδειγμα που μπορεί να υποστηρίξει την άποψη ότι το μέγεθος του πίνακα ορίζεται κατά την εκτέλεση του αλγόριθμου.  Ο πίνακας φαίνεται ήδη ορισμένος. Άρα μάλλον το μέγεθός του δεν είναι παρά μία «τεχνική λεπτομέρεια» δευτερεύουσας σημασίας.  Μάλλον θέλει να εστιάσει στο αλγοριθμικό κομμάτι.

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

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

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

gpapargi

Από το παρακάτω απόσπασμα

Παράθεση από: dtheo στις 08 Ιουν 2010, 04:28:41 ΜΜ
Τώρα αν δεν κάνω λάθος η ζητούμενη ιδιότητα εμφανίζεται στη σελίδα 90 για την οποία σελίδα, ενώ στην έχω αναφέρει αρκετές φορές, δεν φαινεται να σχολιάζεις.

Καθώς και από αυτό

Παράθεση από: sdoukakis στις 08 Ιουν 2010, 11:22:33 ΜΜ
Μερικές φορές απαντάμε πάνω σε αυτά που μας ρωτούν, ενώ άλλες αποφεύγουμε.

Καταλαβαίνω ότι βιάζεστε να βγάλετε συμπεράσματα ότι αποφεύγω να απαντήσω. Σας είχα γράψει αυτό
Παράθεση από: gpapargi στις 08 Ιουν 2010, 11:09:52 ΠΜ
ΥΓ
Έχω γράψει για τα άλλα που ρωτάς. Θα το ψάξω λίγο στα μηνύματα και θα στο στείλω.

Λοιπόν να το link με την παλιά μου απάντηση
https://alkisg.mysch.gr/steki/index.php?topic=2953.msg29686#msg29686

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

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

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

Παράθεση από: dtheo στις 08 Ιουν 2010, 04:28:41 ΜΜ
Συγνώμη που θα σε απογοητεύσω σε αυτό αλλά στη σελίδα 90 δεν το κάνει. Λυπάμαι!

Στη σελίδα 90 κάνει αυτό που περιγράφω στο link. Δεν κάνει αυτό που περιέγραψες στον κώδικα που έστειλες με τον επαναπροσδιορισμό του πίνακα. Τον κώδικα αυτόν θα τον σχολιάσω σε επόμενο μήνυμα παραπέμποντας σε άλλο παλαιότερο μήνυμά μου. 

Το ίδιο ισχύει και στο πρόβλημα με το δέντρο. Αν ξέρεις το βάθος του δέντρου μπορείς να ξέρεις και τον αριθμό των κόμβων. Στο πρώτο επίπεδο έχεις 1(=2^0) κόμβο, στο δεύτερο επίπεδο έχεις 2(=2^1) κόμβους και γενικά στο ν επίπεδο έχεις 2^(ν-1) κόμβους. Αν τα προσθέσεις όλα αυτά βγαίνει εύκολα με τον τύπο του αθροίσματος όρων γεωμετρικής προόδου το συνολικό πλήθος των κόμβων.

Παράθεση από: dtheo στις 08 Ιουν 2010, 04:28:41 ΜΜ
Μια απο αυτές και ο αλγόριθμος που σου ζήτησα που μάλλον σε δυσκόλεψε αφού δεν μου έχεις δώσει μία λύση.

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

Ένα τελευταίο σχόλιο:
Θα πρότεινα ατάκες της μορφής
Παράθεση από: dtheo στις 08 Ιουν 2010, 04:28:41 ΜΜ
Μια απο αυτές και ο αλγόριθμος που σου ζήτησα που μάλλον σε δυσκόλεψε αφού δεν μου έχεις δώσει μία λύση.
(οι οποίες παραπέμπουν ευθέως σε ψώνιο), καλό είναι να αποφεύγονται γιατί απλά διοχετεύουν ένταση στην κουβέντα χωρίς να προσφέρουν τίποτα σε επίπεδο επιχειρημάτων. Αν δεν μπορείς να αποβάλεις αυτή τη συμπεριφορά τελείως τουλάχιστο περιόρισέ την στους μαθητές σου. Να αρχίσω κι εγώ να βρίζω να δούμε που θα καταλήξουμε;



georgekanakakis

Παρακαλουθώ με ενδιαφέρον την κουβέντα αυτή και θα ήθελα να επισημάνω το εξής αν μου επιτρέπετε. Επειδή δεν το έχει απαντήσει κανένας ότι στο παράδειγμα της σελίδας 90 πολύ εσφαλμένα θεωρείται ότι ο πίνακας δεν έχει καθορισμένο όριο.
  Ένα άνω όριο του πίνακα είναι σίγουρα το b διότι αν δεν κάνω λάθος ο αλγόριθμος δημιουργεί πίνακα με log(b) πλήθος θέσεων (περίπου αλλά σίγουρα αυτής της κλίμακας)
και επειδή logb < b και το b είναι καθορισμένο στα Δεδομένα ο πίνακας έχει το πολύ τόσα στοιχεία.
   Επίσης ο κώδικας που παραθέτει ο dtheo πρέπει κάπου να έχει λάθος γιατί αν κατάλαβα καλά θεωρεί πως με το να βάζεις -1 σε έναν πίνακα δημιουργούνται θέσεις ως δια μαγείας.

Ευχαριστώ για τη φιλοξενία
Γιώργος Κ.