ページの先頭です。 メニューを飛ばして本文へ
トップページ > ひだ宇宙科学館 カミオカラボ ウェブサイト > プログラミング教室〜向きを使う?座標を使う?〜

プログラミング教室〜向きを使う?座標を使う?〜

印刷用ページを表示する掲載日:2020年1月27日更新

こんにちは。サイエンスコミュニケーターの高知尾です。

        

現在カミオカラボでは、小中学生向けのワークショップとしてプログラミング教室を行っています。

でも、どうして今プログラミングなのでしょうか。

 

個人的にプログラミングが大事だと思った理由と、教える際に難しいなと感じたところを記しておこうと思います。

そして、最後に今回行った第一回の内容を講義ノートとして貼り付けておきます。

 

プログラミング体験の写真

基本的にはマウスの操作だけで直感的にプログラミングを体験できる

 

カミオカラボでプログラミングを教える4つの理由

 

まず一つ目の理由は、「小学校のプログラミング教育必修化」です。来年度から小学校では、これまでの教科をベースにプログラミング的な思考をするための授業が取り入れられていきます。そのため、全国的にプログラミングを学ぶニーズが高まっています。

 

二つ目は、簡単に楽しくプログラミングを学ぶためのアプリやユーザーインターフェイス、玩具が急増してきたためです。場合によっては、本人がプログラミングを学んでいるという自覚がなくても学べるものまであります。プログラミングを学ぶ目的の一つが「論理的思考力を伸ばすこと」と言われますが、実際にはその前の段階であるプログラミング特有の言語を覚える段階で躓くことがあります。ところが、最近のツールは日本語の文を作るように(もしくはイラストや記号を組み合わせるだけで)プログラミングができるため、論理力を直接的に鍛えることができるのです。

 

三つ目は、科学技術の進歩によって身の回りに「プログラミング」されているものが溢れてきているということです。冷蔵庫や炊飯器といった身近な電化製品でも温度管理や時間管理を自動でしてくれるようにあらかじめプログラミングされています。少し未来にはハンドルを触らずに目的地に行ける自動運転車が街なかで一般的になる時代も来るでしょう。また、インターネットを使った商品購入だって、最近では自分が買いそうな商品がおすすめとして出てくることがあります。こうした「最適化」の奥でもプログラミングされたとおりにシステムが動くことで成り立っているわけです。そんな時代に自分の意志でものごとを選択して生きていくためには、最低限のプログラミングの知識が必要そうです。

 

四つ目として、素粒子物理学の実験におけるデータ解析ではプログラミングが必須になります。私自身とても苦労したので、というのもあります。

 

教えるのが難しいなと感じたところ

 

さて、今回は小学校3年生から中学生を対象とした1時間のワークショップを行いました。

 

使用したのは、MITメディアラボが開発した「スクラッチ」です。

文字が書かれたブロックを組み合わせていくことで、誰でも簡単にプログラミングをすることができます。

 

第一回の目標は「自分で選んだキャラクターをキーボードのカーソルキーで自由に動かすこと」としました。

 

これを実現するには主に二通りの方法があります。

ひとつが、「向き」を使う方法、もう一つが「座標」を使う方法です。

 

スクラッチには、「向き」という概念があります。ステージ上に置かれるキャラクター(スプライトという)は、0度から360度の間のある向きを向いています。0度は上向き、90度は右向き、180度は下向き、270度は左向きといった具合です(デフォルトは90度)。

 

最初は90度(右)を向いているので、「10歩進む」というブロックを使うとキャラクターを右に動かすことができます。

 

問題は、左に動かすときです。

ひとつは、180度向きを変えてから「10歩進む」という方法。

そしてもうひとつは、向きはそのままで「-10歩進む」という方法です。

 

2通りのやり方があるのは教育上も面白い部分なのですが、さて1時間という限られた中でどちらを教えるべきか…。

 

迷った末に、今回は「-10歩進む」つまり負の数という概念を取り入れることにしました。

(理由は、キャラクターを傾けずに水平移動したかったからです。)

 

負の数は中学一年生で習う概念です。参加者の中には小学校3年生も含まれていたので、まだ習う前ということになります。ところが一度負の数で反対方向に進むことを教えると、その後はどんどん自分から負の数を使ってくれました。

 

その後、上下に動かす、つまりy座標という概念も取り入れたのですがこちらも使ってもらうことができました。さすが、吸収が早いです。

 

「座標」を使った例

プログラミング例 座標

 

「向き」を使った例

プログラミング例 向き

 

さて、向きを変えるか負の数を使うかの違いは高校生になると「極座標」か「直交座標」かの違いとして習います。

 

極座標というと難しいイメージがあった方も多いかと思いますが(私も当時は苦手でした)、こうして考えてみると要は「向きを変えてから移動する」という日常的にはむしろ自然にやっていることを数値化しただけのことだったのですね。(目的地までカニ歩きで行く人はあまり見かけないでしょう。)

 

座標1

左下にいるニュートリノくんは右上にいきたい

座標2

右に8マス動く

座標3

上に8マス動いてゴール!

向き1

45度左に向きを変えてから...

向き2

8マス進んでもゴール!

 

このように、日常生活をモデル化・単純化することで数学や物理学をより身近に感じることができる。これも、プログラミングのもうひとつの魅力と言えるのではないでしょうか。

 

ということで次回は、キャラクターに「重力」を感じさせることで、簡単なアクションゲームの製作にチャレンジしてみたいと思います。

 

最後に、今回のプログラミング教室の講義ノートを置いておきます。

 

それでは!

 

講義ノート(第一回) [PDFファイル/411KB]

Adobe Reader<外部リンク>

PDF形式のファイルをご覧いただく場合には、Adobe社が提供するAdobe Readerが必要です。
Adobe Readerをお持ちでない方は、バナーのリンク先からダウンロードしてください。(無料)


Calendarカレンダー

Science communicator blogサイエンスコミュニケーター ブログ

サイエンスコミュニケーターブログを見る

noteブログはじめました<外部リンク>