Main Content

함수 기반 학습자 답안에 대한 평가 작성하기

함수 기반 답안의 경우 변수의 동등성 및 키워드 또는 함수의 존재를 확인하는 내장 함수를 사용하여 MATLAB® 코드를 작성할 수 있습니다.

  • assessVariableEqual — 학습자 답안의 변수가 허용오차 내에서 지정된 값과 같은지 확인합니다.

  • assessFunctionPresence — 학습자 답안에 특정 함수나 키워드가 있는지 확인합니다.

  • assessFunctionAbsence — 학습자 답안에 특정 함수나 키워드가 없는지 확인합니다.

실행 모델

  • 함수 기반 답안에 대해 작성하는 각 평가 테스트에는 일반적으로 학습자 답안에 대한 호출이 포함됩니다. 함수에 대한 입력값을 제공하고 반환된 값을 평가할 수 있습니다. 모범 답안을 호출하여 해당 출력값을 학습자 답안의 출력값과 비교할 수도 있습니다.

  • 각 평가는 순차적으로 그리고 다른 평가와는 독립적으로 실행됩니다. 한 평가를 통과하지 못해도 후속 평가가 계속 실행됩니다.

  • 한 평가 테스트에서 만들어진 변수는 다음 평가 테스트에서 사용할 수 없습니다. 각 평가 테스트에 필요한 모든 변수를 정의합니다.

  • 코드가 오류 없이 종료되면 평가 결과는 통과 상태를 표시합니다. 그렇지 않으면 평가 결과는 실패 상태를 표시합니다.

    평가 테스트가 사전 테스트인 경우 학습자는 답안 통과 여부에 관계없이 테스트 이름 왼쪽의 화살표를 클릭하여 평가의 정보를 볼 수 있습니다.

  • 함수 기반 문제에 assessVariableEqual을 사용하는 경우, 학습자 함수 선언에서 사용한 것과 같은 이름을 학습자 함수를 호출할 때 생성된 출력 변수에 사용해야 합니다. 디폴트 피드백 메시지는 평가 테스트에서 생성된 출력 변수 이름을 참조하므로, 출력 변수가 선언과 일치하지 않는 경우 학습자는 출력 변수를 인식하지 못할 수 있습니다.

평가 테스트에서 학습자 답안 호출하기

학습자가 답안으로 제출한 함수를 평가하기 위해 각 평가 테스트는 학습자 답안을 호출합니다.

triangleArea 함수에 대한 평가 테스트의 예는 다음과 같습니다.

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = 7.5;
assessVariableEqual('area',areaCorrect)

학습자가 제출을 클릭하면 해당 평가 테스트에서 triangleArea의 학습자 버전이 호출됩니다.

모범 답안을 사용하여 학습자 답안 평가하기

학습자 답안을 모범 답안과 비교하려면 두 함수를 모두 호출해야 합니다.

  • 학습자 답안을 호출하려면 구문 myFunction을 사용하십시오.

  • 모범 답안을 호출하려면 구문 reference.myFunction을 사용하십시오.

두 경우 모두 myFunction을 답안 템플릿에서 사용 중인 함수의 이름으로 바꿔줘야 합니다.

triangleArea 함수에 대한 평가 테스트의 예는 다음과 같습니다.

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = reference.triangleArea(b,h);
assessVariableEqual('area',areaCorrect)

예제

벡터 뒤집기

학습자는 입력 벡터를 뒤집는 flipIt이라는 함수를 작성하여 벡터 값 순서를 뒤바꾸어야 합니다. 학습자는 flip 함수를 사용해서는 안 됩니다.

모범 답안

function w = flipIt(v)
    w = v(end:-1:1);
end

평가 테스트.  입력 벡터 [1 2 3 4]로 학습자 답안을 호출합니다. 학습자 답안이 모범 답안과 일치하고 flip을 사용하지 않는지 테스트합니다.

v = [1 2 3 4];
w = flipIt(v)
w_correct = reference.flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

이번에는 입력 벡터 [4]를 사용하여 학습자 답안을 다시 호출합니다.

v = [4];
w = flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

관련 항목