コンピュータサイエンティストのように考えよう(1)

プログラミング教育で最初に考えなければならないことは何か?

「それは順序立てて物事を表現する」ことであると思われるが、この表現に汎用性があることが大事である。この汎用性のある表現をアルゴリズムという。

例えば整数3と整数2の加法、減法、乗法、除法を表現することを考える:

表現1


3+2?
3-2?
3X2?
3÷2?

そして3が5に、2が4になったときには


5+4?
5-4?
5X4?
5÷4?

と表現できる。

この表現では最初の数値を変えたときは全てを書き直す必要がある。

表現2


a<-3     整数値を入れる箱を用意しaというラベルを貼る。そして3を入れる
b<-2    整数値を入れる箱を用意しbというラベルを貼る。そして2を入れる
a+b?    ラベルaの箱にある整数とラベルbの箱にある整数の和は?
a-b?
aXb?
a÷b?

この表現では最初の数値を変えたときは、その部分の変更だけで済む。

汎用性が増したことになる。