Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量 増井 敏克
情報学系の編入試験では、アルゴリズムの動作原理と計算量の理解が頻繁に問われます。特にソートやサーチといった基本的なアルゴリズムについて、なぜそのやり方なのか、どれくらい効率的なのかといった点で混乱する受験生が多いです。本書はPythonの実装例を示しながら、伝統的なアルゴリズムの考え方と計算量を体系的に解説しており、編入試験の出題パターンに直結する内容を扱っています。
この本の位置づけ
本書は、プログラミング経験が1年程度あり、基本的な文法は理解している受験生向けです。アルゴリズムの理論的な背景から具体的なコード実装まで、段階的に学べるレベル設定になっています。
アルゴリズムの参考書には、数学的な厳密性を優先するものと、実装重視のものがありますが、本書は両者のバランスを取っています。計算量の記法(O記法)の説明からバブルソート、マージソートといった個別アルゴリズムの解説まで、編入試験で実際に出題される論点を網羅しており、試験対策としての実用性が高いです。
いつどのタイミングの編入受験生におすすめか
本書の学習は、編入受験を決めた時点から3〜4ヶ月前に導入するのが目安です。プログラミングの基礎文法をひと通り終えたら、次のステップとしてアルゴリズムの体系的な理解に進むタイミングで活用してください。
もし導入が遅れて試験2ヶ月前になってしまった場合、本書全体を学習する時間がなくなり、過去問で出題されたアルゴリズムだけに絞った対策になってしまう可能性があります。逆に導入が早すぎた場合は、学習内容が記憶に残りにくくなるため、試験1年前から始める場合は他の教科とのバランスを取りながら進めることをお勧めします。
ターゲット大学と対策できるテーマ
オンライン編入学院が保有する過去問データベースを分析し、本書の内容が実際の出題範囲と重なる大学・学部を抽出しました。「頻出テーマ」はその学部の過去問で繰り返し問われている論点のうち、本書で扱っているものです。
※志望校の最新の募集要項と過去問は必ずご自身でご確認ください。
使い方
まず全体を通読し、p.94の「良いアルゴリズムとは?」で計算量の考え方を理解してから、個別アルゴリズムの章に進むことをお勧めします。バブルソート(p.175)、選択ソート、挿入ソート、マージソートなどの各アルゴリズムについて、コード例を読みながら実際に手で実行トレースをしてください。
その後、過去問でこれらのアルゴリズムが出題されたときに、本書で学んだ内容と照らし合わせる往復学習が有効です。特に計算量の比較や、なぜそのアルゴリズムを使うのかという理由付けが問われる問題で、本書の理解が活きてきます。リスト(p.20)や動的計画法の章は、データ構造の理解が必要になるため、対象大学の過去問でこの分野の出題が確認できたら、その都度該当ページに戻って確認する使い方も効果的です。
編入試験でよく問われる論点から入るなら、次の順で読むのが効率的です。
- p.2 プログラミング言語の選択
- p.20 リスト
- p.32 リスト内包表記
- p.94 良いアルゴリズムとは?
- p.124 幅優先探索
- p.154 ミニマックス法による評価
- p.175 バブルソート
- p.205 図書館ソート
注意点
本書は出版から数年経過しているため、新しいプログラミングの言語仕様やライブラリの最新版とは完全には一致しない可能性があります。ただし、アルゴリズムの本質的な考え方は不変であるため、試験対策としての価値は損なわれません。
もう一つの注意点として、本書はアルゴリズムの理解に主眼を置いているため、オブジェクト指向やクラス設計といった実務的なプログラミング技法は限定的な扱いです。対象大学がオブジェクト指向の問題を頻出させている場合は、本書と別に関連資料で補強してください。また、フローチャートやプログラムの実行結果を読み取る問題が出題される場合、本書のコード例だけでは不足することがあるため、過去問演習で不足分を補う準備をしておくことをお勧めします。







