関西地区

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

ブロックでプログラムする小学生向けパズルゲームの開発
馬場 祐輔
中西 通雄
Yusuke BABA Michio NAKANISHI
大阪工業大学情報科学部コンピュータ科学科
Department of Computer Science, Faculty of Information Science and Technology
Osaka Institute of Technology
Email: naka@is.oit.ac.jp
あらまし：2020 年より始まる小学生のプログラミング授業必修化に向け、Google Blockly を用いてプログラミングの理解を促すパズルゲームの開発を行った。学習者は、ステージ上のキャラクターに指示を与えるブロックを適切に並べてプログラムを作成し、ゲームのクリアを目指す。パズルを解くプログラムを作成するなかで 順次処理、条件分岐、繰り返しを理解させる。また、学習者自らがステージを作成する機能も提供しており、学習者どうしで遊ばせることによって学習意欲の向上に役立つと考えている。
キーワード：ビジュアルプログラミング，Web アプリケーション，Blockly, 小学生

1.

れる命令列を一つにまとめたものである。手続きを利用することでプログラムを短く書ける利点がある。

はじめに

本研究は、2020 年度からの小学校プログラミング授業必修化に向け、児童のプログラミングへの関心をもたせることを目的としている。開発したアプリ
ケーションは Google Blockly を用いた小学校低学年向けプログラミング学習教材である。命令が書かれたブロックを並べることによってプログラムを作成し、キャラクターがそのプログラムに従って動く。
ブロックには条件分岐や繰り返しのブロックを用意しており、学習者はプログラムを組み立て、与えられたパズルの課題を達成させる。それによってプログラミング言語の 3 つの基本構造（順次、条件分岐、繰り返し）を理解させる。また、学習意欲の向上を図るため、パズルのステージを学習者自らが作成できる機能を用意し、学習者同士で交流し楽しみながら学べるものをめざした。

2.

3.

パズルゲーム

3.1 概要
パズルゲームは、Google Blockly を用いたアプリ
ケーションとして作成した。Web ブラウザ上で動作
し 、 イ ン タ ー ネ ッ ト 接 続 は 不 要 で あ る 。 Google
Blockly とは、Web ブラウザ画面上でブロックを組み合わせてプログラムの作成をするインタフェースを実現できるビジュアルプログラミング言語開発環境
ライブラリである。
学習者は、画面上でキャラクターに旗を取らせるように、ブロックを組み合わせてプログラムを作る。
組み合わせて配置されたブロックは、上から下へ向かって順次実行される。プログラム中に条件分岐、繰り返し命令が書かれたブロックを配置することで、複雑なプログラムを作成することができる。また発展的内容として、Lightbot と同様に手続きを定義し、より高度なプログラムを書くことも可能である。
ステージ上に配置された旗をすべて取るという目標を達成する道筋を考えることで、物事を細断化し順序立てて考える力を身につけることを目的としている。

初学者向け学習ツール

本研究以前から初学者向けプログラミング学習ツールの開発は盛んである。そのうちの代表的なものとして Scratch がある。Scratch はタイルを用いたビ
ジュアルプログラミングでキーボードを使わず構文を気にすることなく、学習者が思い描くまま自由にプログラミングできる。アニメやゲームを作成することが可能で、公開サーバを通じて他の学習者と共有することができる。しかし、小学生向けのプログ
ラミング教室では「自由すぎる」という点で「何をしていいかわからない」といった声もあり(1)、目標を自分で設定する力が求められる。
また、別のアプローチとして課題解決型のゲームを通じてプログラミングについて学ぶアルゴロジッ
クと Lightbot がある。アルゴロジックはタイルプログラミングライクのパズルゲームであり、プログラミング言語の基本構造のうち順次処理と繰り返し処理を学ぶことができる(2)。Lightbot では同様にタイルプログラミングライクのパズルゲームであり、順次処理とプロシージャの考えを学ぶことができる(3)。
プロシージャは「手続き」であり、繰り返し処理さ

3.2 画面設計
画面例を図 1 に示す。実行ボタンをクリックすると、プログラム作成エリアに並べられたブロックが画面上部から順に読み込まれ、キャラクターが命令どおりに動く。プレイモードとステージ作成モードがあり、切替ボタンをクリックすることでモードが切り替わる。ステージ作成モードでは、ステージのマスをクリックするとマスの属性（床、キャラクター、旗）を変更することができ、ステージを作成できる。ステージ出力ボタンを押すと、JavaScript 形式のデータ列が画面上にポップアップ表示され、それを指定ファイルに直接書き込むことでステージの保存が完了し、次回起動時にも遊ぶことができる。

145関西地区

教育システム情報学会 2016年度学生研究発表会(3) 問題 6問題 6 では条件分岐を学習する。使用するブロック数を制限することで、条件分岐を理解しなければ解くことができない問題としている。

図 1 画面設計
3.3 問題例
問題（ステージ）はそれぞれのブロックについての入門的問題から、様々なブロック組み合わせる必要のある発展的問題まで 10 問程度用意している。

図 4 問題 64.

(1) 問題 3
複数のキャラクターを移動させるブロックを駆使してステージクリアをめざし、順次処理を理解させる。問題としては単純なものである (図 2)。

問題点と今後の課題

現状の技術的な問題点としては、(1)「無限ループに陥ると脱出するすべがなくクラッシュしてしまう」、(2)「問題数が少ない」、(3)「パズルの追加には学習者による出力されたステージのデータをファイルに直接書き込む操作が必要であり、小学生や児童にとって難しい」ことが挙げられる。
無限ループについては、タイマーをかけて学習者のプログラムの実行時間を制限することで、解決できるはずである。問題数については、条件分岐や繰り返しを確実に学習できるように充実させる。また、ファイル操作の難しさについては、サーバサイドで動く node.js や PHP などを用いてステージ保存サーバを用意することで対応できると考えている。インターネット接続が必要になるものの、サーバを用いて学習者同士で作成した問題を共有することができるので、さらに学習意欲向上に繋がると考えられる。
本原稿執筆時点では、まだ小学生に使ってもらえていない。評価の実施方法を考え、できるだけたくさん試用してもらって評価することが今後の課題である。

図 2 問題 3(2) 問題 4
問題 3 とステージは同一であるが「○かいおなじことをする」ブロックを追加している。これによって前問と比較しながら繰り返し処理について学ぶ。

謝辞
本研究の一部は JSPS 科研費 JP16K01141 の助成を受けた。
参考文献(1) 小学校で Scratch やってきた 2014 年度 8 回目,
http://www.plaything.jp/?p=3198(2) 大山、アルゴリズム体験ゲーム「アルゴロジック」、ぺた語義、情報処理 53(3), pp.316-320 (2012.2)(3) https://lightbot.com/

図 3 問題 4146