cpicanco / stimulus_control

A teaching machine for free behavioral experiments
GNU General Public License v3.0
11 stars 7 forks source link

É possível fazer tentativas com correção? #66

Closed louisescocio closed 5 years ago

louisescocio commented 5 years ago

Quando estou configurando um bloco aparece a opção "Número máximo de correções por tentativa" mas a correção não tem sido aplicada nas sessões.

cpicanco commented 5 years ago

Olá @louisescocio ,

Sobre o arquivo de configuração

Haverá correção, de acordo com o máximo configurado no bloco, se o parâmetro Nxt de uma comparação possuir como valor o código CRT. Apenas tentativas de discriminação simples e discriminação condicional possuem correção.

Infelizmente, ainda não existe um jeito prático de mudar o arquivo de configuração para correções. Se você planeja correções para todas as tentativas, você deve usar o bloco de notas para localizar e substituir todos os parâmetros Nxt de todas as comparações erradas:

https://github.com/cpicanco/stimulus_control/blob/6e91bfbe4186c7c646f065c69dfd68a883b2ac81/docs/config_examples/linux_conditional_discrimination.txt#L46

Por exemplo, se você possui uma tentativa com três comparações, uma correta e duas incorretas, você terá um arquivo de configuração com os seguites parâmetros em cada tentativa:

C1Nxt=0
C2Nxt=0
C3Nxt=0

O programa por padrão define a comparação correta como sendo a primeira (C1), dessa forma, se você substituir os parâmetros C2 e C3 deve funcionar:

C1Nxt=0
C2Nxt=CRT
C3Nxt=CRT

TLDR

Estou anexando a essa resposta algumas referências ao código do braço vlc-videos. Esse braço corresponde à versão do programa que você tem usado e que tem suporte aos estímulos como vídeos. Esses anexos são referências para o programador.

As versões do programa que suportam tentativas de correção possuem os seguintes trechos devidamente implementados:

O sistema de correções é a repetição da tentativa de acordo com um máximo estabelecido nas configurações do bloco de tentativas. Tentativa à tentativa, a classe que controla a passagem de tentativas de um bloco usa a classe que reúne os contadores de tentativas para checar se o máximo de tentativas de correção foi atingido ou não:

https://github.com/cpicanco/stimulus_control/blob/9cbee4e35b694edb80cda73bb3d7a706244ff51e/src/units/session.blocs.pas#L389-L391

Há um erro na constante que controla a ativação da contagem de correções de uma tentativa:

Deveria ser:

https://github.com/cpicanco/stimulus_control/blob/9cbee4e35b694edb80cda73bb3d7a706244ff51e/src/units/constants.pas#L231

Porém atualmente é controlado por:

https://github.com/cpicanco/stimulus_control/blob/9cbee4e35b694edb80cda73bb3d7a706244ff51e/src/units/constants.pas#L191

Porém, na maioria dos casos o erro não afetará a funcionalidade.

Atualmente o sistema está presente apenas em alguns tipos de tentativa, por exemplo nas discriminações simples e discriminações condicionais:

https://github.com/cpicanco/stimulus_control/blob/9cbee4e35b694edb80cda73bb3d7a706244ff51e/src/units/controls.trials.simplediscrimination.pas#L154-L157

Uma alternativa para implementações futuras seria ativar o sistema de correções de acordo com o sistema de acertos e erros definido pelo usuário:

https://github.com/cpicanco/stimulus_control/blob/9cbee4e35b694edb80cda73bb3d7a706244ff51e/src/units/controls.trials.simplediscrimination.pas#L147-L152

louisescocio commented 5 years ago

Ok. Consegui. Obrigada!