• このエントリーをはてなブックマークに追加

10月15日に,ジュニアドクター育成塾事業「科学イノベーション挑戦講座」第3テーマ「プログラミング基礎講座」の内容について,受講生がえひめこども科学新聞第2号を作成しました。個人情報を削除した新聞を以下に示します。

どの紙面が良かったかについて,投票を受け付けています。
どなたでも投票に参加できます。締め切り11月4日(土)18:00

投票サイト
https://questant.jp/q/EhimeKidsSciPaper
※投票は公平を期すために1端末1回までです。
※個人情報は収集していません。

以下の3つの観点で,どの紙面が良いかを投票してください。
1 伝わりやすい紙面
2 独創的な紙面
3 チームでの一体感がある紙面


90043f6d27407aa3278777aae660c5d5554331fa
1班 mbotくんを動かそう!

ec62a1d8bbae9eceef13c5084ca5765b0dfffecb
2班 Let's 未来をプログラム

71f835e49b74bc39222f0c26ad8d275c22eb8685
3班 未来を想像する 〜プログラミングを学ぶ!〜

1c61351f0f7303f96dd358cdbe589af558594edd
4班 ENJOY! プログラミング 〜達人への道〜

c2c5793a84e82f9f17c80840497104c1205a29e8
5班 プログラミングが世界を変える 〜これからの社会をささえるプログラミング〜

fd6bfd4ad1adeed47873b8331d0d120c2d1a0659
6班 大活躍! mbotくん

09ace56b72b1554c9983062ae02c9cb248582d09
7班 プログラミングの技術は未来を担う

c389cbf88ebc0b02e61eec397166838d8b3bab06
8班 Eternally プログラミング新聞

31b4fb4c73bdf3372332333faaf81cfc90aeffcf
図9 Mボットで発見! プログラミング

以上です。どの新聞も2時間で作成した力作ぞろいですね。
せっかく読んでいただいたので,投票をお待ちしています。


10月1日に,ジュニアドクター育成塾事業「科学イノベーション挑戦講座」第3テーマ「プログラミングで未来社会を創造しよう」を実施しました。今回の講師は,テックプログレス社の重松宏規取締役が実施しています。

1 はじめに
プログラミングは,今後20年間で重要性が大きく高まる分野だとかんがえられています。私の所属する日本化学会でも,三菱総合研究所の方が「今後20年,重要になるのは3つあります。ひとつは生物模倣,ひとつはAI,さいごのひとつはIoEです」と言われていました。

生物模倣は,ヤモリの吸盤やモルフォ蝶の美しい青など,生物がつくった仕組みを人間が真似ていこうというものです。いくつかは商品にもなっていますね。

de7d8e9722f727ec79b7c2d2303bc1f2acc9c4d3
図1 モルフォ蝶のハネは青いわけではなく,光によって青く見えています

IoEは,あまり聞いたことがないと思います。IoTはどうでしょうか?
IoT(モノのインターネット)は,さまざまなものがインターネットを通じてつながり,情報をやり取りするシステムのことです。たとえば,スマートフォンをつかって出先からエアコンを操作したりすることを言います。

2ef5a48b2b68328395ec829070c1067cd3d0e405
図2 モノのインターネット

IoEは,これがさらに進んで,すべてのものがインターネットにつながっていく時代を指した言葉です。私たちの周りのあらゆるモノがインターネットにつながる時代はすぐそこに来ています。

このIoEとAI(人工知能)は,いずれもプログラムによって動きます。こうした時代になったとき,少なくともプログラムが何をしているのか,何ができて,何ができないのかを知っていることは,より良い暮らしのためにとても重要なのです。だからこそ,プログラミングの基礎を学んでおく必要があるのです。

0c0cdc7957659030b09c1e072dbdca17e96ea706
図3 プログラミングをバリバリ行おう!

2 達成目標を設定しよう
今回の内容について整理しましょう

最終目標(Why)
プログラムを使って実現したい未来を想像し,その未来の実現のためにどんなことをやっていくのか

具体的な目的(How) 
・プログラムが何をしているのか
・何ができて,何ができないのか
を知る。

計画(What)
スクラッチというプログラミング言語をつかって,mbotというロボットを制御して,プログラムの基本について学ぶ。

たのしかった,おもしろかった,で終わらせず,学びを深めていくためには,自分が何をしなければならないのかを明確にしておくことが重要です。

3 プログラムとはなにか
重松取締役のお話は,まずプログラムとは何かから始まりました。
受講生からは,プログラムはコンピュータの言葉など,いくつかの答えがありました。そう。いま,あなたが言葉を読んでいるように,コンピュータはコンピュータの言葉を読むことができます。これがプログラムです。コンピュータの言葉ですから,プログラムは正しい文法で書かなければなりません。

日本語で考えてみましょう。文法がめちゃくちゃだといっている意味がわかりません。
ただしい例文:私はコンピュータ言語を使って,ロボットを思った通りに動かすことができる。
まちがった例文:コンピュータ言語をロボットは,私を思った通りに使って動かすことができる。

日本語とおなじようにプログラムもコンピュータがわかる「ただしい文」で書く必要があるのです。

4 ロボットとは何か
つぎはロボットについてかんがえました。ロボットは,なにを目標にして開発されているのでしょうか。ロボットとは,さまざまな場面で,人間の代わりに働いて,私たちの生活をより良いものにしてくれる存在であって,プログラムとは,そのロボットを動かすための言葉であることが紹介されました。そこで,今回の講座では,実際にプログラムを組んで,ロボット(mbot)を自分の思うとおりに動かすことが目的として示されました。

687fedf3ccad62f52467d401c806ce5e595abf83
図4 重松取締役による講義

5 プログラミングをしよう
プログラミングには,スクラッチを利用しました。スクラッチは,マサチューセッツ工科大学の人たちがつくった,コンピュータプログラムを学ぶためのかんたんな言語です。かんたんとは言っても,できることはたくさんあります。今回は教育用ロボットmbotを制御するプログラムを組みますし,ゲームやアニメーションをつくることもできるのです。ぜひ試してください。

d839dd7a26e61559a5e5b469e66133c774bd77e7
図5 プログラムの基本を学ぼう

mbotとパソコンをつないで,プログラムを動かすとmbotを制御することができます。かんたんなプログラムを組んで,mbotの動かし方を学びました。

目標とする距離まで進んだあと,転回してもどってくるというプログラムです。言葉で言うとかんたんに感じますが,「何cm進んで」というプログラムはありません。速度○○で,△△秒進むというプログラムをつかって,目的とする距離を動かさなければなりません。また,止まるときもピタッと止めるには,別のプログラムが必要になります。

caa975f16d2cd02f1d9ba72f93bdcae688263958
図6 基本的な動かし方を学ぶ

展開するときも「何°回って」というプログラムはありません。右(左)に○秒回るというプログラムで,うまく180°回さないとちがった方向にもどってしまいます。

かんたんに見えるロボットの制御をするためには,コツがありました。それは,プログラムはひとつで,行動をひとつずつ行うことです。プログラムは文章とおなじように,どんどんつぎ足していくことができますが,行動をつぎ足していくと,前の動きがつぎの動きに影響してしまい,行動の制御がむずかしくなります(中学校3年生のベクトルの合力ですね)。そこで,プログラムとしては,前に進む→止まる,右に回る→止まる,前に進む→止まるなど,動きを「止める」動作を入れることが重要になるのです。

6 停止線で止めよう
mbotの基本的な動かし方を学んだので,つぎは停止線(黒い線)で止まるプログラムを組みました。mbotはにっこりとわらった口の下赤外線センサーがついています。

de5bba4e5dca1ad30ce3d017fe65e1021f8de326
図7 mbot

赤外線センサーは,床の赤外線の反射を読み取っています。そのため,たとえば反射があるときは進み,反射がなくなったら止まるという制御をすることができます。そこで,赤外線センサーをつかって,停止線まできたら止まるプログラムを組みました。そして,停止線で止まるプログラムが完成したら,つぎは先ほどとおなじように,停止線で止まってもどるプログラムを組みました。

9e35e8c69bc8889a720cf570ee4b5e34ea6dc6ad
図8 停止線で止めるには

7 障害物をよけよう
mbotの可愛らしい目に見える部分は,超音波センサーです。ここで,コウモリのように超音波を発して,受け取ることで,距離をはかることができます。これを利用すれば,障害物にぶつからないようにロボットを制御することができるのです。そう。自動運転技術とおなじことができるのです

そこで,まず超音波センサーをつかって,障害物を感知して止まるプログラムを組みました。ここで大事なことは,ロボットの移動速度と動きを止める距離の関係です。超音波センサーは,障害物との距離をはかっているだけで,ぶつからないようにするためには,自分で「障害物との距離の数値が□□になったら,速度を0にする」と指定しなければなりません。しかし,命令が出てから止まるまで,多少時間がかかります。そのため,速度によっては止まりきれないのです。動く速度を速くすればするほど,停止命令を早く出さなければならなくなります。これも言葉では,かんたんに聞こえますが,実際に行うとなかなかに難しい制御です。こちらも止まれるようになったら,転回してもどるプログラムを組みました。

a786a77c94404e7c23bff8db648ae6beddc2d4e1
図9 超音波センサーで障害物にぶつからないように

9 組み合わせて,動かそう
赤外線センサーと超音波センサーを組み合わせてつかって,停止線と障害物をよけながら動くようプログラムを組みました。回転する角度を,180°から変えることで,いろいろな方向に回転しながら,障害物をよけ,停止線で引き返すことができるようになりました。

停止線は,はみ出ないように少しもどって回転,障害物は止まって回転など,ロボットの行動を複雑に制御するなど各班のアイディアが活かされたプログラムができました。

2aac8eea1593c622552b2a398ef3b0606cdb28c7
図10 みんなでかんがえよう

c85aab513376f40437546f4dd15266fed9078a72
図11 障害物と停止線で転回するmbot

10 まとめ
課題とおなじように,結果がおなじでも人によってプログラムの組み方はちがいます。また,停止線で引き返すとき,そのまま回転するか,バックしてから回転するかなど,アイディアによって,mbotの行動はちがいます。ほかの人のアイディアを参考にすることで,より良いプログラムが組めるでしょう。そう。ここでも大事なことは,いつもとおなじです。

d6981102bffef531fdca6c29b9a789a57e86be39
図12 複雑なプログラムも組めるようになりました

さて,今回の達成目標について,何が,どこまで解決したでしょうか?
最終目標(Why),具体的な目的(How) ,計画(What),それぞれについてかんがえることが大事ですね。すべてが達成されたはずはありませんし,いますぐすべてが達成される必要もありません。しかし,ふりかえらなければ,学びは何も深まりません。おなじところをグルグル回っているだけになってしまいます。良くかんがえて,学びを深めていきましょう。

今回の実施では,事前学習課題,実施,実施におけるアイディアで,テックプログレス社に大変お世話になっております。もし,あなたがプログラミングに興味があるなら,テックプログレス社で話を聞いてみることをオススメします。無料体験もありますし,愛媛県以外にも広島県,大阪府に教室があります。

2f75e451277182e805a361aec1dde11d343951d9
第3テーマ「ロボットプログラミングから未来社会を創造しよう」の事前学習課題について,まとめましょう。

このプログラムで学ぶことは,あなたの生活とかけはなれたムズカシイことではありません。いまから30年前,パソコンは一部の人しかつかえないムズカシイものでした。しかし,いまだれもがパソコンをつかえる時代になりつつあります。いま10代のみなさんが大人になるころは,パソコンはもっと当たり前になるでしょう。だれもがプログラミングをする時代はすぐそこに来ているのです。

課題1 (有効回答数48)
3c846df069c38ac03b349ebcefc91e8fbe162e5e

回答を以下に示します。
(1)で,もっとも多かった回答は60歩でした。
67341fd1fb29f77ef22f752ac30ec82f052c111a
図1 (1)の回答

解説
オレンジ色の「くり返す」は,その操作をくり返すことを示しています。3回と回数を決めましたので,3回くり返すことになります。
青色の「動かす」は,スプライトを動かすことを示しています。20歩と決めましたので,20歩動かすことになります。

005bba73e1918d3ace48ed49e581920b3f9f5a11

20歩を3回くり返す,つまり,20歩あるいたら一休みして,もう20歩あるくを3回くり返すのとおなじです。合計歩数は60歩になります。

(2)で,もっとも多かった回答は150歩でした。
499e487078bf30098529644fbdb44f056cb594ae
図2 (2)の回答

解説
先ほどとおなじですね。オレンジ色の「くり返す」は,その操作をくり返すことを示しています。15回と回数を決めました。
青色の「動かす」は,スプライトを動かすことを示しています。10歩と決めました。
8afe6dd3a4c5e69ff25842b3ce0705e5d9458975

10歩あるいて一休みを15回くり返すので,合計150歩になります。
実際にプログラムして,動きを見ればそういった点はよくわかりますね。

課題2 (有効回答数46)
6d2ddb3f6211c8dff4ad01e5b781c42ba9623212
これは全員がおなじ答えでした。

動きのちがいについても回答しましたので,以下にいくつかを紹介します。
1 はやさに注目したグループ
  • (1)は大きく2歩進むけどCは大きく1歩進む。(1)はcより大きく進むと思う。
  • (2)は4歩ずつたくさん進むけどAは8歩ずつ5回進む 。(2)の方がはやく進むと思う。
  • (3)は大きく10回進むけどBはちょこちょこ20回進む。Bの方がはやく進むと思う。
2 歩数に注目したグループ
  • (1)は15歩を2回歩いているけど,(C)は30歩を1回歩いている。
  • (2)は4歩を10回歩いているけど,(A)は8歩を5回歩いている。
  • (3)は10歩を10回あるいているけど,(B)は5歩を20回歩いている。
3 動きに注目したグループ
  • 1は小走りに動く感じで、Cは瞬間移動しているみたいに一瞬消えてまたパッとあらわれた。
  • 2は滑らかに動き、Aはもっと元気な感じに見えた。
  • 3は車が走っているような感じで、Bはつなひきでズルズルとひきずられるような感じに見えた。

ほかの人の答えも,大体この3つにわけることができそうです。今回は,実際にプログラムを組んで,スプライトの動きを見ていますので,この3つは,動きのどこに注目したのかのちがいとしてかんがえることができそうです。

さいごに

課題2では,動きのちがいについて説明してもらいました。結果的におなじになっても,プログラミングにはいろいろな組み方があることがわかりますね。今回は,テックプログレス社が工夫してくださった課題ですので,わかりやすい結果になりましたが,実際のプログラミングでは,あなたの目的によって,これらの動きを上手くつかいわけて行く必要があります。
たとえば,
1 この動きに新しい動きを追加するとき,おなじ結果になるふたつのプログラム,どちらが新しい動きを追加しやすいでしょうか?
2 動きの量をふやしたり,へらしたりしたいとき,どちらが動きの量を変えやすいでしょうか?
それによって,どちらのプログラムをつかうと良いかが決まりそうですね。

約束を守ろう!
実際にプログラムを組まなくても,計算すればおなじ答えを得ることができるでしょう。しかし,手を動かさずに,計算で答えを得ることに意味はありません。計算の勉強をしているのではなく,プログラミングを学んでいることを忘れてはいけません。
今回ご協力いただいたテックプログレス社は,プログラミング学習塾として多くの実績があります。プログラミング未経験の人もわかりやすく学べるように,工夫をこらした資料ですから,みなさんは動画を見れば「わかった」気になることができます。しかし,ほんとうにプログラムで学んだことを活かすには,みなさん自身が手を動かして学ばなければならないのです。

愛媛大学ジュニアドクター育成塾

このブログでは,国立大学法人愛媛大学が国立研究開発法人科学技術振興機構から受託している愛媛大学ジュニアドクター育成塾を紹介していきます。 科学や科学研究のおもしろさや重要な点を紹介し,科学者という仕事のおもしろさを伝えていければと思います。

著者イメージ

大橋淳史准教授

愛媛大学教育学部理科教育講座で化学を担当しています。元々は合成化学や分析化学,生物化学などをやりながら博士(理学)を取得して研究畑から,教育関係に来ました。専門研究者として11年,科学教育研究者として12年,研究人生はちょうど2分されています。いろいろなことをやってきたからこそ,何にでも興味をもてるという感覚を,みなさんにも理解してもらえればと思います。

https://www.facebook.com/scienceinnovationehime/
メール配信:あり更新頻度:毎月2本程度※メール配信はチャンネルの月額会員限定です


タグ