**On May 30th**, Prof. Barba presented at the Open edX Conference, together with Miguel Amigot II, CTO of IBL Education, the recent work to integrate Jupyter with the Open edX platform. The talk showcased two new Open edX extensions (XBlocks): one for pulling content into a course from any public Jupyter notebook (from its URL), and the other to integrate auto-graded assignments based on Jupyter notebooks, and the `nbgrader`

Jupyter extension.

Prof. Barba has been teaching with Jupyter for the last five years. Her first open teaching module using Jupyter was "CFD Python" (a.k.a. "The 12 steps to Navier-Stokes"), released in July 2013. In 2014, Barba developed and taught the first massive open online course (MOOC) at the George Washington University: "Practical Numerical Methods with Python." The course was written entirely as Jupyter notebooks, and it was self-hosted on a custom Open edX site (where it amassed more than 8000 users over 3 years). Since that time, she has been thinking about ways to integrate Jupyter with Open edX.

Open edX is the software platform used by the edX Consortium to serve thousands of online courses to millions of users around the world. —Read Prof. Barba's guest post in Class Central: What’s Open edX?

Jupyter is a set of open-source tools for interactive and exploratory computing. At the center of them is the Jupyter Notebook, a document format for writing narratives that interleave multi-media content with executable code, using any of a set of available languages (of which Python is the most popular).

The work presented at the conference is the brainchild of Prof. Lorena Barba, implemented by her tech partners at IBL Education. It consists of two Open edX extensions:

**Jupyter Notebook Viewer XBlock**—from any public Jupyter notebook (e.g., in a public repo on GitHub), pull content into a course learning sequence using only the URL, and optional*start*and*end*marks (any string from the first cell to include, and the first cell to exclude). This allows course authors to develop their course content as Jupyter notebooks, and to build learning sequences reusing that content, without duplication. It also has the added benefit that the development of the material can be hosted on a version-controlled repository. (Open edX, itself, doesn't provide version control of course content.) See IBL's post about the XBlock, and the code repository—the XBlock is open source under a BSD3 license.**Graded Jupyter Notebook XBlock**—create an assignment using the`nbgrader`

Jupyter extension, then insert a graded sub-section in Open edX that will deliver this assignment (as a download), auto-grade the student's uploaded solution, and record the student's score in the gradebook. The XBlock instantiates a Docker container with all the required dependencies, runs`nbgrader`

on the student-uploaded notebook, and displays immediate feedback to the student in the form of a score table. See IBL's post, and the code repository—the XBlock is open source under BSD3.

The two XBlocks are in use in Prof. Barba's newest online short course: "Get Data Off the Ground with Python."

- Barba, Lorena A.; Amigot, Miguel (2018): Jupyter-based courses in Open edX: Authoring and grading with notebooks. figshare. Presentation. https://doi.org/10.6084/m9.figshare.6553550.v1

Announcing the #Jupyter Viewer XBlock, #OpenEdx extension to dynamically display content from a notebook available on a public URL: https://t.co/yPP0gvn6My

— Lorena Barba (@LorenaABarba) April 25, 2018

We now announce the Graded #Jupyter Notebook Integration for #OpenEdx, in collaboration with @iblstudios: instructors can assign #nbgrader-instrumented notebooks in the #MOOC platform! https://t.co/1vz9NK5xHb https://t.co/rDywbvUPWb

— Lorena Barba (@LorenaABarba) May 15, 2018

Fantastic Open edX conference and talks about@GlobalKnowledge ‘s enterprise ecosystem from PoC to Pilot to MVP and@ProjectJupyter integrations

with the great @LorenaABarba , @tocatlian and @shellslocks #OpenedX2018 pic.twitter.com/EDZrmu6XJ1

— Miguel Amigot (@miguelamigot) June 1, 2018

This work is funded under NSF Award #1730170: CyberTraining: DSE—The Code Maker: Computational Thinking for Engineers with Interactive, Contextual Learning. Full proposal available online at https://doi.org/10.6084/m9.figshare.5662051.v1

]]>PhD student Natalia Clementi and Prof. Barba taught a 3-hour tutorial for high-school students for the *Caminos Al Futuro* program of the GW Cisneros Hispanic Leadership Institute. It was a hands-on tutorial titled "Data Science for a Better World," and it guided the students through the basics of using Python with data.

The students, who had never written code before, learned to use a Jupyter notebook to manipulate data in the form of arrays, visualize the data with line plots, and analyze it with linear regression. The context applications were the decreasing size of households in the US (leading to more energy consumption per capita), and the increasing earth temperature over time.

*Caminos al Futuro* is a Summer program for high-achieving juniors (rising seniors). The program aims to develop leadership and scholarship in the Latino community. Students are fully funded to attend.

]]>Exhausted but proud! We just taught with @ncclementi a 3-hour tutorial with #Jupyter, at #GWU Caminos al Futuro https://t.co/2FH0DdytmZ

— Lorena Barba (@LorenaABarba) July 18, 2017