Bagaimana cara mengajarkan Python kepada anak-anak?

Bagaimana cara mengajarkan Python kepada anak-anak?

Pekerjaan utama saya berhubungan dengan data dan pemrograman R, namun pada artikel kali ini saya ingin berbicara tentang hobi saya yang bahkan mendatangkan penghasilan. Saya selalu tertarik menceritakan dan menjelaskan sesuatu kepada teman, teman sekelas, dan sesama siswa. Selalu mudah bagi saya untuk menemukan bahasa yang sama dengan anak-anak, saya tidak tahu kenapa. Secara umum, saya percaya bahwa membesarkan dan mengajar anak-anak adalah salah satu kegiatan terpenting, dan istri saya adalah seorang guru. Jadi, sekitar setahun yang lalu, saya beriklan di grup Facebook lokal, membentuk grup dan mulai mengajar Scratch dan Python seminggu sekali. Sekarang saya memiliki lima kelompok, kelas saya sendiri di rumah dan pelajaran individu. Bagaimana saya bisa hidup seperti ini dan bagaimana tepatnya saya mengajar anak-anak, akan saya ceritakan di artikel ini.

Saya tinggal di Calgary, Alberta, Kanada, jadi beberapa hal akan bersifat spesifik lokal.

Kamar

Ketersediaan ruang untuk berlatih menjadi perhatian utama sejak awal. Saya mencoba mencari kantor dan ruang kelas yang disewakan per jam, namun tidak berhasil. Universitas kami dan SAIT, setara dengan MIT, menawarkan kelas dengan dan tanpa komputer. Harga di sana ternyata tidak terlalu manusiawi, dan pada akhirnya ternyata pihak universitas tidak mengizinkan anak di bawah umur, dan SAIT umumnya hanya menyewakan kepada mahasiswanya sendiri. Jadi, opsi ini dihilangkan. Ada banyak pusat perkantoran yang menyewakan ruang pertemuan dan kantor per jam, ada banyak perusahaan yang menawarkan banyak pilihan mulai dari ruang kelas penuh hingga ruangan untuk empat orang. Saya punya harapan, karena Alberta adalah provinsi minyak, kita berada dalam krisis yang lesu sejak tahun 2014, dan banyak ruang usaha yang kosong. Saya seharusnya tidak berharap; harganya ternyata sangat keterlaluan sehingga saya bahkan tidak mempercayainya pada awalnya. Lebih mudah bagi pemilik untuk duduk di kantor kosong dan membayar biaya daripada membuangnya.

Pada saat itu, saya ingat bahwa saya secara teratur membayar pajak, dan apakah negara bagian kita tercinta, atau lebih tepatnya, kota Calgary, memiliki sesuatu di sana. Ternyata memang ada. Kota ini memiliki arena untuk hoki dan olahraga skating lainnya, dan di arena ini terdapat ruangan tempat para pejuang es yang tangguh mendiskusikan strategi untuk pertempuran di masa depan. Singkatnya, setiap arena memiliki beberapa ruangan dengan meja, kursi, papan tulis, dan bahkan wastafel dengan ketel. Harganya cukup mahal - 25 kapal tugrik Kanada per jam. Awalnya saya memutuskan untuk mengikuti kelas selama satu setengah jam, jadi saya menetapkan harga pelajaran sebesar $35 per kelas dalam kelompok yang terdiri dari lima orang, sebagai kompensasi uang sewa, dan memasukkan sesuatu ke dalam saku saya. Secara umum, saya suka berolahraga di arena, ini memecahkan salah satu masalah - sebagian besar orang berbahasa Rusia tinggal di selatan, dan saya tinggal di utara kota, jadi saya memilih arena kira-kira di tengah. Namun ada juga ketidaknyamanan. Birokrasi di Kanada baik dan ramah, namun, secara halus, bisa jadi agak canggung. Tidak ada masalah jika Anda terbiasa dengan ritme dan rencana sebelumnya, namun terkadang momen tidak menyenangkan muncul. Misalnya, di situs web kota Anda dapat dengan mudah memilih waktu dan tempat serta memesan kamar, namun Anda tidak dapat membayar dengan cara apa pun. Mereka melakukan panggilan telepon sendiri dan menerima pembayaran dengan kartu. Anda bisa pergi ke kantor dan membayar tunai. Ada momen yang lucu tapi tidak terlalu menyenangkan ketika saya menunggu panggilan mereka untuk membayar pelajaran kedua, tidak kunjung datang, dan di hari terakhir saya terlambat lima belas menit ke kantor. Saya harus mendekati keamanan dengan wajah kurang ajar dan berbohong bahwa kamar sudah dipesan. Kami, warga Kanada, mempercayai kata-kata saya; mereka membiarkan saya masuk dengan tenang dan tidak memeriksa apa pun, tetapi saya tidak akan melakukan itu jika orang-orang belum menuju ke kelas.

Beginilah cara saya bekerja sepanjang musim dingin dan musim semi, dan kemudian terjadi perubahan yang terakhir. Pertama, kantor ditutup untuk pengunjung dan mereka menawarkan untuk menerima pembayaran melalui telepon di sudut jalan. Saya duduk di lorong setidaknya setengah jam sebelum saya selesai. Kedua, jika sebelumnya bibiku tersayang mengambil pembayaran dariku selama satu setengah jam, sekarang ada seorang gadis yang menjawab telepon dan mengatakan bahwa pembayarannya hanya untuk satu jam. Pada saat itu, grup saya terdiri dari tiga atau dua orang, dan tambahan $12.5 sama sekali tidak berlebihan. Tentu saja, saya ideologis, tetapi jika istri saya mengusir saya ke jalan, tidak akan ada yang bisa diajar. Saat itu saya masih menganggur.

Dan aku memutuskan untuk pergi ke perpustakaan. Perpustakaan menyewakan ruangan-ruangan indah secara gratis, tetapi ada satu kendala - Anda tidak dapat melakukan aktivitas komersial. Bahkan badan amal pun tidak diperbolehkan mengumpulkan uang di sana. Saya diberitahu bahwa ini tidak terlalu dikontrol, yang utama adalah jangan mengambil uang di pintu masuk, tapi saya sangat tidak suka melanggar aturan. Permasalahan lainnya adalah ruangan yang sering terisi dan sulitnya menyelenggarakan kelas terjadwal dalam satu waktu di satu tempat. Saya mengajar di perpustakaan selama musim panas dan awal musim dingin, saya harus memilih perpustakaan yang memiliki ruang, dan pada akhirnya saya mengganti lima atau enam perpustakaan. Kemudian saya mulai memesan tempat dua bulan sebelumnya, dan bahkan kemudian, saya hanya berhasil melakukan ini di satu perpustakaan kecil; sisanya biasanya tidak memiliki tempat untuk waktu yang ditentukan. Dan kemudian saya memutuskan untuk membuat kelas komputer di rumah. Saya menutup telepon, membeli meja kedua dan beberapa monitor lama dari iklan. Di tempat kerja, perusahaan membelikan saya laptop baru yang kuat karena analisis di komputer saya memakan waktu hampir 24 jam. Jadi, saya memiliki komputer lama yang baru, komputer lama yang lama, laptop tempat si kecil saya menghancurkan layarnya, dan netbook kuno yang saya sendiri yang menghancurkan layarnya. Saya menghubungkan semuanya ke monitor dan menginstal Linux Mint di mana saja, kecuali netbook, di mana saya menginstal kit distribusi yang sangat ringan, sepertinya Pappy. Saya masih memiliki laptop lama baru, dibeli seharga $200, saya menghubungkannya ke TV. Yang juga penting adalah pemilik kami baru saja mengganti jendela kami, dan alih-alih ruangan yang kumuh dan kumuh, kini kami memiliki bingkai putih baru. Istri saya menyimpan ruang tamu, dapur, dan kamar tidur kedua untuk taman kanak-kanak, sehingga seluruh lantai menjadi murni pedagogis. Jadi, sekarang semuanya baik-baik saja dengan ruangannya, mari kita lanjutkan ke pengajaran.

Menggores

Saya mulai mengajarkan dasar-dasar pemrograman menggunakan bahasa Scratch. Ini adalah bahasa yang menggunakan blok siap pakai, ditemukan pada suatu waktu di MIT. Kebanyakan anak sudah pernah melihat Scratch di sekolah, jadi mereka memahaminya dengan cukup cepat. Ada program dan RPP yang sudah jadi, tapi saya tidak menyukainya sama sekali. Ada yang aneh - buat cerita Anda sendiri, misalnya. Keseluruhan program terdiri dari blok yang tak terhitung jumlahnya say '<...>' for 2 seconds. Terlihat bahwa ini ditemukan oleh individu yang sangat kreatif, tetapi dengan pendekatan ini Anda dapat mengajarkan cara menulis kode spageti klasik India. Sejak awal, saya berbicara tentang prinsip-prinsip seperti KERING. Kumpulan tugas lainnya cukup bagus, tetapi anak-anak dengan cepat memahami esensinya dan mulai melakukannya seperti senapan mesin. Hasilnya, mereka melakukan dalam satu pelajaran apa yang seharusnya mereka lakukan dalam lima pelajaran. Dan mencari serta memilih tugas membutuhkan banyak waktu pribadi. Secara umum, Scratch lebih mengingatkan bukan pada bahasanya, tetapi pada IDE, di mana Anda hanya perlu mengingat di mana harus mengklik dan di mana mencari apa. Segera setelah siswa merasa lebih atau kurang nyaman, saya mencoba mentransfernya ke Python. Bahkan anak perempuan saya yang berumur tujuh tahun menulis program sederhana dengan Python. Apa yang saya lihat sebagai manfaat Scratch adalah mengandung konsep-konsep dasar yang dipelajari dengan cara yang menyenangkan. Entah kenapa, sangat sulit bagi semua orang, tanpa terkecuali, untuk memahami konsep variabel. Pada awalnya saya dengan cepat membaca sekilas topik tersebut dan melanjutkan sampai saya dihadapkan pada kenyataan bahwa mereka bahkan tidak tahu apa yang harus dilakukan. Sekarang saya menghabiskan banyak waktu pada variabel dan terus-menerus kembali ke variabel tersebut. Anda harus melakukan pukulan bodoh. Saya mengubah variabel berbeda di layar dan membuat variabel tersebut mengungkapkan nilainya. Scratch juga memiliki struktur kontrol dan pemeriksaan nilai, seperti while, for ΠΈΠ»ΠΈ if dalam python. Itu cukup mudah, tetapi ada masalah dengan loop bersarang. Saya mencoba memberikan beberapa tugas dengan loop bersarang, dan agar tindakannya jelas. Setelah itu saya beralih ke fungsi. Bahkan bagi orang dewasa pun, konsep fungsinya belum jelas, terlebih lagi bagi anak-anak. Saya panjang lebar tentang apa itu fungsi secara umum, saya berbicara tentang pabrik yang menerima barang sebagai input dan mengeluarkan barang, tentang juru masak yang membuat makanan dari bahan mentah. Kemudian kita membuat program β€œmembuat sandwich” dengan produk, dan kemudian kita membuat fungsi dari program tersebut, yang mana produk tersebut diteruskan sebagai parameter. Saya menyelesaikan fungsi pembelajaran dengan Scratch.

Python

Dengan python semuanya lebih sederhana. Ada buku bagus Python untuk Anak-Anak, dari situlah saya mengajar. Semuanya standar di sana - garis, urutan operasi, print(), input() dll. Ditulis dengan bahasa yang mudah, disertai humor, disukai anak-anak. Ini memiliki kelemahan yang umum terjadi pada banyak buku pemrograman. Seperti dalam lelucon terkenal - cara menggambar burung hantu. Oval - lingkaran - burung hantu. Peralihan dari konsep sederhana ke konsep yang agak rumit terjadi terlalu mendadak. Saya memerlukan beberapa sesi untuk melampirkan objek ke metode titik. Di sisi lain, saya tidak terburu-buru, saya mengulangi hal yang sama dengan cara yang berbeda sampai setidaknya ada gambaran yang menyatu. Saya mulai dengan variabel dan menyelesaikannya lagi, kali ini dengan Python. Variabel adalah semacam kutukan.

Seorang siswa cerdas, yang beberapa bulan lalu dengan cekatan mengklik variabel di Skratch, tampak seperti seekor domba jantan di gerbang baru dan tidak dapat menambahkan X dengan Y, yang tertulis dengan jelas di papan pada baris di atas. Kami mengulangi! Apa yang dimiliki suatu variabel? Nama dan artinya! Apa arti tanda sama dengan? Penugasan! Bagaimana kita memeriksa kesetaraan? Tanda sama dengan ganda! Dan kami mengulanginya lagi dan lagi hingga pencerahan sempurna. Lalu kita beralih ke fungsi, yang mana penjelasan tentang argumen membutuhkan waktu paling lama. Argumen yang diberi nama, berdasarkan posisi, secara default, dan seterusnya. Kami belum mencapai kelas di grup mana pun. Selain Python, kami mempelajari algoritma populer dari buku ini, lebih lanjut tentang itu nanti.

Sebenarnya, pelatihan

Pelajaran saya terstruktur seperti ini: Saya memberikan teori selama setengah jam, menguji pengetahuan, dan mengkonsolidasikan apa yang telah dipelajari. Sudah waktunya untuk laboratorium. Saya sering terbawa suasana dan ngobrol sampai satu jam, lalu ada waktu setengah jam lagi untuk latihan. Ketika saya belajar python, saya menonton kursusnya Algoritma dan Struktur Data Khryanov dari MIPT. Saya sangat menyukai presentasinya dan struktur ceramahnya. Idenya adalah ini: kerangka kerja, sintaksis, perpustakaan menjadi usang. Arsitektur, kerja tim, sistem kontrol versi - ini masih awal. Akibatnya, algoritma dan struktur data tetap ada yang telah dikenal sejak lama dan akan selalu dalam bentuk yang serupa. Saya sendiri hanya ingat bilangan bulat dari institut pascal. Karena siswa saya sebagian besar masih muda, berusia tujuh hingga lima belas tahun, saya percaya bahwa lebih penting bagi masa depan mereka untuk meletakkan fondasi daripada menulis game platform dengan Python dengan cepat. Meskipun demikian, mereka lebih menginginkan platformer, dan saya memahaminya. Saya memberi mereka algoritma sederhana - gelembung, pencarian biner dalam daftar yang diurutkan, membalikkan notasi Polandia menggunakan tumpukan, tetapi kami menganalisis masing-masing dengan sangat rinci. Ternyata anak-anak modern pada prinsipnya belum mengetahui cara kerja komputer, saya kasih tahu juga. Saya mencoba menyatukan beberapa konsep dalam setiap perkuliahan. Misalnya, komputer - memori/persentase - memori terdiri dari sel (saya biarkan Anda memegang chip memori, tebak ada berapa sel) - setiap sel seperti bola lampu - ada dua keadaan - benar/salah - dan/atau - biner/desimal - 8bit = 1 byte - byte = 256 opsi - tipe data logis dalam satu bit - bilangan bulat dalam satu byte - float pada dua byte - string pada satu byte - angka terbesar pada 64 bit - daftar dan tuple dari tipe sebelumnya. Saya membuat reservasi bahwa di komputer nyata semuanya agak berbeda dan jumlah memori untuk tipe data ini berbeda, tetapi yang utama adalah kita sendiri dalam prosesnya membuat tipe data yang lebih kompleks dari yang lebih sederhana. Tipe data mungkin merupakan hal yang paling sulit untuk diingat. Itu sebabnya saya memulai setiap pelajaran dengan pemanasan cepat - satu siswa menyebutkan tipe datanya, siswa berikutnya memberikan dua contoh, dan seterusnya dalam lingkaran. Hasilnya, saya mencapai bahwa bahkan anak bungsu pun berteriak riang - melayang! boolean! tujuh, lima! pizza, mobil! Selama kuliah, saya terus-menerus menarik yang pertama atau yang lain, jika tidak, mereka akan segera mengupil dan melihat ke langit-langit. Dan tingkat pengetahuan setiap orang perlu diperiksa sesekali.

Murid-muridku tak henti-hentinya membuatku takjub, baik dengan kebodohannya maupun kecerdasannya yang tidak disangka-sangka. Untungnya, lebih sering dengan kecerdasan.

Aku ingin menulis lagi, tapi ternyata hanya selembar saja. Saya akan dengan senang hati menjawab semua pertanyaan. Saya menyambut kritik apa pun dengan segala cara, saya hanya meminta Anda untuk lebih toleran satu sama lain di komentar. Ini adalah artikel yang bagus.

Sumber: www.habr.com

Tambah komentar