Math Discourse
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
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.