Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancements to Teams to make learner grouping more flexible #250

Open
1 task done
jmakowski1123 opened this issue Apr 3, 2023 · 14 comments
Open
1 task done

Enhancements to Teams to make learner grouping more flexible #250

jmakowski1123 opened this issue Apr 3, 2023 · 14 comments
Assignees
Labels
product review complete PR has gone through product review

Comments

@jmakowski1123
Copy link

jmakowski1123 commented Apr 3, 2023

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

  • edunext

Community release milestones

  • Quince:

  • Redwood: Targeted for release

How to contribute

  • Has a community backlog with work to pick up?

-- 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

@jmakowski1123 jmakowski1123 added the campus Of Interest to the Campus Working Group label Apr 3, 2023
@github-actions
Copy link

github-actions bot commented Apr 3, 2023

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

@e0d e0d added the epic Large unit of work, consisting of multiple tasks label Apr 14, 2023
@felipemontoya
Copy link
Member

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:
- automatically according to rules that can be extended by plugins
- manually by the course team
- when configured to allow this, by the students themselves

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:
- focus only on a partitions of the enrolled students
- create content for specific partitions

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:
- students can be assigned to content-groups
- students can be assigned to dedicated forum spaces
- students can join a cohort automatically of by the course team

Cohorts limitations:
- students can not join or leave a cohort by their own
- cohort groups are mutually exclusive. A student can not belong to more than 1 cohort simultaneously
- cohorts don't have any relation to teachers/instructors

Teams allow:
- students can be assigned to dedicated forum spaces
- students can be assigned to an group ORA task

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:
- each student partition is assigned to a teacher in courses with many enrollments
- partitions are created for practice or lab sessions
- a partition can be created to assign a specific exam or course content block to a subset of students
- students can self organize in partitions for specific study groups

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

  • The greatest value for the community here would be to allow instructors to open up to more different ways of administering a course not limited by the initial definitions of groups that were present when cohorts and teams were designed.

  • Second it would foster in-campus use of the platform for large universities that are currently limited by the flatness of the enrollment model.

  • [Long shot] this could ease the pressure on the CCX as the only current way to assign teachers to smaller groups of students.

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

  • as a student I would like to join "study groups" on my own that match my interest in a course and get access to special content and discussion spaces

  • as a university admin of a large course I would like to assign different teachers to look after a subset of students that matches the registration of the university classes

  • as an instructor of a course partition I would like to access the grades of my assigned students

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
Copy link
Member

mariajgrimaldi commented Jun 15, 2023

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:

  • Add a new partition scheme using the User partition scheme extension point. This scheme will implement a way of mapping users into groups.
  • Extend CourseUserGroup so it works with other schemes besides cohorts – it seems it was intended to do so, according to an inline comment.
  • The partition scheme will map users with groups and store them into this model – or a variation of it.
  • To customize the user's relationship with the CourseUserGroup we could implement an intermediate model that enforces some specified rules, like roles or uniqueness restrictions – like CohortMembership does.
  • This new model would have to work with the CourseUserGroupPartitionGroup which would map a single CourseUserGroup (the new one) with a content group. So we have the content group's capabilities.
    In each step, we’ll have to figure out how to seamlessly integrate the new partition scheme into the current grouping system.

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:

  • Map each the relationship between user <-> CourseUserGroup (new) with a relationship between user <-> team, so the members of the same group have access to the same topics/forums (because they’re on the same team).

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 felipemontoya self-assigned this Jul 6, 2023
@felipemontoya felipemontoya changed the title [Placeholder] Make grouping more flexible Make grouping more flexible Jul 6, 2023
@felipemontoya
Copy link
Member

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
Copy link

ormsbee commented Jul 24, 2023

Tagging @hsinkoff

@mariajgrimaldi
Copy link
Member

I created a POC in edx-platform as a follow-up to this comment I left explaining our approach: openedx/edx-platform#32806

@mariajgrimaldi
Copy link
Member

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:

  • View the course before the Course Start Date
  • Enroll and unenroll students in their group
  • Access the groups' grades
  • Reset attempts to answer a question correctly for students in their group
  • Send email messages to course participants belonging to their group
  • Can only see data on that group
  • Has no course staff permissions (can't manage course globally)

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
Copy link

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
Copy link
Member

felipemontoya commented Aug 11, 2023

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
Copy link

thanks @felipemontoya I will check out the doc later today

@felipemontoya
Copy link
Member

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:

  • 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.

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
Copy link

MHaton commented Sep 22, 2023

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 :)

@jmakowski1123 jmakowski1123 changed the title Make grouping more flexible Enhancements to Teams to make learner grouping more flexible Sep 22, 2023
@felipemontoya
Copy link
Member

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
Copy link

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.

@jmakowski1123 jmakowski1123 added product review complete PR has gone through product review and removed redwood course delivery team epic Large unit of work, consisting of multiple tasks campus Of Interest to the Campus Working Group labels Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
product review complete PR has gone through product review
Projects
Status: Being Developed
Development

No branches or pull requests

8 participants