nbgrader cell grading issues: kernel not agnostic, confusing, English
See original GitHub issueCurrently, when you create a nbgrader notebook and mark a cell to be autograded, it will replace the cell’s contents (if any) with:
# YOUR CODE HERE
raise NotImplementedError()
This is confusing for two reasons:
- If you actually put in code, such as:
(define my-test-function
(lambda (arg)
;; your code here...
it is just removed.
- It is replaced with Python code. Beginning Python students are confused by these lines. It is very confusing if they are beginning students of a different language.
Constraints: there is an automatic feature that will replace/search for text, such as :
### BEGIN SOLUTION
...
### END SOLUTION
This is, of course, language specific (eg, the comment hash is specific to Python).
A related problem is that text Markdown cells that are marked for autograding are also removed. For example, the text is always replaced with:
YOUR ANSWER HERE
My overall feeling is that nbgrader is attempting to do too much, and that causes issues because what it does do is not kernel (nor human-language) agnostic. If it instead left the text/code alone the cells, many of these issues would go away.
But what to do about automatic solution hiding? Perhaps something more general:
- if a line contains the text “*** begin solution ***” (can be embedded in comments of kernel), then start of solution
- if a line contains the text “*** end solution ***” (can be embedded in comments of kernel), then end of solution
Also, the system should not rely on raising NotImplementedError(). This is confusing to see, and is a weak way to check for “validation”.
Issue Analytics
- State:
- Created 7 years ago
- Comments:18 (18 by maintainers)
Top GitHub Comments
@jhamrick @dsblank Happy to help on this and other 0.4.0 milestones. You know my heart is with education and Jupyter/JupyerHub, and Doug is doing very cool stuff. I’ll give the notebook template a closer look tomorrow.
P.S. Nice to have you back @jhamrick.
To summarize, a few issues came out of this discussion:
nbgrader assign
is runI think the bulk of what we talked about in this issue has been turned into these other issues, so I am going to close this. @dsblank if you disagree, please let me know and either I or you can open up new issues for specific things that should be addressed.