Skip to content
Snippets Groups Projects
Unverified Commit 7b6cc421 authored by Chris Sangwin's avatar Chris Sangwin Committed by GitHub
Browse files

Merge pull request #1142 from Lucas544875/ja-abinitio-aqs346

Japanese translation of Authoring_quick_start_3, 4 and 6
parents 629ddf67 addd1db0
Branches
No related tags found
No related merge requests found
# 問題作成クイック・スタート・ガイド 3:フィードバックを改善する
[1 - 基本的な問題](Authoring_quick_start_1.md) | [2 - 問題変数](Authoring_quick_start_2.md) | 3 - フィードバックを改善する | [4 - ランダム化](Authoring_quick_start_4.md) | [5 - 問題のテスト](Authoring_quick_start_5.md) | [6 - 複数解答欄問題](Authoring_quick_start_6.md) | [7 - 数式簡略の無効化](Authoring_quick_start_7.md) | [8 - 問題のインポートと小テスト](Authoring_quick_start_8.md)
問題作成クイック・スタート・ガイドのこのパートでは、フィードバックの改善について扱います。次のビデオでそのやり方を説明します:
<iframe width="560" height="315" src="https://www.youtube.com/embed/l6QAMmUA5Pk" frameborder="0" allowfullscreen></iframe>
## はじめに
直前のパートでは,問題変数を扱いました。具体的には,被積分関数を表す変数`exp`を定義し,正答を表す変数taを定義しました。そして,\(\int 3(x-1)^{-4}dx\)を求めさせました。
この問題のプレビューを表示し, `-1*(x-1)^(-3)+c`の解答を入力してください。システムはこの解答を正解と判定します。次に, `-1*(x-1)^(-3)+C``C`が大文字)の解答を入力してください。正答の`-1*(x-1)^(-3)+c`と比較し, ポテンシャル・レスポンス・ツリーの評価関数で「代数等価」を指定していたので,正答とはみなされません。理由は`c``C`は異なるからです。通常,定数の文字に何が用いられるかは問わないでしょう。この問題を解決します。
## 評価関数: 積分
より良い「評価関数」を用いるように,ポテンシャル・レスポンス・ツリーを修正する必要があります。問題の編集画面に戻り,ポテンシャル・レスポンス・ツリーの「評価関数」のプルダウンメニューで、「代数等価」から「積分」に変更してください。そして,オプション欄に`x`(変数)を入力してください。「変更を保存して編集を続ける」をクリックし,もう一度プレビューを実行してみましょう。
評価関数「積分」では,積分定数にどのような文字でも正答と判定します。例えば,`-(x-1)^(-3)+k` と入力してみてください。正答と判定されます。また,学生が積分の定数を忘れたり,誤って積分の代わりに微分した場合,標準的なフィードバックを与えます。これを試すには,`-12*(x-1)^(-5)`と入力してみてください。フィードバックを学生に見せたくない場合は,「抑制」オプションで「Yes」を選択してください。
`解答記録`は評価結果に対し付けられる名前です。STACKはこの名前を,ポテンシャル・レスポンス・ツリーの名前,ノード番号,ノードの結果にから自動的に生成されます。
## 考察
STACKで学生の解答をチェックするとき,教師は "学生の答えを正解/不正解にする数学的特性は何か"を問わなければいけません。今回の場合,この問は以下を含みます:
- 解答は被積分関数の不定積分か?
- 解答には積分定数が含まれているか?
評価関数`積分`がこれらの問に答え,教師この問に対応するためのコードを書く必要はありません。
次に,教師は "学生が何を間違う可能性があり,その結果どのような解答となるのか?"を問わなければいけません。この質問はより難しいです。それに対する回答は,経験を通じて,または前もって診断的な質問をすることによって得られるかもしれません。年度ごとにSTACKの問題での学生の解答を見直し,経験に照らしてより良いフィードバックを組み入れると良いでしょう。
## フィードバックをさらに改良する
学生が犯しそうなミスごとに,解答例を作成することができます。例えば,学生が解答の数式を展開したままにしておくとします。これはもちろん正しい答えかもしれませんが,不必要に答えを展開しないように学生を指導したいこともあります。学生が最終的な解答を因数分解した形で残したかどうかを判定する別のノードを作成し,ポテンシャル・レスポンス・ツリーの新たなノードとして追加します。
![Adding a new node](../../content/add_new_node.png)
ポテンシャル・レスポンス・ツリーに移動し,`[新しいノードを追加する]`をクリックします。次にノード 1 の `真の場合`のブランチで `次のノード``ノード2`に変更します。ノード2に入ったということは,学生の解答は正答であることはわかっているので,解答が因数分解されているかどうかを判定することにします。これを実現するために[評価関数](/Authoring/Answer_Tests/index.md)「因数分解」を使用する必要があります。これは評価対象と評価基準が等価であることと,評価対象が因数分解されていることの両方をテストします。この問題の場合,我々はすでに学生の解答が正答と等価であることを知っています(評価関数「積分」を使用)。したがって,学生の解答自身に対してテストするだけで良いのです。
ノード2のフォームを次のようにします。
```
評価関数 = 因数分解
評価対象 = strip_int_const(ans1,x)
評価基準 = strip_int_const(ans1,x)
オプション = x
```
STACKでは,学生が使用した積分定数を削除するstrip_int_const関数が提供されています。なお,オプションで変数を指定する必要があります。
`真``偽`の結果で点数を変えないようにしてください。デフォルトではそれぞれ+0と-0に設定されます。点数を変更しないことで,学生の解答が展開されていても、減点されないようにします。
評価関数「因数分解」は自動的にフィードバックを返しますが,自分で書きたい場合は,「抑制」をYesに設定し,ノード2の偽のフィードバックに次のように入力します:
```
あなたの解答は因数分解されていません。正解ですが,括弧を展開する必要はないことに注意してください。
```
多くの一般的な間違いに対して,いくらでもチェックしながら,ポテンシャル・レスポンス・ツリーを拡大することができます。その他の評価関数については[ドキュメント](/Authoring/Answer_Tests/index.md)を参照してください。
## 一般的なフィードバックを追加する
一般的なフィードバックは問題の正誤に関わらず,すべての学生に表示されます。ここは模範解答を追加するときに活用してください。
# 次のステップ
以上で,STACKで様々なフィードバックを作成できるはずです。
##### 問題作成クイック・スタート・ガイドの次のパートは[ランダム化](Authoring_quick_start_4.md)についてです。
\ No newline at end of file
# Authoring quick start 4: randomisation
[1 - 基本的な問題](Authoring_quick_start_1.md) | [2 - 問題変数](Authoring_quick_start_2.md) | [3 - フィードバックを改善する](Authoring_quick_start_3.md) | 4 - ランダム化 | [5 - 問題のテスト](Authoring_quick_start_5.md) | [6 - 複数回答欄問題](Authoring_quick_start_6.md) | [7 - 数式簡略の無効化](Authoring_quick_start_7.md) | [8 - 問題のインポートと小テスト](Authoring_quick_start_8.md)
問題作成クイックスタートガイドのこのパートでは,問題をランダムに出題する方法について説明します。 次のビデオでその方法について説明しています:
<iframe width="560" height="315" src="https://www.youtube.com/embed/8FTqZ1fTmgs" frameborder="0" allowfullscreen></iframe>
## はじめに
前のパートでは,\(3(x-1)^{-4}\)\(x\)について積分する方法を学びました。しかし,学生間での解答共有を避けるため,このようなシステムですべての学生に全く同じ問題を出題することは避けたいです。この課題を解決するため,問題をランダムに出題することが必要です。
## 問題をランダムに出題する
先ほどの問題の変数をもう一度確認しましょう:
```
exp: 3*(x-1)^(-4);
ta: int(exp,x)+c;
```
私たちは2つの ローカル変数 `exp``ta`を定義し, 問題テキスト,入力,ポテンシャル・レスポンス・ツリーなどの他の場所でこれらの値を使用しました。
では,今からランダムな問題を作成しましょう。そのために, [問題変数](/Authoring/Variables.md#Question_variables) を次のように設定します。
```
a1 : 1+rand(6);
a2 : 1+rand(6);
nn : 1+rand(4);
exp : a1*(x-a2)^(-nn);
ta: int(exp, x)+c;
```
この新たな問題で,私たちは生徒に,\( a_1(x-a_2)^{-nn} \)の積分を求めてもらいます。 `a1`, `a2` , `nn` はすべてランダムな正の整数が代入された変数です。 これらは問題で利用される変数 `exp`を定義するために使われます。また,CASに式 `exp` を積分させ,その結果を変数 `ta` に格納します。xのような1文字の変数は生徒の入力を意味するため、問題作成時に定義する変数には2文字以上利用することを推奨します。
STACKでランダムに出題される問題を作成するとき,私たちは_乱数_を扱いますが,本当は_擬似乱数_であることを覚えておいてください。どの乱数が各ユーザーのために生成されたかを追跡するために,STACKには特別な `rand` コマンドがあり,[Maxima](../CAS/Maxima.md)`random` コマンドの代わりに使用する必要があります。 `rand` コマンドは一般的な「ランダムなもの」を生成します。詳しくは[ランダム生成](../CAS/Random.md) をご覧ください。`rand` は乱数を生成するだけでなく、リストから選ぶことにも使用できます。 `rand(n)`は0以上`n`未満の整数をランダムに選択します。 つまり、 `rand(3)` と入力した場合、リスト`[0,1,2]`からランダムに選択することになります .
## 問題記録
問題に乱数が含まれる場合,各学生に出題された問題のバージョンを記録する必要があります。`rand` 関数を利用した場合,STACK は必ず _問題記録_を利用するように要求してきます。
問題記録 を次のように入力してください
```
\[ \int {@exp@} \mathrm{d}x = {@ta@}.\]
```
2つの問題は問題記録が完全に一致する場合のみ同じ問題であるとみなされます。問題作成者は問題記録を正確に設定するよう気を付けてください。
## ランダムな問題のデプロイ
学生が問題を見る前に,ランダムな問題をデプロイすることは賢明です。これにより,学生に表示される問題を適切に制御し,ランダム化が正常に行われていることを確認できます。問題を保存した後,問題の一番上までスクロールし,`この問題では変形がデプロイされていません` というリンクをクリックしてください。 このリンクは、古いバージョンのSTACKでは `問題のテストとデプロイ` と表示されるかもしれません。
STACKでたくさんのランダムな問題を作成するには,`次の個数の変形をデプロイする`を実行することが必要です。例えば,`10`を入力し,`次の個数の変形をデプロイする`をクリックしてください。 すると10個のランダムな問題が表示されるはずです。学生にはこれらのうち1つがランダムに表示されます。
また,利用したくない変形を削除するオプションもあります。例えば、nn=1 の変数は対数を含む答えがあるので利用したくないと考える場合もあります。この場合,利用したくない変数を選択的に削除することができます。ところでこの場合のよりよい解決策は,`問題変数`に戻って,`nn``2+rand(4)`に変更することです。保存後に `次の個数の変形をデプロイする` に戻ると、変形が変更されているのがわかるでしょう。これは乱数を利用する際の重要なポイントである,ランダム化の意図しない結果をチェックする方法を示しています。
## プレビュー
問題をプレビューしてみてください。クイックスタートガイドのパート1で述べたように、`プレビューオプション`の下に、問題動作を変更するオプションがあります。`アダプティブモード`は問題を繰り返し`確認`することができるため,問題をテストする際に最も便利なモードです。問題動作については後で詳しく説明します。
ここで、デプロイされたどの `変形` を解答するかを選択できることに注意してください。これは特定の変形をテストしたい場合に便利です。
# 次へ #
これでSTACKでランダムな問題を作成,出題することができるようになりました。
##### オーサリングクイックスタートガイドの次の章では,[問題のテスト](Authoring_quick_start_5.md)について説明します。
\ No newline at end of file
# 問題作成クイック・スタート・ガイド 6: 複数解答欄問題
[1 - 基本的な問題](Authoring_quick_start_1.md) | [2 - 問題変数](Authoring_quick_start_2.md) | [3 - フィードバックを改善する](Authoring_quick_start_3.md) | [4 - ランダム化](Authoring_quick_start_4.md) | [5 - 問題のテスト](Authoring_quick_start_5.md) | 6 - 複数解答欄問題 | [7 - 数式簡略の無効化](Authoring_quick_start_7.md) | [8 - 問題のインポートと小テスト](Authoring_quick_start_8.md)
問題作成クイック・スタート・ガイドのこのパートでは,複数解答欄問題について扱います。次のビデオでそのやり方を説明します:
<iframe width="560" height="315" src="https://www.youtube.com/embed/lQhDEnEYZQM" frameborder="0" allowfullscreen></iframe>
次の例を考えてみましょう:
### 例1
\(x=2\)\(x^3-2x^2+x\)に接する直線の方程式を求めよ。
1. \(x^3-2x^2+x\)\(x\)で微分せよ。
2. \(x=2\)での微分係数を計算せよ。
3. 接線の方程式を求めよ。\(y=...\)
上の3つの小問はすべて1つの多項式\(x^3-2x^2+x\)を参照するので,ランダムに生成された問題が使用される場合,それらの小問はそれぞれ1つのランダムに生成された数式を参照する必要があります。したがって,小問1-3の解答は実際には1つの数式に依存します。ここで,小問1は他から独立していることに注意してください。小問2の解答には小問1の解答に\(x=2\)を代入する必要があります。小問3は独立して採点することも,小問1と2を考慮することも簡単にできます。教師は「依存」採点を選択できることにも注意してください。
### 例2
比較的若い学生を対象にした次の問題を考えてみましょう。
\((x+1)(x+2)\)を展開せよ。
解答方法として,次の方程式の「空欄を埋める」方法が考えられます:
```
(x+1)(x+2) = [?] x2 + [?] x + [?].
```
私たちは,この問題を「3つの入力」を持つ「1つの質問」であると解釈します。さらに, それぞれの入力 (係数) に対して別々のフィードバックが生成されたとしても,教師はフィードバックが割り当てられる前に,学生にすべて穴埋めしてほしいでしょう。また, このフィードバックはすべて画面上の1つの場所にグループ化されるべきです。そして,代数的ミスの可能性のある原因を特定するために, 自動採点のためにすべての係数が入力されている必要があります。3つの解答欄を独立に採点することはあまり意味がないでしょう。
この2つの例は,2つの対立的な評価方法を示しています。
1. 複数解答欄内のすべての入力は独立して評価できる。
2. 複数解答欄内のすべての入力は, その問題が採点される前に完了しなければならない。
この2つの評価方法を満たす複数解答欄問題を考案することは比較的簡単ですし, これらのの複数解答欄問題はより一般的であるとも考えられます。
## 複数解答欄問題の質問を作成する
新しいSTACKの問題作成を開始し,「接線」などの名前をつけてください。この問題には3つの小問があります。次のように,問題変数と問題テキストをコピーすることから始めます。この問題はランダム化を含んでいませんが,後の段階の簡単化のために,最初に変数名を使用していることに注意してください。
__問題変数:__
```
exp:x^3-2*x^2+x;
pt:2;
ta1:diff(exp,x);
ta2:subst(x=pt,ta1);
ta3:remainder(exp,(x-pt)^2);
```
__問題テキスト__
以下のテキストをエディターにコピーしてください。
点\(x={@pt@}\)で{@exp@}に接する直線の方程式を求めよ。
1. {@exp@}を\(x\)で微分せよ。[[input:ans1]] [[validation:ans1]] [[feedback:prt1]]
2. 1の結果を用いて、\(x={@pt@}\)での微分係数を計算せよ。[[input:ans2]] [[validation:ans2]] [[feedback:prt2]]
3. 接線の方程式を求めよ。\(y=\)[[input:ans3]] [[validation:ans3]] [[feedback:prt3]]
「個別フィードバック」セクションからフィードバックタグを削除し、「問題テキストのチェックと入力フォームの更新」をクリックしてください。STACKは,解答欄,フィードバックタグを自動的に検出して,3つの解答欄とポテンシャル・レスポンス・ツリーが作成されます。問題テキストでは、フィードバックが関連する部分の下に直接表示されるように,フィードバックタグを埋め込んでいます。それぞれの小問に対して,1つのポテンシャル・レスポンス・ツリーがあることに注意してください。
解答欄:`ans1`から解答欄:`ans3`の「正解」に,それぞれ`ta1`から`ta3`を入力してください。
次にポテンシャル・レスポンス・ツリーを編集する必要があります。これらは学生の解答の評価を設定します。
### ステージ1: ポテンシャル・レスポンス・ツリー
最初の段階は,最も単純なポテンシャル・レスポンス・ツリーを作成することです。これらは単純に答えが「正しい」かどうかを評価します。各ポテンシャル・レスポンス・ツリー:`prti`のそれぞれで,`ansi``tai`と代数的に等価であるかどうかを評価します(ただし、`i``1`から`3`としてください)。この段階で,実用的な問題ができたでしょう。「変更を保存して編集を続ける」をクリックして、問題をプレビューしてください。参考までに,正解は以下の通りです。
```
ta1 = 3*x^2-4*x+1
ta2 = 5
ta3 = 5*x-8
```
### ステージ2: 依存採点
次に,シンプルな依存採点を実装します。
小問2を注意深く見てください。これは「正解」を求めていると同時に,学生が小問1の結果を用いて,与えられた点で正しく微分係数を計算できたかどうかも評価しています。したがって最初の課題は,小問1で与えられた数式を与えられた点で評価し,`ans2`と比較することです。`prt2`のノード1を以下のように更新します:
```
評価関数: 代数等価
評価対象: ans2
評価基準: subst(x=pt,ans1)
```
次に,`prt2`で,「新しいノードを追加する」をクリックして,に以下のノード(ノード2)を1つ追加します:
```
評価関数: 代数等価
評価対象: ans1
評価基準: ta1
```
そして,ノード1の真の分岐を(`prt2`の)ノード2につなぎます。これで3つの結果が得られます。
ノード1:小問1の結果を,与えられた点で正しく評価したか?もし "真"ならノード2に進み,"偽"なら0点で終了する。
ノード2:小問1の結果は正解か?もし"真"なら,これが理想的な状況であり,満点である。もし"偽"なら,好みに応じて点数を選び,例えば、次のようなフィードバックを加える:
小問1の結果に基づき,与えられた点での微分係数は正しく計算されています。しかし,小問1は不正解です。小問1,2をやり直しましょう。
# 次のステップ #
これでSTACKで複数解答欄問題を作成できるようになりました。これまで,このクイックスタートガイドに従ってきていれば,すでにこの問題を改善することができるでしょう。例えば, [フィードバックを改善する](Authoring_quick_start_3.md), [ランダム化](Authoring_quick_start_4.md), [問題のテスト](Authoring_quick_start_5.md)
##### **問題作成クイック・スタート・ガイドの次のパートは[数式簡略の無効化](Authoring_quick_start_7.md)についてです。**
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment