《CONCRETE MATHEMATICS 구체 수학》

로널드 그레이엄•도널드 커누스•오렌 파타슈닉 지음 | 류광 옮김 | 816쪽

컴퓨터 프로그래밍 역량을 탄탄하게 다져주는 수학은 따로 있다! 

수학이란 학문이 프로그래밍과 매우 밀접하다는 것은 주지의 사실입니다. 그래서 컴퓨터 프로그래밍의 역량을 탄탄하게 키워줄 수학의 기초에 관해 구체적으로 이해하고 훈련하는 것은 프로그래머가 갖추어야 할 핵심 역량이라 할 수 있습니다. 이번에 소개하는 《CONCRETE MATHEMATICS 구체 수학》은 역량 있는 프로그래머가 되기 위해 기초를 단단하게 다져줄 수학 책입니다.

커누스 교수의 스탠퍼드대 컴퓨터과학 기초 강의

이 책은 스탠퍼드 대학교에서 1970년부터 매년 가르쳐 온 동명의 강좌에 기초한 것입니다. 이 책의 저자 중 한 명인 커누스(Donald E. Knuth) 교수는 컴퓨터 프로그램을 상세하게, 그리고 근거 있게 이해하는 데 필요한 수학은 그가 대학에서 수학을 전공하면서 배운 것과는 상당히 달랐다고 합니다. 그래서 그는 새로운 교과 과정을 도입해서 누군가에게 배우길 바랐던 내용을 학생들에게 가르치기 시작했고 그 수십 년 분량의 강의 노트들을 모은 것이 이 책이라고 할 수 있습니다.

이 책은 고급 컴퓨터 프로그래밍과 알고리즘 분석의 바탕이 되는 수학에 관한 교과서이자 참고서입니다. 문제를 풀고, 난해한 합을 평가하고, 자료에서 미묘한 패턴을 발견하는, 즉 알고리즘을 이해하고 문제를 해결하는 능력을 기르기 위해 필요한 수학적 기초를 제공하는 것이 이 책의 목적입니다.

그런데 ‘CONCRETE MATHEMATICS 구체 수학’이란 이름은 어떻게 붙여진 걸까요? 이에 대해 커누스 교수는 다음과 같이 설명합니다.

‘Concrete Mathematics 구체 수학’

스탠퍼드에서 처음으로 구체 수학을 가르칠 때 이런 다소 이상한 교과명을 설명하면서, 부드러운 것이 아니라 단단한 수학 교과 과정을 가르치겠다는 의도에서 이런 이름을 붙였다고 말했다. (중략) 구체 수학의 ‘Concrete’는 연속수학(continuous mathematics)의 continuous와 이산수학(discrete mathematics)의 discrete를 섞은 것이다. 좀 더 구체적으로 말하면, 구체 수학은 수학 공식들을 일단의 문제해결 기법들을 이용해서 통제된 방식으로 조작操作(manipulation)하는 것이다.

– 서문 중에서

컴퓨터과학의 기초를 다지는 단단한 수학

그렇습니다. 이 책에는 수학 공식과 수식들이 나옵니다.  그러나 기존의 정리나 조합적 추론보다는 수식을 조작하는 기법을 강조하고 있고 또 훈련할 수 있도록 적절히 구성되어 있습니다. 합, 점화식, 기초 정수론, 이항계수, 생성함수, 이산 확률, 점근법 등 이 책에서 다루는 주요 주제를 통해서 말이죠. 또한  500여 개의 연습문제를 통해 내용을 정확히 이해했는지 확인할 수 있게 했고, 연구 문제를 제외한 모든 문제의 완전한 해답까지 제시하여 독자 스스로 공부할 수 있도록 짜여있습니다.

이 책의 내용을 끝까지 따라가면 수학의 기초 지식과 함께 컴퓨터 프로그램을 상세하게, 그리고 근거 있게 이해하는 데 좀 더 큰 그림을 그릴 수 있는 역량을 쌓게 될 것입니다. 프로그래밍이나 컴퓨터과학 관련 분야 전공자이거나 수학을 이용해야 하는 실무자라면 이 책을 통해 컴퓨터 프로그래밍의 기초를 탄탄하게 다져보면 어떨까요?

《CONCRETE MATHEMATICS 구체 수학》은 다음 서점에서 구입하실 수 있습니다. 🙂

Yes24 | 교보문고 | 알라딘 | 인터파크

정오표