SelfEFfficacyModel_1

No preview image

1 collaborator

Default-person Jonathan Lesser (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 4.1.2 • Viewed 179 times • Downloaded 30 times • Run 1 time
Download the 'SelfEFfficacyModel_1' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

The Self-Efficacy Model is an interactive model in a program to teach educational leaders about self-efficacy that allows users to simulate task performance and self-efficacy updates by constructing individual students with modifiable trait levels and manipulating student and environmental variables. The program is designed to introduce users to increasing complex models of self-efficacy that progressively incorporate more and more input factors that contribute to the development of self-appraisals. Each model consists of a visualization screen that represents students as individual agents (accompanied in some cases by an adult _elper_, as well as a set of sliders that allow the user to change environmental or agent-based variables to modify the observed behavior. The students will dynamically move horizontally across the screen as their self-efficacy values shift. Leaders who use engage with the SEMP program should be empowered to identify factors in their own environments that can be either detrimental or advantageous to improving their students_self-efficacy judgments, improving the lives of young children and the people around them.

This model is the first of five models. Model 1 reflects a minimal perspective on how students form and update self-efficacy judgments, incorporating only self-efficacy level, student ability level, and student effort expenditure.

HOW IT WORKS

Steps/Rules in "Perform Task/Update Efficacy" - When the user click the "perform task/update efficacy" or "perform/update x100" button, these are the processes that take place and the rules and factors that govern them.

1) Effort Update _This process modifies the students_effort expenditure level according to their self-efficacy level.

a. This effect is also multiplied by the world attribute _fficacy Bonus;_this variable can be changed to a value between 0 and 1 through the slider present in the interface. This allows the user to modify the impact that efficacy has on effort based on their own conceptions of how those factors interact.

2) Outcome determination _This process results in either a success or a failure for the student on a single trial, dependent on whether the task difficulty value is greater than a randomly-generated value bounded by effort expenditure plus a randomly-generated value bounded by ability level.

a. _ask difficulty_is a task attribute that can modified through a slider present in the interface. This attribute can be changed after a single task performance or during a run and will dynamically affect the environment.

b. The formula for determining the outcome is a simplistic view on performance. It views effort and ability as the main factors contributing to actual performance success, as it relates to the level of difficulty a student is encountering. The element of randomness is added because every trial on a task is not necessarily equal, but there is a probability that the outcome will be the same given the value of the factors.

c. After each task performance, the patch on which the student is standing will change color: green to represent a success, or red to represent a failure. Because students will _erform_over the same patches many times, the color of the patch will subsequently lighten for successes or darken for failures if the patch has already been _erformed_on.

d. The randomness of task performance can be turned off through the _andomness_switch present in the interface.

3) Determine chance of automatic processing / Change efficacy level _This step is where the students update their efficacy levels according to the outcome on their last performance: increase efficacy after a success or decrease efficacy after a failure. This efficacy change is dependent on chance of automatic processing: the more experience the student has on the task, the more likely the student is to make _utomatic_judgments about efficacy based on past performance (Gist & Mitchell, 1992). If the student is new to the task, there is a higher chance that the student will incorporate other factors to make judgments about efficacy.

4) Ability update _This process increases the student_ ability on the task if the student successfully performed the task.

a. The level of ability increase is determined by the world attribute _earning Bonus;_this variable can be changed to a value between 0 and 1 through the slider present in the interface. This allows the user to modify the impact that success has on ability based on their own conceptions of how those factors interact.

5) Experience update _This process increases the students_experience value after having performed on the task

6) [Plotting] _After all of the values have been updated after a performance, the values will be plotted for each student on the Self-Efficacy, Ability-Level, Effort-Expenditure, and Outcomes plots.

a. The Self-Efficacy, Ability-Level, and Effort-Expenditure plots represent the students_values (0 to 100) on the y-axis and time (in performances) on the x-axis

b. The Outcomes plot charts the aggregate difference between successes and failures on the y-axis and time (in performances) on the x-axis. That is, a value of 30 represents the student has 30 more successes than failures, whereas a value of -30 represents the student has 30 more failures than successes.

HOW TO USE IT

Import Student List

This button allows the user to select a student list created using the Student Setup tool. Once a list is selected, all of the students, helpers, and their values will be imported for use in the present model.

Perform task/update efficacy button

This button simulates a single task trial for all students.

Perform/update x100

This button simulates 100 subsequent trials of performance for all students.

Update Student/Helper

These buttons allow the user to pick a student (represented by a number mapping to the order in which the student was created) and change the students' (or helpers') initial values for the current model only. This update WILL NOT change the students_values that are coded in the student list file. The user has the option to modify starting self-efficacy, starting effort expenditure, or starting ability level.

See Student Attributes

Clicking this button will provide a list of attribute values for the student currently selected in the Student Number box. This list will appear in the command prompt, and represents the most recent values for that student; these values will likely change after a single performance. This button can be extremely helpful to see what level students start at, or to get a better idea of some of the attribute values that are not represented in the plots.

Reset/Clear

The _eset_button will reset all student values back to the values present in the student list file (or to the values modified through the update student button), including task experience and outcome totals. The _lear_button will remove all students from the screen and allow the user an opportunity to import a different student list.

THINGS TO NOTICE

What will happen if the task difficulty is low and the students_effort expenditure level is high?

Move around the learning-bonus and efficacy-bonus sliders based on your conceptions of how much learning results from successes, and how much high levels of efficacy improve effort towards a task

THINGS TO TRY

Observe an _ll average_setup

Create two identical students whose efficacy level, ability level, and effort level are all average at 50

Set task difficulty to 50, and the learning and efficacy bonus to a value between 0 and .5

Perform a few runs (_erform/update x100_ and observe the behaviors of the identical students

What are two ways to improve efficacy judgments over time if ability level remains low?

EXTENDING THE MODEL

NETLOGO FEATURES

RELATED MODELS

StudentSetup.nlogo

SelfEfficacyModel_2.nlogo

SelfEfficacyModel_3.nlogo

SelfEfficacyModel_4.nlogo

SelfEfficacyModel_5.nlogo

CREDITS AND REFERENCES

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [avail-resources env-responsiveness distraction efficacy-level-list task-counter zero-se one-se variable-list feedback-counter
  next-color student-num student-num-counter helper-num-counter temp-list]
breed [students student]
breed [helpers helper]
students-own [init-self-efficacy-level self-efficacy-level
  init-effort-expend effort-expend persev perc-task-diff perc-avail-resource
  perc-outcome student-perf-outcome init-ability-level ability-level TOI task-significance init-task-experience task-experience
  outcome-history outcome-totals temp-resource-bonus effort-attrib ability-attrib luck-attrib effort-feedback? ability-feedback? helper-num
  who-helping? my-name]
helpers-own [persuasion modeling evaluation perf-outcome
  competitor? self-efficacy-level other-efficacy-level feedback-strength feedb-type]

to clear
  clear-all
end 

to show-traits
  ask student student-number
  [show (list word "Self Efficacy Level: " self-efficacy-level word "Effort Expenditure: " effort-expend
      word "Ability Level: " ability-level word "Perceived Task Difficulty: " perc-task-diff
      word "Theory of Intelligence: " TOI word "Perceived Resources Available: " perc-avail-resource
      word "Task Significance: " task-significance word "Task Experience: " task-experience
      word "Effort Attribution: " effort-attrib word "Ability Attribution: " ability-attrib
      word "Luck Attribution: " luck-attrib word " Successes: " first bf outcome-totals
      word "Failures: " first outcome-totals
      )]
end 

to import-students
  file-open user-file
  create-students file-read [set shape "person student" set size 10 set outcome-history [] set heading 180]
;  create-helpers file-read [set shape "person graduate" set size 10 set heading 180]
  while [NOT file-at-end?]
  [give-attributes]
  file-close
  startpos
  make-student-pens
end 

to give-attributes
  let current-attributes file-read
  ask student item 1 current-attributes
  [set init-self-efficacy-level item 2 current-attributes set self-efficacy-level item 2 current-attributes
    set init-ability-level item 3 current-attributes set ability-level item 3 current-attributes
    set init-effort-expend item 4 current-attributes set effort-expend item 4 current-attributes
    set perc-task-diff item 5 current-attributes
    set TOI item 6 current-attributes
    set perc-avail-resource item 7 current-attributes
    set task-significance item 8 current-attributes
    set init-task-experience item 9 current-attributes
    set my-name item 13 current-attributes
    set color who * 20 + 5
    set label my-name
    set outcome-history []
    set temp-resource-bonus 0
    set ability-attrib 0
    set effort-attrib 0
    set luck-attrib 0
    set outcome-totals [0 0]
    if item 10 current-attributes
    [hatch-helpers 1 [set shape "person graduate" set size 10 set heading 180 create-link-from myself [tie]
      set modeling item 12 current-attributes set feedback-strength item 11 current-attributes
      setxy ([xcor] of myself + 5) [ycor] of myself set label ""]]]
end 

;attribute-list order
;0: who OR "helper"
;1: student-num OR who
;2: self-efficacy-level OR helper-num
;3: ability-level OR who-helping?
;4: effort-expend OR modeling
;5: perc-task-diff OR feedback-strength
;6: TOI
;7: perc-avail-resource
;8: task-significance
;9: task-experience
;10: has-helper?
;11: helper-feedback-strength
;12: helper-modeling-strength
;13: my-name

;to make-helper
; if helper-present? = true
;  [hatch-helpers 1 [set shape "person graduate" set size 10 set heading 180 create-link-from myself [tie]
;      set modeling modeling-effectiveness set feedback-strength feedback-valence set helper-num student-num-counter
;      setxy ([xcor] of myself + 5) [ycor] of myself set label ""]
;  set helper-num-counter helper-num-counter + 1]
;end

to experience-update
  set task-experience task-experience + 1
  if task-experience > 100 [set task-experience 100]
end 

;to-report has-helper?
;  report any? out-link-neighbors
;end
;
;to-report my-helper?
;  if has-helper?
;  [report one-of out-link-neighbors]
;end
;
;to receive-feedback  
;  ifelse feedback-counter = feedback-frequency
;  [if effort-feedback? = true
;    [set effort-attrib effort-attrib + 1
;      set luck-attrib luck-attrib - .5]
;  if ability-feedback? = true
;    [set ability-attrib ability-attrib + 1
;      set luck-attrib luck-attrib - .5]
;    if who + 1 = count students
;    [set feedback-counter 1]] 
;  [set feedback-counter feedback-counter + (1 / count students)]
;  min-max-attrib-correct
;end

to-report chance50?
  report random 10 > 4
end 

to-report deep-process-chance
  report random 101 > task-experience
end 

to-report automatic-process-chance
  report random 101 < task-experience + 50
end 

;to helper-impact
;  if has-helper? AND chance50?
;  [let helper-modeling [modeling] of my-helper?
;  if helper-modeling < 50
;  [set self-efficacy-level self-efficacy-level + ((helper-effect * (helper-modeling - 50)) / 16)]
;  if helper-modeling > 50
;  [set self-efficacy-level self-efficacy-level + ((helper-effect * (helper-modeling - 50)) / 16)]]
;end

to min-max-attrib-correct
  if luck-attrib < 0 [set luck-attrib 0]
  if luck-attrib > 100 [set luck-attrib 100]
  if effort-attrib < 0 [set effort-attrib 0]
  if effort-attrib > 100 [set effort-attrib 100]
  if ability-attrib < 0 [set ability-attrib 0]
  if ability-attrib > 100 [set ability-attrib 100]
end 

to effort-update
;  if perc-task-diff - 50 > 0 AND self-efficacy-level - 50 > 0
;  [set effort-expend effort-expend + perceived-difficulty-effect]
;  if perc-task-diff - 50 < 0 AND self-efficacy-level - 50 < 0 
;  [set effort-expend effort-expend - perceived-difficulty-effect]
  set effort-expend effort-expend + ((efficacy-bonus * (self-efficacy-level - 50) / 8))
  if effort-expend < 0
  [set effort-expend 0]
  if effort-expend > 100
  [set effort-expend 100]
end 

;to make-attributions
;  ifelse ability-attrib >= effort-attrib
;    [ifelse first outcome-history = 1 [increase-eff-level 1]
;      [decrease-eff-level 1]] ;ending of actions when attribution = ability
;    [ifelse first outcome-history = 1 [increase-eff-level 1] 
;      [set effort-expend effort-expend + (effort-attrib * attribution-effect)]
;      if (has-helper? AND [feedback-strength] of my-helper? > 50) AND perc-task-diff < 50
;      [set self-efficacy-level self-efficacy-level - 
;        helper-effect * ((([feedback-strength] of my-helper? - 50) + (50 - perc-task-diff)) / 4)]
;     ]
;  if self-efficacy-level > 50 AND first outcome-history = 0 AND random 10 > 4 [set luck-attrib luck-attrib + 1]
;  min-max-attrib-correct
;end

to ability-update
;  if perc-task-diff - 50 > 0 AND self-efficacy-level - 50 > 0
;  [set ability-level ability-level + perceived-difficulty-effect]
;  if perc-task-diff - 50 < 0 AND self-efficacy-level - 50 < 0
;  [set ability-level ability-level - perceived-difficulty-effect]
  if student-perf-outcome = 1
    [set ability-level ability-level + learning-bonus]
    if ability-level > 100 [set ability-level 100]
    if ability-level < 0 [set ability-level 0]
end 

;to distraction-impact
;  set self-efficacy-level self-efficacy-level - (distraction-level * distraction-effect)
;  if self-efficacy-level < 0 [set self-efficacy-level 0]
;end

;to resource-impact
;  set temp-resource-bonus temp-resource-bonus + (resource-effect * (resources-available - resources-required))
;end

to perform-task ;; button that simulates trial at a task, yielding outcome and efficacy update
  ask students [
    ;distraction-impact resource-impact
    effort-update
    outcome-formula p-color-change
 ;   receive-feedback
  ;  if deep-process-chance [make-attributions]
   ; if deep-process-chance [helper-impact]
    if automatic-process-chance [change-eff-level]
    ability-update
    experience-update]
  set task-counter task-counter + 1
end 

to change-eff-level
  ifelse student-perf-outcome = 0
  [decrease-eff-level 1]
  [increase-eff-level 1]
end 

to increase-eff-level [num]
  if NOT (self-efficacy-level = 100)
  [set self-efficacy-level self-efficacy-level + num
  if self-efficacy-level > 100 [set self-efficacy-level 100]
  if self-efficacy-level < 0 [set self-efficacy-level 0]
    set xcor self-efficacy-level - 50]
end 

to decrease-eff-level [num]
  if NOT (self-efficacy-level = 0)
  [set self-efficacy-level self-efficacy-level - num
   ; if TOI = "Entity"
 ;   [set self-efficacy-level self-efficacy-level - toi-strength]
    if self-efficacy-level < 0 [set self-efficacy-level 0]
    if self-efficacy-level > 100 [set self-efficacy-level 100]
    set xcor self-efficacy-level - 50]
end 

to p-color-change
  ifelse [pcolor] of patch-here != 0
  [ifelse first outcome-history = 1 [ask patch-here [set pcolor pcolor + 1 ask neighbors [set pcolor pcolor + 1]]]
      [ask patch-here [set pcolor pcolor - 1 ask neighbors [set pcolor pcolor - 1]]]]
  [ifelse first outcome-history = 1 [ask patch-here [set pcolor 65 ask neighbors [set pcolor 65]]]
      [ask patch-here [set pcolor 15 ask neighbors [set pcolor 15]]]]
end 

to change-outcome-totals
  ifelse first outcome-history = 1
  [set outcome-totals replace-item 1 outcome-totals (first bf outcome-totals + 1)]
  [set outcome-totals replace-item 0 outcome-totals (first outcome-totals + 1)]
end 

to-report outcome-agg
  report (first bf outcome-totals) - (first outcome-totals)
end 

to outcome-formula
  ifelse randomness = true
  [ifelse task-difficulty > (random ability-level + random effort-expend + temp-resource-bonus)
  [set student-perf-outcome 0]
  [set student-perf-outcome 1]
  set temp-resource-bonus 0]
  [ifelse task-difficulty > (ability-level + effort-expend + temp-resource-bonus)
  [set student-perf-outcome 0]
  [set student-perf-outcome 1]
  set temp-resource-bonus 0]
  set outcome-history fput student-perf-outcome outcome-history
  change-outcome-totals
end 

to go
  perform-task
  efficacy-plot
  effort-plot
  outcomes-plot
  ability-plot
end 

to go-100
  repeat 100 [go wait .05]
end 

to startpos
  ask students [setxy (self-efficacy-level - 50) (who * 10 - 5)]
end 

to make-student-pens
  ask students [set-current-plot "Effort Expenditure" create-temporary-plot-pen my-name set-plot-pen-color (who * 20 + 5)]
  ask students [set-current-plot "Outcomes" create-temporary-plot-pen my-name set-plot-pen-color (who * 20 + 5)]
  ask students [set-current-plot "Self-Efficacy" create-temporary-plot-pen my-name set-plot-pen-color (who * 20 + 5)]
  ask students [set-current-plot "Ability Level" create-temporary-plot-pen my-name set-plot-pen-color (who * 20 + 5)]
end 

to reset
  ask students [set self-efficacy-level init-self-efficacy-level
    set effort-expend init-effort-expend
    set ability-level init-ability-level
    set outcome-history []
    set temp-resource-bonus 0
    set ability-attrib 0
    set effort-attrib 0
    set luck-attrib 0
    set outcome-totals [0 0]
    set task-experience init-task-experience]
  clear-all-plots
  set task-counter 0
  set feedback-counter 1
  ask patches [set pcolor 0]
  startpos
  make-student-pens
  set next-color 5
end 

to min-max-correct
;  if feedback-valence > 100 [set feedback-valence 100] if feedback-valence < 0 [set feedback-valence 0]
;  if modeling-effectiveness > 100 [set modeling-effectiveness 100] if modeling-effectiveness < 0 [set modeling-effectiveness 0]
  if student-ability > 100 [set student-ability 100] if student-ability < 0 [set student-ability 0]
  if starting-efficacy > 100 [set starting-efficacy 100] if starting-efficacy < 0 [set starting-efficacy 0]
;  if perceived-resources-avail > 100 [set perceived-resources-avail 100] if perceived-resources-avail < 0 [set perceived-resources-avail 0]
  if effort-expenditure > 100 [set effort-expenditure 100] if effort-expenditure < 0 [set effort-expenditure 0]
;  if perceived-task-difficulty > 100 [set perceived-task-difficulty 100] if perceived-task-difficulty < 0 [set perceived-task-difficulty 0]
;  if significance-of-task > 100 [set significance-of-task 100] if significance-of-task < 0 [set significance-of-task 0]
;  if experience-on-task > 100 [set experience-on-task 100] if experience-on-task < 0 [set experience-on-task 0]
;  if ability-attribution-feedback > 100 [set ability-attribution-feedback 100] if ability-attribution-feedback < 0 [set ability-attribution-feedback 0]
;  if effort-attribution-feedback > 100 [set effort-attribution-feedback 100] if effort-attribution-feedback < 0 [set effort-attribution-feedback 0]
end 

to update-student
;  min-max-correct
  ask student student-number [
  set init-self-efficacy-level starting-efficacy
    set init-effort-expend effort-expenditure
    set init-ability-level student-ability
    set self-efficacy-level starting-efficacy
    set effort-expend effort-expenditure
    set ability-level student-ability
;    set TOI theory-of-intelligence
;    set effort-feedback? effort-feedback
;    set ability-feedback? ability-feedback
    set outcome-history []
    set temp-resource-bonus 0
    set ability-attrib 0
    set effort-attrib 0
    set luck-attrib 0
    set outcome-totals [0 0]
;    set color self-efficacy-level - 5
    set heading 180]
;;  reset
end 

to effort-plot
  set-current-plot "effort expenditure"
  ask students [set-current-plot-pen my-name
    plot effort-expend]
end  

to efficacy-plot
  set-current-plot "self-efficacy"
  ask students [set-current-plot-pen my-name
    plot self-efficacy-level]
end 

to outcomes-plot
  set-current-plot "outcomes"
  ask students [set-current-plot-pen my-name
    plot outcome-agg]
end  

to ability-plot
  set-current-plot "ability level"
  ask students [set-current-plot-pen my-name
    plot ability-level]
end 

There is only one version of this model, created over 14 years ago by Jonathan Lesser.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.