第1講:学習を進めるための準備をする

その1 プログラミングとはどのような作業か

  プログラミングとはどんな作業なのかについては、学習を進めてゆくうちに追々分かってくることだろうと思われます。ただしこれから学習することの要点についてあらかじめイメージとして知っておく方が、学習を進めやすいという場合もあることでしょう。そこで、まずは「プログラムとは何か」、「プログラミングとはどんな作業か」について少しだけ予備知識を仕入れておきましょう。

(1)プログラムとは何か?

 プログラムとは何か?これからこの講座ではプログラムを作ることを学んでゆくのですが、それはいったい何のために作られるものなのでしょうか。

 プログラムは人間がコンピュータに対してさせたいことを伝えるために作られるものです。もちろん普段パソコンを使っているぶんにはおそらく、何をさせたいかをプログラムという形式で伝えることなどほとんどないでしょう。コンピュータに何かをさせる場合にはたいていの場合、「ワープロソフト」、「ブラウザ」といった具合に、目的別に用意された何らかのソフトウェアを使って、そこに用意されたメニューから項目を選んだり、テキストボックスに文字を打ち込んだりしながら「何をさせたいか」を伝えることになるわけです。しかしこれらのソフトウェアが毎回同じように動作し、決められた内容の仕事を決められたとおりにしてくれるのはなぜでしょうか?これはなぜなら、これらのソフトウェア自体がプログラムとして作成されているからなのです。既存のソフトウェアから与えられる機能だけでなく、より複雑なこと、より特化された用途にコンピュータを利用したければ、自分でプログラムを作ってコンピュータに意志を伝えなければなりません。

 では、コンピュータに対してさせたいことを伝えるために、「プログラム」はどんな形と内容を持っているのでしょうか。「プログラム」とはコンピュータがするべき仕事の手順を内容とする書類という形で作成されます。そこには「まずはじめに何をして、つぎに何を、、、」といったことが、「プログラム」を書くための専用の言葉である「プログラミング言語(これから学ぶJavaもそのひとつ)」で書かれているわけです。それはある意味では料理の手順を示したクッキングブックと似ているかもしれません。つまり「目玉焼きを作る」とか「肉じゃがを作る」というようにかならず最終的な目的があり、そのためにしなければならないことが「まずはじめにフライパンを暖めて、つぎに油を引いて」といった具合に順序だてて説明されているという点で、両者は共通しているのです。

 ただし、「クッキングブック」を読んで料理をする(たいていの)人は、「サラダ油を切らしちゃってるから代わりにバターを使おう」とか「うちのコンロは火力が弱いから少し長めの時間焼いておこう」といったふうに、「クッキングブック」に書かれていないことも経験と勘を頼りにちゃんとやれます。それにたいし、コンピュータは「プログラム」に書かれたこと以外は全く何もしてくれません。また、「プログラミング言語」としてあらかじめ用意された言葉以外はまったく理解しません。したがって「プログラム」を作るためには、ちんと目的を限定し、その目的を実現するために必要とされるすべての仕事の正しい手順を、「プログラミング言語」の約束に従って書いてやらねばならないのです。

   

(2)プログラミングとはどんな作業か

 それではつぎに、これから学んでゆく「プログラミング」とは、いったいどんな作業なのでしょうか。もちろん簡単にいえば「プログラムを作ること」なんですが、そこにはだいたい次の4つの作業プロセスのようなものがあるのです。

 まず最初に、自分はプログラムを書くことによってコンピュータに何をさせたいのか、を明らかにしなければなりません。先ほどもふれたように、コンピュータというものは全く融通が利きません。したがって人間の方の指示が曖昧だと、ちゃんと動いてくれないのです。だからまずはじめに、曖昧なところがないようにプログラムの目的である「何をさせたいのか」を明らかにしておく必要があるのです。この段階をここでは「分析」と呼びます。

 そしてつぎに、分析の結果明らかとなったプログラムの目的を実現するためには、いったいどんな仕事がどんな手順でなされるべきなのかを考えます。きちんと、そしてできれば効率的にコンピュータに働いてもらうためには、どんな種類の仕事が必要でそれをどんな順番で組み合わせればよいのかを、プログラムを作成する前にあらかじめ割り出しておくのです。こうしてプログラムを実際に作成する際の指針と内容のあらましを作るこの段階を、ここでは「設計」と呼びます。

 「設計」が終わると、やっと実際のプログラムの作成に入ります。設計に従ってプログラミング言語で命令を記述してゆく段階です。この段階のことを「実装」という言葉で呼びます。設計された事柄を現実にプログラムとして装備してゆく、というように理解して下さい。ところで前にもふれましたが、プログラミング言語はコンピュータへの命令の記述をするために人工的に作られた言語です。それは何種類もあり、Javaもそのうちの一つなのです。各言語にはそれぞれ固有の文法があります。この段階では前段階でなされた設計と使用する言語の文法、その両者に気を配りながらプログラムを書いてゆきます。Javaで書くのならばJavaの文法に従え、というわけです。

 最後にできあがったプログラムが本当に最初に分析された「何をさせたいのか=要求」を満たすものなのかどうかチェックしなければなりません。この段階を「評価」と呼びます。設計に従って、なおかつ文法的に正しくプログラムが書けたとしても、当初の要求を満たしていなければどうしようもありません。そして実際に、要求を完全には満たしていないことが多々あるのです。もしもきちんと要求を満たしていないのならば、前のいずれかの段階に問題があるわけです。そこで、どの段階に問題があったのか、そしてどんな部分に問題があったのか、といったことに見当をつけ、もう一度その段階からやり直すわけです。こうして徐々によいプログラムへと根気よく仕上げてゆくのです。

 結局のところ「プログラミング」とは、この「分析→設計→実装→評価」という4つのプロセスすべてをひっくるめたものだ、と理解しておく必要があると思います。よりよいプログラムを効率よく作るには、こういったプロセスを踏む必要があるのです。したがって、どんな些細なプログラムであってもこの4段階を意識的に踏んで作る習慣をつけることが、学習の早道となることはまちがいありません。


リンク:

<全体のトップページ>
     |

<第1講のトップページ>

     |--------------------|

<第1講・その1>    <第1講・その2