Here is an experience I’d love for my students to have.
They walk into class and are assigned a group number. They open up a Desmos Activity and input their group number (via an input or choice component). Then they click an action button and up on their screen pops a role they are assigned to play in that group for that day (e.g. “scribe” or “speaker”).
A few stipulations:
- I wouldn’t want members of the same group to have the same role.
- I’d want to prioritize the assignment of certain roles over others if the group size is too small. For example, if group 2 only has three people present, then I’d want to prescribe to Desmos exactly which three roles to give to the members of this group.
I’ve thought a lot about how to do this, certainly using aggregate, but it feels like this may be out of reach for CL. If so, consider this a feature request, but here is the progress I’ve made so far.
I could aggregate the group numbers that students input, and then use this list to determine the sizes of the groups. A lengthy “when” statement could then probably handle stipulation 2 above. What I can’t figure out is how to satisfy stipulation 1, that roles are not doubled within a group. Somehow CL would have to keep track of which roles have been assigned and assign new roles for different group members (presumably as they join a few minutes later).
One feature that would make this easier would be to somehow determine an ordering of the students who are in the activity, one that wouldn’t change as students join. In other words, when each student joins the activity, Desmos would assign to that student a number indicating how many students joined before them (i.e. the first student to join would be student 0, the second student to join would be student 1, etc.), a number that CL could call. With this information I might be able to aggregate a list that contains the information of what group each student is in. This list would be enough to do what I want (I think…).