Θα δώσω ένα απλό παράδειγμα γιατί μάλλον εξακολουθώ να μην γίνομαι κατανοητός
Στην Python μπορείς να γράψεις
pl=0
S=0
ή
pl=S=0
Έχω δει πολλά τέτοια στις πανελλήνιες σε ΓΛΩΣΣΑ. Έπρεπε να τα κόψω κατά τη γνώμη σου? Πολλοί μαθητές όταν έχουν πολλούς μετρητές τους μηδενίζουν έτσι. Θα πρέπει να κόψουμε?
Άσε που αυτό είναι βασικό χαρακτηριστικό της Python και ανήκει στο υποσύνολο των εντολών που θα διδαχθεί. Για παράδειγμα στο ΕΠΑΛ αυτός ο τρόπος είναι στην ύλη.
Αν πιστεύεις όμως ότι πρέπει να πηγαίνουμε με βάση το βιβλίο ρωτάω:
Αν ένας μαθητής εκχωρήσει ακέραια μεταβλητή σε πραγματική δεν πρέπει να κόψουμε με βάση το βιβλίο? Γιατί δεν κόβουμε σε αυτή την περίπτωση?Ας θεωρήσουμε ότι το σχολικό εγχειρίδιο δεν αναφέρει τον δεύτερο τρόπο για οποιονδήποτε λόγο
Έχουμε έναν μαθητή ο οποίος προγραμματίζει σε Python από 14 ετών και έχει χρησιμοποιήσει τον δεύτερο τρόπο εκατοντάδες φορές για δική του χρήση
Γνωρίζει ότι είναι συντακτικα σωστός, το έχει δει
Αυτό το παιδί δίνει πανελλαδικές και σε κάποιο πρόγραμμα του, χρησιμοποιεί τον τρόπο αυτό
Τι θα πούμε σε αυτό το παιδί; Ότι δεν είναι αποδεκτό γιατί δεν αναφέρεται στο σχολικό εγχειρίδιο;
Θα το πούμε να το αποδείξει;;; Τι να αποδείξει;
Πέτρο αντιστρέφω το επιχείρημα. Ένας παλιός απόφοιτος που είχε διδαχθεί την Επίλεξε δίνει εξετάσεις μια χρονιά που η Επίλεξε είναι εκτός ύλης. Τι θα πούμε σε αυτόν τον απόφοιτο? ότι δεν είναι αποδεκτό? Άσε που αναφέρεται και στο σχολικό εγχειρίδιο.
Ένας άλλος μαθητής είναι σε ένα απομακρυσμένο χωριό, ακούει για δυαδική αναζήτηση και βρίσκει στο βιβλίο την αναδρομική έκδοσή της και τη χρησιμοποιεί στις πανελλήνιες. Τι θα πούμε σε αυτό το παιδί? ότι είναι εκτός ύλης?
Τέτοια παραδείγματα θα βρούμε άπειρα σε οποιαδήποτε γλώσσα και να δουλέψουμε,
πόσο μάλλον σε μια γλώσσα η οποία δεν είναι πουθενά ορισμένη και προσπαθούμε να ανακαλύψουμε τι είναι εντός και τι εκτός ύλης, σε πέντε διαφορετικά εγχειρίδια(!!!), όπως οι τελείες ... ranges στην Επίλεξε. Ας μην αναφέρουμε τέτοια παραδείγματα γιατί σε αυτά η ΓΛΩΣΣΑ είναι χειρότερη από οποιαδήποτε γλώσσα προγραμματισμού που έχει καλά ορισμένη σύνταξη .Η πραγματική γλώσσα προγραμματισμού είναι αχανέστατη, με δυνατότητες που σπάνια τις γνωρίζει κάποιος όλες
Τέτοια περιστατικά θα είναι συνήθη
Τόσα χρόνια που διδασκόταν η Pascal πάντως στο ΕΠΑΛ δεν έχω ακούσει τέτοια περιστατικά, ούτε τώρα που διδάσκεται η Python. Ούτε στα πανεπιστήμια έχω ποτέ ακούσει να υπάρχουν τέτοια προβλήματα ούτε έχω δει διεθνώς πάλι να υπάρχουν τέτοια προβλήματα. Για αυτό μου κάνει εντύπωση.
Και λέω ξανά και η Ανάλυση στα μαθηματικά είναι αχανής αλλά οι μαθητές δεν μπορούν να χρησιμοποιούν ότι θέλουν επειδή τους βολεύει, όπως ισχύει και στα άλλα μαθήματα.
Τώρα όσον αφορά
τη λύση σε αυτό το (απίθανο να συμβεί κατά τη γνώμη μου) πρόβλημα έχω πει ποια είναι και
υπάρχει σχετικό εδάφιο στο βιβλίο καθηγητή του ΕΠΑΛ το οποίο έχω γράψει ο ίδιος επειδή επέμενα πολύ σε αυτό. Το εδάφιο αυτό λέει ποιες συναρτήσεις και εντολές είναι επιτρεπτές. Αν δοθεί αυτό ως μια σελίδα όπου αναφέρεται τι μπορείς να χρησιμοποιήσεις γιατί κάποιος μαθητής να χρησιμοποιήσει κάτι άλλο? μόνο αν πάει εκ του πονηρού για να ξεφύγει από κάποιο δύσκολο ερώτημα.
Η ίδια πρακτική συμβαίνει στο IB όπου τους δίνεται ένα παράρτημα στο οποίο φαίνεται τι μπορούν να χρησιμοποιήσουν.
Είναι γνωστό ως Java Examination Tool Subset:
https://ib.compscihub.net/wp-content/uploads/2015/04/JETS-Java-rules.pdfΑυτό το κάνουν και στα μαθηματικά όπου τους δίνουν τυπολόγιο με ότι θεωρείται γνωστό. Αν κάνουμε και εμείς αυτό που είναι το πρόβλημα? Γιατί να δημιουργούμε προβλήματα που άλλες χώρες τα έχουν λύσει εδώ και χρόνια?
Μια απλή γλώσσα για τις ανάγκες του μαθήματος οριοθετείται σε ένα σχολικό εγχειρίδιο
οκ συμφωνώ.
Πες μου που οριοθετείται η ΓΛΩΣΣΑ σε αυτό το εγχειρίδιο, ή μάλλον σε ποιο από τα τέσσερα εγχειρίδια (5 με το τετράδιο μαθητή) οριοθετείται. Να μην σχολιάσω το γεγονός ότι σε κάποιες περιπτώσεις το ένα εγχειρίδιο αναιρεί το άλλο. Θα συνέβαινε αυτό με μια πραγματική γλώσσα?Μια πραγματική γλώσσα οριοθετείται από τους δημιουργούς της
Ακριβώς και εκεί υπάρχουν όρια καταγεγραμμένα, υπάρχει η γραμματική της που είναι συγκεκριμένη έτσι ώστε να μην τσακώνονται οι καθηγητές για τη σύνταξη της Επίλεξε, ή για τα κεφαλαία γράμματα.
Η εκφώνηση θα λέει "Να γραφεί πρόγραμμα σε γλώσσα Python..." φαντάζομαι και όχι "Να γραφεί πρόγραμμα σε γλώσσα Python μόνο με τις δυνατότητες του σχολικού βιβλίου..."
Το ίδιο λέει η εκφώνηση στην Φυσική τη Χημεία και όλα τα μαθήματα. Λέει εκεί μόνο με τις δυνατότητες του βιβλίου? Δεν Εννοείται?
Επίσης υποθέτω η εκφώνηση φέτος δεν θα λέει :
“Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ με τη νέα ύλη της έκδοσης 2019”
Η ΓΛΩΣΣΑ αποτέλεσε εμπόδιο ή χαμένο χρόνο για κάποιον φοιτητή που πέρασε σχολή Πληροφορικής;
Ναι είναι και εμπόδιο και χαμένος χρόνος. Γιατί να χάσεις χρόνο στη ΓΛΩΣΣΑ ενώ μπορείς να πας κατευθείαν σε μια πραγματική γλώσσα? Τι κερδίζεις δεν έχω καταλάβει. Αφού γλώσσα προγραμματισμού είναι και αυτή.
Ελπίζω να μην ειπωθεί το επιχείρημα ότι αν προγραμματίζουμε στα ελληνικά κάνουμε αλγοριθμική, το θεωρώ αστείο.
Όλοι εμείς που δεν διδαχτήκαμε Python αλλά ΓΛΩΣΣΑ ή ψευδογλώσσα σε αλγορίθμους, χρειαστήκαμε πάνω από 2-3 μέρες να μάθουμε τα κόλπα της Python;
Εγώ που πριν πάω στην Python είχα γράψει πολλές γραμμές κώδικα σε Java και C++ δυσκολεύτηκα πάντως και μου πήρε παραπάνω από 2 εβδομάδες για να καταλάβω το σκεπτικό και τον τρόπο λειτουργίας κάποιων εντολών και δομών.
Διδάχτηκες Αλγοριθμική; Προγραμματίζεις σε κάθε γλώσσα που υπάρχει στον κόσμο
Υπονοείς ότι αυτό το οποίο γίνεται στο Λύκειο είναι αλγοριθμική? Ελπίζω να μην το εννοείς στα σοβαρά. Με τόσα τυποποιημένα θέματα και μαθητές να μαθαίνουν απέξω συγκεκριμένου τύπου ασκήσεις και με ένα 4ο θέμα που είναι σχεδόν κάθε χρόνο το ίδιο (παγκόσμια πρωτοτυπία) μιλάμε για αλγοριθμική?
Για προγραμματισμό μιλάμε και μάλιστα στο χείριστο είδος του. Τον προγραμματισμό που θέλει μηδενική σκέψη. Πείτε μου.
Τα παιδιά κάνουν ανάλυση και επίλυση προβλήματος? Σχεδιάζουν αλγορίθμους? ή χρησιμοποιούν απλά τυποποιημένες συνταγές που κουμπώνουν στις εκφωνήσεις κάθε χρόνο?
Δεν κατάλαβα την ερώτηση "ποια γλώσσα ξέρει"
Ξέρει το βασικό-μέτριο επίπεδο προγραμματισμού κάθε γλώσσας, αρκεί να ασχοληθεί μερικές μέρες
Αλγοριθμική δεν μπορεί να μάθει σε μερικές μέρες
Διαφωνώ. Αν ήταν έτσι θα ξέραμε άνετα όλες τις γλώσσες.
1 γλώσσα σε 4 μέρες (3+1 γιατί είμαι slow learner)
Οι 10 σε 40 μέρες.
Άρα σε ένα μήνα και κάτι είμαι έτοιμος. Ας μην είμαστε τόσο ισοπεδωτικοί.
Η λογική ότι αν κάποιος ξέρει ΓΛΩΣΣΑ μαθαίνει γρήγορα C ή Python είναι απλά λάθος!
Για δείτε λίγο τα στατιστικά αποτυχίας στο πρώτο εξάμηνο των μαθημάτων προγραμματισμού στις σχολές πληροφορικής. Οι νέοι φοιτητές δυσκολεύονται πάρα πολύ. Ρωτήστε πανεπιστημιακούς να σας πουν τι γίνεται.
Θυμάμαι σε ένα συνέδριο ήταν κάποιοι πανεπιστημιακοί από το (τότε) ΤΕΙ Αθηνάς και όταν τους τέθηκε το θέμα είπαν ότι μετά από κάποια μαθήματα δεν παρατηρούν διαφορά ανάμεσα στους φοιτητές που προέρχονταν από την τότε τεχνολογική σε σχέση με αυτούς που προέρχονταν από την Θετική.
Το ίδιο είχα διαπιστώσει και εγώ όταν είχα διδάξει στην ΑΣΣΟΕ Java και C++ και στο ΠΑΔΑ Python. Οι μαθητές της Θετικής δεν είχαν κανένα πρόβλημα και της τεχνολογικής κανένα προβάδισμα. Φυσικά δέχομαι ότι αυτό αποτελεί μια προσωπική μου εμπειρία και δεν μπορώ να γενικεύσω, επειδή όμως το έχω ζήσει το καταθέτω.