question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

nbgrader cell grading issues: kernel not agnostic, confusing, English

See original GitHub issue

Currently, 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:

  1. If you actually put in code, such as:
(define my-test-function
    (lambda (arg)
        ;; your code here...

it is just removed.

  1. 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:closed
  • Created 7 years ago
  • Comments:18 (18 by maintainers)

github_iconTop GitHub Comments

1reaction
willingccommented, Sep 9, 2016

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

0reactions
jhamrickcommented, Jan 13, 2017

To summarize, a few issues came out of this discussion:

  • #543 – document how to change the default code and text stubs to be non-Python and non-English
  • #547 – indicate in the create assignment UI what will be overwritten when nbgrader assign is run
  • #549 – give better feedback to students about how many points they have earned
  • #551 – be more flexible in finding solution delimeters

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

Read more comments on GitHub >

github_iconTop Results From Across the Web

Frequently asked questions — nbgrader 0.8.1 documentation
Can I use nbgrader for purely manually graded assignments (i.e., without autograding)? · Can I assign my own cell ids rather than using...
Read more >
Creating and grading assignments - nbgrader - Read the Docs
The difference with a manually graded answer is that the manually graded tasks cells are not edited by the student. A manually or...
Read more >
Jupyter Documentation - Read the Docs
Jupyter will contain the language-agnostic projects that serve many ... nbgrader tools for managing, grading, and reporting of notebook ...
Read more >
Project Jupyter - Wikipedia-on-ipfs
nbgrader. nbgrader is a tool for creating and grading (marking) assignments in Jupyter notebooks.[21] It allows the instructor to create assignments that ...
Read more >
Search | SAS Support
... a few key phrases—but you would not confuse this with knowingthe language. ... Cloud and Jupyter Notebooks along with the SAS kernel...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found