![Page 1: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/1.jpg)
23/04/21 1
skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]
![Page 2: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/2.jpg)
23/04/21 2
![Page 3: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/3.jpg)
23/04/21 3
PROUST( Johnson, W.L. & Soloway, E. ,1987)
• 初級 が書いたプログラマ Pascal を,プログラム
課題記述 や 知識を用ライブラリ プログラミングいて理解し,
バグ(誤り)があればバグ知識を用いてバグの発生箇所やバグの説明を行う
![Page 4: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/4.jpg)
23/04/21 4
課題の例
• 正の実数値を入力し,入力した値の平均値を計算する Pascal プログラムを作成しなさい。
但し,データの入力は「 99999 」が入力されたら終了すること。また,この「 99999 」は平均値の計算には含めないこと。
![Page 5: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/5.jpg)
23/04/21 5
平均値を求めるプログラムの goal の例
• 値を入力する,但し,終了値 99999 が入力されたら終了する。
• 入力値が0以下ならば,再入力
• 平均値を計算
• 計算した平均値を出力
![Page 6: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/6.jpg)
23/04/21 6
5 –5 99999 が入力されると,終了値である99999 がデータとして計算されてしまうプログ
ラム
![Page 7: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/7.jpg)
23/04/21 7
平均値を求めるプログラムのゴールを用いた表現
![Page 8: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/8.jpg)
23/04/21 8
goal :値を入力する,但し,終了値 99999 が入力されたら終了する。
![Page 9: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/9.jpg)
23/04/21 9
plan :値を入力する,但し,終了値 99999 が入力されたら終
了する plan の一例
![Page 10: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/10.jpg)
23/04/21 10
システム側の plan と一致するかを検査し,一致すればその plan が使用されたと判断する。
(使用された plan とその構成が作成者の考え)
![Page 11: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/11.jpg)
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 の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/12.jpg)
23/04/21 12
学習者作成のプログラムを理解するために
(a) プログラミング言語の文法(構文)
(b) 技能: プログラムの概念と文との関係(構造)
[構成要素,従属,困難さ・複雑さ(複合度))
(c) プログラムの構成や誤り 求めるプログラムを構成するサブ・ゴールとそ
の実現方法,誤りのルール 実現方法は,例えば, 「終了値制御の入力」の
方法(手続きのパターンと考えると良いかも)(d) ???
![Page 13: skill-net ( MILESTONE CAI ,笈川他, 1982) [ Fortran の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/13.jpg)
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 の課題選択など]](https://reader036.vdocuments.pub/reader036/viewer/2022081418/568149d5550346895db6fcf1/html5/thumbnails/14.jpg)
23/04/21 14
文字式での誤り原因系の階層構造