ISBN 9784798163826
プログラマを育てる脳トレパズル 遊んでおぼえるPythonプログラミング&アルゴリズム
概要
ゲームとパズルで Python とアルゴリズム思考を実地に身につける
想定読者
Python を触ったことがなく、退屈な文法学習より手を動かしながら学びたい入門者。環境構築の手間を省いて早く成果を感じたい社会人・学生
こんな人には向いていない
- Python の基礎は習得済みで、中級以上のアルゴリズムやデータ構造の体系的な理論解説を求める読者には物足りない
- 業務アプリ・Web 開発・データ分析など特定ドメインへの即戦力を目指す読者には、扱うテーマがゲーム・パズル寄りすぎる
- 200 ページ未満のコンパクトな構成のため、深い数学的証明や計算量の厳密な比較を期待する読者には別書が適切
読了後にできるようになること
- ○×ゲームを実装しながら、変数・条件分岐・ループ・関数といった Python の基本文法を実感を伴って習得できる
- 迷路ゲームの生成と探索を通じて、スタック・再帰・グラフ探索(深さ優先・幅優先)の基礎を自分の手で確かめられる
- 段階的に難しくなる 20 問のパズルを通じて、力任せ解法から効率的なアルゴリズムへと思考を改善する訓練ができる
- Google Colaboratory を使い、ローカル環境を一切セットアップせずにすぐコードを書いて実行できる習慣が身につく
- 各パズルの解答が Python に加え JavaScript・Ruby でも提供されており、言語の書き比べから言語非依存の考え方を養える
- 素因数分解・エラトステネスのふるい・動的計画法的な積み上げなど、競技プログラミング入門に通じる問題パターンを一通り体験できる
本書のキー概念(章解説)
- 第 1 章 Part 1 — ○×ゲームでおぼえるプログラミングの基本 — Python を初めて触る読者はここから順に読む。変数・分岐・ループ・関数をゲーム実装で一気に掴める
- 第 2 章 Part 2 — 迷路ゲームでおぼえるアルゴリズムの基本 — グラフ探索の入口として再帰とスタックを実装。競技プログラミング入門を意識する読者はここを軸に読むと回収が早い
- 第 3 章 Part 3 — パズルを解きながらコードの書き方を工夫してみよう — Level 1(基礎 6 問)→ Level 2(最適化 9 問)→ Level 3(応用 5 問)と難度が連続的に上がる。Level 2 以降が本書の核
ハイライト
- 楽しくなきゃ、プログラミングじゃない! 何かつくりたいものがあり、それを自分の手でつくることが達成感となり、楽しさにつながります。(著者が本書全体の設計思想として掲げた一文。ゲーム・パズル中心の構成の理由が端的に示されている)
- だんだん難しくなるパズル問題を通じて、アルゴリズムを考慮した『使えるコード』が身につくようになっています。(単なる文法習得ではなく実用コードへの橋渡しが本書の独自性であることを示す箇所)
編集メモ
Qiita での言及記事が確認できなかった(検索ヒット 0 件)。楽天ランキング情報も入力になし。書誌情報のみで判定しており、外部シグナルが乏しいため supplementary とする
読む前に押さえておきたいこと
- プログラミング経験はゼロでも読めるが、四則演算と基本的な数学的思考(中学レベルで十分)があるとパズル問題で詰まりにくい
- Google アカウントがあれば Google Colaboratory にすぐアクセスできる。事前準備はそれだけで十分
学習のコツ
- Part 3 のパズルは、まず自力で解答コードを書いてから本書の解答を見る運用が最も力がつく。答えを先に見ると Level 2 以降の効果が半減する
- Google Colaboratory はブラウザだけで完結するが、Colab のセルを Part ごとに分けて管理しておくと後で見返しやすい
- 各パズルの Python 解答を書いた後、巻末付録の JavaScript / Ruby 版と見比べると、ループや条件分岐の書き方が言語によって異なることへの感覚が自然に育つ
- アルゴリズムの理論をより深く学びたくなったら本書の後に図解系の入門書へ進むのが自然な流れ。本書はあくまで『直感を育てる』ことを優先した構成になっている
出版社による内容紹介
最初から最後まで、遊びっぱなし。 でも、「使えるコード」が書けるようになります。 【本書の特長】 ・イチからPythonのプログラミングとアルゴリズムがわかる ・ゲームをつくりながら基本を理解できる ・パズル問題で実践的なコードの書き方が身につく ・環境構築不要のGoogle Colaboratoryですぐ始められる ・パズル問題の解答はPythonに加え、JavaScriptとRubyのコードも提供 【内容紹介】 楽しくなきゃ、プログラミングじゃない! プログラミングを学ぶとき、 言語の文法などを勉強するのは退屈なものです。 何かつくりたいものがあり、 それを自分の手でつくることが 達成感となり、楽しさにつながります。 本書でも一般的なプログラミングで 必要な要素がひと通り登場しますが、 簡単なゲームをつくりながら基本をおぼえます。 そして、だんだん難しくなるパズル問題を通じて、 アルゴリズムを考慮した「使えるコード」が 身につくようになっています。 プログラミングの楽しさを見つけるきっかけになる、 そんな本を目指しました。 アタマをやわらかくして、ぜひ挑戦してみてください。 ★付属データ★ ・本書に登場するソースコード例 ・パズル問題の解答ソースコード(Python) ・○×ゲームでコンピュータ対戦をできるようにする追加解説 ★読者特典★ ・パズル問題の解答ソースコード(Ruby/JavaScript) 【目次】 Part 1 ○×ゲームでおぼえるプログラミングの基本 Part 2 迷路ゲームでおぼえるアルゴリズムの基本 Part 3 パズルを解きながらコードの書き方を工夫してみよう 【パズル問題(一部)】 ・ボウリングの点数を計算しよう ・素因数分解してみよう ・円テーブルで席替え ・同じ数字でサンドイッチ ・カウントゲームで先手が勝つのは何通り? ・崩れないように箱を積み上げよう ・カエル跳びゲームの移動回数は? ・効率のよいファミリーレストラン ・エラトステネスのふるいで素数を求めてみよう
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。