jupyter / nbgrader

A system for assigning and grading notebooks
https://nbgrader.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.28k stars 316 forks source link

Introduce (human readable) course titles in addition to course IDs #1795

Open jeflem opened 1 year ago

jeflem commented 1 year ago

Courses in nbgrader have the course_id property with several limitations (at least URL safe if used with JupyterHub). Would be great to have an additional property course_title. At the moment course list extension and assignment list extension show course_id to users (instructors and students). Showing a course_title would allow for whitespace, special characters, Unicode aso. in GUI.

Concrete use case: We (a small team at a university) are working on LMS integration of JupyterHub and nbgrader based on LTI. Coming to JupyterHub from the LMS our scripts and tools automatically sync course structures and enrolement lists from LMS to nbgrader. At the moment we have to convert LMS course titles to nbgrader course IDs losing information (if the LMS title is in Chinese, generating an equivalent nbgrader ID is almost impossible). Having identical titles in LMS and nbgrader would improve user experience and acceptance of the system.

Some details/ideas on how to implement this:

I've implemented above ideas and it works quite well. Similar should be possible for assignment list extension (not implemented yet).

If next to me there are other people looking for better course titles in nbgrader, I could make a PR. But not sure whether there are better ideas how to implement such a feature than mine.

analyticray commented 1 year ago

Looks great. I think it deserves a PR for now.