1 / 14

skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]

skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]. PROUST ( Johnson, W.L. & Soloway, E. ,1987). 初級プログラマが書いた Pascal プログラムを,  課題記述ライブラリやプログラミング知識を用いて理解し, バグ(誤り)があればバグ知識を用いてバグの発生箇所やバグの説明を行う. 課題の例. 正の実数値を入力し,入力した値の平均値を計算する Pascal プログラムを作成しなさい。

kyros
Download Presentation

skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. skill-net(MILESTONE CAI,笈川他,1982)[Fortranの課題選択など]

  2. PROUST(Johnson, W.L. & Soloway, E. ,1987) • 初級プログラマが書いたPascalプログラムを,  課題記述ライブラリやプログラミング知識を用いて理解し, バグ(誤り)があればバグ知識を用いてバグの発生箇所やバグの説明を行う

  3. 課題の例 • 正の実数値を入力し,入力した値の平均値を計算するPascalプログラムを作成しなさい。    但し,データの入力は「99999」が入力されたら終了すること。また,この「99999」は平均値の計算には含めないこと。

  4. 平均値を求めるプログラムのgoalの例 • 値を入力する,但し,終了値99999が入力されたら終了する。 • 入力値が0以下ならば,再入力 • 平均値を計算 • 計算した平均値を出力

  5. 5 –5 99999が入力されると,終了値である99999がデータとして計算されてしまうプログラム

  6. 平均値を求めるプログラムのゴールを用いた表現平均値を求めるプログラムのゴールを用いた表現

  7. goal:値を入力する,但し,終了値99999が入力されたら終了する。goal:値を入力する,但し,終了値99999が入力されたら終了する。

  8. plan:値を入力する,但し,終了値99999が入力されたら終了する planの一例plan:値を入力する,但し,終了値99999が入力されたら終了する planの一例

  9. システム側のplanと一致するかを検査し,一致すればそのplanが使用されたと判断する。(使用されたplanとその構成が作成者の考え)システム側のplanと一致するかを検査し,一致すればそのplanが使用されたと判断する。(使用されたplanとその構成が作成者の考え)

  10. Bugルールの例 (Defile WHILE-for-IF Statement-Type IF Error-Pattern (IF WHILE) ←IFをWHILEで置き換えると Planが正しく動作する Bug (WHILE-for-IF-Confusion (FoundStmt, *MRet*) (Histlnst, *HistoryNode*))) ←HistoryNode:どういう状態で発生したか

  11. 学習者作成のプログラムを理解するために (a) プログラミング言語の文法(構文) (b)技能:     プログラムの概念と文との関係(構造) [構成要素,従属,困難さ・複雑さ(複合度)) (c)プログラムの構成や誤り 求めるプログラムを構成するサブ・ゴールとその実現方法,誤りのルール    実現方法は,例えば, 「終了値制御の入力」の方法(手続きのパターンと考えると良いかも) (d)???

  12. 次のプログラムはどの様な知識が使われているか考えて下さい。次のプログラムはどの様な知識が使われているか考えて下さい。 #include <stdio.h> Void main(){ int a,b; scanf(“%d”, &a); b=a+2; printf(“b=%d\n”, b); }

  13. 文字式での誤り原因系の階層構造

More Related