Πώς μπορώ να διδάξω Python σε παιδιά;

Πώς μπορώ να διδάξω Python σε παιδιά;

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

Ζω στο Κάλγκαρυ της Αλμπέρτα του Καναδά, οπότε κάποια πράγματα θα είναι τοπικά χαρακτηριστικά.

Το δωμάτιο

Η διαθεσιμότητα χώρου για εξάσκηση ήταν από την αρχή ένα σημαντικό μέλημα. Προσπάθησα να ψάχνω για γραφεία και τάξεις προς ενοικίαση την ώρα, αλλά δεν είχα μεγάλη επιτυχία. Το πανεπιστήμιό μας και το SAIT, το τοπικό αντίστοιχο του MIT, προσφέρουν μαθήματα με και χωρίς υπολογιστές. Οι τιμές εκεί αποδείχτηκαν ότι δεν ήταν πολύ ανθρώπινες και τελικά αποδείχθηκε ότι το πανεπιστήμιο δεν επιτρέπει ανηλίκους και το SAIT γενικά νοικιάζει μόνο στους δικούς του φοιτητές. Έτσι, αυτή η επιλογή καταργήθηκε. Υπάρχουν πολλά κέντρα γραφείων που νοικιάζουν αίθουσες συσκέψεων και γραφεία ανά ώρα, υπάρχουν ολόκληρες εταιρείες που προσφέρουν ένα σωρό επιλογές από μια πλήρη τάξη σε ένα δωμάτιο για τέσσερα άτομα. Είχα ελπίδες, καθώς η Αλμπέρτα είναι μια επαρχία πετρελαίου, βρισκόμαστε σε μια υποτονική κρίση από το 2014 και πολλοί επαγγελματικοί χώροι είναι άδειοι. Δεν έπρεπε να ελπίζω· οι τιμές αποδείχτηκαν τόσο εξωφρενικές που δεν τις πίστευα καν στην αρχή. Είναι πιο εύκολο για τους ιδιοκτήτες να κάθονται σε άδεια γραφεία και να πληρώνουν έξοδα παρά να κάνουν χωματερές.

Εκείνη τη στιγμή, θυμήθηκα ότι πληρώνω τακτικά τους φόρους μου και αν η αγαπημένη μας πολιτεία, ή μάλλον, η πόλη του Κάλγκαρι, έχει κάτι εκεί. Αποδείχθηκε ότι υπάρχει πραγματικά. Η πόλη έχει αρένες για χόκεϊ και άλλα αθλήματα καλλιτεχνικού πατινάζ, και σε αυτές τις αρένες υπάρχουν αίθουσες όπου σκληροτράχηλοι πολεμιστές πάγου συζητούν στρατηγικές για μελλοντικές μάχες. Εν ολίγοις, κάθε αρένα έχει δύο δωμάτια με τραπέζια, καρέκλες, λευκή σανίδα και ακόμη και νεροχύτη με βραστήρα. Η τιμή είναι αρκετά θεϊκή - 25 καναδικά tugrik ανά ώρα. Αρχικά αποφάσισα να κάνω μαθήματα για μιάμιση ώρα, οπότε έβαλα την τιμή για ένα μάθημα στα 35 $ ανά τάξη σε μια ομάδα πέντε ατόμων, για να αντισταθμίσω το ενοίκιο και να βάλω κάτι στην τσέπη μου. Γενικά, μου άρεσε να γυμνάζομαι στις αρένες, έλυσε ένα από τα προβλήματα - οι περισσότεροι ρωσόφωνοι ζουν στο νότο και εγώ ζω στο βόρειο τμήμα της πόλης, οπότε επέλεξα μια αρένα περίπου στη μέση. Υπήρχαν όμως και ενοχλήσεις. Η καναδική γραφειοκρατία είναι καλή και φιλική, αλλά, για να το θέσω ήπια, μπορεί να είναι κάπως αδέξια. Δεν υπάρχουν προβλήματα όταν συνηθίζεις τον ρυθμό και προγραμματίζεις εκ των προτέρων, αλλά μερικές φορές προκύπτουν δυσάρεστες στιγμές. Για παράδειγμα, στον ιστότοπο της πόλης μπορείτε εύκολα να επιλέξετε ώρα και μέρος και να κάνετε κράτηση δωματίου, αλλά δεν μπορείτε να πληρώσετε με κανέναν τρόπο. Κάνουν μόνοι τους τα τηλεφωνήματα και δέχονται πληρωμές με κάρτα. Μπορείτε να πάτε στο γραφείο και να πληρώσετε σε μετρητά. Υπήρχε μια αστεία αλλά όχι πολύ ευχάριστη στιγμή όταν περίμενα την κλήση τους για να πληρώσω το δεύτερο μάθημα, δεν ήρθε και την τελευταία μέρα άργησα δεκαπέντε λεπτά στο γραφείο. Έπρεπε να πλησιάσω την ασφάλεια με ένα αυθάδικο πρόσωπο και να πω ψέματα ότι το δωμάτιο ήταν κράτηση. Εμείς οι Καναδοί δεχόμαστε τον λόγο μου· με άφησαν να μπω ήρεμα και δεν έλεγξαν τίποτα, αλλά δεν θα το έκανα αυτό αν οι άνθρωποι δεν ήταν ήδη καθ' οδόν για την τάξη.

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

Και αποφάσισα να πάω στη βιβλιοθήκη. Οι βιβλιοθήκες νοικιάζουν υπέροχα δωμάτια εντελώς δωρεάν, αλλά υπάρχει ένα αλίευμα - δεν μπορείτε να διεξάγετε εμπορικές δραστηριότητες. Ακόμα και φιλανθρωπικές οργανώσεις δεν επιτρέπεται να μαζεύουν χρήματα εκεί. Μου είπαν ότι αυτό δεν ελέγχεται ιδιαίτερα, το κύριο πράγμα είναι να μην παίρνω χρήματα στην είσοδο, αλλά πραγματικά δεν μου αρέσει να παραβιάζω τους κανόνες. Ένα άλλο πρόβλημα είναι ότι οι αίθουσες είναι συχνά κατειλημμένες και είναι δύσκολο να πραγματοποιηθούν προγραμματισμένα μαθήματα ταυτόχρονα σε ένα μέρος. Δίδασκα σε βιβλιοθήκες το καλοκαίρι και στις αρχές του χειμώνα, έπρεπε να διαλέξω αυτές με χώρο και στο τέλος άλλαξα πέντε-έξι βιβλιοθήκες. Στη συνέχεια, άρχισα να κάνω κράτηση για ένα μέρος δύο μήνες νωρίτερα, και ακόμη και τότε, το κατάφερα μόνο σε μια μικρή βιβλιοθήκη· οι υπόλοιπες τακτικά δεν είχαν θέσεις για τον απαιτούμενο χρόνο. Και μετά αποφάσισα να κάνω ένα μάθημα υπολογιστών στο σπίτι. Έκλεισα την πλακέτα, αγόρασα ένα δεύτερο τραπέζι και μερικές παλιές οθόνες από τη διαφήμιση. Στη δουλειά, η εταιρεία μου αγόρασε ένα νέο ισχυρό φορητό υπολογιστή, επειδή η ανάλυση στον υπολογιστή μου κράτησε σχεδόν 24 ώρες. Έτσι, είχα έναν καινούργιο παλιό υπολογιστή, έναν παλιό παλιό υπολογιστή, έναν φορητό υπολογιστή στον οποίο το μικρό μου τσάκιζε την οθόνη και ένα αρχαίο netbook στο οποίο τσάκισα μόνος μου την οθόνη. Τα συνέδεσα όλα με τις οθόνες και εγκατέστησα το Linux Mint παντού, εκτός από το netbook, στο οποίο έβαλα ένα πολύ ελαφρύ κιτ διανομής, φαίνεται, το Pappy. Έχω ακόμα ένα παλιό καινούργιο laptop, αγορασμένο για 200 $, το σύνδεσα στην τηλεόραση. Αυτό που είναι επίσης σημαντικό είναι ότι ο ιδιοκτήτης μας άλλαξε πρόσφατα τα παράθυρά μας και αντί για την τρομερή, καταρρέουσα κατάσταση στο δωμάτιο, έχουμε τώρα νέα λευκά κουφώματα. Η γυναίκα μου κρατάει το σαλόνι, την κουζίνα και το δεύτερο υπνοδωμάτιο για νηπιαγωγείο, οπότε όλος ο όροφος αποδείχθηκε καθαρά παιδαγωγικός. Λοιπόν, τώρα όλα είναι καλά με τις εγκαταστάσεις, ας περάσουμε στη διδασκαλία.

Γρατσουνιά

Αρχίζω να διδάσκω τα βασικά του προγραμματισμού χρησιμοποιώντας τη γλώσσα Scratch. Αυτή είναι μια γλώσσα που χρησιμοποιεί έτοιμα μπλοκ, που εφευρέθηκε κάποτε στο MIT. Τα περισσότερα παιδιά έχουν ήδη δει το Scratch στο σχολείο, οπότε το μαζεύουν αρκετά γρήγορα. Υπάρχουν έτοιμα προγράμματα και σχέδια μαθημάτων, αλλά δεν μου αρέσουν καθόλου. Μερικά είναι περίεργα - δημιουργήστε τη δική σας ιστορία, για παράδειγμα. Ολόκληρο το πρόγραμμα αποτελείται από αμέτρητα μπλοκ say '<...>' for 2 seconds. Μπορεί να φανεί ότι επινοήθηκε από πολύ δημιουργικά άτομα, αλλά με αυτήν την προσέγγιση μπορείτε να διδάξετε πώς να γράφετε κλασικό ινδικό κώδικα σπαγγέτι. Από την αρχή, μιλάω για αρχές όπως το DRY. Άλλες συλλογές εργασιών είναι αρκετά καλές, αλλά τα παιδιά αντιλαμβάνονται γρήγορα την ουσία και αρχίζουν να τις κάνουν σαν πολυβόλο. Ως αποτέλεσμα, κάνουν σε ένα μάθημα αυτό που έπρεπε να κάνουν σε πέντε. Και η αναζήτηση και η επιλογή εργασιών απαιτεί πολύ προσωπικό χρόνο. Σε γενικές γραμμές, το Scratch δεν θυμίζει περισσότερο γλώσσα, αλλά IDE, όπου απλά πρέπει να θυμάστε πού να κάνετε κλικ και πού να αναζητήσετε τι. Μόλις οι μαθητές είναι λίγο πολύ άνετα, προσπαθώ να τους μεταφέρω στην Python. Ακόμα και το επτάχρονο κορίτσι μου γράφει απλά προγράμματα σε Python. Αυτό που βλέπω ως πλεονέκτημα του Scratch είναι ότι περιέχει βασικές έννοιες που μαθαίνονται με παιχνιδιάρικο τρόπο. Για κάποιο λόγο, είναι πολύ δύσκολο για όλους, χωρίς εξαίρεση, να κατανοήσουν την ιδέα μιας μεταβλητής. Στην αρχή κοίταξα γρήγορα αυτό το θέμα και προχώρησα μέχρι που αντιμετώπισα το γεγονός ότι δεν ήξεραν τι να κάνουν για αυτό. Τώρα ξοδεύω πολύ χρόνο σε μεταβλητές και επιστρέφω συνεχώς σε αυτές. Πρέπει να κάνεις ένα ανόητο σφυροκόπημα. Αλλάζω διαφορετικές μεταβλητές στην οθόνη και τις βάζω να πουν τις τιμές τους. Το Scratch έχει επίσης δομές ελέγχου και ελέγχους αξίας, όπως π.χ while, for ή if σε python. Είναι αρκετά εύκολα, αλλά υπάρχουν προβλήματα με ένθετους βρόχους. Προσπαθώ να δώσω πολλές εργασίες με ένθετο βρόχο και έτσι ώστε η δράση του να είναι ξεκάθαρη. Μετά από αυτό προχωράω στις λειτουργίες. Ακόμη και για τους ενήλικες, η έννοια της λειτουργίας δεν είναι προφανής, και ακόμη περισσότερο για τα παιδιά. Συνεχίζω πολύ καιρό για το τι είναι γενικά η λειτουργία, μιλάω για ένα εργοστάσιο που λαμβάνει είδη ως εισροές και εκδίδει αγαθά, για έναν μάγειρα που φτιάχνει φαγητό από πρώτες ύλες. Στη συνέχεια φτιάχνουμε ένα πρόγραμμα «φτιάχνω ένα σάντουιτς» με προϊόντα και μετά φτιάχνουμε μια συνάρτηση από αυτό, στην οποία περνούν τα προϊόντα ως παράμετροι. Ολοκληρώνω τις λειτουργίες εκμάθησης με το Scratch.

Python

Με τον python όλα είναι πιο απλά. Υπάρχει ένα καλό βιβλίο Python for Kids, από το οποίο διδάσκω. Όλα είναι στάνταρ εκεί - γραμμές, σειρά λειτουργιών, print(), input() και τα λοιπά. Γραμμένο σε εύκολη γλώσσα, με χιούμορ, αρέσει στα παιδιά. Έχει ένα κοινό ελάττωμα σε πολλά βιβλία προγραμματισμού. Όπως στο διάσημο αστείο - πώς να σχεδιάσετε μια κουκουβάγια. Οβάλ - κύκλος - κουκουβάγια. Η μετάβαση από απλές έννοιες σε μάλλον περίπλοκες έννοιες είναι πολύ απότομη. Μου χρειάζονται αρκετές συνεδρίες για να επισυνάψω το αντικείμενο στη μέθοδο κουκκίδας. Από την άλλη, δεν βιάζομαι, επαναλαμβάνω το ίδιο πράγμα με διαφορετικούς τρόπους μέχρι τουλάχιστον να συνδυάσει κάποια εικόνα. Ξεκινάω με μεταβλητές και τις βγάζω ξανά, αυτή τη φορά στην Python. Οι μεταβλητές είναι ένα είδος κατάρας.

Ένας έξυπνος μαθητής, που πριν από μερικούς μήνες έκανε επιδέξια κλικ σε μεταβλητές στο Skratch, μοιάζει με κριάρι στη νέα πύλη και δεν μπορεί να προσθέσει το Χ με το Υ, το οποίο είναι ξεκάθαρα γραμμένο στον πίνακα μια γραμμή παραπάνω. Επαναλαμβάνουμε! Τι έχει μια μεταβλητή; Όνομα και νόημα! Τι σημαίνει το σύμβολο της ισότητας; ΑΝΑΘΕΣΗ ΕΡΓΑΣΙΑΣ! Πώς ελέγχουμε την ισότητα; Διπλό σύμβολο ίσον! Και το επαναλαμβάνουμε ξανά και ξανά μέχρι την πλήρη φώτιση. Στη συνέχεια προχωράμε στις συναρτήσεις, όπου η εξήγηση σχετικά με τα ορίσματα διαρκεί περισσότερο. Ονομασμένα ορίσματα, κατά θέση, από προεπιλογή και ούτω καθεξής. Δεν έχουμε φτάσει ακόμη σε τάξεις σε καμία ομάδα. Εκτός από την Python, μελετάμε δημοφιλείς αλγόριθμους από το βιβλίο, περισσότερα για αυτό αργότερα.

Στην πραγματικότητα, εκπαίδευση

Το μάθημά μου είναι δομημένο ως εξής: Δίνω θεωρία για μισή ώρα, δοκιμάζω γνώσεις και εμπεδώνω ό,τι έχω μάθει. Είναι ώρα για εργαστήρια. Συχνά παρασύρομαι και μιλάω μέχρι και μια ώρα, μετά μένει μισή ώρα για εξάσκηση. Όταν μάθαινα python, παρακολουθούσα το μάθημα Αλγόριθμοι και Δομές Δεδομένων Khiryanov από το MIPT. Μου άρεσε πολύ η παρουσίασή του και η δομή των διαλέξεών του. Η ιδέα του είναι η εξής: τα πλαίσια, η σύνταξη, οι βιβλιοθήκες γίνονται απαρχαιωμένα. Αρχιτεκτονική, ομαδική εργασία, συστήματα ελέγχου εκδόσεων - είναι ακόμη νωρίς. Ως αποτέλεσμα, παραμένουν αλγόριθμοι και δομές δεδομένων που είναι γνωστά εδώ και πολύ καιρό και θα έχουν πάντα παρόμοια μορφή. Εγώ ο ίδιος θυμάμαι μόνο ακέραιους αριθμούς από το ινστιτούτο pascal. Δεδομένου ότι οι μαθητές μου είναι ως επί το πλείστον νέοι, από επτά έως δεκαπέντε ετών, πιστεύω ότι είναι πιο σημαντικό για το μέλλον τους να βάλουν τα θεμέλια παρά να γράψουν γρήγορα ένα παιχνίδι πλατφόρμας στην Python. Αν και θέλουν περισσότερο platformer και τους καταλαβαίνω. Τους δίνω απλούς αλγόριθμους - μια φούσκα, δυαδική αναζήτηση σε μια ταξινομημένη λίστα, αντίστροφη Πολωνική σημείωση χρησιμοποιώντας μια στοίβα, αλλά αναλύουμε το καθένα με μεγάλη λεπτομέρεια. Αποδείχθηκε ότι τα σύγχρονα παιδιά δεν ξέρουν καταρχήν πώς λειτουργεί ένας υπολογιστής, θα σας πω επίσης. Προσπαθώ να συνδέσω πολλές έννοιες μαζί σε κάθε διάλεξη. Για παράδειγμα, ένας υπολογιστής - μνήμη/ποσοστό - μνήμη που αποτελείται από κελιά (θα σας αφήσω να κρατήσετε το τσιπ μνήμης, μαντέψτε πόσα κελιά υπάρχουν) - κάθε κελί είναι σαν μια λάμπα - υπάρχουν δύο καταστάσεις - αληθές/λάθος - και/ή - δυαδικό/δεκαδικό - 8 bit = 1 byte - byte = 256 επιλογές - λογικός τύπος δεδομένων σε ένα bit - ακέραιοι αριθμοί σε ένα byte - float σε δύο byte - string σε ένα byte - ο μεγαλύτερος αριθμός στα 64 bit - μια λίστα και μια πλειάδα από τους προηγούμενους τύπους. Επιφυλάσσομαι ότι σε έναν πραγματικό υπολογιστή όλα είναι κάπως διαφορετικά και η ποσότητα μνήμης για αυτούς τους τύπους δεδομένων είναι διαφορετική, αλλά το κύριο πράγμα είναι ότι εμείς οι ίδιοι στη διαδικασία δημιουργούμε πιο σύνθετους τύπους δεδομένων από απλούστερους. Οι τύποι δεδομένων είναι ίσως το πιο δύσκολο πράγμα να θυμάστε. Γι' αυτό ξεκινάω κάθε μάθημα με μια γρήγορη προθέρμανση - ένας μαθητής ονομάζει τον τύπο δεδομένων, ο επόμενος δίνει δύο παραδείγματα και ούτω καθεξής σε κύκλο. Ως αποτέλεσμα, πέτυχα ακόμη και τα μικρότερα παιδιά να φωνάζουν χαρούμενα - επιπλέουν! boolean! επτά, πέντε! πίτσα, αυτοκίνητο! Κατά τη διάρκεια μιας διάλεξης, τραβάω συνεχώς πρώτα το ένα ή το άλλο, διαφορετικά αρχίζουν γρήγορα να μαζεύουν τη μύτη τους και να κοιτάζουν το ταβάνι. Και το επίπεδο γνώσεων του καθενός πρέπει να ελέγχεται κάθε τόσο.

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο