What is Jupyter Notebook?

Jupyter Notebook is an open source software that allows users to write and compile code alongside other elements like text and images. Jupyter has the ability to segment code and text into cells, so that the code can be run in blocks. This allows code to be given a better

Goal of my Research

The research I conducted was focused on finding pain points students face when working with Jupyter Notebook. I worked alongside two other undergraduate students, and our work was overseen by a PhD student and professor Jim Hollan. Jupyter is a great tool for data analysis due to its ability to display outputs inline with the code, and its ability to create code templates with markdown descriptions alongside the code. However we wanted to look into areas where Jupyter is confusing for students, and what kinds of issues students run into when learning through Jupyter Notebook.

Jupyter's Survey

In 2016 the Jupyter Notebook team gave a survey out to over 100 professors who were using Jupyter Notebook as a teaching tool in a class they were teaching. We analyzed this survey and were able to get a sense of some of the pain points instructors face when working with Jupyter Notebook. This guided the way for our area of research, and we decided we were also going to look into pain points, but from the students perspective.

Data Collection

In order to collect student pain point data for Jupyter Notebook we found a data science class that was exclusively using Jupyter for assignments and the final project. We interviewed 16 students, four Teaching Assistants, and observed 6 discussion sections where students work together to solve coding problems in Jupyter. The interviews followed a specific set of questions, centered around pain points the students face and how they recover from errors.

Analysis

Since our data was mostly qualitative, we decided to analyze it through affinity diagramming. We dove into the pain points students expressed in our interviews and grouped them under various categories, trying to get a sense of what the most prevalent problems were. We color coded our affinity diagram based on how much programming experience that student had, to see if some trends were specific to a demographic of coder.

Conclusion

We ended up with a list of pain points students face when using Jupyter Notebook to learn, and the frequency of how often these pain points occur. This opens up the research to be used in the creation of extensions for Jupyter Notebook to help lessen the learning curve and facilitate the education of new students. We were surpised to find that the most common problems students faces had some relationship to the UI of Jupyter Notebook, which means there is definitely room for improvement on an already powerful software.