NetLogo Model: Teacher Knowledge: Actions of CK, GPK, and PCK

Patricia Flower

Education Studies 297, UCSD
June 7, 2011

Powered by NetLogo
View/download model file: FlowerTeacherKnowledgeModel.nlogo

INTRODUCTION

Clearly teaching at any level of education is a highly complex activity that draws on many forms of knowledge. An often applied model in studies of teacher practice is Shulman's model of Teacher Knowledge (Shulman, 1987). Three of the seven components in Shulman's model are featured in the NetLogo model I designed: Content Knowledge, General Pedagogical Knowledge, and Pedagogical Content Knowledge.

Definitions:

Content Knowledge (CK): an in depth understanding of one's particular subject matter/discipline

General Pedagogical Knowledge (GPK): ability to organize and manage a classroom, which includes choosing the teaching strategies, assignments, and assessments that best meet the needs of students

Pedagogical Content Knowledge (PCK): ability to reflect on subject matter in order to determine ways to adapt, repackage, and tailor it to the needs of learners. This epistemological construct is a blend of both content knowledge and general pedagogical knowledge. Repackaged ideas include analogies, metaphors, stories, or any number of other representations.


WHAT IS IT?

To determine which model would best facilitate the depiction of the mediating effects of the three components on one another, I searched the NetLogo model library with little luck. Eventually, I chose a simple interaction applet involving the three concepts CK, GPK, and PCK. It illustrates the actions the three components of Teacher Knowledge on each another. Node C represents the concept of Pedagogical Content Knowledge which is influenced by General Pedagogical Knowledge, Node A, and Content Knowledge, Node B. GPK is represented by the teacher turtle and Content Knowledge is represented by a book turtle. Node C, the plant turtle, represents the concept of Pedagogical Content Knowledge. The choice of this turtle may not be as obvious as those that represent CK and GPK. The decision to use the plant is related to Shulman's (2004) reference to PCK as being a pedagogy of substance rooted in content knowledge, yet at the same time is connected with student's lives and cultures. Therefore, just as PCK is represented by the use of metaphors and analogies, I chose the metaphor of the tree.

Based on the information provided above, there are the actions or impacts of both CK (B) and GPK (A) on PCK (C). This requires a single arrow leading from A to C and another single arrow leading from B to C. However, both GPK and PCK distribute Content Knowledge. This requires an arrow between A and B. In addition, a second arrow leading from C to B is needed to depict the action of the distribution of Content Knowledge by Pedagogical Content Knowledge.


HOW IT WORKS?

The model has three sliders that define the global variables of gpk, ck, and pck. Making adjustments by increasing or decreasing the slider levels allows the user to gauge the action of one variable on another. For example, to determine the action of increased ck on pck press setup. Set the pck slider at minimum and the ck slider at 50. Press go and increase the level of ck. As the slider is moved to the right the activity levels of both components of teacher knowledge increase. This is not surprising for the more understanding (both in depth and in breadth knowledge) an instructor has of her/his discipline the more likely they will be able to develop and use teaching strategies (the use of metaphors and analogies) that will lead to the adaptation of content to the diverse background of students. There is a similiar action of gpk on pck.


WHAT TO NOTICE

Initially, with the increase of gpk or ck one sees an increase in pck. However over time, the variables reach a plateau after which the activity levels remain unchanged. If this period of stasis is followed by an increase in, for example,gpk (the teacher begins to use a new instructional strategy) a similiar increase in pck occurs. Moreover, an increase in gpk leads to an increase in the distribution of content. For example, if an instructor uses a greater variety of teaching strategies to meet the needs of diverse learners content is more greatly distributed. Similiarly, if the ck level is set at any level and the pck is increased a higher activity level of ck follows. This illustrates the idea that the greater an instructor's pck the greater the distribution of content.


WHAT I LEARNED

As a result of this assignment I was able to develop a model that graphically depicts the mediation that occurs between three components of Shulman's model of teacher knowledge. In doing so I gained a appreciation for computer programming. A possible expansion of my model would be to include a fourth component: knowledge of educational context. This component, which includes a teacher's understanding of the characteristics of the student populations with which they work, as well as the community as a whole. This knowledge of characters such as age, developmental stage, language, culture, social class, and gender as well as ability, aptitude, and motivation would most probably mediate gpk and pck. In turn, these two components would influence the distribution of content knowledge. The inclusion of a fourth variable will necessitate the adoption of a simple interaction applet involving four components.

Shulman, L. S. (1987). Knowledge and teaching: Foundations of the new reform. Harvard
educational review, 57, 1-22.

Shulman, L. S. (2004). Teaching as community property: Essays on higher education.
San Francisco: Jossey-Bass.


PROCEDURES

;; A study of excitation and inhibition among nodes: three-concepts.nlogo
;; Jim Levin
;; Education Studies; University of California, San Diego
;; July 2010
;; Nodes, excitation links and inhibition links between nodes, and node labels are all different breeds of turtles.
;; The activity level of each node is shown by its size and by its color shade.

breed [ nodes ]
nodes-own [ activity-level newactivity-level labelnode labeloffset external-activity-level ]

breed [ excites ] ;; excitation link from one node to another
excites-own [ a b ]

breed [ inhibits ] ;; inhibition link from one node to another
inhibits-own [ a b ]

breed [ nodelabels ] ;; text label for a node
nodelabels-own [offset]

globals [ drawer attenuation node_a node_b node_c node_d node_e ex_a ex_b ex_c ex_d ]

to startup ;; do when first loading model
  setup
end ;; startup

to setup  ;; build the specified network
  clear-all
  setup-globals
  setup-patches
  setup-nodes
  setup-graph
end ;; setup

to setup-globals  ;; set global variables
  set attenuation 0.67
  set-default-shape nodes "circle"
  set-default-shape excites "excite" ;; a line with an arrow point at one end, created with the shape editor
  set-default-shape inhibits "inhibit" ;; a line with a perpendicular short line at one end, ditto
end ;; setup-globals

to setup-patches
  ask patches [set pcolor white] ;; make the background white
end ;; setup-patches

to-report create-a-node [ node-label xpos ypos x-label-offset y-label-offset external-activity ]
  let ms 0
  create-nodelabels 1 [ ;; first create the text label
    set color white
    set label-color black
    setxy (xpos + x-label-offset) (ypos + y-label-offset)
    set label node-label 
  ]
  create-nodes 1 [ ;; now create the node
    set color orange
    set label-color black
    setxy xpos ypos
    set size 2
    set external-activity-level external-activity
    set ms self
  ]
  report ms
end ;; create-a-node

to setup-nodes
; create-turtles 1 [ set color black  set drawer self ] ;; a turtle to draw with
 set node_a (create-a-node "" -5 -5 0 -2.3 0) ;; A
 ask node_a [set shape "person"]
 ask node_a [set color 45]
 ask node_a [set size 5]
 set node_b (create-a-node "" 5 -5 0 -2.3 0) ;; B
 ask node_b [set shape "book"]
 ask node_b [set color 85]
 ask node_b [set size 5]
 set node_c (create-a-node "" 0 5 0 -2.3 0) ;; C
 ask node_c [set shape "plant"]
 ask node_c [set color 64]
 ask node_c [set size 5]
 set ex_a (create-a-node "level of GPK" -5 -9 2 -1.25 0) ;; ex_a
 set ex_b (create-a-node "level of CK"  5 -9 2 -1.25 0) ;; ex_a
 set ex_c (create-a-node "level of PCK"  0 10 2 -1.25 0) ;; ex_a
end ;; setup-nodes

to update-externals ;; set the activity-level of the external sources from the sliders
   ask ex_a [ set newactivity-level GPK ]
   ask ex_b [ set newactivity-level CK]
   ask ex_c [ set newactivity-level PCK]
end ;; update-externals

to setup-graph ;; this sets up the links between the nodes
   ;; create the external links
   ask ex_a [connect-excite node_a]
   ask ex_b [connect-excite node_b]
   ask ex_c [connect-excite node_c]
   ;; internal links, which are determined by the interface pull-down controls
   ask node_a [if A-B = "excite" [connect-excite node_b]
                 if A-B = "inhibit" [connect-inhibit node_b]]
   ask node_a [if A-C = "excite" [connect-excite node_c]
                 if A-C = "inhibit" [connect-inhibit node_c]]
   ask node_b [if B-A = "excite" [connect-excite node_a]
                 if B-A = "inhibit" [connect-inhibit node_a]]
   ask node_b [if B-C = "excite" [connect-excite node_c]
                 if B-C  = "inhibit" [connect-inhibit node_c]]
   ask node_c [if C-A = "excite" [connect-excite node_a]
                 if C-A = "inhibit" [connect-inhibit node_a]]
   ask node_c [if C-B = "excite" [connect-excite node_b]
                 if C-B = "inhibit" [connect-inhibit node_b]]
end ;; setup-graph

to go  ;; The run procedure which makes the model progress one cycle
  no-display
  step ;; this is where all the interaction between nodes occurs
  display
end ;; go

to step ;; update activity levels for the excite links and the inhibit links
  update-externals ;; this allows the user to change the external activity-levels while the model is running
  ask excites [increment-activity-level]  ;; distribute the impact of the "excite" links
  ask inhibits [decrement-activity-level] ;; distribute the impact of the "inhibit" links
  update-activity-levels  ;; update all the activity levels after all the impacts have been made
  do-plot ;; plot the results
end ;; step

to update-activity-levels
  ask nodes [update-activity-level] ;; change activity levels to reflect the impact of all inputs this cycle
                              ;; reset newactivity-level to wxternal-activity-level and update display of activity level for each node
end ;; update-activity-levels

to update-activity-level
  set activity-level max list 0 (min list 100 ([newactivity-level] of self)) ;; keep activity-level between 0 and 100
  set newactivity-level external-activity-level ;; reset newactivity-level to the level set by external factors for next cycle
  set label ""
  ;;set color 29 -  (activity-level / 25) ;; set each node to a color to indicate its activity-level (29 is light orange; larger activity-level is darker)
  ;;set size ( activity-level / 35 ) + 1
end ;; update-activity-level

to increment-activity-level ;; increment the new activity level of b by (attenuation * activity-level of a)
  let impact 0 
  ask a [set impact (attenuation * activity-level)]
  ask b [set newactivity-level ([newactivity-level] of self + impact)] ;; add the impact
end ;; increment-activity-level

to decrement-activity-level ;; decrement the new activity level of b by (attenuation * activity-level of a)
  let impact 0 
  ask a [set impact (attenuation * activity-level)]
  ask b [set newactivity-level ([newactivity-level] of self - impact)] ;; subtract the impact
end ;; decrement-activity-level

to do-plot
  let al 0  
  set-current-plot "Activity level changes over time"
  set-current-plot-pen "GPK"
  ask node_a [set al [activity-level] of self]
  plot al 
  set-current-plot-pen "CK"
  ask node_b [set al [activity-level] of self]
  plot al 
  set-current-plot-pen "PCK"
  ask node_c [set al [activity-level] of self]
  plot al 
end ;; do-plot

to connect-excite [other-node] ;; create an "excite" link between self and other
  hatch 1 [
    set breed excites
    set a myself
    set b other-node
    set color green
    set label ""
    adjust-link
  ]
end ;; connect-excite

to connect-inhibit [other-node] ;; create an "inhibit" link between self and other
  hatch 1 [
    set breed inhibits
    set a myself
    set b other-node
    set color red
    set label ""
    adjust-link
  ]
end ;; connect-inhibit

to adjust-link ;; move this link between a & b nodes to reflect any movement of either of the nodes
  setxy [xcor] of a [ycor] of a
  set size distance-nowrap b
  set heading towards-nowrap b
  jump size / 2
  right 90  jump .25 left 90 ;; move sideways to avoid overlap
end ;; adjust-link

to-report closest-xy [x y agent-set]  ;; Return closest agent to x, y
  report min-one-of agent-set [distancexy-nowrap x y]
end ;; closest-xy