
Situs web proyek: https://feli10.github.io/math-coding/
Pada tahun 2022, orang tua saya mempercayakan saya untuk membantu adik saya belajar matematika sekolah dasar. Pada saat itu, dia berusia enam tahun, dan saya adalah mahasiswa baru di sekolah menengah. Untuk menangani proyek ini, saya merumuskan rencana - setelah dia menyelesaikan setiap unit dalam buku teks matematika, saya akan merancang dan menugaskannya 1-2 latihan pengkodean, yang ditulis dalam Python, yang terkait erat dengan konten unit. Dengan menggunakan pendekatan ini menggabungkan matematika dan pengkodean, kami berhasil menyelesaikan rata -rata kursus satu semester setiap dua bulan. Dalam sekitar satu tahun, kami telah menyelesaikan kurikulum matematika sekolah dasar Cina dari kelas tiga hingga lima.
Project Library berisi 60 program Python yang kami tulis selama tahun ini, termasuk 22 dengan antarmuka pengguna grafis dan 38 dengan antarmuka baris perintah. Program-program ini mencakup semua 49 unit dari buku teks matematika Cina kelas ketiga hingga lima dari pers Pendidikan Rakyat. File math_coding_handbook.pdf berisi topik matematika utama untuk setiap unit dan deskripsi dari program yang sesuai. Kami juga menyertakan dokumentasi dan komentar terperinci dalam semua program.
Graphical User Interface | Command Line Interface |
|---|---|
![]() | ![]() |
Semua program dan buku pegangan pembelajaran memiliki versi terpisah dalam bahasa Inggris dan Cina. Direktori _en berisi versi bahasa Inggris, dengan semua tampilan grafis dan komentar program dalam bahasa Inggris. Direktori _cn berisi versi Cina, dengan semua tampilan grafis dan komentar program dalam bahasa Cina.

Unduh math_coding_handbook.pdf (versi bahasa Inggris)
Unduh math_coding_handbook.pdf (versi Cina)
Melalui proyek ini, saya dan saudara lelaki saya telah membuktikan dalam praktiknya bahwa belajar matematika sekolah dasar dengan pengkodean memungkinkan pelajar untuk mempelajari matematika secara efisien dan efektif sambil secara bersamaan menjadi mahir dalam bahasa pemrograman.
Untuk secara efektif mempelajari matematika sekolah dasar dengan pengkodean melalui proyek ini membutuhkan yang berikut:
Ada dua cara untuk menggunakan proyek ini:
Pada tahun 2022, ketika adik laki -laki saya Henry berusia enam tahun, orang tua saya meminta saya untuk bertanggung jawab atas matematika dan pendidikan bahasa Inggrisnya sementara. Pada saat itu, saya sepuluh tahun lebih tua darinya dan di tahun pertama sekolah menengah saya. Tujuan awal yang kami sepakati adalah bahwa, sebelum saya kuliah, saya akan membantunya menyelesaikan matematika sekolah dasar dan mencapai tingkat kemahiran bahasa Inggris di mana ia dapat terus meningkat secara mandiri. Karena saya adalah yang terbaik dalam keluarga dalam bahasa Inggris, tidak ada banyak ketidakpastian tentang itu, tetapi bagaimana saya akan mengajarinya matematika?
Saya menyelesaikan matematika sekolah dasar ketika saya berusia sembilan tahun. Melihat ke belakang, saya ingat membaca banyak buku teks, melakukan banyak masalah latihan, dan mengambil beberapa tes tiruan. Setelah beberapa pertimbangan, saya menyadari Henry, yang baru berusia enam tahun, membutuhkan pendekatan yang berbeda. Berdasarkan pengalaman belajar saya, ketika seseorang terus -menerus berjuang dengan jenis masalah matematika tertentu, biasanya karena mereka tidak memiliki pemahaman yang mendalam tentang konsep yang mendasarinya. Tujuan dari melakukan masalah latihan adalah untuk mengidentifikasi dan mengatasi kelemahan ini. Namun, jika seseorang mempraktikkan masalah tanpa berpikir, kesalahan yang sama akan muncul berulang kali. Inilah sebabnya mengapa melakukan lautan masalah praktik seringkali bukan cara yang efisien untuk mempelajari topik matematika baru. Oleh karena itu, saya bertujuan untuk menemukan pendekatan yang akan memungkinkan Henry untuk memahami dengan seksama konsep dan keterampilan matematika yang perlu ia pelajari sebelum menyelam ke pemecahan masalah yang luas.
Inspirasi utama untuk menggabungkan matematika dan pengkodean berasal dari mengambil kursus matematika tingkat tinggi sebagai bagian dari proyek penelitian pembelajaran mesin. Saat mengambil kursus, saya menemukan bahwa menggunakan alat pemrograman untuk membantu belajar matematika di tingkat universitas cukup umum dan sangat efektif. Saat belajar kalkulus, aljabar linier, dan statistik, pemrograman digunakan untuk melakukan eksperimen matematika dan memecahkan masalah praktis. Ditambah dengan visualisasi hasil, ini sangat membantu pemahaman saya tentang konsep dan teorema matematika abstrak. Kemudian, saya juga menemukan beberapa sumber daya untuk belajar matematika sekolah menengah dengan bantuan pemrograman. Namun, saya tidak pernah menemukan hal serupa untuk matematika sekolah dasar.
Jadi, setelah mendiskusikan ide saya dengan Henry, proyek "belajar sekolah dasar dengan pengkodean" lahir.
Selain proyek selama setahun dengan Henry, kami menyelenggarakan beberapa acara “Programming Weekend”, di mana saya memimpin kelompok 5-10 anak untuk belajar matematika dengan pemrograman. Karena acara ini cukup sukses, saya percaya proyek ini dapat menguntungkan lebih banyak anak - memungkinkan mereka untuk belajar matematika secara efisien dengan hasil pembelajaran yang lebih baik sambil melengkapi mereka dengan keterampilan pemrograman.
Untuk anak -anak yang mengikuti kurikulum sekolah, kami berharap proyek ini dapat membantu mereka meningkatkan kemampuan matematika dan pemrograman mereka. Kami juga berharap proyek ini memungkinkan mereka yang ingin mempercepat pembelajaran matematika mereka, seperti Henry, untuk melakukannya. Salah satu manfaat dari pembelajaran yang dipercepat adalah bahwa pengetahuan tentang matematika mendasar dapat memfasilitasi pengembangan minat awal. Misalnya, kemampuan matematika Henry sangat membantu pembelajaran musiknya, memungkinkan minat dan bakat musiknya berkembang lebih awal.
Saya berharap proyek ini dapat memberi orang pendekatan baru untuk belajar matematika dan membawa lebih banyak peluang bagi mereka yang memilih untuk menggunakannya. Jika Anda memiliki pertanyaan atau saran tentang proyek ini, jangan ragu untuk menghubungi saya di email ini: [email protected].
Organisasi direktori ini identik dengan Buku Teks Matematika Sekolah Dasar Tiongkok dari Pers Pendidikan Rakyat. Misalnya, untuk nama direktori g311_time , "G311" di awal mengidentifikasi bahwa direktori sesuai dengan unit 1 semester 1 dari buku teks grade 3.
Teks setelah pengidentifikasi menunjukkan konten pembelajaran utama unit. Unit G311 terutama tentang waktu lipat, jadi nama direktori unit ini adalah g311_time .
Setiap direktori berisi 1-2 file program Python. Nama -nama program menunjukkan isinya. Misalnya, g311_time berisi dua program: clock.py , yang menampilkan jam analog yang berfungsi, dan digital_clock.py , yang menampilkan jam digital yang berfungsi.
File math_coding_handbook.pdf di direktori _en berisi halaman deskripsi untuk semua 60 program di 49 unit dari kelas 3 hingga 5. Setiap deskripsi program berisi berikut ini:

Semua program berisi docString terperinci di awal dan komentar yang berguna di seluruh.

Buku Pegangan Pembelajaran dan semua program memiliki versi bahasa Inggris dan Cina yang terpisah. Direktori _en dan _cn diatur dengan cara yang sama tetapi dengan konten dalam bahasa Inggris dan Cina, masing -masing.
Beberapa program dalam perpustakaan kode berisi referensi satu sama lain. Oleh karena itu, kami sarankan mengunduh seluruh perpustakaan kode sebelum digunakan.
Beberapa catatan tentang konten matematika program:
Semua unit matematika ada di SI (sistem internasional).
Tampilan aritmetik bentuk vertikal dalam program tertentu didasarkan pada bentuk vertikal yang ditunjukkan dalam buku teks Cina.

| Unit ID | Nama unit | Program |
|---|---|---|
| G311 | Waktu jitu - jam, menit, dan detik | 1. Jam analog 2. Jam Digital |
| G312 | Penambahan dan pengurangan 2 digit | Latih penambahan dan pengurangan 2 digit |
| G313 | Pengukuran | Latihan Konversi Unit |
| G314 | Penambahan dan pengurangan vertikal | 1. Penambahan vertikal 2. Pengurangan vertikal |
| G315 | Masalah kata multiplikasi | Latih masalah kata perkalian |
| G316 | Perkalian pendek | Perkalian pendek |
| G317 | Persegi panjang dan kotak | Buat kelas persegi panjang |
| G318 | Memahami pecahan | Berlatih membandingkan pecahan |
| G319 | Set | Tetapkan operasi |
| G321 | Orientasi | Berlatih orientasi mengidentifikasi |
| G322 | Divisi pendek | Divisi pendek |
| G323 | Tabel | Membuat dan menampilkan tabel |
| G324 | 2 digit multiplikasi panjang | Penggandaan Panjang 1 |
| G325 | Daerah | Tingkatkan Kelas Persegi Panjang - Hitung area dan gambar persegi panjang |
| G326 | Tahun, bulan, dan hari | Tampilan Kalender |
| G327 | Memahami desimal | 1. Praktik Desimal 1 2. Visualisasi desimal |
| G328 | Kombinasi | Tiga Masalah Penghitungan Umum |
| G411 | Bekerja dengan jumlah besar | Bacalah nomor alami |
| G412 | Unit area besar | Konversi Unit Latihan Area |
| G413 | Mengukur sudut | Gambar dial jam |
| G414 | Penghabusan panjang 3 digit | Penggandaan Panjang 2 |
| G415 | Jajaran genjang dan trapesium | Menghitung trapesium |
| G416 | Divisi panjang | Divisi panjang |
| G417 | Bagan batang | 1. Membuat bagan batang menggunakan matplotlib 2. Membuat Subclass Kelas Tabel Untuk Menggambar Bagan Bar |
| G418 | Optimasi | Menghitung game |
| G421 | Urutan Operasi | Mengevaluasi ekspresi aritmatika |
| G422 | Mengamati benda | Tiga tampilan kubus |
| G423 | Hukum Operasi Dasar | Selesaikan 24 |
| G424 | Makna dan sifat desimal | Praktik desimal 2 |
| G425 | Segitiga | 1. Gambar segitiga isosceles 2. Gambar poligon biasa |
| G426 | Tambahan dan pengurangan desimal | Tambahan dan pengurangan desimal dalam bentuk vertikal |
| G427 | Simetri reflektif | Menghasilkan bentuk simetris reflektif |
| G428 | Nilai rata -rata dan grafik batang dikelompokkan | Nilai rata -rata dan grafik batang dikelompokkan |
| G429 | Masalah ayam dan kelinci | Masalah ayam dan kelinci |
| G511 | Perkalian desimal | Multiplikasi desimal yang panjang |
| G512 | Posisi | 1. Koordinat input berdasarkan posisi 2. Klik posisi berdasarkan koordinat |
| G513 | Divisi Desimal | 1. Divisi panjang desimal 2. Latihan mengubah fraksi umum menjadi desimal |
| G514 | Kemungkinan | 1. Seleksi acak dengan bobot 2. Jumlah dua gulungan dadu |
| G515 | Persamaan sederhana | Memecahkan masalah ayam dan kelinci menggunakan persamaan |
| G516 | Area poligon | Kelas poligon dengan sifat area |
| G517 | Masalah penanaman pohon | Masalah penanaman pohon |
| G521 | Mengamati objek 2 | Tiga tampilan kubus v2 |
| G522 | Faktor dan kelipatan | 1. Dapatkan bilangan prima 2. Dugaan Goldbach |
| G523 | Cuboids and Cubes | 1. Kelas Cuboid dengan Properti Unit 2. Konversi Unit Volume Praktek |
| G524 | Makna dan sifat fraksi | 1. Pembagi Umum Terbesar Dan Kelipatan Terbaik 2. Konversi fraksi desimal menjadi paling sederhana |
| G525 | Rotasi | Rotasi |
| G526 | Tambahan dan pengurangan pecahan | Tambahan dan pengurangan pecahan |
| G527 | Bagan baris | Tingkatkan Kelas Data untuk Menggambar Bagan Multi-Line |
| G528 | Identifikasi outlier | Identifikasi outlier |
Tujuan dari program dalam proyek ini adalah untuk menerjemahkan metode pemecahan masalah manusia ke dalam bahasa mesin (yaitu, program Python) se-jelas dan eksplisit mungkin. Ini terutama karena pertimbangan berikut:
Oleh karena itu, kami memprioritaskan hasil di atas efisiensi untuk sebagian besar program kami. Namun, ketika menemukan skenario di mana runtime sangat dipengaruhi oleh data input, peserta didik akan dipandu untuk mencoba berbagai metode pemrograman dari berbagai efisiensi.
Unduh pemasang Python dari situs web resmi Python (cocok untuk berbagai sistem operasi). Untuk pengguna Windows, pastikan untuk memeriksa opsi "Tambahkan Python.exe ke Path" selama instalasi.

Pasang Anaconda atau Miniconda (cocok untuk berbagai sistem operasi). Conda adalah paket open-source dan sistem manajemen lingkungan. Menginstal Conda juga memasang Python dan beberapa modul yang umum digunakan.
Gunakan homebrew untuk memasang python (cocok untuk macOS dan sistem operasi linux). Homebrew adalah sistem manajemen paket open-source. Jika homebrew sudah diinstal pada sistem Anda, Anda dapat menggunakan perintah berikut untuk menginstal Python:
brew install python-tkIDLE (Lingkungan Pengembangan dan Pembelajaran Terpadu) adalah alat pemrograman bawaan untuk Python. Ini termasuk interpreter interaktif dan editor kode. IDLE hanya memiliki fungsionalitas telanjang, sehingga disarankan untuk menggunakan editor kode yang lebih kuat seperti VS Code.

VS Code (Visual Studio Code)

Interpreter interaktif Python, atau dikenal sebagai shell, adalah antarmuka baris perintah yang sangat berguna di mana Anda dapat memasukkan ekspresi python apa pun, dan hasilnya akan ditampilkan di layar secara instan. Interpreter sangat ideal untuk bereksperimen dengan cuplikan kode kecil, seperti menguji penggunaan tipe atau fungsi data bawaan. Disarankan bahwa ketika pemrograman, Anda tidak hanya memasukkan kode dalam editor kode tetapi juga memiliki interpreter interaktif yang terbuka pada saat yang sama. Ini memungkinkan Anda untuk bereksperimen dan memverifikasi hasilnya segera di penerjemah ketika hasil dari suatu ekspresi tidak pasti.
Anda dapat mengakses interpreter interaktif Python dengan cara berikut:
Untuk pengguna MacOS atau Linux, Anda dapat memasukkan python di terminal untuk mengakses interpreter interaktif. Jika sistem tidak mengenali python , Anda dapat mencoba python3 .

Pengguna Windows dapat mengakses interpreter interaktif dengan mengklik "Python" di menu atau memasukkan python di jendela Command Prompt (CMD.EXE). Jika sistem tidak mengenali python , Anda dapat mencoba python3 atau py .
Alat pemrograman bawaan idle di Python secara langsung membuka interpreter interaktif saat diluncurkan.

Anda juga dapat mengakses interpreter interaktif melalui terminal bawaan VS Code atau jendela interaktif.
Modul atau paket seperti Turtle dan Tkinter adalah bagian dari pustaka standar Python dan dipasang sebelumnya dengan Python, jadi tidak diperlukan instalasi tambahan.
Matplotlib adalah pustaka visualisasi data python populer dan dapat diinstal menggunakan metode berikut:
Instal menggunakan modul pip Python. Jika sistem tidak mengenali python , Anda dapat mengganti python dengan python3 atau py (untuk pengguna windows) di perintah di bawah ini:
python -m pip install -U matplotlib Jika Conda diinstal, Anda dapat menggunakan perintah conda untuk instalasi:
conda install matplotlibPygame adalah perpustakaan pengembangan game Python yang populer. Program G512 "Game Koordinat" menggunakan modul suara dari pygame. Anda dapat menginstalnya dengan cara yang mirip dengan Matplotlib:
Instal menggunakan modul pip Python:
python -m pip install -U pygame Jika Conda diinstal, Anda dapat menggunakan perintah conda untuk instalasi:
conda install pygame⏫ Kembali ke atas