Been a little while since I blogged. Well, being first year faculty is hard.
In this blogpost, I’m going to tackle what worked and what didn’t about courses I offered. Particularly, I’m going to focus on Spring, since that’s when I added courses to the books (Systematics lab and a bioinformatics component of a genomics course).
A brief note about the set-up of our institution. I’m at a primarily undergraduate institution (PUI), which means I’m heavily incentivized towards course development. Course sizes are pretty small at a school like this, and so I can get away with a lot of personal help and personal feedback to students. Some of the materials (particularly the RevBayes tutorials in the Systematics lab) have been used in classes of >50, but beyond that, scalability is not something I have thought much about.
- Integration of good computational principles with the course content. Both courses started out going through the Carpentries UNIX shell and Git lessons. All the software we used this semester was command-line executeable, and that is very much the norm in biological computation. It’s fine to not be a shell expert and do all this stuff, but things are much smoother if you do have some expertise in navigating directories and managing data.
- Superb HPC support. Public institutions in Louisiana have access to LONI, a high-performance computer cluster run out of LSU in Baton Rouge. The facilities offered are varied and met our needs well, from having availability of interactive single nodes for live-typing demos to big mem nodes for running assemblies overnight. They’re really eager to see adoption of HPC at the state PUIs, and so we got really excellent customer support for getting things figured out on the fly.
- Backending with Github. Using revision management for text documents is very standard practice in much of my training. For the plain text lab materials, data and scripts, it doesn’t really make sense to do anything but. Backending with github also meant that every day, we would log into LONI, start an interactive session, and then do a git pull and get the day’s materials. No need to work out other storage bins or dissemination for materials. Each lab (example here) had its own directory in the course repo, and the learners would just copy that into their user directory.
- Less is more. For both classes, I did fairly minimal slide decks. We spent a lot of time discussing in both classes. I’d estimate that each lab period for systematics, we spent about 1 of 3 hours just talking. Asking questions, answering them. And that where real learning occurs. I’m always clear on something: you learn as much from your peers, their questions, and their research, as you learn from your instructors. So we need to take the time to encourage that sort of interaction.
- Plugging into existing structures. The last month of systematics was basically RevBayes. I work on and with RevBayes and maintain one of their tutorials. I hack on these tutorials, contribute to them, and use them. They’re precise, they work well, and are really amenable to whatever lecture stuff you want to add. It’s a better use of my time not to re-invent the wheel. And it’s good for the development team of RevBayes to be able to show classroom penetrance of the software and instructional materials. This also meant that I had community: I felt very comfortable in front of my systematics class, not just because I’m an expert in that topic, but because I had a support community to bounce things off of.
- Great subject matter. I love phylogenetics. A lot. I like showing people the first steps of computation, and helping them not be afraid to become independent and try new things.
- Great co-instructors. The bioinformatics component I taught was in a genomics course lead by Dr. Raul Diaz. His lectures were really excellent, and I learned a lot about genomics from him. And he’s a true biologist. I don’t find genomics and bioinformatics inherently interesting, but the biology is right in my wheelhouse, so having him ground the course so strongly in the actual messy stuff of biology was excellent.
- Great students. This material is not easy. This was my first time being at the helm. This could have been much harder if our learners weren’t engaged, interested, and (crucially) willing to roll with the punches.
- Backending with GitHub: I should have done several things:
- Make sure I add more things to the git ignore file so learners don’t develop conflicts
- Review Git and GitHub more actively throughout the semester. Particularly conflicts arise, and it’s hard to recall how to resolve them if you’re not using Git outside of class. And new situations arise – suddenly, you might have large files that you probably shouldn’t commit. So I need to do a mid-semester revisit of Shell (for file transfer) + Git.
- Figure out how to edit my template better. WHY AM I SO BAD AT THIS.
- Software installs. This was fine for systematics – everything is some combo of git clone –> cd –> ./configure –> make. Most software builds in 5 minutes. And that’s a vital skill for people who will be doing cutting-edge research! But bioinformatics software is chaos! Everyone has some wild install thing, and it takes super long. I’m inclined to do more requesting of things to be installed as modules, but like I said, installing software is a crucial skill. I’m at a loss here, and would love to hear from all of you.
- Less is more: I was better at living this in systematics than bioinformatics. Next time, I’ll start from a more reduced set of materials and add in more project time. I think 6/10 times I felt frustrated this semester, I was frustrated because I was putting too much pressure on myself to cover too much stuff. The other four I was installing software.
- Debugging. I need to revamp how I discuss debugging and error-handling. There was a real patchwork in how independent became. Some students were doing marvelous independent work, others were still struggling with figuring out how to deal with error messages. Kate Hertweck on Twitter posed a prompt about developing better materials for introducing googling and debugging. I think I have some funds to get people together for a short meeting on this; stay tuned. I think this will go a long way towards helping people be independent.
- Learning from each other: Since homeworks were turned in via GitHub, they were public (feedback is not), and I should have reminded learners to read each other’s. Everyone comes from a different experiential and empirical background, and those contrasts are very informative.
- Slides: I’m still really dependent on Keynote, and I’d like to break that habit. But it was just too much right now. Maybe next time.
Overall, this was a great semester. I did a lot of work I’m proud of in both these courses, and I have a solid foundation to improve on in the future. Because I’m TT faculty, I have many course iterations to make those improvements. That’s the ideal situation, and the one learners deserve: one in which instructors are engaged in material development and have job security to know that we will be here to make improvements for the future.
I really can’t say enough good things about the learners. I had a lot of proud moments when students emailed to ask about pieces of software we hadn’t used that they had compiled on their own, and needed some help to get started. I don’t know every piece of software, but I can read a paper, understand something, and give advice. And giving that help and advice is much easier when we have a collaborative relationship – the student has done some reading, has tried something, has maybe failed, and is prepared to ask pointed questions. Watching students go from being stuck in point-and-click interfaces to being able to read the latest research, say “Hey, that’s a good approach and I’m going to try it”, then compile software, move data around on a remote machine, and actually do it (maybe with a little help) remains one of the great joys in my job. I’m not always the most demonstrative with that joy, particularly being so pregnant and so tired, but it’s there, and I feel it, and it keeps me going.
I might update this when my student evals come in. Hopefully I can share some thoughts this week on setting up a computational research lab in a low-income state, where student access to personal computers and laptops is a challenge. Or I might go into for-real labor and never think about this blog post again. No way to know.