Python στην Γ λυκείου

Ξεκίνησε από nokotsos, 25 Μαΐου 2022, 04:59:58 ΜΜ

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

Foto

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

dpa2006

Πράγματι χρειάζεται κόστος και ορίζοντας.
Αυτό είναι γενικότερο θέμα με το Hardware και πιστεύω ότι το έχουμε ζήσει λίγο πολύ όλοι.
Πρέπει να υπάρξει κονδύλι επιμόρφωση εκπαιδευτών στο αντικειμένο και ορίζοντας δεκαετίας.
Ευσεβείς πόθοι  :(
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

dpa2006

Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

Foto

Η χρήση γεγονότων είναι δύσκολο να γίνει στο χαρτί. Αν μιλάμε για gui τότε θα έχουμε μια σειρά attributes που θα πρέπει να γνωρίζει ο μαθητής για ένα σύνολο controls. Τωρα χωρίς γεγονότα, μας φθάνει ένα περιορισμένο λεξιλόγιο. Αλλά με τα controls θα έχουμε πλειάδα ονομάτων. Θα πρέπει να γίνεται απομνημόνευση ή να δίδεται πίνακας;

dpa2006

Παράθεση από: Foto στις 05 Ιουν 2022, 01:37:50 ΜΜΗ χρήση γεγονότων είναι δύσκολο να γίνει στο χαρτί. Αν μιλάμε για gui τότε θα έχουμε μια σειρά attributes που θα πρέπει να γνωρίζει ο μαθητής για ένα σύνολο controls. Τωρα χωρίς γεγονότα, μας φθάνει ένα περιορισμένο λεξιλόγιο. Αλλά με τα controls θα έχουμε πλειάδα ονομάτων. Θα πρέπει να γίνεται απομνημόνευση ή να δίδεται πίνακας;
Πράγματι έτσι είναι...
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

alkisg

Αν θέλουμε να μείνουμε σε σκέτο input / output, τότε αρκεί η χρήση του πεδίου "value":

// Αντίστοιχο της ΔΙΑΒΑΣΕ:
a = control1.value
// Αντίστοιχο της ΓΡΑΨΕ:
control2.value = "Το άθροισμα είναι ... μπλα μπλα"

Ενώ για προγραμματισμό βασισμένο σε γεγονότα, χρειάζεται και το:
control1.onclick = myfunction

Δηλαδή αντί για 2 πράγματα τώρα θα πρέπει να μάθουν 2. Same difference.

Foto

Υπάρχουν δύο τουλάχιστον θέματα που δεν καλύφθηκαν παραπάνω:
1. Input Validation (περιορισμός στη τιμή εισαγωγής, διότι η εισαγωγή γίνεται εκτός από προγραμματιστικά με επιλογή του control και χρήση πληκτρολογίου)
2. Control Interaction (συνήθως με χρήση ιδιότητας enabled). Ο χειρισμός ενός ή περισσοτέρων controls σχετίζεται με τη κατάσταση enabled ενός άλλου control.

alkisg

Το input validation δεν εξαρτάται από το αν η είσοδος δίνεται σε γραμμή τερματικού ή σε text box. Είναι το ίδιο εύκολη ή δύσκολη και στις δύο περιπτώσεις.
Control interaction σε απλά παραδείγματα επιπέδου ΑΕΠΠ δεν χρειάζεται. Μπορούν όλα τα input/output controls να είναι πάντα enabled, και το "onclick" ενός από αυτά να αντιστοιχεί με το κουμπί "run" του Διερμηνευτή.

Foto

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

alkisg

Η ΓΛΩΣΣΑ δεν έχει περιβάλλον για προγραμματισμό με GUI/γεγονότα/ασύγχρονο κλπ, και σιγά μην αποκτήσει ποτέ.
Για όλα αυτά θα χρειαστεί άλλη γλώσσα, π.χ. Javascript.

Το sum up, my άποψη είναι:

  • Αν είναι να μείνουμε σε διαδικασίες / τερματικό, αρκεί η ΓΛΩΣΣΑ με μια μικρή αποσαφήνιση, δεν χρειάζεται να πάμε σε Python, δεν έχει κάποιο ουσιαστικό πλεονέκτημα για τη Β/θμια.
  • Αν είναι να πάμε σε GUI / γεγονότα  / ασύγχρονο τότε η Python δεν είναι κατάλληλη και βολεύει καλύτερα η Javascript.

Foto

Η JavaScript θα μείνει πολλά χρόνια στο προσκήνιο, με την υποστήριξη από τους browsers, και πιστεύω ότι μπορεί να χρησιμοποιηθεί σε όλες τις τάξεις της Β)μιας εκπαίδευσης.

pgrontas

#26
Με μια δεύτερη ανάγνωση όσων γράφτηκαν σε αυτό το θέμα, μου προέκυψε το εξής (ειλικρινές) ερώτημα:

Μπορείς να κάνεις GUI ή event-driven χωρίς OOP?
Σίγουρα δεν χρειάζεται η αντικειμενοστρεφής σχεδίαση που διδάσκεται τώρα (λανθασμένη έτσι κι αλλιώς προσέγγιση όπως έχω ξαναγράψει) αλλά σίγουρα χρειάζεται το dot notation.
Επίσης σίγουρα θα πρέπει να υπάρχει κάποια περιγραφή της υποδομής της γλώσσας για τoν μηχανισμό διάδοσης των events, για τα layouts κτλ. οπότε μήπως αυτό βαρύνει υπερβολικά τους μαθητές;

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

Παράθεση από: alkisg στις 06 Ιουν 2022, 12:08:28 ΜΜ
  • Αν είναι να μείνουμε σε διαδικασίες / τερματικό, αρκεί η ΓΛΩΣΣΑ με μια μικρή αποσαφήνιση, δεν χρειάζεται να πάμε σε Python, δεν έχει κάποιο ουσιαστικό πλεονέκτημα για τη Β/θμια.

Υπάρχει τουλάχιστον ένα (super για μένα) πλεονέκτημα: Δίνει χειροπιαστές γνώσεις στους μαθητές σε μια μοντέρνα γλώσσα προγραμματισμού  η οποία υποστηρίζει όλα τα υποδείγματα του προγραμματισμού με πολύ απλό τρόπο και λίγα προαπαιτούμενα.
Έτσι διδάσκει ταυτόχρονα και την πολυπόθητη αλγοριθμική σκέψη αλλά μπορεί να χρησιμοποιηθεί και ως ένας απλός τρόπος να εισαχθούν  με απλό τρόπο πολλές έννοιες με πολλές εφαρμογές (πχ. functions as first class objects που λέγαμε πριν). Τέτοια πράγματα ούτε γίνονται με τη ΓΛΩΣΣΑ, ούτε πρόκειται να γίνουν.
Τις γνώσεις αυτές μπορούν να τις αξιοποιήσουν και στην τριτοβάθμια χτίζοντας επάνω τους (όχι μόνο στην πληροφορική αλλά σε ολοένα και περισσότερες θετικές σχολές πχ. όπου έχει data analysis). Στο τελευταίο υπερτερεί της Javascript (η οποία όμως με τη σειρά της υπερτερεί σε άλλα πράγματα σίγουρα).

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

Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

alkisg

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

Αν ξεκινούσαμε από το μηδέν θα έλεγα "ναι αμέ υλοποιείται πολύ πιο γρήγορα από το να ορίσουμε ΓΛΩΣΣΑ και να φτιάξουμε Διερμηνευτές".
Αν θέλαμε javascript/GUI/events/whatever με ειδική βιβλιοθήκη επίσης θα συμφωνούσα, γιατί αυτά είναι πράγματα που δεν υποστηρίζει η ΓΛΩΣΣΑ.
Όμως το να πάμε σε ΑΕΠΠ-like custom βιβλιοθήκη οποιασδήποτε ΓΛΩΣΣΑΣ π.χ. C ή Python δεν το θεωρώ αναβάθμιση από την υπάρχουσα ΑΕΠΠ αν δεν αιτιολογήσουμε το τι παραπάνω μας προσφέρει. Δεν αποτελεί καν κανονική γλώσσα με επαναχρησιμοποιήσιμες γνώσεις.

Όσον αφορά το GUI/event driven και τον OOP, αν μιλήσουμε μόνο για attributes π.χ. onclick ή value τότε είμαστε σε επίπεδο εγγραφών (structs, records) και μπορούμε να χρησιμοποιήσουμε dot notation χωρίς να αναφέρουμε αντικείμενα. Αλλά και να αναφέρουμε την λέξη "αντικείμενο" δεν το θεωρώ κακό αν δεν αναλωνόμαστε σε φανφάρες αντικειμενοστραφούς σχεδίασης.

tsak

Arduino, callbacks, promises και άλλα ωραία οκ σαν σκέψεις αλλά ας αφήσουμε κάτι και για την τριτοβάθμια ρε παιδιά.. ;D
Ας πάρουν βάσεις αλγοριθμικής σκέψης (το βασικότερο κατ' εμέ) και τα άλλα έρχονται για όσους συνεχίσουν το ταξίδι στην πληροφορική. 
Για το νέο πρόγραμμα έχω να πω ότι αδυνατω να καταλάβω αυτό το συνοθυλευμα με ποιο τρόπο τελικά θα διδαχθεί και με ποια βιβλία..

Foto

#29
Υπάρχουν τα handbook, βιβλία που συνοπτικά αναφέρουν όλες τις δυνατότητες του χρήστη στο αντικείμενο του βιβλίου.
Σύνδεσμος για JavaScript HandBook.
http://edu-9.de/uploads/books/javascript-handbook.pdf

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