Feedback contingent on expectation and response

128 views
Skip to first unread message

Steph

unread,
Nov 20, 2009, 11:46:51 AM11/20/09
to E-Prime
First, I'd like to say how helpful I've already found this group as a
new user of E-Prime. I am essentially teaching myself to use it and
the answers I've already found have made the program much less
intimidating. Thanks!

For the task I'm creating, the participant will first see an image
display that will lead them to expect either a reward or a
punishment. They will then complete the task and the feedback they
receive will depend upon the expectation (either + or -) and then the
response (either correct or incorrect). Also, 20% of the time, the
participant will receive feedback that is incongruent with the
expectation. I've been able to make the feedback contingent on
whether the response is correct or not, but can't seem to figure out
how to make it also contingent on the participants expectations. Any
advice would be greatly appreciated!

liwenna

unread,
Nov 20, 2009, 12:13:13 PM11/20/09
to E-Prime
There's bound to be a more elegant way to do this but the idea below
might work. It requires two attributes to be set: expectation (+ and -
for 50% of the trials) and congruency (1 and 0 for 80% and 20% of the
trials). I assume your setup allows you to organise such a thing in
your lists?
Then what you'd do is first shift by the expectation attribute (+ or
-) and next by the congruency attribute to end up with the desired
feedback. The code below is not tested I probably made typoes and
mistakes in it, but it shows you the general idea.

*****************
select case c.getattrib ("expectation")

case +

select case c.getattrib ("congruency")
case 1
if response.acc = 1 then c.setattrib "feedback",
feedbackforrewardandcorrect
if response.acc = 0 then c.setattrib "feedback".
feedbackforrewardandincorrect

case 0
if response.acc = 1 then c.setattrib "feedback",
feedbackforpunishmentandcorrect
if response.acc = 0 then c.setattrib "feedback".
feedbackforpunishmentandincorrect
end select

case -

select case c.getattrib ("congruency")
case 1
if response.acc = 1 then c.setattrib "feedback",
feedbackforpunishmentandcorrect
if response.acc = 0 then c.setattrib "feedback".
feedbackforpunishmentandincorrect

case 0
if response.acc = 1 then c.setattrib "feedback",
feedbackforrewardandcorrect
if response.acc = 0 then c.setattrib "feedback".
feedbackforrewardandincorrect

end select

end select
************************

liwenna

unread,
Nov 20, 2009, 12:14:17 PM11/20/09
to E-Prime
code is also more white than the google groups frame is... don't break
the lines:
c.setattrib "feedback". feedbackforrewardandincorrect

;)

Steph

unread,
Nov 20, 2009, 1:13:37 PM11/20/09
to E-Prime
Thanks so much - I'm going to work through this slowly (I really want
to try and figure out everything as I go!), but it seems to make sense
to me. I am a little confused about the "feedbackforrewardandcorrect,
etc" items. When you ask it to c.setattrib "feedback" the program
searches for the feedback display, right? Am I supposed to rename the
tabs at the bottom of the feedback display
"feedbackforrewardandcorrect, etc." (currently "correct," "incorrect,"
"no reponse," and "pending") so that that particular tab is
displayed? I'm sorry if this seems like a silly question, but this is
all still very new! Thanks again for your help!

David McFarlane

unread,
Nov 20, 2009, 1:36:00 PM11/20/09
to e-p...@googlegroups.com
liwenna's Select Case approach looks plenty good to me, I just want
to add a "defensive programming" lesson. If you make a mistake in
your List and use an "expection" other than "+" or "-", or use a
"congruency" other than 1 or 0, then your program might not do what
you mean it to do and, worse yet, you might not even know. To
protect yourself, *always* add a Case Else clause to catch all the
exceptions. You could just add an error message and bail out there, e.g.,

Case Else
MsgBox "Sorry Dave, I can't let you do that."
c.Log ' preserve the integrity of the log if possible
End Sub ' and bail out now

-- David McFarlane, Professional Faultfinder

liwenna

unread,
Nov 20, 2009, 1:38:43 PM11/20/09
to E-Prime
ah no... sorry for causing confusion.

I didn't realise you are using the feedback slide. I never used it
myself so I actually have no idea on how it works exactly nor on how
to adjust the code to be used with the feedbackslide.

Just regard the lines "c.setattrib "feedback",
feedbackforpunishmentandcorrect" etc as a 'concept'. The c.settattrib
"feedback" would refer to an (or can be replanced by any) attribute
that can be set to different 'values' that consequently would result
in different types of feedback on the feedbackslide... and "
feedbackforpunishmentandcorrect" would be the value that is needed for
that specifiek type of feedback.

This also means that the attribute "feedback" could be a string
attribute and "feedbackforpunishmentandcorrect" it's value i.e. the
sentence that would be displayed in the feedbackslide (if you'd set a
slide up to have a textobject showing [feedback] ) or perhaps it is
indeed more easy to have the attribute "feedback" take the 'value' of
one of four slidestatenamess so that if you set slidestate to
[feedback] the state that has the same name as the 'value' of
feedback, is shown.

I am affraid this is confusion galore... >.< Sorry about creating
that :)

David McFarlane

unread,
Nov 20, 2009, 1:55:05 PM11/20/09
to e-p...@googlegroups.com
Yes, a common source of confusion around here. People use a
TextDisplay or SlideDisplay to present feedback to the subject, and
then casually refer to it as their feedback display, which is quite
distinct from what EP calls a FeedbackDisplay (and which users also
refer to as their feedback display). Yikes!

Anyway, you can control the "state" of a Slide or FeedbackDisply
object through its .ActiveState property, e.g.,

MySlide.ActiveState = "CorrectReward"

or

MySlide.ActiveState = c.GetAttrib("Expectation") _
& c.GetAttrib("Congruency")

(note that there are restrictions on what you can use for the text in
ActiveState). You can see all this in action yourself just by adding
any Slide or FeedbackDisplay to your program and then looking at the
full generated script (well worth doing anyway if you ever really
expect to learn E-Prime).

But that's all the hint I can give.


Better yet, just post a request to PST Web Support at
http://support.pstnet.com/e%2Dprime/support/login.asp , they are
responsible for this and they strive to respond to all requests in
24-48 hours. And if you do get an answer from PST Web Support,
please extend the courtesy of posting their reply back here for the
sake of others.
Reply all
Reply to author
Forward
0 new messages