Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Explore o QTI detalhadamente

Aprenda sobre o processamento de respostas e resultados para questões de teste

Erik Siegel, XML Specialist, Xatapult
Photo of Erik Siegel
Erik Siegel trabalha como especialista em XML autônomo na Holanda. Sua carreira envolveu muitos trabalhos—pesquisador, programador, analista de sistemas, gerente de projetos, arquiteto de sistemas, consultor. Durante os últimos cinco anos, XML avançou lentamente. Seus principais clientes estão na área de publicação e suas atividades com XML incluem consultoria, treinamento, desenvolvimento de esquema e programação em XSLT. Saiba mais sobre Erik e sua empresa em www.xatapult.com.

Resumo:  A especificação IMS Question and Test Interoperability (QTI) é uma norma amplamente usada para marcação de questões e de outros materiais de aprendizado Analise o processamento de respostas e resultados de um item de QTI e aprenda o que acontece quando um usuário responde a uma questão.

Data:  02/Fev/2012
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  1093 visualizações
Comentários:  


Atualmente, a norma mais amplamente usada para marcação de avaliações, testes e questões individuais em XML é o IMS Question and Test Interoperability (QTI). IMS é uma organização de e-learning relacionada a normas (consulte Recursos para obter um link) que trabalha com normas que vão desde metadados até a transferência de informações sobre o aprendiz. O QTI padroniza a forma de marcação de questões em XML, as organiza em testes e avaliações, adiciona metadados e agrupa tudo em um arquivo ZIP.

Acrônimos usados frequentemente

  • URI: Identificador Uniforme de Recursos
  • XHTML: Linguagem de Marcação de Hipertexto Extensível

O XML do QTI não apenas descreve as partes estáticas das questões, avaliações e testes (texto, layout, ordem etc.), mas também seu comportamento dinâmico—como, por exemplo, se comportar quando o usuário responde incorretamente, quando fornecer determinado feedback e como calcular a pontuação. Você pode tornar esse processo o quão complicado quiser: o QTI fornece recursos de programação para tornar tudo possível.

Infelizmente, como tudo isso funciona é um pouco complicado. A documentação é estruturada em torno da definição da norma, e não da explicação . Alguns exemplos são acompanhados por um documento útil (o Guia de implementação do IMS Question and Test Interoperability—, consulte Recursos para obter um link), mas isso ainda não fornece muitos detalhes sobre o que ocorre internamente.

Este artigo explora o processamento de respostas e resultados dentro do bloco de construção básico do QTI: o item de avaliação. Como você avalia a resposta de um usuário e o que você faz com ela em termos de pontuação?

Itens de avaliação do QTI

Se você não estiver familiarizado com o QTI, esta seção fornece uma breve visão geral dos itens de avaliação.

Itens de avaliação (ou, resumindo, itens ) são os blocos de construção básicos do QTI. Um item pode ser composto por uma combinação arbitrariamente complexa de texto (com marcação), diversas questões de tipos diferentes, painéis laterais de informação, objetos de multimídia e mais. Também define seu próprio processamento de resultados e de respostas—quando a resposta é considerada correta, pontuação e feedback.

Na prática, os itens de avaliação do QTI normalmente não são complexos. A grande maioria que vi contém apenas uma única questão. A Listagem 1 mostra a anatomia de um item de avaliação de QTI.


Lista 1. Anatomia de um item de QTI
 
 
<assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1" ...>

<responseDeclaration ...>
   <!-- Information about the answers to the questions inside -->
</responseDeclaration>

<outcomeDeclaration ...>
   <!-- Internal variables for computing scores, controlling feedback, etc. -->
</outcomeDeclaration>

<itemBody ...>
   <!-- Text and the interactive parts (questions) -->
</itemBody>

<responseProcessing ...>
   <!-- How to handle the user's response -->
</responseProcessing>

<modalFeedback ...>
   <!-- Optional feedback messages to the user -->
</modalFeedback>

</assessmentItem>

Veja uma explicação da marcação:

  • Um <responseDeclaration> contém informações sobre a resposta para uma questão: quando a resposta é correta, e (opcionalmente) como é feita a pontuação? Um <responseDeclaration> é obrigatório para questão separada no <itemBody>.
  • Um <outcomeDeclaration> define uma variável interna—por exemplo, para retornar a pontuação para o ambiente ou para controlar o feedback para o usuário.
  • O elemento único <itemBody> contém o texto, a marcação e as questões para esse item. A marcação tem uma semelhança impressionante com XHTML, mas tenha cuidado: embora você veja elementos conhecidos como <p> e <ul>, tudo está no namespace de QTI (http://www.imsglobal.org/xsd/imsqti_v2p1) e não no namespace XHTML. A norma não prescreve que você precisa renderizá-la com um navegador, o que deixa bastante espaço para interpretação. Dessa forma, a renderização consistente é um grande problema ao trocar conteúdo entre mecanismos diferentes de processamento de QTI.
  • A seção <responseProcessing> descreve as ações a serem executadas quando o estudante conclui o item. Seu conteúdo é uma linguagem de programação simples na qual é possível executar cálculos, definir variáveis de <outcomeDeclaration> e muito mais.
  • Por fim, <modalFeedback> define o feedback do item para o estudante (por exemplo, mostra "Well done" quando a resposta é correta).

este artigo é sobre as seções <responseDeclaration>, <outcomeDeclaration> e <responseProcessing> .

Tipos de interação

O elemento <itemBody> em um item pode conter zero ou mais interações com o usuário. A maioria dessas interações são questões comuns (por exemplo, múltipla escolha, organização de elementos, preenchimento de lacunas). Também é possível adicionar interações como "upload document", "draw a picture" e "start a film".

A Listagem 2 fornece um exemplo de questão de múltipla escolha.


Lista 2. Exemplo de interação de múltipla escolha
 
 
<itemBody>
   <choiceInteraction responseIdentifier="RESPONSE" shuffle="true" maxChoices="1">
      <prompt>What is the top color of the Dutch flag?</prompt>
      <simpleChoice identifier="A">Red</simpleChoice>
      <simpleChoice >="B">Orange</simpleChoice>
      <simpleChoice identifier="C">Black</simpleChoice>
      <simpleChoice identifier="D">White</simpleChoice>
   </choiceInteraction>
</itemBody>

E a Listagem 3 oferece um exemplo de uma questão de organização.


Lista 3. Exemplo de interação de organização
 
 
<itemBody>
   <orderInteraction responseIdentifier="RESPONSE" shuffle="false">
      <prompt>Order these cities from north to south:</prompt>
      <simpleChoice identifier="A">Tripoli</simpleChoice>
      <simpleChoice identifier="B">Stockholm</simpleChoice>
      <simpleChoice identifier="C">Paris</simpleChoice>
   </orderInteraction>
</itemBody>

O QTI v2.1 define 20 tipos de interação. Você pode encontrar um conjunto completo de exemplos no Guia de implementação do IMS Question and Test Interoperability. Você determina quais tipos usar, mas observe que nem todos os mecanismos de processamento de QTI suportam todos os tipos de interação.

Como você pode ver nos exemplos, uma interação tem um atributo responseIdentifier que liga a interação a um <responseDeclaration> com o mesmo identificador. Esse é o link para o processamento do resultado e das respostas e eu voltarei nele mais tarde.


O modelo de dados de QTI

Um pré-requisito importante para a compreensão do processamento do resultado e das respostas do QTI é entender seu modelo de dados e os motivos por trás de sua aparente complexidade.

Quando um usuário conclui um item do QTI, as respostas precisam ser verificadas. Para isso, as respostas são representadas como dados. Às vezes, os dados são simples: uma questão de múltipla escolha, com resposta única, retorna apenas o identificador da resposta dada, e uma interação de régua de controle numérica retorna um número. A maioria dos tipos de interação, no entanto, é mais complicada. Por exemplo:

  • Questões de múltipla escolha, com diversas respostas, retornam um conjunto de identificadores de resposta (por exemplo, "Os identificadores das respostas verificadas eram A, C e D.").
  • Organização retorna um conjunto organizado de identificadores de resposta (por exemplo, "Os identificadores da sequência criada eram C, A e B").
  • Questões nas quais você associa palavras retornam um conjunto de pares de identificadores (por exemplo, "as palavras eram associadas como (A, C), (B, D) e (E, F)").
  • O posicionamento de objetos em um mapa retorna um conjunto de pontos (por exemplo, "os objetos foram colocados nos locais (102, 10), (125, 653)").

A decisão se uma resposta está correta ou não é feita por meio da ligação de <responseDeclaration> com a interação. Isso significa que é necessário ter um tipo de dado apropriado para a interação. Por exemplo, a Listagem 4 fornece uma declaração para um <positionObjectInteraction>, um tipo de questão no qual você precisa posicionar objetos em um gráfico (por exemplo, um mapa). Seu tipo de dados é um conjunto de pontos.


Lista 4. Uma declaração de resposta com um conjunto de pontos
 
 
<responseDeclaration identifier="RESPONSE" baseType="point" cardinality="multiple">
   <correctResponse>
      <value>118 184</value>
      <value>150 235</value>
      <value>96 114</value>
   </correctResponse>
</responseDeclaration>

Os tipos de dados QTI são definidos pelos atributos baseType e cardinality nos elementos <responseDeclaration> e <outcomeDeclaration> :

  • O atributo baseType define o tipo de dados básico:
    • boolean
    • directedPair
    • duration
    • file
    • float
    • identifier
    • integer
    • pair
    • point
    • string
    • uri
  • O atributo cardinality define o número de elementos baseType e se o conjunto é organizado. Os valores são:
    • multiple
    • ordered
    • record (um tipo especial, mas bem complicado, não discutido neste artigo)
    • single

Processamento de respostas e resultados

O processamento de respostas e resultados cuida do que acontece quando o usuário conclui o item. O processador de QTI precisa realizar tarefas como decidir se a resposta está correta, calcular uma pontuação e fornecer um feedback. As seções <responseDeclaration>, <outcomeDeclaration> e <responseProcessing> têm um papel a desempenhar nesse processo.

Declarações de resposta

O identificador de um elemento <responseDeclaration> sempre o liga a uma interação no corpo do item. A Listagem 5 dá um exemplo.


Lista 5. Ligando uma interação com sua declaração de resposta
 
 
<responseDeclaration identifier="QUESTION1" cardinality="single"
                     baseType="identifier">
   <correctResponse>
      <value>B</value>
   </correctResponse>
</responseDeclaration>
<itemBody>
   <choiceInteraction responseIdentifier="QUESTION1" shuffle="false" maxChoices="1">
      <prompt>Is a goldfish a mammal?</prompt>
      <simpleChoice identifier="A">Yes</simpleChoice>
      <simpleChoice identifier="B">No</simpleChoice>
   </choiceInteraction>
</itemBody>

Um <responseDeclaration> não é uma variável simples: é melhor pensar nele como um objeto no sentido orientado a objetos. Esse objeto tem três "métodos" que podem ser usados em cálculos na seção <responseProcessing> do item:

  • Obter a resposta do aprendiz para a questão.
  • Obter a resposta correta (melhor possível) para a questão.
  • Mapear respostas diferentes para pontos, de modo que uma resposta possa ter mais nuances do que simplesmente estar certa ou errada.

A Listagem 6 fornece um exemplo de um <responseDeclaration> no qual uma pontuação é calculada dependendo das respostas fornecidas.


Lista 6. Declaração de resposta que calcula uma pontuação
 
 
<responseDeclaration identifier="QUESTION1" cardinality="multiple"
                     baseType="identifier">
   <correctResponse>
      <value>A</value>
      <value>D</value>
   </correctResponse>
   <mapping defaultValue="0" lowerBound="0" upperBound="1">
      <mapEntry mapKey="A" mappedValue="0.5"/>
      <mapEntry mapKey="B" mappedValue="-0.5"/>
      <mapEntry mapKey="C" mappedValue="-0.5"/>
      <mapEntry mapKey="D" mappedValue="0.5"/>
   </mapping>
</responseDeclaration>
<itemBody>
   <choiceInteraction responseIdentifier="QUESTION1" shuffle="false" maxChoices="0">
      <prompt>Which are colors?</prompt>
      <simpleChoice identifier="A">Red</simpleChoice>
      <simpleChoice identifier="B">Small</simpleChoice>
      <simpleChoice identifier="C">Soft</simpleChoice>
      <simpleChoice identifier="D">Purple</simpleChoice>
   </choiceInteraction>
</itemBody>

Dessa forma, se o aprendiz forneceu as respostas A (vermelho), B (pequeno) e D (roxo), a pontuação seria calculada de acordo com o <mapping> como (A) 0,5 + (B) -0,5 + (D) 0,5 = 0,5.

Talvez você esteja se perguntando por que esse processo é realizado completamente dentro de um <responseDeclaration>. Determinar se uma resposta está correta e o cálculo das pontuações também pode ser realizado na seção <responseProcessing> . Parece não haver uma necessidade direta de declarar as respostas corretas e as pontuações quando você também pode calculá-las (ou vice-versa).

O motivo por trás disso é que o QTI também deseja que a norma seja aplicada para situações simples—por exemplo, um mecanismo de renderização que simplesmente ignora o processamento de respostas e apenas consulta as respostas corretas definidas. O mesmo raciocínio se aplica aos modelos predefinidos de processamento de respostas.

Declarações do resultado

Um <outcomeDeclaration> é o equivalente em QTI a uma variável. A Listagem 7 dá um exemplo.


Lista 7. Exemplo de uma declaração de resultado
 
 
<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float">
   <defaultValue>
      <value baseType="float">0.5</value>
   </defaultValue>
</outcomeDeclaration>

Essa marcação define uma variável chamada SCORE, com um único float e um valor padrão de 0,5. O fornecimento de um padrão é opcional. Se você não o fizer, as variáveis numéricas serão inicializadas como 0,0 e as variáveis não numéricas como NULL.

Observação: SCORE é um nome reservado. Use-o para fornecer uma pontuação numérica representando o desempenho geral do candidato no item para o ambiente.

É possível adicionar mais inteligência a um <outcomeDeclaration> fornecendo uma estrutura chamada <matchTable> ou <interpolationTable>. Eu nunca vi alguma delas em utilização, e a maioria dos mecanismos de renderização provavelmente não as suporta, portanto, eu não vou explicá-las aqui.

Processamento de respostas

A seção <responseProcessing> de um item contém instruções para o mecanismo de renderização com relação a o que fazer após o usuário fornecer uma resposta. As instruções podem vir em dois formatos:

  • Um programa ou script em uma linguagem de programação baseada em XML
  • Uma referência a um modelo predefinido, que também é um script na linguagem de programação de processamento de respostas (uma vez que o modelo é predefinido, os mecanismos de renderização podem codificá-lo e, se você mantiver essa opção, não será necessário fornecer um intérprete de script completo.)

A linguagem de script

Vamos examinar primeiro o script de processamento de respostas. A Listagem 8 fornece um exemplo desse script.


Lista 8. Exemplo simples de um processamento de respostas
 
 
<responseDeclaration identifier="RESPONSE_01" cardinality="single"
                     baseType="string">
   <correctResponse>
      <value>white</value>
   </correctResponse>
</responseDeclaration>
<responseDeclaration identifier="RESPONSE_02" cardinality="single"
                     baseType="string">
   <correctResponse>
      <value>green</value>
   </correctResponse>
</responseDeclaration>

<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float"/>

<itemBody>
   <p>Fill in the right colors:</p>
   <p>Snow is
      <textEntryInteraction responseIdentifier="RESPONSE_01" expectedLength="5"/>
      and grass is
      <textEntryInteraction responseIdentifier="RESPONSE_02" expectedLength="5"/>.
   </p>
</itemBody>

<responseProcessing>
   <responseCondition>
      <responseIf>
         <and>
            <match>
               <variable identifier="RESPONSE_01"/>
               <correct identifier="RESPONSE_01"/>
            </match>
            <match>
               <variable identifier="RESPONSE_02"/>
               <correct identifier="RESPONSE_02"/>
            </match>
         </and>
         <setOutcomeValue identifier="SCORE">
            <baseValue baseType="integer">1.0</baseValue>
         </setOutcomeValue>
      </responseIf>
      <responseElse>
         <setOutcomeValue identifier="SCORE">
            <baseValue baseType="integer">0.0</baseValue>
         </setOutcomeValue>
      </responseElse>
   </responseCondition>
</responseProcessing>

Esse processamento de resposta examina os valores das duas respostas do aprendiz com relação nas respostas corretas definidas (melhores possíveis). Isso é feito nos elementos <match> . Ambas precisam estar corretas, o que é manipulado pelo elemento <and> . Se estiverem corretas, o SCORE <outcomeDeclaration> será definido como 1,0; caso contrário, será definido como 0,0. A Listagem 9 oferece outro exemplo, um pouco mais complicado.


Lista 9. Exemplo mais complicado do processamento de respostas
 
 
<responseDeclaration identifier="RESPONSE" cardinality="multiple"
                     baseType="identifier">
   <correctResponse>
      <value>A</value>
      <value>C</value>
   </correctResponse>
   <mapping lowerBound="0.0" upperBound="1.0" defaultValue="0.0">
      <mapEntry mapKey="A" mappedValue="0.5"/>
      <mapEntry mapKey="B" mappedValue="-0.25"/>
      <mapEntry mapKey="C" mappedValue="0.5"/>
      <mapEntry mapKey="D" mappedValue="-0.25"/>
   </mapping>
</responseDeclaration>

<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float"/>
<outcomeDeclaration identifier="FEEDBACK" cardinality="single" baseType="identifier"/>
<outcomeDeclaration identifier="FEEDBACK_TRESHOLD" cardinality="single"
                    baseType="float">
   <defaultValue>
      <value baseType="float">0.75</value>
   </defaultValue>
</outcomeDeclaration>

<itemBody>
   <choiceInteraction responseIdentifier="RESPONSE" shuffle="true" maxChoices="0">
      <prompt>Which countries are south of the USA?</prompt>
      <simpleChoice identifier="A">Mexico</simpleChoice>
      <simpleChoice identifier="B">Canada</simpleChoice>
      <simpleChoice identifier="C">Brazil</simpleChoice>
      <simpleChoice identifier="D">Norway</simpleChoice>
   </choiceInteraction>
</itemBody>

<responseProcessing>
   <responseCondition>
      <responseIf>
         <isNull>
            <variable identifier="RESPONSE"/>
         </isNull>
         <setOutcomeValue identifier="SCORE">
            <baseValue baseType="float">0.0</baseValue>
         </setOutcomeValue>
         <setOutcomeValue identifier="FEEDBACK">
            <baseValue baseType="identifier">FAILURE</baseValue>
         </setOutcomeValue>
      </responseIf>
      <responseElse>
         <setOutcomeValue identifier="SCORE">
            <mapResponse identifier="RESPONSE"/>
         </setOutcomeValue>
         <responseCondition>
            <responseIf>
               <gte>
                  <variable identifier="SCORE"/>
                  <variable identifier="FEEDBACK_TRESHOLD"/>
               </gte>
               <setOutcomeValue identifier="FEEDBACK">
                  <baseValue baseType="identifier">ANSWER_CORRECT</baseValue>
               </setOutcomeValue>
            </responseIf>
            <responseElse>
               <setOutcomeValue identifier="FEEDBACK">
                  <baseValue baseType="identifier">FAILURE</baseValue>
               </setOutcomeValue>
            </responseElse>
         </responseCondition>
      </responseElse>
   </responseCondition>
</responseProcessing>

Além de definir uma pontuação, esse processamento de resposta também define um <outcomeDeclaration> chamado FEEDBACK como FAILURE ou ANSWER_CORRECT. É possível usar essa declaração para fornecer o feedback correto para o usuário.

O processamento de respostas segue três etapas:

  1. Determine se há uma resposta (talvez o usuário tenha clicado em Continue sem fornecer uma resposta). Se for o caso, o valor de <responseDeclaration> será NULL (marcado pelo elemento <isNull> ) e SCORE e FEEDBACK serão definidos com os valores corretos.
  2. Configure SCORE com o valor fornecido pelo <mapping> no <responseDeclaration (usando o elemento <mapResponse> ).
  3. Compare o SCORE com um conjunto de valores fixos definido por FEEDBACK_TRESHOLD <outcomeDeclaration> (no elemento <gte> [greater than or equal]) e define o FEEDBACK apropriadamente.

Além de suas próprias declarações, é possível usar algumas variáveis predefinidas no processamento das respostas:

  • duration. O tempo gasto pelo usuário respondendo a questão, em segundos. Use essa variável, por exemplo, para reduzir a pontuação quando demorar muito para o usuário fornecer uma resposta.
  • nunAttempts e completionStatus. Essas variáveis são tratadas na seção sobre processamento adaptativo.

Se você estiver familiarizado com programação ou script, escrever o processamento de respostas não será complicado. É possível encontrar uma definição completa da linguagem no documento sobre QTI, IMS Question and Test Interoperability Assessment Test, Section, and Item Information Model (consulte Recursos para obter um link). Como você pode ver, devido ao XML, é tudo muito detalhado, e você precisa escrever uma quantidade muito grande de código a fim de produzir ações significativas. Infelizmente, esse é o padrão.

Modelos predefinidos de processamento de respostas

Como eu já mencionei em Declarações de resposta, a norma QTI tem opções integradas para o processamento de respostas simples. Por exemplo, usando a resposta correta em um <responseDeclaration>, é possível determinar se uma determinada resposta está certa ou errada sem executar qualquer processamento de resposta em script. Essa abordagem permite um conteúdo simples e mecanismos de renderização de acompanhamento sem a violação da norma.

Outro recurso simplificador são os modelos de processamento de resposta. O QTI predefine três modelos para processamento básico de resposta. Os modelos são identificados por URIs fixos—por exemplo:

<responseProcessing
   template="http://www.imsglobal.org/question/qti_v2p0/rptemplates/match_correct"/>

Os scripts reais são agrupados com esses URIs. Um mecanismo de renderização pode lidar com eles da mesma forma que os scripts. Para ajudar os mecanismos de renderização a encontrar o modelo certo, é possível fornecer um local como:

<responseProcessing template="..." templateLocation="/rptemplates/match_correct.xml/>

Será possível usar os modelos predefinidos se:

  • A ação inclui somente uma interação
  • O <responseDeclaration> para essa ação for chamado de RESPONSE
  • A ação inclui um <outcomeDeclaration> chamado SCORE do tipo float

Os modelos predefinidos são:

  • Match_Correct: defina a pontuação como 0,0 se não houver resposta ou ela estiver incorreta, e como 1,0 se estiver correta. O URI é:
    http://www.imsglobal.org/question/qti_v2p0/rptemplates/match_correct

  • Map_Response: defina a pontuação como 0.0 se não houver resposta; caso contrário, use o mapeamento dentro de RESPONSE <responseDeclaration>. O URI é:
    http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response

  • Map_Response_Point: isso é o mesmo que Map_Response , mas para tipos de interação gráfica. Ele usa um mapeamento de área, em vez de um mapeamento de identificador. O URI é:
    http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response_point

É possível expressar todos os modelos predefinidos na linguagem de script de processamento de resposta. Se você fizer o download dos exemplos de QTI, os scripts de modelo serão incluídos. Por exemplo, a Listagem 10 mostra o código para Map_Response.


Lista 10. Script para o modelo predefinido Map_Response
 
 
<responseProcessing>
   <responseCondition>
      <responseIf>
         <isNull>
            <variable identifier="RESPONSE"/>
         </isNull>
         <setOutcomeValue identifier="SCORE">
            <baseValue baseType="integer">0</baseValue>
         </setOutcomeValue>
      </responseIf>
      <responseElse>
         <setOutcomeValue identifier="SCORE">
            <mapResponse identifier="RESPONSE"/>
         </setOutcomeValue>
      </responseElse>
   </responseCondition>
</responseProcessing>

Você não precisa ficar restrito a esses modelos predefinidos de QTI. Em uma situação na qual o produtor de conteúdo e o construtor do mecanismo de renderização estão firmemente agrupados, nada o impede de definir seu próprio modelo.

Processamento adaptativo e não adaptativo

Até este ponto, eu conversei sobre o processamento de resposta de um item de QTI, como uma interação única do aprendiz com a questão: a questão é apresentada, uma resposta é fornecida, a pontuação é calculada. O QTI chama esse formato de exame de itens não adaptativos . Em outra situação, convém ensinar algo ao aprendiz e usar as questões como o mecanismo para esse fim. Nesse caso, o aprendiz normalmente tem mais de uma oportunidade para responder à questão. Um feedback mais detalhado pode ser fornecido ("Essa resposta específica está incorreta", "Tenho uma dica para você: …"), e você pode ajustar a pontuação com base no número de tentativas.

Para essa situação, o QTI define itens adaptativos . Um item adaptativo é identificado pela configuração do atributo adaptive no elemento raiz como true(), como mostra a Listagem 11.


Lista 11. Tornando um item adaptativo por meio da configuração do atributo adaptive do elemento raiz
 
 
<assessmentItem adaptive="true" … >
 … 
</assessmentItem>

Em um item adaptativo, a interação com o aprendiz não termina mais por padrão após a resposta ser fornecida. Em vez disso, ela pode terminar de duas maneiras:

  • Por algo definido no mecanismo de renderização (um botão Stop explícito, um tempo limite etc.)
  • O processamento de respostas configurando explicitamente uma variável integrada chamada completionStatus

A variável completionStatus tem quatro valores possíveis para o tipo identifier: completed, incomplete, not_attempted e unknown. Se você defini-la como completed, a interação será encerrada.

Outra variável integrada bastante útil para itens adaptativos é numAttempts . Como você deve esperar, essa variável simplesmente conta o número de tentativas feitas pelo usuário para responder ao item. Por exemplo, a Listagem 12 mostra um fragmento de processamento de respostas que encerra a interação após o usuário ter feito mais de quatro tentativas.


Lista 12. Usando numAttempts para definir o status de conclusão
 
 
<responseIf>
   <gt>
      <variable identifier="numAttempts"/>
      <baseValue baseType="integer">4</baseValue>
   </gt>
   <setOutcomeValue identifier="completionStatus">
      <baseValue baseType="identifier">completed</baseValue>
   </setOutcomeValue>
</responseIf>


Conclusão

Este artigo abordou a forma que um mecanismo de renderização de QTI executa (ou deveria executar: bons mecanismos de renderização são raros) o processamento de respostas e resultados—o que deveria acontecer após o aprendiz responder a uma pergunta. Na maioria dos casos, uma pontuação é estabelecida, mas também é possível usá-lo para outros propósitos.

Se você não quiser ou não precisar implementar todo o processamento de respostas e do QTU, ainda será possível continuar com a norma e comparar as respostas corretas fornecidas ou usar os modelos de processamento de resposta integrados.


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Photo of Erik Siegel

Erik Siegel trabalha como especialista em XML autônomo na Holanda. Sua carreira envolveu muitos trabalhos—pesquisador, programador, analista de sistemas, gerente de projetos, arquiteto de sistemas, consultor. Durante os últimos cinco anos, XML avançou lentamente. Seus principais clientes estão na área de publicação e suas atividades com XML incluem consultoria, treinamento, desenvolvimento de esquema e programação em XSLT. Saiba mais sobre Erik e sua empresa em www.xatapult.com.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Industries
ArticleID=790640
ArticleTitle=Explore o QTI detalhadamente
publish-date=02022012

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).