Column 20年9月 ジャグリングでプログラミングの練習をしよう!?

2020年度も4月の新学期スタートから早半年が経とうとしています。ご家庭では継続したプログラミング学習を行えていますでしょうか。お子様によっては実際にプログラミングをする際、一連の動作を一つひとつのプログラムに落とし込むことに苦戦することもあるかと思います。しかしながら、考えるだけでなく実際に動作を行うことで、思考を整理しやすくなることがあります。
今回のコラムでは、複雑な動作として、大道芸などで見られるジャグリングを例に、一つひとつの要素を順に並べる考え方をご紹介していきます。この機会にお子様と一緒に手と頭を動かしながら取り組んでみても面白いかもしれません。まずは以下のリンク先のページをご覧ください。

カスケード(ジャグリング)

https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%89_(%E3%82%B8%E3%83%A3%E3%82%B0%E3%83%AA%E3%83%B3%E3%82%B0)

上記リンク先には、3個のボールをジャグリングしているアニメーションがあります。例えばこのアニメーションをプログラミングする場合、延々と続く動作の一つひとつをプログラムして並べるのでしょうか。正解は「No」で、特定の動きをするプログラムを「繰り返し」実行することで実現することができます。それでは、このアニメーションを架空の①~⑤のプログラミング言語で再現しようとしたら、どうなるでしょうか。まずはボールが1個だけの単純な動作の場合で考えてみましょう。

(A)ボールが1個の場合

ボールが1個の場合、「最初の手でボールを投げて(①)逆の手でボールを受け取る(④)。今度は逆の手でボールを投げて(②)最初の手でボールを受け取る(③)…」。
この繰り返しになります。よってこのカスケードをプログラムにした場合、下の通りになります。

(B)ボールが3個の場合

では、ボールが3個の場合はどうでしょうか。最初に右手に2個のボールを、左手に1個のボールを持っていたとしましょう。
(1)まず右手のボールのうち、一つを投げる(①)。
(2)左手にボールが落ちる前に、左手のボールを投げる(②)。
(3)ボールを左手で受け取る(④)。
(4)右手にボールが落ちる前に、右手のボールを投げる(①)。
(5)ボールを右手で受け取る(③)
(6)左手にボールが落ちる前に、左手のボールを投げる(②)。
(7)ボールを左手で受け取る(④)。
 ・
 ・
このように順番に手順を書いていくと、途中から(2)~(5)を繰り返していることが分かります。よってこのカスケードをプログラムにした場合、下の通りになります。
このように一見複雑な動作でも、必要な動作を考えて一つひとつを並べてみるととても簡単なプログラムになりました。今回はジャグリングという複雑に見える動作を例に紹介しました。複雑に見えるものでも、分解すると意外と単純な動きになるものは多くあります。普段からそのような例がないか考えてみることも、実はプログラミングの練習になります。お子様がこうした考え方に苦手意識を持っているようであれば、是非一緒に考えて体験してみるとよいでしょう。