[書評]アルゴリズムが苦手です!それならこの本がおすすめ!
2016/04/23
先日、基本情報処理技術者試験の合格に向けて、日夜勉強に励んでいる新人くんから、こんな相談が。
アルゴリズムがよく分からないんですが…
何か分かりやすく解説されている、おすすめの本とかないですか?
ふむふむ、なるほど。
たしかにアルゴリズムは、それまで情報処理に縁のなかった人にとっては、何じゃこれ?
となりやすい、つまづきポイントの一つだと思います
ですが今後、情報処理を仕事にして生きていく!
ということであれば、避けては通れない、超重要ポイントでもあります。
アルゴリズムとは?
アルゴリズムという言葉を聞いたことがない、という方のために。
アルゴリズムとは、問題を解くための手法のこと。
そのため情報処理分野特有の言葉ではなく、数学などでも使われている言葉です。
情報処理分野においては、コンピュータにどんな手順で、どんな計算をさせたら、効率良くやりたいことができるか。
これを考え、定式化することを指す場合がほとんどでしょう。
そして実際の情報処理の現場では、このアルゴリズムのとおりに実装されたプログラムや作業手順を使用して、処理を行います。
だから情報処理を行う技術者にとっては、超重要なポイントなんです。
というわけで試験に合格する、という目的だけではなく、実務で非常に役に立つ!
という観点からも、しっかりと理解しておいた方が良いでしょう。
アルゴリズムを勉強するなら、かんたんアルゴリズム解法がおすすめ!
さて、このアルゴリズムを勉強する上で、はるるおすすめの本がこちら、基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ~流れ図と擬似言語です!
なんて長いタイトルの本なんだ、と思われる方もいらっしゃるでしょう。
はるるもそう思います。
内容は本当に素晴らしい本なんですが、この長ったらしいタイトルだけは、もう少し短くてもいいのでは?
なんて思ってしまいます。
ちなみにこちらの本、過去2回改訂されており、現在は第3版が最新です。
まずはフローチャートから
この本はまず、フローチャートの説明から始まります。
フローチャートは流れ図とも呼ばれ、処理の流れを図で示したもの。
これを使い、構造化プログラミングの基本である、順次・選択・繰り返しを説明しています。
また、併せて変数や型、配列、2次元配列、構造体、代入、演算といった、アルゴリズムを理解する上で必要となる前提知識についても、序盤で詳しく説明されています。
そして全6つの例題と2つの実践的な問題が用意されており、段階的にレベルアップしながら、フローチャートについての理解を深める内容となっています。
よく、フローチャートの解説は序盤に少しだけ行われ、すぐに擬似言語の学習に入るような解説本を見かけます。
それはそれで実践的な力を早くつけられる、という特徴があるのでしょう。
ただ、アルゴリズムに初めてふれるという方にとっては、突然ハードルが高くなるため、挫折してしまう可能性も。
そのため本書の『図がメインとなるフローチャートで、アルゴリズムの基本をまずはしっかりと学習させる』という方針の方が、より初心者向けで親切という印象を持ちます。
擬似言語とフローチャートの対照が有るので、分かりやすい!
本書はフローチャートを使い、みっちりとアルゴリズムの基礎を勉強してから、擬似言語の勉強に移ります。
この時、擬似言語の序盤(順次・選択・繰り返し、代入など)の説明では、擬似言語での記述の横に、それまで慣れ親しんでいたフローチャートで書いた場合はこうなる、という対照が付けられています。
そのため擬似言語に変わったことによる、記述方法の大幅な変化に戸惑う、ということはないでしょう。
こうして擬似言語による制御構造の記述方法を習得すると、いよいよ基本例題に取り掛かります。
ここでも10問もの基本例題が詳細に解説されており、非常に分かりやすい内容となっています。
最後は繰り返し、学習して力をつける!
本書では、最後の仕上げに6問の実践的な問題が掲載されています。
これらに取りかかるころには、アルゴリズムとは何なのか、どういう風に考えていけばいいのか。
という一種のコツのようなものがつかめてくるはず。
あとはひたすら、例題や実践的な問題を繰り返し解くことで、基本情報処理技術者試験の合格に必要となる、アルゴリズムの理解水準に達することができるでしょう。
アルゴリズム入門には最適の一冊!
本書は基本情報処理技術者試験の合格に目標を定めて、アルゴリズムとは何なのかについて、解説しています。
では、基本情報処理技術者試験を受験しない方にとっては不適なのか、というとそうではありません。
内容の半分以上を占める擬似言語は、特定の言語実装に依存しない、架空のプログラミング言語。(構文はC言語に似ている印象があります。)
そして擬似言語で表現できるアルゴリズムは、ほとんどのプログラミング言語で実装可能です。
そのため擬似言語でしっかりと、アルゴリズムを考える力をつければ、それは必ず実務で役に立つでしょう。
もし、アルゴリズムを考えるのが苦手だ、でも実務で必要だから勉強したい!
ということであれば、基本情報処理技術者試験を受験しない方にも、おすすめしたい1冊です。
ぜひ購入を検討してみてください!