Math Discourse

No preview image

1 collaborator

Default-person Elizabeth Dyer (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0RC7 • Viewed 357 times • Downloaded 40 times • Run 0 times
Download the 'Math Discourse' 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?

This is a model of discourse in a mathematics classroom. The model is based off of the math-talk learning community framework from Hufferd-Ackles et al. (2004).

HOW IT WORKS

The model shows a classroom with a number of students (shown as people), and a teacher (shown as the red smiley face). The dialog is shown at the top of the screen. At each tick, someone adds a piece of dialog to the discussion. What and who talks is based on what was previously said, along with the parameters that you can see to the side of the model. When someone in the model responds to a person's comment or directs their comment at a person, an arrow from the speaker is shown.

The students in the model are colored according to how willing they are to participate in the discussion. Students with darker colors are less likely to participate, and students with lighter colors are more likely to participate. The idea the student has (either idea A, B, C, or D) is shown to their right.

HOW TO USE IT

To set up the the class, click the setup button. The classroom discussion starts after the go button is clicked. You can also click the step button to advance one turn at a time. You can change the characteristics of the teacher and the students using the sliders on the left. Changing them after the setup will not change the model.

STUDENT CONTROLS

There are three student characteristics that can be changed, participation, questioning, and responding. Each student is given a random value for these characteristics, and the average is centered around the value of the slider. The values that students are given correspond to what percentage of the time they would be willing to do each act (either participate, question another student, and respond to another student's idea). For example, if an individual student has a value of 5 for participation, 5% of the time they would be willing to participate.

TEACHER CONTROLS

There are controls for four types of questions teachers can ask and two types of ideas teachers can say:

Probing Questions - Ask a student to clarify unclear ideas Advancing Questions - Ask questions that challenge or further a students' idea Generating Questions - Ask specific students to share their idea Encouraging Student Talk Questions - Asking if students have any questions or comments for the current speaker Evaluation - Evaluating student ideas Explanations - Giving explanations of mathematics ideas

The value of each of the sliders corresponds to what percent of the time the teacher will do the action when given the opportunity.

GRAPHS

You will notice several graphs. The histograms show the distribution of the different participation of students and the different ideas they have. The graph at the bottom shows the number of things that are said that are between a teacher and a student (red) and between students (blue). The next graph shows the type of things the teacher says, including:

Pink - Open questions Dark Blue - Probing Questions Red - Asking specific students for their ideas (generating more ideas in the discussion) Yellow - Advancing questions Green - Facilitation of student-to-student talk Orange - Evaluations Light Blue - Explanations

THINGS TO NOTICE

What happens to students' participation when the teacher tells them a student is correct? What happens to students' participation when the teacher tells them a student is wrong? What happens to students' participation when a student is asked for clarification?

THINGS TO TRY

Start by playing around with the model.

Try creating each of the four levels of the math-talk learning community. For each level record how you set each of the parameters and answer the following questions:

  • What evidence do you have from the model that you have set the parameters correctly to achieve the desired level?
  • What is the general behavior of the students in this set-up?
  • What is the general behavior of the teacher in this set-up?
  • How is this result different than the framework level?
  • In what ways does this set-up seem similar to your classroom?
  • In what ways does this set-up seem different from your classroom?

EXTENDING THE MODEL

An extension of the model replaces you as the teacher of the class. Whenever a decision about what teacher action should be made comes up, you will be able to choose what to do.

CREDITS AND REFERENCES

Created by Elizabeth (a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

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

Click to Run Model

breed [students student]
breed [teachers teacher]
breed [dialogs dialog]

;current functionality:
;teacher asks answers, students give answers, teacher clarifies

globals [
  rows
  columns 
  student-color ;base color of the students
  high-clarity ;how high of clarity something has to be before clear
  correct-idea ;denotes which idea is correct
  change-idea ;how likely students are to change idea when asked challenging questions
  random-report
  ;counts for reports
  student-student-dialog
  student-teacher-dialog
  open-questions-count
  probing-questions-count
  more-questions-count
  evaluations-count
  advancing-questions-count
  recruiting-questions-count
  explanations-count
]

students-own [
  idea ; what idea you have
  participation ; how willing you are to participate
  respond ;how likely you are to respond to other students
  clarity ; how clear your ideas are
  explanation ; how in depth you explain
  questioning ; how likely you are to ask questions 
              ; students only ask probing questions
  speaker? ; 1 if they are speaking   
  name ; give the student a name 
  student? ;whether they are a student       
]

teachers-own [
  info-question ; how likely you are to ask information questions
  probe-question ; how likely you are to ask probing questions
  more-question ; how likely you are to ask generating questions
  evaluate ; how likely you are to evaluate student ideas
  advancing ; how likely you are to push student ideas further
  recruit ; how likely you are to get students to ask others questions
  explain ; how likely you are to explain ideas to students
  student? ;whether they are a student
]

dialogs-own [
  category ; what type of thing is said
  student? ; did a student say it
  sayer ; agent who said it
  target ; who the thing is targeted at (not always someone)
  text ; the words it is
  last-idea ; what student idea was discussed last
]

to setup
  clear-all
  reset-ticks
  ;set globals
  set rows 5
  set columns 6
  set high-clarity 50 
  set student-color 50
  set correct-idea 3 ;set which idea is correct
  set change-idea 30 ;30 percent chance of changing ideas
  set student-student-dialog 0
  set student-teacher-dialog 0
  set open-questions-count 0
  set probing-questions-count 0
  set more-questions-count 0
  set evaluations-count 0
  set advancing-questions-count 0
  set recruiting-questions-count 0
  set explanations-count 0
  ;create rows of students
  let yrepeat 3
  let xrepeat 3
  let yoffset 4
  let xoffset -11
  let student-count 0
  repeat rows [
    repeat columns [ create-students 1 [ ;put them into 'desk' formation
    set shape "person"
    set ycor (yrepeat + yoffset)
    set xcor (xrepeat + xoffset)
    set xrepeat (xrepeat + 3)
    set idea random 4
    set participation ((Average-participation - 20) + random 40)
    set explanation ((Average-explanation - 20) + random 40)
    set questioning ((Average-questioning - 20) + random 20)
    set respond ((Average-responding - 20) + random 20)
    set clarity random 100
    set speaker? 0
    set student? 1
    set size 2
    set name (word student-count)
    set student-count student-count + 1
    ;sets the color of the turtles according to participation level 
    set color scale-color student-color (participation + 10) 0 100 
    ]
  ]
    set yrepeat (yrepeat - 3)
    set xrepeat 3
  ]
  ;give students ideas
  label-by-idea
  ;make the teacher
  create-teachers 1 [
    set ycor (yoffset + 6)
    set xcor (xoffset + 2 * columns - 1) 
    set shape "face happy"
    set color 15
    set size 2
    set info-question Info-questions
    set probe-question Clarifying-questions
    set more-question Generating-questions
    set evaluate Evaluation
    set advancing Advancing-questions
    set recruit Encourage-student-talk
    set explain Give-explanations
    set student? 0
  ]
  ;make the dialog
  create-dialogs 1 [
    set ycor 14
    set xcor 14
    set color 0
    set shape "dot"
    set target "nobody"
    set category "nothing"
  ]
end 

to go
;  ask dialogs [set label-color white]
  ifelse all? dialogs [category = "nothing"]
  [teacher-ask-question] [
    ifelse all? dialogs [category = "probe-question"]
    [student-clarify] [
      ifelse all? dialogs [category = "question"]
      [answer-question] [
        ifelse all? dialogs [category = "student-request"]
        [student-request] [
          ifelse all? dialogs [category = "targeted-question"]
          [targeted-response] [
            ifelse all? dialogs [category = "idea"]
            [respond-idea] [
              stop]
          ]
        ]
      ]
    ]
  ]
  label-by-idea
  tick
end 

to answer-question
  ifelse all? dialogs [student? = 0]
  [student-answer-question]
  [teacher-answer-question]
end 

to respond-idea
  ifelse all? dialogs [student? = 0]
  ;a teacher idea was experssed
  [teacher-ask-question]
  ;a student idea was expressed
  [respond-to-student-idea]
end 

to respond-to-student-idea
  ;if the idea is unclear, see if someone will probe it
  ifelse all? dialogs [ [clarity] of sayer < high-clarity]
  ;see if a student will respond to it
    [let responder one-of students with [questioning > random 100 and speaker? = 0 and participation > random 100] ;want to sometimes not get a student
    ;if we get a student to respond, have them probe
      ifelse is-student? responder 
      [probe-student-thinking responder] 
      [low-clarity-teacher-moves]
    ]
  ;if the idea is clear
  ;does a student want to add to the idea
    [let responder one-of students with [respond > random 100 and speaker? = 0 and participation > random 100]
      ifelse is-student? responder 
      [ask dialogs [set target sayer]
        student-to-student responder 
        ]
      ;ask for another idea
      [high-clarity-teacher-moves]
      ]
end 

to low-clarity-teacher-moves
  ;see if we can recruit a student to probe
  ifelse all? teachers [recruit > random 100]
    [recruit-student]
  ;otherwise see if the teacher will probe
    [probing-teacher-moves]
end 

to probing-teacher-moves
  ifelse all? teachers [probe-question > random 100] 
    [probe-student-thinking one-of teachers] 
  ;if no probing, either ask for another idea or evaluate current idea
    [ifelse all? teachers [more-question > random 100] 
      [generate-student-idea] 
    ;do we evaluate the idea?
      [ifelse all? teachers [evaluate > random 100] 
        [eval-wrong]
        [no-eval]
      ]
    ]
end 

to high-clarity-teacher-moves
  ifelse all? teachers [more-question > random 100]
    [generate-student-idea]
  ;is it correct?
    [ifelse all? dialogs [ [idea] of sayer = correct-idea]
      [correct-teacher-moves]  
    ;wrong: recruit or 
      [wrong-teacher-moves]
    ]
end 

to correct-teacher-moves
  ;are we going to push student thinking further 
  ifelse all? teachers [advancing > random 100]
    [push-student-idea one-of teachers]
  ;are we going to explain the right answer
    [ifelse all? teachers [explain > random 100]
      [teacher-explains]
    ;are we going to evaluate?
      [ifelse all? teachers [evaluate > random 100]
        ;if the idea is correct, eval-correct
        [eval-correct]
      ;otherwise don't evaluate the idea
        [no-eval]
      ]
    ]
end   

to wrong-teacher-moves
  ifelse all? teachers [recruit > random 100]
    [recruit-student]
    [no-recruit-wrong-teacher-moves]
end 

to no-recruit-wrong-teacher-moves
  ifelse all? teachers [advancing > random 100]
    [push-student-idea one-of teachers]
    [ifelse all? teachers [explain > random 100]
      [teacher-explains]
      [ifelse all? teachers [evaluate > random 100]
        ;if the idea is wrong, eval-wrong ;ifelse all? dialogs [ [idea] of sayer = 3]  
        [eval-wrong]
      ;otherwise don't evaluate the idea
        [no-eval]
      ]
    ]
end 

to student-request
  ifelse all? dialogs [ [clarity] of target < high-clarity]
  ;see if a student will respond to it
    [let responder one-of students with [questioning + 20 > random 100 and speaker? = 0 and participation > random 100] ;want to sometimes not get a student
    ;if we get a student to respond, have them probe
      ifelse is-student? responder 
      [probe-student-thinking responder]
      ;otherwise see if the teacher will probe
      [probing-teacher-moves]
    ]
  [let responder one-of students with [respond + 20 > random 100 and speaker? = 0 and participation > random 100]
    ifelse is-student? responder
    [student-to-student responder]
    [no-recruit-wrong-teacher-moves]
  ]
end 

to student-to-student [responder]
  ;students respond to each other
  ifelse all? dialogs [[idea] of target = [idea] of responder]
  [student-agree responder]
  [ifelse [questioning] of responder > random 100
    [push-student-idea responder]
    [student-disagree responder]
  ]
end 

to student-agree [responder]
  ask dialogs [
    set category "idea"
    ifelse is-student? responder
    [set student? 1]
    [set student? 0]
    ask links [die]
    if target != responder [
      ask target [create-link-from responder]
      count-links
    ]
    set target "nobody"
    set sayer responder
    ifelse student? = 1
    [ask students [
      set speaker? 0
    ]
    ask sayer [
      set speaker? 1
    ]
    ]
    [ask students [
      set speaker? 0
    ]
    ]
    set last-idea [idea] of sayer
    set text "I agree"
    set label text
  ]
end 

to student-disagree [responder]
    ask dialogs [
    set category "idea"
    ifelse is-student? responder
    [set student? 1]
    [set student? 0]
    ask links [die]
    if target != responder [
      ask target [create-link-from responder]
      count-links
    ]
    set target "nobody"
    set sayer responder
    ifelse student? = 1
    [ask students [
      set speaker? 0
    ]
    ask sayer [
      set speaker? 1
    ]
    ]
    [ask students [
      set speaker? 0
    ]
    ]
    set last-idea [idea] of sayer
    set text (word "I disagree. I think " generate-idea sayer)
    set label text
  ]
end 

to push-student-idea [responder]
  ;ask students questions to push understanding forward
  ask dialogs [
    set category "targeted-question"
    ifelse is-student? responder
    [set student? 1]
    [set student? 0
      set advancing-questions-count advancing-questions-count + 1]
    ask links [die]
    ;if the teacher is facilitating, we want link btwn target and responder

    if is-teacher? sayer
    [set sayer target]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    ask students [
      set speaker? 0
    ]
    if is-student? responder
    [ask responder [
      set speaker? 1
    ]
    ]
    set target sayer
    set sayer responder    
    set text (word "What about " generate-question target)
 ;   set label-color red
    set label text
  ]
end 

to recruit-student
  ;get student to ask advancing question
  ask dialogs [
    set category "student-request"
    set recruiting-questions-count recruiting-questions-count + 1
    set student? 0
    let responder one-of teachers
;    let participation-level random 100
;    ifelse any? students with [participation > participation-level and speaker? = 0] 
;    [set target one-of students with [participation > participation-level and speaker? = 0]]
;    [set target max-one-of students [participation]]
    set target sayer
;we want to keep the speaker the same
;    ask students [
;      set speaker? 0
;    ]
    ask links [die]
;    if sayer != responder [
;      ask target [create-link-from responder]
;    ]
    set sayer responder    
    set text (word "Does anyone have a question or reply to " [name] of target "'s comment?"
      )
    set label text
  ]
end 

to teacher-explains
  ;teacher explains math idea
  ask dialogs [
    set explanations-count explanations-count + 1
    set student? 0
    let responder one-of teachers
    ask links [die]
    ask students [
      set speaker? 0
    ]
    let explained-idea last-idea
    ask students with [idea = explained-idea] [ 
      raise-clarity 10
    ]
    set sayer responder
    set category "idea"
    set target "nobody"
    set text "Teacher explanation" ;include idea
    set label text
  ]
end 

to targeted-response
  ask dialogs [
    set student? 1
    let responder target
    set category "idea"
    ask links [die]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set sayer responder
    ask students [
      set speaker? 0
    ]
    ask sayer [
      set speaker? 1
    ]
    set target "nobody"
    let change-level random 100
    ifelse change-idea > change-level and [idea] of sayer != correct-idea
    [ask sayer [
      set idea correct-idea
      set clarity random 100
    ]
    set text (word "I change my mind. " generate-idea responder)]
    [set text generate-idea sayer]
    set last-idea [idea] of sayer  
    set label text
  ]
end 

to teacher-ask-question
  ask dialogs [
    set open-questions-count open-questions-count + 1
    set student? 0
    let responder one-of teachers
    if is-agent? sayer [
      ask links [die]
      if sayer != responder [
        ask sayer [create-link-from responder]
        count-links
      ]
    ]
    set sayer responder
    ask students [
      set speaker? 0
    ]
    set category "question"
    set target "nobody"
    set text "Teacher Question"
    set label text
  ]
end 

to teacher-answer-question
end 

to student-answer-question
  ;if the student 
  ask dialogs [
   ;I want the students with more participation to be more likely to be called on
   let responder one-of students with [participation > random 100]
   ;if we don't get any students with participation high enough, use one with highest
   if not is-student? responder
   [set responder max-one-of students [participation]]
   ;if we had a specific student in mind
   if is-student? target
   [set responder target]
   set student? 1
   ask links [die]
   if sayer != responder [
     ask sayer [create-link-from responder]
     count-links
   ]
   set sayer responder
   ask students [
     set speaker? 0
   ]
   ask sayer [
     set speaker? 1
   ]
   set target "nobody"
   set category "idea"
   set last-idea [idea] of sayer  
   set text generate-idea sayer
   set label text
  ]    
end 

to probe-student-thinking [responder]
  ask dialogs [
    set category "probe-question"
    ifelse is-student? responder
    [set student? 1]
    [set student? 0
      set probing-questions-count probing-questions-count + 1]
    if is-student? target
    [set sayer target]
    ask sayer [
      raise-participation 10
    ]
    ask links [die]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set target sayer
    set sayer responder
    ifelse is-student? sayer
    [ask students [
      set speaker? 0
    ]
    ask sayer [
      set speaker? 1
    ]
    ]
    [ask students [
      set speaker? 0
    ]
    ]
    set text "What did you mean?"
    set label text
  ]
end 

to student-clarify
  ask dialogs [
    set category "idea"
    set student? 1
    let responder target
    set target "nobody"
    ask links [die]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set sayer responder
    ask students [
      set speaker? 0
    ]
    ask sayer [
      set speaker? 1
    ]
    set last-idea [idea] of sayer  
    set text (word generate-idea responder " - clarity")
    ask responder [
      raise-clarity 10
    ]
    set label text
  ]
end 

to generate-student-idea
  ask dialogs [
    set category "question"
    set more-questions-count more-questions-count + 1
    set student? 0
    let responder one-of teachers
    let participation-level random 100
    ifelse any? students with [participation > participation-level and speaker? = 0] 
    [set target one-of students with [participation > participation-level and speaker? = 0]]
    [set target max-one-of students with [speaker? = 0] [participation]]
    ask students [
      set speaker? 0
    ]
    ask links [die]
    if sayer != responder [
      ask target [create-link-from responder]
      count-links
    ]
    set sayer responder    
    set text (word "What did you think " [name] of target "?"
      )
    set label text
  ]
end 

to no-eval
  ask dialogs [
    set category "idea"
    set student? 0
    let responder one-of teachers
    ask links [die]
    ask students [
      set speaker? 0
    ]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set sayer responder
    set target "nobody"
    set text "Interesting"
    set label text
  ]
end 

to eval-correct ;teacher saying an idea is correct
  ask dialogs [
    set category "idea"
    set evaluations-count evaluations-count + 1
    set student? 0
    let eval-idea [idea] of sayer
    ask students with [idea = eval-idea] [ ;ask sayer [
      raise-participation 10
    ]
    let responder one-of teachers
    ask links [die]
    ask students [
      set speaker? 0
    ]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set sayer responder
    set target "nobody"
    set text "Good!"
    set label text
  ]
end 

to eval-wrong ;teacher saying an idea is wrong
  ask dialogs [
    let eval-idea last-idea
    ask sayer [
      lower-participation 30
    ]
    ask sayer [ask other students with [idea = eval-idea] [ ;how do I make it not the sayer student? ;ask sayer [
      lower-participation 10
    ]
    ]
    let responder one-of teachers
    ask links [die] 
    ask students [
      set speaker? 0
    ]
    if sayer != responder [
      ask sayer [create-link-from responder]
      count-links
    ]
    set category "idea"
    set evaluations-count evaluations-count + 1
    set student? 0
    set sayer responder
    set target "nobody"
    set text "You're wrong!"
    set label text
  ]
end 

to-report generate-idea [responder]
  if [idea] of responder = 0
    [report "Student response A"]
  if [idea] of responder = 1
    [report "Student response B"]    
  if [idea] of responder = 2
    [report "Student response C"]
  if [idea] of responder = 3
    [report "Student response D"]
  if [idea] of responder = 4
    [report "Student response E"]
end 

to-report generate-question [recipient]
  if [idea] of recipient = 0
    [report "Question for response A"]
  if [idea] of recipient = 1
    [report "Question for response B"]    
  if [idea] of recipient = 2
    [report "Question for response C"]
  if [idea] of recipient = 3
    [report "Question for response D"]
  if [idea] of recipient = 4
    [report "Question for response E"]
end 

to raise-clarity [amount]
  ifelse clarity < 100 - amount
  [set clarity (clarity + amount)]
  [set clarity 100]
end 

to raise-participation [amount]
  ifelse participation < 100 - amount
    [set participation (participation + amount)]
    [set participation 100]
  set color scale-color student-color (participation + 10) 0 100
end 

to lower-participation [amount]
  ifelse participation > amount
    [set participation (participation - amount)]
    [set participation 0]
  set color scale-color student-color (participation + 10) 0 100
end 

to label-by-idea
  ask students [
    if idea = 0
      [set label "A"]
    if idea = 1
      [set label "B"]
    if idea = 2
      [set label "C"]
    if idea = 3
      [set label "D"]
    if idea = 4
      [set label "E"]
  ]
end 

to count-links
  ask links [
    ifelse all? both-ends [student? = 1]
    [set student-student-dialog student-student-dialog + 1]
    [set student-teacher-dialog student-teacher-dialog + 1]
  ]
end 

There is only one version of this model, created over 13 years ago by Elizabeth Dyer.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.