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

初 級 プ ロ グ ラ ミン グ教 育 に お け る支 援 シス テ ム に関 す る研 究

N/A
N/A
Protected

Academic year: 2021

シェア "初 級 プ ロ グ ラ ミン グ教 育 に お け る支 援 シス テ ム に関 す る研 究"

Copied!
7
0
0

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

全文

(1)

論 文

初 級 プ ロ グ ラ ミン グ教 育 に お け る支 援 シス テ ム に関 す る研 究

〜 因 果 マ ップか らJavaソ ー ス の 自動 生 成 に つ い て 〜

DesignandImplementationofSupportSystemforBeginner'sProgramming Education

‑AutomaticgenerationofJavaProgramfromCause‑EffectMap一

堀 内 幸 造1)、 長 田 一 興2) KozoHoriuchi,KazuokiOsada

24

Abstract:"4VeaimedattheconstructionoftheintellectualCAIsysteminthebeginner'sprogrammingeducationand

studyaboutthedefinitionofprogramspecification[1][2][3].Weexpectitismechanicallydecidablethatstudents'programs arecorrectornotandwhichadvicesmustbegivenwhentheyareincorrectbycomparingthemtoit.Butitis

insufficientifthespecificationisonlycomprisedofthesolutiontorealizeourexpectation.Itmustbeassociatedwiththe commonsenseandknowledgetobeusedtobuildtheprogramtogiverelevantadvises[4].Toexpressthecommonsense

andknowledgeinadditiontothesolution,weproposedakindofdesigndiagramcombiningtheflow‑chartandthedata flowdiagram,theCause‑EffectMap[1][2].Conventionallytheflow‑chartisdrawnforhumanprogrammerstounderstand whatandhowtoprogramanditisnotdirectlymachine‑interpretable.Bycombiningthedata‑flowdiagramwithit,the objectsofeachprocesscanbeexplicitlyexpressed,butrigidnessamongtheorderofexecutionofprocessesstillremains intheflow‑chart.

Bycontrast,processesintheCause‑EffectMaparelooselycoupledbyjustspecifyingtheirstartconditionsand resultedstatechangesofdatawhichreflectsomecommonsenseorknowledge.Inthispaperwefullyexplainbothof themandconsideranexperimentalsoftwaretogenerateaprogramfromtheCause‑EffectMap.

キ ー ワ ー ド:プ ロ グ ラ ム の 自 動 生 成,知 的CAI,因 果 マ ッ プ Keywords:automaticgenerationofprograms,intellectualCAI,Cause‑EffectIVIap

1.は じめ に

我 々 は 初級 の プ ロ グ ラ ミン グ教 育 にお け る知 的CAIシ ス テ ム の構 築 を 目指 し、 プ ロ グ ラム 課題 の仕 様 化 に関 す

る研 究 を行 って きた[1][2][3]。 これ ら仕 様 が 与 え られ れ ば、

学 習者 が 作成 した プ ロ グ ラ ム(ソ ー ス コー ド)が課題 の仕 様 を満 た して い るか 判 断 で き る よ うに な り、学 習 者 に適 切 な 教授 を行 うこ とが で き る。 しか し、単 純 に仕様 化 し た 課題 と照 ら し合 わせ る だ けで は 有 用 なCAIシ ス テ ム と して は 不十 分 で あ る。 そ こで 、 学習 者 が プ ロ グ ラ ミ ン グ とい う行 為 を どの よ うに据 え 、 思 考 し解 を得 て い る か

「 プ ログ ラ ミン グ にお け る常識 と知識 」 とい う観 点 か ら 考 察 して き た[4]。こ れ らプ ロ グ ラム 課題 の仕 様 化 とプ ロ グラ ミン グ にお け常 識 と知識 を 表現 す る手 法 と して我 々 は 咽 果 マ ップ」 を提 唱 し、 この 因果 マ ップ を描 く こ と に よ り学習 者 へ の 効 果 的 な 教授 を 実現 す る こ と を 目標 と

す る。

プ ロ グ ラ ム を作 成 す るた め に従 来 か ら利 用 され て い る 図 に フ ロー チ ャー トが あ るが 、 フ ロー チ ャー トは あ くま で も1つ の解 を 表 現 す る図 で あ り、解 の 多様 性 に は 対応 で き な い。 そ こで フ ロー チ ャー トをべ 一 ス に個 々 の デ ー タ の状 態 や 処 理 の 前 後 関係 を考 慮 し、各 処 理 の 間 に 自由 な繋 が りを持 た せ た 図 が 因果 マ ップ で あ る。 同 種 の 図 に デ ー タ フ ロー 図 が あ るが 、 因果 マ ップ はデ ー タの 状態 を 3つ の 状 態 に分 け て 表 現 し、 そ れ らの状 態 に よ っ て 多様 な繋 が りを持 つ こ とが で き る点 で大 き く異 な っ て い る。

そ の た め学 習 者 に よっ て 異 な る多 様 な解 に も対応 で き 、 描 かれ た図 は 課題 の仕 様 を 可視 化 した もの とな る。 ま た デ ー タ の状 態 を見 な が ら処 理 が 行 わ れ る過 程 が 見 え る た め プ ロ グ ラム の 流れ の理 解 が容 易 に な り、 プ ログ ラ ミン グ教 育 にお い て は とて も有 用 で あ る。

1)産 業 技 術 研 究 科 電 子 情 報 工 学 専 攻 研 究 生[email protected] 2)産 業 理 工 学 部 情 報 学 科 教 授[email protected]

(2)

そ こ で 本 論 で は 因 果 マ ッ プ の 描 き 方 の 中 心 で あ る

「デ ー タ 状 態 の 変 化 」、 「起 動 条 件 」 に つ い て 解 説 し、 因 果 マ ッ プ か ら プ ロ グ ラ ム を 自 動 的 に 生 成 す る ソ フ トウ ェ ア に つ い て 考 察 す る。

2因 果 マ ッ プ の 構 成

因 果 マ ッ プ は 「タ ス ク 」 が 複 数 個 組 み 合 わ さ れ 構 成 さ れ て お り、 個 々 の タ ス ク は い く つ か の 「デ ー タ 」1つ の

「処 理 」 か ら 構 成 され て い る 。 2.1タ ス ク

図1は タ ス ク の 基 本 的 な 描 き 方 で あ る。 入 カ デ ー タ 描 画 エ リ ア に は 処 理 に 必 要 な 入 カ デ ー タ を 複 数 個 描 く こ と が で き 、 出 力 デ ー タ描 画 エ リ ア に は 処 理 後 に 出 力 され る デ ー タ を 描 く。

!

く,デ.朧.'Ji

タ ス ク ー、

処理

漕 データ細 リ レ

図1因 果 マ ッ プ の 構 成:タ ス ク

デ ー タ に は い く つ か の プ ロパ テ ィ が 存 在 す る。

●名 前:変 数 デ ー タ の 場 合 変 数 名 を 与 え る。

● モ デ ル:プ ロ グ ラ ム 内 に お け る 型 に 当 た る 情 報 。

●値:デ ー タ が 持 っ て い る 値 。

●デ ー タ 状 態:

一 状 態:値 が な い、 値 が 変 化 、 値 が 確 定 と変 化 。 一 使 用:未 使 用、 使 用 中 、 使 用 済 と変 化 。 一 確 認:未 確 認、 確 認 済 と 変 化 。

名 前 は 変 数 デ ー タ の 場 合 必 須 で 、 プ ロ グ ラ ム 内 で 使 用 す る 変 数 名 と な る 。

モ デ ル は 整 数 、 実 数 、 文 字 な ど の プ リ ミテ ィ ブ な 型 に 加 え ク ラ ス が 指 定 で き 、 デ ー タ が 持 っ て い る値 が ど の よ

うな 種 類 な の か 定 義 で き る。

値 は デ ー タ が 持 っ て い る 値 を 表 し、 モ デ ル に よ っ て 指 定 で き る 値 が 決 ま る 。 モ デ ル に ク ラ ス が 指 定 され て い る

と き は ク ラ ス 名 が 与 え ら れ る。

デ ー タ 状 態 に は3つ の 異 な っ た 状 態 が 存 在 す る 。 「状 態 」 は 値 に 対 し て 「値 が な い 」、 「値 が 変 化 」、 「値 が 確 定 」

と 変 化 し 、 「使 用 」 は デ ー タ 自体 に 対 して 「未 使 用 」,「使 用 中 」、 「使 用 済 」 と変 化 し、 「確 認 」 は 同 じ く デ ー タ 自体 に 対 し て 「未 確 認 」、 「確 認 済 」 と 変 化 す る 。 こ れ らデ ー

タ 状 態 の 変 化 は 基 本 的 に 処 理 ご とで 自 動 的 に 行 わ れ る が 、2' 値 が 確 定 、 使 用 済 、 確 認 済 に 関 し て は 作 図 者 が 意 図 的 に 与 え な い 限 り変 化 し な い 。

2.2デ ー タ

デ ー タ は 図2の よ うに 描 く。 デ ー タ に は 変 数 デ ー タ と 値 デ ー タ が あ り、 変 数 デ ー タ は 同 じ変 数 同 士 を 同 じ色 で 塗 りつ ぶ し て 表 現 し、 値 デ ー タ は 白 で 塗 りつ ぶ す 。 変 数 デ ー タ は1つ の 因 果 マ ッ プ 内 で 同 色 の も の は す べ て 同 じ デ ー タ で あ り、 値 デ ー タ は そ れ ぞ れ が 異 な っ た デ ー タ で あ る 。

1̲一 一 一̲̲デ ー タ ーi

,、

1・ 名 前 \ \I

I:這 デルM

l\ ° 藩 の状制

1 、

ー̲̲̲一

\ 一確認/ノ

図2因 果 マ ッ プ の 構 成:デ ー タ

2.3処 理

我 々 は 本 学 部 情 報 学 科 「オ ブ ジ ェ ク ト指 向 プ ロ グ ラ ミ ン グ 」 で 使 用 した 課 題 のe囲 に お け る 因 果 マ ップ の 定 義 を 行 っ た 。 そ の た め 想 定 さ れ る プ ロ グ ラ ミ ン グ 言 語 は Java言 語 で 、 課 題 内 容 か ら抽 出 した 処 理 は30種 類 と な っ

た 。 表1に 一 覧 を 掲 載 す る 。

表1処 理 一 覧

イ ン ク リ メ ン ト イ ン ス タ ン ス の 生 成 ゲ ッ タ ー の 呼 び 出 し ス レ ッ ドの 終 了 を 待 機

ス レ ッ ドー 時 停 止 ス レ ッ ド起 動 セ ッ タ ー 呼 び 出 し そ の 他 条 件 ブ ロ ッ ク の 開 始

デ ク リメ ン ト メ ソ ッ ドを 終 了 メ ソ ッ ド呼 び 出 し 繰 り返 し ブ ロ ッ ク 繰 り返 しブ ロ ッ ク の 開 始 繰 り返 し ブ ロ ッ ク の 終 了

繰 り返 しを終了 す る 計 算す る

条 件 ブ ロ ッ ク条 件 ブ ロ ッ ク の 開 始 条 件 ブ ロ ッ クの 終 了 親 の コ ン ス トラ ク タ 呼 び 出 し 親 の メ ソ ッ ド呼 び 出 し 他 の コ ン ス トラ ク タ呼 び 出 し

代 入す る 入 力す る

配列 呼び 出 し 表示 す る

例外 を受 け る 例外 を受 け るの 開始

例外 を受 けるの 終 了 例 外 を投 げ る

(3)

近 畿大 学 産 業理 工学 部 かや の も り11(2009)

図3一 般 的な タ ス ク 図4処 理:表 示 す る 図5処 理:計 算 す る 図6処 理:代 入 す る

26

本 項 で は30種 類 あ る処 理 の う ち 使 用 頻 度 の 高 い 「表 示 す る 」、 「計 算 す る 」、 「代 入 す る 」、 「条 件 式 」、 「繰 り返 し 文 」、そ し てJava言 語 と して 特 徴 的 な 「例 外 処 理 」 に つ い て 説 明 す る 。

2.3。1一 般 的 な タ ス ク の 描 き 方

タ ス ク を デ ー タ と 処 理 を含 め て 描 く と 図3の よ うに な る。 図3は 複 数 の 変 数 デ ー タ(入 カ デ ー タ1、 入 力 デ ー タ 2)を 使 っ た 処 理 を 行 い 、 値 デ ー タ(出 カ デ ー タ)を 出 力 す る タ ス ク を 表 して い る 。 こ の 一 般 形 を べ 一 ス に 個 々 の 処 理 に よ っ て 入 力 や 出 力 が 変 化 す る 。

2.3.2表 示 す る

処 理 「表 示 す る 」 は 文 字 列 や 変 数 の 値 を 標 準 出 力 へ 出 力 す る 処 理 で あ る 。 図4は 文 字 列(値 デ ー タ)と 変 数 num(変 数 デ ー タ)を 受 け 取 り表 示 す る 因 果 マ ッ プ の 例 で あ る。 図4か ら 得 ら れ る 具 体 的 な コ.̲̲.ドは 、C言 語 で は

「printf("文字 列%d",n㎜);」 、Java言 語 で は 「Systern.out.

print("文 字 列"+num);」 に な る。

プ ロ グ ラ ム 課 題 に お い て 結 果 を 表 示 し た り 、 入 力 促 進 メ ッ セ ー ジ を 表 示 した り と 頻 繁 に 使 わ れ る 処 理 で あ る 。 2.3.3計 算 す る

処 理 「計 算 す る 」 は 変 数 デ ー タ 同 士 又 は 値 デ ー タ 同 士 又 は そ れ ら 両 方 を 使 い 、 処 理 に 指 定 し た 計 算 式 を 実 行 す る 処 理 で あ る 。 図5は 変 数sum(変 数 デ ー タ)と 変 数 n㎜(変 数 デ ー タ)を 受 け 取 り指 定 され た 計 算 式 「A+B」

を 計 算 し 、 計 算 結 果 を 値 デ ー タ と し て 出 力 す る 因 果 マ ッ プ の 例 で あ る 。 図5か ら 得 ら れ る 具 体 的 な コ ー ドはC言 語 、Java言 語 共 に 「sum+n㎜ 」 に な る 。

指 定 す る 計 算 式 の 書 式 は 入 力 デ ー タ の 順 番 に 「A,B, C̲Z」 と し、 演 算 子 は そ の ま ま 記 述 す る 。

2.3.4代 入 す る

処 理 「代 入 す る 」は 入 カ デ ー タ1へ 入 力 デ ー タ2を 代 入 す る 処 理 で あ る 。 図6は 変 数sum(変 数 デ ー タ)と 変 数 num(変 数 デ ー タ)を 受 け 取 り変 数s㎜ へ 変 数numを 代 入

す る 因 果 マ ッ プ の 例 で あ る 。 図6か ら 得 ら れ る 具 体 的 な コ ー ドはC言 語 、Java言 語‑ーに 「sum=num;」 に な る 。

処 理 「計 算 す る 」 で は 計 算 を 行 い 結 果 を 出 力 す る だ け な の で そ の ま ま で は 結 果 を 変 数 に 代 入 す る こ と は で き な い 。 そ の よ う な 場 合 、 処 理 「代 入 す る 」 を 使 い 計 算 結 果 を 変 数 デ ー タ へ 代 入 す る こ とが で き る。

2.3.5条 件 文

条 件 文 はif文 を 実 現 す る 処 理 で あ る 。 因 果 マ ッ プ で 描 く場 合 に は 図7の よ うに 、 処 理 「条 件 ブ ロ ッ ク の 開 始 」、

「条 件 ブ ロ ッ ク 」、 「条 件 ブ ロ ッ ク の 終 了 」の3つ の 処 理 を 繋 げ て 描 く こ と で 表 現 す る 。 図7か ら得 られ る 具 体 的 な コ ー ドはC言 語 、Java言 語 共 に 「if(sum>100){〃 条 件 ブ ロ ッ ク の 処 理}」 に な る 。

条 件 文 は 複 数 の タ ス ク が 一 組 と な り実 現 して い る。 条 件 式 の 書 式 は 処 理 「計 算 す る 」 の 計 算 式 の 書 式 と 同 じ で

あ る 。

2.3。6繰 り 返 し文

繰 り返 し 文 を 実 現 す る 処 理 で あ る。 因 果 マ ッ プ で 描 く 場 合 に は 図8の よ う に 、 処 理 「繰 り返 し ブ ロ ッ ク の 開 始 」、

「繰 り 返 し ブ ロ ッ ク 」、 「繰 り返 しブ ロ ッ ク の 終 了 」の3つ の 処 理 を 繋 げ て 描 く こ と で 表 現 す る。 図8の よ うに3つ の 処 理 で 構 成 さ れ て い る場 合 は 、while文 に な り、 図9の

よ う に 、 処 理 「繰 り返 し ブ ロ ッ ク の 開 始 」、 「初 期 化 式 」、

「繰 り返 し ブ ロ ッ ク 」、 「繰 り返 し式 」、 「繰 り返 しブ ロ ッ ク の 終 了 」 の5つ の 処 理 を 繋 げ て 描 か れ て い る 場 合 はfor 文 に な る。 図8か ら得 ら れ る 具 体 的 な コ ー ドはC言 語 、 Java言 語 共 に 「while(s㎜>100){//り 返 しブ ロ ッ ク の 処

理}」 に な り、図9か ら得 られ る 具 体 的 な コー ドはC言 語 、 Java言 語 共 にrfor(inti=0;i<100;i++){〃 繰 り 返 し ブ

ロ ッ ク の 処 理}」 に な る 。

「繰 り返 しブ ロ ッ ク の 開 始 」、 「繰 り返 しブ ロ ッ ク 」、 「繰 り返 しブ ロ ッ ク の 終 了 」の3つ の タ ス ク は ど ち ら も 共 通 し て い る が 、 「初 期 化 式 」 も し く は 「繰 り返 し 式 」 ど ち らか

(4)

変数蜘"

嚢錘ダータ'撫 繊

条件 ブロ ックの開 始 A>100

条件 ブロック

処理

条件 ブロ ックの終 了

漉へ'欄.

r寂 数

笈数 デー タ 麟"

罎 リ返 しブロ ソクの 開始 A>100

繰リ返 しブロック

処理

繰リ返しプロノクの終了

図7処 理:条 件 文 図8処 理:繰 り返 し文(while)

一 方 が 指 定 され て い る場 合 自動 的 に の繰 り返 し文 とな る。

2.3.7例 外 処 理

メ ソ ッ ドが 例 外 を送 出 した場 合 にそ れ ら を受 け 取 る処 理 で あ る。 因 果 マ ップ で描 く場 合 に は 図10の よ うに、例 外 を送 出す る対 象 の タス ク か ら矢 印 を伸 ば し、例 外 の種 類 ご とに処 理 「 例 外 を受 け るの 開始 」 、 「 例 外 を受 け る」、

「 例 外 を受 け る の終 了」 の3つ の処 理 をつ げ て描 く こ と で表 現 す る。

受 け取 る例 外 の数 だ け矢 印 を伸 ば し例 外 を受 け る必 要 が あ る。

2.4デ ー タ に 従 属 す る デ ー タ と処 理

2.22.3で は デ ー タ と 処 理 の 基 本 的 な 描 き 方 に つ い て 述 べ た 。 本 項 で は デ ー タ と 処 理 が デ ー タ に 従 属 し て い る 場 合 の 描 き 方 に つ い て 説 明 す る 。

2.4.1デ ー タ に 従 属 す る デ ー タ

図11は あ る デ ー タ に 従 属 す る 時 の デ ー タ で あ る。

デ ー タ の 隣 に 従 属 元 の デ ー タ を 指 定 す る 。 た と え ばJava 言 語 で 、 あ る ク ラ ス の プ ロ パ テ ィ を 利 用 す る 場 合 な ど が

こ れ に 当 た る 。

2.4zデ ー タ に 従 属 す る タ ス ク

図12は あ る デ ー タ に 従 属 す る 時 の タ ス ク で あ る。 処 理 の 隣 に 従 属 元 の デ ー タ を 指 定 す る 。 た と え ばJava言 語 で 、 あ る ク ラ ス の メ ソ ッ ドを 呼 び 出 す 場 合 な ど が これ に 当 た る 。

図9処 理:繰 り返 し文(for)

ー るけ受を外例 ー理‑

1

1

る}﹂

/

図10処 理:例 外 処 理

'デ ー タ に 従 属 す る タ ス ク ー 、

3デ ー タ 状 態 の 変 化

2.2で デ ー タ状 態 に つ い て 述 べ た が 、 そ れ ら デ ー タ 状

図11デ ー タ に 従 属 す る デ ー タ 図12デ ー タ に従 属 す る タ ス ク

態 の変 化 につ い て くわ し く説 明 す る。 通 常 デ ー タ状 態 の 変 化 は処 理 に よ り標 準 の動 作 が 決 ま って い る。 た とえ ば 処 理 「 代 入 す る」の場 合 、2っ の入 カ デ ー タ の うち1つ 目 の入 カ デ ー タは代 入 され る側 の デ ー タで 、 デー タ状 態 は 状 態 が 「 値 が 変化 」、使 用 が 「 未 使 用 」 、確 認 が 「 未確 認 」 に変 化 す る。2つ 目の 入 カ デ ー タは 代 入 す る側 の デ ー タ で 、 デ ー タ状 態 は使 用 が 「 使 用 中 」 に 変化 す る。 この よ うに 処理 ご とにそ れ ぞ れ 標 準 の 変 化 が あ る が 、作 図 者 が この標 準 の変 化 とは別 に 個 々 の デ ー タ に対 して デ ー タ状

2

(5)

28

近 畿大 学 産 業理 工学 部 かや の も り11(2009)

図13デ ー タ状態 の変 化 図14起 動 条件

態 の 変 化 を起 こす こ と も可能 で あ る。 特 に状 態 の 「 値 が 確 定 」、使 用 の 「 使 用 済 」、確 認 の 「 確 認 済」 につ い て は 作 図 者 が 意 図 的 に デ ー タ の変 化 を起 こ さな い と標 準 の 変 化 で は 起 こ らな い よ うに な っ て い る。

図13は デ ー タ状 態 の 変 化 の あ る タ ス ク を表 した 因 果 マ ップ で あ る。 状 態 変 化 フ ィー ル ド内 で状 態 の変 化 を列 挙 し、 各状 態 の変 化 にデ ー タ を入 力す る こ とで タス ク後 に、 個 々 のデ ー タの 状態 を変 化 させ る こ とが で き る。

4起 動 条件

起 動 条件 は最 終 的 に描 か れ た 因果 マ ップ 内の タス ク同 士 を どの よ うな順 序 で 繋 ぎ合 わせ る か を決 定 す る重 要 な 機 能 で あ る。 プ ロ グ ラ ミン グに お い て 、処 理 問 に前 後 し て は な らな い順 序 が 存 在 す る こ とが 多 くみ られ る。 た と え ば 、合 計 か ら平 均 値 を求 め る問題 の場 合 、 合 計 値 と入 力 した デー タ の個 数 が 確 定 して い な い の に平 均 値 を 出す 計 算 は行 うこ とが で きな い。 この場 合 必 ず 先 に 合 計値 を 求 め る処 理 を行 い 、 合 計値 とデ ー タ の個 数 が 確 定 す る こ とが平 均 値 を求 め る前 提 条 件 とな る。

こ の よ うな処 理 の 順 序付 け の根 拠 と して 、 因 果 マ ップ で は処 理 の結 果 をデ ー タ状 態 の変 化 、 処 理 の 起 こる原 因 を起 動 条 件 と して 表 現す る こ とで タ ス ク問 の 柔 軟 な繋 が りを実 現 して い る。

図14は 起 動 条 件 の あ る タ ス ク を表 した 因 果 マ ップ で あ る。 起 動 条 件 フ ィール ド内 で起 動 条 件 を列 挙 し、各 起 動 条 件 にデ ー タを 入 力す る こ とで この タス クを起 動 させ

る条 件 を指 定す る こ とが で き る。

5因 果 マ ップ の例 と 自動 生 成 ソフ トウ ェ ア

本 学 部 情 報 学 科 「オ ブ ジ ェ ク ト指 向 プ ログ ラ ミン グ」

で使 わ れ て い る 問題 か ら課題12‑1に つ い て 実 際 に作 成 し た 因果 マ ップ と因果 マ ップか ら 自動 生 成 した プ ロ グ ラ ム を確 認 し、課 題 の仕 様 か ら解 の生 成 につ い て検 証 す る。

現 在 の ソ フ トウェ ア に は因 果 マ ップ の 作 図機 能 が な い た め、 因 果 マ ップ と等 価 なプ ロ グ ラム を 手 入 力 で記 述 しそ のプ ロ グラ ム を実 行 す る必 要 が あ る。

5.1オ ブ ジ ェ ク ト指 向 プ ロ グ ラ ミ ン グ 課 題12‑1 5.1.1問 題

2つ の 例 外 ク ラ スCarException1、CarException2、Car

ク ラ ス 、TestCaxExceptionク ラ ス を 作 成 し な さ い 。 各 ク ラ ス の 仕 様 は 次 の 通 り で あ る 。

● ク ラ ス:CarException1 一 親 ク ラ ス:Exception

● ク ラ ス:CarException2 一 親 ク ラ ス:Exception

● ク ラ ス:Car

一 イ ン ス タ ン ス 変 数

*intnum;〃 車 の ナ ン バ ー

*doublegas;〃 ガ ソ リ ン 量 一 コ ン ス ト ラ ク タ:引 数 な し

、 処 理 な し 一 イ ン ス タ ン ス メ ソ ッ ド

*voidsetCar(intn,doubleg)

・ 例 外:CarException1

,CarException2

・ 弓i数1:intn

・ 引 数2:doubleg

・nとgで 、numとgasを 設 定 。 そ の 際 、n㎜

が4桁 の 数 で な い 場 合 に は 、CarException1を 送 出 。gasが 負 の と き に は 、CarException2を 送 出 。

*voidshow()

・ 引 数 な し

・numとgasを 表 示。

● ク ラ ス:TestCarException

‑mainメ ソ ッ ドで 行 う こ と:

①Carオ ブ ジ ェ ク トcarを 作 成

②setCarを 使 い 、 車 の ナ ン バ ー と ガ ソ リ ン 量 を そ れ ぞ れ 、12345と56.7に 設 定

③ 例 外CarException1を 受 け 取 り 、 エ ラ ー メ ッ セ ー ジ の 表 示

④setCarを 使 い 、 車 の ナ ン バ ー と ガ ソ リ ン 量 を そ れ ぞ れ 、1234と 一56.7に 設 定

⑤ 例 外CarException2を 受 け 取 り 、 エ ラ ー メ ッ セ ー ジ の 表 示

⑥setCarを 使 い 、 車 の ナ ン バ ー と ガ ソ リ ン 量 を そ れ ぞ れ 、1234と56.7に 設 定

⑦showを 使 い 、 車 の 状 態 を 表 示 一 実 行 例:

車 の ナ ン バ ー が 不 正 で す 。

(6)

初 級 プ ロ グ ラ ミ ング教 育 にお け る支 援 シ ステ ムに 関 す る研 究 〜 因果 マ ップ か らJavaソ ー ス の 自動 生 成 につ い て 〜

2::

uov馴ω

撫1

。9n灘

暫旙7樋"7葦

(5

メノンド辱【F出

③ 蜘

盈る

㌔鞍

翠塾o「

凱壕

メソ7ト噂σ出し

血o 代入する メソ7ド呼U出し

轍⊂

:〉;,,

例外を愛けるのO

C御 ㎝1 "舛琳 ナるの属麹

c繍 順1 例外ξ受けるの躍紬

ζ帥1

例外董愛けるの闘鋤

血 叩伽oi

例外を受ける 例外を愛ける 例外を受ける 例外を受ける

ρ

寓審殉9パー炉石 τ

P暑'バ τ

「̀,,̀一 「轟o.'亀Yid一炉 で

表 示 す る

「嵐

表示する 表示する 表示する

例界を愛けるの降了 f‑91i畳けるo浸 働 を畳けるの縫了 例nesuaの 凝了

LE 94

噸 農酬 麹 物 溜 肌

例外脅愛けるの壕了

"臨 認轡

例外を受ける

..,  ̲a.

表示する

偶外を凱ナるの終了

図15課 題12‑1因 果 マ ッ プ(mainメ ソ ッ ド)

Car

輿

脇蔀'

1 陸" 随" 1 陸" 盤蟹陸"

ρクラトスンコ OWO

駿

setCarQ

野 。,

メソッドを聞蛤

条件ブロック

灘 舗

鐸壇:」}最 件フロ7クの漣了

駅 圃"

㌘翼 舳謡

璋邸

臼腓の発生 例昇の発生 メソッドを鰹了

く郡t回

繍 プロ7クのO Aく0.0

条件ブロ ック

朧鍛

鷺2確91鍾仔プロ7クの腰7

t65wTsw e

21

図7b課 題12‑1因 果 マ ッ プ(Carク ラ ス)

ガ ソ リ ン 量 が 不 正 で す 。 車 の ナ ン バ ー は1234で す 。 ガ ソ リ ン 量 は56,7で す 。 丘1.2因 果 マ ッ プ

課 題12‑1を 因 果 マ ッ プ で 描 く と 図15、 図16の よ うに な る。

課 題12.1はmainで 行 う こ と が 順 序 立 て て 指 定 され て お り、 処 理 間 に 明 確 な 因 果 関 係 が な い 。 こ の よ うな 課 題 の 場 合 図15の よ う に タ ス ク の 上 部 に 起 動 順 番 を 与 え る

こ と で 順 番 通 り に 処 理 を 繋 ぐ こ と が で き る 。 起 動 番 号 を 与 え た タ ス ク と 起 動 条 件 に よ っ て 起 動 す る タ ス ク は 因 果 マ ッ プ 内 で 混 在 させ る こ と が 可 能 で あ る 。

5.1.3プ ロ グ ラ ム

図17、 図18、 図19、 図20は 因 果 マ ッ プ を 手 入 力 で オ ブ ジ ェ ク ト化 し、 そ こ か ら 自動 生 成 した 解 の プ ロ グ ラ ム で あ る 。

5.1.4考 察

生 成 さ れ た プ ロ グ ラ ム 図17を 実 行 す る と課 題 を 満 た

(7)

近 畿大 学 産 業 理 工学 部 かや の も り11(2009)

30

1:publi(classText⊂arEx(:eption{

2:publicstaticvoidmain(Stringargsp){

3:doublegas=0.0;

4:Carcar=null;

5:intnum=0;

6:car=newCar();

7:try{

8:car.setCar(12345,56.7);

9:}catch(CarExceptionle){

10:System.ot.println("車 の ナ ン バ ー が 不 正 で す 。");

11:}catch(CarException2e){

12:System.ot.println("ガ ソ リ ン 量 が 不 正 で す 。 °);

13:}

14:try{

15:car.setCar(1234,‑56.7);

16:}catch(CarExceptionle){

17:Sy5tem.ot.println("車 の ナ ン バ ー が 不 正 で す 。'「);

18:}catch(CarException2e){

19:Systems)t.println〔"ガ ソ リ ン 量 が 不 正 で す 。1');

20:}

21:try{

22:car.setCar(1234,56.7);

23:}catch(CarExceptionle){

24:Sytem.ot.println("車 の ナ ン バ ー が 不 正 で す 。"L 25:}catch(CarException2e){

26:System.ot.println("ガ ソ リ ン 量 が 不 正 で す ♂ 「);

27:}

28:car.showp;

29:}

30:}

図17課 題12‑1プ ロ グ ラ ム1丁es†CarExceptionク ラ ス)

した動 作 をす る。 ま た 、例 外 処 理 の課 題 はJavaを 学 ぶ学 習 者 に とって 難 解 な 課題 で あ り、 これ らの 処 理 が どの よ うに起 こ る のか が 因 果 マ ップ に よ り見 え るの で 理解 が容 易 に な る。 この 課題 の 出題 者 の意 図 に 「 例 外 処理 の動 作 確 認 を行 う」 こ とが あ る た め 図や 解 に冗 長 な 部 分 がみ ら れ 、 タス ク問 の 繋 が りに 明確 な意 図 が な い よ うな練 習 課 題 に よ く あ る タイ プ で も因果 マ ップ で 表 現 で き る こ とが 確 認 で きた。

1:publicclassCarExceptionlextendsException{

z:}

図18課 題12‑1プ ロ グ ラ ムIC(】rExcep†ion1ク ラ ス)

1:publicclassCarExceptionlextendsException{

z:}

図19課 題]2‑]プ ロ グ ラ ム(CarExcep†ion2ク ラ ス)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 77 18 19 zo 21 22

publicclassCar{

privatedoublegas=0.0;

privateintnum=0;

publicCar(」{

}

publicvoidshow(){

System.out.println("車 の ナ ン バ ー は"+num+"で 、 ガ ソ リ ン 量 は"

+ga5+"リ ッ トル で す 。 ㌦ }

publicvoidsetCar(intn,doubleg) throwsCarExceptionl,CarException2{

num=n;

gas=g;

if(num<100011num>=9999){

thrownewCarException1();

} if(gas<0.0){

thrownewCarException2();

}り } }

図20課 題12‑1プ ロ グ ラ ム(Carク ラ ス)

6ま とめ

我 々 は初 等 の プ ロ グ ラ ミン グ教 育 にお け る知 的CAIシ ステ ムの 構 築 を 目指 し、 プ ロ グ ラム 課 題 の仕 様 化 とプ ロ グ ラ ミン グ にお け る常識 と知 識 を表 現 す る方 法 と して 因 果 マ ップ を提 唱 した。 因果 マ ップ は 複 数 の タ ス ク か ら成 り、タ ス クは 複 数 の入 力 と出 力 、1つ の処 理 とい う基 本 構 成 をべ 一 ス に 、柔 軟 な繋 が りを持 た せ るた め タ ス ク後 に 起 き るデ ー タ状 態 の変 化 、 タス ク同 士 を繋 ぐ根 拠 と な る 起 動 条 件 を 同 時 に描 こ とが で き る。 こ ら らの仕 様 に よ り 学 習者 に よ っ て異 な るプ ログ ラ ム に も柔 軟 に 対応 がで き、

ま た デ ー タ の流 れ を容 易 につ か む こ とが で き る た めプ ロ グ ラ ミン グ教 育 にお い て とて も有 用 で あ る こ とを示 した。

そ して 、 実際 に本 学 部 情 報 学 科 「 オ ブ ジ ェ ク ト指 向 プ ロ グ ラ ミ ング」 で使 わ れ て い るプ ログ ラ ム課 題 を用 い て 因果 マ ップ を描 き 、そ こか らプ ログ ラ ム を 自動 生 成 で き る こ とを確 認 した。 これ に よ りプ ログ ラ ム課 題 を仕 様 化 し解 を得 る とい う方 向 に っ いて は完 成 した もの とす る。

今 後 は 因果 マ ップ の 作 図機 能 と解 か らプ ロ グ ラム 課題 の仕 様 を得 て因 果 マ ップ に す る 方 向 につ いて 研 究 を行 っ て い く予 定 で あ る。

参 考 文 献

[1]堀 内 幸 造 、 長 田 一 興

モ バ イ ル エ ー ジ ェ ン ト技 術 を 用 い た 教 育 支 援 シ ス テ ム ー 常 駐 ア プ リケ ー シ ョ ン に よ る キ ー ボ ー ドデ ー タ の 収 集 一

近 畿 大 学 産 業 理 工 学 部 研 究 報 告,VbLO2,pp。1‑7,2004 [2]堀 内 幸 造 、 長 田 一 興

初 級 プ ロ グ ラ ミ ン グ 教 育 に お け る 支 援 シ ス テ ム に 関 す る 研 究 〜 因 果 マ ッ プ を 利 用 す る仕 様 の 定 義 〜 近 畿 大 学 産 業 理 工 学 部 研 究 報 告,Vo1,03,pp.21‑26,2005 [3]堀 内 幸 造 、 長 田 一 興

初 級 プ ロ グ ラ ミ ン グ 教 育 に お け る 支 援 シ ス テ ム に 関 す る 研 究 〜 因 果 マ ッ プ を 利 用 し た プ ロ トタ イ プ に つ

い て の 考 察 〜

近 畿 大 学 産 業 理 工 学 部 研 究 報 告,Vol.04,pp.27‑32,2006 [4]堀 内 幸 造 、 長 田 一 興

プ ロ グ ラ ミ ン グ に お け る も の の 見 方 と常 識 に つ い て 近 畿 大 学 産 業 理 工 学 部 研 究 報 告,Vo1.05,pp.45‑49,2006

参照

関連したドキュメント

オーディエンスの生徒も勝敗を考えながらディベートを観戦し、ディベートが終わると 挙手で Government が勝ったか

[r]

[r]

ピアノの学習を取り入れる際に必ず提起される

 英語の関学の伝統を継承するのが「子どもと英 語」です。初等教育における英語教育に対応でき

経済学研究科は、経済学の高等教育機関として研究者を

[r]

[r]