Tinderbox Forum

Tinderbox for grading student projects and papers

I am starting to use Tinderbox to support my grading process and was curious about what approaches others may have taken to this.

A few notes about my approach so far:

My students submit many assignments electronically. For those assignments, I am able to drag the assignment files into TB. Key attributes include file location and grade.

One immediate benefit is that I can use a map with adornments to track which assignments still need grading. In some cases I do a first pass on assignments and identify ones that might be easier or harder to grade. I can cluster these and decide which group I want to tackle. I can use display expression on adornment to count assignments in a given category.

Another thing I do is tag assignments to categorize them. For example, in a database assignment (not a paper, really, but a file that I need to grade), I tagged assignments with general issues. That makes it possible to develop a common set of comments or set of deductions and identify assignments where these apply.

Finally (so far), I am setting up a system to re-use comments. While student deductions and feedback are to some extent student-specific, there are certainly recurring themes . Previously I would use Typinator (text expander app) expansions to re-use comments, but I find a few issues with this:

  • It is difficult to come up with a reasonable set of shortcuts for these comments as they proliferate across questions and assignments.
  • It is hard to locate specific comments from a lengthy list.
  • The system does not lend itself to inductively arriving at general purpose comments. The specific student response is usually too specific for re-use, but yet I find myself composing variations on some theme and sense I could develop at least part of the answer for re-use.

In my new approach, I have a container for comments for a given assignment. A comment prototype has attributes to identify the assignment, the particular question, a point deduction (if applicable, as well as a “label” for the comment.

  • The “label” plays the role of the shortcut in Typinator: a very brief code for the comment.
  • The name of the comment note is meant to be a concise description of the comment. It is these names that I use when searching for relevant comments. Less cryptic than the label.
  • The actual comment is stored in the text of the comment.

I can apply comments to an assignment by either manually entering a list of comment codes into a $CommentCodeList attribute or by selecting the comments (via $Checked attribute) and using a stamp to automatically build the list.

I have an agent that updates the text of an assignment note by finding all the comments listed in $CommentCodeList. The agent uses regular expressions to replace just part of the body text so that I can also include my own custom notes in the assignment text.

Grading then involves reviewing the assignment and selecting appropriate comments. In some cases, I create a new comment for future use. Then use stamp to add the collection of comments to the assignment. Then I make any custom edits and paste into comment form on our course website (or potentially in an email or as a note on a pdf) to give student feedback.

As I describe this it sounds pretty cumbersome, but I find it worth the effort on assignments where I need to provide this kind of detailed feedback. I also find the structure helpful in maintaining focus and energy as I grade many assignments.

Very interested to hear about other approaches. I am not entirely sure this approach will turn out to be sustainable and a much simpler approach may turn out to be more useful, but so far finding this to be worthwhile.

1 Like

Very interesting narrative and explanation of how you approach the work.

Exactly how I would handle this. I would imagine over time the initial investment in setup will pay back in efficiency and better history records.

Once the agent has updated the text, and especially after you’ve released the comments to your students, I’d suggest a boolean for $DoNotUpdate in these notes so that when it is true the agent no longer changes the notes’ $Text – this is protection against inadvertent future changes if the agent changed, or some other change in the file might cause an update you do not want. (The new $ReadOnly attribute – intended for watched files – could be refactored for this purpose and set by the agent.)

Are you storing the documents themselves in Tinderbox, or just their location on disk? Personally, I do not like storing documents in Tinderbox. It’s an easy matter to have a file-type attribute instead. Click it the first time (before it has a value assigned) and a Finder dialog opens to select the file. Future clicks of the file icon will open the file in its editor (Preview, or Word, or whatever). I think this makes for leaner documents.

You didn’t mention how you export or get the comments back to the student.

Thanks for suggesting $DoNotUpdate. That is a great idea and I will add that. At the moment the final version of the comments do not live in TB. I do some light editing just before posting them. Now that you mention this, I realize the reason I was editing outside of TB is because I did not have the ability to do what you suggest. Setting that up will not only preserve the final version for future access, but will let me mine those notes for more general comments, without the need to pull out re-usable content in advance.

I store the files outside TB in the way you suggest. All I need is the link.

At the moment the export is quite primitive: just cut and paste. Since my first round of grading this semester uses a comment box on the course website, this was the easiest. As I move forward, though, the ability to use TB export to makes sense and I will be exploring that.

I am also thinking of a somewhat different approach for grading large projects. For those I may want to associate multiple comments with a single student document, in which case storing the standard text in a set of prototypes might make more sense. Trying not to get ahead of myself though. Hope to have the structure emerge as I get into this next round of grading.

These real world examples are always interesting, both for illustrating the very different ways in which people apply the program, and also for suggesting challenges-and-solutions that can be relevant in a broad range of circumstances.


I want to second James Fallows’s assertion that these real-world examples are always interesting. And just this morning, there’s another fine real-world example next door, in the thread about choosing between attributes and tags.

Attributes or tags - an example

1 Like