こどもとIT

GitHubやStack Overflowも!? 情報収集力と総合力の高さが光った小学生達

――Tech Kids Grand Prix決勝プレゼンテーションレポート

応募総数1000件を越えた小学生プログラミングコンテスト「Tech Kids Grand Prix(テックキッズグランプリ)」の決勝プレゼンテーション及び表彰式が、2018年9月24日に開催された。会場の渋谷ヒカリエホールでは、「ゲーム部門」「自由制作部門」それぞれのファイナリスト6名ずつ12名が堂々とプレゼンテーションを行い、審査を経て各賞が発表された。どんな作品が登場し、ファイナリストの小学生たちにはどんな共通点が見えたのか、レポートする。

(写真:CA Tech Kids提供)

小学生対象コンテストながら賞金総額100万円

今回のコンテストの審査基準は、Vision、Product、Presentationの3要素。各部門で上位3名の入賞者と総合優勝には賞金が贈られ、他に5つの協賛企業賞、オーディエンス賞が決まった。賞金総額100万円という、小学生対象ながら豪華なコンテストだ。

主催のTech Kids Schoolを運営するCA Tech Kids社長 上野朝大氏が司会を務めた
協賛のサイバーエージェント社長 藤田晋氏は、「プログラミングを好きという気持ちを大事にしてほしい」とエールを送った
後援の渋谷区長 長谷部健氏。区では全小中学生に1人1台のタブレット環境をスタートして1年がたったところ

ファイナリストは5分のプレゼンテーションタイムで自己紹介から作品のビジョン、機能紹介を行った。ステージいっぱいのスライドを背に、皆堂々としている。

各プレゼンテーションのあとには審査員からの質問タイムも(写真:CA Tech Kids提供)

まずは、ファイナリストの全作品を、各賞受賞順に紹介していこう。

「ゲーム部門」

ゲーム部門1位・総合優勝:宮城采生さん作「オシマル」

宮城采生(みやぎさい)さん 10歳(小5)
開発環境はC#(Unity)

アニマルブロックが押し合って陣地に押し込み合う「押し相撲」ゲーム。動物によってブロックの強さが違う。動物のデザインやBGMも全てオリジナルで作った。今回のプログラムでは、キャラクター生成時の配置に特に苦労したが、何度も違うアプローチを試し、Unityのウェブサイトで調べてヒントを見つけて解決したそうだ。Unityを始めたのが1年前で、スクールには通っておらず独自に学習しているという。昨年中にすでに別の作品でコンテストに応募して受賞した経験があるという、驚きのスピードで習得してきた。将来の夢は「みんなが平和でハッピーになれるものを作ること」。ゲーム部門の1位と総合優勝に輝いた。

プログラムで苦労した部分をどんな方法で解決したかを動画で解説

ゲーム部門2位・ミクシィ賞:羽柴陽飛さん作「Point vs. Line」

羽柴陽飛(はしばはるひ)さん 12歳(小6)
開発環境はScratch

点と線というシンプルなシェイプをモチーフに、「線」の攻撃をかわしながら「点」をスコアポイントに誘導するゲームを作り上げた。1人プレイだけでなく2人プレイモードも用意し、「線」と「点」で対戦もできる。「どうしたらゲームが面白くなるかを考えてゼロからルールを作っていくのがとても楽しかった」そうだ。プログラミングを始めてからもうすぐ2年。過去にScratchでドラクエの曲を再現した際、苦労して再生ずれを解決できたときのうれしさが、プログラミングにのめりこむきっかけになったという。

プレイヤーの操作方法で工夫したポイントを解説

ゲーム部門3位・Cygames賞:長谷部環さん作「宇宙突戦争」

長谷部環(はせべたまき)さん 9歳(小3)
開発環境はScratch

宇宙を舞台にしたシューティングゲーム。後半でボスキャラが登場するなど展開も工夫されている。プログラムで一番苦労したのは敵のショットの出し方で、思ったように出せずに「心が折れそうになりました」と語る。当初、簡単なシューティングゲームにするつもりが、作っているうちにやりたいことがどんどん広がって、たくさん機能があるゲームになったそうだ。大好きなゲームの作者を「マルチな才能を持つクリエイター」と尊敬し、自身も「いつか得意な絵と好きな音楽で、オリジナルのゲームをプログラミングするゲームクリエイターになりたい」そうだ。

このゲームの要素が全部詰まっているオープニング画面が一番気に入っているとのこと

Google Play賞:齋藤之理さん作「素数の世界」

齋藤之理(さいとうゆきまさ)さん 8歳(小3)
開発環境はScratch

上から次々に出てくる数字が素数かどうかを判断して当てるゲーム。数学が大好きで特に素数に興味があり、これまでもScratchでいくつかのプログラムを作って楽しんできた。ところが、素数の楽しさを共有できる友達には出会えていない。そこで「素数の世界を自分以外の人も楽しめるように」という動機から、このゲームを作ったという。「素数や数学のことを話せる友達ができたらいいなと思っています」と語る、本大会最年少のファイナリストだ。

流れてくる数字を仕分けするゲームで素数を楽しく覚えられる

ファイナリスト:大竹悠太さん作「Crazy Drive VR」

大竹悠太(おおたけゆうた)さん 10歳(小5)
開発環境はC#(Unity)

道の途切れた道路を飛び跳ねて渡りながら進んでいくゲーム。3Dの視点でどんどん奥に進んでいく。細部にこだわって複数のステージや効果音、BGM、ギミックなどを作った。VRを楽しめる「Oculus Go」でもプレイできるようにしている。わからないことはGoogleで検索し、Google翻訳も駆使して解決したという。

細かいところまでこだわって作り込んでいる

ファイナリスト:玉川蓮さん作「Action Bugs」

玉川蓮(たまがわれん)さん 11歳(小5)
開発環境はScratch

弱肉強食をテーマに、どんどん強い虫に変身していくゲーム。自分より強い虫が敵として現れ、倒すとその虫に変身できる。ドット絵を描くのが得意で、キャラクターは全て自分で描いており、ちょっとレトロな世界観がある。各キャラクターに合った攻撃方法を考えてプログラムしたという。

5種類の虫が用意されだんだん強くなっていく

「自由制作部門」

自由制作部門1位・オーディエンス賞:菅野晄さん作「写刺繍」

菅野晄(すがのひかり)さん 11歳(小6)
開発環境はSwift(Xcode)

刺繍が得意なおばあちゃんから、図案を自分で作るのは大変と聞いたのがきっかけで、写真や画像から簡単に図案を生成するアプリを開発した。刺繍の図案というのは設計図のようなもので、縫い目と使用する糸の色番号を指定したもの。アプリでは、好きな画像を取り込んだら、縫い目の数(細かさ)と、刺繍糸のメーカー、使う糸の数を指定する。これだけで自動的に図案化して表示してくれるのだ。機能はもちろんデザインが洗練されていて、総合的な完成度が高くオーディエンス賞も獲得した。

画像処理をしたのち、さらに糸の色を記号で表し刺繍図案を生成する

自由制作部門2位:澁谷知希さん作「今日の洋服何着てく?」

澁谷知希(しぶやともき)さん 10歳(小5)
開発環境はC#(Unity)

天気予報の情報を元に、おすすめの服装や持ち物をアドバイスしてくるウェブアプリ。マンションだと外の天気を感じにくく、その日の服装を決めづらいことから発想したという。天気や温度によってシンプルなアイコンで服装や、水筒・帽子などの持ち物を示すだけでなく、おすすめの服装のアバターも表示される。天気によって背景も曇りや晴れに変わるなどの演出も。ユーザーの入力した郵便番号から地点座標を取得する部分と、座標から天気情報を取得する部分でAPIを使用し、「データを取ってくるよりもそれを解析する方が大変」と感じたそうだ。

APIで取得したデータを活用

自由制作部門3位:吉田拓隼さん作「たべガチャ」

吉田拓隼(よしだたくと)さん 10歳(小5)
開発環境はSwift(Xcode)

お母さんの毎日の食事作りの困りごとを解決しようと、冷蔵庫にある食材で作れる料理を提案するアプリを作った。食材を3つまで選ぶとカプセルが落ちてくる演出が入ってレシピが提案される。食材をわかりやすく見せるイラストや、食品ジャンルがわかるように色分けするなどデザイン面でもたくさんの工夫をした。アプリに組み込んだ食材やレシピはなるべく栄養価の高いものから選んでいるそうだ。将来は「野球選手とプログラマーになりたい」という。

お母さんの困りごとを分析

サイバーエージェント賞:柴田謙さん作「うんちく」

柴田謙(しばたけん)さん 11歳(小6)
開発環境はPython

カナダ在住の柴田さんは日本の友達がビジュアルベースのプログラミング言語を使っていることが多いことに気づく。自身は英語圏育ちで8才からPythonを使っていたので、日本でテキストベースのプログラミング言語をやらないのは、プログラムの記述が英語だからかもしれないと推測した。そこで、日本語だけで書けるテキストベースのプログラミング言語を開発したのが「うんちく」だ。ルール通りに日本語で指示を書けば、それがPythonに変換されて実行される仕組み。日本語でPythonのコードが書けてしまうようなイメージだ。プログラミング言語自体を構築しようとする意識がとてもエンジニア的で、「将来は新しいOSを作りたい」という夢にも納得だ。

なるべく自然な日本語で書けるように工夫され、関西弁にも対応

筆者はビジュアル言語からテキスト言語への連携の壁が英語だとはあまり思っていなかったのだが、柴田さんの日本語テキスト言語を眺めながら、もしかして、英語圏の人がPythonで「print("Hello world!")」とタイプするときの心の負担は、日本語圏の人が「『こんにちは』って書く。」とタイプする程度のものなのかもしれない……と気づき、ちょっと認識を新たにした。

東急電鉄賞:大嶺結葉さん作「Veg-菜」

大嶺結葉(おおみねゆうは)さん 12歳(小6)
開発環境はObjective-C(Xcode)

ベジタリアンがレストランで自分の意思や食べられる食材をスムーズに伝えられるアプリ。日本語、英語、繁体中文の3ヶ国語に対応し、日本に来た外国人も使えるように意識した。実は大嶺さんの家族はベジタリアンで、対応するレストランがあまりないので外食をするときに説明が大変なことを日々実感しているそうだ。ベジタリアンにも細かい分類があり、食べられる食品が違うので、それらも選べるようにした。すでに正式にiOSアプリとしてリリースされているのでユーザーからのリアルな感想も寄せられているそうだ。

レストランで言葉が違っても見せて伝えることができる

ファイナリスト:岡村有紗さん作「RemindMe」

岡村有紗(おかむらありさ)さん 11歳(小6)
開発環境はFlutter

よく忘れ物をするのでメモをするものの、結局そのメモを見るのを忘れてしまう……そんな状況を解決するリマインドアプリ。TO DOリストを時間で管理するのではなく、場所と連携させた。GPSで現在地をチェックし、例えばスーパーに到着すると、買うものリストが表示されて教えてくれる、といった使い方ができる。より実用的な機能にブラッシュアップを目指しているそうだ。

データはGoogleスプレッドシートで管理

ファイナリストは「訓練」された子ども達か?

ファイナリスト全員が、発想する力も形にする力も発表する力も素晴らしかった。とはいえ、読者の皆さんの中にはもしかすると「この小学生たちは特別に訓練された子達だからでしょ?」と感じる人もいるかもしれないし、そう思いたくなる気持ちもわかる。

しかし、筆者は実際に子どもたちの様子と作品を見て、例えばピアノやバレエ、競技スポーツといった、たゆまぬ練習に生活のかなりの部分をあてないと全国レベルに上がれないようなストイックな世界とはどうも違うな、と感じた。そうした芸術・スポーツ系のトップを目指す子ども達や、中学受験で毎日塾通いをする子ども達の方がよほど「訓練」されているだろう。

今回のファイナリストたちは、「練習」や「訓練」、「勉強」という感覚でプログラミングをやっている様子はない。誰かの指導で引っ張ってもらっているというより、もっと伸びやかに自分の力で前に進んでいる印象なのだ。プログラミングは「好きなこと」の一つで、作りたいものがあってのめり込んでいる、というごく自然な流れで、自分でどうにか完成させたいから必死にエラーと戦う。

「環境」はあるが、その先は子ども自身の力

もちろん、「環境」要因は大きい。ファイナリスト12名の中で、主催のTech Kids Schoolや他のプログラミング関連のスクールに通っている子どもたちの割合は高かった。スクールでさらに特別なコースを受けているメンバーも多い。そうやってベースの知識を存分につけたり、相談できるメンターに定期的に会えるのは大きなメリットだろう。それでもなにか「教え込む」ような仕組みで力をつけているのとは、どうも違うような気がする。

「教え込み」ではないことは、総合グランプリの宮城采生さんと、ゲーム部門3位の長谷部環さんが、どこのスクールにも通っていないことからもわかる。もちろん、そこにもいい「環境」はあり、子どもの「やりたい」に寄り添って適切な道具を選定したり走り出せる準備をする大人がそばにいる。宮城さんがゲームを作りたいと相談したときに、Unityや周辺の必要なアプリを選定してセッティングしたのはお父さんだったし、長谷部さんも、相談相手はお父さんだそうだ。

だが、だからといって、例えばマンツーマンで日々「指導」や「教育」をしているわけではない。最初だけやり方を紹介したり、困った時には相談に乗るといった寄り添い型だ。その先は、やはりファイナリスト達自身が強いモチベーションで切り拓いている。

では、彼らに共通するのはどんな資質だろう。3つあげてみたい。

資質その1:やり通して完成させる力

どんなに小さなゲームでもアプリでも、「最後まで作り上げる」というのは実はそれだけでなかなか大変なことだ。

例えばScratchのサイトで公開されている大量な作品群をのぞいてみるとわかるが、作りかけの作品やクリアできないゲームなど、中途半端な仕上がりのものも多い。とりあえず作りかけてみたけど……と放置するのは、子どもだからではなく、プログラミングを学ぶ大人の初学者にだってよくあることだ。

また、根気の問題だけでなく、企画が壮大すぎるのもよくあること。作品として成立するラインと将来の機能追加に切り分ける判断をしつつ、最後までやり切る粘り強さを持たなければ、完成には至らない。

今回のファイナリストの作品は、機能の実用度やリリースのレベルは様々だとしても、ゲームやアプリとしての機能と体裁は整っている。一旦、ちゃんと完成品として着地させてある。「完成させる」「終わらせる」という、ものづくりには大切な力を持っていた。

資質その2:情報を自力で取りにいく力

従来の「指導」のイメージを持っていると、「子どもだし、わからないことがあったら誰か詳しい人に教えてもらうんでしょ?」と思うかもしれない。だが、このファイナリスト達は、自分で検索して調べ、自分で情報を取りに行く習慣がついているのが共通する特徴だ。そして自分でひたすら試す。

それに加えて今回感じたのは、ここで英語力があると情報入手力が格段に上がるということだ。「わからないことがあったらGitHubのIssuesを見たり、Stack Overflowで調べました」とプレゼン時に言ったのは、岡村有紗さん(自由制作部門)。彼女はインターナショナルスクールに通い、英語に抵抗感がない。開発に使ったFlutterの公式ドキュメントは英語なので、日本語しか使えなければ選択肢にすらならなかったはずだ。

カナダ在住で英語がネイティブレベルの柴田謙さん(自由制作部門)に話を聞いてみると、やはりGitHubやStack Overflowは当然のように見るそうだ。GitHubやStack Overflowといった、専門性の高い英語のコミュニティの名前を小学生の口から聞くとは思わなかった。そもそもテキストベースのプログラミング言語に関しても、英語を元に作られた命令や構文の意味を、普段話す言葉の延長で、ごく自然に理解をしているのだと感じた。

もちろん、英語ができることと、情報を取りに行ける能力は全く別のものだ。しかし、言語の壁によってターゲットにできる情報量は確実に違う。日本人にとっては第2言語だから、同じステージに立つ時期が小学生である必要はないが、大人になるまでの間に、英語で書かれた情報を取りに行くことの障壁を極力下げた方が圧倒的に「得」をするのは間違いない。

資質その3:企画・設計・デザイン・プログラミングの総合力

ゲームやアプリを一人で作り上げるには、コンセプトなど企画から始まって、画面展開の設計やユーザーインターフェースデザイン、グラフィックデザイン、プログラミング……と、全てを一人で行う必要がある。それぞれの精度やレベルは様々だし、実装の度合いも違うとはいえ、これら全てに意識を向けないと作品は出来上がらない。

この全体を見通せる総合的な力があることがファイナリストの共通点だった。今回、各部門で3位まで入賞した作品はそのバランスがよく、特にデザインの完成度が高いと、作品全体の印象が際立つ傾向があった。

2020年に向けて小学校段階でのプログラミング教育が模索されているところだが、今回のファイナリストを特別な子ども達と位置付けてしまうのではなく、その共通点から、何か大切なポイントが見えて来るのではないだろうか。

狩野さやか

株式会社Studio947のデザイナー・ライター。ウェブサイトやアプリのデザイン・制作、技術書籍の執筆に携わる。自社で「知りたい!プログラミングツール図鑑」「ICT toolbox」を運営し、子ども向けプログラミングやICT教育について情報発信している。