Course improvement grant spotlight: “Cloud-hosted Python notebook for teaching biomedical signals and systems.”
|Will Grissom, associate professor of biomedical engineering; “Cloud-hosted Python notebook for teaching biomedical signals and systems.”|
Can you tell me briefly about your course improvement grant project and what inspired you to do it?
My course improvement grant project is to use a web platform called Pathbird to build a set of rich Jupyter notebooks that students can use to complete little coding exercises and answer questions inside a web page. It essentially allows them to interact with a Python instance where they can enter commands, write code to answer questions or to solve problems with short answer and multiple choice questions interleaved. I’m pretty psyched about it because it makes doing interactive coding with the students much more feasible.
Jupyter notebooks are a pretty widely used tool for data science but they’re not really made to be instructional. What this Pathbird company has done is added a bunch of additional Markdown commands, which is the language that is used to generate the nice text and stuff between the code in Jupyter notebooks. They basically added extensions to their markdown language so that you can generate these different multiple choice and short answer questions. It also allows different code blocks in the lesson, with auto graders.
Generally, there’s one section of the codex for each lecture. I’ll start by going through material on the board, then we stop and do these do these exercises at the appropriate times. They’re also using this for the homework so that way it’s all the same interface for everything. I’m also going to use it for the take-home tests. The point of doing these exercises is both so they so they figure out the math of the signals and systems that we’re working on and also so that they learn how to just generally do things in Python that are relevant to their BME work. They should be able to take these code snippets and apply it anywhere.
Can you tell us what impact you anticipated and what you’re seeing as you use it?
It’s early days still but I am seeing that all the students are engaged in doing these exercises. It used to be more open loop–I would do MatLab exercises more or less in front of them, post the code afterwards and ask them to do similar things in the homeworks. Compared to running MATLAB in-class, it’s a lot easier for them to get to this site when they’re actually sitting there in the classroom and spinning it up. They can do it on any device–it can be an iPad, it can be a laptop, whatever. They don’t have to do anything extra to get it running later, they just navigate to the same website again. Even the data they process is always right there and accessible; no file downloads or file system navigation necessary. I think it’s going to increase their retention and their understanding of the code that they’re using, and their ability to translate the code snippets that we visit in class into what they need to apply it to on the homeworks and the take-home tests. I also find that that it’s allowing me to focus completing the code on exactly what I want them to focus on instead of telling them to write a whole script that repeats a lot of stuff that isn’t really relevant to what they need to be learning. For example, I’ll tell them to fill in the sections where I put question marks. I’ll write out the actual code, and then I’ll just have them fill in the sections where there are missing pieces. That is what really tests their knowledge. Rather than, for example, having most of the code being the code to make the plots, which is very repetitive and someplace they can easily make mistakes that then screw things up, now I can have them focus more directly on what it is that I want them to take away. Grading is a lot easier too since there’s more consistency between solutions. I really think it enhances the signal of the lesson and reduces the noise.
What recommendations do you have for others who might want to apply for a course improvement grant?
I would think about think about what kind of technological or device kind of improvements you could make to your course that would address one of your biggest challenges right now. I really had a specific tool in mind that I wanted to use that I knew was not going to be free. I found this tool when I used it as a student in an online machine learning course in the spring.I really liked the experience of it and had in mind that I was going to try to integrate into my course this fall. I thought would give mea lot of bang for the buck in terms of integrating it into my course, because a major challenge I’ve always had is engaging students to exercise coding enough in the classroom that they feel comfortable implementing the math that the course is really about in their code.
In one or two sentences, how would you capture your teaching philosophy?
I really like to have students do hands-on work whether it’s instrumentation-type work or coding and math-type work. I like to have them doing work right there in the classroom in front of me where I can interact with them and help them walkthrough those steps. Then offline I like to have them advance a step or two further. This really works like that for me; it allows me to have them doing relatively advanced stuff in person during the course meeting times. I generally really like teaching labs; this is not a lab course, but this tool makes it feel much more like a lab.