いつの時代も書かれ続けるべきプログラミング入門書 ―― 『Java データ構造とアルゴリズム基礎講座』

大野 典宏

tag: 組み込み Interface

書評 2009年3月27日

いつの時代も書かれ続けるべきプログラミング入門書

f1.jpg

大和田尚孝著
技術評論社
ISBN-10: 4774136972
ISBN-13: 978-4774136974
224ページ
2,580円(税別)
2008年12月
Amazon.co.jpで購入

http://www.assoc-amazon.jp/e/ir?t=kumikomi-22&l=as2&o=9&a=4774136972

 アルゴリズムという言葉は,問題を簡単に解く方法を定式化したもののことです.

 ですから,アルゴリズムという言葉はコンピュータが登場する前からありました.しかし,数的な計算をプログラミング言語によって手順を実装していくことが不可欠になったために,一般的に用いられるようになりました.

 アルゴリズムは,一般的に数式やフローチャートで表されます.それをプログラム言語で実現するのですが,コンピュータ特有の問題としてデータ構造も重要な要素だということがわかりました.それゆえに,コンピュータ書では一緒に語られることが多いのです.古典的名著といわれる「アルゴリズム+データ構造=プログラム」という本の題名がそのままの本質を示しているのです.

 さて,これまで,本書と同じような題名の本が何冊も発行されてきました.それはなぜでしょうか.問題は,プログラミング言語の文法にあります.

 数式やフローチャートだけを見て,自分が必要としている言語で実装できる人だったら問題はないでしょう.しかし,それには相当の経験と慣れ,スキル,数学的センスが必要となります.

 また,これまでに数々の実装例がありながら,参照した本に掲載されている言語が違うとなると,その言語の読み方まで学習しなければなりません.それは翻訳以外の何物でもありません.

 経験を積んだ人ならそれでも十分かもしれませんが,初学者でコンピューティングの基本,つまりは計算処理の方法を学ぶという目的には使えません.

 現在はオブジェクト指向言語の時代です.これからは,代表的なオブジェクト指向言語であるJavaの需要が増えていくことでしょう.もちろん,それは他の言語が駆逐されるというわけではなく,CやFortran,LISP,Cobolなどは目的に応じて今後も使われ続けるでしょう.

 しかし,それはこれまでの資産が活かせて,しかも処理の目的を実装するのに適した言語を選択するという話です.ですから,これからは,アプリケーション・ソフトウェアで使われる言語としてJavaが増え続けて行くことは間違いありません.

 また,学校などでの授業や,アプリケーション開発においては,最初からオブジェクト指向の言語を習得した方が,時代の要請にも合っています.ですから,これからは学校でもJavaでプログラミング実習が行われたり,新入社員にJavaを教えるという例も増えてくるだろうことが予想されます.

 でも,オブジェクト指向なのであれば,あらかじめデータ構造が定義されているのに,なぜにわざわざそれを学ばなければならないのでしょうか.

 その答えは,「プログラムという処理の本質」を理解していなければ,プログラマとしては不十分だからです.

 どんな局面において,どんな処理方法が考えられるのか,それにはどんな特徴があり,どれが最適な処理となり得るのか,それを知っていなければ,ソフトウェア・エンジニアとしてはスキル不足だと言われても言い返せないでしょう.

 したがって,データ構造とアルゴリズムは,プログラミングにおいて基本的かつ本質的な事柄です.それゆえに,これまで数多くの本が書かれているわけです.その本質を,プログラム言語の文法を学ぶのと並行して行うという教育方法が理にかなっているという評者の主張に異を唱える人は少ないと思います.

 本書で取り上げられているのは,本当に基本的なアルゴリズムばかりです.配列,スタックとキュー,リスト,ツリー,グラフ,検索,ソートといった,これまで何回となく実装例が示されてきたアルゴリズムが掲載されているにすぎません.

 しかし,本書の場合,「それがJavaで書かれている」という点が重要なのです.初学者に数式やフローチャートの読み方,ほかの言語を同時に習得することを求めるのは無理です.Javaの「いろは」を学ぶのと同時に処理方法の定石を知るには,例文もJavaで書かれていなければならないのです.

 ですから,本書は決して陳腐な本ではありません.これからの時代に合わせてアップグレードされた本なのです.

 また,Javaの場合,プログラミングにEclipseを使わない手はありません.いったんEclipseの使い方を覚えてしまえば,CでもC++でも使えるので,初学者が上達してほかの言語を使えるようになっても開発環境を変えずに済みます.

 そして最後には,応用編として,漸化式の解き方やフラクタルの実装といった難しいけれど挑戦のしがいがある付録も用意されているので,学習書としては親切な構成になっています.

 学校の教科書や,新入社員のテキストとしては,よく書かれた本だと思います.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日