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.
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?
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> .
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.
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
baseTypedefine o tipo de dados básico:-
boolean -
directedPair -
duration -
file -
float -
identifier -
integer -
pair -
point -
string -
uri
-
-
O atributo
cardinalitydefine o número de elementosbaseTypee 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.
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.
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.
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.)
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:
-
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>) eSCOREeFEEDBACKserão definidos com os valores corretos. -
Configure
SCOREcom o valor fornecido pelo<mapping>no<responseDeclaration(usando o elemento<mapResponse>). -
Compare o
SCOREcom um conjunto de valores fixos definido porFEEDBACK_TRESHOLD <outcomeDeclaration>(no elemento<gte>[greater than or equal]) e define oFEEDBACKapropriadamente.
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. -
nunAttemptsecompletionStatus. 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 deRESPONSE -
A ação inclui um
<outcomeDeclaration>chamadoSCOREdo tipofloat
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 deRESPONSE <responseDeclaration>. O URI é:http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response
-
Map_Response_Point: isso é o mesmo queMap_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>
|
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.
Aprender
- Website da IMS: saiba mais sobre IMS e a norma QTI.
- Guia de implementação do IMS Question and Test Interoperability (IMS, junho 2006): veja exemplos do QTI Versão 2. Os exemplos mostram como o sistema pode implementar a especificação e não são prescritivos
- IMS Question and Test Interoperability Assessment Test, Section, and Item Information Model (IMS, junho de 2006): leia sobre o modelo de informações para itens, seções e testes completos usados na avaliação.
- Iniciante em XML? Obtenha os recursos que precisa para aprender XML.
- Área de XML do developerWorks: localize os recursos necessários para avançar em conhecimentos na arena XML, incluindo DTDs, esquemas e XSLT. Consulte Biblioteca técnica de XML para obter um intervalo amplo de artigos técnicos e dicas, tutoriais, padrões e IBM Redbooks.
- Certificação XML da IBM: Descubra como se tornar um Desenvolvedor Certificado pela IBM em XML e tecnologias relacionadas.
- eventos técnicos e webcasts do developerWorks: Mantenha-se atualizado em relação à tecnologia nessas sessões.
- o developerWorks no Twitter: Inscreva-se hoje para seguir os tweets do developerWorks.
- Podcasts do developerWorks: escute entrevistas e debates interessantes para desenvolvedores de software.
- demos on demand do developerWorks: Acompanhe demos que abrangem desde a instalação de produto e configuração para iniciantes até funcionalidade avançada para desenvolvedores experientes.
Obter produtos e tecnologias
- Versões de avaliação de produto IBM: Faça o download ou explore as versões de teste on-line no IBM SOA Sandbox e entre em contato com as ferramentas de desenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®, Rational®, Tivoli®e WebSphere®.
Discutir
- perfil do developerWorks: crie seu perfil hoje e configure uma watchlist.
- Fóruns de discussão da zona de XML: Participe de qualquer uma das várias discussões relacionadas a XML.
- A comunidade do developerWorks: Entre em contato com outros usuários do developerWorks e explore os blogs, fóruns, grupos e wikis voltados para desenvolvedores.

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.