
프로젝트 웹 사이트 : https://feli10.github.io/math-coding/
2022 년에 부모님은 남동생이 초등학교 수학을 배우도록 돕도록 맡겼습니다. 당시 그는 6 살이었고 고등학교 신입생이었습니다. 이 프로젝트를 다루기 위해 계획을 수립했습니다. 그가 수학 교과서에서 각 부대를 완성한 후, 나는 유닛의 내용과 밀접하게 관련된 Python으로 작성된 1-2 코딩 연습을 설계하고 할당했습니다. 수학과 코딩을 결합한이 접근법을 사용하여 2 개월마다 평균 1 학기의 상품의 과정을 완료했습니다. 약 1 년 만에, 우리는 중국 초등학교 수학 커리큘럼을 3-5 학년에서 마쳤습니다.
프로젝트 라이브러리에는 그래픽 사용자 인터페이스 22 개와 명령 줄 인터페이스가있는 38 개를 포함하여 연중 60 개의 파이썬 프로그램이 포함되어 있습니다. 이 프로그램은 People 's Education Press의 3 ~ 5 학년 중국 수학 교과서의 49 개 단위를 모두 포함합니다. math_coding_handbook.pdf 파일에는 각 단위의 주요 수학적 주제와 해당 프로그램의 설명이 포함되어 있습니다. 우리는 또한 모든 프로그램 내에 자세한 문서와 의견을 포함 시켰습니다.
Graphical User Interface | Command Line Interface |
|---|---|
![]() | ![]() |
모든 프로그램과 학습 핸드북에는 영어와 중국어로 된 별도의 버전이 있습니다. _en 디렉토리에는 영어 버전이 포함되어 있으며 모든 그래픽 디스플레이 및 프로그램 주석이 영어로 제공됩니다. _cn 디렉토리에는 중국어 버전이 포함되어 있으며 모든 그래픽 디스플레이 및 프로그램 주석이 중국어로 제공됩니다.

다운로드 math_coding_handbook.pdf (영어 버전)
다운로드 math_coding_handbook.pdf (중국어 버전)
이 프로젝트를 통해 동생과 저는 코딩으로 초등학교 수학 학습을 통해 학습자가 수학을 효율적이고 효과적으로 공부하면서 동시에 프로그래밍 언어에 능숙해질 수 있음을 입증했습니다.
이 프로젝트를 통해 코딩으로 초등학교 수학을 효과적으로 학습하려면 다음이 필요합니다.
이 프로젝트를 사용하는 두 가지 방법이 있습니다.
2022 년 남동생 Henry가 6 살이되었을 때 부모님은 수학과 영어 교육을 일시적으로 담당하도록 요청했습니다. 당시 나는 그보다 10 살이 많았고 고등학교 첫해에. 우리가 동의 한 초기 목표는 대학에 가기 전에 초등학교 수학을 마치고 독립적으로 계속 개선 할 수있는 영어 능력에 도달하는 데 도움이된다는 것입니다. 영어로 가족이 최고 였기 때문에 그것에 대한 불확실성은 많지 않았지만 어떻게 수학을 가르치는가?
나는 9 살 때 초등학교 수학을 마쳤다. 되돌아 보면, 많은 교과서를 읽고, 많은 연습 문제를 겪고, 몇 가지 모의 테스트를 수행하는 것을 기억합니다. 약간의 고려 후, 나는 6 살 밖에되지 않은 Henry가 다른 접근법이 필요하다는 것을 깨달았습니다. 내 학습 경험을 바탕으로 누군가가 특정 유형의 수학 문제로 끊임없이 어려움을 겪을 때, 일반적으로 기본 개념에 대한 깊은 이해가 부족하기 때문입니다. 연습 문제를 수행하는 목적은 이러한 약점을 식별하고 해결하는 것입니다. 그러나 문제를 무의식적으로 연습하면 같은 실수가 반복해서 나타납니다. 그렇기 때문에 연습 해상 문제를 수행하는 것이 종종 새로운 수학 주제를 배우는 효율적인 방법이 아닙니다. 따라서 저는 Henry가 광범위한 문제 해결에 뛰어 들기 전에 배우는 데 필요한 수학 개념과 기술을 철저히 이해할 수있는 접근법을 찾는 것을 목표로했습니다.
수학과 코딩 결합에 대한 주요 영감은 기계 학습 연구 프로젝트의 일환으로 높은 수준의 수학 과정을 수강하는 데있어 왔습니다. 과정을 수강하는 동안 대학 수준에서 수학 학습을 지원하기 위해 프로그래밍 도구를 사용하는 것이 매우 일반적이며 매우 효과적이라는 것을 알았습니다. 미적분학, 선형 대수 및 통계를 학습 할 때 프로그래밍을 사용하여 수학 실험을 수행하고 실제 문제를 해결했습니다. 결과의 시각화와 함께 이것은 추상적 수학적 개념과 이론에 대한 나의 이해를 크게 높였다. 나중에, 나는 또한 프로그래밍의 도움으로 중학교 수학 학습을위한 몇 가지 자료를 발견했습니다. 그러나 나는 초등학교 수학과 비슷한 것을 찾지 못했습니다.
따라서 헨리와의 아이디어를 논의한 후 "코딩으로 초등학교 수학 학습"프로젝트가 탄생했습니다.
Henry와의 1 년 동안의 프로젝트 외에도, 우리는 몇 가지“프로그래밍 주말”행사를 조직했으며, 5-10 명의 어린이 그룹이 프로그래밍으로 수학을 배우도록 이끌었습니다. 이러한 행사는 상당히 성공적 이었기 때문에이 프로젝트는 더 많은 어린이들에게 도움이 될 수 있다고 생각합니다. 프로그래밍 기술을 장비하면서 학습 결과를 향상시키면서 수학을 효율적으로 배울 수 있습니다.
학교 커리큘럼을 따르는 어린이들 에게이 프로젝트가 수학 및 프로그래밍 능력을 향상시키는 데 도움이되기를 바랍니다. 또한이 프로젝트가 헨리와 같은 수학 학습을 가속화하는 사람들이 그렇게 할 수 있기를 바랍니다. 가속 학습의 한 가지 이점은 기본 수학에 대한 지식이 조기 관심 개발을 촉진 할 수 있다는 것입니다. 예를 들어, Henry의 수학 능력은 그의 음악 학습을 크게 지원하여 음악적 관심과 재능이 일찍 발전 할 수있게했습니다.
이 프로젝트가 사람들에게 수학 학습에 대한 새로운 접근 방식을 제공하고 그것을 사용하기로 선택한 사람들에게 더 많은 기회를 제공 할 수 있기를 바랍니다. 프로젝트에 대한 질문이나 제안이 있으시면이 이메일로 저에게 연락하십시오 : [email protected].
디렉토리의 조직은 사람들의 교육 언론의 초등학교 중국 수학 교과서와 동일합니다. 예를 들어, 디렉토리 이름 g311_time 의 경우, 처음의 "G311"은 디렉토리가 3 학년 교과서의 1 학기 1의 단위 1에 해당 함을 식별합니다.
식별자 다음 텍스트는 장치의 주요 학습 내용을 나타냅니다. G311 단위는 주로 시간을 말하는 것에 관한 것이므로이 장치의 디렉토리 이름은 g311_time 입니다.
각 디렉토리에는 1-2 파이썬 프로그램 파일이 포함되어 있습니다. 프로그램의 이름은 해당 내용을 나타냅니다. 예를 들어, g311_time 기능 아날로그 시계를 표시하는 clock.py 와 기능하는 디지털 시계를 표시하는 digital_clock.py 의 두 가지 프로그램이 포함되어 있습니다.
_en 디렉토리의 math_coding_handbook.pdf 파일에는 3 학년에서 5 학년에서 49 개 단위의 60 개 프로그램에 대한 설명 페이지가 포함되어 있습니다. 각 프로그램 설명에는 다음이 포함됩니다.

모든 프로그램에는 처음에는 상세한 문서화와 전체적으로 유용한 의견이 포함되어 있습니다.

학습 핸드북과 모든 프로그램에는 별도의 영어 및 중국어 버전이 있습니다. _en 및 _cn 디렉토리는 각각 같은 방식으로 구성되지만 각각 영어와 중국어로 구성됩니다.
코드 라이브러리의 일부 프로그램에는 서로 참조가 포함되어 있습니다. 따라서 사용하기 전에 전체 코드 라이브러리를 다운로드하는 것이 좋습니다.
프로그램의 수학적 내용에 대한 몇 가지 메모 :
모든 수학 단위는 SI (국제 시스템)에 있습니다.
특정 프로그램에서 수직 양식 산술의 표시는 중국 교과서에 표시된 수직 양식을 기반으로합니다.

| 단위 ID | 단위 이름 | 프로그램 |
|---|---|---|
| G311 | 시간 - 시간, 몇 분, 초 | 1. 아날로그 시계 2. 디지털 시계 |
| G312 | 2 자리 첨가 및 뺄셈 | 2 자리 추가 및 뺄셈을 연습하십시오 |
| G313 | 측정 | 실습 단위 변환 |
| G314 | 수직 첨가 및 빼기 | 1. 수직 첨가 2. 수직 뺄셈 |
| G315 | 곱셈 단어 문제 | 곱셈 단어 문제를 연습하십시오 |
| G316 | 짧은 곱셈 | 짧은 곱셈 |
| G317 | 사각형과 사각형 | 사각형 클래스를 만듭니다 |
| G318 | 분수 이해 | 분수 비교 연습 |
| G319 | 세트 | 작업을 설정합니다 |
| G321 | 오리엔테이션 | 오리엔테이션 식별 연습 |
| G322 | 짧은 부서 | 짧은 부서 |
| G323 | 테이블 | 테이블 작성 및 표시 |
| G324 | 2 자리 긴 곱셈 | 긴 곱셈 1 |
| G325 | 영역 | 직사각형 클래스 향상 - 영역을 계산하고 사각형을 그립니다 |
| G326 | 몇 년, 몇 달, 날 | 캘린더를 표시합니다 |
| G327 | 소수론 이해 | 1. 소수 실습 1 2. 소수의 시각화 |
| G328 | 조합 | 세 가지 일반적인 계산 문제 |
| G411 | 많은 숫자로 작업합니다 | 자연 번호를 읽으십시오 |
| G412 | 큰 지역 단위 | 연습 영역 단위 변환 |
| G413 | 측정 각도 | 시계 다이얼을 그리십시오 |
| G414 | 3 자리 긴 곱셈 | 긴 곱셈 2 |
| G415 | 평행 사변형 및 사다리꼴 | 사다리꼴 계산 |
| G416 | 긴 부서 | 긴 부서 |
| G417 | 막대 차트 | 1. matplotlib을 사용하여 막대 차트 생성 2. 막대 차트를 그리는 테이블 클래스의 서브 클래스 만들기 |
| G418 | 최적화 | 계산 게임 |
| G421 | 운영 순서 | 산술 표현을 평가합니다 |
| G422 | 대상 관찰 | 큐브의 세 가지 전망 |
| G423 | 기본 운영 법칙 | 24를 해결하십시오 |
| G424 | 소수의 의미와 속성 | 10 진수 연습 2 |
| G425 | 삼각형 | 1. 이등변 삼각형을 그립니다 2. 일반 다각형을 그립니다 |
| G426 | 소수의 추가 및 뺄셈 | 수직 형태의 소수점의 첨가 및 뺄셈 |
| G427 | 반사 대칭 | 반사 대칭 모양을 생성합니다 |
| G428 | 평균 값 및 그룹화 막대 차트 | 평균 값 및 그룹화 막대 차트 |
| G429 | 닭고기와 토끼 문제 | 닭고기와 토끼 문제 |
| G511 | 소수점 곱셈 | 소수의 긴 곱셈 |
| G512 | 위치 | 1. 위치에 따라 입력 좌표 2. 좌표를 기반으로 위치를 클릭하십시오 |
| G513 | 소수점 분할 | 1. 소수의 긴 분열 2. 공통 분수를 소수로 변환하는 연습 |
| G514 | 개연성 | 1. 가중치로 임의의 선택 2. 두 개의 주사위 롤의 합 |
| G515 | 간단한 방정식 | 방정식을 사용하여 닭고기 및 토끼 문제 해결 |
| G516 | 다각형의 영역 | 면적 특성을 가진 다각형 클래스 |
| G517 | 나무 심기 문제 | 나무 심기 문제 |
| G521 | 개체 관찰 2 | 큐브 v2의 세 가지 전망 |
| G522 | 요인과 배수 | 1. 소수를 얻습니다 2. Goldbach 추측 |
| G523 | 입방체와 큐브 | 1. 단위 속성을 가진 입방체 클래스 2. 실습 볼륨 장치 변환 |
| G524 | 분수의 의미와 속성 | 1. 가장 큰 일반적인 제수 및 가장 일반적인 배수 2. 소수점을 가장 단순한 분수로 변환하십시오 |
| G525 | 회전 | 회전 |
| G526 | 분수의 추가 및 뺄셈 | 분수의 추가 및 뺄셈 |
| G527 | 라인 차트 | 데이터 클래스를 개선하여 멀티 라인 차트를 그리십시오 |
| G528 | 특이 치를 식별하십시오 | 특이 치를 식별하십시오 |
이 프로젝트의 프로그램의 목표는 인간 문제 해결 방법을 가능한 한 명확하고 명시 적으로 기계 언어 (즉, 파이썬 프로그램)로 번역하는 것입니다. 이것은 주로 다음과 같은 고려 사항에 기인합니다.
따라서 대부분의 프로그램에 대한 효율성보다 높은 결과를 우선시했습니다. 그러나 런타임이 입력 데이터에 의해 크게 영향을받는 시나리오를 만나면 학습자는 다양한 프로그래밍 방법을 시도하도록 안내됩니다.
Python의 공식 웹 사이트에서 Python Installer를 다운로드하십시오 (다양한 운영 체제에 적합). Windows 사용자의 경우 설치 중에 "Python.exe 추가"옵션을 확인하십시오.

Anaconda 또는 Miniconda (다양한 운영 체제에 적합)를 설치하십시오. Conda는 오픈 소스 패키지 및 환경 관리 시스템입니다. Conda를 설치하면 Python 및 일부 일반적으로 사용되는 모듈도 설치됩니다.
Homebrew를 사용하여 Python을 설치하십시오 (MacOS 및 Linux 운영 체제에 적합). Homebrew는 오픈 소스 패키지 관리 시스템입니다. Homebrew가 이미 시스템에 설치된 경우 다음 명령을 사용하여 Python을 설치할 수 있습니다.
brew install python-tk유휴 (통합 개발 및 학습 환경)는 파이썬을위한 내장 프로그래밍 도구입니다. 대화식 통역사 및 코드 편집기가 포함되어 있습니다. Idle에는 베어 본 기능 만 있으므로 VS Code와 같은보다 강력한 코드 편집기를 사용하는 것이 좋습니다.

대 코드 (Visual Studio Code)

쉘로 알려진 파이썬 대화식 통역사는 파이썬 표현식을 입력 할 수있는 매우 유용한 명령 줄 인터페이스이며 결과가 화면에 즉시 표시됩니다. 통역사는 내장 데이터 유형 또는 기능의 사용을 테스트하는 것과 같은 작은 코드 스 니펫을 실험하는 데 이상적입니다. 프로그래밍 할 때 코드 편집기에 코드를 입력 할뿐만 아니라 대화식 통역사도 동시에 열어 두는 것이 좋습니다. 이를 통해 표현의 결과가 불확실 할 때 통역사의 결과를 즉시 실험하고 확인할 수 있습니다.
다음과 같은 방법으로 Python Interactive 통역사에 액세스 할 수 있습니다.
MacOS 또는 Linux 사용자의 경우 터미널에 python 입력하여 대화식 통역사에 액세스 할 수 있습니다. 시스템이 python 인식하지 못하면 python3 사용해 볼 수 있습니다.

Windows 사용자는 메뉴에서 "Python"을 클릭하거나 명령 프롬프트 창 (cmd.exe)에서 python 입력하여 대화식 통역사에 액세스 할 수 있습니다. 시스템이 python 인식하지 못하면 python3 또는 py 사용해 볼 수 있습니다.
파이썬의 내장 프로그래밍 도구 유휴는 출시시 대화식 통역사를 직접 엽니 다.

VS Code의 내장 터미널 또는 대화식 창을 통해 대화식 통역사에 액세스 할 수도 있습니다.
Turtle 및 Tkinter와 같은 모듈 또는 패키지는 Python 표준 라이브러리의 일부이며 Python이 사전 설치되므로 추가 설치가 필요하지 않습니다.
Matplotlib는 인기있는 Python Data Visualization 라이브러리이며 다음 방법을 사용하여 설치할 수 있습니다.
Python의 pip 모듈을 사용하여 설치하십시오. 시스템이 python 인식하지 못하면 아래 명령에서 python python3 또는 py (Windows 사용자의 경우)로 바꿀 수 있습니다.
python -m pip install -U matplotlib Conda가 설치된 경우 conda 명령을 사용하여 설치할 수 있습니다.
conda install matplotlibPygame은 인기있는 Python Game Development Library입니다. G512 프로그램 "Coordinate Game"은 Pygame의 사운드 모듈을 사용합니다. matplotlib과 비슷한 방식으로 설치할 수 있습니다.
Python의 pip 모듈을 사용하여 설치 :
python -m pip install -U pygame Conda가 설치된 경우 conda 명령을 사용하여 설치할 수 있습니다.
conda install pygame⏫ 위로 돌아갑니다