머리말: 왜 수학 공부에 파이썬인가?
수학은 논리적 사고와 문제 해결 능력의 기초입니다. 하지만 때로는 복잡한 계산, 반복적인 과정, 추상적인 개념 시각화의 어려움 때문에 수학에 흥미를 잃기도 합니다. 파이썬 프로그래밍은 이러한 어려움을 극복하고 수학을 더 깊고 재미있게 탐구할 수 있는 강력한 도구입니다.
이 책은 고등학교 수학 과정을 파이썬이라는 새로운 렌즈를 통해 바라보고, 코드를 이용해 수학 개념을 이해하고 문제를 해결하는 방법을 안내합니다. 파이썬을 통해 다음을 얻을 수 있습니다.
- 계산 자동화: 복잡하고 반복적인 계산을 컴퓨터에 맡겨 시간과 노력을 절약하고 실수 가능성을 줄입니다.
- 개념 시각화: 함수 그래프, 기하학적 도형, 데이터 분포 등을 코드로 직접 그려보며 추상적인 개념을 직관적으로 이해합니다.
- 탐구적 학습: 다양한 조건과 변수를 바꿔가며 실험하고 결과를 즉시 확인함으로써 수학적 원리를 능동적으로 탐구합니다.
- 문제 해결 능력 향상: 수학 문제를 해결하기 위한 논리적 절차를 코드로 구현하는 과정에서 문제 분해 및 알고리즘적 사고 능력이 향상됩니다.
- 데이터 정리 및 기초 분석: 표(Table) 형태의 데이터를 다루고 기본적인 통계적 특성을 파악하는 방법을 배웁니다.
- 미래 준비: 프로그래밍 능력은 현대 사회의 필수 역량이 되었으며, 수학과 코딩의 융합은 대학 진학 및 미래 진로에도 큰 도움이 될 것입니다.
이 책은 프로그래밍 경험이 없는 학생들도 쉽게 따라올 수 있도록 파이썬 기초부터 차근차근 설명합니다. 특히, 파이썬의 기본 문법은 물론, 수치 계산을 위한 NumPy, 표 형식의 데이터를 다루는 Pandas, 그래프를 위한 Matplotlib, 그리고 기호 계산을 위한 SymPy와 같은 필수 라이브러리들을 고등학교 수학 문제 해결 과정에 자연스럽게 녹여내어 함께 배울 수 있도록 구성했습니다. 코드를 통해 수학의 새로운 즐거움을 발견하고 문제 해결의 자신감을 키워나가시길 바랍니다.
각 Chapter의 끝에 있는 [쫌만더]코너는 현재 진도에 상관없이 복습을 하는 사람을 대상으로 도움이 되었으면 하는 내용으로 채워넣어봅니다.
목차
머리말: 왜 수학 공부에 파이썬인가?
Part 1: 수학 공부를 위한 파이썬 첫걸음
-
- 파이썬이란 무엇인가? 왜 수학에 유용한가?
- 파이썬 설치 및 개발 환경 설정 (쉬운 옵션: Replit, Google Colab 소개)
- 첫 파이썬 코드:
print()
함수와 간단한 계산 (덧셈, 뺄셈, 곱셈, 나눗셈) - 주석의 중요성: 코드 설명 달기
- 수학 예제: 간단한 사칙연산, 교환법칙/결합법칙 확인
Chapter 2: 컴퓨터에게 기억시키기 (변수와 자료형)
- 변수: 값에 이름 붙이기 (예:
a = 3
,b = 5
,sum = a + b
) - 기본 자료형: 숫자 (정수
int
, 실수float
), 문자열str
(간단 소개) - 변수를 이용한 계산 및 결과 출력
- 수학 예제: 원의 넓이 계산 (반지름 저장), 평균 구하기 (점수 저장)
- 변수: 값에 이름 붙이기 (예:
Chapter 3: 조건을 판단하고 실행하기 (조건문)
- 참과 거짓: 불리언 (
True
,False
) - 비교 연산자:
==
,!=
,<
,>
,<=
,>=
if
,elif
,else
: 조건에 따라 다른 코드 실행하기- 논리 연산자:
and
,or
,not
- 수학 예제: 양수/음수/0 판별, 짝수/홀수 판별, 두 수의 대소 비교, 범위 확인 (예: x가 0보다 크고 10보다 작은가?)
- 참과 거짓: 불리언 (
-
for
반복문: 정해진 횟수만큼 반복하기 (range()
함수 활용)while
반복문: 특정 조건이 만족될 때까지 반복하기- 반복문을 이용한 계산
- 수학 예제: 1부터 N까지 합 구하기, 팩토리얼 계산, 약수 찾기, 구구단 출력
-
- 리스트: 여러 개의 값을 순서대로 저장 (
[1, 2, 3, 4, 5]
) - 리스트 생성, 인덱싱 (값 접근), 슬라이싱 (부분 추출)
- 리스트 관련 함수:
len()
,append()
,sum()
,min()
,max()
(숫자 리스트 대상) - 수학 예제: 여러 학생의 수학 점수 저장 및 평균/최고/최저점 계산, 좌표 표현
[x, y]
- 리스트: 여러 개의 값을 순서대로 저장 (
-
- 함수: 특정 작업을 수행하는 코드 묶음 (
def
키워드) - 함수 정의 및 호출
- 매개변수 (입력값)와 반환값 (
return
) - 수학 예제: 두 점 사이의 거리 공식 함수, 이차방정식 근의 공식 함수, 소수 판별 함수 만들기
- 함수: 특정 작업을 수행하는 코드 묶음 (
Part 2: 파이썬으로 고등학교 수학 정복하기
-
- 다항식 표현: 계수를 리스트로 저장 (예:
[1, -3, 2]
는 x² - 3x + 2) - 다항식 값 계산 함수 만들기
- 이차방정식 근 구하기 (근의 공식 함수 활용)
- 심화: 간단한 수치 해법 소개 (예: 이분법으로 근의 근삿값 찾기)
- 다항식 표현: 계수를 리스트로 저장 (예:
Chapter 8: 함수와 그래프 그리기 (Matplotlib 소개)
- 수학 함수를 파이썬 함수로 정의하기 (일차함수, 이차함수, 유리/무리 함수, 지수/로그 함수, 삼각함수)
- Matplotlib 라이브러리 기초: 그래프 그리기 (
plot
,xlabel
,ylabel
,title
,show
,grid
,legend
) - 다양한 함수 그래프 직접 그려보기
- 수학 예제: 함수의 평행이동/대칭이동 시각화, 함수의 증가/감소 관찰, 점근선 확인
Chapter 9: 도형의 방정식과 기하
- 점, 직선 표현하기 (좌표, 기울기, 절편 등)
- 두 점 사이 거리, 내분점/외분점 좌표 계산 함수 (Chapter 6 함수 활용)
- 원의 방정식 관련 계산 (중심과 반지름 이용)
- 시각화: Matplotlib로 점, 직선, 원 그려보기 (
scatter
,plot
,Circle
또는 파라메트릭) - 수학 예제: 세 점의 일직선 여부 판단, 두 직선의 교점 (근사적 확인), 점과 직선 사이 거리
Chapter 10: 수열과 규칙 찾기
- 등차수열, 등비수열 생성 및 일반항 계산 함수 만들기
for
반복문을 이용한 수열의 합 (Σ 계산)- 시각화: 수열의 항들을 점으로 찍어 시각화하기 (Matplotlib
scatter
) - 수학 예제: 여러 가지 수열의 합 공식 코드로 확인하기, 간단한 점화식 계산 (피보나치 등)
Chapter 11: 확률과 통계 맛보기 (random, statistics 모듈)
random
모듈: 난수 생성 (random.randint
,random.random
,random.choice
)- 확률 실험 시뮬레이션: 주사위 던지기, 동전 던지기 결과 시뮬레이션 및 확률 계산 (상대도수)
- 기본 통계량 계산: 평균, 중앙값, 최빈값 (간단히 직접 구현 또는
statistics
모듈 소개) - 수학 예제: 몬테카를로 방법으로 원주율 근삿값 구하기, 대수의 법칙 확인
Chapter 12: 미적분 개념의 이해 (수치적 접근)
- 극한값의 이해: 함수에 x값을 목표값에 매우 가깝게 대입하여 극한값 추정
- 미분계수의 이해: 평균변화율
(f(x+h) - f(x)) / h
에서h
를 매우 작게 하여 순간변화율 근삿값 구하기 - 정적분의 이해: 구분구적법 (리만 합) 아이디어를 코드로 구현하여 넓이 근삿값 구하기
- 시각화: 함수의 특정 점에서의 접선 (근사) 그려보기, 구분구적법 시각화
Part 3: 더 강력한 수학 도구 (라이브러리 활용)
Chapter 13: NumPy: 숫자를 다루는 전문가
- NumPy 배열 소개 (리스트와의 차이점: 속도, 메모리, 동일 타입)
- 배열 생성 (
np.array
,np.arange
,np.linspace
,np.zeros
,np.ones
) 및 속성 (shape
,dtype
) - 요소별 연산 (벡터화) 및 유니버설 함수 (
np.sin
,np.sqrt
등) - 인덱싱 및 슬라이싱 (1D, 2D), 불리언 인덱싱
- 수학 예제: 배열 연산을 이용한 빠른 계산, 벡터/행렬 표현 및 기본 연산 (덧셈, 스칼라곱, 내적
np.dot
/@
, 행렬곱np.dot
/@
, 전치.T
)
Chapter 14: Pandas: 표 데이터를 다루는 마법사
- Pandas 소개 (NumPy와의 차이점: 표 데이터, 이종 타입, 레이블)
- Series (1D 레이블 배열) 와 DataFrame (2D 레이블 표) 생성 (딕셔너리 활용)
- 기본 정보 확인 (
head
,tail
,shape
,info
,describe
) - 데이터 선택: 열 선택 (
df['col']
,df[['col1', 'col2']]
), 행 선택 (기본 슬라이싱, 불리언 인덱싱df[condition]
) - 기본 계산 및 새 열 추가 (
.mean()
,.max()
,df['new'] = ...
) - (선택) CSV 파일 읽기 (
pd.read_csv
) 소개 - 수학 예제: 통계 자료 정리/요약 (평균 등), 수열/함숫값 표 관리, 특정 조건 만족 데이터 필터링
Chapter 15: SymPy: 기호로 수학 풀기
- SymPy 소개: 기호 연산이란? (숫자 계산과의 차이, 정확성)
- 기호 변수 정의 (
symbols
) 및 표현식 생성 - 식 조작: 전개 (
expand
), 인수분해 (factor
), 간단히 (simplify
), 대입 (subs
) - 방정식/연립방정식 풀이 (
solve
) - 미분 (
diff
), 적분 (integrate
), 극한 (limit
) 계산 - 수학 예제: 인수분해/전개, 방정식의 정확한 해 구하기, 도함수/부정적분/정적분/극한 계산 결과 확인
Part 4: 도전! 수학 문제 해결 프로젝트
Chapter 16: 통합 연습 문제
- 여러 단원의 개념과 라이브러리(NumPy, Matplotlib, Pandas, SymPy)를 복합적으로 활용하는 문제 풀이
- 예: 함수의 그래프 그리고 극값/넓이 계산 (NumPy, Matplotlib, SymPy), 통계 데이터 분석 및 시각화 (Pandas, Matplotlib) 등
Chapter 17: 미니 프로젝트
- 프로젝트 1: 이차곡선 그리기 및 분석 도구 (Matplotlib, SymPy)
- 프로젝트 2: 뉴턴의 방법 시각화 (Matplotlib, SymPy)
- 프로젝트 3: 생일 문제 시뮬레이터 및 분석 (random, Pandas, Matplotlib)
- 프로젝트 4: 벡터 외적 시각화 (3D) (Matplotlib, NumPy)
부록 (Appendix)
- 파이썬 설치 가이드 (Windows, macOS)
- 오류 메시지 읽는 법 및 디버깅 팁
- 추천 학습 자료 및 웹사이트
- (선택) 파이썬 코딩 스타일 가이드 (PEP 8 요약)
- (선택) 가상 환경 (venv) 소개
COMMENTS