草野俊彦「教養としてのプログラミング的思考」
草野俊彦「教養としてのプログラミング的思考」は、プログラミングの経験がない(そして、多分コンピュータについての知識も少ない)人を対象に、プログラミング的思考を解説した書籍である。 プログラムの内容 -手続き、手順、あるいはアルゴリズムと呼ばれるもの― の概要を知りたい方にはお勧めかもしれない。但し、後半の「正解のない問題をプログラミングする」などは、初学者には難しいと思われる(私も専門ではないので本書のこの部分の内容の良し悪しは判断がつかない)。 以前にも書いたが、プログラミング的思考を解説する図書には、「プログラミング的思考」と言いつつ、「プログラミングそのもの」を解説しているものが多い。本書も例外ではない。 最初に、「プログラミング的思考」とはどのような思考法なのか、著者の考えを本書から引用する。 プログラミング的思考とは、「コンピュータを意図したとおりに動かすために、コンピュータへの命令の正しい組み合わせを論理的に導き出す考え方」である。 この定義から明らかなように、プログラミング的思考は、コンピュータを前提とした、プログラムの内容(手順やアルゴリズムと呼ばれるもの)を考える力を指している。本書の導入部では、プログラミング的思考の前提となるコンピュータとプログラムの関係を、自動車にたとえて説明している。具体的には、 自動車=コンピュータ、ナビ=アルゴリズム、運転手=プログラマー、運転=プログラミング、ハンドルやアクセル=プログラミング言語、 といった具合である。 この比喩、私は若干違和感を感じたのだが、一般読者はどうなのだろうか。 アルゴリズムとプログラミング的思考の関係も分かり難い。 「アルゴリズムを考える能力の根底にあるのが”プログラミング的思考”です」 と説明しているのだが、「アルゴリズムを考える能力」と「プログラミング的思考」は別物なのだろうか? 私は、アルゴリズムを組み立てる能力・思考がプログラミング的思考だと思うのだが・・・。 話を複雑にしている原因は、「プログラミング的思考」という造語が、比較的最近使われるようになったからだと思う。プログラムやプログラミング、あるいはアルゴリズムという用語が一般的に使われている(認知されている)のに対して、プログラミング的思考という用語はまだそれほど普及していない。 多分、一部のIT技術者(プログラマーやSEなど)は、プログラミング的思考という言葉自体を知らないのではないだろうか。 本書でもう一つ気になったのは、OS(オペレーティングシステム)に関する説明が十分でない点である。想定している読者がコンピュータの初学者であることを考えると、OSについても分かり易く説明しておいた方が良いと感じた。 本書は、プログラムの内容(手順やアルゴリズムと呼ばれるもの)を、フローチャートを用いて説明している(フローチャートを使って設計することを薦めている)。 フローチャートは、プログラムの処理手順をシーケンシャルと条件分岐、繰り返し、の3つの手続きを組み合わせて、ビジュアルに表現する手法である。フローチャートは、プログラムの設計(主に詳細設計)で昔から使われているものだが、最近はあまり見かけなくなった。 その理由として考えられるのは(あくまで私見である)、
などだろう。 |
ディスカッション
コメント一覧
まだ、コメントがありません