ISBN 9784839981914
実践力をアップする Pythonによるアルゴリズムの教科書
概要
Python でアルゴリズムを基礎から AI 応用まで体系的に習得する
想定読者
Python の基本文法は習得済みで、アルゴリズムやデータ構造を体系的に学びたいプログラミング初中級者。コーディングテスト対策や AI の基礎に触れたい人にも適している。
こんな人には向いていない
- アルゴリズムとデータ構造をすでに業務で実践している中上級者には解説が平易すぎる
- 競技プログラミングの高難度問題(AtCoder 茶色以上)に特化した演習量を求める人には物足りない
- Python の文法自体を学びたい完全な入門者には前提知識が必要
読了後にできるようになること
- 計算量(O記法)の基礎と、アルゴリズム選択が実行速度に与える影響の感覚
- FizzBuzz・素数判定・シーザー暗号など制御フローを使った古典的アルゴリズムの実装
- スタック・キュー・木などの基本データ構造と再帰の使い方
- 二分探索・クイックソート・マージソートなど定番の検索とソートアルゴリズム
- 深さ優先探索・動的計画法などゲーム解法・パズル解法アルゴリズム
- ナイーブベイズ分類・マルコフ連鎖・ニューラルネットワークの基礎に相当する AI・自然言語処理アルゴリズムの仕組み
本書のキー概念(章解説)
- 第 1 章 アルゴリズムを学ぶ意義・計算量・Python 環境構築 — O記法と開発環境の導入。スキルアップのモチベーション付けも含む
- 第 2 章 制御フローを使った基本アルゴリズム — FizzBuzz・素数判定・シーザー暗号でプログラミング基礎体力を養う
- 第 3 章 データ構造と再帰 — スタック・キュー・木・再帰を習得。以降の章の土台となる重要章
- 第 4 章 検索とソート — 二分探索・クイックソートなど定番アルゴリズムの問題解決アイデアに着目
- 第 5 章 ゲーム解法アルゴリズム — 迷路・数字パズルを題材に探索アルゴリズムと動的計画法を学ぶ
- 第 6 章 AI・自然言語処理アルゴリズム — 文章分類・自動生成・手書き数字認識など AI 応用の基礎実装
ハイライト
- 紹介するアルゴリズムは、章が上がるごとに難しくなっていきますが、興味のあるアルゴリズムを選んで読んでも問題ないようになっています(通読でも拾い読みでも成立する構成を明示しており、読者の入り方を選ばない点が本書の設計上の特徴)
- Chapter 6では、人工知能(AI)や自然言語処理に関するアルゴリズムを解説します。文章の自動分類や自動生成や、手書き数字データ画像の判定などを学びましょう(定番アルゴリズムから AI 応用まで 1 冊で完結する構成が他の入門書との差別化点)
外部からの言及
- 計算量学習の参考文献として本書を挙げている初心者向け記事が確認されており、アルゴリズム入門の文脈で参照されている(qiita)
編集メモ
Qiita での言及は確認数が少ない(1件、3 likes)が、2023年刊行で Python アルゴリズム入門〜中級領域をカバーする数少ない国内書籍の一つ。クジラ飛行机氏はマイナビ出版から複数の Python 入門書を刊行している実績ある著者であり、書誌構成の網羅性と章設計の丁寧さから実務的入門書として評価できる水準にある
読む前に押さえておきたいこと
- Python の変数・リスト・辞書・関数・クラスの基本操作(本書はアルゴリズムの解説が主眼のため言語入門は別途学習を推奨)
- ターミナル(コマンドライン)の基本操作(ファイル実行・仮想環境の概念)
学習のコツ
- Chapter 1 の計算量(O記法)の節は、後続章を理解するための共通言語なので最初に必ず読む。他の章は興味順に拾い読みしても成立する
- Chapter 2〜4 は写経しながら進めると定着しやすい。各アルゴリズムの『なぜこれが速いか』を O記法で言語化することを意識する
- Chapter 5 のゲーム解法は動的計画法の初出箇所として重要。競技プログラミング(AtCoder 灰〜茶)の準備として活用できる
- Chapter 6 の AI 節は概念と実装の橋渡しが目的。深く学ぶ際は scikit-learn 等のライブラリ学習へ移行する前の基礎固めとして位置づける
出版社による内容紹介
本書は、Pythonを使って、定番のアルゴリズムから、人工知能(AI)や自然言語処理に関するアルゴリズムまで、広く学べる書籍です。 本書は、プログラミングのスキルを向上させたい人に向けて書かれた本です。レベルに合わせて少しずつ読み進めると良いでしょう。紹介するアルゴリズムは、章が上がるごとに難しくなっていきますが、興味のあるアルゴリズムを選んで読んでも問題ないようになっています。 Chapter 1ではなぜアルゴリズムを学ぶと良いのかを紹介しています。スキルアップに対して、あまりモチベーションが上がらないときに読むと良いでしょう。また、計算量の説明や、Pythonのインストールやターミナルの使い方、プログラムのテストの書き方も紹介しています。 そして、Chapter 2以降で実際のアルゴリズムを解説します。Chapter 2は基本的な制御フロー(if、forなど)を利用したアルゴリズムを解説します。FizzBuzzや素数判定、シーザー暗号など、プログラミングの基礎体力をつけるのにぴったりのアルゴリズムを紹介しています。 Chapter 3はデータ構造や再帰に注目します。アルゴリズムとデータ構造は切っても切れない関係です。基本的なデータ構造を学ぶことは、それ以降の章を読む上でも大切です。また「再帰」は高度なアルゴリズムを記述する上で欠かすことのできないテクニックです。ここでマスターしておきましょう。 Chapter 4ではデータの検索とソートについて学びます。これらはアルゴリズムの定番です。そこには、先人が苦労して編み出した珠玉のアイデアが詰まっています。そのために、有名なソートアルゴリズムを紹介していきます。その問題解決手法やアイデアに注目しましょう。 Chapter 5では迷路や数字パズルといった知的好奇心をくすぐる題材として、ゲーム解法アルゴリズムを学びます。探索アルゴリズムや動的計画法など、これらはさまざまな場面で活用できる覚えて得するアルゴリズムです。パズルを楽しみながらレベルアップしましょう。 そして、最後のChapter 6では、人工知能(AI)や自然言語処理に関するアルゴリズムを解説します。文章の自動分類や自動生成や、手書き数字データ画像の判定などを学びましょう。昨今、AIを活用した技術や製品が世間を賑わせていますが、その基礎となるアルゴリズムを学びましょう。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。