Lorena Barba is an associate professor of mechanical and aerospace engineering at the George Washington University and a leading proponent of Project Jupyter in university STEM education. Project Jupyter is the recent rebranding of IPython, an interactive notebook environment for Python programming.
Lorena has been involved with some very cool and innovative uses of Jupyter notebooks, perhaps most notably an Open edX MOOC on numerical methods that she coordinates (#numericalMOOC) which famously only contains two videos, with the rest of the course organized around student engagement with a series of Jupyter notebooks. I've been following Lorena Barba on Twitter and Google+ for a long time (in social media terms) and I am very happy to have her as a guest here for an interview.
Q1: Tell us a little about #NumericalMOOC. What is the course about, who was your audience, what were you hoping to accomplish with it, and how has it gone?
The conception for this project stemmed first from a conviction that we don't need to go through West Coast start-ups or East Coast non-profit corporations to lead a MOOC. Luckily, the Open edX software was released as open source in mid 2013, so anyone can set up a MOOC platform, with a good tech partner. Of course faculty have been sharing courses openly in other platforms, but Open edX is a full-featured app, scalable to thousands of users, and truly open source.
The course itself teaches a foundation in scientific computing for engineers, at Master's level or advanced undergraduate. I was tasked to teach this course on campus at GW for the first time in Fall 2014, and we launched the MOOC at the same time. The course design follows a structure that I have used before and works really well for complex topics: chunk up the course into somewhat self-contained modules, each composed of small, achievable steps leading to one satisfying result, plus a micro project as assessment. Being about numerical computing, I knew I would use Python as the language and IPython (now Jupyter) notebooks for the content. Each notebook to a lesson, four or five lessons to a module, and five course modules, and we have a "course."
Knowing that online learners have many other things to do and few reasons to "complete" a course, I decided we would award an open digital badge for each module, instead of a course certificate. The final ingredient was persuading a couple of other instructors teaching similar courses at their institution to collaborate in the MOOC and invite their students to join with mine and the followers from around the world. I was looking to form a community around the course.
I am really happy with how it's turned out, and especially proud of the content we created on Jupyter notebooks with my PhD students (whom I recruited as TAs). More than 5,600 people registered so far, and sign-ups continue. Right now, I'm teaching a second run of the course on campus at GW, and invited course followers online to jump back in on the same Open edX platform and course instance we started last year.
Some do appreciate the invitation:
Q2: You chose to structure the course around a sequence of iPython notebooks that students play with. Two related questions here: First of all, why Python and not another language like MATLAB? Second, why iPython notebooks and not some other medium for Python programming?
I once wrote a blog post titled "Why I push for Python" that explains my reasons for choosing this language. First, some history: Python was a successor of the ABC language, which was intended to be for teaching and prototyping. Python has teaching in its DNA: it's very good for learning to program for the first time. Quoting Andrea diSessa (Berkeley): "...small differences in learnability can make huge differences in eventual impact." Second, Python is a real, general-purpose programming language: you can do numerical computing, build a website, interact with databases, or crawl the web with Python. For this reason, it adds a solid skill for jobs. And to be clear: Matlab is not a general programming language; it is a domain-specific language for matrix algebra. Try and do some string manipulations in Matlab, and you will suffer; and no hope of doing any web stuff with it. Besides, Python is free. And open source.
Jupyter (previously IPython) notebooks are a killer app in STEM education, in my opinion. I've made up a name for this: computable content. When teaching a course, the most basic thing we do is share content with students. In the most primitive fashion, we can share it by writing on a blackboard while students take notes—the lambasted lecture. Modern instructors use multi-media content: printed notes, graphic-rich websites or blogs, videos of many kinds, etc. Jupyter notebooks combine all of this with computable parts written in Python (and/or other languages). This brings a huge opportunity to interact with the material and use computing to construct knowledge.
My experience with Jupyter notebooks is that students engage with the material in an almost tactile way. Manipulating a piece of code, experimenting with parameters in a problem, then reflecting and discussing the output makes for an active learning experience that works. The best results occur when students start creating their own notebooks, either documenting a mini-project or for note-taking and experimenting with code. I encourage them to do it, and it takes a lot of cajoling, but when they start doing this, I know I’ve reeled them in and they will succeed in the course.
Q3: You write an article about the course called "Why my MOOC is Not Built on Video" in which you explain, well, why your MOOC was not built around videos. In your opinion, what is the proper role of video in a MOOC or an online/hybrid course in general? Do you think that role applies to lectures in general, even in a face-to-face in-seat course?
Video is a persuasive and efficient medium to communicate information. It is also useful to show procedures (like how to fix your headphones) and objects or places that are not at hand (like a walk-through an archaeological site). Slow motion, animations, music: all these are valuable in some topics. The problem is that a lot of the video I see in online courses is none of these things. Most of the time, it's a recorded lecture. And they are not used sparingly: you see whole courses based on a string of video lectures and some assessments. This is just primitive.
Another problem is the insistence from some quarters in spending lots of money in so-called production value. I worry about this for three reasons. First, there is absolutely no evidence linking production value with learning. So it quickly turns into an extravagant exercise of edutainment and content marketing. Second, it costs a lot of money. This means that only rich universities can create online classes of that sort. For this reason, I view calls for high production value as elitist. And third, we enter into the murky area where significant university resources are used to create the course and the faculty may lose the copyrights. If universities want to make a documentary with a professor, and keep the copyrights, then there should be negotiated royalties, because it is a creative work, not regular teaching duties. The situation is very concerning and a threat to academic freedom.
In sum, video can be great, but we should be careful not to overuse it, nor to heed the voices of third parties that do not have teaching and learning as first priority. Any medium can be used effectively or not, can be virtuous or wicked. Video in online learning is ineffective when it reproduces the passive lecture, and it is wicked when commercial interests prevail over educational ones.
Q4: How well do you think the structure of your course, with the emphasis on student work with Jupyter notebooks, generalizes to other mathematics classes? For example, is there a version of this structure that would be good for a calculus class? Or a remedial algebra class? And do you think it matters if the course is face-to-face versus online?
I'm convinced the format would work well in many STEM subjects. Calculus, algebra, statistics for sure, even thermodynamics and fluid mechanics. Students will need to complement it with the usual hand-written notes and diagrams, of course. Using a new technology for learning does not mean we need to ditch the other technologies that we know and love. (Except for the straight chalkboard lecture because it doesn't work.) Other concerns still apply: if the course is remedial, or if the population is disadvantaged, then mentoring and social frameworks for learning are vital. It doesn't matter if the course is face-to-face, online or hybrid. Well, I guess it has to be hybrid at least, because the Jupyter notebooks will be online. They serve as a tool for blending the classroom.
Fundamentally, I would like to see computation embedded in the learning of STEM subjects from early on. I previously quoted Andrea diSessa in his book "Changing Minds" (2000). He tells the story of how Calculus became infrastructural in science and engineering education. It happened in the early twentieth century when some innovative universities decided to introduce calculus early and universally. Their success encouraged other universities to adopt teaching calculus to all technical students, and now it's standard. The same could happen with computing. DiSessa says in his book: "We may now have sufficiently learnable and powerful computational inscription systems to have dramatic literacy implications." Fifteen years later, his vision is not realized, but the explosive uptake of Jupyter notebooks in recent years is very exciting. Now we need the few innovative universities that decide to use this technology universally (for a broad cohort of students) and prove the impact it can have. I'm certainly lobbying for that at my institution, but I need more traction with other faculty.
+1 (BONUS QUESTION) What other question should I have asked you?
Why do you advocate so strongly for open-source technology in research and education?
First, we should agree on what we mean by open source and "open" in the context of education. Free and open-source software (FOSS) is a human invention of tremendous impact. It poses an alternative to intellectual-property instruments that are limiting and want to control how a creative work is used. Open-source licenses allow people to coordinate their work freely, within the confines of copyright law, while making access and wide distribution a priority. I've always thought that this is fundamentally aligned with the method of science, where we value academic freedom and wide dissemination of scientific findings. (Note that "free" in FOSS refers to freedom, not sale price.)
It's a long tradition in science that publication of scientific findings should be accompanied by detailed description of materials and methods, such that another scientist may be able to replicate the findings. Today, a great deal of science relies on software. A recent survey of the UK's Software Sustainability Institute found that 7 out of 10 researchers in academia agree that they could not carry out their research at all without software, and that 92% use software in one way or another. I frankly cannot see how one can publish a scientific finding that relies on software, without the source code of the software that generated the findings also being public. The code is part of the method and findings cannot be replicated without it. So in my research group, we release all code that we've written to do research.
In education, "open" also carries the meaning that the copyrighted work is free to use, distribute and modify. Lately, this meaning has been eroded to include only free access, and I take issue with this. In many MOOCs, we see "all rights reserved" all over the content: this is not open.
Openness in education serves a pedagogical purpose, no less. The view of connectivist knowledge sees it created by interacting individuals in a personal learning network. Learning by forming connections (between concepts, people, actions, objects, etc.) is made richer by open sharing, especially with learners creating derivative works, and sharing these too. The open-source software communities have really shown us how the coordinated labor of many, sharing their products freely, produces great advances in technology, and so it can happen in education.