もはや一般教養! 今さら聞けないプログラミングの超基礎をまとめてみた

IT

更新日:2014/4/22

 2012年度の学習指導要領から、中学校の技術・家庭科でプログラミングの授業が必修化された。米国や英国でも先進的なプログラミング教育への取り組みが行われるようになり、今やプログラミングは誰でも知っているべき教養になろうとしている。

 清水亮氏の『教養としてのプログラミング講座』(中央公論新社)は、そんな時代に向けて、プログラマーではない人にもプログラミングの世界に触れてもらおうと書かれた本。この本からプログラミングの基礎の基礎を簡単にまとめてみたい。

advertisement

 そもそもプログラムとはなにか? 著者によれば「自分以外のものを、思い通りに動かす方法」だ。大きな意味では「運動会のプログラム」や「結婚式の式次第」など、「どういうシチュエーションで、どう対応するかを書き記したもの」がプログラム。その中で特に作業をコンピュータにやってもらうために「手順を正確に記した文書」が、いわゆるコンピュータのプログラムだ。

 プログラミングをする上で、絶対に心得ておくべき鉄則のひとつが、「コンピュータは、自ら判断を下すのではなく、指示に従って動く」ということ。コンピュータには、漏らさず指示を伝えなければいけない。鉄則のふたつ目が、「コンピュータは期待している通りではなく、プログラミングされた通りに動く」という当然の事実。コンピュータにうまく動いてもらうのも、あなたとコンピュータのコミュニケーション(つまりプログラミングの内容!)次第、ということ。

 鉄則を押さえたところで、では、実際にどうやってコンピュータとコミュニケーションするのか。基本的な要素は3つしかない。プログラムは、この3つの要素の組み合わせでできている。


[処理]:作業そのもの。ある処理は、別の処理の組み合わせでもある。
[分岐]:ある条件を満たしたときに、処理の流れを変えること。
[ループ]:繰り返し処理を行うこと。

 ここまでが基礎の基礎のルール。

 では、例えば「採点された答案用紙を受け取り、70未満の答案を選り分ける」という作業をプログラミングするとしたら、どうなるだろうか? 手順を前出の3つの要素に分けて文章にしてみる。


[ループ]全ての答案について以下の作業を繰り返す。
[処理]答案用紙を手に取って、
[処理]答案用紙の点数を確認する。
[分岐]答案用紙の点数が70点未満なら、
[処理]答案用紙をAの箱に入れる。
[分岐]それ以外なら、
[処理]Bの箱に入れる。

 さらに言い方を命令形にして、インデント(行頭の字下げ)を入れて構造を明確にしてみる。


[ループ]全ての答案について以下の作業を繰り返せ。
[処理]答案用紙を手に取れ。
[処理]答案用紙の点数を確認しろ。
[分岐]もし答案用紙の点数が70点未満の場合、
[処理]答案用紙をAの箱に入れろ。
[分岐]それ以外の場合、
[処理]Bの箱に入れろ。

 だいぶ分かりやすくなった。これなら、やるべきことが誤解なく伝わるはず。これがプログラムの原型だ。

 このような「処理の手順」を、各プログラミング言語のルールに従って書くのがプログラミングだ。プログラミングには、特性によっていろいろなプログラミング言語がある。家電製品などの内蔵プログラムに強いC言語、Androidにも使われ汎用性の高さが売りのJava、Webに特化したPHP、ブラウザの制御ならJavaScript、遠隔操作ウイルス事件でも話題になったWindowsアプリに向くC#、Excelで使えるVBAなどなど。何百という数の言語があるが、基礎の基礎のこの考え方は基本的にどれも同じ。だから、それぞれの言語のルールに親しめば、どんどんコンピュータと親しくコミュニケーションがとれるようになる。つまり、コンピュータにいろいろなお願いができるようになる、ということ。

 「これならできるかも…」と興味を持ったあなた。コンピュータとのコミュニケーション、始めてみませんか?

文=村田チェーンソー