NBNinja - Automatic 2D Layouts for Jupyter Notebooks

Visualization of a notebook dependency graph showing how NBNinja identifies optimal split points for 2D layouts.

Project Overview

As part of my Master’s thesis on enhancing collaborative data science environments, I developed NBNinja, a Python tool that automatically restructures linear Jupyter Notebooks for optimal 2D spatial layouts. This research addressed a fundamental challenge in data science collaboration: the inherently linear nature of notebooks that doesn’t align with the non-linear thinking process of data exploration.

Technical Implementation

NBNinja employs sophisticated code analysis techniques:

Research Validation

I validated the effectiveness of this approach through:

Technical Innovations

The project introduced several innovative approaches:

Skills Demonstrated

This project showcases my abilities in:

Impact and Applications

NBNinja served as a core component of my Master’s thesis framework and demonstrated the potential for automated tools to enhance collaborative data science workflows. The research contributed to the broader understanding of how spatial organization affects comprehension and collaboration in computational notebooks.

The tool continues to inform research on improving data science collaboration environments and has applications for both educational settings and professional data science teams.