NBgrader Guide for multilpe Intructors - JuoyterHub knowledge

189 views
Skip to first unread message

Daniel García Teba

unread,
Apr 11, 2021, 6:33:32 PM4/11/21
to Teaching with Jupyter Notebooks
Hello.

We have successfully created a TLJH on
AWS, with Github OAUTH. Also, we have successfully added the Nbgrader extension to TLJH with the configuration called "One Class, One Grader/Instructor", the
simplest case scenario.

Now the main concern it's in this step :
https://nbgrader.readthedocs.io/en/stable/configuration/jupyterhub_config.html

We lack the knowledge about JupyterHub on how create a notebook-service.
https://github.com/jupyterhub/jupyterhub/tree/master/examples/service-notebook

Now we are pushing to achieve the One Class, Multiple
Graders/intructor, but to do the documentation is not very helpful.
The example " then you can set up a shared notebook server as a
JupyterHub service", we have read the docs but we don't know how to do
it.

It seems it is necessary to create a /service/, which will be
executing the FormGrader Extension, and the instructor users will have
access somehow to that shared service, and the instructor together
will be able to correct the activities send by the student
asynchronously.

We have opened a GitHub Issue in
https://github.com/jupyter/nbgrader/issues/1428, to ask for help, but
no answer yet.

Thank you so much for your help. I promise we will create a
youtube/Medium tutorial on
how-to-painless-deploy-TLJH-with-nbgrader-multiple-instructor. we have
been trying for months!

Daniel Teba

unread,
Apr 12, 2021, 3:03:32 PM4/12/21
to Teaching with Jupyter Notebooks
Have found some old documentation (2015 ) https://groups.google.com/g/jupyter/c/xEiZwsGTdMg/m/yFxPiJSOEQAJ

Don't know if still applies and how to deploy with TLJH

Nicolas M. Thiery

unread,
Apr 18, 2021, 6:30:07 PM4/18/21
to Daniel Teba, Teaching with Jupyter Notebooks
Dear Daniel,

Not quite an answer to the specific question, but the following might
be of interest for you or others with the same need: how to use
nbgrader for multiple courses on a single JupyterHub?

This question had been itching me for some time, with the additional
constraint that we want to decouple as much as possible the
maintenance of Paris-Saclay's JupyterHub from the course management,
to empower teachers doing the latter without depending on sysadmins
doing the former.

I considered for a while deploying an exchange service such as ngshare:

https://discourse.jupyter.org/t/ngshare-a-solution-for-using-nbgrader-with-jupyterhub-and-kubernetes/4724

until I realized that our university was already maintaining a general
purpose service with all the desirable features: namely our local
forge GitLab! It indeed does file sharing, time stamping, permission
management, secure code execution through CI. And of course much more.

With colleagues from UQAM and Paris-Saclay, we have been experimenting
with this concept since last May. This takes the form of a small
Python library with a command line interface which automates the
interaction with the exchange (release, fetch, submit, ...) through
calls to git and to the GitLab API.

https://gitlab.info.uqam.ca/info/travo/

Besides nbgrader, another source of inspiration was GitHub classrooms.
In fact, most of travo does not depend on Jupyter or nbgrader; as a
matter of fact, we use it for several courses with no Jupyter.

Pros:

- simplicity: no service to deploy
- ubiquity: instructors and students alike can use travo from any
computing environment they like (jupyterhub, physical computer lab,
binder, personal laptop, ...); all they need is travo to be
installed.
- students need not know git or gitlab, but they get exposed to them

Current status:

- it's used in production with a couple of large lower undergraduate
classes (200+ students, 6+ instructors)
- steps implemented:
- release
- fetch, submit, autograding by CI, fetching feedback from autograding
- collect, manual grading with nbgrader's UI, export grades
(release manual feedback still missing)

Altogether, it certainly is usable, and we would love to get feedback
from early adopters. It does have some rough edge though, and the
documentation on how to setup is still minimal. Happy to help you get
started!

Cheers,
Nicolas
--
Nicolas M. Thiéry "Isil" <nth...@users.sf.net>
http://Nicolas.Thiery.name/
Reply all
Reply to author
Forward
0 new messages