オンラインプログラミング環境「Bit Arrow」のPython対応

大阪電気通信大学 本多佑希氏

Bit Arrowは、Webブラウザとクラウドを用いてプログラミング学習が可能な初学者向けの環境で、高大連携で大阪電気通信大学と東京農工大学並木研究室、明星大学長研究室、神奈川県立柏陽高校間辺先生と共同開発を行っています。

 

Bit Arrowは複数のプログラミング言語の学習ができるように設計されており、これまでC言語、JavaScript、ドリトル、DNCLなどに対応してきました。

 

今回、Bit ArrowでPythonのプログラミング学習が実行できるよう実装しましたので、そのご紹介をします。

 

初学者の学習に必要な機能・教員の授業運営に便利な機能を優先して実装

まず、Bit Arrowの特徴として、Webブラウザ上で動作するので、事前のインストールが不要です。先ほどお話ししたように、様々な言語の学習ができるので、授業の設計や生徒のレベルに合わせて使い分けることが可能です。

 

また、初学者用の学習環境の機能として、プログラムを短く書くためのライブラリの提供、編集・実行画面を同じ画面内で表示、文法エラーの発生場所の表示などがあります。

 

 

また、教員用の授業管理機能として、授業ごとに学習者の一覧と学習状況を表示できるようになっています。これによって、生徒がIDやパスワードを忘れた時などのトラブル対処や成績管理、さらに授業中の個々の進捗を把握することで、個別の指導やアドバイスができるようになっています。

 

さらに、実行結果やコンパイルエラー等を記録して分析することが可能なので、生徒が躓きやすいところやエラーが出やすいところを俯瞰して、授業の設計に役立てることもできます。

 

言語の実装状況が下図です。各言語で初学者の学習に必要な機能を優先して実装しています。

 

[C言語]

・関数ポインタ、共用体を除き授業可能 

・グラフィック描画、アニメーション機能を準備

 

[JavaScript]

・HTML上のキャラクタなどの要素を簡単に操作できる命令を用意

 

[ドリトル]

・スマートフォン用のセンサーなどを使用可能


 

データサイエンス学習に最適なPythonを新たに実装

今回実装したPythonは、近年プログラミングの入門言語として注目されています。その大きな理由としてライブラリが豊富で、特に統計処理に強いため、データサイエンスを手軽に扱うことができる点が挙げられます。

 

高校の新学習指導要領でも、「情報I」で『プログラミング、モデル化とシミュレーション』、「情報II」では『情報システム、ビッグデータ』を扱うことが明記されるなど、データサイエンスが大きく扱われることになるので、これらの学習にPythonは最適と言えるでしょう。

 

しかし、一般的な高校の教室環境でPythonの処理系や、関連するライブラリ群を全てインストールすることは困難です。そこで、Webブラウザ上で動作することができるBit ArrowでPythonを扱うことで、高校の授業の中でPythonを使った学習ができるようにしました。

 

[Bit Arrow版Pythonのページはこちら]

 

今回開発したPythonの処理系を用いることで、文部科学省の高等学校情報科「情報I」教員研修資料用教材(※)に掲載されているPythonのプログラムを、Bit Arrow上で動作させることができるようになりました。

 

[Python]

数値計算(numpy)やグラフ(matplotlib)を実装

サーバ・ブラウザ側両方で実行可能


ブラウザに加えてサーバ上でも実行可能に

Bit Arrowは、これまでのC言語、JavaScript、ドリトル、DNCLの処理系では、学習者が書いたプログラムをJavaScriptに変換して、ブラウザ上で動作するようにしてきました。これは、アニメーションやゲームなどのインタラクティブな作品にも対応できるようにすることや、サーバ側の設置の手間や負荷を減らすことが目的です。

 

しかし、JavaScriptに変換してブラウザ上で動くプログラムからライブラリを使うためには、ライブラリ自身もJavaScriptで実装する必要があります。先ほど述べたように、Pythonの特徴は豊富なライブラリですが、これを全てJavaScriptで実装するのは非常にたいへんです。ですので、まず基本的な操作に必要なサンプルプログラムとして、数値計算(numpy)とグラフ(matplotlib)を実装しました。

 

また、統計処理入力データを与えてそれに対応する出力結果を得る、という学習がありますが、ゲームなどに比べて、リアルタイムのインタラクションの必要性は高くありません。そのため、必ずしもブラウザ側で動かす必要がないので、サーバ側での実行もサポートできるように設計しました。

 

それにあたっては、サーバに負荷がかかりそうな場合には適切に実行させるプロセスの実行時間や個数を制限しました。

 

また、従来のBit Arrow同様、プログラムのエラーをブラウザ側でチェックできるようにしました。ブラウザ側で実行する場合も、サーバ側で実行する場合と同様にエラーチェックが行われます。

 

今後は、さらに発展的な課題でも使えるようなサンプルプログラムを制作し、必要となる機能を加えていきたいと思います。また、現時点ではサーバでの実行が必要なプログラムが多く、特に一斉授業においてはサーバへの負担が大きいため、ライブラリをJavaScriptに移して、できるだけブラウザ側で動かせるようにしていきたいと思います。

 

さらに、最近注目されている機械学習のプログラムが可能なChainerなども使用できるようにしていきたいと思います。

 

[Bit Arrowの使用までの準備]

QRコード、または下記URLからご利用いただけます。

授業で使用される場合は、クラス登録を行ってください。

https://bitarrow.eplang.jp/index.php?preparation

 


第12回全国高等学校情報教育研究会全国大会(和歌山大会) ポスター発表、

IPSJ-SSS2019018(「情報教育シンポジウム」2019年8月」)、

IPSJ-SSS2017018(「情報教育シンポジウム」2017年8月」)より