ΔΥΝΑΜΙΚΕΣ ΔΟΜΕΣ

Ξεκίνησε από kinik, 02 Δεκ 2005, 08:28:34 ΠΜ

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

kinik

Γεια σε όλους. Θα ήθελα να αναφερθώ σε ένα θέμα που διάβασα σε κάποιο βοήθημα σχετικό με το μάθημα. Συγκεκριμένα το βοήθημα αναφέρεται σε δυνάμικές δομές δεδομένων και αναφέρει σε αυτές τη στοίβα και την ουρά.
Προσωπικά πιστεύω ότι είναι λάθος για δύο λόγους:
1. Η υλοποίηση και των δύο δομών γίνεται με πίνακα και συνεπώς το μέγεθος της δομής περιορίζεται.
2. Τα στοιχεία αποθηκευόνται σε συνεχομένες θέσεις μνήμης.
Ποια είναι η γνώμη σας πάνω σε αυτό το θέμα?

chaos

Καλημέρα Kinik,

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

Ευχαριστώ,
Σωτήρης

kinik

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

EleniK

Θα συμφωνήσω με το συνάδελφο chaos σχετικά με το ότι η στοίβα και η ουρά είναι δυναμικές δομές δεδομένων. Εκτός του ότι δεν αναφέρει ότι τα δεδομένα αποθηκεύονται σε συνεχόμενες θέσεις μνήμης έχουν και μη σταθερό μέγεθος. Μέσα στο βιβλίο στις δυναμικές δομές, αναφέρει οτι εκτός της δυναμικής παραχώρησης μνήμης χαρακτηριστικό τους είναι ότι δεν έχουν σταθερό μέγεθος.
΄
Ελένη
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

P.Tsiotakis

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

Άλλωστε, οι δομές αυτές:
1. Αποθηκεύουν τα στοιχεία τους σε συνεχόμενες θέσεις μνήμης, κάτι που δηλώνουν οι δείκτες top και rear
2. Έχουν σταθερό μέγεθος, αλλιώς τι νόημα θα είχε η υπερχείλιση;

3. Στην παράγραφο 3.9 (εκτός ύλης) ξεκινάει τις ΑΛΛΕΣ δομές δεδομένων που είναι οι δυναμικές.

Κάθε βοήθημα, μπορεί να λέει ο,τι θέλει κατά τα άλλα  :juggle: . Ας προσέχουμε λίγο παραπάνω

kinik

Θα συμφωνήσω και εγώ με τον συνάδελφο ptsiotaki. Εγώ σε αυτό που διαφωνώ με το βοήθημα είναι ότι παρουσιάζει τη συγκεκριμένη υλοποίηση στοίβας και ουράς ως δυναμική δομή. Αν όντως πρόκειται για δυναμικές δομές τι νόημα έχει η υπερχείλιση όπως είπε ο ptsiotakis. Επίσης η λειτουργία της ώθησης και της απώθησης όπως περιγράφονται στο σχολικό βιβλίο (δείκτης top - push top+1 και pop top-1) δε δηλώνουν ότι τα στοιχεία αποθηκεύονται σε συνεχομένες θέσεις μνήμης?
Η ερώτηση αφορούσε τα γραφόμενα στο βιβλίο και όχι τη γενική περίπτωση στοίβας.
Εγώ πιστεύω ότι στο βιβλίο οι συγγραφείς θέλησαν να παρουσιάσουν τη στοίβα και την ουρά ως στατικές δομές δεδομένων που παρέχουν ένα συγκεκριμένο τρόπο επεξεργασίας.

kinik

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

chaos

Γεια σας και πάλι,

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

kinik

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

Ευχαριστώ και πάλι.

BlackPainter

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

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

Μήπως να αναρωτηθούμε για το τι καταλαβαίνουν και αυτοί οι κακόμοιροι διαβάζοντας?(Αυτό θα μπορούσε να αποτελεί και ξεχωριστό topic i guess)

Χρόνια πολλά και ελπίζω να μας μπει σε όλους καλά

sgsfak

ΠαράθεσηΤο αν μία δομή είναι στατική ή δυναμική έχει να κάνει με την υλοποίησή της?(για όνομα του θεού) δηλαδή αν εγώ έκανα υλοποίηση γράφου ή δέντρου με πίνακα θα λέγαμε ότι είναι στατική δομή?
Θα είχες μια στατική δομή δεδομένων που υλοποιεί τη λειτουργικότητα και έχει τα χαρακτηριστικά του γράφου ή του δέντρου.  :D

Νομίζω ότι θα πρέπει  να ξεχωρίσουμε τις Αφηρημένες Δομές Δεδομένων (Abstract Data Structures) από τις "συγκεκριμένες" δομές δεδομένων που υλοποιούν ή εξειδικεύουν τις ΑΔΔ θέτοντας παραπάνω περιορισμούς στη χρήση ή τη λειτουργικότητα τους. Η στοίβα και η ουρά είναι παραδείγματα ΑΔΔ και ο ορισμός τους γίνεται με βάσει τη λειτουργικότητα που παρέχουν, π.χ. σε μια στοίβα (S) μπορείς σε γενικές γραμμές να κάνεις τα εξής: να εισάγεις ένα νέο στοιχείο (push) και να εξάγεις ένα παλιό (pop) και ισχύει πάντα η συνθήκη ότι pop(push(S,e)) = e δηλ. εξάγεται το στοιχείο που εισήχθη τελευταίο. Με βάσει αυτά δεν γίνεται πουθενά αναφορά το αν είναι στατική ή δυναμική δομή δεδομένων και επομένως αυτό έχει να κάνει με την υλοποίηση της.

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

Όσον αφορά το γράφο και το δέντρο πρόκειται και εδώ για ΑΔΔ των οποίων ο ορισμός δεν ασχολείται με το αν έχουν μέγιστο μέγεθος ή όχι, αλλά αναφέρει τα συγκεκριμένα χαρακτηριστικά που έχουν (π.χ. ο γράφος αποτελείται από ένα σύνολο κορυφών και ένα σύνολο ακμών που τις συνδέουν). Το στατικό ή δυναμικό των δομών δεδομένων συνήθως παρουσιάζεται κατά την υλοποίηση εκτός από τις περιπτώσεις όπου η εφαρμογή έχει συγκεκριμένες απαιτήσεις, όπως είναι το παράδειγμα παραγωγού καταναλωτή που έδωσα παραπάνω, όπου μια τέτοια απόφαση πρέπει να ληφθεί κατά τη σχεδίαση της εφαρμογής. Και φυσικά υπάρχουν διαφορετικές υλοποιήσεις για γράφους (π.χ. με δείκτες και δυναμική εκχώρηση μνήμης, με δισδιάστατους πίνακες κλπ) και για δέντρα
Ακόμα δύο παρατηρήσεις:
  • Το να είναι κάτι στατικό δεν είναι πάντα κακό. Η δυναμική εκχώρηση μνήμης και η χρήση των δεικτών που απαιτούνται σε δυναμικές (όχι abstract) δομές δεδομένων έχει συνήθως επιβάρυνση στο run time, έχει μη predictable συμπεριφορά (απαραίτητη για real time συστήματα), και κάνει πιο δύσκολο των προγραμματισμό (εκτός αν χρησιμοποιείς έτοιμες βιβλιοθήκες όπως είναι τα Collections της Java ή η STL της C++)
  • Ο πίνακας όπως παρουσιάζεται στο βιβλίο είναι μια στατική δομή δεδομένων, προερχόμενη από το array της Pascal, που είναι υλοποίηση της ΑΔΔ sequence (ακολουθία). Γενικά όμως υπάρχουν και δυναμικά arrays όπως είναι τα vector των Java και C++ ή τα arrays διαφόρων scripting γλωσσών (π.χ. Perl). Σε αυτές τις περιπτώσεις ο πίνακας "μεγαλώνει" (συνήθως διπλασιάζεται το μέγεθος του) όταν γεμίσει για να δημιουργήσεις θέσεις για νέα στοιχεία ενώ θέσεις μνήμης που καταλαμβάνει συνεχίζουν να είναι συνεχόμενες. Με έναν τέτοιο πίνακα η υλοποίηση ενός δέντρου είναι στατική ή δυναμική; ;)
Χρόνια Πολλά!
Στέλιος

BlackPainter

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

Παρόλα αυτά ακόμα και αυτή η αναφορά στο ΜΕΓΙΣΤΟ μέγεθος της στοίβας ή της ουράς με κάνει να αναρωτιέμαι αν αναφέρεται στο μέγεθος της στοίβας που είναι πεπερασμένο ή στην "περατότητα" του φυσικού κόσμου. Γιατί αν είναι έτσι, εφόσον οποιοσδήποτε ΑΤΔ ΠΡΕΠΕΙ να υλοποιηθεί σε ένα "φυσικό" άρα πεπερασμένο μέσο, ,ακόμα και αν δεν είναι κομμάτι του ορισμού του, μοιραία έχει πεπερασμένο μέγιστο μέγεθος άρα ,ίσως θα έπρεπε να χαρακτηρίζεται στατικός. Συνεπώς το κριτήριο οφείλει να είναι η λειτουργία και επειδή δεν μπορούμε να κάνουμε αναφορά σε δυναμική παραχώρηση μνήμης στους μαθητές μας καλούμαστε να αποφασίσουμε αν τα δύο πολύ συγκεκριμένα κριτήρια (διαδοχικές θέσεις και σταθερό μέγεθος) μας οδηγούν (και δεν οδηγούμαστε μόνοι μας) σύμφωνα με τα γραφόμενα στις παραγράφους 3.4 και 3.5 σε ασφαλές συμπέρασμα. Έτσι καταλίγω στα συμπεράσματα του παραπάνω μηνύματός μου.

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

Χρόνια Πολλά !!!
Γιώργος

P.Tsiotakis


Στο βιβλίο καθηγητή στις σελίδες 86-88 (κεφάλαιο 3) υλοποιούνται οι δομές δεδομένων στοίβα (με ώθηση και απώθηση) και ουρά (με εισαγωγή και εξαγωγή), αντίστοιχα έχω κάνει μια τέτοια προσπάθεια και στο Β τεύχος (10 Ιανουαρίου)

Δεν είναι ξεκάθαρο οτι οι δομές αυτές είναι στατικές;
1. Αποθηκεύουν τα στοιχεία τους σε συνεχόμενες θέσεις μνήμης, κάτι που δηλώνουν οι δείκτες top και rear
2. Έχουν σταθερό μέγεθος, αφού κάθε πίνακας έχει σταθερό μέγεθος (αλλιώς τι νόημα θα είχε η υπερχείλιση; )

Χρόνια πολλά σε όλους και καλή πρωτοχρονιά,

bagelis1

Το ίδιο το βιβλίο δεν αναφέρει ότι η στοίβα και η ουρά είναι στατικές δομές δεδομένων. Το βιβλίο λέει ότι υλοποιούνται με πίνακες. Αυτό ούτως ή άλλως είναι ευρέως γνωστό. Επίσης είναι ευρέως γνωστό ότι η στοίβα και η ουρά υλοποιούνται και με δείκτες, πράγμα που τις κάνει δυναμικές δομές δεδομένων.
Επίσης πάντα μία δομή δεδομένων είναι πεπερασμένη (ακόμα και με δείκτες έχει όριο τη μνήμη του Η/Υ στον οποίο εκτελείται), αυτό δεν σημαίνει ότι όλες οι δομές δεδομένων είναι στατικές. Ακόμη, υπερχείλιση δεν είναι μία έννοια που χρησιμοποιείται σε πίνακα. Υπερχείλιση είναι έννοια των δυναμικών δομών δεδομένων και σημαίνει "δεν χωράει άλλο δεδομένο η μνήμη".
Τέλος μην ξεχνάμε το προφανές: Κάθε λύση επιστημονικά αποδεκτή θεωρείται σωστή Δεν μπορώ να διανοηθώ ότι θα διδάξω λάθος τους μαθητές μου, μόνο και μόνο επειδή το βιβλίο δεν αναφέρει ρητά ότι είναι δυναμικές δομές δεδομένων. Στο κάτω κάτω ούτε το αντίθετο αναφέρει. Αν τώρα κάποιοι συνάδελφοι πιάνονται από την υλοποίηση σε πίνακα και βγάζουν γενικότερα συμπεράσματα, δεν νομίζω ότι αυτός είναι ορθός τρόπος απόδειξης.
Ένα γενικότερο σχόλιο: Το βιβλίο είναι οδηγός μας, αναμφισβήτητα, δεν είναι όμως η χρυσή βίβλος του προγραμματισμού, ούτε το έγραψε ο Knuth! Τα πάντα είναι θέμα ερμηνείας, και η ερμηνεία γίνεται με γενικότερα επιστημονικά κριτήρια. Ας μην είμαστε τόσο αγκυλωμένοι πια! Όύτε η Ιερά Εξέταση θα μας διορθώσει (και αν σε αυτό διαψευστώ, πάλι εμείς είμαστε υπεύθυνοι, εμείς διορθώνουμε) ούτε γέροι και κουρασμένοι είμαστε για να βάζουμε τόσες πολλές παρωπίδες και να λέμε "ότι λέει το βιβλίο". Δεν είναι αυτό σύγχρονη εκπαίδευση και αλλοίμονο αν ούτε εμείς δεν μπορούμε να υπηρετήσουμε κάτι τέτοιο!
Με εκτίμηση...
Βαγγέλης Μπέκος

BlackPainter

Εγκρίνω και επαυξάνω Βαγγέλη!

sgsfak

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

ΠαράθεσηΓιατί αν είναι έτσι, εφόσον οποιοσδήποτε ΑΤΔ ΠΡΕΠΕΙ να υλοποιηθεί σε ένα "φυσικό" άρα πεπερασμένο μέσο, ,ακόμα και αν δεν είναι κομμάτι του ορισμού του, μοιραία έχει πεπερασμένο μέγιστο μέγεθος άρα ,ίσως θα έπρεπε να χαρακτηρίζεται στατικός.
Διαφωνώ. Μια στατική δομή δεδομένων θέτει η ίδια περιορισμούς στο μέγεθος της πέρα από οποιουσδήποτε περιορισμούς του πραγματικού κόσμου. Μια στατική δομή δεδομένων είναι ανελαστική σε διακυμάνσεις του αριθμού των δεδομένων που οργανώνει κάνοντάς την είτε να σπαταλά χώρο που δεν χρησιμοποιείται, ή να μην μπορεί να χρησιμοποιηθεί όταν δεν έχει προβλεφθεί σωστά ο μέγιστος αριθμός δεδομένων. Από την άλλη μεριά μια δυναμική δομή μπορεί να είναι ευέλικτη όχι μόνο στο να προσαρμοστεί σε πολλά δεδομένα αλλά και στο να ελευθερώσει μνήμη όταν αυτή δεν χρειάζεται πλέον.

Αρκετά όμως με αυτό το θέμα, ας συνεχίσουμε με το κυρίως θέμας μας...

ΠαράθεσηΆρα συμφωνώ με την απάντησή σου στο κομμάτι του μηνύματός μου που έχεις επιλέξει αλλά δεν συμφωνώ αν πιστεύεις ότι αυτό είναι μία απάντηση στο ερώτημα που θέτει το μάθημα της Α.Ε.Π.Π.
Στο βιβλίο του μαθητή η στοίβα και η ουρά, όπως παρουσιάζονται στις παραγράφους 3.4 και 3.5, ορίζονται ως στατικές δομές δεδομένων. Όπως λέει και ο Παναγιώτης οι δυναμικές δομές παρουσιάζονται στην 3.9 στην αρχή της οποίας μάλιστα λέει: "Κοινό γνώρισμα των δομών που εξετάσθηκαν προηγουμένως είναι ότι οι διαδοχικοί κόμβοι αποθηκεύονται σε συνεχόμενες θέσεις μνήμης".

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

Πάντως εγώ μικρός πίστευα στον Αι Βασίλη και αργότερα όταν έμαθα την αλήθεια τα "πήρα" με το "παραμύθιασμα"...  :D

Στέλιος

P.Tsiotakis


Για το μάθημα της ΑΕΠΠ η στοίβα και η ουρά είναι στατικές δομές δεδομένων.

Νόμιζα οτι σε αυτό το μάθημα είναι αφιερωμένο το στέκι
Επίσης νόμιζα οτι οι μαθητές εξετάζονται το διδακτικό πακέτο Α. Βακάλη κ.α. ΟΕΔΒ 2005

Έχει έρθει και άλλο βιβλίο και δεν το έχω δει ;

Ο Άγιος Βασίλης υπάρχει και πάντα φέρνει δώρα όλη τη χρονιά. Πειράζει αν δεν φοράει την κόκκινη στολή της Coca Cola ;


Sergio

Συνάδελφοι ψυχραιμία :)

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

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

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

Συχνά το θέμα που προκύπτει είναι το πώς θα προσαρμόσουμε εμείς τις γνώσεις μας στο πλαίσιο που θέτει το πρόγραμμα σπουδών (και κατ επέκταση το διδακτικό πακέτο) ώστε να παραμένουμε εντός θέματος και να μην μπαίνουμε (εμείς ή / και οι μαθητές μας) σε περιπέτειες εκτός θέματος

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

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

sgsfak

ΠαράθεσηΓια το μάθημα της ΑΕΠΠ η στοίβα και η ουρά είναι στατικές δομές δεδομένων.
Σωστά!

ΠαράθεσηΟ Άγιος Βασίλης υπάρχει και πάντα φέρνει δώρα όλη τη χρονιά.
Εμένα με έχει ξεχάσει.. Θα δούμε φέτος...  ;D

ΠαράθεσηΠειράζει αν δεν φοράει την κόκκινη στολή της Coca Cola ;
Η αμφίεση του δεν έχει καμία σχέση με την Coca Cola

Καλή χρονιά σε όλους με υγεία, ευτυχία, ...υπομονή και αντοχή!

Στέλιος

BlackPainter

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

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

Sergio

Μέσα σε λίγες γραμμές, ο συνάδελφος BlackPainter νομίζω ότι έθεσε αρκετά ερωτήματα που αξίζει τον κόπο να συζητηθούν:

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

2.      πρέπει να «κάνουμε τους μαθητές μας να μάθουν» ή να τους «πούμε τι να ξέρουν»;  Και τι σημαίνει το καθένα;

3.      υπάρχει ΜΙΑ ΑΛΗΘΕΙΑ σχετικά με το μάθημα, η «επικρατούσα στο forum άποψη»;;;

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

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

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

Sergio

ΕΡΩΤΗΜΑ 1: υπάρχει κάποια παιδαγωγική αξία στη διδασκαλία της έννοιας της στατικής δομής δεδομένων ως ... συνεχόμενες θέσεις μνήμης;

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

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

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

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

Sergio

ΕΡΩΤΗΜΑ 2: Πρέπει να κάνουμε τους μαθητές μας να μάθουν ή να τους πούμε τι να ξέρουν;

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

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

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

Σε αυτή την κατεύθυνση είναι ουσιαστική η ανάγκη σωστής κατανόησης των στόχων του μαθήματος από τους διδάσκοντες.

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

Sergio

ΕΡΩΤΗΜΑ 3: υπάρχει ΜΙΑ ΑΛΗΘΕΙΑ σχετικά με το μάθημα, η «επικρατούσα στο forum άποψη» ;;;

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

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

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

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

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

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

ΕΑΝ ΣΤΑΜΑΤΗΣΟΥΜΕ ΝΑ ΑΙΣΘΑΝΟΜΑΣΤΕ ΑΝΕΤΑ ΓΙΑ ΤΗ ΣΥΜΜΕΤΟΧΗ ΜΑΣ ΣΤΟ ΣΤΕΚΙ, ΤΟΤΕ ΘΑ ΣΤΑΜΑΤΗΣΟΥΜΕ ΝΑ ΣΥΜΜΕΤΕΧΟΥΜΕ ΚΑΙ ΑΥΤΟ ΘΑ ΜΑΣ ΖΗΜΙΩΣΕΙ ΟΛΟΥΣ.

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

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

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

gpapargi

Καλημέρα και χρόνια πολλά.

Το παρακάτω κείμενο το έγραψα πριν δω τη θέση του Στέργιου στα 3 ερωτήματα. Οπότε τοποθετούμαι πρώτα στα προηγούμενα και στα ερωτήματα θα τοποθετηθώ σε άλλο post.

Πρώτα 2 λόγια για τις δομές.

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


Τώρα 2 λόγια για το μάθημα.

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

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

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

Εδώ εγώ εστιάζω τη διαφορά μεταξύ αλγοριθμικής και προγραμματισμού στο βιβλίο.

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

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

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

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

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

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

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

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

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

Vangelis

Συνάδελφοι bagelis1  και Blackpainter  πέρα απο την επιστημονική άποψη οι μαθητές μας πρέπει να γράψουν αυτό ΠΟΥ ΛΕΕΙ ΤΟ ΒΙΒΛΙΟ  ΚΑΙ ΟΠΩΣ ΑΚΡΙΒΩΣ ΤΟ ΛΕΕΙ.   Έχουν δει αρκετά τα μάτια μου και δεν ξέρω πολούς συναδέλφους βαθμολογητές που θα κάτσουν να το ψάξουν τόσο αναλυτικά.  Προσωπική μου αποψη  είναι ότι να κάποιος μαθητής γράψει ότι η ουρά και η στοίβα είναι δυναμικές δομές θα θεωρηθεί λάθος απο το 99% των βαθμολογητών (μεταξύ αυτών και εγώ!).  Τώρα αν ο μαθητής γράψει επιλέον μια σελίδα αναπτύσσοντας τις απόψεις του σχετικά με τους λόγους που θεωρεί αυτές τις δομές δυναμικές και ο βαθμολογητής έχει την ικανότητα (και την υπομονή) να καταλάβει αυτα που αναφέρονται τότε θα θεωρηθεί σωστό.  Αλλά ποιός μαθητής  θα το κάνει αυτό;  Συνεπώς εγώ μπορώ να λέω ότι θέλω μέσα στην τάξη στους μαθητές μου αλλά ΤΟΝΙΖΩ ότι πρέπει να γράφουν αυτό που λέει το βιβλίο και μάλιστα τους ορισμούς όπως ακριβώς τους λέει για να είναι σίγουροι ότι θα βαθμολογηθούν σωστά.
Αυτά βέβαια μπορεί να μην ακούγονται πολύ επιστημονικά αλλά στο site αυτό μιλάμε για το συγκεκριμένο μάθημα και όχι γενικά για τους αλγορίθμους, ας δούμε λοιπόν και λίγο πρακτικά το θέμα.  
Μεταξύ μας βέβαια καλό είναι να αναπτύσσονται τέτοια θέματα που θα είναι πολύ χρήσιμα σε μια μελλοντική ανανέωση του βιβλίου αλλά να μην μεταφέρονται ατους μαθητές μας.

Vangelis

Τελικ΄ακαι το δικό μου σχόλιο δεν είναι επίκαιρο αφού είχα διαβάσει μόνο τα πρώτα μηνύματα αλλά δεν πειράζει και τόσο.
Σχετικά με τον Στέλιο (sgsfak) θα ήθελα να τον διαβεβαιώσω ότι η σημερινή στολή του Αβ. Βασίλη είναι πράγματι δημιούργημα της Coca Cola (Βγήκε απο διαφήμησή της).
Σχετικά με τον Γίωργο και άλλους συναδέλφους θα ήθελα να ανανφέρω ότι Αλγοριθμική ενδιαφέρονται να διδάξουν και οι μαθηματικοί άρα ο τίτλος του μαθήματος μπορεί να είναι λιγάκι άσχετος με το περιεχόμενο του βιβλίου αλλά "αποτρέπει " άλλες ειδικότητες.
Θα να ειπωθεί σε εδώ ότι η άποψη του Παιδαγωγικού Ινστιτούτου είναι  το μάθημα να αλλάξει τίτλο να γίνει "Αλγοριθμική" να μετατραπεί σε Γενικής παιδείας και να διδάσκεται και απο Μαθηματικούς!!.
Αυτό βέβαια είνα μια άλλη κουβέντα που ξεφεύγει απο τα πλάισιο της τρέχουσας συζήτησης.

Βαγγέλης

Sergio

Συνάδελφοι,

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

Γι αυτό άνοιξα καινούργιο θέμα :

Σκοπός του μαθήματος

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

Sergio

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

Η άποψη που αναφέρει ο Βαγγέλης συζητείται έντονα.  Σε αυτή αναφέρομαι.  

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

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

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

bagelis

Επιχειρηματολογία υπέρ των δυναμικών δομών δεδομένων με βάση το σχολικό:
1.
Σχολικό σελ. 56 παρ. 2: Οι δομές αυτές (δυναμικές) δεν έχουν σταθερό μέγεθος, αλλά ο αριθμός των κόμβων τους μεγαλώνει και μικραίνει καθώς στη δομή εισάγονται νέα δεδομένα ή διαγράφονται κάποια δεδομένα αντίστοιχα.
Σχολικό σελ 60, 61: Βασικές πράξεις στοίβας / ουράς: ώθηση - απώθηση, εισαγωγή - εξαγωγή.
Δεν είναι πράξεις δυναμικών δομών δεδομένων αυτές;
2.
Σχολικό σελ. 50 σχήμα στοίβας, σχολικό σελ. 61 σχήμα ουράς: τα δύο αυτά σχήματα δεν παρουσιάζουν κάποια άκρα.
Θεωρητικά εγώ καταλαβαίνω ότι αυτά τα σχήματα ΔΕΝ έχουν άκρα, άρα έχουν γνωστό μέγεθος άρα είναι δυναμικές δομές δεδομένων.
3.
Το παράδειγμα του σχολικού για την στοίβα είναι στοίβα με πιάτα, και για την ουρά είναι ουρά σε τράπεζα. Αυτά τι είναι; Εγώ αντιλαμβάνομαι ότι είναι δυναμικές δομές δεδομένων.
4. Στα κεφάλαια για την στοίβα και την ουρά μόνο η τελευταία παράγραφος εξηγεί  τρόπο υλοποίησης. Μάλιστα χρησιμοποιεί την έκφραση "μπορεί να υλοποιηθεί..." Αυτό δεν σημαίνει ότι το βιβλίο λέει ότι μπορεί μόνο να υλοποιηθεί με πίνακα. Δεν μας περιορίζει. Άρα αφήνει να εννοηθεί ότι υπάρχουν και άλλοι τρόποι υλοποίησης. Δεν νομίζω ότι από τη παράγραφο υλοποίησης βγαίνουν γενικότερα συμπεράσματα για την στοίβα και την ουρά.


Δεν αμφισβητώ τα επιχειρήματα άλλων συναδέλφων (πάλι με βάση το σχολικό) που υποστηρίζουν ότι είναι στατική δομή δεδομένων. Αυτό που προσπαθώ να δείξω είναι ότι υπάρχουν αντεπιχειρήματα πάλι μέσα από το σχολικό. Προσωπικά θα ήμουν ευχαριστημένος αν συμφωνούσαμε ότι άσχετα από επιστημονικά κριτήρια το βιβλίο δεν έχει σαφή θέση σε αυτό το θέμα και καλό θα ήταν να μην το δούμε σε εξετάσεις. ΔΙΑΦΩΝΩ με την άποψη ότι το 99% των διορθωτών θα θεωρούσε στατική δομή δεδομένων τη στοίβα και την ουρά.
Τέλος έχω ανάγκη να επαναλάβω σαν ύστατο επιχείρημα υπέρ των ΔΔΔ ότι ΚΑΘΕ ΛΥΣΗ ΕΠΙΣΤΗΜΟΝΙΚΑ ΑΠΟΔΕΚΤΗ ΕΙΝΑΙ ΣΩΣΤΗ.

ΚΑΙ ΛΙΓΗ ΣΟΦΙΣΤΙΚΗ:
Η δομή της στοίβας λειτουργεί με τη μέθοδο FIFO. (Σωστό ή λάθος;)
Απάντηση: Σωστό (Σχολικό σελ 62, 2 πρώτες γραμμές), μάλιστα στο δικό μου βιβλίο με διαφορετική γραμματοσειρά, πράγμα που σημαίνει ότι είναι διορθωμένο κείμενο. Υπάρχει κάποιος από εμάς που θα υποστηρίξει τέτοιο πράγμα; Και όμως είναι γραμμένο στο σχολικό!

Με εκτίμηση,
Βαγγέλης Μπέκος

gpapargi

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

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

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

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

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

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

P.Tsiotakis

Στο διδακτικό πακέτο της ΑΕΠΠ η υλοποίηση της στοίβας και της ουράς (ακόμη και η θέση των παραγράφων 3.4 και 3.5 στο κεφάλαιο 3) μας οδηγούν στο συμπέρασμα οτι είναι στατικές δομές δεδομένων. Στην ύλη μας ΔΕΝ ΥΠΑΡΧΟΥΝ δυναμικές δομές δεδομένων
Και αυτή δεν είναι η επικρατούσα άποψη, αλλά η δική μου άποψη

Όταν πρωτοπαρουσιάζουμε την έννοια του πίνακα στους μαθητές και σχεδιάζουμε στο χαρτί έναν μονοδιάστατο πίνακα ΣΥΝΕΧΟΜΕΝΕΣ δεν είναι οι θέσεις του (κελιά); Δεν μπορώ να καταλάβω πως θα υπάρχει παρανόηση από τους μαθητές σε ένα απλό θέμα που στο κάτω κάτω είναι και θέμα ορισμού

Ούτε στο σταθερό μέγεθος του πίνακα μπορεί να υπάρξει παρανόηση, δεν μπορεί να υπάρχει στοιχείο Ν+1 σε έναν πίνακα Α[Ν], ούτε και σε μια στοίβα Ν θέσεων απο τη στιγμή που υλοποιείται με μονοδιάστατο πίνακα. Όμοια δεν μπορεί να υπάρξει μηδέν στον παρονομαστή ενός κλάσματος

Αυτά οι μαθητές πρέπει και να τα μάθουν και να τα ξέρουν

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

Με εκτίμηση,

gpapargi

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

Στις παραγράφους 3.4 και 3.5 αφού παρουσιαστούν οι πράξεις, λέει και 2 λόγια για την υλοποίηση.

Στην 3.4 λέει "Μια στοίβα μπορεί να υλοποιηθεί πολύ εύκολα με τη βοήθεια ενός μονοδιάστατου πίνακα"

Στην 3.5 λέει "Μια ουρά μπορεί να υλοποιηθεί με τη βοήθεια ενός μονοδιάστατους πίνακα . . . "

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


P.Tsiotakis


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

(στατική = σταθερό πλήθος θέσεων)

gpapargi

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

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

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

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


gkark

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

gpapargi

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


daidalos69

 :o 8) ??? ::) :P :-[ :angel: :'( ;) :)
Κυριε μου,θαρρω πως ειστε πολυ σωστος θετοντας τετοιες αποριες.........
Γεια χαρα........

_sleeper

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

άλλωστε δεν υπάρχει εκπαιδευτικό ενδιαφέρον να διδάσκεται η στοίβα/ουρά (και) ως δυναμική δομή. η χρήση της ουράς κ της στοίβας γίνεται για την εξοικίωση με την έννοια των πινάκων κ τις έννοιες FIFO, LIFO κ όχι για αυτές καθεαυτές τις δομές. δεν πρόκειται να γίνουν προγραμματιστές τα περισσότερα από αυτά τα παιδιά, οπότε το να γνωρίζουν οτι η ουρά μπορεί να υλοποιηθεί κ με στατικό κ δυναμικό τρόπο, ξεφεύγει από τα όρια του μαθήματος πιστεύω.
what better place than here, what better time than now!