
Site do projeto: https://feli10.github.io/math-coding/
Em 2022, meus pais me confiaram para ajudar meu irmão mais novo a aprender matemática no ensino fundamental. Na época, ele tinha seis anos e eu era calouro no ensino médio. Para abordar esse projeto, formulei um plano - depois que ele concluiu cada unidade em seu livro de matemática, eu projetaria e atribuia 1-2 exercícios de codificação, escritos em Python, que se relacionam intimamente ao conteúdo da unidade. Usando essa abordagem, combinando matemática e codificação, conseguimos concluir uma média de um semestre de cursos a cada dois meses. Em cerca de um ano, terminamos o currículo de matemática da escola primária chinesa das séries três a cinco.
A biblioteca do projeto contém 60 programas Python que escrevemos durante o ano, incluindo 22 com interfaces gráficas do usuário e 38 com interfaces de linha de comando. Esses programas abrangem todas as 49 unidades dos livros didáticos de matemática chinesa da terceira e quinta série da imprensa educacional do povo. O arquivo math_coding_handbook.pdf contém os principais tópicos matemáticos para cada unidade e descrições do (s) programa (s) correspondente (s). Também incluímos documentação e comentários detalhados em todos os programas.
Graphical User Interface | Command Line Interface |
|---|---|
![]() | ![]() |
Todos os programas e o Manual de Aprendizagem têm versões separadas em inglês e chinês. O diretório _en contém a versão em inglês, com todos os monitores gráficos e comentários do programa em inglês. O diretório _cn contém a versão chinesa, com todos os monitores gráficos e comentários do programa em chinês.

Baixe Math_Coding_HandBook.pdf (versão em inglês)
Baixe Math_Coding_HandBook.pdf (versão chinesa)
Através deste projeto, meu irmão e eu provamos na prática que o aprendizado da matemática do ensino fundamental com codificação permite que os alunos estudem de maneira eficiente e eficaz, enquanto simultaneamente se tornam proficientes em uma linguagem de programação.
Para aprender efetivamente a matemática do ensino fundamental com a codificação deste projeto, é necessário o seguinte:
Existem duas maneiras de usar este projeto:
Em 2022, quando meu irmão mais novo, Henry, tinha seis anos, meus pais me pediram para cuidar temporariamente de sua matemática e educação inglesa. Na época, eu era dez anos mais velho que ele e no meu primeiro ano do ensino médio. O objetivo inicial que concordamos foi que, antes de eu ir para a faculdade, eu o ajudaria a concluir a matemática do ensino fundamental e alcançar um nível de proficiência em inglês, onde ele poderia continuar a melhorar independentemente. Como eu era o melhor da família em inglês, não havia muitas incertezas sobre isso, mas como eu iria ensinar -lhe matemática?
Concluí a matemática do ensino fundamental quando tinha nove anos. Olhando para trás, lembro -me de ler muitos livros didáticos, fazer muitos problemas de prática e fazer alguns testes simulados. Depois de alguma consideração, percebi que Henry, que tinha apenas seis anos, precisava de uma abordagem diferente. Com base na minha experiência de aprendizado, quando alguém constantemente luta com um tipo específico de problema de matemática, geralmente é porque eles não têm uma compreensão profunda dos conceitos subjacentes. O objetivo de fazer problemas de prática deve ser identificar e abordar essas fraquezas. No entanto, se alguém praticar problemas sem pensar, os mesmos erros aparecerão repetidamente. É por isso que fazer um mar de problemas de prática geralmente não é uma maneira eficiente de aprender novos tópicos de matemática. Portanto, pretendia encontrar uma abordagem que permitisse a Henry entender completamente quaisquer conceitos e habilidades de matemática que ele precisa aprender antes de mergulhar em uma extensa solução de problemas.
A inspiração principal para combinar matemática e codificação veio de fazer cursos de matemática de alto nível como parte de um projeto de pesquisa de aprendizado de máquina. Ao fazer os cursos, descobri que o uso de ferramentas de programação para ajudar a aprender matemática no nível universitário era bastante comum e altamente eficaz. Ao aprender cálculo, álgebra linear e estatística, a programação foi usada para realizar experimentos matemáticos e resolver problemas práticos. Juntamente com a visualização dos resultados, isso ajudou bastante minha compreensão dos conceitos e teoremas matemáticos abstratos. Mais tarde, também encontrei alguns recursos para aprender matemática do ensino médio com a ajuda da programação. No entanto, nunca encontrei nada semelhante para a matemática do ensino fundamental.
Então, depois de discutir minha ideia com Henry, o projeto "Learn School Math With Coding" nasceu.
Além do projeto de um ano com Henry, organizamos vários eventos de "fim de semana de programação", nos quais liderei grupos de 5 a 10 crianças a aprender matemática com programação. Como esses eventos foram bastante bem -sucedidos, acredito que esse projeto pode beneficiar mais crianças - permitindo que elas aprendam matemática com eficiência com melhores resultados de aprendizado, equipando -os com habilidades de programação.
Para as crianças que seguem o currículo da escola, esperamos que este projeto possa ajudá -las a aprimorar suas habilidades de matemática e programação. Também esperamos que este projeto permita que aqueles que desejam acelerar seu aprendizado de matemática, como Henry, fazê -lo. Um benefício da aprendizagem acelerada é que o conhecimento da matemática fundamental pode facilitar o desenvolvimento de interesse precoce. Por exemplo, as habilidades matemáticas de Henry ajudaram bastante seu aprendizado musical, permitindo que seu interesse e talento musical se desenvolvessem cedo.
Espero que este projeto possa fornecer às pessoas uma nova abordagem para aprender matemática e trazer mais oportunidades para aqueles que optam por usá -lo. Se você tiver alguma dúvida ou sugestão sobre o projeto, entre em contato comigo neste e-mail: [email protected].
A organização dos diretórios é idêntica aos livros de matemática chinesa da escola primária da imprensa educacional do povo. Por exemplo, para o nome do diretório g311_time , o "G311" no início identifica que o diretório corresponde à unidade 1 do semestre 1 do livro de grau 3.
O texto após o identificador indica o principal conteúdo de aprendizado da unidade. A unidade G311 é principalmente sobre o tempo de contar, portanto, o nome do diretório desta unidade é g311_time .
Cada diretório contém 1-2 arquivos de programas Python. Os nomes dos programas são indicativos de seu conteúdo. Por exemplo, g311_time contém dois programas: clock.py , que exibe um relógio analógico em funcionamento e digital_clock.py , que exibe um relógio digital em funcionamento.
O arquivo math_coding_handbook.pdf no diretório _en contém páginas de descrição para todos os 60 programas em 49 unidades das séries 3 a 5. Cada descrição do programa contém o seguinte:

Todos os programas contêm um documento detalhado no início e comentários úteis.

O Manual de Aprendizagem e todos os programas têm versões em inglês e chinês separadas. Os diretórios _en e _cn são organizados da mesma maneira, mas com conteúdo em inglês e chinês, respectivamente.
Alguns programas na biblioteca de código contêm referências um ao outro. Portanto, recomendamos o download de toda a biblioteca de códigos antes do uso.
Algumas notas sobre o conteúdo matemático do programa:
Todas as unidades matemáticas estão no SI (sistema internacional).
A exibição da aritmética da forma vertical em determinados programas é baseada nas formas verticais mostradas nos livros didáticos chineses.

| ID da unidade | Nome da unidade | Programa (s) |
|---|---|---|
| G311 | TEMPO DA TEMPO - HORAS, APATOS E SEGUNDOS | 1. Relógio analógico 2. Relógio digital |
| G312 | Adição e subtração de 2 dígitos | Pratique adição e subtração de 2 dígitos |
| G313 | Medições | Conversão de unidade de prática |
| G314 | Adição vertical e subtração | 1. Adição vertical 2. Subtração vertical |
| G315 | Problemas de palavras de multiplicação | Pratique problemas de palavras de multiplicação |
| G316 | Multiplicação curta | Multiplicação curta |
| G317 | Retângulos e quadrados | Crie classe retângulo |
| G318 | Compreensão de frações | Pratique comparando frações |
| G319 | Conjuntos | Definir operações |
| G321 | Orientações | Pratique a identificação de orientações |
| G322 | Divisão curta | Divisão curta |
| G323 | Mesas | Criando e exibindo tabelas |
| G324 | Multiplicação longa de 2 dígitos | Multiplicação longa 1 |
| G325 | Área | Melhore a classe de retângulo - calcule a área e desenhe retângulos |
| G326 | Anos, meses e dias | Exibir calendário |
| G327 | Entendendo decimais | 1. Prática decimal 1 2. Visualização de decimais |
| G328 | Combinações | Três problemas de contagem comuns |
| G411 | Trabalhando com grandes números | Leia qualquer número natural |
| G412 | Grandes unidades de área | Conversão de unidade de área de prática |
| G413 | Ângulos de medição | Desenhe o mostrador do relógio |
| G414 | Multiplicação longa de 3 dígitos | Multiplicação longa 2 |
| G415 | Paralelogramas e trapézios | Contando trapezoides |
| G416 | Divisão longa | Divisão longa |
| G417 | Gráficos de barras | 1. Criando gráficos de barras usando o matplotlib 2. Criando subclasse da classe de tabela para desenhar gráficos de barras |
| G418 | Otimização | Counting Game |
| G421 | Ordem de Operações | Avalie expressões aritméticas |
| G422 | Objetos de observação | Três visualizações de cubos |
| G423 | Leis básicas de operação | Resolva 24 |
| G424 | Significado e propriedades de decimais | Prática decimal 2 |
| G425 | Triângulos | 1. Desenhe triângulos isósceles 2. Desenhe polígonos regulares |
| G426 | Adição e subtração de decimais | Adição e subtração de decimais em forma vertical |
| G427 | Simetria reflexiva | Gerar formas simétricas reflexivas |
| G428 | Valor médio e gráficos de barras agrupadas | Valor médio e gráficos de barras agrupadas |
| G429 | Problema de frango e coelho | Problema de frango e coelho |
| G511 | Multiplicação decimal | Longa multiplicação de decimais |
| G512 | Posição | 1. Coordenadas de entrada com base em posições 2. Clique em posições com base nas coordenadas |
| G513 | Divisão Decimal | 1. Divisão de Decimais de Longo 2. Prática convertendo frações comuns em decimais |
| G514 | Probabilidade | 1. Seleção aleatória com pesos 2. Soma de dois rolos de dados |
| G515 | Equações simples | Resolvendo problemas de frango e coelho usando equações |
| G516 | Área de polígonos | Classes de polígono com propriedades de área |
| G517 | Problema de plantio de árvores | Problema de plantio de árvores |
| G521 | Objetos de observação 2 | Três visualizações dos cubos v2 |
| G522 | Fatores e múltiplos | 1. Obtenha números primos 2. Conjectura de Goldbach |
| G523 | Cubóides e cubos | 1. Classe cubóide com propriedade da unidade 2. Conversão de unidade de volume de prática |
| G524 | Significado e propriedades de frações | 1. Maior divisor comum e múltiplo menos comum 2. Converta a fração decimal e mais simples |
| G525 | Rotação | Rotação |
| G526 | Adição e subtração de frações | Adição e subtração de frações |
| G527 | Gráficos de linha | Melhorar a classe de dados para desenhar gráficos de várias linhas |
| G528 | Identifique o outlier | Identifique o outlier |
O objetivo dos programas deste projeto é traduzir métodos de solução de problemas humanos em linguagem de máquina (isto é, programas Python) da maneira mais clara e explicitamente possível. Isso se deve principalmente às seguintes considerações:
Portanto, priorizamos os resultados acima da eficiência para a maioria de nossos programas. No entanto, ao encontrar cenários em que o tempo de execução é bastante afetado pelos dados de entrada, os alunos serão orientados a tentar diferentes métodos de programação de eficiências variadas.
Faça o download do instalador do Python no site oficial da Python (adequado para vários sistemas operacionais). Para os usuários do Windows, verifique a opção "Adicionar python.exe ao caminho" durante a instalação.

Instale o Anaconda ou Miniconda (adequado para vários sistemas operacionais). O CONDA é um pacote de código aberto e um sistema de gerenciamento de meio ambiente. A instalação do CONA também instala o Python e alguns módulos comumente usados.
Use o Homebrew para instalar o Python (adequado para sistemas operacionais MacOS e Linux). O Homebrew é um sistema de gerenciamento de pacotes de código aberto. Se o Homebrew já estiver instalado no seu sistema, você poderá usar o seguinte comando para instalar o Python:
brew install python-tkOcle (ambiente integrado de desenvolvimento e aprendizado) é a ferramenta de programação interna para o Python. Inclui um intérprete interativo e editor de código. O IDLE possui apenas funcionalidades nuas, por isso é recomendável usar um editor de código mais poderoso como o código VS.

Vs código (código do Visual Studio)

Um intérprete interativo do Python, também conhecido como shell, é uma interface de linha de comando muito útil, na qual você pode inserir qualquer expressão do Python, e os resultados serão exibidos na tela instantaneamente. O intérprete é ideal para experimentar pequenos trechos de código, como testar o uso de tipos ou funções de dados internos. Recomenda -se que, ao programar, você não apenas o código de entrada no editor de código, mas também possui um intérprete interativo aberto ao mesmo tempo. Isso permite experimentar e verificar os resultados imediatamente no intérprete quando o resultado de uma expressão é incerto.
Você pode acessar o intérprete interativo do Python das seguintes maneiras:
Para usuários de MacOS ou Linux, você pode entrar python no terminal para acessar o intérprete interativo. Se o sistema não reconhecer python , você poderá experimentar python3 .

Os usuários do Windows podem acessar o intérprete interativo clicando em "python" no menu ou inserindo python na janela Prompt de comando (cmd.exe). Se o sistema não reconhecer python , você poderá experimentar python3 ou py .
A ferramenta de programação embutida ociosa no Python abre diretamente o intérprete interativo quando lançado.

Você também pode acessar o intérprete interativo através do terminal interno ou da janela interativa do VS Code.
Módulos ou pacotes como Turtle e Tknter fazem parte da Biblioteca Padrão Python e vêm pré-instalados com Python, portanto, nenhuma instalação adicional é necessária.
O Matplotlib é uma biblioteca popular de visualização de dados do Python e pode ser instalado usando os seguintes métodos:
Instale usando o módulo pip do Python. Se o sistema não reconhecer python , você poderá substituir python por python3 ou py (para usuários do Windows) nos comandos abaixo:
python -m pip install -U matplotlib Se o CONDA estiver instalado, você poderá usar o comando conda para instalação:
conda install matplotlibO Pygame é uma popular biblioteca de desenvolvimento de jogos Python. O programa G512 "Coordenine Game" usa o módulo de som do Pygame. Você pode instalá -lo de maneira semelhante ao Matplotlib:
Instale usando o módulo pip do Python:
python -m pip install -U pygame Se o CONDA estiver instalado, você poderá usar o comando conda para instalação:
conda install pygame⏫ de volta ao topo