학부생 당시 중국 특유의 흑백흑백한 교과서와 언어의 어려움으로 인해 전공과목들을 잘 소화해지 못했던 기억이 난다. 그렇게 자리잡은 전공과목 알러지(…)는 아직까지도 트라우마처럼 나에게 남아있다. 나중에 실무를 경험하며 필요성을 깨닫고 ‘언젠가 다시 각잡고 공부해야지!’ 했으나 그런 일은 일어나지 않았다. 그러다 우연히 이번달 서평단 도서 목록에서 알고리즘 서적을 보게 되었고 마음에 숙제처럼 자리잡아 있던 녀석들 중 하나를 해치우기 위해 신청하게 되었다. 게다가 믿고 보는 Oreilly가 아닌가. 그렇게 이번달은 AI와 관련이 없는 알고리즘 서적을 리뷰해보려고 한다.
알고리즘을 공부하는 학생 입장에서 어렵게 느껴질 수 있는 부분은 이론과 실전의 연결고리라고 생각한다. 이진 배열 탐색, 해시 함수, 스택과 같은 알고리즘을 이론적으로 이해해도 이것을 코드화 시키는 것은 또 다른 문제이다. 반대로 코드를 잘 짜는 학생도 이론을 이해 못한다면 알고리즘을 구현할 수 없다. 실제로 내가 사용했던 알고리즘 교과서는 이론 서적과 실전 서적이 별개였고, 당시 C언어(…)를 갓 입문한 나로써는 이론도 가뜩이나 어려운데 이걸 구현하라고 매주 자동 채점되는 코딩 과제 잔뜩 내시는 교수님이 너무 버거웠던 기억이 난다.
이 책에서 두드러지는 특징이 이 부분을 도와준다는 것이다. 이론을 컴퓨터 언어로 옮기는 과정의 중간다리를 만들어준다. 구체적으로는 이론 -> 이론 시각화 -> 코드 구현 방법까지의 프로세스를 순서대로 소개해준다. 이 책에서 코드 구현은 Python을 사용하였다. 사진으로 책 주요 구성을 살펴보며 포스트를 짧게 마무리하겠다.
위 사진들처럼 알고리즘을 예시와 함께 구체적으로 코드화 시키기까지의 내용을 꼼꼼하게 담고 있다.
이 책은 기본적으로 학부에서 다루는 알고리즘 범위를 다룬다. 그러나 기본적인 알고리즘 원리 및 코드 실현 외 심화적인 내용은 포함하지 않는다. 알고리즘 기본 단계에서 이론으로 코드화 시키는데 어려움을 겪는 학생들이 차근차근 공부하면 자신감이 생기는 데 도움될 것 같다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.