license:apache-2.0 size_categories:10K<n<100K format:parquet modality:tabular modality:text library:datasets library:pandas library:mlcroissant library:polars region:us Python Jupyter
---
license: apache-2.0
dataset_info:
  features:
  - name: action_id
    dtype: int64
  - name: time
    dtype: string
  - name: session_id
    dtype: string
  - name: kernel_id
    dtype: string
  - name: notebook_name
    dtype: string
  - name: event
    dtype: string
  - name: cell_index
    dtype: string
  - name: cell_num
    dtype: float64
  - name: cell_type
    dtype: string
  - name: cell_source
    dtype: string
  - name: cell_output
    dtype: string
  - name: user_id
    dtype: string
  - name: expert
    dtype: bool
  splits:
  - name: train
    num_bytes: 13805405
    num_examples: 23622
  download_size: 1339304
  dataset_size: 13805405
configs:
- config_name: default
  data_files:
  - split: train
    path: data/train-*
tags:
- Python
- Jupyter
size_categories:
- 10K<n<100K
pretty_name: JuNE
---


# Jupyter Notebooks Executions (JuNE)

This dataset contains logs of code evolution in Jupyter notebooks, focusing on data science tasks. The data was
collected from participants working on Data Analysis (DA) and Machine Learning (ML) tasks.

## Data collection procedure 

The data collection procedure took place in four different locations (two universities and two companies),
we gathered all eligible participants into groups of two to nine people. Each person in the group was
asked to solve at least one of the tasks, and participants implemented their notebooks individually.
We provided each group with a repository containing task descriptions and the necessary data.
Upon presenting the repository, we activated a nine-hour timer, which allowed approximately eight
hours for task completion and an additional hour for lunch. After nine hours, we ceased logging
and evaluated each solution based on the most recently logged notebook. The tasks are available here.

The daata collection process captured:

- Sequential cell executions
- Code changes between executions
- Output types and content
- Timestamps for temporal analysis


## Dataset Description

The resulting dataset of Jupyter Notebooks Executions (**JuNE**) contains more than 100 hours worth of execution logs from 20 people: 11 students and 9 professionals.

During the experiment, the data collection procedure participants solved a total of 29 tasks, resulting in 29 notebooks. This data included 16 solutions of
the DA task and 13 solutions of the ML task. Overall, the data includes 14,641 user events, including
9,207 cell executions, 1,930 cell creations, and 730 cell deletions. For each of the 29 notebooks, the dataset contains all the notebook’s actions in chronological
order, together with cell contents and all the meta-information. 

As resutls The dataset contains 23,622 rows with the following features:

- **action_id**: Unique identifier for each action/execution in the notebook
- **time**: Timestamp of when the action was performed
- **session_id**: Identifier for each unique Jupyter session
- **kernel_id**: Identifier for the Jupyter notebook kernel instance
- **notebook_name**: Name of the Jupyter notebook
- **event**: Type of event that occurred (e.g., cell execution)
- **cell_index**: Cell hash index
- **cell_num**: Cell position in the notebook.
- **cell_type**: Type of the cell (code, markdown)
- **cell_source**: The actual source code/content of the cell
- **cell_output**: Output generated by the cell execution
- **user_id**: Unique identifier for the participant
- **expert**: Boolean flag indicating whether the user is an expert (True) or student (False)

## Usage

This dataset can be used for:

- Analyzing data scientists' workflow patterns
- Understanding code evolution in notebooks
- Studying debugging and exploration behaviors
- Evaluating developer's tools for notebook environments

## Citation

```
@misc{titov2025june,
    title={JuNE: Jupyter Notebooks Executions Dataset},
    author={Titov, Sergey and Grotov, Konstantin and Sarasua, Cristina and 
            Golubev, Yaroslav and Ramasamy, Dhivyabharathi and Bacchelli, Alberto and 
            Bernstein, Abraham and Bryksin, Timofey},
    year={2025},
    publisher={Hugging Face},
    howpublished={\url{https://huggingface.co/datasets/JetBrains-Research/JuNE}},
    note={Dataset containing logs of code evolution in Jupyter notebooks, comprising over 100 hours of execution logs from 20 participants solving data science tasks}
}
```