« 情報セキュリティイベントにて、「サイバーセキュリティ学習シリアスゲーム」を展示! | トップページ | CG界のノーベル賞と言われるクーンズ賞の受賞者James D. Foley先生による特別講義 »

プログラミングは怖くない

|

メディア学部で学ぶうえで重要性が高く、なおかつ多くの人が苦手だと思っていることの一つが、プログラミングです。では、なんでプログラミングが苦手になってしまうのでしょう?

例題として、FizzBuzzという有名な問題を考えてみます。

FizzBuzz問題:
1から50までの数を順番に画面に表示するプログラムを書いて下さい。ただし、3の倍数のときには代わりに'Fizz'と、5の倍数のときには代わりに'Buzz'と表示して下さい。3と5の両方の倍数のときには、'FizzBuzz'と表示して下さい。

上限のところはバリエーションがあるのですが、簡単にするため50にしてみました。さて、どんなプログラムを書けばいいでしょうか。ためしにPythonで書いてみると、こんなプログラムができました。


for i in range(1, 51):
    if i % 15 == 0:
        print 'FizzBuzz'
    elif i % 3 == 0:
        print 'Fizz'
    elif i % 5 == 0:
        print 'Buzz'
    else:
        print i

このプログラムを書けるようになるためには、いろんなことを勉強する必要があります。for とか if とか range とかいう命令の使い方、範囲は0からなのか1からなのか、50までなのか51までなのか、コロンはどういうときに必要で字下げはどうすればいいのか、等々です。そしてどこか一つでも間違えるとプログラムはちゃんと動かなくて、「不合格」と言われたような、悲しい気分になってしまいます。

それでは次のプログラムはどうでしょうか。


print '1'
print '2'
print 'Fizz'
print '4'
print 'Buzz'
print 'Fizz'
print '7'
print '8'
print 'Fizz'
print 'Buzz'
print '11'
print 'Fizz'
print '13'
print '14'
print 'FizzBuzz'
print '16'
print '17'
print 'Fizz'
print '19'
print 'Buzz'
print 'Fizz'
print '22'
print '23'
print 'Fizz'
print 'Buzz'
print '26'
print 'Fizz'
print '28'
print '29'
print 'FizzBuzz'
print '31'
print '32'
print 'Fizz'
print '34'
print 'Buzz'
print 'Fizz'
print '37'
print '38'
print 'Fizz'
print 'Buzz'
print '41'
print 'Fizz'
print '43'
print '44'
print 'FizzBuzz'
print '46'
print '47'
print 'Fizz'
print '49'
print 'Buzz'

このプログラムには、print という命令しか出てきません。どういうふうに動くかは、プログラミング経験の無い人でも、たぶんわかりますよね。でもこれでも立派なプログラムです。そして、与えられた条件を完全に満たしています。

上のプログラムと比べると、確かに下のプログラムは格好よくありません。プログラミングが得意な人の中には、こういうプログラムを書く人を馬鹿にするような人もいるかもしれません。でも、現実社会で大切なのは、仕事の目標を達成できるかどうかです。そういう視点で考えると、上のプログラムを100点とするならば、下のプログラムだって90点ぐらいの価値はあります。

プログラミングが苦手な人は、たぶん「上のようなプログラムを書かなければならない」という強迫観念に捉えられているのでしょう。でも、プログラミングの正解は一つではありません。自分の知識の範囲で、あるいはネットで検索して見つかる範囲で、自分なりに作ったプログラムで目的が達成できさえすれば、それで良いのです。どんなに格好悪いプログラムでも、それが動いて目的を達成できたときは、なんだかいい気持ちになるものです。そしてそういういい気持ちの中で、「次はもう少し工夫してみようか」という気持ちが自然と生まれてくれば、プログラミング中級者への道はもうすぐです。

(大淵 康成)

在学生向け」カテゴリの記事

高校生向け」カテゴリの記事

« 情報セキュリティイベントにて、「サイバーセキュリティ学習シリアスゲーム」を展示! | トップページ | CG界のノーベル賞と言われるクーンズ賞の受賞者James D. Foley先生による特別講義 »