Mike Zamansky has come up for air and after a long hiatus, he’s back with another video in his Using Emacs Series. This video is about his project grading workflow. That may not seem to interesting to some folks but, as usual, he leverages Emacs and some new packages that he hasn’t discussed previously.
If you haven’t been a teacher, you probably have no idea what a chore grading is. If you want to evaluate your students fairly, you have to bear down and can’t just phone it in. Therefore, anything that eliminates routine chores and makes the process run more smoothly is a real win.
To a first approximation, Zamansky use GitHub and GitHub Classroom to handle his homework and project assignments and their grading. GitHub provides a very nice infrastructure for teaching and coordinating with students. That was true before COVID-19 and is probably more true now. The problem with it is that it’s Web based and involves a lot of clicking when you’re dealing with several students and their repositories.
Zamansky deals with this by cloning all the student repositories to his local machine. That’s a win because he can then deal with everything from inside Emacs. For example, if he wants to compile and run some student code, that’s easy from within Emacs.
A typical workflow is grading a project. Zamansky first runs consult-find
to find all student programs implementing the project. He can direct all the paths to a separate buffer from which he can visit each in turn. There’s no navigating to each student, then to the proper project, and finally to the code. Everything is right there so he can simply step through the list. This is handled through the consult package.
Likewise, he can communicate with a student by leveraging the forge package to raise an issue in the student’s repository. Similarly, a student can raise an issue that can be downloaded with forge. Finally, Zamansky can use the Embark package to render PDFs or link in a separate utility, although he usually prefers to render it directly in Emacs.
If you’re interested in this sort of thing, you can also take a look at this 2014 blog post and video from John Kitchin on how he handled things then: blog post, video. I’m sure he’s evolved his system subsequently but it was already pretty powerful and completely Emacs based.
Zamansky’s video is 18 minutes, 39 seconds long so plan accordingly. It’s interesting even if you aren’t a teacher. In any event, it’s nice to have Zamansky back.