IMPORTANT

Progsnap has been superseded by ProgSnap 2. This website will remain here for posterity, but we do not recommend using this original version of Progsnap. The new one is better, has a data model that is both richer and easier to analyze, and has more support behind it.

What is Progsnap?

Progsnap is a data format for programming assignment snapshots.

It is intended to allow sharing and analysis of data on student work on programming assignments and exercises. In particular, it is designed to support fine-grained data such as keystroke-level edit events.

Specification

Each Progsnap specification has a version number.

The current official version of the Progsnap specification is:

Progsnap specification 0.1

The current development version of the Progsnap specification is:

Progsnap specification 0.2-dev

Note that development versions (with version numbers that end in “-dev”) are under development, and should be expected to change.

Tools

A Python library for reading Progsnap data is available:

https://github.com/cloudcoderdotorg/progsnap

The intent of the Python library is to make it easy to automate analysis of Progsnap datasets. See the example scripts.

Who is this for?

This is for researchers in CS education, software engineering, and programming languages who are interested in using student programming data in their research. By defining a common format for programming assignment data, Progsnap enables researchers to share data, and facilitates research that spans multiple institutions and courses.

A number of educational programming environments capture data as students work. For example:

Progsnap is intended to be general enough to capture data produced by these systems. It is worth noting that Progsnap is not the native storage format for any system, so an export tool will need to be developed for each system to convert the system’s data to Progsnap format. However, once this conversion is done, any tool that understands the Progsnap format can make use of the data.

Status

Version 0.1 of the specification, which is the first “official” version, is available now!

We presented a poster at SIGCSE 2017. It presents a fairly complete overview of the project and what we’re trying to accomplish:

Progsnap poster, SIGCSE 2017 [PDF]

If you would like to be involved in creating future versions of the specification, we would love to have your input! See the Contact section below.

Contact

People: