Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

受講者の解答のテスト

受講者が正解したかどうかを判定するための評価テストを作成します。テストを作成するにあたっては、受講者による共通のエラーの種類を考慮し、そのような条件に対するテストを含めます。以下の例で、評価テストの作成にあたって考慮すべき、より一般的な条件のいくつかを示します。この例には、テストの実行後に出力として受講者に提供する推奨メッセージが含まれています。

サンプル問題

MathWorks® スタッフにより作成されたサンプル問題は、問題の作成と評価テストの作成をサポートする目的で提供されています。サンプル問題では、問題を作成するための適切な手法や、受講者の提出物の正誤を正しく診断するための評価テストを作成する方法について説明しています。

評価テスト

評価テストを作成する場合:

  • 評価方法を [正解/不正解] または [重み付け] に設定できます。評価方法は、問題に割り当てられた点数がどのように付与されるかを決定します。

  • 評価テストがプレテストであることを示すことができます。

  • 次のオプションの中からテスト タイプを指定できます。

    • 模範解答との比較 (スクリプトの問題のみ、関数の問題の場合は評価関数 assessVariableEqual を使用)

    • 関数またはキーワードが存在するかどうか

    • 関数またはキーワードが抜けているかどうか

    • MATLAB® コードを使用して評価テスト全体を作成する

これらのオプションは MATLAB コードに変換できます (MATLAB コードで作成した場合を除く)。

これらのタイプの詳細については、関数ベースの受講者の解答に対する評価の作成およびスクリプトベースの受講者の解答に対する評価の作成を参照してください。

正解/不正解による評価

正解/不正解による方法を選択した場合、問題は合格/不合格として扱われます。正解/不正解として定義された評価条件では、すべてのテストが合格の場合に 1 を返し、いずれかのテストが不合格の場合に 0 を返します。結果がすべて正解である場合、付与可能な最高点数が与えられます。いずれかの結果が不正確とマークされた場合、点数は付与されません。

重み付け評価

重み付け評価を選択すると、部分点を与えることができます。各評価テストに、付与可能な合計点数のパーセンテージを割り当てます。各評価テストに割り当てられた点数の値 (重み) を変更することにより、パーセンテージを修正できます。付与される点数は、正解とマークされた評価結果のパーセンテージを合計し、付与可能な最高点数を乗じることにより決定されます。​

たとえば、2 つの評価テストがある問題について考えてみましょう。最初の評価に合格した場合に点数の 1/3 (33%) を付与し、2 番目の評価に合格した場合に 2/3 (67%) を付与するとします。評価テストを作成するときに、最初の評価テストに 1 点、2 番目のテストに 2 点を割り当てます。

次のイメージは、評価テストが重み付けの場合に受講者に表示される内容を示します。

  • 解答を提出する前は、評価結果は空です。

  • 評価テストの条件を満たす解答を提出すると、評価結果の色が緑色に変わり、タイトルに "すべてのテストに合格済み (100%)" と表示されます。また詳細には、テスト名が緑色のチェック付きで表示され、100% が (2 つとも右側に) 表示されます。

  • 評価テストの条件を満たさない解答を提出すると、評価結果の色が赤色に変わり、タイトルに "1 件中 0 件のテストに合格 (0%)" と表示されます。また、リストには 0% と不合格の理由 (例: "提出された解答には x という名前の変数が必要です。") が表示されます。

評価テストが重み付けされていることを示すには、次のように、[評価方法] として [重み付け] を選択します。

複数の評価テストを作成するときに点数を割り当てることで、各評価テストに与えられる重みを割り当てます。次の例は、テスト 1 では 33% で 1 点が、テスト 2 では 67% で 2 点が付与されることを示しています。

受講者にはパーセンテージを表示できます。次の例は受講者ビューを示したもので、評価の名称と評価テストのパーセンテージが表示されています。

受講者フィードバック

カスタム フィードバックの表示

評価が不合格となった場合に、受講者に対して、追加のカスタム フィードバックを提供できます。このフィードバックは、書式設定されたテキスト、ハイパーテキスト リンク、イメージ、数式などのリッチ テキスト形式で入力できます。

次のイメージは、箇条書き、数式、適切に書式設定されたコード、および画像を含む問題の説明を示しています。

最初のエラーのみフィードバックを表示 (スクリプトベースの問題)

スクリプトベースの問題では、最初のエラーが後続のエラーの原因となる場合があります。受講者には、最初のエラーにまず焦点を当てるように促すことができます。

[最初のエラーのみフィードバックを表示] オプションを選択すると、最初のエラーについては詳細なフィードバックが表示されますが、それ以降のエラーについては既定で非表示になります。受講者は [フィードバックを表示] をクリックすることで、この追加のフィードバックを表示できます。

プレテスト

プレテストは、受講者が採点のために解答を提出せずに実行できる評価です。また、次の点で通常の評価とは異なります。

  • 受講者がプレテストを実行しても、プレテストの結果は成績表に記録されません。

  • プレテストの実行は提出の制限にはカウントされません。

  • 受講者は、プレテストの評価コードと、そのコードによって生成された出力 (MATLAB コード テスト タイプのみ) を表示できます。

プレテストを使用して、受講者が解答を提出する前に、その解答の方向性が正しいかを判断する方法を受講者に提供します。受講者が解答を提出すると、プレテスト "も実行" されます。これは、通常の評価と同じように扱われ、最終成績に影響します。

プレテストは、複数の正解アプローチがある問題、または提出数が制限されている問題で役立ちます。たとえば、「Getting Started with MATLAB Grader」問題集の "Calculating voltage using Kirchhoff loops" (キルヒホッフ ループを使用した電圧の計算) について考えてみます。この問題を解決するには、受講者は方程式系を記述しなければなりません。これを行う正しい方法は複数ありますが、模範解答と一致する解答のみが正解とマークされます。したがって、講師は、方程式が期待どおりの順序になっているかどうかを提出前に確認するための受講者向けプレテストを 1 つ追加することにしました。

提出の制限時間

MATLAB Grader™ は、60 秒の実行時間制限を適用します。受講者が [実行] または [提出] をクリックすると時計がスタートし、出力または評価結果が受講者に表示されると停止します。制限時間に達すると、サーバーがタイムアウトしたことを示すエラー メッセージが表示されます。合計実行時間に寄与する要因は、受講者が解答を実行するか提出するか、さらには受講者がスクリプトベースの問題を解決するか関数ベースの問題を解決するかによって異なります。

MATLAB コードの実行に使用される計算環境が MATLAB Grader で使用されるものと最も似ているため、模範解答の実行に必要な時間を見積もるには、MATLAB Online™ を使用して模範解答を実行します。

メモ

受講者が [スクリプトを実行] または [関数の実行] をクリックしたときにコードの出力が表示されるが、提出時には "解答の実行と評価中にサーバーがタイムアウトしました" というエラー メッセージが表示される場合があります。このエラーは、模範解答とすべての評価を実行するために追加の実行時間が必要なことが原因で発生します。

スクリプトベースの問題の解答のタイミング

スクリプトベースの問題は次の順序で実行されます。

スクリプトの実行提出

受講者の解答を 1 回実行する

  • 模範解答を 1 回実行する

  • 受講者の解答を 1 回実行する

  • すべての評価を順番に実行する

次を検討します。

例 #1: 実行時間制限を超過する可能性が低い

実行するコード実行時間
模範解答約 20 秒
一般的な受講者の解答 約 20 秒
3 つの評価それぞれ約 1 秒 (合計約 3 秒)

一般的な合計実行時間: 約 45 秒 (ネットワーク オーバーヘッドを含む)

このシナリオでのタイムアウト エラーは、受講者の解答内のエラー、非効率なコード、または画面への過剰な出力表示によって発生したものである可能性があります。

例 #2: 実行時間制限を超過する可能性が高い

実行するコード実行時間
模範解答約 25 秒
一般的な受講者の解答 約 25 秒
3 つの評価それぞれ約 1 秒 (合計約 3 秒)

一般的な合計実行時間: 約 65 秒 (ネットワーク オーバーヘッドを含む)

このシナリオでは、受講者は解答を実行できますが、提出時に実行時間制限を迎える可能性があります。この問題を再設計するか、削除する必要があるかもしれません。

関数ベースの問題の解答のタイミング

関数ベースの問題の解答は次の順序で実行されます。

関数の実行提出

[関数を呼び出すコード] のコードを実行する。

すべての評価を順番に実行する。

関数をテストするには、関数を呼び出さなければなりません。受講者が関数ベースの問題の解答を提出すると、評価のみが実行されます。各評価は通常、同じ入力を使用して模範関数と受講者の関数を呼び出し、結果の出力を比較することによって正確性をチェックします。これは、1 つの関数タイプの問題で模範関数と受講者の関数が複数回実行される可能性があることを意味します。

次を検討します。

例 #1: 実行時間制限を超過する可能性が低い

この例では、各評価は、異なる入力を使用して受講者の関数を評価します。模範関数と一般的な受講者の解答はどちらも実行に約 5 秒かかります。

実行するコード実行時間
3 つの評価それぞれ約 10 秒 (合計約 30 秒)

一般的な合計実行時間: 約 32 秒 (ネットワーク オーバーヘッドを含む)

このシナリオでのタイムアウト エラーは、受講者の解答内のエラー、非効率なコード、または画面への過剰な出力表示によって発生したものである可能性があります。

例 #2: 実行時間制限を超過する可能性が高い

この例では、各評価は、異なる入力を使用して受講者の関数を評価します。模範関数と一般的な受講者の解答はどちらも実行に約 10 秒かかります。

実行するコード実行時間
3 つの評価それぞれ約 20 秒 (合計約 60 秒)

一般的な合計実行時間: 約 62 秒 (ネットワーク オーバーヘッドを含む)

このシナリオでは、受講者は解答を実行できますが、提出時に実行時間制限を迎える可能性があります。この問題を再設計するか、削除する必要があるかもしれません。

関連するトピック