「プログラミング対決 2018」のレポート

「プログラミング対決 2018」のレポート

2018/1に三重県津市で開催した、アルゴリズム、自動化をテーマにした子ども向けプログラミングワークショップ「プログラミング対決」の様子。

親子・兄弟姉妹・友達のペアで参加してもらい、全員でどのプログラムが「一番 陣地の色を塗れるか」を競いました。

来ていただいた人数と年齢

今回はペア(親、兄弟、友達など)で募集しました。参加者は22名。内 大人8名、子供14名でした。

前回に比べて若干大人は少なめ。お父さんばかりでした。

やったこと

「自キャラクターを自動的に動かし、より多くの陣地を塗りつぶす」を競いました。某イカさんが出て来るゲームを知っている子も多く、ルールはすぐに理解してもらえたように思います。

ネタを考え色々準備をし司会進行をしてくれた、たまちゃん。

ちなみに このテーマは2度目。前回は「キャラクターを自動的に動かし、より多くのりんごを取る」を競いました。

ルールはこんな感じです。

  1. 自キャラクターはマウスやキーボードで操作してはいけない
  2. スコア判定のスクリプトは改変してはいけない
  3. 自キャラクターのプログラムのみを変更し、時間内で「より画面を塗れる」プログラムを作る
  4. 他の細かい制限は後述

上記3のプログラムを皆で作りました。

実際の対戦の画面。各自(風船/ねこ)がプログラムをつくり、背景を塗りまくります(判定プログラムは事前に作成)。

プログラムの作成

約半数がプログラミング未経験者だったため、歩く、跳ね返る、乱数、くり返し、ペンなどを経験し、キャラクターが縦横無尽に歩き、なんとなく色を塗れる状態まで講義をおこない、その後はヒントカードなどを渡し、各自で工夫して作ってもらいました。

全員に解説した基本の形。シンプルなので未経験者にも分かりやすい。

ヒントカードの例(裏にスクリプトが書いてあります)

スタッフは若干少なめだったのですが大抵のペアはどちらか一方が経験者の場合が多く、ペア同士は知り合いのため「分からなければ隣に聞いてもらう」が自然と起こっており、スタッフはいつもに比べて随分と楽でした。プログラムとしても単に歩かせればとりあえずは塗れるため、初心者にとってもハードルが低かったのも良かったです。

ざっくり見ていた感じだと、大人は上から順に塗っていくなどちゃんと理論的に動かしたい方が多く、子供は乱数や歩数をとにかく大きな数にする子が多かったように思います(後述)。

ちなみに対決として成り立たせるために、以下の制限をもうけました。

※ルール/制限

  1. マウスやキーボードで操作しない
  2. ペンの色、濃さ、太さは変えない
  3. 定義ブロックは使わない
  4. クローンは使わない
  5. スプライトの名前を変更しない
  6. スクリプトを停止するを使用しない

制御の「スクリプトの停止」を使わないは、参加者の指摘により後から付け加えられた

よろしければ上記条件で一度リミックスにチャレンジしてみて下さい(最下部リンク)。

ベースの動きを解説後30分ほど改造し、一度ペアで対決。希望者を募り 前の画面で数組の方にプログラムの解説を交え対戦してもらいました。この全員に向けた解説で「対戦相手のX,Y座標を使う」「変数や繰り返しを使いながら面で塗っていく」「とにかく歩数にでかい数字を入れる」など強くなる秘訣?が共有され、後半 他の参加者の作品に反映されていきました。

中間時点での発表。強さの秘密や工夫ポイントが全体に共有された。

大人の参加者にも解説をしてもらった(面で塗るタイプの解説)

対決そのものはScratch educatorsのクラスルーム機能を使用し各自ログインしてもらい、

  1. それぞれの完成したスプライト(キャラクター)を右クリック→スプライトの書き出しで保存する(キャラクターとプログラムのセットで書き出される)
  2. 書き出したスプライトをネットワークドライブに保存
  3. 新たなステージ(判定プログラムのみ入っている)に2のスプライトを読み出し
  4. 対決

の流れで行いました。

人数が少なければ誰か1人(ホスト役)が共有された作品を開き、Scratchの「バックパック」の機能でスプライトを回収していっても可能かと思います。

こうすると各自が作ったプログラムだけを取り出せる(A,Bどちらか一方で可能)

上記発表を参考に再度30分ほどの改造の後、再度ペアで、その後 希望者に前で対戦してもらいました。こちらの対戦希望者は前回に比べて多く、半分以上の子どもたちが希望していました。情報共有がシンプルに目の前で行なわれたり、対戦相手が居たりと参加者同士で自然と交流が持てるのはワークショップならではだなぁと感じました。

「前で対戦してみたい人」の希望を募るの図。予想以上に多かった。

対戦を眺めるの図

工夫点を聞くの図。「いや特に無い」も多かった。私もいきなり前で喋るのは苦手なので気持ちはよく分かる。

どんなプログラムを作っていたか?

  1. 面でちゃんと塗りつぶす系
  2. 相手について行く系
  3. とにかく動き回る(乱数+大きい歩数)系

が多かった印象です。まずは塗りつぶしてから、相手についていくなどミックスの方もいらっしゃいました。

プログラム経験がある方(すくなくとも私)は「ちゃんと頭を使って作った」1や2で攻めたく、当然こちらの方が強くなると想像していたのですが、言語の癖?などもあり3が強い強い(最下部サンプルの「きいろ1」)。必勝的なパターンは未だ見つかっていません。

シンプルな形。発表時はこれなら必勝かと思われたが…

前半の発表で左の情報が共有され、他の参加者にも使われている

面で塗っていくタイプ。大人や経験者に多い。

乱数を使いつつ、相手の動きも考慮するパターン

「ランダムな場所へ行く」もかなり強い

とにかくでかい数字を入れる系。大人はなかなかこう言うのは作れない。やってる本人もどういう動きになるかは想像できていないと思われるが、(悔しいかな)かなり強い。

参加者の反応

最後のアンケートではいつもに比べワークショップ時間を「短い」と感じている方が多く良かったです。

隣が知り合いでわからないことも聞きやすく、プログラムも単純な状態でも楽しめ、はじめての子同士でも対戦ができ、良い感じの雰囲気でした。

最後に

前回とはネタも変えている関係で、実際やってみるまで各自の難易度がどれほどのものか、参加者の工夫の幅が少ない気がする、経験者 vs 未経験者でどれほど楽しんでもらえるのか(経験者が一方的に強くならないか)など心配でしたが、結果的には子どもたちの無邪気なプログラムがかなり強く、経験者が必ずしも強くなるわけでは無く、皆が楽しめたのが良かったです。

企画と準備をしてくれた たまちゃん。司会やらなんやらしてくれた青柳さん、twitterで一生懸命投稿してくれてた阪さん、色んなサポートをしてくれた天野さん、河村さん、いつも素敵な写真を撮ってくれるメグー。そして、沢山の笑顔を見せてくれた参加者のみなさん。どうもありがとう。

メンバーの方のブログ

お子さんが参加者だったメンバーの方がブログを書いてくれています。違った視点で書かれていますので、気になった方は是非。

挑者戦求む

いやいや、こんなの経験者には余裕でしょうと言うそこのあなた! 当日のワークショップ中で強かった2キャラを入れてありますので「あお」のプログラムを作り、どちらか一方と戦ってみて下さい。緑の旗で開始→タイマーで10秒で自動停止→スペースキーで判定です。あぁこう言う方法があったか…って言うのを是非見てみたいです。

 

同一タグの最新記事:

最近投稿された記事: