skill-net ( milestone cai ,笈川他, 1982) [ fortran の課題選択など]

14
22/06/10 1 skill-net MILESTONE CAI 笈笈笈笈 ,, 1982) Fortran 笈笈笈笈笈笈笈

Upload: kyros

Post on 15-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

23/04/21 1

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

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

23/04/21 2

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

23/04/21 3

PROUST( Johnson, W.L. & Soloway, E. ,1987)

• 初級 が書いたプログラマ Pascal を,プログラム

 課題記述 や 知識を用ライブラリ プログラミングいて理解し,

バグ(誤り)があればバグ知識を用いてバグの発生箇所やバグの説明を行う

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

23/04/21 4

課題の例

• 正の実数値を入力し,入力した値の平均値を計算する Pascal プログラムを作成しなさい。

   但し,データの入力は「 99999 」が入力されたら終了すること。また,この「 99999 」は平均値の計算には含めないこと。

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

23/04/21 5

平均値を求めるプログラムの goal の例

• 値を入力する,但し,終了値 99999 が入力されたら終了する。

• 入力値が0以下ならば,再入力

• 平均値を計算

• 計算した平均値を出力

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

23/04/21 6

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

ラム

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

23/04/21 7

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

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

23/04/21 8

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

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

23/04/21 9

plan :値を入力する,但し,終了値 99999 が入力されたら終

了する  plan の一例

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

23/04/21 10

システム側の plan と一致するかを検査し,一致すればその plan が使用されたと判断する。

(使用された plan とその構成が作成者の考え)

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

23/04/21 11

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 :どういう状態で発生したか

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

23/04/21 12

学習者作成のプログラムを理解するために

(a)  プログラミング言語の文法(構文)

(b) 技能:    プログラムの概念と文との関係(構造)

[構成要素,従属,困難さ・複雑さ(複合度))

(c) プログラムの構成や誤り   求めるプログラムを構成するサブ・ゴールとそ

の実現方法,誤りのルール   実現方法は,例えば, 「終了値制御の入力」の

方法(手続きのパターンと考えると良いかも)(d)   ???

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

23/04/21 13

次のプログラムはどの様な知識が使われているか

考えて下さい。

#include <stdio.h>

Void main(){

int a,b;

scanf(“%d”, &a);

b=a+2;

printf(“b=%d\n”, b);

}

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

23/04/21 14

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