• 検索結果がありません。

プログラミングの入門教育を対象とした概念学習システムの開発

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミングの入門教育を対象とした概念学習システムの開発"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. 1. は じ め に. プログラミングの入門教育を対象とした 概念学習システムの開発 平 澤 智 明†1 北 澤 由 貴†2. 高 野 辰 之†1 古 澤 資 栄†2. 一般的に,獲得した知識をもとにして新しい問題を解決する能力を知的技能と呼ぶ.知的 技能は,どの教育分野においても,その複雑さによって弁別や概念といういくつかの階層 に分類することができる1) .そして,中でも弁別は学習において最も基礎的な知的技能であ り,弁別を学習することで概念を学習することができる.これは,プログラミングの分野に. 治†2 諒†2. 宮 川 小 澤. おいても同様であり,プログラミング初心者の学習において弁別や概念を学習することは重 要である. プログラミング初学者を対象とした研究として,山本ら2) は,プログラミングに必要な. 学習において弁別は,基礎的な知的技能である.弁別が基礎となり,概念学習への 糧となる.プログラミング初心者の学習においても弁別や概念は重要な必要条件とな る.提案するシステムは授業の進行状況に合わせて,ソースコードを解析し自動で課 題を生成する.それによりプログラミングに必要な弁別から概念までの学習を可能に する.本稿ではこのシステムの概要と試験導入での評価について述べる.. スキルを階層化している.その階層に対して新しいスキル階層を提案し,そのスキルの有 意性について述べている.新開ら3) は,問題解決のプロセスを重視し,その教育方法につ いて述べている.内田4) は,Web ブラウザを利用した穴埋め式問題についてのシステム開 発を行っている.他にも,学習モデルの提案5) ,テスト支援ツールの開発6) などが報告され ている.しかし,これらの報告では,プログラム初学者を対象としてはいるものの,アルゴ. Development of Concept Learning System for Programming Introduction Education. リズムや文法,デバッグといった,前提として基礎的な知識は習得済みというものが多く, 知的技能における応用を含んだ上位階層が対象となっている.これに対して我々は,知的技 能において,より基礎的な下位階層を対象としている.. ,†1. ,†1. Tomoaki Hirasawa Tatsuyuki Takano †2 Osamu Miyakawa , Yoshitaka Kitazawa ,†2 Motohide Furusawa †2 and Ryo Ozawa †1. 知的技能は学校学習において中心となっており,課題を解くことによって獲得できる.そ して,授業を進める過程において,学生の理解度の確認は学生と教師にとって重要なことで あり,課題に取り組ませることにより学生の学習状況を確認できる. 課題や小テストの実施は,学生から提出された解答に対して早めに採点し,誤答に対して. In study, a discrimination is a fundamental intellectual skill. A discrimination serves as the foundation and leads to concept learning. Also in programming beginners’ study, a discrimination and a concept serve as an important necessary condition. A proposal system generates an exercise according to lesson advance. An exercise is automatically generated by source code analysis. Thereby, it allows students to study from a discrimination required for programming to a concept.This paper describes the outline of this system, and evaluation by test introduction.. は訂正するまでの時間を短くすることが重要である7) .これは,学生に結果を返却するまで の時間が増加すると,誤った解答を正解だと理解してしまう可能性があるためである.しか し,学生数に比例して採点にかかる時間は増加し,学生にフィードバックするまでの時間は 長くなる. 本研究では,学生から提出された課題をリアルタイムで自動採点し,解答結果を即座に学 生に対してフィードバックするシステムを提案する.これにより,教師は学生の学習状況を 把握し,それに応じたダイナミックな授業進行が可能となる.また,課題をリアルタイムで 自動生成する機能を持たせることにより,学生の学習状況や授業の進行度に合わせた適切な. †1 東京電機大学大学院 情報環境学研究科 Graduate School of Information Environment,Tokyo Denki University †2 東京電機大学 情報環境学部. School of Information Environment,Tokyo Denki University. 1. c 2010 Information Processing Society of Japan °.

(2) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. の階層に分類されるのかを把握し,その前提条件となっているものをそれぞれ理解する必要 がある. 例えば,Java 言語での変数の宣言を例に挙げると,図 2 のソースコードは String 型の変 数 str を宣言し,初期値として”test”という文字列を代入している.この時,型,変数名, 代入演算子,値という順番になっており,この順番は文法として定められているため,単語 の意味を 1 つ 1 つ理解していないと変更や新しく宣言することができない.. ¨. ¥. 1. § 図1. String str = ”test”;. ¦ 図2. 知的技能の階層構造. 変数の宣言. 課題作成が可能となる.本システムで扱う課題は,プログラミング学習における入門教育を. 「弁別」を 本システムが対象とする課題は,プログラミングの作成を「問題解決」として,. 対象として弁別や概念を解答させるものである.本稿では,このシステムの概要と試験導入. 含み, 「概念」であるソースコード上に出現する「型」や「変数名」といった単語の意味を解. での評価について述べる.. 答するものである.図 3 のようなソースコードを課題としたときは図 4 のように解答する. また,現在対象となっているプログラミング言語は Java 言語,C 言語であり,対象言語. 2. プログラミングにおける知的技能の学習. は増やすことが可能である.. 2.1 階 層 構 造. 2.3 解答する概念の種類. 文献 1 によると,知的技能は図 1 のような階層構造で示すことができる. 「問題解決」を頂. 本システムにおいて,Java 言語と C 言語の場合に解答することができる概念を表 1 に. 点とし,上位のものを学習しようとした場合,上位は下位要素の活用を含んでいるため下位. 示す. また,C 言語においては Java 言語と違い「ポインタ」や「構造体」といった別の概念が. 要素を学習する必要がある.最も下位にある「弁別」が非常に基礎的な知的技能であり,頂 点にある問題解決はその下位にある, 「ルールと原理」, 「概念」, 「弁別」の学習が必要である.. 存在している.逆に「クラス名」や「インスタンス変数」といった概念は出現しない.. プログラミングを対象として知的技能の階層に分類すると, 「問題解決」はプログラミン. ¨. グの作成とすることができる. 「弁別」は違いを認識する能力である.ソースコード上に出. 1 2 3 4 5 6 7 8 9. 現する単語を区別することができ,どこまでが一つの単語として成り立っているのかを認識 できることである. 「概念」とは, 「弁別」を学習した上で,分類し同定することである.ど の単語が「クラス名」や「変数名」なのかを正確に指し示すことができる能力である. 本システムでは,知的技能の階層に対してこのような対応付けを行い課題の生成をする.. 2.2 対象となる課題 プログラミング入門教育において,コンパイル,実行の方法など,実際にソースコードを. §. 書くためには,メソッドや変数の宣言,ライブラリの利用など学習しなければならないこと. ¥ public class Student{ private String name; public Student(String name){ this.name = name; } public String getName(){ return this.name; } }. ¦ 図3. は多い.もし,学習内容に対して理解できていない場合は,その内容が知的技能においてど. 2. ソースコード例. c 2010 Information Processing Society of Japan °.

(3) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. 「ポインタ」が出現してる場合, 「構造体メ C 言語で記述されたソースコード上において, ンバ名」, 「共用体メンバ名」, 「変数名」, 「仮引数名」とは別に区別しており, 「変数名(ポイ. ¨ 1 2 3 4 5 6 7 8 9. §. ¥ アクセス修飾子 class クラス名 { アクセス修飾子 インスタンス変数の型 インスタンス変数名; アクセス修飾子 コンストラクタ名 (仮引数の型 仮引数名){ インスタンス変数名 = name; } アクセス修飾子 返却値の型 メソッド名 (){ return 返却値; } } 図4. ンタ)」のようになっている.また,プロトタイプ宣言では「変数名(プロトタイプ宣言)」 のように区別していない.. 3. 概念学習システム 本節では,本システムにおける概要およびフロントエンドとバックエンドについて述べ る.また,本システムで生成する課題の対象言語として,Java 言語と C 言語を採用してい るが,対象言語は追加可能な設計となっている.これはソースコードを解析している部分を. ¦. 再利用可能な設計にすることで実現している.. 3.1 システム概要. 解答例. 本システムの流れを図 5 に示す.教師がシステムに対してソースコードを入力として与 え,システムは与えられたソースコードを構文解析し,ソースコード上に出現する概念を選 択肢として出力する.その選択肢に対して教師が必要なものだけを設定し,学生は設定され たキーワードに対応する単語を解答するという課題を生成する. 学生は出題された課題を解答し提出する.システムは提出された解答と解析して得られた 表1. 情報を比較し,リアルタイムで学生に正誤の結果を表示する.また,システムは解答結果を. 概念の種類. Java 言語の概念 アクセス修飾子 クラス名 インスタンス変数の型 インスタンス変数名 インスタンス変数の初期値 コンストラクタ名 返却値の型 返却値  メソッド名 仮引数の型 仮引数名  変数の型 変数名 アノテーション. C 言語の概念 プロセッサ (include 文) 構造体タグ名 構造体メンバ名 共用体タグ名 共用体メンバ名 メンバの型 返却値の型 返却値 関数名 返却値の型 仮引数名 変数の型 変数名 ポインタ. 保存することができ,教師は自由に閲覧することができる.これにより,教師と学生がどこ が理解できていないのか把握することができる. 学生は何度でも解答することが可能となっており,システムは提出された解答を逐一保存 する.これにより,最終的な結果だけでなく過程も把握することができる.. 3.2 フロントエンドとバックエンド 本システムのフロントエンドにはリッチクライアントを採用している.これにより,課 題の作成や解答の提出をグラフィカルかつ直感的に行える.また,教師と学生のインター フェースは別々なクライアントアプリケーションを用意している.. 3.2.1 教師用インターフェース 課題生成の流れを図 6 に示す. 教師用インターフェースではドラッグ&ドロップでソースコードを課題生成の入力として 与えることができる.与えられたソースコードを自動的に構文解析し,ソースコード上に出 現する単語の意味を選択肢として表示する.この際に,解析して得られた選択肢に対して解 答させるかどうか選択できるようになっている.これにより、授業の内容に合わせた課題作. 3. c 2010 Information Processing Society of Japan °.

(4) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. 図5. システムの流れ. 図7. 確認画面. 成が可能となる.また,単語の意味が「振る舞い名」や「メソッド名」のように呼称が複数 あった場合は,選択することができる.単語を選択し,サーバに送信することで課題の作成 が完了する. 学生が課題の提出を完了すると,サーバに蓄積された採点結果から,学生の学習状況をリ アルタイムで確認することができる.ただし,常に提出された採点結果をモニタリングして いるわけではなく,確認画面を表示した段階でのデータが反映される.現段階では,全学生 の各解答における正誤の割合を図 7 のように円グラフで表示したものが確認できる.. 3.2.2 学生用インターフェース 学生はまず ID・パスワードを入力しログインする.ログインが完了すると,教師が作成 した課題が選択できるようになる.ログインおよび課題選択画面を図 8 に示す. 課題を選択すると自動的に画面が展開し解答できるようになる.解答画面のインターフェー スでは,選択肢をドラッグ&ドロップすることで解答できるようになっている.解答画面を 図6. 図 9 に示す. 教師画面. 画面下側に配置した選択肢にはソースコード上に出現する単語の意味が記されており,選 択肢によって色付けがされている.その選択肢をソースコード上の対応した単語の上にド ラッグ&ドロップすることで解答ができる.この時,教師が選んだ選択肢のみドロップした. 4. c 2010 Information Processing Society of Japan °.

(5) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. 図8. ログインおよび課題選択画面. 際に反応し,それ以外はドロップしても解答したことにはならない.解答を提出すると即座 に採点が行われ,学生に採点結果を表示する.表示は,誤答に対しては正解とは色を変化 させ,誤答箇所をすぐ判別できるようになっている.また,採点結果は課題の提出と同時に サーバへ送信している.. 3.2.3 バックエンド バックエンドでは,サーバを用いてデータの管理を行っている.フロントエンドから受信 した課題と採点結果を,生成された日付ごとに管理している.また,フロントエンドからの 要求に対して,保存したデータを読み込んで送信している.教師画面において,学生の学習 状況を確認する際には採点結果を送信する.学生画面では,選択された課題を送信している.. 3.3 解析部の設計 本システムにおける解析部では,ソースコードを解析し単語の意味を概念として生成して いる.その解析部の構成を図 10 に示す. 解析器に対して,ソースコードを入力すると自動的に解析を行う.ここで行っている解析 は字句解析および構文解析である.これにより,ソースコードが各単語に切り分けられ概念 として生成される.解析器は Locator を生成する.この Locator とは,ソースコード上に 図9. 5. 解答画面. c 2010 Information Processing Society of Japan °.

(6) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report. が中心となる. 今回の試験導入では,2010 年度前期のコンピュータプログラミング B の講義に対して実 施した.二つのクラスを対象とし,学生の総数は 89 名である.. 4.2 方. 法. 実施方法として,まず教師がソースコードを用意し,本システムを利用して課題を生成す る.そして,学生は,提示した Web 上の URL にアクセスする.そして,URL にアクセス すると,本システムにおけるクライアントアプリケーションが自動的にダウンロードされロ グイン画面が起動する.ログイン完了後,学生は課題を選択し,課題を解答する.課題は繰 り返し解答可能で,誤答箇所の把握と訂正を即座に行える. 課題に用いたソースコードは図 11 であり,以下の項目を選択肢とし,解答させた.. 図 10. • • • • • • • • •. 解析部の構成. 出現する単語と,それに対応する位置情報をキーとしてマッピングを行い,管理している. 例えば,1 行目の 1 文字目から 1 行目の 6 文字目は「アクセス修飾子」というように管理 する.このように,Locator に対して位置情報を指定することで,その場所にある単語の情. アクセス修飾子 クラス名 インスタンス変数の型 インスタンス変数名 コンストラクタ名 返却値の型 メソッド名 仮引数の型 仮引数名. 報を取得することが可能となる. 本システムでは,Java 言語と C 言語だけでなく,構文解析によって解析可能な言語であ. 全学生の課題提出が完了後は,教師が課題の模範解答と解説を行い,本システムに対する. れば,どのような言語でも柔軟に対応できる設計になっている.これを解決するにあたり,. 評価アンケートを実施した.. デザインパターンにおける Strategy パターン8) を適用した.パターンを適用することによ. 4.3 解 答 結 果. り,解析器をモジュールとして設計することが容易となる.モジュールとして設計すること. 試験導入によって得られた解答結果を表 2 と表 3 に示す.表 2 は各項目に対する正解数と. で,解析器に依存せずにシステムの構築が可能となる.そして,モジュールを切り替えるだ. 誤答数であり,表 3 は誤答の際に,各項目に対してどの選択肢を選択したかを表している.. けで,それぞれのモジュールに対応する言語のソースコードを解析することが可能となる.. 表 2 から,最も正答率が高かったものは「クラス名」で 96 %であった.逆に低かったの は「インスタンス変数名」であり 62 %であった.誤答の内容に関して表 3 から,最も多い. 4. 試 験 導 入. 解答としては「未解答」であることがわかる.これは,学生はわからない項目があると,そ. 4.1 対. 象. の項目に対しては選択しないという傾向にある.. 本学の情報環境学部ではプログラミングの入門教育として,コンピュータプログラミング. 4.4 アンケート評価. A およびコンピュータプログラミング B という講義がある.プログラミング言語は Java 言. 本システムの評価アンケートを,試験導入と同時に学生 89 名に対して行った.評価項目. 語を採用しており,A では構造型プログラミング,B ではオブジェクト指向プログラミング. 6. c 2010 Information Processing Society of Japan °.

(7) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report 表3 項目名 アクセス修飾子 クラス名 インスタンス変数の型 インスタンス変数名 コンストラクタ名 返却値の型 メソッド名 仮引数の型 仮引数名. 各項目の誤答数. 未解答. アクセス修飾子.  クラス名 .  インスタンス変数の型 .  インスタンス変数名 .  コンストラクタ名 .  返却値の型 .  メソッド名 .  仮引数の型 .  仮引数名 . 73 1 13 21 6 18 13 27 27. — 0 2 0 0 0 0 1 0. 0 — 0 0 0 8 0 1 0. 42 1 — 1 0 14 0 2 0. 5 0 5 — 1 8 11 1 4. 1 0 2 0 — 0 8 0 0. 1 0 2 0 0 — 0 5 5. 0 1 0 3 3 3 — 2 0. 0 0 3 0 0 4 0 — 5. 0 0 0 8 1 0 2 0 —. 表2. 正解数と誤答数. 概念. ¨ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16. §. アクセス修飾子 クラス名 インスタンス変数の型 インスタンス変数名 コンストラクタ名 返却値の型 メソッド名 仮引数の型 仮引数名. ¥ import java.util.ArrayList; public class MobileTelephone{ private ArrayList<Application> list = new ArrayList<Application>(); public MobileTelephone(){ } public void addApplication(Appliction application){ this.list.add(application); } public void execute(int number){ if(number < this.list.size()){ Application application = this.list.get(number); application.execute(); } } } 図 11. TRUE 323 86 62 56 78 123 143 139 137. FALSE 122 3 27 33 11 55 35 39 41. とアンケート結果を表 4 に示す. 問 5 の作業量の減少については,コンピュータプログラミング B の講義において,本シ ステムが生成する課題と同様のものを紙で行い比較した.紙で解答する場合は,ソースコー ドを提示し解答用紙に書き写してもらう.その後,各単語に対して単語の意味を書き込むと いう方法をとった.アンケートの回答項目は「1. 減った」, 「2. どちらかといえば減った」, 「3. 変化なし」, 「4. 増えた」の 4 項目として,1 と 2 を「YES」とし残りを「NO」とした.. ¦. 問 1 において,このアプリケーションがわかりやすかったと回答した学生は 74 名であり, 全体の 83 %に達した.問 2 で操作しやすかったと解答した学生は 46 名で全体の 51 %であ. 課題に用いたソースコード. り,問 3 で面白かったと回答した学生は 78 名で,全体の 87 %であった.問 4 でドラッグ &ドロップに対して違和感がなかったと回答した学生は 58 名で全体の 65 %となった.問 5 では, 「減った・どちらかといえば減った」と回答した学生は 71 名で,全体の 79 %が減少 したと感じたが,5 名の学生が逆に増えたと回答した.また問 6 に関して,このアプリケー ションは必要であると回答した学生が 80 名で全体の 89 %,問 7 に関しては理解が深まっ. 7. c 2010 Information Processing Society of Japan °.

(8) Vol.2010-CE-107 No.8 2010/11/20. 情報処理学会研究報告 IPSJ SIG Technical Report 表4. アンケート結果. アンケート項目 問 問 問 問 問 問 問 問 問. 1 2 3 4 5 6 7 8 9. このアプリケーションはわかりやすかったですか このアプリケーションは操作しやすかったですか このアプリケーションは面白かったですか ドラッグ&ドロップで解答することに違和感はありませんでしたか 紙で解答する場合と比べて作業量は減少しましたか 単語の意味を解答する課題は必要だと思いますか このアプリケーションを利用して理解は深まりましたか 今後,このアプリケーションを導入することに関してどう思いますか その他,感想を自由に書いてください. 切なものかどうかを,実際に講義を行う教師に対してヒアリング等を実施し,表示形式およ YES 74 46 78 58 71 80 77 83 –. NO 15 44 11 31 18 9 12 6 –. び集計方法を改善する予定である.アンケートによって得られた意見よりインターフェース に対する改善を行い,より円滑に解答を行えるように,解答した選択肢のリセットや,前画 面に戻る機能の追加を行い,システムの完成を目指す. 発展として,本システムを導入したクラスと,導入しなかったクラスの学生に対して,定 期試験などを用いて理解度の調査を行い,本システムの学習効果に対する有用性を検証して いく.. 参. 考. 文. 献. 1) R.M. ガニェ,W.W. ウェイジャー,K.C. ゴラス,J.M. ケラー著 鈴木克明,岩崎望  監訳:インストラクショナルデザインの原理,北大路書房 (2007). 2) 山本三雄,関谷貴之,山口和紀:プログラミングのスキル階層に関する研究,情報処 理学会研究報告,Vol.2010-CE-104,No.3,pp.1-25(2010). 3) 新開純子,宮林穎夫:問題解決のプロセスを重視したプログラミング教育の実践,電 子情報通信学会技術研究報告,ET,教育工学 94(170),pp.77-84(1994). 4) 内田保雄:初級プログラミング学習のための自動作問システム,情報処理学会研究報 告,コンピュータと教育研究会報告,2007(123),pp.109-113(2007). 5) 水谷晃三,赤羽根隆広,荒井正之,海上隆:プログラミング初学者のための学習モデ ル RPRaS の提案,情報科学技術レターズ 6,pp.343-346(2007). 6) 上河内頌之,松浦左江子:Java プログラミング初学者に対するテスト方法学習ツール, 電子情報通信学会技術研究報告,ET,教育工学 106(364),pp.37-42(2006). 7) 田鹿 秀継 編著:認知心理学からみた授業過程の理解,北大路書房 (1999). 8) 結城 浩 著:Java 言語で学ぶデザインパターン入門,ソフトバンクパブリッシング (2004).. たと回答した学生が 77 名で全体の 86 %に及んだ.問 8 では,全体の 93 %である 83 名が このアプリケーションを導入して良いと回答した. これらの結果から,アプリケーションに対して学生の大半は肯定的な評価をしているとい える.問 3 や問 8 の結果をみると,本システムの導入に関しては抵抗は少ないと考えられ る.また,導入により,学生主観における達成感や効力感の向上が期待される. しかしながら,問 2 および問 3 の結果からわかるように,半数近くがこのアプリケーショ ンの操作に対して不満を感じていることが確認された.アンケートに自由記述式の意見を求 めたところ, 「選択肢が色によって見づらい」や「ソースコードのスクロールが使いづらい」 という意見が得られた.他にも, 「前画面に戻る機能がほしい」など改善を期待する意見が 多く得られた.問 5 において,作業量は増えたと回答した学生の一部では「操作がよくわか らなくて逆に作業が増えた」と記述している.これについてはよりわかりやすく,より操作 しやすいインターフェースへと改善することで解決できると考えられる.. 5. ま と め プログラミングの入門教育を対象として,学生が提出した課題をリアルタイムで自動採点 し,採点結果を即座に学生に対してフィードバックするシステムを開発し,実際の授業に対 して試験的に導入し評価を行った.導入することにより,学生の学習状況を把握することが できるようになり,ダイナミックな授業進行と迅速なフィードバックが可能となった.また, コンピュータプログラミングにおける,概念や弁別を解答させる課題の生成を可能にし,学 生の学習状況に合わせた適切な課題作成ができるようになった.アンケート評価により,本 システムの導入に対して良好な評価が多く得られた. 今後の取り組みとして,課題の解答に対する正誤の割合を示したグラフが教師にとって適. 8. c 2010 Information Processing Society of Japan °.

(9)

図 3 ソースコード例

参照

関連したドキュメント

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

日数 ワクチン名 製造販売業者 ロット番号 接種回数 基礎疾患等 症状名(PT名).

事業名  開 催 日  会      場  参加人数  備    考  オーナーとの出会いの. デザイン  3月14日(土)  北沢タウンホール 

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

「PTA聖書を学ぶ会」の通常例会の出席者数の平均は 2011 年度は 43 名だったのに対して、2012 年度は 61 名となり約 1.5

「PTA聖書を学ぶ会」の通常例会の出席者数の平均は 2011 年度は 43 名、2012 年度は 61 名、2013 年度は 79 名、そして 2014 年度は 84

「PTA聖書を学ぶ会」の通常例会の出席者数の平均は 2011 年度は 43 名、2012 年度は 61 名、そして 2013 年度は 79

区分 事業名 実施時期