プログラミングは怖くない
2015年10月19日 (月) 投稿者: メディア技術コース
メディア学部で学ぶうえで重要性が高く、なおかつ多くの人が苦手だと思っていることの一つが、プログラミングです。では、なんでプログラミングが苦手になってしまうのでしょう?
例題として、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点ぐらいの価値はあります。
プログラミングが苦手な人は、たぶん「上のようなプログラムを書かなければならない」という強迫観念に捉えられているのでしょう。でも、プログラミングの正解は一つではありません。自分の知識の範囲で、あるいはネットで検索して見つかる範囲で、自分なりに作ったプログラムで目的が達成できさえすれば、それで良いのです。どんなに格好悪いプログラムでも、それが動いて目的を達成できたときは、なんだかいい気持ちになるものです。そしてそういういい気持ちの中で、「次はもう少し工夫してみようか」という気持ちが自然と生まれてくれば、プログラミング中級者への道はもうすぐです。
(大淵 康成)
「在学生向け」カテゴリの記事
- チュラロンコン大学からのインターン学生との再会(2019.03.14)
- あにめたまご2019「文化庁若手アニメータ等人材育成事業」(2019.03.12)
- タイの提携校、キンモンクット大学トンブリに短期訪問しませんか?(2019.03.11)
- 学会紹介:ADADA Japan学術大会と情報処理学会EC2019(2019.03.09)
- 大学院授業:プロシージャルアニメーション特論の紹介(2019.03.08)
「高校生向け」カテゴリの記事
- チュラロンコン大学からのインターン学生との再会(2019.03.14)
- 大学院授業:プロシージャルアニメーション特論の紹介(2019.03.08)
- ゲームの学会?!(2019.03.07)
- 香港理工大学デザイン学部の紹介(2019.03.04)
- 香港理工大学デザイン学部を訪問し、学部長Lee先生にお会いしました!(2019.03.03)