Submitting assignments

.. seealso:: :doc:`/command_line_tools/nbgrader-submit` Command line options for ``nbgrader fetch`` :doc:`/command_line_tools/nbgrader-list` Command line options for ``nbgrader list`` :doc:`/config_options` Details on ``nbgrader_config.py``

From the command line

First, as a reminder, here is what the student's nbgrader_config.py file looks like:


In [ ]:
%%bash

cat /tmp/student_home/nbgrader_config.py

After working on an assignment, the student can submit their version for grading using nbgrader submit and passing the name of the assignment and the name of the class:


In [ ]:
%%bash
export HOME=/tmp/student_home && cd $HOME

nbgrader submit "Problem Set 1"

Note that "the name of the assignment" really corresponds to "the name of a folder". It just happens that, in our current directory, there is a folder called "Problem Set 1":


In [ ]:
%%bash
export HOME=/tmp/student_home && cd $HOME

ls -l "/tmp/student_home"

Students can see what assignments they have submitted using nbgrader list --inbound:


In [ ]:
%%bash
export HOME=/tmp/student_home && cd $HOME

nbgrader list --inbound

Importantly, students can run nbgrader submit as many times as they want, and all submitted copies of the assignment will be preserved:


In [ ]:
%%bash
export HOME=/tmp/student_home && cd $HOME

nbgrader submit "Problem Set 1"

We can see all versions that have been submitted by again running nbgrader list --inbound:


In [ ]:
%%bash
export HOME=/tmp/student_home && cd $HOME

nbgrader list --inbound

Note that the nbgrader submit (as well as nbgrader fetch) command also does not rely on having access to the nbgrader database -- the database is only used by instructors.

From the notebook dashboard

Alternatively, students can submit assignments using the assignment list notebook server extension. You must have installed the extension by following the instructions `here `__. Students must have also :doc:`already downloaded the assignments <08_fetching_assignments>`.

After students have worked on the assignment for a while, but before submitting, they can validate that their notebooks pass the tests by clicking the "Validate" button (analogous to running nbgrader validate). If any tests fail, they will see a warning:

If there are no errors, they will see that the validation passes:

Once students have validated all the notebooks, they can click the "Submit" button to submit the assignment (analagous to running nbgrader submit ps0 --course cogsci131). Afterwards, it will show up in the list of submitted assignments (and also still in the list of downloaded assignments):

Students may submit an assignment as many times as they'd like. All copies of a submission will show up in the submitted assignments list, and when the instructor collects the assignments, they will get the most recent version of the assignment: