
Site Web du projet: https://feli10.github.io/math-coding/
En 2022, mes parents m'ont chargé d'aider mon jeune frère à apprendre les mathématiques de l'école primaire. À l'époque, il avait six ans et j'étais étudiant de première année au lycée. Pour lutter contre ce projet, j'ai formulé un plan - après avoir terminé chaque unité dans son manuel de mathématiques, je concevais et lui attribuerais 1-2 exercices de codage, écrit en Python, qui se rapporte étroitement au contenu de l'unité. En utilisant cette approche combinant les mathématiques et le codage, nous avons réussi à compléter en moyenne un semestre de cours tous les deux mois. En environ un an, nous avions terminé le programme de mathématiques de l'école primaire chinois de la troisième à cinq ans.
La bibliothèque de projets contient 60 programmes Python que nous avons écrits au cours de l'année, dont 22 avec des interfaces utilisateur graphiques et 38 avec des interfaces de ligne de commande. Ces programmes couvrent les 49 unités des manuels de mathématiques chinoises de la troisième à la troisième année de la presse éducative populaire. Le fichier math_coding_handbook.pdf contient les principaux sujets mathématiques pour chaque unité et des descriptions des programmes correspondants. Nous avons également inclus une documentation détaillée et des commentaires dans tous les programmes.
Graphical User Interface | Command Line Interface |
|---|---|
![]() | ![]() |
Tous les programmes et le manuel d'apprentissage ont des versions distinctes en anglais et en chinois. Le répertoire _en contient la version anglaise, avec tous les affichages graphiques et commentaires du programme en anglais. Le répertoire _cn contient la version chinoise, avec tous les affichages graphiques et commentaires du programme en chinois.

Télécharger math_coding_handbook.pdf (version anglaise)
Télécharger math_coding_handbook.pdf (version chinoise)
Grâce à ce projet, mon frère et moi avons prouvé dans la pratique que l'apprentissage des mathématiques des écoles élémentaires avec le codage permet aux apprenants d'étudier efficacement et efficacement les mathématiques tout en devenant simultanément compétent dans un langage de programmation.
Pour apprendre efficacement les mathématiques de l'école primaire avec le codage dans ce projet, il faut ce qui suit:
Il existe deux façons d'utiliser ce projet:
En 2022, alors que mon jeune frère Henry avait six ans, mes parents m'ont demandé de prendre temporairement ses mathématiques et son éducation en anglais. À l'époque, j'avais dix ans de plus que lui et dans ma première année de lycée. L'objectif initial que nous avons convenu était que, avant d'aller à l'université, je l'aiderais à compléter les mathématiques des écoles élémentaires et à atteindre un niveau de compétence en anglais où il pouvait continuer à s'améliorer de manière indépendante. Comme j'étais le meilleur de la famille en anglais, il n'y avait pas beaucoup d'incertitudes à ce sujet, mais comment pourrais-je lui enseigner les mathématiques?
J'ai terminé les mathématiques de l'école primaire à l'âge de neuf ans. Avec le recul, je me souviens avoir lu de nombreux manuels, faire beaucoup de problèmes de pratique et passer pas mal de tests simulés. Après une certaine considération, j'ai réalisé qu'Henry, qui n'avait que six ans, avait besoin d'une approche différente. Sur la base de mon expérience d'apprentissage, lorsque quelqu'un a constamment du mal avec un type particulier de problème de mathématiques, c'est généralement parce qu'il manque de compréhension approfondie des concepts sous-jacents. Le but de faire des problèmes de pratique devrait être d'identifier et de résoudre ces faiblesses. Cependant, si l'on pratique les problèmes sans réfléchir, les mêmes erreurs apparaîtront encore et encore. C'est pourquoi faire une mer de problèmes de pratique n'est souvent pas un moyen efficace d'apprendre de nouveaux sujets mathématiques. Par conséquent, je visais à trouver une approche qui permettrait à Henry de bien comprendre les concepts et les compétences mathématiques qu'il doit apprendre avant de plonger dans une résolution de problèmes étendue.
L'inspiration principale pour la combinaison des mathématiques et du codage est venue de la prise de cours de mathématiques de haut niveau dans le cadre d'un projet de recherche sur l'apprentissage automatique. En suivant les cours, j'ai constaté que l'utilisation d'outils de programmation pour aider à apprendre les mathématiques au niveau universitaire était assez courante et très efficace. Lors de l'apprentissage du calcul, de l'algèbre linéaire et des statistiques, la programmation a été utilisée pour mener des expériences mathématiques et résoudre des problèmes pratiques. Couplé à la visualisation des résultats, cela a grandement aidé ma compréhension des concepts et théorèmes mathématiques abstraits. Plus tard, j'ai également trouvé quelques ressources pour apprendre les mathématiques du collège avec l'aide de la programmation. Cependant, je n'ai jamais rien trouvé de similaire pour les mathématiques des écoles primaires.
Ainsi, après avoir discuté de mon idée avec Henry, le projet "Learn Elementary School Math with Coding" est né.
En plus du projet d'un an avec Henry, nous avons organisé plusieurs événements de «week-end de programmation», dans lesquels j'ai dirigé des groupes de 5 à 10 enfants à apprendre les mathématiques avec la programmation. Parce que ces événements ont réussi, je crois que ce projet peut bénéficier à plus d'enfants - leur permettant d'apprendre efficacement les mathématiques avec de meilleurs résultats d'apprentissage tout en les équipant des compétences en programmation.
Pour les enfants qui suivent le programme scolaire, nous espérons que ce projet pourra les aider à améliorer leurs capacités de mathématiques et de programmation. Nous espérons également que ce projet permettra à ceux qui souhaitent accélérer leur apprentissage mathématique, comme Henry, de le faire. Un avantage de l'apprentissage accéléré est que la connaissance des mathématiques fondamentales peut faciliter le développement des intérêts précoces. Par exemple, les capacités mathématiques d'Henry ont grandement aidé son apprentissage musical, permettant à son intérêt musical et à son talent de se développer tôt.
J'espère que ce projet pourra fournir aux gens une nouvelle approche pour apprendre les mathématiques et apporter plus d'opportunités à ceux qui choisissent de l'utiliser. Si vous avez des questions ou des suggestions sur le projet, n'hésitez pas à me contacter dans cet e-mail: [email protected].
L'organisation des répertoires est identique aux manuels de mathématiques chinoises de l'école primaire de la presse d'éducation populaire. Par exemple, pour le nom du répertoire g311_time , le "G311" au début identifie que le répertoire correspond à l'unité 1 du semestre 1 du manuel de 3e année.
Le texte après l'identifiant indique le principal contenu d'apprentissage de l'unité. L'unité G311 concerne principalement l'heure à dire, donc le nom du répertoire de cette unité est g311_time .
Chaque répertoire contient 1-2 fichiers de programme Python. Les noms des programmes indiquent leur contenu. Par exemple, g311_time contient deux programmes: clock.py , qui affiche une horloge analogique fonctionnelle, et digital_clock.py , qui affiche une horloge numérique fonctionnelle.
Le fichier math_coding_handbook.pdf dans le répertoire _en contient des pages de description pour les 60 programmes sur 49 unités de la 3e à la 5e année. Chaque description du programme contient ce qui suit:

Tous les programmes contiennent un docstring détaillé au début et des commentaires utiles tout au long.

Le manuel d'apprentissage et tous les programmes ont des versions anglaises et chinoises distinctes. Les répertoires _en et _cn sont organisés de la même manière mais avec du contenu en anglais et en chinois, respectivement.
Certains programmes de la bibliothèque de code contiennent des références les uns aux autres. Par conséquent, nous vous recommandons de télécharger l'intégralité de la bibliothèque de code avant utilisation.
Quelques notes sur le contenu mathématique du programme:
Toutes les unités mathématiques sont dans SI (Système international).
L'affichage de la forme verticale arithmétique dans certains programmes est basé sur les formes verticales indiquées dans les manuels chinois.

| ID de l'unité | Nom d'unité | Programme (s) |
|---|---|---|
| G311 | L'heure révélatrice - heures, minutes et secondes | 1. Horloge analogique 2. horloge numérique |
| G312 | Ajout et soustraction à 2 chiffres | Pratiquez l'addition et la soustraction à 2 chiffres |
| G313 | Mesures | Pratiquer la conversion d'unité |
| G314 | Ajout vertical et soustraction | 1. Ajout vertical 2. soustraction verticale |
| G315 | Problèmes de mot multiplication | Pratiquez des problèmes de mot multiplication |
| G316 | Multiplication courte | Multiplication courte |
| G317 | Rectangles et carrés | Créer une classe de rectangle |
| G318 | Comprendre les fractions | Pratiquer la comparaison des fractions |
| G319 | Sets | Définir les opérations |
| G321 | Orientations | Pratiquer d'identifier les orientations |
| G322 | Courte division | Courte division |
| G323 | Tables | Création et affichage des tables |
| G324 | Multiplication longue à 2 chiffres | Multiplication longue 1 |
| G325 | Zone | Améliorer la classe des rectangles - Calculer la zone et dessiner des rectangles |
| G326 | Années, mois et jours | Calendrier d'affichage |
| G327 | Comprendre les décimales | 1. Pratique décimale 1 2. Visualisation des décimales |
| G328 | Combinaisons | Trois problèmes de comptage communs |
| G411 | Travailler avec un grand nombre | Lisez n'importe quel numéro naturel |
| G412 | Unités de grande surface | Conversion d'unité de zone de pratique |
| G413 | Mesurer les angles | Dessiner un cadran de l'horloge |
| G414 | Multiplication longue à 3 chiffres | Multiplication longue 2 |
| G415 | Parallélogrammes et trapézoïdes | Compter les trapézoïdes |
| G416 | Longue division | Longue division |
| G417 | Graphiques à barres | 1. Création de graphiques à barres à l'aide de matplotlib 2. Création de sous-classe de classe de table pour dessiner des graphiques à barres |
| G418 | Optimisation | Compter le jeu |
| G421 | Ordonnance | Évaluer les expressions arithmétiques |
| G422 | Observer les objets | Trois vues sur les cubes |
| G423 | Lois de fonctionnement de base | Solve 24 |
| G424 | Signification et propriétés des décimales | Pratique décimale 2 |
| G425 | Triangles | 1. Dessiner des triangles isocèles 2. Dessinez des polygones réguliers |
| G426 | Addition et soustraction des décimales | Addition et soustraction des décimales sous forme verticale |
| G427 | Symétrie réfléchissante | Générer des formes symétriques réfléchissantes |
| G428 | Valeur moyenne et graphiques à barres groupés | Valeur moyenne et graphiques à barres groupés |
| G429 | Problème de poulet et de lapin | Problème de poulet et de lapin |
| G511 | Multiplication décimale | Multiplication longue des décimales |
| G512 | Position | 1. Coordonnées d'entrée en fonction des positions 2. Cliquez sur des positions en fonction des coordonnées |
| G513 | Division décimale | 1. Longue division des décimales 2. Pratiquez la conversion des fractions communes en décimales |
| G514 | Probabilité | 1. Sélection aléatoire avec des poids 2. Somme de deux rouleaux de dés |
| G515 | Équations simples | Résoudre le problème du poulet et du lapin à l'aide d'équations |
| G516 | Zone des polygones | Classes de polygone avec des propriétés de la zone |
| G517 | Problème de plantation d'arbres | Problème de plantation d'arbres |
| G521 | Observation des objets 2 | Trois vues sur les cubes V2 |
| G522 | Facteurs et multiples | 1. Obtenez des nombres premiers 2. Conjecture Goldbach |
| G523 | Cuboïdes et cubes | 1. Classe cuboïde avec propriété unitaire 2. Conversion de l'unité de volume de pratique |
| G524 | Signification et propriétés des fractions | 1. Diviseur commun le plus commun et multiple le moins commun 2. Convertir la décimale en fraction la plus simple |
| G525 | Rotation | Rotation |
| G526 | Addition et soustraction des fractions | Addition et soustraction des fractions |
| G527 | Graphiques de ligne | Améliorer la classe de données pour dessiner des graphiques multiplices |
| G528 | Identifier la valeur aberrante | Identifier la valeur aberrante |
L'objectif des programmes de ce projet est de traduire des méthodes de résolution de problèmes humains en langage de la machine (c'est-à-dire des programmes Python) aussi clairement et explicitement que possible. Cela est principalement dû aux considérations suivantes:
Par conséquent, nous avons priorisé les résultats supérieurs à l'efficacité de la plupart de nos programmes. Cependant, lors de la rencontre de scénarios où l'exécution est grandement affectée par les données d'entrée, les apprenants seront guidés pour essayer différentes méthodes de programmation d'efficacité variable.
Téléchargez l'installateur Python à partir du site officiel de Python (adapté à divers systèmes d'exploitation). Pour les utilisateurs de Windows, assurez-vous de vérifier l'option "Ajouter Python.exe au chemin" pendant l'installation.

Installez Anaconda ou Miniconda (adapté à divers systèmes d'exploitation). Conda est un système de gestion de package open-source et d'environnement. L'installation de Conda installe également Python et certains modules couramment utilisés.
Utilisez Homebrew pour installer Python (adapté aux systèmes d'exploitation MacOS et Linux). Homebrew est un système de gestion des packages open source. Si Homebrew est déjà installé sur votre système, vous pouvez utiliser la commande suivante pour installer Python:
brew install python-tkIdle (développement intégré de développement et d'apprentissage) est l'outil de programmation intégré pour Python. Il comprend un interprète interactif et un éditeur de code. Idle a uniquement des fonctionnalités nues, il est donc recommandé d'utiliser un éditeur de code plus puissant comme le code vs.

VS Code (Code Visual Studio)

Un interprète interactif Python, autrement connu sous le nom de shell, est une interface de ligne de commande très utile où vous pouvez entrer n'importe quelle expression Python, et les résultats seront affichés sur l'écran instantanément. L'interprète est idéal pour expérimenter avec de petits extraits de code, comme tester l'utilisation de types ou de fonctions de données intégrés. Il est recommandé que lors de la programmation, vous saisissez non seulement le code dans l'éditeur de code, mais aussi un interprète interactif ouvert en même temps. Cela vous permet d'expérimenter et de vérifier les résultats immédiatement dans l'interprète lorsque le résultat d'une expression est incertain.
Vous pouvez accéder à l'interpréteur interactif Python de la manière suivante:
Pour les utilisateurs de macOS ou Linux, vous pouvez entrer python dans le terminal pour accéder à l'interpréteur interactif. Si le système ne reconnaît pas python , vous pouvez essayer python3 .

Les utilisateurs de Windows peuvent accéder à l'interpréteur interactif en cliquant sur "Python" dans le menu ou en entrant python dans la fenêtre de l'invite de commande (CMD.EXE). Si le système ne reconnaît pas python , vous pouvez essayer python3 ou py .
L'outil de programmation intégré inactif dans Python ouvre directement l'interpréteur interactif lors du lancement.

Vous pouvez également accéder à l'interpréteur interactif via le terminal intégré de VS Code ou la fenêtre interactive.
Des modules ou des packages comme Turtle et Tkinter font partie de la bibliothèque standard Python et sont préinstallés avec Python, donc aucune installation supplémentaire n'est requise.
Matplotlib est une bibliothèque de visualisation des données Python populaire et peut être installée à l'aide des méthodes suivantes:
Installez à l'aide du module pip de Python. Si le système ne reconnaît pas python , vous pouvez remplacer python par python3 ou py (pour les utilisateurs de Windows) dans les commandes ci-dessous:
python -m pip install -U matplotlib Si Conda est installé, vous pouvez utiliser la commande conda pour l'installation:
conda install matplotlibPygame est une bibliothèque de développement de jeux Python populaire. Le programme G512 "Coordonate Game" utilise le module Sound de Pygame. Vous pouvez l'installer d'une manière similaire à Matplotlib:
Installez à l'aide du module pip de Python:
python -m pip install -U pygame Si Conda est installé, vous pouvez utiliser la commande conda pour l'installation:
conda install pygame⏫ Retour en haut