ProgSnap2 is a proposed specification for datasets containing programming process data—i.e., data captured from programming activity (typically in an educational setting.) The specification is currently in Beta status; several datasets have been implementd using the specification, and several analyses performed on them. See the Current draft section below.

ProgSnap2 was created by the members of the SPLICE Small Code Snapshots working group. The group leaders are Thomas Price and Ayaan Kazerouni.

Get involved!

Please join us! If you have

  1. captured programming process data that you would be interested in sharing,
  2. ideas for interesting analyses to perform on captured programming process data,
  3. ideas for CS education research projects that would benefit from data collected from multiple institutions/contexts

or any combination of the above, then we would like to work with you! The first step is to contact Thomas Price to ask for access to our Google group and shared Google drive folder.


12/20: We have officially transitioned ProgSnap2 into Beta status! Congratulations, everyone!

08/20: We presented an update on the working group's activities at the 2020 LAS workshop. We had one presentation: Small Code Snapshots Working Group Report Slides (PDF)

07/20: The 2nd CSEDM Data Challenge has been announced. It will use ProgSnap2 as a specification for multiple datasets from different institutions. Follow the link to sign up!

06/20: Price et al. published a study in ITiCSE '20 that demonstrated how five datasets collected from a variety of institutions by different researchers could all be refactored to meet the ProgSnap2 specification. The team showed that a single analysis script could then be run on each of the datasets to compare metrics (Error Quotient, Repeated Error Density, and Watwin score), even though three of the datasets could not be shared with the analysis script programmers due to privacy concerns. Read the paper here.

Current Draft

Specification version 8, 18 Dec 2020 (Beta status)

Previous drafts

Specification version 7, 21 Aug 2020 (Alpha status)

Specification version 6, 31 Jul 2019 (Alpha status)

Specification version 5, 17 Apr 2019 (Alpha status)

Specification version 4, 29 Mar 2019 (Alpha status)

Draft specification, 22 Mar 2019

Draft specification, 25 Feb 2019

Main specification, 17 Jan 2019

Code representation specification, 17 Jan 2019


ProgSnap2 borrows heavily from the DATASTAND Group Notes document created by John Stamper, Stephen Edwards, Andrew Petersen, Thomas Price, and Ian Utting at ICER 2017.