ψευδογλώσσα και πίνακες

Ξεκίνησε από gthal, 30 Μαΐου 2010, 02:23:04 ΜΜ

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

alkisg

Παράθεση από: sstergou στις 03 Ιουν 2010, 12:56:01 ΜΜ
Θα ήθελα μόνο και από τον Άλκη μια απάντηση στα μηνύματα όπου περιγράφω την δομή.
...
1) Κατάργηση των άνω ορίων (τα οποία είναι δούρειος ίππος)
...
Εγώ θα επιμείνω ότι πρέπει να κάνουμε ένα βήμα πίσω και να κοιτάξουμε το θέμα από παραέξω.

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

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

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

Με βάση αυτά, οκ, να πω τη γνώμη μου για τα παρακάτω:

Παράθεση από: sstergou στις 03 Ιουν 2010, 11:26:31 ΠΜ
Οι πίνακες που προτείνω είναι στατικοί.
Δεν επιτρέπεται η προσθήκη - διαγραφή κόμβων οπότε ούτε και η αλλαγή του μεγέθους τους κατά την εκτέλεση. Δεν υπάρχει θέμα resize. Αυτό απαγορεύεται.
Η προσπέλασή τους έχει πολυπλοκότητα Ο(1) όπως και στους υπάρχοντες.
Η μόνη διαφορά τους είναι ότι το μέγεθός τους ορίζεται ΜΙΑ φορά κατά είτε κατά την εκτέλεση είτε κατά την μεταγλώττιση και από κει και πέρα δεν αλλάζει.
Για το resize, να πω καταρχάς ότι στο επίπεδο που διδάσκουμε είναι λάθος να λύσουμε άσκηση με resize πίνακα. Το resize θα είχε νόημα αν θέλαμε κάτι πιο δύσκολο, για παράδειγμα να υλοποιήσουμε αραιούς πίνακες, όπου ξεκινάμε με τη δήλωση ενός πίνακα στο περίπου (αφού ο μοναδικός μας  στόχος είναι να γλυτώσουμε RAM), και στη συνέχεια τον μεγαλώνουμε κλιμακωτά ανάλογα με το πόσο πυκνά είναι τα στοιχεία που θα λάβουμε, αλλά μετράμε στην πολυπλοκότητα του αλγορίθμου μας και το κόστος κάθε resize. Προφανώς λοιπόν resize δεν θα πρέπει να διδάξουμε στο Λύκειο, η ερώτηση είναι πιο θεωρητική για τις «δυνατότητες» της ψευδογλώσσας γενικά.

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

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

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

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

Παράθεση από: sstergou στις 03 Ιουν 2010, 12:21:37 ΜΜ
1) Κατάργηση των άνω ορίων (τα οποία είναι δούρειος ίππος)
2) Οι ασκήσεις με άγνωστο πλήθος στοιχείων δεν λύνονται με πίνακες (δεν υπάρχουν άνω όρια)

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

Στην ψευδογλώσσα, θεωρώ ότι το «Διάβασε Α[ι] μέχρι ο χρήστης να δώσει 0» δεν λύνεται με πίνακες (εκτός φυσικά αν κάποιος δεχτεί να εφαρμόσει πολυπλοκότητα Ο(n2) σε πρόβλημα Ο(n), ενώ από την άλλη, θεωρώ ότι το «Διάβασε n; Δήλωσε έναν πίνακα Α[n]» είναι αποδεκτό (στη ΓΛΩΣΣΑ όμως δεν είναι).


Χμμμ σόρρυ, βγήκε τεράστιο τελικά. :)

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

Παράθεση από: merlin στις 03 Ιουν 2010, 02:20:54 ΜΜ
Ωραία, τώρα μένει να τοποθετηθούν και οι Παναγιώτης (Τσιωτάκης), Κώστας (Ντζιός), janag, Βασίλης Σούλας, και όσοι άλλοι "πιστοί" του Στεκιού θέλουν.
Όχι τίποτα άλλο, να μαζευτούμε κάμποσοι σε κάθε ομάδα να οργανώσουμε κανένα 5χ5 πρωτάθλημα! ;D  ;D  ;D

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

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

Όσο για το 5χ5, εεε .... χμμμ.... θα προτιμούσα τις μπύρες και τα ούζα...!  :)

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

Παράθεση από: alkisg στις 03 Ιουν 2010, 02:29:47 ΜΜ
@Νίκος: σόρρυ, δεν κατάλαβα ότι έλεγες για τη ΓΛΩΣΣΑ. Όχι, απ' όσο έχω καταλάβει στη ΓΛΩΣΣΑ δεν επιτρέπεται ο ορισμός του μεγέθους ενός πίνακα κατά την εκτέλεση.

Μου το χαλάς τώρα... Εννοώ τοπικό πίνακα στο υποπρόγραμμα...  :D  Anyway! Πάντως δεν βλέπω το λόγο για να μη γίνεται...

alkisg

Δεν υπάρχει λόγος στη ΓΛΩΣΣΑ, ό,τι αποφασίσουν οι συγγραφείς γίνεται. :)
Π.χ. η Pascal δεν το επιτρέπει, η Fortran το επιτρέπει. Στις ίδιες αρχιτεκτονικές. Καθαρά θέμα υλοποίησης...

mixman66

Παράθεση από: gthal στις 03 Ιουν 2010, 02:13:09 ΜΜ... πρέπει να γράψουμε δύο διαφορετικά υποπρογράμματα.
Νομίζω πως θα πρέπει απλά να ακολουθήσουμε τα εξής βήματα...

  • Copy...
  • Paste
  • Edit!!!
;D ;D ;D

Είναι κάτι που έχει γίνει -στοιχιματίζω- αρκετές φορές από όλους μας. Για το λόγο αυτό είχα πει πως...
Παράθεση από: mixman66 στις 03 Ιουν 2010, 10:08:23 ΠΜ
...θα θέλει λίγη παραπάνω προσοχή στη δήλωσή του.
Too old to grow up...

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

Παράθεση από: gpapargi στις 03 Ιουν 2010, 02:22:38 ΜΜ
Νικο σόρρυ δεν τα έχω δει όλα τα μηνύματα γιατί είναι πολλά. Πες μου ποιο είναι το ερώτημα (δώσε link) να σου πω τη γνώμη μου

Αν και έχει γίνει αλυσίδα μηνυμάτων... Ίσως στα:

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

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

Μου φαίνεται ότι πρέπει να κάνουμε διακοπές...  :angel:

pgrontas

#171
Προχώρησε πολύ το θέμα από χθες το βράδυ.  Κάποια πράγματα που ήθελα να πω ειπώθηκαν, ενώ η συζήτηση απομακρύνθηκε από κάποια άλλα.Παρόλα αυτά θα γράψω κάποια από αυτά, μιας και έφαγα 2 επιτηρήσεις να τα σκέφτομαι  ;D Φυσικά όλα αυτά δεν αφορούν το θέμα Γ, αλλά το πώς βλέπουμε κάποιες έννοιες του μαθήματος.

Παράθεση από: tom στις 02 Ιουν 2010, 11:48:28 ΜΜ
Έτερον εκάτερον. Αυτό που λες όλοι το θέλουν. Η καλύτερη λύση είναι η απλούστερη. Παρ΄όλα αυτά το διόρθωσα και σε άλλαξα κατηγορία!
tom, δεν νομίζω ότι είναι τόσο ξεκάθαρο. Αλλιώς δεν θα δίναμε τόσο βάρος στους στατικούς ή δυναμικούς πίνακες (στους αλγόριθμους) αλλά στον τρόπο που αυτοί χρησιμοποιούνται. Απλά αν θες τη γνώμη μου, το αν ξέρεις ή όχι το πλήθος και το πότε το μαθαίνεις θεωρείτο (μέχρι φέτος) πιο ασφαλές κριτήριο από την χρήση που κάνεις στον πίνακα (που όπως έγραψα είναι το πιο σημαντικό για μένα). Επίσης το πλήθος σου δίνει την δυνατότητα να πεις - λάθος δεν γίνεται με πίνακα, ενώ η χρήση στα δεδομένα θεωρείται (κακώς) θέμα απόδοσης. Και το γιατί κακώς θεωρείται το εξηγεί πολύ ωραία ο merlin στο πρόβλημα που έθεσε στους γονείς του.

Επίσης για τα δεδομένα (σε αυτό ήθελα να επανέρθω σήμερα):
Παράθεση από: sstergou στις 02 Ιουν 2010, 10:02:58 ΜΜ
Επίσης Παναγιώτη, δεν υπονόησα ότι υπάρχει υπολογιστής, απλά ότι υπάρχει εκτέλεση. Στους αλγορίθμους έχουμε εκτέλεση, αν δεν έχουμε τότε δεν έχουμε αλγόριθμο. Αν για κάθε αλγόριθμο έχεις έναν άνθρωπο εκτελεστή τότε από την στιγμή που ένας αλγόριθμος καλεί έναν άλλον τότε αναγκαστικά θα έχεις και μεταβίβαση στοιχείων. Αναγκαστικά λοιπόν ο εκτελεστής μαθαίνει το μέγεθος του πίνακα όταν ο καλών του το αναφέρει. Δεν με ενδιαφέρει ο μηχανισμός απλά το ότι ο εκτελεστής μαθαίνει την στιγμή της εκτέλεσης το Ν, το οποίο είναι διαφορετικό για κάθε φορά που εκτελείται ο αλγόριθμος. Το Ν δηλαδή δεν είναι μια σταθερά η οποία μπορεί να αντικατασταθεί από έναν αριθμό και παίζει τον ρόλο ας πούμε των μαθηματικών σταθερών (πχ. π, e κτλ) αλλά κάτι το οποίο αλλάζει τιμή από εκτέλεση σε εκτέλεση. Αυτό στηρίζεται από τους αναδρομικούς αλγόριθμους του βιβλίου.
Στάθη η προσωπική μου γνώμη είναι ότι δεν είναι αναγκαίο να υπάρχει εκτέλεση. Ένας αλγόριθμος έχει αξία ως εκφραστικό μέσο, μόνο και μόνο επειδή καταγραφει τα βήματα που λύνουν ένα πρόβλημα. Τώρα το ότι μπορούμε να τα ακολουθήσουμε και να το λύσουμε είναι διπλό καλό!
Γι αυτό λοιπόν τα δεδομένα του υποαλγορίθμου είναι απλά το τι πρέπει να ξέρω για να λύσω το υποπρόβλημα. Προφανώς και από αυτά, κάποια στιγμή μπορεί να φτιαχτεί λίστα παραμέτρων.

Παράθεση από: alkisg στις 03 Ιουν 2010, 02:29:47 ΜΜ
Εγώ θα επιμείνω ότι πρέπει να κάνουμε ένα βήμα πίσω και να κοιτάξουμε το θέμα από παραέξω.

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

Νομίζω ότι η "ψευδογλώσσα των πανελληνίων" δεν ήταν στους στόχους των συγγραφέων. Επιπλέον νομίζω ότι η "ψευδογλώσσα των πανελληνίων" δεν έχει καν λόγο ύπαρξης, εφόσον μπει σε καλούπια τότε αυτόματα γίνεται μια γλώσσα προγραμματισμού και όχι ψευδογλώσσα, και έτσι απλά προκαλεί διπλό κόπο στη διδασκαλία χωρίς κανένα όφελος.
Συμφωνώ 100% με αυτό με την εξής μικρή υποσημείωση. Θεωρώ ότι οι μαθητές δεν είναι τόσο έτοιμοι να δεχτούν την πιο ελεύθερη ακαδημαϊκή ψευδογλώσσα. Η ελευθερία που αυτή θα τους μπερδέψει γιατί αντίθετα με τους ακαδημαϊκους δεν έχουν αναπαραστάσεις για το πώς ο υπολογιστής ή κάποιος άνθρωπος εκτελεί εντολές. Για παράδειγμα, πολλές φορές έχω δεί σε γραπτά μαθητών εκχωρήσεις του στυλ
χ<-το μικρότερο στοιχείο του πίνακα.
Αυτό σε ακαδημαϊκό επίπεδο είναι εντελώς αποδεκτό. Αντίθετα στο μάθημα μας αυτό θέλουμε να μάθουμε τα παιδιά να κάνουν. 

Μήπως τελικά η ταυτόχρονη και ταυτόσημη χρήση ΨΕΥΔΟΓΛΩΣΣΑΣ και ΓΛΩΣΣΑΣ ήταν ένα πείραμα που απέτυχε και δυσκόλεψε χωρίς λόγο τη διδασκαλία;
Οπότε tom αν θες να με εντάξεις σε κάποια κατηγορία βάλε με σε αυτούς που υποστηρίζουν τη  ΓΛΩΣΣΑ ή μια πραγματική γλώσσα προγραμματισμού (άσχετο ε;). Από την άλλη δεν μου αρέσουν οι κατηγοριοποιήσεις.

Παράθεση από: evry στις 03 Ιουν 2010, 12:07:08 ΠΜ
Μου έκανε μεγάλη εντύπωση που κάποιοι παρουσίαζαν αυτό το παράδειγμα με τα CD σαν ένα πολύ ισχυρό επιχείρημα ενώ στην πραγματικότητα αφού έχεις τη συλλογή των CD στα χέρια σου είναι φανερό ότι ξέρεις και το πλήθος τους, είναι δηλαδή προκαθορισμένο
Η άσκηση αυτή εκτός των άλλων λύνεται απαράδεκτα στο βιβλίο καθηγητή, βάζοντας στο ίδιο πίνακα άσχετες μεταξύ τους έννοιες (τίτλος,χρονολογία) οι οποίες μάλιστα έχουν διαφορετικό τύπο δεδομένων!
Παράθεση από: gpapargi στις 03 Ιουν 2010, 01:05:50 ΜΜ
Ναι αλλά θα πρέπει να αλλάξει το διδακτικό πακέτο. Για μένα το ζητούμενο είναι το πώς πρέπει να έχουμε τα πράγματα στο νου μας χωρίς αλλαγή του πακέτου. Δηλαδή να τα καταλαβαίνουμε με ένα τρόπο ώστε το πακέτο να μην έχει ασυνέπειες και να μη χρειάζεται να αλλάξει. Αν έχουμε ένα συνεπή τρόπο να τα δούμε όλα για ποιο λόγο να αλλάξουμε τόσα πολλά;
Γιώργιο κάποια στιγμή πρέπει να αλλάξει το διδακτικό πακέτο. Για παράδειγμα πρέπει να φύγει η άσκηση με τα CD   ;D ;D ;D


ΥΓ: Καλές βουτιές!!!
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

ntzios kostas

Αν φανταστούμε ότι υπήρχε ακόμα ένα ερώτημα Γ6 όπου θα έλεγε ο παραπάνω αλγόριθμος να τροποποιηθεί ώστε να εφαρμοστεί  50 φορές και όχι μία (κάτι που ανέφερε και ο Ευριπίδης), μπορεί ή όλη φασαρία να μην είχε γίνει. Έτσι όπως θα παρουσιάσουν οι μαθητές την άσκηση διαβάζοντας κάθε φορά το μέγεθος του πίνακα σίγουρα θα το θεωρούσαμε λάθος.
Όμως και πάλι αν ένας μαθητής πεί θεωρώ έναν πίνακα όσο ο διπλάσιος πληθυσμός της γης δεν θα μπορούμε να του πούμε τίποτα με βάση ότι δεν εξετάζουμε την βέλτιστη λύση. Δηλαδή δεν είναι παράλογο κάποιος να λάβει κάποια δεδομένα (ότι δηλαδή πρόκειται για ανθρώπους) που του παρέχει η εκφώνηση για να βρει τη λύση. (Πολλοί μαθητές άλλωστε αυτό κάνουν για την εύρεση του μέγιστου και ελάχιστου στοιχείου στην αρχικοποίηση των μεταβλητών.)  Αυτό βέβαια ισχύει και για τις ασκήσεις με την τιμή φρουρό. Για παράδειγμα να διαβάζει το βαθμό και το όνομα μαθητών μέχρι να δοθεί ως όνομα το κενό. Κάποιος μπορεί να πει χαρακτήρες:Ον[1000000000]. Τι μπορούμε να του πούμε με βάση το σχολικό βιβλίο και γενικότερα τους κανόνες που ισχύουν στο μάθημά μας. Εννοείται ότι η λύση είναι αποκρουστική, αλλά που μπορούμε να βασιστούμε ότι δεν μπορεί να το κάνει; Προτείνω, λοιπόν, από εδώ και πέρα σε κάθε άσκηση που δεν θέλουμε να εξετάσουμε πίνακα από την στιγμή βεβαία που έχουμε διδάξει τους πίνακες να βάζουμε μία σημείωση της μορφής: Θεωρείστε ότι δεν υπάρχει άνω όριο τιμών εισόδου. Όπως οι φυσικοί λένε, θεωρήστε ότι δεν υπάρχουν τριβές. 
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

jkapsi

Παράθεση από: ntzios kostas στις 03 Ιουν 2010, 06:13:08 ΜΜ
Αν φανταστούμε ότι υπήρχε ακόμα ένα ερώτημα Γ6 όπου θα έλεγε ο παραπάνω αλγόριθμος να τροποποιηθεί ώστε να εφαρμοστεί  50 φορές και όχι μία (κάτι που ανέφερε και ο Ευριπίδης), μπορεί ή όλη φασαρία να μην είχε γίνει. Έτσι όπως θα παρουσιάσουν οι μαθητές την άσκηση διαβάζοντας κάθε φορά το μέγεθος του πίνακα σίγουρα θα το θεωρούσαμε λάθος.
Όμως και πάλι αν ένας μαθητής πεί θεωρώ έναν πίνακα όσο ο διπλάσιος πληθυσμός της γης δεν θα μπορούμε να του πούμε τίποτα με βάση ότι δεν εξετάζουμε την βέλτιστη λύση. Δηλαδή δεν είναι παράλογο κάποιος να λάβει κάποια δεδομένα (ότι δηλαδή πρόκειται για ανθρώπους) που του παρέχει η εκφώνηση για να βρει τη λύση. (Πολλοί μαθητές άλλωστε αυτό κάνουν για την εύρεση του μέγιστου και ελάχιστου στοιχείου στην αρχικοποίηση των μεταβλητών.)  Αυτό βέβαια ισχύει και για τις ασκήσεις με την τιμή φρουρό. Για παράδειγμα να διαβάζει το βαθμό και το όνομα μαθητών μέχρι να δοθεί ως όνομα το κενό. Κάποιος μπορεί να πει χαρακτήρες:Ον[1000000000]. Τι μπορούμε να του πούμε με βάση το σχολικό βιβλίο και γενικότερα τους κανόνες που ισχύουν στο μάθημά μας. Εννοείται ότι η λύση είναι αποκρουστική, αλλά που μπορούμε να βασιστούμε ότι δεν μπορεί να το κάνει; Προτείνω, λοιπόν, από εδώ και πέρα σε κάθε άσκηση που δεν θέλουμε να εξετάσουμε πίνακα από την στιγμή βεβαία που έχουμε διδάξει τους πίνακες να βάζουμε μία σημείωση της μορφής: Θεωρείστε ότι δεν υπάρχει άνω όριο τιμών εισόδου. Όπως οι φυσικοί λένε, θεωρήστε ότι δεν υπάρχουν τριβές.

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

GEG

Παράθεση από: pgrontas στις 03 Ιουν 2010, 04:06:21 ΜΜ
Επίσης για τα δεδομένα (σε αυτό ήθελα να επανέρθω σήμερα):

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

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

Να μου επιτρέψετε να παρέμβω σε αυτό το σημείο και να αναφέρω ότι θεωρώ οτι με την Δεδομένα // Ν // η τιμή του Ν  θεωρείται γνωστή, δεδομένη από την αρχή είτε κατά το χρόνο εκτέλεσης του αλγορίθμου (π.χ. θεωρώντας την ώς παράμετρο) είτε κατά τη φάση ανάπτυξης του αλγορίθμου (π.χ. σαν να της γίνεται εκχώρηση κάποιας τιμής).
Σε περίπτωση που το Ν παριστάνει το μέγεθος ενός μονοδιάστατου πίνακα ΠΙΝ η παραπάνω θεώρηση της μεταβίβασης τιμής κατά την εκτέλεση δεν παραβιάζει κατ'ανάγκη την στατικότητα του πίνακα (με την ένοια της ψευδοΓΛΩΣΣΑΣτου βιβλίου) αν πάντα έχουμε υπόψην μας το ανώτατο εκείνο όριο του πίνακα.
Σκεφτείται στην ΓΛΩΣΣΑ να θέλαμε να περάσουμε σε μια συνάρτηση ως παράμετρο ένα πίνακα ΠΙΝ[100] και το πλήθος Ν (Ν<=100) των στοιχείων του:

ΚΥΡΙΟ ΠΡΟΓΡΑΜΜΑ                             ΣΥΝΑΡΤΗΣΗ ΜΕΣΟΣ(ΠΙΝ,Ν):ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ                                       ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[100], Πλ                         ΑΚΕΡΑΙΕΣ:ΠΙΝ[100],Ν,Σ
ΑΡΧΗ                                                   ΑΡΧΗ 
.....                                                      Σ<-0
ΜΟ<-ΜΕΣΟΣ(Α,Πλ)                              ..........
.......                                                    ΜΕΣΟΣ<-Σ/Ν
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ                     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

όπου η Συνάρτηση εδώ παίζει το ρόλο του αλγορίθμου με την εντολή Δεδομένα // ΠΙΝ , Ν //
Εδώ νομίζω φαίνεται καλύτερα και η παράλειψη όσων το έλυσαν με πίνακα.
Πιθανό τρόπο εντιμετώπισης έχω αναφέρει σε προηγούμενο post.
https://alkisg.mysch.gr/steki/index.php?topic=2943.msg29226#msg29226

Τέλος jkapsi νομίζω ότι στο Διδακτικό πακέτο αφήνεται να ενοηθεί se 2-3 σημεία που μου έρχονται τώρα πρόχειρα στο μυαλό (τόσο στην ψευδογλώσσα όσο και στην ΓΛΩΣΣΑ) ότι έχουμε να κάνουμε με Η/Υ με πεπερασμένη μνήμη όπου πρέπει να λαμβάνουμε υπόψην το πάντα το μέγεθος της στην σχεδίαση ενός αλγορίθμου ή στην ανάπτυξη ενός ΠΡΟΓΡΑΜΜΑΤΟΣ σε ΓΛΩΣΣΑ.

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


Hey! It compiles! Ship it! :-)

merlin

Για μένα ήταν ξεκάθαρο το θέμα και το έχω γράψει πολλές φορές. Το εξηγεί πολύ ωραία και ο Κώστας (το οποίο είχε αναφέρει και ο Ευριπίδης):
Αν θέλαμε να φτιάξουμε τον αλγόριθμο για τα 100 σχολεία της Αττικής (με διαφορετικό ρεκόρ αγώνων για κάθε σχολείο κλπ), ΔΕΝ θα χρησιμοποιούσε κανένας πίνακες.
Φυσικά είναι το ίδιο πράγμα, τι ένα τι 100, απλά δείχνει ότι οι μαθητές "έμπλεξαν" τον ρόλο της Δεδομένα // πλήθος // και τη διαφορά με το διάβασε πλήθος.
Επειδή όμως πιστεύω ότι το παραπάνω μπλέκει και τους περισσότερους συναδέλφους, θεωρώ ότι οι μαθητές "παραπλανήθηκαν" κατά λάθος, δηλαδή δεν έφταιγαν.
Αν βαθμολογούσα ΔΙΚΟ μου διαγώνισμα σε ΔΙΚΟΥΣ μου μαθητές, ΘΑ ΕΚΟΒΑ (πάνω από 2 μόρια στα 20). Τώρα όμως, αν με ΥΠΟΧΡΕΩΝΑΝ να βαθμολογήσω (και μόνο για ΦΕΤΟΣ), θα έκοβα το πολύ 1 (γνωρίζωντας ότι θα αδικούσα τους "λιγους" που το έλυσαν χωρίς πίνακα και τους "λίγους περισσότερους" που το προσπάθησαν και δεν τους βγήκε).
Παρασκευάς Πανάγου
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής ΠΕ20

Αθανάσιος Πέρδος

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

Σελίδες όπου γίνεται χρήση της ψευδογλώσσας
Κεφάλαιο 3ο

Βιβλίο Μαθητή σελ 55: Ωστόσο, στο σημείο αυτό τονίζεται ότι υπάρχει μεγάλη εξάρτηση μεταξύ της δομής δεδομένων και του αλγορίθμου που επεξεργάζεται τη δομή. Μάλιστα, το πρόγραμμα θα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μια αδιάσπαστη ενότητα.

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

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

Βιβλίο καθηγητή σελ 78: κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή. (θεωρεί την πρόταση λάθος)



Σελίδες όπου γίνεται χρήση της Γλώσσας

Κεφάλαιο 9ο

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

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

Βιβλίο Μαθητή σελ 149
Στην πραγματικότητα τα δεδομένα καταχωρούνται στη μνήμη του υπολογιστή καταλαμβάνοντας συγκεκριμένο αριθμό θέσεων (bytes). Ανάλογα με τον τύπο δεδομένου και το διατιθέμενο αριθμό bytes ποικίλει και το εύρος τιμών που μπορούν να λάβουν. Συνήθεις τύποι δεδομένων στις διάφορες γλώσσες προγραμματισμού είναι ο ακέραιος (integer) σε 1, 2 ή 4 bytes κλπ...

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

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

Όσον αφορά την οδηγία της ΚΕΕ ότι η λύση με πίνακα είναι λάθος ακόμα και με την παραπάνω παραδοχή έχω να σημειώσω τα εξής.
Όλες οι επιδόσεις είναι διαφορετικές
Δεν υπάρχει αθλητής με επίδοση πάνω από 20 μέτρα (εξωπραγματική επίδοση)
Άρα υπεραρκεί ένας πίνακας 2000 θέσεων για να καλύψει το σενάριο.
Βέβαια οι μαθητές δεν μπορούν να δείξουν το μέγεθος του πίνακα σε αλγόριθμο. Μιλάω μόνο για το συγκεκριμένο Θέμα και τη συγκεκριμένη διατύπωση μόνο.

Τώρα ας δούμε κάτι και για τους αφορισμούς του τύπου «του χρόνου όλα με πινάκες θα τα διδάσκουμε». Ένας ακέραιος εφόσον θεωρήσω μόνο θετικές τιμές (δηλαδή δείκτες πίνακα) μπορεί να έχει ως μέγιστη τιμή στο δεκαδικό σύστημα την τιμή 65535. Αν πάμε βέβαια σε ακέραιους τύπου long πάμε σε 4294967295. Κάπου εκεί τελειώνουν και οι θέσεις που μπορεί να δεσμεύσει ένας πίνακας. Ας δοθεί λοιπόν του χρόνου μια διευκρίνιση ότι για το μάθημα μας, ένας ακέραιος αριθμός αναπαριστάται στη μνήμη του υπολογιστή με 2 bytes και ας βρούμε σενάρια τα οποία ο αριθμός 65535 δεν τα καλύπτει.

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

Σχετικά με το επιχείρημα όπου υπάρχει κώδικας σε c, παραθέτω τον αντίστοιχο κώδικα σε C++ (νομίζω είναι πιο κατανοητός) και έχω να δηλώσω το εξής. Ο πίνακας που δημιουργείται με αυτόν τον τρόπο δεν είναι στατικός. Ναι μεν καταλαμβάνει συνεχόμενες θέσεις μνήμης και δεν μπορεί να αλλάξει το μέγεθος του αλλά είναι σαφέστατο ότι το μέγεθος ορίζεται κατά την εκτέλεση και όχι κατά τον προγραμματισμό. Άρα με βάση τον ορισμό της στατικής δομής στη σελίδα 56 βιβλίο μαθητή, είναι δυναμικός.

#include <cstdlib>
#include <iostream>
using namespace std;

int main (void)

{
   
    int *a, N, i;
   
    cout<<"Enter number of elements :";
    cin>>N;
       
    a=new int[N];
       
   
    for (i=0; i<N; i++)
    {
        cout<<"enter the value of the "<<i+1<<" element :";
        cin >>a;
    }
       
    cout<<"the values you entered are"<<endl;
    for (i=0; i<N; i++)
    {
        cout <<a<<endl;
    }   
   
       
    system("PAUSE");         
    return 1;
}

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


merlin

Παράθεση από: aperdos στις 03 Ιουν 2010, 07:51:22 ΜΜ

Όσον αφορά την οδηγία της ΚΕΕ ότι η λύση με πίνακα είναι λάθος ακόμα και με την παραπάνω παραδοχή έχω να σημειώσω τα εξής.
Όλες οι επιδόσεις είναι διαφορετικές
Δεν υπάρχει αθλητής με επίδοση πάνω από 20 μέτρα (εξωπραγματική επίδοση)
Άρα υπεραρκεί ένας πίνακας 2000 θέσεων για να καλύψει το σενάριο.
Βέβαια οι μαθητές δεν μπορούν να δείξουν το μέγεθος του πίνακα σε αλγόριθμο. Μιλάω μόνο για το συγκεκριμένο Θέμα και τη συγκεκριμένη διατύπωση μόνο.

Τώρα ας δούμε κάτι και για τους αφορισμούς του τύπου «του χρόνου όλα με πινάκες θα τα διδάσκουμε». Ένας ακέραιος εφόσον θεωρήσω μόνο θετικές τιμές (δηλαδή δείκτες πίνακα) μπορεί να έχει ως μέγιστη τιμή στο δεκαδικό σύστημα την τιμή 65535. Αν πάμε βέβαια σε ακέραιους τύπου long πάμε σε 4294967295. Κάπου εκεί τελειώνουν και οι θέσεις που μπορεί να δεσμεύσει ένας πίνακας. Ας δοθεί λοιπόν του χρόνου μια διευκρίνιση ότι για το μάθημα μας, ένας ακέραιος αριθμός αναπαριστάται στη μνήμη του υπολογιστή με 2 bytes και ας βρούμε σενάρια τα οποία ο αριθμός 65535 δεν τα καλύπτει.

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

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

Η ΓΛΩΣΣΑ δεν υποστηρίζει "ευκολίες" χειρισμού στατικών πινάκων runtime όπως η C (όπως και άλλες γλώσσες του εμπορίου που έχουν επισημάνει συνάδελφοι).
Το γνωρίζουμε όλοι αυτό, απλά κουβεντιάζουμε για το αν θα ήταν παιδαγωγικά σωστό να ΑΛΛΑΞΕΙ. Εκτός του ότι ο Άλκης θα έπρεπε να αλλάξει το λογισμικό του (πράγμα εύκολο για αυτόν), θα έπρεπε να αλλάξει και το βιβλίο σε μερικά σημεία έτσι ώστε να μην δημιουργήσουμε ΑΝΤΙΦΑΣΕΙΣ (πράγμα δύσκολο).

Επίσης κουβεντιάζουμε για το αν είναι παιδαγωγικά σωστό, οι αλγόριθμοι στην ψευδογλώσσα να ακολουθούν τους κανόνες της ΓΛΩΣΣΑΣ.

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

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

Θέλω να πω, δεν έχω δει λύση άσκησης που να παίρνει πάνω όριο χωρίς να είναι αυτό ΣΑΦΕΣ από την εκφώνηση. Γιατί για μένα (σαν μαθητής) δεν είναι σαφές ότι το παγκόσμιο ρεκόρ το έχει ο Πάουελ, οπότε να θεωρήσω το μέγιστο 11 μέτρα (ή μήπως 12, ή μήπως 20 για να είμαι σίγουρος ότι δεν πήρε ληγμένα κανένας?). Αυτή τη διαδικασία την έχουμε κάνει όλοι στις σχολές μας και στις δουλειές μας αργότερα, δεν νομίζω όμως ότι είναι διδακτικός στόχος (και αν γίνει, θα χαλάσει ένας άλλος).

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

Ο μαθητής θέλω ΠΡΩΤΑ να μάθει να χρησιμοποιεί χειροπρίονο και ΜΕΤΑ να του πω ότι υπάρχει και πριονοκορδέλα.
Όποιοι πάνε σε σχολή Πληροφορικής, δεν θα πουν "καλά τι μπαρούφες τεχνικές άρπα κόλλα και τυφλοσούρτες μας μάθαιναν στο Λύκειο" αλλά θα πουν "κοίτα τι μπορεί να κάνει αυτή η γλώσσα!"

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

Αθανάσιος Πέρδος

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


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

gpapargi

Παράθεση από: Νίκος Αδαμόπουλος στις 03 Ιουν 2010, 02:43:35 ΜΜ
Αν και έχει γίνει αλυσίδα μηνυμάτων... Ίσως στα:

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

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

Μου φαίνεται ότι πρέπει να κάνουμε διακοπές...  :angel:

Νίκο όχι δεν γίνεται αυτό που λες. Οι πίνακες στο κυρίως πρόγραμμα και στο υποπρόγραμμα πρέπει να είναι ίδιου μεγέθους και ίδιου τύπου. Κατά την κλήση περνάνε ένα προς ένα όλα τα στοιχεία του πίνακα . Στις διαδικασίες κατά την επιστροφή γίνεται αντιγραφή πίσω (copy in - copy out).
Για να μπορέσεις με το ίδιο υποπρόγραμμα να κάνεις επεξεργασία σε πίνακες διαφορετικών μεγεθών θα πρέπει να κάνεις το τρυκ του παραδείγματος 1 στο κεφάλαιο 10 του τετραδίου μαθητή. Τους δηλώνεις όλους ίδιους σε μέγεθος αλλά χρησιμοποιείς ένα μέρος των στοιχείων (διαφορετικό) και περνάς στο υποπρόγραμμα το πλήθος των χρησιμοποιούμενων στοιχείων για να ξέρει το υποπρόγραμμα που να σταματήσει την επεξεργασία.