프로그래머를 위한 수학 책
이 책은 프로그래머가 매일매일의 프로그래밍 작업을 더 잘 이해할 수 있도록 하는 데 도움이 되는 책입니다. 프로그래밍의 기본은 컴퓨터 과학이며 컴퓨터 과학의 기본은 수학입니다. 그러므로 수학을 배운다는 것은 프로그래밍의 기본을 탄탄히 하는 것으로, 수학을 배우면 제대로 된 프로그램을 만드는 데 많은 도움을 줍니다. 이 책을 통해 프로그래밍에 도움이 되는 '수학적 사고방식'을 배우고, 수학이 가진 아름다움과 즐거움을 느껴보기 바랍니다.
수학을 배워 봅시다
'수학'이라고 하면, 귀찮은 수식이 많이 나오고 머리가 아파지는 사람이 많을지도 모릅니다. 관심은 있지만, 하나하나의 수식을 쫓는 것이 싫어서 수학을 그만 싫어하게 된 사람도 있을 것입니다. 하지만 "프로그램을 만드는 데 수학 따윈 필요 없어"라고 생각 프로그래머도 있을까요?
이 책은 정의와 증명으로 채워진 수학 전문 서적이 아닙니다. 프로그래밍을 하는 데 유용한 "수학적 사고방식"을 이해하기 위한 책입니다. 외우는 것보다 이해하고 상상하는 것이 더욱 중요합니다. 따라서 어려운 수식은 별로 나오지 않고, 퀴즈와 퍼즐로 즐기면서 배웁니다. 또한, 많은 삽화를 통해 추상적인 이미지도 쉽게 이해할 수 있습니다.
수학적 사고방식의 예
'수학적 사고방식'을 배운다는 것이 너무 추상적이므로 몇 가지 예를 이용하여 이야기해보겠습니다.
[조건 분기와 논리]
프 로그래밍을 할 때 우리는 조건에 따라 처리를 '분기'하게 됩니다. C나 Java라면 if 문을 사용할 것입니다. 조건을 만족한다면 해당하는 처리를 수행하고, 만족하지 않는다면 다른 처리를 수행하도록 제어합니다. 이때 우리는 수학의 한 분야인 '논리'를 사용하여 프로그램을 제어하는 것이 됩니다. 그러므로 프로그래밍에서는 '이고', '또는', '~가 아님', '~이라면 …'처럼 논리를 구성하는 요소를 정확히 사용해야 합니다.
[반복과 수학적 귀납법]
우리는 대량의 정보를 처리하고자 프로그램을 이용하여 '반복'을 수행합니다. 예를 들어 for 문을 사용하면 많은 데이터를 반복하여 처리할 수 있습니다. 이러한 반복을 뒷받침하는 것이 바로 '수학적 귀납법'입니다.
[경우 나누기와 수를 세는 법칙]
많 은 조건이나 데이터를 경우에 따라 나눌 때, 프로그래머는 결코 놓치는 것이 없도록 신경을 써야만 합니다. 그럴 때는 덧셈 법칙과 곱셈 법칙, 순열, 조합 등의 수를 세는 법칙이 도움됩니다. 이는 프로그래머가 항상 배우고 익숙해져야 하는 수학 도구라 할 수 있습니다.
이 외에도 이 책에서는 재귀, 지수, 로그, 나머지 등 기본적이고 중요한 사고방식도 함께 배울 수 있습니다.
이 책의 대상 독자
- 프로그래머: 당연하다고 여겼던 수학 법칙을 되돌아봄으로써 프로그래밍에 관련된 통찰을 얻을 수 있습니다.
- 학생: 프로그래머가 아니어도 논리적 사고를 통해 문제를 해결하는 창의력을 키울 수 있습니다.
요 즘 세계적으로 학생을 대상으로 한 프로그래밍 교육 열기가 뜨겁습니다. 여기에는 "아이들이 개발자가 되지 않는다 해도, 컴퓨터 언어를 배우는 것은 문제 해결과 논리적 사고를 키우는 데 도움이 되기 때문에 중요하다."라는 생각이 깔려 있습니다. 실제로 컴퓨터 과학은 현대 과학과 수학의 결정체입니다. 컴퓨터 언어를 배운다는 것은 단순히 지식과 기술을 배우는 것을 넘어, 그 안에 깃든 작동 원리와 논리적으로 생각하는 방법을 배우는 것입니다. 이 책을 통해 프로그래머뿐만 아니라 학생들도 수학적으로 문제를 해결하는 능력을 익힐 토대를 마련했으면 합니다.