Νομίζω ότι είναι ξεκάθαρο από το βιβλίο ότι
η μόνη γλώσσα αναπαράστασης αλγορίθμου στο μάθημα είναι η γλώσσα Python, ούτε ψευδογλώσσα ούτε ΔΡ, αφού το 99.999% του κώδικα στο βιβλίο είναι σε Python.
(Αναρωτιέμαι αν στο βιβλίο ήταν όλα σε ψευδογλώσσα και κάπου υπήρχε ένα ιστορικό σημείωμα με παράδειγμα σε Python υπήρχε περίπτωση να ρωτήσει κανείς αν κάνουμε Python?)
Όσον αφορά τις λίγες ασκήσεις που υπάρχουν στο βιβλίο όσοι διαμαρτύρονται έχουν δίκιο. Αυτή τη στιγμή γράφεται το τετράδιο μαθητή. Γίνεται προσπάθεια να είναι έτοιμο τα Χριστούγεννα μαζί με μια λίστα με παροράματα που έχουμε εντοπίσει ως τώρα.
Μέχρι τότε θα συνιστούσα (προσωπική μου άποψη) σε πρώτη φάση να γίνονται ασκήσεις με δομή επανάληψης και επιλογής και λίστες. Εκεί μπορούν να γίνουν ασκήσεις όπως στο μάθημα της ΑΕΠΠ γίνονται με μονοδιάσταστους πίνακες.
Δεν μιλάω για πολύπλοκα ή πολύ δύσκολα πράγματα (κάποιες δραστηριότητες του βιβλίου είναι πράγματι δύσκολες) αλλά για βασικά πράγματα τέτοια ώστε να καταλάβει ο μαθητής τι είναι η λίστα και που χρησιμεύει.
Επίσης μπορούν να γίνουν και κάποιες βασικές ασκήσεις με max, min, sum, μετρητές κλπ στο πνεύμα του παλιού μαθήματος .
Όσον αφορά την ύλη αντιλαμβάνομαι ότι κάποιες έννοιες στα τελευταία κεφάλαια είναι δύσκολο να τις περάσουμε στους μαθητές. Όμως από την άλλη θα πρέπει να καταλάβουμε ότι
δεν είναι δυνατόν μέσα σε 2 χρόνια με δυο 4ωρα μαθήματα να κάνουμε μόνο δομή επιλογής και επανάληψης.
Το νέο μάθημα Προγραμματισμός Υπολογιστών που δεν έχει σχέση με το παλιό μάθημα Δομημένος Προγραμματισμός είναι εντελώς καινούργιο. Ο σημαντικότερος λόγος που δεν έχει σχέση είναι ότι ήδη στην Β οι μαθητές έχουν διδαχθεί τα βασικά του προγραμματισμού με την Python.
Αυτή είναι η διαφορά. Άρα στην Γ θα πρέπει να προχωρήσουν παρακάτω.
Επίσης όσον αφορά τις μετατροπές. Οι μετατροπές δεν είναι αυτοσκοπός. Αποτελούν ασκήσεις με σκοπό να καταλάβουν οι μαθητές πως λειτουργούν οι δυο δομές επανάληψης while/for. Δεν διδάσκουμε μετατροπές μπας και πέσει θέμα αλλά τις δομές επανάληψης. Νομίζω ότι ένα - δυο παραδείγματα αρκούν προς αυτή την κατεύθυνση.
Παρακάτω δίνω και μια απλή μετατροπή του ιδιώματος for ... in range σε while
Το τμήμα κώδικα
s = 0
for i in range(1,10,2) :
s = s + i
print s, i
εμφανίζει τα ίδια αποτελέσματα με το παρακάτω τμήμα κώδικα
s = 0
i = 1
while (i < 10) :
s = s + i
print s, i
i = i + 2
Προσοχή!!! Η μεταβλητή i δεν τερματίζει με την ίδια τιμή και στις δυο περιπτώσεις. Στην πρώτη η τελική τιμή της είναι 9 ενώ στη δεύτερη 11.
Αυτό συμβαίνει επειδή
η range επιστρέφει μια λίστα κάτι το οποίο θα πρέπει να δείξουμε στους μαθητές με ένα παράδειγμα όπως το παρακάτω:
s = 0
for i in [1, 3, 5, 7, 9] :
s = s + i
print s, i
Θα έλεγα πρώτα να τους δείξετε τέτοιες ασκήσεις χωρίς τη range και μετά να βάλετε στο παιχνίδι τη range. Μην το δείτε σαν μετατροπές ισοδύναμων τμημάτων κώδικα γιατί δεν είναι τέτοια και δεν υπάρχει και λόγος.
Θα συνιστούσα ασκήσεις στις οποίες να υπάρχει η εκφώνηση "να εμφανίζουν τις ίδιες τιμές". Και πιο απλό είναι έτσι και βάζεις τους μαθητές να σκεφτούν.