Jupyter4Science at SciPy 2024

Who am I?

My name is Nicole Brewer. My undergraduate background is in computer science, and after graduation, I spent several years as a software engineer in the academic space - a position known as a research software engineer or RSE. As an RSE, I worked with a research group to create a rather complex web application in a Jupyter Notebook. At that time (around 2019), our RSE group had experienced some success using Jupyter Notebooks to develop interfaces because tools like ipywidgets and Voila make it easy to transform an existing computational workflows into user interfaces. Using Jupyter Notebooks and Python were also beneficial because the codebase was in a friendly and familiar language that our collaborators were familiar with; they could manageably maintain the web app on their own after the period of collaboration was over. Our RSE group felt that these - largely human - factors were a major part of the success, so we developed a couple of templates for developing web applications using Jupyter Notebooks.

An obligatory sidenote about my current position: Over the course of my early career, I developed an interest in computational reproducibility, especially with respect to Jupyter Notebooks, so I ended up in a History and Philosophy of Science program at Arizona State University where I’m currently pursuing my PhD. You can read more about that on my profile page.

How did I came to present widget tutorials at SciPy 2023 and 2024?

Though my dissertation work was focused on computational reproducibility, I felt there was a lot of value in the templates we created for building user interfaces with Jupyter Notebooks. I wanted to further develop our templates into tutorials and other resources to pass along the lessons learned and encourage uptake of the tools. I applied Better Scientific Software Fellowship, or BSSw Fellowship, which is a program that aims to foster and promote practices, processes, and tools to improve developer productivity and software sustainability of scientific codes. On receiving the fellowship in 2023, I developed a tutorial for turning scientific workflows into web application. I had never attended SciPy, but as I was hoping to expand on topics often presented in prior ipywidget tutorials, I felt that it would be the right venue for my tutorial. I greatly appreciated the opportunity to present, and I had the meeting Matt Craig, who had given ipywidget tutorials that I had learned so much from years prior. He introduced me to Juan Cabanela and suggested we might collaborate on a future iteration on the tutorial. We just presented Building Complex Web Applications with Jupyter Notebooks at SciPy 2024!

What is Jupyter4Science and how did it get started?

After after presenting the 2023 tutorial, How the Little Jupyter Notebook Became a Web App: Managing Increasing Complexity with nbdev, I got started on the next deliverable of BSSw Fellowship, which was a website for showcasing all the many resources I was creating and curating. The result was Jupyter4Science - a knowledge base that contains original content and curated resources about developing and sharing Jupyter Notebooks as they are used in the context of scientific applications. The website contains…

Resources

  • tutorials and templates
  • original blog posts
  • reports on recent experiences with open-source tools
  • awesome lists
  • annotated resource pages
  • a Zotero collection
  • publications and other citable objects

Relevant Topics

  • Notebooks as Computational Workflows
  • Development Environments for Jupyter Notebooks
  • Reproducible Environments
  • Sharing Notebooks
  • Creating Publications with Quarto
  • Templates and Best Practices
  • Jupyter Notebooks as Peer-Reviewed Objects
  • Building Data Dashboards and Web Applications with Jupyter Notebooks
  • and more!

Student Contributions

From the beginning of the project, I hoped to avoid developing something in isolation. I use my fellowship funds to hire two undergraduate computer science students to help me create and contribute to the knowledge base. I’m incredibly proud of both their efforts. They each created a Jupyter-based web application and wrote an experience report on the tools they used:

What does the future look like?

As I mentioned, I’m currently working on my PhD so I have limited bandwidth. The Jupyter4Science project is in early stages and could take any number of future directions. In any case, I’m interested in obtaining more funding for the project to continue working on it full-time next summer.

Jupyter Notebook - The Hidden Curriculum

University students across science, social science, the digital humanities are often expected to use Jupyter Notebooks in classrooms and research settings. However, students are commonly thrown into the deep end with these tools which, given their reputation as beginner-friendly tools, are introduced without dedicated instruction. I’m currently using project funding from the ACM Computer Science Education SIG to develop a 1-cr hour intro course about notebooks and best practices.

Newsletter

Perhaps the next-closest thing on the horizon is creating a newsletter to announce the publication of new posts, as well as any news and updates on Jupyter-related tools. Such a newsletter would be on an infrequent, ad-hoc release schedule.

Community Building

There are currently two ways I’ve set up processes to contribute to the site, but I’m interested in your feedback and other ideas as well! Please reach out if you have issues or ideas.

Possible Future Directions

The future of Jupyter4Science isn’t completely clear to me yet, but I do hope to continue to connect with everyone at SciPy and grow the project further. Possible endeavours include:

  • podcast episodes
  • free online tutorials
  • open education resources
  • entrepreneurship and consulting

I’m interesting in obtaining more funding to work on it full time over the summer of 2025. Please reach out with any ideas you may have! I’d love to connect.

Nicole Brewer
Nicole Brewer
Site Editor and PhD Student at Arizona State University

Nicole is a PhD student in History and Philosophy of Science at ASU where she is using network analysis and other methods to empirically study the reproducibility of Jupyter Notebooks used in research.