C5-1

アクティビティ図と Scratch の連携に着目したプログラミング支援システムの開発
Development of programming support systems focused on
the cooperation between activity diagrams and Scratch
小橋一滉^1, 吉原和明^2, 渡辺健次^1Kazuhiro Kobashi^1, Kazuaki Yoshihara^2, Kenzi Watanabe^3^1
広島大学大学院人間社会科学研究科^1
Graduate School of Humanities and Social Sciences，Hiroshima University^2
福山大学工学部^2
Faculty of Engineering, Fukuyama University
Email: kobashikazuhiro0616@gmail.com
あらまし：Scratch を使用したプログラミング学習が行われているが、簡単な内容しか扱うことが出来ていない。原因はデバッグの過程にあると考え、学習者が作成した Scratch のブロックに対応したアクティビティ図を描画する機能を開発している。これによって構想段階で作図したアクティビティ図との比較が可能になり、実行結果に加えてデバッグでの判断材料を増やすことが出来る。この機能を通して学習者のプログラミングを支援する。
キーワード：プログラミング教育，ビジュアルプログラミング，初等中等教育，教科指導

1.はじめに平成 29 年度告示の小学校学習指導要領 総合的な学習の時間編(1)において、総合の時間の授業でプログラミング学習を行うことが示された。このプログ
ラミング学習ではプログラミング言語の知識を覚えることが目的ではないとされているため、Scratch（2）などのビジュアルプログラミング環境が用いられている。また、平成 29 年度告示中学校学習指導要
領解説 技術・家庭編(3)において、プログラミング学習においてアクティビティ図の使用が推奨されている、そのため、小学校においてもアクティビテ
ィ図を用いて機能を構想し、Scratch でコーディングをする形式がとられている。しかし、プログラミング未経験の小学生では複雑なプログラムをコーディングすることが難しく、学習内容は迷路を通り抜けるような簡単なものに留まっている。難易度が高い原因は、デバッグをする際に実行結果のみから構想段階もしくはコーディングの内容に問題があるのかを判別しなければならない点にあると考えた。
本研究では、Scratch のブロックに対応してアクティビティ図を描画する機能を開発した。同様の研究は現時点で他にはなく、独自性が高いといえる。
ブロックからアクティビティ図を描画することで構想段階のアクティビティ図と直接比較することが出来るようになる。これによって、デバッグ時に問題点を発見しやすくなり、デバッグの難易度を下げられると考えられる。

ティビティ図に対応したアクティビティ図を描画する機能を開発している。まだ開発途中ではあるが、Scratch の画面上に新しくボタンを追加し、ボタンを押すと別ウィンドウでアクティビティ図が表示されるシステムを構想している。ブロックと対応するアクティビティ図の例を図 1 に示す。

図 1 ブロックと対応するアクティビティ図の例
ブロックからアクティビティ図を描画し、構想段階の図と比較することで、構想図通りにブロックを組めているかということを確認することが可能になる。また、ブロックが図に反映されることで、ブロック同士の連結などコーディング上のミスの発見にもつながると考えられる。この機能によって、プログラムを修正する過程で学習者がミスを発見する過程を支援することが出来る。ミスを修正する過程が容易になることで、スムーズにプログラミングを進めることが出来る。

3.システムの開発
2.システムの概要
本研究では、Scratch のブロックに対応したアク本研究では、現段階でスタートボタンとなる緑の旗が押された時に実行されるファイル内で、ブロッ― 227 ―教育システム情報学会 JSiSE2021
第46回全国大会
2021/9/1-9/3
クのデータを整理する機能を開発している。ブロックのデータの要素には、ブロックの外見を識別できるものや他のブロックとの実行順における前後関係を示すものがある。また、ブロックに埋め込む形で使用するブロックなどに対して相互関係を示す要素がある。ブロックのデータの例と対応するブロックを図 2 に示す。

そこを起点に next を使って並べ替えるという機能を開発した。またブロック同士の相互関係も併せて整理することで、組み立てたブロックに正しく対応するアクティビティ図を描画することが出来る。整理したブロックのデータと対応するブロックを図 4に示す。

図4

整理したブロックのデータと対応するブロック

図 2 ブロックのデータの例と対応するブロック
ブロックの外見を識別出来る要素が opcode である。また、ブロックの前後関係を示すものは next とparents、演算ブロックなど他のブロックに埋め込む形で使用されるものに関しては inputs が該当する。
また、図 2 中の「10」のように数値を入力する部分ブロックが存在する。このようなブロックに関しては、図 2 のようにブロックそのものを示すデータと数値を表すデータが別に存在する。数値を表すデータの例と対応するブロックの部分を図 3 に示す。

4.まとめと今後の課題
本研究では、小学校の総合の時間内で行われるプログラミング学習で、複雑なプログラムのコーディングに取り組めるシステムの開発を行っている。システムでは、Scratch 上のブロックに対応したアクティビティ図を描画する機能を開発している。この機能によって、デバッグ時に誤りを発見する判断材料を増やすことが出来る。これによって、デバッグの工程が容易になると考えられる。
今後の課題としては必要な機能の実装が考えられる。このシステムはまだ開発段階であり、現在はブロックのデータを整理する部分も未完成である。
Scratch 内の機能を解析して利用しながら、整理したデータをもとにアクティビティ図を描画する機能の開発に取り組んでいきたい。
参考文献

図3

数値を表すデータの例と対応するブロックの部分

図 3 のデータは shadowblock と呼ばれ、fields という要素の中にデータが入っている。このような要素からブロックのデータは構成されている。
実際に作成しているプログラムでは、ブロックのデータを実行順に並べ替える機能と shadowblockなどの相互関係を整理する機能の 2 つがある。まずブロックのデータを取得した際に、実行順に並んでいないという問題があった。そこで、全ブロックのデータの中から先頭のブロックのデータを判別し、（1）文部科学省：小学校学習指導要領（平成 29 年
告示）総合的な学習の時間編
https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/03/18/1387017_01
3_1.pdf（2）Scratch - Imagine, Program, Sharehttps://scratch.mit.edu/（3）文部科学省：中学校学習指導要領（平成 29 年告示）解説 技術・家庭編
https://www.mext.go.jp/component/a_menu/education/m
icro_detail/__icsFiles/afieldfile/2019/03/18/1387018_00
9.pdf― 228 ―