openedx / platform-roadmap

Tracking the maintenance, enhancement, and advancement of the Open edX project.
11 stars 1 forks source link

Enhancements to Teams to make learner grouping more flexible #250

Closed jmakowski1123 closed 4 months ago

jmakowski1123 commented 1 year ago

At-A-Glance

Make the Teams feature connect with content groups. That would make it so that membership in a Team could (provided the authors select it that way) have the consequence of allowing the student to access content from a Content Group.

There are 3 types of TeamGroups, Open, Managed and Private. We would like to have one more that sits in between the current Open and Managed types.

Work on the management options for staff to add/remove students to teams. Currently it can only be done via a CSV file that must be edited manually and re-uploaded.

Collaborate on the RBAC initiative to create a permission similar to the proposed Manage students but it calls a function (via openedx filters) to decide if the permission applies to this particular student.

More information

Product specs

Design files

Kanban board

Stakeholders

Primary Contributors

Community release milestones

How to contribute

-- students can work together on an assignment that will be graded

enable students to be members of multiple groups in a course simultaneously; enable teachers to be assigned to some groups but not all groups; share material exclusively with some groups; create forums for some groups; flexible assignment capacity to some groups

github-actions[bot] commented 1 year ago

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

felipemontoya commented 1 year ago

1. Is there an existing issue for this?

Maybe it's a stretch but from the issues I could find I see a small connection to #246 wrt "more nuance between instructor role and course author role" for one of the things that this request is trying to accomplish.

2. What new feature or functionality would you like to request?

Flexible student partitions or groups within a course. These groups can be mutually exclusive or not based on a property of the group set by the creator.

Partitions should be created by the course team as cohorts or teams do. Being part of a partition should be possible to assign:

Users can be assigned to the partition with the role of instructor. This would allow them to behave as the regular instructor of the course does, but only for the subset of students that belong to the partition.

Partitions should be able to connect to content-groups, discussions and bulk email as cohorts do. Also to ORA group activities as teams do.

These partitions would bridge the gap from cohorts to teams and allow teachers from campus learning to better assist their students.

3. What product area does this feature affect?

LMS; the courseware, discussion and instructor panels.

4. Please describe the scope of the feature.

This affects primarily the LMS. In particular it affects the way students would interact with different parts of the course content, discussion or ORA problems. It also affects instructors of the course since they would now be able to:

It would also have a side effect on the CMS around the list of partitions that can be assigned to content groups.

5. Please describe why you see a need for this feature.

In the current platform (~palm) there are two ways of creating student partitions: Cohorts and Teams.

Cohorts allow:

Cohorts limitations:

Teams allow:

This request from the Spanish for campus use, given that universities there organize around having courses divided in student partitions that are used for many purposes which are only partially covered by the present options. A course often has different sets of partitions running in parallel.

Some examples of partition usage:

It might be good to illustrate with an example from the UPV: A large course will be split into two teachers for theory, for two more teachers for exercise sessions in the classroom and 5 lab groups. A single student must belong to one theory group, one exercise class and one lab.

6. Please describe the potential impact and/or value of this feature

7. Please provide 2-3 use cases and/or user stories in support of this feature

8. Any additional information you'd like to provide?

From a developers standpoint we think that this feature would greatly benefit from an early connection to extensions so that the specifics of filtering or partition assignment can be defined by plugins instead of cluttering the core platform.

Also, given the initial discovery and research around the technical capabilities of cohorts we believe that these features can be developed by building on top of the current CourseUserGroupPartitionGroup models that power cohorts and by making the current grouping features more extensible.

We would be happy to collaborate in the technical design to get the parts that better match the core in the platform and everything else in extensions.

This comes from the block 2 (partida 2) of the Spanish tender.

mariajgrimaldi commented 1 year ago

Expanding a bit more on what Felipe suggested from a technical standpoint, so we can improve the current grouping strategies with reasonable impact in the Open edX Core, we propose using the current implementations plus some new extensibility points so we can cover most of our use cases if not all.

Without too much technical detail, we propose to:

Up until now, we’ve covered content groups & a new grouping strategy. So this can also work with the teams capabilities --if needed, we can:

References: Cohorts & content groups: https://openedx.atlassian.net/wiki/spaces/AC/pages/157685689/Cohorts+and+Content+Groups#CohortsandContentGroups-ContentGroups Teams: https://openedx.atlassian.net/wiki/spaces/AC/pages/160611195/Teams+capability

I'm thrilled to hear what you think!

felipemontoya commented 1 year ago

Hi @jmakowski1123, we are very commited to continue with this feature and I'd like to ask if a reasonable next step would be to put some coding time into it and create a proof of concept PR. Do we need buy in by any particular organization for this?

Talking to @ormsbee he mentioned that there could be a missing concept in the platform about a "staff" permission that only applies to a subset of the course. To avoid facing this issue I was planning to create the POC without such capabilities and wrap the question of permissions in a function where a filter can be included. This would also open up an extensions for new developers to create features that also complement that staff-learner relation.

ormsbee commented 1 year ago

Tagging @hsinkoff

mariajgrimaldi commented 1 year ago

I created a POC in edx-platform as a follow-up to this comment I left explaining our approach: https://github.com/openedx/edx-platform/pull/32806/

mariajgrimaldi commented 1 year ago

Regarding this comment Dave made:

Talking to @ormsbee he mentioned that there could be a missing concept in the platform about a "staff" permission that only applies to a subset of the course.

In the PR above, I created a POC for a new grouping system based on the existing cohort mechanism. There, we mentioned the professors concept superficially, which could be this new staff with permissions that apply to a subset of the course.

In our POC, professors are a list of users associated with this new grouping system. So when a user is associated with a group, they get assigned a new role called professor. This new role would have to interact with the current role management system -- as the instructor does. So first, we need to make the role management system more extensible so professors are easier to integrate. As Felipe said, we can use filters to refactor the way roles are being managed today, so we do so more generically, opening the new extension points for the Open edX platform. In this PR, I showcase how we could do such a thing.

Using this generic way of managing roles, we can dynamically create a new role that could interact with the current system via plugins. We could implement all the rules a professor would comply with there. But what does a professor do? A professor could but is not restricted to -- this is still open to discussion; we're proposing this list that draws inspiration from what an instructor can do:

This list must comply with what we can do with the extension points available, eg. if the reset attempts view doesn't check for a role before resetting the attempts, then we can't check for a professor's role there with an Open edX Filter. This way, we're maintaining the platform changes to the minimum.

cablaa77 commented 1 year ago

is there further evidence from course authors/instructional designers/administrators etc. that this (students work together on an assignment) is desired and addresses a validated pain point across the community? If that feedback exists, would love to see it. I do recognize this comment from @felipemontoya above "This request from the Spanish for campus use, given that universities there organize around having courses divided in student partitions that are used for many purposes which are only partially covered by the present options", but I do not know what the "Spanish for campus use" actually is. Any details to help catch me up would be appreciated.

felipemontoya commented 1 year ago

Hey @cablaa77 sure. The "Spanish for campus" is a project where 7 Universities, that use openedx both for their own instances and some at edx.org for open courses, got together, called their professors and course authors and wrote a document listing the things that would make their use of the platform more successful. In total they have 16 different areas in which they want to work. Making grouping more flexible is one of them. If is of any use here is the link to the original document, but as it is writen by spanish public Universities it is in spanish.

This document eventually became a project backed by the consortium of those universities and was also later supported by the EU. We at edunext were selected to try to bring this changes into the openedx project. Some things are being done as plugins and some are being proposed as extensions to the core of openedx.

cablaa77 commented 1 year ago

thanks @felipemontoya I will check out the doc later today

felipemontoya commented 1 year ago

Updating the status in preparation for the meeting of the campus-wg.

After the latest round of feedback on the proposal outlined by @mariajgrimaldi above and the permissions needed to allow professors to have impact on the proposal we had, we have been at the drawing board trying to design a solution that builds better on top of other running initiatives. One of the things that helped us work on this from a different angle is the Needs for Learner Grouping document that @jmakowski1123 kindly shared with us. Tagging @MHaton who I believe is the author of said document. Also we found a lot of interesting discussion in a wiki page published after Teams was first delivered.

Building on top of those iniciatives and to solve most of the use cases of the Spanish Universities we would like to enhance Teams in some ways:

I'll be writting this in more detail and with images that better show what we would like to accomplish but I wanted to update anyone following this thread before the meeting.

MHaton commented 1 year ago

Just swinging by this discussion seeing the ping to add that while that doc is full of semi-hot takes in places, I'd be more than willing to discuss any of them in more depth or clarify anything I wrote in that doc, feel free to DM me on Slack :)

felipemontoya commented 1 year ago

I kept refining with Teachers from the Spanish universities and I think we have the clearest proposal so far. I will continue working on a deeper dive on the technical dimension, but I'd like to get a feeling for the product side first.

I wrote in Confluence and I used the format that we have been using for other initiatives in the product working group.

https://openedx.atlassian.net/wiki/spaces/COMM/pages/3885334531/Enhancements+to+Teams+to+make+learner+grouping+more+flexible

@Daniel-hershel I understand that your team owns the teams feature, am I correct? Do you think this enhancements are reasonable from a product standpoint?

ProductRyan commented 1 year ago

Looks like @Daniel-hershel gave the proposal a look and is giving a 👍 on the plan given a toggle/optional config. Excited to see this additional config availability.