Beans Blog

ボール投げとプログラミング – あなたの知らないプログラミングの世界#1

来年2020年から小学校でのプログラミングが必須科目となります。普段なにげなく使っているインターネットやゲームなど、いわゆるITと呼ばれる技術には必ずコンピュータ・プログラムが関わっていますが、それが実際どのような働きをしているのかを具体的に説明できる人は、大人でもそれほど多くないのではないでしょうか。

私たちBit Beansでもウェブの制作において、またデザイン分野においてでもコンピュータプログラムはほぼ毎日100%触れている技術ですが、それがどのように作用しているのかを正確に説明することはとても難しいです。

これから数回に渡って、そもそもコンピュータのプログラムとはどういうことを指すのか、またなぜ必須になるほど大切なのかを少しずつ紐解きながら、プログラミングに必要な考え方を説明していこうと思います。

ボール投げとプログラミング

プログラミングという言葉から皆さんはなにを想像するでしょうか。具体的な内容はよくわからないまでも、プログラミングができるようになると普段楽しんでいるゲームが作れるようになるとか、SF映画のようなコンピュータグラフィックス満載の映像が作れるようになるとか、そういうイメージでしょうか。

諸説ありますが、コンピュータを用いたプログラミングが大きく発展したのは、戦争のときに石を遠くまで飛ばす技術の発展と大きく関わっています。敵の陣地に正確に落下するように石(または爆弾)を飛ばすためには、いくつもの条件を考慮しなければなりません。飛ばす方向、飛ばす角度、飛ばす力加減など、ちょっと考えただけでも幾つも条件がありそうですね。

復元された投石機のレプリカ GNU Free Documentation License

それに加えて強い雨が降っていたらどうでしょう? それとも強い風が吹いていたらどうなるでしょう? また地球は自転しているので、コリオリの力という力が加わって、物体は厳密には真っ直ぐには飛びません。それらの条件を複雑に想像し、○○が起きたらどうなるか、XXだったらどうなるか…という条件を思いつくだけ積み上げていくと膨大な数になり、私たちの頭の中だけでは計算しつくせません。

これら複雑な条件やそれに伴う計算を人に変わって手伝ってくれるもの、それこそがコンピュータとそれを動かす計算式=プログラムです。

爆弾の落下位置を正確に計算するための学問として「弾道学」という学問もあるくらい奥の深い世界です。この技術が基となって物体を正確な位置へ飛ばす技術が発展して人工衛星やロケットを飛ばす技術の発展にもつながっていったのです。

’87年に公開された「王立宇宙軍 オネアミスの翼」という映画では、遠くまでボールを投げる技術がどのようにロケットを飛ばす原理につながったか、また人工衛星がなぜ地上に落下しないのかを判りやすく説明しています。興味がある方はぜひご覧になることをオススメします。

体育の時間や運動測定でのソフトボール投げなど、きちんと計算された動きを正確にできれば、いまよりもっと遠くまでボールを投げることもできるようになるかもしれませんね。