中国地区

教育システム情報学会 2022年度学生研究発表会

ブロック-Ruby 相互変換機能を用いた言語移行のための小学生向けプログラミング教育の実践
A Practical Study on Language Migrationin Introductory Programming Education for Elementary School Students
Using Mutual Language Translation between Block and Ruby
田辺 侑美*1，杉山 耕一朗*1
Yumi TANABE*1，Koichiro SUGIYAMA*1*1 松江工業高等専門学校情報工学科*1 National Institute of Technology, Matsue College
Email: j1819@matsue-ct.ac.jp
あらまし：本研究では，ブロックと Ruby の相互変換機能が小学生のブロックプログラミングからテキストプログラミングへの移行に対して有効かを検証した．マイコン制御機能を拡張した Smalruby3 を利用して，ブロックと Ruby の相互変換が可能なプログラミング教材を開発した．小学生を対象にロボットプログラミング大会を開催し，実証実験を行った．参加者にはブロックと Ruby を任意に選択できる環境を与え，事前に開催した講習会から大会までの 10 日間で Ruby を使用するようになるか調査した．その結果，
19 人中 3 人が Ruby を使用し，ブロックと Ruby の相互変換機能の効果が示された．
キーワード：プログラミング教育，ブロックプログラミング，Ruby，言語移行，ロボットプログラミン
グ大会

1.

はじめに

近年，小中学校では Scratch などのビジュアルプログラミング言語を用いたプログラミング教育が行われている．その一方で，高等学校では Python やJavaScript などのテキストプログラミング言語が採用されており，年齢や教育レベルと共に使用する言語を移行する方法が問題となっている(1)．
過去の研究では，Java の学習をテーマに，ブロックと Java の相互変換ツールを活用した移行方法の効果が実証された．彼らは 15 週に渡る講義において大学生に相互変換ツールを使わせた結果，ブロックプログラミングからテキストコーディングに移行した学生がゆるやかに増えたことを報告している(2)．
そこで本研究では，先行研究(2)と類似なブロックと Ruby コードの相互変換ツールが，小学生のブロックプログラミングからテキストプログラミングへの移行の助けとなるかを実験，検証することを目的とする．用いるツールは，松江高専卒業生がSmalruby3 にマイコン制御機能を拡張して開発してきた初心者向けプログラミングアプリ SmT（シント）である．これはプログラミング初心者の組み込み開発の教育に有効であることが報告されている (3)．加えて，同一の処理に対して難易度の異なる 2 つのカテゴリのブロック（簡単，普通）が用意されており，段階的な学習が可能となっている(4)．この SmT にブロックと Ruby の相互変換機能を付け加えれば，上記実験を行うために必要な機能を実装できる．

2.

検証フィールド

本実験の検証の場として，小学生向けのロボットプログラミング大会を開催することにした．図 1 に

205

示す ESP-32 マイコンを搭載した 6 足歩行ロボットに対してプログラミングを行い，ロボットを走らせて得点を競う大会とした(5)．このような検証フィールドを用意したのは，2020 年度まで開催されていたスモウルビー甲子園(6)の経験が背景にある．スモウ
ルビー甲子園はブロックプログラミングの大会であったにもかかわらず，上位入賞者の多くは複雑なロジックの Ruby コードを内包する自作ブロックを作成していた．

図1

3.

6 足歩行ロボット

開発教材

教材のシステム構成を図 2 に示す．大会参加者がロボットのプログラミングをできるようにするため，SmT を改良した．改良点の 1 つ目は，Web Serial APIを用いた SmT の Web アプリケーション化である．
これにより，PC に Google Chrome がインストールされていれば使用できるようになった．以前はLinuxOS を必要とするデスクトップアプリケーションであり，そのままでは参加者が自宅の PC でプログラミングをすることが困難であった．
改良点の 2 つ目は，ロボット制御に必要なブロックの追加である．モーター，ライトセンサー，サーボモーター制御用のブロックを作成した．各ブロックには，難易度の異なる 2 つのカテゴリ（簡単，普中国地区

教育システム情報学会 2022年度学生研究発表会通）を用意した．簡単カテゴリは 1 つのブロックが複数の処理を行うため，簡単にプログラムを書ける．
普通カテゴリは 1 つのブロックが行う処理を 1 つに限定して，より細かな調整を可能にした．例えば，簡単カテゴリではモーターのスピード調整はできないが，普通カテゴリでは可能である．ブロックとコードを 1 対 1 対応させたことで，普通カテゴリに対して，ブロックと Ruby コードの相互変換機能を実装することができた．

回答が得られた 19 人中 3 人であった．この 3 人は大会以前のテキストプログラミング経験をそれぞれ，少しある，ほとんどない，全くないと回答しており，以前からテキストプログラミングに慣れていなかったと推測されることから，Ruby への移行に効果があったといえる．
今後 Ruby を使ってみたいかという質問に対しては 81%が使用したいと回答し，今後 Ruby を使用する可能性は十分にあると考えられる．

図3
図2

4.

実験概要

5.

実験結果

6.

システム構成実験の目的は，簡単カテゴリ，普通カテゴリ，Rubyと段階的に学習していく中で，普通カテゴリからRuby への移行に相互変換機能が有効かを検証することである．事前講習会ではライントレースのプログラミングを行い，大会までの 10 日間は，さらに折り返して帰って来るプログラムに改良するための期間とした．講習会，大会後に質問紙調査を実施し，参加者 26 名から回答が得られた．さらに，参加者が作成したプログラムを提出してもらった．

質問紙調査の結果より，参加者のプログラム改良
時間は平均で 5 時間であった．これは大会前日に行った試走会の 3.5 時間よりも多く，全体が取り組む時間以外にも自主的に取り組んだことがわかる．
また，SmT の使いやすさについては，プログラムの作成，マイコンへの書き込み共に 95%以上が使いやすいと回答し，プログラミング環境には問題がなかったといえる．
参加者が提出したプログラムと講習会で配布したサンプルプログラムとの差分を調べたところ，順位と差分に相関係数 0.40 の弱い関連がみられた．これはプログラミングを頑張るほど順位が高くなることを意味しており，検証フィールドとしてプログラミング大会を利用したのは適当であることを示唆する．
簡単カテゴリ，普通カテゴリ，Ruby の使用率を図3 に示す．使用率は全体で，簡単カテゴリが 30.5%，普通カテゴリが 65.8%，Ruby が 3.7%であった．大会や講習会では普通カテゴリを使う参加者が多かったことからも，簡単カテゴリから普通カテゴリへの移行はできていたといえる．Ruby を使用した人数は206

ブロックと Ruby の使用率

考察

実験結果より，19 人中 3 人，約 16%が Ruby を書くようになり，ブロックと Ruby の相互変換機能は，ブロックプログラミングからテキストプログラミングへの移行に効果があった．
さらに Ruby の使用率を増やすために，2 つの方法を考える．1 つ目は，期間を長くすることである．
先行研究(2)では実験期間を 15 週間としており，SmTにおいても期間を伸ばすことは効果があると考える．
2 つ目は，Ruby 言語について解説することである．
事前講習会では，ブロックで作成したプログラムと相互変換ができること，それを使った簡単な例のみ解説を行った．Ruby で作成したプログラムや改良の方針についても解説を行えば，参加者の理解が深まり Ruby の使用率増加に繋がると考える．
参考文献(1) 安本太一，磯部征尊，梅田恭子，鎌田敏之，齋藤ひとみ，松永豊: “小学校・中学校・高等学校間の接続を考慮したプログラミングの授業の提案”，情報教育シンポジウム論文集，Vol.2021，No.1，pp.36–43（2021）(2) 松澤芳昭，保井元，杉浦学，酒井三四郎: “ビジュアル-Java 相互変換によるシームレスな言語移行を指向したプログラミング学習環境の提案と評価”，情報処理学会論文誌，Vol.55，No.1，pp.57-71（2014）(3) 青笹誓也: “smalruby3，mruby/c を用いた IoT 教材の開発”，令和元年度松江高専情報工学科卒業研究最終報
告会資料，pp.36-1–pp.36-2（2020）(4) 吉木旺佑: “操作感向上に向けた IoT 教材の UI 設計の再検討”，令和 3 年度松江高専情報工学科卒業研究最終発表会資料，pp.23-1-pp.23-2（2022）(5) し ま ね OSS 協 議 会 : “Matz 葉 が に ロ ボ コ ン ” ，
https://www.shimane-oss.org/kani-robo/（参照 2023.2.2）(6) 島根県: “スモウルビー・プログラミング甲子園開催事業”，https://www.pref.shimane.lg.jp/industry/syoko/sangyo/itsangyo/smalruby_koshien.html（参照 2023.2.3）