Teaching with a Jetpack
Todd M. Gureckis · · 10 minutes to readNote
This post was published originally on the lab blog.
In 2015 while on sabbatical in Berkeley, CA, I stopped by a small book store came across this interesting looking booklet titled “Education Automation, Freeing the Scholar to Return to His Studies” by Buckminster Fuller.
The cover was attractive (as is the concept of "freeing the scholar to return to his studies") and so I went home and read the book which, it turns out, is interesting in the way that futuristic books from the 1960s often are (including what are... uh... regrettable assumptions about who could be a professor). However, one passage really stuck with me and so I will recreate it here:
“I am quite certain that we are soon going to begin to do the following: At our universities we will take the men who are the faculty leaders in research or in teaching. We are not going to ask them to give the same lectures over and over each year from their curriculum cards, finding themselves confronted with another roomful of people and asking themselves, “What was it I said last year?” This is a routine which deadens the faculty member. We are going to select, instead, the people who are authorities on various subjects‹the men who are most respected by other men within their respective departments and fields. They will give their basic lecture course just once to a group of human beings, including both the experts in their own subject and bright children and adults without special training in their field. This lecture will be recorded as Southern Illinois University did my last lecture series of fifty-two hours in October 1960. They will make moving picture footage of the lecture as well as hi-fi tape recording. Then the professor and his faculty associates will listen to this recording time and again.
“What you say is very good,” his associates may comment, “but we have heard you say it a little better at other times.” The professor then dubs in a better statement. Thus begins complete reworking of the tape, cleaned up, and cleaned up some more, as in the moving picture cutting, and new illustrative “footage” will be added on. The whole of a university department will work on improving the message and conceptioning of a picture for many months, sometimes for years. The graduate students who want to be present in the university and who also qualify to be with the men who have great powers and intellectual capability together with the faculty may spend a year getting a documentary ready. They will not even depend upon the diction of the original lecturer, because the diction of that person may be very inadequate to his really fundamental conceptioning and information, which should be superb. His knowledge may be very great, but he may be a poor lecturer because of poor speaking habits or false teeth. Another voice will take over the task of getting his exact words across. Others will gradually process the tape and moving picture footage, using communications specialists, psychologists, etc. ” - R. Buckminster Fuller (1962)
Strap on the Jetpack and Let's Fly
There are two interesting ideas here in Bucky's booklet. The first is a bit like the concept behind TEDTalks or something where a "master" delivers the highest quality and slickly produced lectures to the masses. However, for me, the second paragraph is where the magic is. The idea of professors over time refining and chopping up the lecture of an earlier version to fix a problem or update a text so that over time it becomes better sounds great. Further, the idea is that this improvement is not necessarily entirely done by the original author but by a community of scholars and educators working to improve the content. In 2015 it seemed cool and even inevitable (open source, open science, open everything!), but how would that work for me personally?
Well, fast forward several years and the department at NYU asked me to update our lab courses to be a bit more technical. I wanted to do this course and pull it all together but I immediately was overwhelmed. There’s so much material to pull together and like you need another sabbatical to do it well really. However, around that time I became aware of an outstanding textbook for doing statistics in the R programming language by Danielle Navarro. Danielle is a firestorm of intellectual energy and this book was already light years ahead of what I would be able to do myself. However there is one really interesting point mentioned in the first paragraph on the cover of this online book “The book is freely available, and as of version 0.6 it is released under a creative commons license (CC BY-SA 4.0).”
CC BY-SA 4.0 is Jet Fuel
For those that don’t know CC BY-SA 4.0 is one of several open-source licenses that software developers and other creators can use to release their work to the world and allow it to be modified. In this case, the specific code, CC BY-SA 4.0, means you are free to “share - copy and redistribute the material in any medium or format” and more importantly “Adapt - remix, transform, and build upon the material for any purpose, even commercially” so long as you "1) give appropriate credit including a link to the license and indicate if changes were made" and "2.) ShareALike - if you remix, transform, or build upon the material, you must distribute your contribution under the same license as the original."
This is lots of words to simply say that Danielle not only made a great book on statistics using computers and research design but also granted me a license to edit this book, add my own perspective or materials, and then allowed me to reshare that as my own textbook, provided I release my new book under the same license. So that’s what I did.
What I did and How I did it
Danielle's book was written in a format called RMarkdown. This uses a lightweight markup language called Markdown combined with in-line R-code. RMarkdown is amazing and many people use it even to write their manuscripts and their analysis code in a single file (preventing things like copy-paste errors in p-values and stuff).
For reasons which are probably incredibly offensive to Danielle, I decided to teach my course using Python. In addition, I am somewhat invested in the Python Jupyter infrastructure and NYU provides Jupyter computing systems for our students in my class. There is a nice open-source project called Jupyter Book which lets you use Jupyter notebooks as an authoring tool to build a simple web-based textbook which can be shared as a website. Jupyter also uses the Markdown language so it is easy to basically copy-paste text and other elements from an RMarkdown file to a Jupyter notebook. This is a lot of technical jargon and it doesn't really matter. There are some file conversion and formatting I had to do is the basic story here not unlike converting from a PDF to Word or vice versa. Takes some time but not that bad.
So converting between RMarkdown to Jupyter was an extra step, but the next step was to update many of the exercises and examples to be written in python instead of R. This was a fun exercise for me and actually taught me that Python’s data science and statistical packages were starting to be line-for-line on par with R.
But more interestingly with several chapters provided by Danielle, I was able to focus my course prep energy on completely different aspects of the course. While Danielle’s book is mostly a survey of statistics, my lab course reviews this material and then moves to other things like analyzing fMRI data or performing experiments on mental rotation, etc…. So the overlap between my course and Danielle’s was only partial but it was a huge help to get a very high-quality start on the basics. This is remixing in the purest form.
Isn't it easier just to assign readings?
All the above is to say I did a lot of file formatting and stuff to make the materials "my own." Did I really need to do that? Don't most classes just assign a PDF or "read chapter 3 of the textbook"? Maybe I could link to Danielle book? Yes, but there's never a satisfying fit for things like this. PDF readings sometimes are great but sometimes drag on or cover things you don't want to spend time on. Danielle's book is awesome, open, fun to read, free, but also in a different computer language than my students were learning. How confusing would that be? "Read this chapter but ignore the code we are using something different" is not a helpful message for a beginning programmer. The chapters from a traditional textbook might be good but one section is really bad and you wish that it wasn't there and confusing everyone. In the end, the entire idea here is about incremental improvement AND customization. So I have a textbook for my class that has the same style, format, content, references, and flows naturally and in an organized way. Students appreciate that extra touch.
What about lecture slides?
Around the time of first teaching this class, I learned that my collaborator and friend Matt Crump had also developed a course at Brooklyn College and he had done the same thing (even building upon the materials from Danielle!). It is important to mention this because I definitely didn't invent this open teaching concept and many are pursuing it. However, one interesting point is that Matt also made lecture slides for his course to go with each chapter and released these also under the CC BY-SA 4.0. So I was able to download Matt’s lectures, as well as some modified chapters he added to Danielle’s book to add to my course. Now I was hooked because I was getting really nice lectures and reading on topics I wanted to teach, for a course with no real precedent at my university, and it was all going much faster than I could do myself.
What else is out there?
This made me realize that there are many other resources out there besides statistics textbooks that are released on CC BY-SA 4.0. For instance, I found other great materials for Luke Chang and his Dart Brains project. I found data science tutorials from companies and organizations trying to teach data analysis to their clients, customers, and employees which were very helpful. There are several Jupyter notebooks teaching introductory Python programming tutorials. I found slides for sources online from other people. Then I started reaching out to people. David Heeger in my department has a nice web tutorial on Signal Detection Theory and although not released under any particular license he gave me permission to extend it into something for my course.
How it went
In the end, I put together so much material that basically in one semester I wrote a draft of a new “book” to go along with my lab course, written entirely in Jupyter notebook and using Python. I have way more chapters and material than I can cover in a single semester and so I have tended to swap things out across different semesters of teaching to see how different materials work. I continue to refine it by teaching it again and again and I am slowly, with more time, adding more customized and original chapters to the material, dropping or adding small sections from the original chapters and materials I “adapted” from, etc… It has the feeling of teaching but like with a jet pack on because you can provide the students with high-quality materials, these materials are free to them (like they can just download the chapter or bookmark it), and you can focus on other parts of the course.
Here are links to the course webpage which includes all my slides and also the new "textbook" i was able to pull together across successive times teaching it:
The github link for the most recent version of all my materials is here.
A couple of positive outcomes. One, the sophistication of the course rapidly jumped forward. Two, each semester I encourage the TA of the course to help me co-write at least one new chapter (thanks to Hillary Raab and Kelsey Moty as well as Shannon Tubridy). This gives them a learning opportunity but also has incrementally reshaped the course to be more and more like my course and less and less anchored in the original materials I borrowed from. Three, even other faculty at NYU have contributed to my course materials (e.g., Denis Pelli teaches a similar course and we have shared material back and forth). Fourth, the chapters are in some ways modular and so other faculty have expressed interest in taking a few of my materials on one topic and adding it into their course.
Students seem to like it but it is hard to tell how much the completely new structure and format of the materials contribute. However, anecdotally I think the students perceive the course to be extremely organized and of higher general quality because the materials draw so effectively from so many different sources and minds but also are knitted together into something that feels very custom and specific.
Concluding thoughts
After doing this, I’m now somewhat of an evangelist for this approach. I'm definitely not claiming credit for the idea, in fact, this is a big movement and many people are doing this and even have been for some time. I started this up two years ago now but CUNY already received a $4 Million dollar grant to develop what they call "Open Educational Resources" in a large part to lower the cost of textbooks. This seems like a great thing to continue.
So I’ll end with just a few suggestion action items:
- If you found this essay convincing, please aim to release your course materials on your website or some other system (e.g., GitHub) using the CC BY-SA 4.0 license so that other people can build upon your work. Maybe your course isn’t perfect. That’s fine because even a start will help others.
- Consider searching for CC BY-SA 4.0 materials (or stuff released under similar licenses) and remixing them into your own classes. It is 100% legally legit. It is fun. And it can help fulfill the vision of Bucky Fuller!
- If you find materials online and are unsure about the license please check first with the author of the materials and get permission to remix-recycle from them. If you don't you can easily run into legal issues.
- If you find great materials online without a license you might explain to the people sharing them while pre-emptively using the CC BY-SA 4.0 (or related licenses) might be a good idea!
- One challenge I have thought about is when extensive revision/editing of an original source is conducted it can be hard to detail the changes. Ideally one would provide a line-by-line diff of what was added or subtracted. However, in my cases, Jupyter notebooks do not "diff" well from the RMarkdown files used by Danielle and Matt. As such a diff is not all that informative so I give a qualitative summary of what is new on each page where I sourced material and included a link back to the original projects. However, I'm interested to learn if this is the best practice.
Resources
Some example course materials that been shared with a open license such as Creative Commons include:
- Learning statistics with R by Danielle Navarro
- Reproducible Statistics for Psychologists with R by Matt Crump
- Statistics: Data Analysis and Modeling by Maarten Speekenbrink
- Dart Brains by Luke Chang which covers fMRI analysis using Python
- Lab in Cognition and Perception which is the github repo for my lab course in Python covering basic experimental methods.