Classroom Model with Learning Assistants
Model was written in NetLogo 6.0
•
Viewed 702 times
•
Downloaded 37 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
extensions [nw] globals [] breed [Students Student] breed [LAs LA] breed [Instructors Instructor] Students-own [seated? learned-geom-la learned-geom learned-errn learned-ws learned-lect raised-hand?] LAs-own [moving? teaching? LA-teach-abiliy LA-hand-seek] Instructors-own [moving? teaching? I-teach-ability I-hand-seek] patches-own [available?] undirected-link-breed [geomets geomet] undirected-link-breed [randos rando] undirected-link-breed[socials social] to setup ;Primary setup procedure. Creates turtles and assigns them to available seats clear-turtles clear-links let student-patches patches with [pcolor = red ] let la-patches patches with [pcolor = green ] ask la-patches [set available? true] let inst-patches patches with [pcolor = blue ] ask inst-patches [set available? true ] Geom n-Students stu-radius ER-RN p-errn WS k-ws p-ws create-LAs n-learning_assistants [ setxy random-xcor random-ycor set shape "person graduate" set color blue set teaching? false set LA-hand-seek one-of Students with [raised-hand? = TRUE] ] ;Move LAs to unoccupied green patch ask LAs with [not teaching?][ move-to one-of la-patches with [available?] set available? false ] ;Prep green pataches for LA return ask la-patches [set available? true] create-Instructors 1 [ setxy random-xcor random-ycor set shape "person doctor" set color black set teaching? false ] ask Instructors with [not teaching?][ move-to one-of inst-patches with [available?] set available? false ] reset-ticks end to go ;Primary go procedure. Has students "learn" and then stops when all student networks have "learned" ;; stop the model if no one is left to learn if (not any? Students with [not (learned-geom and learned-errn and learned-ws and learned-lect and learned-geom-la)])[ reset-learning ;Move LAs to unoccupied green patch let la-patches patches with [pcolor = green ] ask LAs with [not teaching?][ to-la-patch ] stop ] ;; ask the turtles to learn or not learn randomly ask Students with [not learned-geom] [ learn-geom ] ask Students with [not learned-errn] [ learn-errn ] ask Students with [not learned-ws] [ learn-ws ] ask Students with [not learned-lect] [ learn-lect ] ask Students with [not learned-geom-la] [ learn-geom-la ] move-la tick end ;;Procedures listed alphabetically to-report classroom ;Select png file (need to be located in same directroy as model) if classroom-type = "GB_Lab" [report "24_lab.png"] if classroom-type = "30_Lecture" [report "30_lecture.png"] if classroom-type = "240_Lecture" [report "240_lecture.png"] if classroom-type = "450_Lecture" [report "450_lecture.png"] ;to add more, draw new classroom setup and right-click to export view as .png. Save in same directory as model end to ER-RN [p] ;Sets up Erdős–Rényi Random Network links ask Students [ ask other Students with [who < [who] of myself] [ if random-float 1 < p [ create-rando-with myself [set color red] ] ] ] end to Geom [N r] ;Creates students and sets up geometric network links let student-patches patches with [pcolor = red ] ask student-patches [ set available? true ] create-Students N [ setxy random-pycor random-pxcor set shape "person student" set color white set size 1 set seated? false set raised-hand? false ] ask Students with [not seated?][ move-to one-of student-patches with [available?] set available? false set seated? true ] ask Students [ create-geomets-with other Students in-radius r [set color green ] ] end to import-classroom ;Import classroom button on interface import-pcolors classroom end to learn-errn ;Specifies how students learn in a random network ;;learning based on instructor if random-float 1 < self-learn [ set learned-errn true ] ;;learning based on peer interaction let neighbors-learned link-neighbors with [learned-geom] let total-neighbors link-neighbors if count total-neighbors > 0 [ if not learned-errn and random-float 1 < ( social-influence * (count neighbors-learned / count total-neighbors))[ set learned-errn true ] ] end to learn-geom ;Specifies how students learn in a geometiric network ;;learning by self if random-float 1 < self-learn [ set learned-geom true ] ;;learning based on peer interaction let neighbors-learned link-neighbors with [learned-geom] let total-neighbors link-neighbors if count total-neighbors > 0 [ if not learned-geom and random-float 1 < ( social-influence * (count neighbors-learned / count total-neighbors))[ set learned-geom true ] ] end to learn-geom-la ;Specifies how students learn in a geometiric network ;;learning by self ;Consider turning into own procedure since a derivitive of this is used multiple times if random-float 1 < self-learn [ set learned-geom-la true ] ;;learning based on peer interaction ;Consider turning into own procedure since a derivitive of this is used multiple times let neighbors-learned link-neighbors with [learned-geom-la] let total-neighbors link-neighbors if count total-neighbors > 0 [ if not learned-geom-la and random-float 1 < ( social-influence * (count neighbors-learned / count total-neighbors))[ set learned-geom-la true ] ] end to learn-lect ;Specifies how students learn if there was just lecture and no other interactions ;;learning based on instructor if random-float 1 < self-learn [ set learned-lect true ] end to learn-ws ;Specifies how students learn in a small world network ;;learning based on instructor if random-float 1 < self-learn [ set learned-ws true ] ;;learning based on peer interaction let neighbors-learned link-neighbors with [learned-ws] let total-neighbors link-neighbors if count total-neighbors > 0 [ if not learned-ws and random-float 1 < ( social-influence * (count neighbors-learned / count total-neighbors))[ set learned-ws true ] ] end to move-la ;Prompts LAs to move around class and allows students to learn under learn-geom-la scenario ;students raise hands ask Students with [learned-geom-la = FALSE] [if random-exponential 10 < 1 [set raised-hand? true set color black]] ;Count number of students with hand raised ask LAs [ifelse count Students with [raised-hand? = TRUE] >= 1 [ ask LAs with [not teaching?][ ask patch-here [if pcolor = green [set available? TRUE]] ifelse count Students with [raised-hand? = TRUE] >= 1 [move-to one-of Students with [raised-hand? = TRUE]][to-la-patch] set teaching? TRUE ask students in-radius 1 [ set raised-hand? FALSE set color white if random-float 1 < la-teach-ability [set learned-geom-la true]]]] [to-la-patch]] ; ask Students with [patch-here [pcolor = yellow]][set raised-hand?= FALSE] tick-advance random la-tick ask LAs with [teaching?][ set teaching? FALSE ] end to-report patch-colour ;Dropdown menu for classroom elements if classroom-element = "Seat" [report red] if classroom-element = "Aisle" [report white] if classroom-element = "Podium" [report blue] if classroom-element = "LA-seat" [report green] if classroom-element = "Erase" [report black] report red end to patch-draw ;Draw classroom button on interface if mouse-down? ;; reports true or false to indicate whether mouse button is down [ ;; mouse-xcor and mouse-ycor report the position of the mouse -- ;; note that they report the precise position of the mouse, ;; so you might get a decimal number like 12.3, but "patch" ;; automatically rounds to the nearest patch ask patch mouse-xcor mouse-ycor [ set pcolor patch-colour display ] ] end to reset-learning ;Resets student-owned learning variables ask Students [ set learned-geom false set learned-errn false set learned-ws false set learned-lect false set learned-geom-la false ] ask links [ if hide-social-networks [ hide-link ] if not hide-social-networks [ show-link ] ] end to rewire [p] ;;Part of WS setup ask socials [ let rewired? false if (random-float 1) < p [ ;; "a" remains the same let Student1 end1 ;; if "a" is not connected to everybody if [ count link-neighbors ] of Student1 < (count Students - 1) [ ;; find a node distinct from node1 and not already a neighbor of node1 let Student2 one-of Students with [ (self != Student1) and (not link-neighbor? Student1) ] ;; wire the new edge ask Student1 [ create-social-with Student2 [ set rewired? true ] ] ] ] ;; remove the old edge if (rewired?) [ die ] ] end to to-la-patch ;Causes LAs to move to available LA seats let la-patches patches with [pcolor = green] move-to one-of la-patches with [available?] end to WS [k p] ;;Sets up Watts Strograth small world network links let lis (n-values (K / 2) [ [i] -> i + 1 ]) ask Students [ let w who foreach lis [ [i] -> create-social-with (Student ((w + i) mod count Students)) ] ] rewire p ask socials [set color blue] end ;ALTERNATIVE MOVEMENT PROCEDURES ;to walk-towards-hand ; face best-way-to LA-hand-seek ; fd 1 ;end ;to-report best-way-to [destination] ;; of all the visible route patches, select the ones ;; that would take me closer to my destination ; let visible-patches patches with [ pcolor = white ] in-radius 20 ; let visible-routes visible-patches with [ pcolor = white ] ; let routes-that-take-me-closer visible-routes with [ ; distance destination < [ distance destination - 1 ] of myself ; ] ; ; ifelse any? routes-that-take-me-closer [ ;; from those route patches, choose the one that is the closest to me ; report min-one-of routes-that-take-me-closer [ distance self ] ; ] [ ;; if there are no nearby routes to my destination ; report destination ; ] ;end ;LOST AND BROKEN PROCEDURES ;to la-interact ; ask LAs with [not teaching?][ ; face one-of patches with [raised-hand? = true and pcolor = red] ; fd 1 ; ] ;end ;to la-teach ; ask LAs move-to one-of Students with [raised-hand? = TRUE][tick] ;end ;to move-las ; ask Students [if random-exponential 10 < 1 [set raised-hand? true set color black]] ; ask LAs with [not teaching?][ ;face one-of patches with [pcolor = white] ; ifelse patch-here = LA-hand-seek [ ; ifelse count Students with [raised-hand? = TRUE] >= 1 [ ; set LA-hand-seek one-of patch-set Students with [raised-hand? = TRUE] ; ] ; [ ; set LA-hand-seek one-of patch-set Students with [raised-hand? = TRUE] ; ] ; ] [ ; move-to LA-hand-seek ; ] ; ] ;tick ;end ; to en ; face one-of patches with [pcolor = white] ; ifelse patch-here = LA-hand-seek [ ; ifelse count Students with [raised-hand? = TRUE] >= 1 [ ; set LA-hand-seek one-of Students with [raised-hand? = TRUE] ; ] [ ; set LA-hand-seek one-of Students with [raised-hand? = TRUE] ;; ] ; ] [ ; walk-towards-hand ; ] ; ; ;end
There is only one version of this model, created over 7 years ago by Andrew McDevitt.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
240_lecture.png | png | 240 person lecture room | over 7 years ago, by Andrew McDevitt | Download |
24_lab.png | png | 24 person lab room | over 7 years ago, by Andrew McDevitt | Download |
30_lecture.png | png | 30 person lecture room | over 7 years ago, by Andrew McDevitt | Download |
450_lecture.png | png | 450 person lecture room | over 7 years ago, by Andrew McDevitt | Download |
Classroom Model with Learning Assistants.png | preview | Preview for 'Classroom Model with Learning Assistants' | over 7 years ago, by Andrew McDevitt | Download |
This model does not have any ancestors.
This model does not have any descendants.