jmoenig / Snap

a visual programming language inspired by Scratch
http://snap.berkeley.edu
GNU Affero General Public License v3.0
1.5k stars 744 forks source link

Feature request: Rapidly grab snapshots of students' work #2201

Open kurtglastetter opened 6 years ago

kurtglastetter commented 6 years ago

As a teacher / teaching assistant, it would be nice if there were a way to rapidly grab a snapshot of all my student's work, for grading purposes, while they can then continue to work on the same project.

For example, if there were a way to download the XML export of their project via modifying the URL that they have shared with me from their Snap cloud account. Then I could write a simple curl script to grab all the student's projects at a particular point in time (the due date of a "checkpoint") while allowing them to continue to work on it, possibly breaking things; I would still be able to grade their work from that point in time.

As another option, if there were a way to copy a project to my own Snap user account, via a URL to a student project. Then perhaps I could write a curl script to rapidly copy their projects from the current point in time to my own Snap cloud.

Another possibility would be if the Snap cloud were itself storing snapshots of work over time, and if Snap provided an easy way to grab a URL to a snapshot of the project at the current point in time; then the students could simply turn in this kind of URL instead.

There may be other ways of achieving this; those are just a few possibilities. In any case, I would like to not have to do this manually for each student by clicking through the Snap UI over and over; likewise, I would like to not require each of my students to make their own copies of their project in the Snap cloud and share out a new URL for each "checkpoint" (and then remember to not modify that one).

Thanks!

brianharvey commented 6 years ago

Have your students use "Export summary" and email you the result.

kurtglastetter commented 6 years ago

"Export summary" would be fine for grading small assignments or toy programs. I'm referring more to longer term projects that are worked on over several days or even weeks. The projects quickly become too difficult to grade without actually running and interacting with them; it's just too much code to grade with eyeballs alone IMO.

cycomachead commented 6 years ago

Eventually, we want to store version history with (or alongside) projects. Right now, there's not really the time/bandwidth to make that possible. Snap! currently saves 2 previous versions of the project, one within the last day, and one from the day before. There are URLs available for those.

Screenshots are an interesting case, though we have a related issue of storing all that data. We don't really want to store screenshots of everything forever. I could eventually see a use, but not any time soon - as doing this would also mean building out scaffolding to choose when to enable saving screenshots.

There's also a small API that powers the Snap! Cloud, the complete documentation is this page: https://cloud.snap.berkeley.edu/static/API -- it's not really designed for public use, but you're certainly able to use it. Right now, everything requires saving and using cookies, not API tokens (which is why I say it's not really designed for public use), but it works well enough.

Also, it's worth noting that in Snap! when you open a project from another use and then save, Snap! automatically makes a copy to your account. I don't know if that's helpful in an way but maybe. :)

In general, I want to learn more about how you're grading projects. My experience has been that diffs and deltas or history are useful tools when trying to understand process and learning, but haven't helped so much when simply trying to grade a project.

brianharvey commented 6 years ago

I don't think "snapshots" means screenshots, but rather, saved projects at a particular moment.

Does this cloud API thing let someone else (the teacher) cause a student's open project to be saved? (Open by the student, I mean, on another computer.) If so, that's a huge problem, and if not, I don't see how it will help solve the OP's problem.

jmoenig commented 5 years ago

I guess this would be a "turn in" feature...