42. 컴퓨터 언어 코드 테스트 퀴즈 문항을 만들 수 있나요?

From Dr.Ho's Wiki
Jump to navigation Jump to search

Coderunner 유형의 질문을 사용하여 프로그래밍 퀴즈 작성을 만들 수 있습니다. c, java, php, python, octave, pascal, nodejs 등의 언어가 지원됩니다. 채점은 Test Cases 들을 만들어 예상되는 출력과 비교하여 채점하게 되는데 이는 일반적인 프로그래밍에서의 단위 테스트 동작원리와 유사합니다.

Moodle4201.png

Coderunner 유형의 질문을 사용하기 위해서는 사이트 관리자가 Coderunner 질문 유형을 위한 플러그인을 설치하고 별도의 서버에 Jobe 서버를 설치하여 연계하는 것을 권장합니다. 테스트를 위해서는 기본으로 설정된 서버 정보를 활용해도 됩니다. Coderunner 유형 질문을 만들기 위해서는 질문 추가에서 Coderunner 유형 질문을 선택합니다.

프로그램 언어를 “Question type”에서 선택합니다. 프로그램의 종류는 c, java, php, python, octave, pascal, nodejs가 모두 가능합니다. 그림에서는 ❶“java_method”를 선택하였는데 이는 학습자가 정답을 자바의 메소드 형식으로 입력해야 한다는 의미입니다.

템플릿에서는 테스트 케이스에서 주어진 값을 Template:TEST.stdin, 학습자가 입력한 답을 ❷Template:STUDENT ANSWER, 테스트 할 코딩을 ❸Template:TEST.testcode으로 치환한 후에 테스트를 진행하게 됩니다. 이 구문은 Twig 스크립트를 사용하여 다양한 템플릿을 만들 수 있으며 커스터마이징이 가능합니다. Twig 스크립트의 내용은 https://twig.symfony.com을 참고하기 바랍니다.

Moodle4202.png

이어서 ❹질문 문장을 입력하고, ❺답을 입력합니다. 이 부분은 평가 후 학습자들에게 답으로 제공하는 부분입니다. 이어서 테스트 코드를 작성합니다. 이 부분이 ❻Template:TEST.testcode가 되며 해당 질문에서는 add(1,3) 함수를 호출하게 됩니다. ❼“Standard Input”은 Template:TEST.stdin이 되는 부분으로 본 예제에서는 사용하지 않았습니다. ❽“Expected output”은 예상되는 결과 값으로 학습자의 입력을 실행한 결과 값과 비교하게 됩니다. 1과 3을 더한 값이므로 함수가 제대로 동작하면 4를 출력해야 합니다.

문항이 실행되면 ❾학습자들이 프로그램을 입력하고 제출하면 학습자들의 제출 코드를 실행하고 테스트 코드가 실행되어 결과 값을 비교하여 맞으면 점수를 얻게 됩니다. 즉, ❿add(1,3)의 함수를 실행하면 4의 값을 얻게 되는데 학습자의 코드를 실행한 값과 일치하므로 맞는 결과라 할 수 있습니다. 아래에 ⓫add(7,9)와 같이 테스트 코드를 추가하여 확인하는 것도 가능합니다. 프로그램 퀴즈는 학습자가 틀렸을 경우 무엇이 틀렸는지를 확인하기 위하여 ⓬답을 보여주는 것이 좋습니다.

Moodle4203.png.png

Coderunner의 실행 개념은 아래에 잘 설명됩니다. “Testcode“와 “Question template“이 합성되어 “Executable program”이 되고 서버에서 이 프로그램이 “Test input”을 받아 “Output”이 나오면 “Output”을 “Expected output”과 비교하여 채점하게 됩니다.

Moodle4204.png