Main Content

受講者の解答のテスト

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

評価方法

評価を作成する場合:

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

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

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

    • 受講者の解答の変数を模範解答の変数と比較します。

    • 関数またはキーワードが存在するかどうかを判定します。

    • 関数またはキーワードが抜けているかどうかを判定します。

    • MATLAB® コードを使用して独自の評価を作成します。

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

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

正解/不正解による評価

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

MATLAB Grader™ は、解答が合格の場合は緑色で、不合格の場合は赤色でマークして表示します。

An assessment for which a solution passed

An assessment for which the solution did not pass and the default failure message.

重み付け評価

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

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

Assessment with Weighted selected and show % score to learners

複数の評価を作成する場合、点数を使用して各評価に付与する重みを割り当てます。

Two assessments as the instructor sees them with one assessment getting 33% of possible points and the other getting 67%

[重み付け] を選択した場合は、受講者にパーセンテージを表示する選択も可能です。

Learner view for two assessments and their weighted values with Submit button

不正解に対するフィードバック

追加のフィードバックの表示

評価が不合格となった場合に、受講者に対して、追加のフィードバックを提供できます。このフィードバックはリッチ テキスト形式で記述でき、ハイパーテキスト リンク、イメージ、数式を含めることができます。

次のイメージは、箇条書き、数式、書式設定されたコード、および画像を含む追加のフィードバックを示しています。

Image showing additional feedback written by the instructor

このイメージは、MATLAB Grader の問題カタログにある例 "Predator-Prey model: lynxes and snow hares" (捕食者-被食者モデル: オオヤマネコとユキウサギ) からのものです。

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

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

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

プレテスト

プレテストは、受講者が採点のために解答を提出せずに実行できる評価です。プレテストを使用して、受講者が解答を提出する前に、その解答の方向性が正しいかを判断する方法を受講者に提供します。

受講者が解答を提出すると、プレテスト "も実行" されます。これは通常の評価と同じように扱われるため、最終成績に影響します。

プレテストは通常の評価と次の点で異なります。

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

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

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

プレテストは、複数のアプローチが正解となる問題や提出回数に制限がある問題で受講者を指導するために使用します。たとえば、[Getting Started with MATLAB Grader][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 秒 (ネットワーク オーバーヘッドを含む)

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

関連するトピック