Case Study: Columbia University
How a Columbia University Faculty Member Uses Jupyter for Coursework and Lectures

Vocareum hosts Jupyter and adds auto-grading and peer reviews for Professor Mandli’s Applied Math courses


Top-tier universities worldwide are leading a trend towards standardizing on Jupyter notebook to collaborate around content that integrates compute and data. When combined with a robust e-learning infrastructure solution such as Vocareum, Jupyter notebooks become easy for students to adopt and inexpensive for educators to deploy. As a result, many of the top universities in the nation are now exploring ways to combine both Jupyter and Vocareum as part of their course work.

Kyle Mandli

Kyle Mandli, Associate Professor at Columbia University

In the following interview, we explore how Columbia University’s Kyle Mandli, Assistant Professor in the Department of Applied Physics and Applied Mathematics, is pioneering the use of Vocareum-powered Jupyter notebooks in courses that integrate a mixture of both mathematics and Python programming. Professor Mandli also co-authors an online book on Teaching and Learning with Jupyter.

Please tell us about your courses.

APAM 4300 is an introduction to numerical methods.  We cover the basics of continuous mathematics, how to discretize it and how to analyze the errors we see, incorporating concepts like interpolation, finding differences, optimization, and linear algebra.  The other course that I teach is numerical methods for partial differential equations which builds off APAM 4300.  In both cases, we use Jupyter notebooks to deliver coursework and lectures.

In general, the course assignments require a mixture of both Python programming and mathematical analysis, which is why Jupyter is so fitting.  It provides an approach that allows me to intermix both the analysis questions and the programming questions, and this is all managed within Vocareum’s cloud lab environment.

Additionally, all of my lectures can be found on GitHub as a static version of Jupyter notebooks. But I found that a lot of students will upload the lecture notes into Vocareum so they run it and see what is going on.  Other students just copy content from GitHub to their actual assignment notebooks when necessary.

How does Vocareum fit into your teaching strategy?

Vocareum provides all the supporting infrastructure for my courses: from hosting Jupyter Notebook with the learning management, to automatic grading via nbgrader, and peer reviews.

Automatic grading enables us to check the student results with some tolerance, then engage in a discussion about a particular methodology.  Being based on nbgrader is very convenient.

We also use Vocareum’s peer review feature.  While students may resist reviewing other students’ code, it can be a very worthwhile exercise. Anyone looking to work in an industry job or in an academic job where you are writing code must be to be able to read someone else’s work.  And, any time you have the ability to get comments from peers, and not just instructors, it improves the overall learning experience and prepares students for their future careers.

These features really help enhance the overall classroom experience.

What advice do you have for other instructors getting started with Jupyter?

Good question. Just last month, I participated in a book sprint and co-authored a book on using Jupyter in education. Your readers can check it out at https://jupyter4edu.github.io/jupyter-edu-book/

I think the biggest challenge that I face is that we have a bimodal distribution of students: some are quite adept with Computer Science and coding and others that are good at Mathematics, so you have to be aware of both, and it can’t be all analysis and can’t be all coding.  I encourage my students to work together and help each other.

There are also pitfalls for students getting started. For example, the out-of-order execution aspect of Jupyter notebooks can be difficult at first.  I don’t know how many times I’ve heard a student say it worked in their environment, but it doesn’t work on the submitted notebooks. The state was unknown, so it was not what you’d expect. Instructors really need to address this upfront and get students to understand.

Along the same lines, it is also a good idea to teach student proper notebook hygiene. Just as it is important for them run their notebooks from beginning to end, it’s equally important for them to clear their outputs before sharing their work with peers or submitting their notebooks for a grade.

Side Note: Vocareum recently added a user option to clear outputs before launching their notebooks.

You were one of Vocareum’s earliest adopters of Jupyter notebook.  Now, roughly 70% of the coding on our platform is happening with Jupyter notebooks, including in Chemistry, Math, and Physics.  Where is this headed?

I’ve been using and teaching with Jupyter notebooks for the last 6 or 7 years, pretty much when it started, and the growth has been amazing. Now, the data science craze heavily uses Jupyter, so it’s not going to stop any time soon.

In research, there is interest in using Jupyter-style interactive computing in even more creative and innovative ways, including  easier Kubernetes-like setup or using the built-in parallel computing capabilities. From a teaching perspective, we are going in the direction of Big Data, so infrastructure and cost becomes a factor.

So, we are already taking steps to make our platform even easier for educators and researchers to use, including a recent announcement with AWS Educate. We are getting really good at delivering compute at the right abstraction whether it’s sharing some compute, or dedicating a spark cluster, or making GPU available, so that it’s both easy to use and inexpensive, meaning we make it available when needed and we shut it down the right moment.

As the data science trend continues to explode in popularity, keep your eye on Jupyter-style interactive computing. The implications for both CS and non-CS learning and research fields are significant. Today, the e-learning infrastructure provided by Vocareum is making it possible for students at Columbia University and beyond to learn how to use the tools of tomorrow.

Learn more about Vocareum and our cloud learning labs.