"GIFT"형식 파일 가져오기

GIFT는 일반 문서파일에서 무들의 문항을 가져올 수 있는 가장 포괄적인 가져오기 형식이다. 이는 빈 칸 채우기 문항은 물론 선다형, 진위형, 주관식 단답형, 일치형 및 수치형 문항들을 지원한다. 한 문서 내에서 다양한 문제 유형을 혼합해 쓸 수 있을 뿐만 아니라, 내부에 주석을 달 수도 있어서 문항명이나 피드백 그리고 백분율 점수도 지원한다.

문자의 코딩은 반드시 utf-8 (ascii 문자만 쓴다 할지라도)로 해야한다. 예제 문항은 다음에서 볼 수 있다: gift/examples.txt.

기본

GIFT 파일에 있는 개개의 문항은 빈 줄을 포함해서는 안된다. 각 문제들은 하나 이상의 빈 줄로 구분된다. 만일 문제내에 빈 줄을 표시할 필요가 있다면 \n을 이용할 수 있다. 언제든 원하면 주석을 달 수는 있지만 반드시 줄 처음에 두개의 슬래쉬(//)를 쓴 후에 주석을 붙여야만 한다.

문제의 유형

선다형:
선다형 문항에서 오답은 앞에 틸다(~)를 붙이고 정답앞에는 등호(=)를 붙인다.

     Who's buried in Grant's tomb?{~Grant ~Jefferson =no one}

빈 칸 채우기 형태는 자동적으로 문장의 해당부분에 빈 칸 (_____) 이 만들어 진다. 빈 칸 채우기 문형을 사용하려면 다음과 같이 작성하면 된다.

     Grant is {~buried =entombed ~living} in Grant's tomb.

만일 답안이 마침표 이전에 나온다면, 무조건 "빈 칸 채우기"로 간주하여 빈 칸 채우기 문형으로 만들어 버린다. 따라서 모든 문제들은 빈 칸 채우기 문형으로 만들 수 있다.

문제를 구분하기 위해서는 반드시 하나의 빈 줄(두 번의 엔터)을 넣어야 한다. 좀 더 명확히 하기 위해서는 다음 보기와 같이 답안들을 각각 다른 줄에 쓸 수도 있다:

     The American holiday of Thanksgiving is celebrated on the {
         ~second
         ~third
         =fourth
     } Thursday of November.
     
     Japanese characters originally came from what country? {
         ~India
         =China
         ~Korea
         ~Egypt}

주관식 단답형:
주관식 단답형의 답 앞에 등호(=)를 넣으면 이것이 정답으로 인식된다. 정답에 틸다가 포함되어서는 안된다.

     Who's buried in Grant's tomb?{=no one =nobody}

     Two plus two equals {=four =4}.

만약 유사답이 없이 단지 하나의 답만이 존재할 때는 진위형 문항과 혼동하지 않는 한 등호없이도 쓸 수 있다.

진/위형:
이 문제의 유형은 문장의 진술이 옳고 그름을 판단하는 능력을 보는 것이다. 답은 {TRUE} 나 {FALSE} 혹은 이를 축약해서 {T} 나 {F}로 쓰면 된다.

     Grant is buried in Grant's tomb.{F}

     The sun rises in the east.{T}

일치형:
일치하는 내용의 쌍은 하나의 등호(=) 로 시작하고 "->" 표시로 연결 짓는다. 이 문형에는 적어도 세 쌍의 서로 일치하는 내용이 있어야만 한다..

     Matching Question. {
         =subquestion1 -> subanswer1
         =subquestion2 -> subanswer2
         =subquestion3 -> subanswer3
         }
     
     Match the following countries with their corresponding capitals. {
         =Canada -> Ottawa
         =Italy  -> Rome
         =Japan  -> Tokyo
         =India  -> New Delhi
         }

일치형 문항은 피드백이나 백분율 가중치를 제공하지 않는다.

수치형:
수치형 문항의 답은 반드시 샵(#)으로 시작해야 한다. 수치형 답은 정답 뒤에 콜론을 써서 오차범위를 포함할 수 있다. 예를 들면 1.5에서 2.5사이의 값을 모두 정답으로 인정할 때는 {#2:0.5}처럼 쓰면 된다. 이것은 2를 중심으로 오차가 0.5이내(즉 1.5에서 2.5)는 모두 정답으로 인정한다는 것을 의미한다. 특별히 오차 범위를 지정하지 않으면 오차는 0으로 여겨진다.

     When was Ulysses S. Grant born? {#1822}

     What is the value of pi (to 3 decimal places)? {#3.1415:0.0005}.

또 한편 수치형 답은 {#최소값..최대값} 처럼 직접 그 범위를 표현할 수도 있다.

     What is the value of pi (to 3 decimal places)? {#3.141..3.142}.

무들의 화면에서는 여러개의 수치형 답을 지원하지 못하지만, 코드 수준에서는 사용 가능한데 GIFT 역시 마찬가지다. 이것은 여러 간격이 있는 수치를 지정하는 데 쓰일 수 있고, 특별히 백분율 정답 가중치와 연계할 때 유용하다. 만일 다수 답을 쓸 때에는, 서술형 단답 문항처럼 등호로 구분하여 써야한다.

     When was Ulysses S. Grant born? {#
         =1822:0
         =%50%1822:2}

무들의 그래픽 사용자 인터페이스는 수치형 문항에 대한 여러 개의 답을 처리할 수 없기 때문에, 무들을 통해서는 이를 편집하거나 볼 수 있는 방법이 없음에 주목하기 바란다. 이러한 문제를 변경할 수 있는 유일한 방법은 질문을 삭제하고 다시 이를 불러들이는 것이다(혹은 phpMyAdmin같은 것을 이용).

선택사항

이러한 기본적인 질문 형태 이외에도 이 필터는 다음과 같은 기능을 제공한다: 주석, 질문명, 피드백 및 백분율 가중치

주석:
주석은 비록 무들로 가져오지는 않지만 문서 파일로 포함될 수는 있다. 이는 헤더로 제공되거나 질문 정보를 제공하는데 자주 쓰인다. (공백이나 탭이 없는) 두개의 역슬래시로 시작하는 줄은 필터에 의해 무시된다.

     // Subheading: Numerical questions below
     What's 2 plus 2? {#4}

질문명:
질문명은 다음처럼 두개의 콜론 사이에 두어 표시한다.

     ::Kanji Origins::Japanese characters originally
     came from what country? {=China}

     ::Thanksgiving Date::The American holiday of Thanksgiving is 
     celebrated on the {~second ~third =fourth} Thursday of November.

만일 질문명을 넣지 않은 경우, 모든 질문은 기본으로 주어진 이름을 사용한다.

피드백:
피드백은 각 답안 뒤에 샵표시(# 해시 표시로도 알려져 있다)를 한 후 포함시킬 수 있다.

     What's the answer to this multiple-choice question?{
     ~wrong answer#feedback comment on the wrong answer
     ~another wrong answer#feedback comment on this wrong answer
     =right answer#Very good!}
     
     Who's buried in Grant's tomb?{
     =no one#excellent answer!
     =nobody#excellent answer!}
     
     Grant is buried in Grant's tomb.{FALSE#Wrong, No one is buried in Grant's tomb.#Right, well done.}

선다형 문제에서 피드백은 학생들이 선택한 답안에 대해서만 주어지게 된다. 주관식 단답의 경우에는 정답을 입력했을 때만 보여지게 된다. 진위형 문항에서는 하나 혹은 두개의 피드백 문구가 있을 수 있다. 첫번째는 학생이 오답을 했을 때, 두번째는 정답을 맞췄을 때이다.

백분율 정답 가중치:
백분율 정답 가중치는 선다형 및 주관식 단답형 모두 사용 가능하다. 백분율 정답 가중치는 틸다 다음에(선다형의 경우) 혹은 등호 뒤(주관식 단답형)에 원하는 값을 퍼센트 기호(예 %50%)로 감싸서 넣으면 된다. 이 선택사항은 피드백과 관련시킬 수 있다.

     Difficult question.{~wrong answer ~%50%half credit answer =full credit answer}
          
     ::Jesus' hometown::Jesus Christ was from {
     ~Jerusalem#This was an important city, but the wrong answer.
     ~%25%Bethlehem#He was born here, but not raised here.
     ~%50%Galilee#You need to be more specific.
     =Nazareth#Yes! That's right!}.
     
     ::Jesus' hometown:: Jesus Christ was from {
     =Nazareth#Yes! That's right!
     =%75%Nazereth#Right, but misspelled.
     =%25%Bethlehem#He was born here, but not raised here.}

마지막 두 개의 예는 동일한 문항으로 첫 번째 것은 선다형이고 그 다음은 주관식 단답형의 형태로 작성되었음에 유의하라.

백분율 정답 가중치를 지정하는 것이 가능하다는 것이 부라우저 수준에서 가능한 것을 의미하는 것이 아님을 유념하라. 불러들이는 페이지에서의 배점 일치 펼침 메뉴는 이들을 어떻게 처리해야 할지를 결정한다. 즉, 오류에 대해서 보고를 받을지 혹은 가장 근접한 유효 정답 가중치로 조정할지를 선택할 수 있다.

문항에 대한 문서 형태 지정
질문에 대한 문서 형태는 선택적으로 지정할 수 있다. 현재 사용 가능한 형태로는 moodle (Moodle 자동 형식), html (HTML 형식), 일반 (일반 문서 형식) 및 markdown (Markdown 형식) 이 있다. 문서 형태의 지정은 문항의 제일 앞에 대괄호로 지정되어 있다. Moodle 문서 유형에 대한 정보 참조.

[markdown]The *American holiday of Thanksgiving* is celebrated on the {
         ~second
         ~third
         =fourth
     } Thursday of November.    

복수의 답:
복수 답 선택사항은 선다형 문항에서 점수를 완전히 따기 위해서 답을 두개 이상 선택해야 할 때 이용된다. 복수 답 선택사항은 하나의 답에 모든 점수를 주지 않고 여러개의 답에 부분적인 가중치를 부여하면 된다.

     What two people are entombed in Grant's tomb? {
          ~No one
          ~%50%Grant
          ~%50%Grant's wife
          ~Grant's father }

여기에서 어느 답도 등호로 연결되지 않고 백분율 정답 가중치의 합이 100%가 됨에 유의하라. 만일 그렇지 않으면 무들은 오류메시지를 내게 된다. 학생들이 모든 답을 선택해서 자동적으로 100%를 얻게되는 문제점을 피하기 위한 가장 좋은 방법은 틀린 답안에 가중치를 음으로 두는 것이다.

     What two people are entombed in Grant's tomb? {
          ~%-50%No one
          ~%50%Grant
          ~%50%Grant's wife
          ~%-50%Grant's father }

특수 문자들 ~ = # { } :
다음에 나오는 ~ = # { } : 등은 필터에서 여러 기능을 조정하므로 질문의 내용 속에 쓰일 수 없다. 이런 기호들은 내부에서 특수한 역할을 하므로 이들을 "조정 문자"라고 부른다. 그러나 어떤 경우에는 이러한 문자를 사용해야 할 때가 있는데, 질문에 수학식을 보여줘야 할 경우같은 예이다. 이 경우에는 "escaping" 문자를 사용하여 해결할 수 있다. 즉 "조정문자" 앞에 백슬래시(\)를 두어 필터가 그 문자가 조정문자로서의 역할을 하는 것이 아니라 단순한 문자로 쓰였음을 인식하게 하는 것이다. 다음은 그 예를 보여 준다:

     Which answer equals 5? {
          ~ \= 2 + 2
          = \= 2 + 3
          ~ \= 2 + 4  }

     ::GIFT Control Characters::
     Which of the following is NOT a control character for the GIFT import format? {
        ~ \~     # \~ is a control character.
        ~ \=     # \= is a control character.
        ~ \#     # \# is a control character.
        ~ \{     # \{ is a control character.
        ~ \}     # \} is a control character.
        = \     # Correct! \ (backslash) is not a control character. BUT,
                   it is used to escape the control characters.
     }

문항이 처리되어 저장될 때에는 백슬러시는 제거되고 무들에 저장된다.

범주 지정

GIFT 파일 내부에서는 어디에서 문항들을 추가할 것인지 그 범주를 지정할 수 있다. 원하는 만큼 파일 내에서 범주를 변경할 수도 있다. 변경자(modifier)와 변경자 사이에 있는 모든 문항의 끝 혹은 파일의 마지막에 범주 지정을 추가할 수 있다. 첫 번째 범주변경자에 다다르면, 가져오는 파일에서 지정된 범주가 화면에 표시된다. 이 때, 가져오는 화면에 반드시 파일에서: 상자에 체크표시가 되어 있어야만 바르게 작동된다는 사실을 명심해야 한다.

한 줄에 범주 변경자를 포함시키는 방법은 다음과 같다(선언하는 줄의 앞 뒤에 빈 줄을 삽입):

$CATEGORY: tom/dick/harry
혹은 간단히
$CATEGORY: mycategory
...첫 번째 예는 중첩된 범주를 보여주는 것이다. 이 경우 문항은 harry 디렉토리에 저장된다. 만약 범주가 존재하지 않는 거라면 이를 생성한다.

기타 사항:
주관식 단답형의 질문은 다음 줄에서 보는 바와 같이 "0" 을 "1" 로 바꿈으로서 다소문자를 가려 채점하는 문제로 만들 수가 있다.
$question->usecase = 0; // Ignore case

도움말 파일 색인