教育用プログラミング実行環境「ますめ」の設計と実装
全文
(2) 情報処理学会研究報告 IPSJ SIG Technical Report. Vol.2012-CE-117 No.15 2012/12/9. が良いことも考えられる. 例えば,セルに = A1 + B1 と入力とすると,数式とみな して A1 セルの値と B1 セルの値を加算した結果にそのセ ルの値が変更される.また,その数式で参照されるセルの 値が変更されると自動的に再計算が行われる.この自動的 に再計算される機能はシミュレーションを行う際にとても 有効である. 「ますめ」では,より複雑なプログラミングを実現する ために,セルに数式や関数を入力するところを拡張し,セ ル1つ1つにプログラミングができるようにしている.す 図 1 教育用プログラミング実行環境「ますめ」. べてのセルは値とプログラムの2つを保持し,プログラム の中で参照している他のセルの値が変更された時と,明示 的に指示した場合にプログラムが実行され,プログラムの. とシミュレーションによって問題解決を目指す授業の実現. 実行結果がセルの値となる.. を目的として,初等中等教育で実施可能な新しいプログラ. シミュレーションにおいて,パラメータとなる変数の値. ミング実行環境が必要であると考え,教育用プログラミン. のそれぞれに,その値が変化する条件をプログラミングで. グ実行環境「ますめ」の設計と実装を行った.. き,多くのプログラムが並列的に実行されるという環境は,. 2. 教育用プログラミング実行環境「ますめ」. エージェントベースの考え方をプログラミングするのに適 している.. 情報教育におけるモデル化とシミュレーションを実現す る新しいプログラミング実行環境として図 1 にあげる「ま. 2.2 最小限のプログラミング言語仕様. すめ」を開発した.この「ますめ」の基本的な設計は,表. プログラミング言語は,それぞれの目的に応じてさまざ. 計算アプリケーションに着目し,そのセル1つ1つにプロ. まな機能や仕様が定められている.計算機の低レベルな操. グラミングを行うという点である.「ますめ」の特徴を以. 作を可能にするポインタ操作や,プログラムの保守性や再. 下にあげる.. 利用性を高めるためのクラスやその継承,安全で効率的な. • 個々のセルにプログラミング. プログラムを実現するための型や,逆に自由で拡張性の高. • 最小限のプログラミング言語仕様. いプログラミングを目指して型の概念がないものなどであ. • サーバクライアント型のブラウザアプリケーション. る. 「ますめ」では,これらの言語仕様の多くが,実際の問. • グラフィックやサウンドのサポート. 題解決のためのシミュレーションを行う上で不要であり,. • 詳細な粒度での操作活動の記録. また,このような仕様が存在することでプログラミング言. これらの特徴により,Squeak eToys などの環境で逐次. 語自身の習得が目的になりがちが点を考え,必要最小限の. 実行や条件分岐などのプログラミングの基本を学んだ生徒. プログラミング言語仕様を1から設計することにした.. が,C 言語や Java 言語などの実践的なプログラミングと. 「ますめ」を使う上で必要と考えられる言語仕様は,下. のギャップに躓くことなく,モデル化とシミュレーション. 記にあげるものであり,プログラミング言語としては,汎. を用いて計算機を活用した問題解決を経験させることが容. 用のものと比べ,非常に基本的な仕様のみである.. 易になる. さらに,この環境では,生徒の躓き等の学習プロセスを 分析するため,生徒の操作履歴を詳細に記録できるように している.. • 四則演算や条件判断などの演算子 • 数値・文字列・真偽値およびオブジェクト型 • 変数およびオブジェクトへの識別子による値の保存と 読込. • 関数呼び出し 2.1 個々のセルにプログラミング. • 条件分岐や繰り返しなどの制御構造. 高等学校の教科情報などにおいて,計算機を用いたシ ミュレーションの学習を行う場合,表計算アプリケーショ ンである Microsoft Excel を利用することが多い.その理. 2.3 ブラウザベースのオープンで柔軟な実行環境 高等学校のような計算機環境において,教師が環境を整. 由として,ほとんどの計算機にインストールされており,. えるためには,計算機に対する豊富な知識と経験を必要と. 授業で使うにあたっての準備が比較的容易であることがあ. する.このことが情報教育の中で,モデル化とシミュレー. げられるが,それに加え,シミュレーションは多くの数値. ションを生徒に体験させることを困難にしている一つの理. データを扱う観点から,表計算アプリケーションとの相性. 由でもある.そのため,以下の点をふまえて「ますめ」の. c 2012 Information Processing Society of Japan . 2.
(3) 情報処理学会研究報告 IPSJ SIG Technical Report. 設計を行った.. • 使用する計算機の OS などに影響を受けないこと • インストールなどの作業が不要であること • 学校だけでなく,自宅などでも利用できること. Vol.2012-CE-117 No.15 2012/12/9. する. • 実行規則 2: ソースコード内で参照した他のセルの値 が変化した時に実行する 多くのプログラミング環境では,実行ファイルを生成し. 計算機の OS としては,Windows をはじめ Mac OS X や. てそのファイルの実行を指示したり,実行ボタンやコマン. Linux などさまざまなものが存在している.多くは Win-. ドを入力するなど,プログラムは明示的に実行される必要. dows であるが,Windows 7 や Windows XP などそのバー. がある.一方, 「ますめ」では,プログラムが実行されるべ. ジョンによって影響を受けることも少なくない.このような. きタイミングをあらかじめ定義し,プログラムは暗黙的に. 環境の影響を最小限に抑えるため,HTML/CSS/JavaScript. 実行される.この設計により,プログラムの変更が,実行. を用いたブラウザベースの実行環境を採用した.ブラウザ. 結果にどのような変化をもたらすのか,リアルタイムに視. は多くの計算機に導入されており,ブラウザの種類によっ. 覚化され,プログラムの間違いなどに気が付きやすくなる.. て違いが生じることもあるものの,規格が統一されていく. 3.1.1 実行順序の問題. 方向にあるため,最も適したプラットフォームであると判 断した. また,ブラウザベースであっても,Flash や Silverlight. 「ますめ」はセル1つ1つにそのセルの値を決めるソー スコードが記述でき,それらが独立して実行可能である. そこで,実行規則 2 によって実行されるセルが複数ある場. のようなフレームワークを導入することで,よりリッチな. 合,その実行順番によって異なる結果になる場合がある.. GUI を提供することが可能になるが,逆にフレームワーク. 例えば,B1 セルと C1 セルがともに A1 セルの値を参照. の導入や管理などの追加の作業が必要になるため,このよ. し,かつ B1 セルが C1 セルの値を参照している場合,A1. うなフレームワークを採用しなかった.. セルの値が変化した時,B1 セルと C1 セルが実行される. ブラウザベースの実行環境とし,その作業をサーバ側に. ことになる.理想的には B1 セルと C1 セルは独立して並. 保存できるようにすることで,授業で作成したプログラム. 列実行されるべきであるが,実際の仮想マシンは1つの処. を自宅の計算機で開いて続きの作業が行えるようになる.. 理装置しかないため,どちらかが先に実行される.B1 セ. また,サーバ・クライアント方式にすることで,このよう. ルが先に実行されると,C1 セルが実行される前の値を参. な自宅での作業に対する操作履歴も記録できるので,分析. 照し,逆に C1 セルが先に実行されると,実行後の値を参. の対象を広げることができる.. 照することになるため結果が異なってしまう.. 2.4 グラフィックオブジェクトの利用. ターン番号を導入し,下記のような実行規則を追加した.. この問題を解決するために,仮想マシンの実行環境に ドリトル [3] のようなプログラミング環境では,プログ. • 実行規則 3: 各セルはターン番号毎に値を保持し,ター. ラムの実行結果が視覚的に得られるため,何が起こったの. ン N での実行時には,値の参照はターン N として行. か理解しやすいという特徴がある.具体的には, 「かめ太!. い,値の変更はターン N + 1 に対し行う.. 100 歩く」というプログラムを実行した場合,内部的に は「かめ太」の座標を示す値が 100 加算される訳であるが, 学習者には, 「かめ太」の画面上での表示位置が変化すると いう動きで理解することとなる. このように,プログラミング変数が扱う値を数字で表示 するだけでなく,グラフィックオブジェクトの位置座標や 大きさ・色などに関係付けて表示できる機能が必要である.. 3. 実装. • 実行規則 4: 実行規則 2 で実行されるセルは,ターン N + 1 で実行する. このターン番号により,同一ターンでは実行順に関係な く同じ値が参照されるため,同じ結果が得られる.. 3.1.2 循環参照の問題 循環参照とは,あるセルのソースコードが他のセルの値 を参照していることを,セル間の有向パスで表現した場合 に,そのグラフが木構造ではなく,ループ状態が含まれて いる状態を指す.なお,あるセルのソースコードが自分自. 「ますめ」はブラウザ上で動作するアプリケーションで. 身のセルの値を参照するという自己参照は,一番シンプル. あり,JavaScript で書かれた (1) 仮想マシン (2) コンパイ. な循環参照の例であると言える.このような循環参照があ. ラ (3) GUI フレームワークから構成される.. る場合, 「ますめ」が実行規則 2 に従ってプログラムの実行 を行うと,プログラムの実行が終了しないことが起こる.. 3.1 仮想マシン. 循環参照とプログラムの実行について,表 1 にあげた例. 「ますめ」に実装された仮想マシンは,コンパイラに. 1や例2では,1回もしくは何回かの実行でプログラムの. よってコンパイルされたセルのソースコードを下記の規則. 実行が終了するが,例3では,値は収束していくものの終. に従って実行する.. 了することはない.また例4は値が振動するため,これも. • 実行規則 1: ソースコードの編集が終了した時に実行 c 2012 Information Processing Society of Japan . 終了することはない.. 3.
(4) 情報処理学会研究報告 IPSJ SIG Technical Report. Vol.2012-CE-117 No.15 2012/12/9. 表 1 循環参照とプログラムの実行. 行によって値が変化しても,実行規則 3 により,値の変更 はターン 3 として保存されるため,B1 セルが参照する C1. 例. A1 のソースコード (初期値 1). 実行. 1. = A1. 1 回で終了. セルの値はターン 2 となり,その影響を受けない.. 2. = If A1 < 10 Then A1 + 1 ELSE A1 END. 3. = A1/2 + 1/A1. 10 回で終了 √ 2 に収束. セルと B1 セルを実行することになるが,実行規則 5 によ. 4. = A1 ∗ −1. 1 と −1 を振動. り,実行されずキューに追加されることになる.この時点. B1 セルと C1 セルの実行の結果,実行規則 2 により A1. で,実行するセルがすべてなくなり,実行処理が終わる.. ステージ: 1 ターン: 1. 次に,ステップ実行ボタンが押されると,実行規則 6 によ. A1. ターン: 2. り,ターン 3 で,実行キューにある A1 セルと B1 セルが. B1. C1. 実行される.. 4. おわりに ステージ: 2 ターン: 3. A1. 本研究では,プログラミング初心者にも扱いやすいグラ. B1. ターン: 4. フィカルなプログラミング環境と,テキストベースの実践. C1. 的なプログラミング環境の間を埋める新しいプログラミン グ実行環境である「ますめ」の設計と実装を行った.この 環境を利用することで,高等学校の教科「情報」で求めら. ステージ: 3 ターン: 5. A1. B1. れる,問題解決においてモデル化やシミュレーションを活 用するという目的を実現することが可能になると考えて. 図 2 ステージ番号とターン番号による実行制御の例. いる. 今後の課題としては, 「ますめ」を利用した授業実践を行. この問題について,表計算アプリケーションである Excel. い,具体的な問題解決の教材や授業設計を積み重ねていく. では,反復回数や値が変化したとみなすしきい値を設定し,. ことである.また,「ますめ」上での活動はすべて自動的. 上限のある複数回の計算を行うことで対処している.しか. に記録される設計になっているため,それらを分析するこ. し, 「ますめ」でのプログラミングにおいて,循環参照を意. とで,生徒の学習プロセスを解析し,つまづき発見や生徒. 図的にプログラムする理由を考えると,例2のように,シ. の状況に応じた動的な対応を可能にしていきたいと考えて. ミュレーションにおけるタイマーとしてステップ実行をさ. いる.. せたい場合と,例3のように,値を収束させて求めたい場 合があり,両者の区別を機械的につけることはできない.. 参考文献. そこで,実行したくないのに実行してしまうことと,実行. [1]. したいのに実行してくれないことを比較し,意図しない実 行を防ぐという観点から,実行環境にステージ番号を導入 し,下記のような実行規則を設け,手動でプログラムの実 行を制御することとした.. [2]. • 実行規則 5: 同一ステージでは,同じセルは1度しか 実行されない.実行規則 2 にて2度以上実行する必要 がある場合は,実行キューにセルを追加する. • 実行規則 6: ステップ実行ボタンが押された時,ステー. [3]. ジおよびターンを1つ増やし,実行キューにあるセル を実行する 以上の実行規則に従い,例えば A1 セルの値を B1 セル と C1 セルが参照し,また,B1 セルの値を A1 セルが,C1 セルの値を B1 セルが参照する関係あるものを実行した様 子が図 2 となる.. A1 セルのソースコードが編集されると,実行規則 1 に. [4]. 明 井 上:PBL 情 報 教 育 の 学 習 効 果 の 検 証 (¡特 集¿ 若 手 の 会,PBL(Project-Based Learning)),情 報 処 理 学 会 研 究 報 告. 情 報 シ ス テ ム と 社 会 環 境 研 究 報 告 , Vol. 2007, No. 25, pp. 123–130(オンライン),入手先 http://ci.nii.ac.jp/naid/110006249700/ (2007). 卓弥稲垣,和広阿部,謙介山崎,耕二横川:「教具」と しての Squeak eToys とその小学校算数教育への適用, 情 報 処 理 学 会 研 究 報 告. コ ン ピ ュ ー タ と 教 育 研 究 会 報 告, Vol. 2009, No. 15, pp. 57–63(オンライン),入手 先 http://ci.nii.ac.jp/naid/110007131905/ (2009). 兼 宗 進 ,御 手 洗 理 英 ,中 谷 多 哉 子 ,福 井 眞 吾 ,久 野 靖:学 校 教 育 用 オ ブ ジ ェ ク ト 指 向 言 語「 ド リ ト ル 」 の 設 計 と 実 装 ,情 報 処 理 学 会 論 文 誌. プ ロ グ ラ ミ ン グ, Vol. 42, No. 11, pp. 78–90(オンライン),入手先 http://ci.nii.ac.jp/naid/110002726068/ (2001-11-15). 知博西田,章 原田,亮太中村,友介宮本,敏雄松浦:初学 者用プログラミング学習環境 PEN の実装と評価 (教育用お よび初心者用言語,¡特集¿情報教育∼理念・理論・実践∼), 情報処理学会論文誌, Vol. 48, No. 8, pp. 2736–2747(オン ライン) ,入手先 http://ci.nii.ac.jp/naid/110006386503/ (2007).. よりターン 1 で A1 セルが実行される.その結果,実行規 則 2 により B1 セルと C1 セルを実行することになるが, 実行規則 4 により,それはターン 2 となる.C1 セルの実 c 2012 Information Processing Society of Japan . 4.
(5)
図
関連したドキュメント
Methods suggested in this paper, due to specificity of problems solved, are less restric- tive than other methods for solving general convex quadratic programming problems, such
What relates to Offline Turing Machines in the same way that functional programming languages relate to Turing Machines?.. Int Construction.. Understand the transition from
Restricting the input to n-vertex cubic graphs of girth at least 5, we apply a modified algorithm that is based on selecting vertices of minimum degree, using operations that remove
Theorem 1. Tarnanen uses the conjugacy scheme of the group S n in order to obtain new upper bounds for the size of a permutation code. A distance that is both left- and right-
Applications of msets in Logic Programming languages is found to over- come “computational inefficiency” inherent in otherwise situation, especially in solving a sweep of
2) every structures and signature types have self variables; 3) paths are always prefixed by some self variable. Yet, our running examples do not follow these exactly. We assume
[r]
取組の方向 安全・安心な教育環境を整備する 重点施策 学校改築・リフレッシュ改修の実施 推進計画 学校の改築.