The Cold Spring Harbor Laboratory (CSHL) Single Cell Analysis Course (not to be confused with the “Single Cell Analyses” Meeting) for 2017 just finished a few weeks ago. I was a co-Instructor and was in charge of the bioinformatics curriculum. In some ways, teaching at CSHL is a perfect teaching setting because there are no distractions - the students are there exactly to just work on the course. However, many of the students had minimal programming and command line exposure so while they can completely focus on learning, they also have a lot to catch up on.
This post goes over some lessons learned from this experience. If you want all the teaching materials, I made a github repo containing all of the notebooks we used in the course.
As always, what you planned isn’t what actually happened.
To help prepare students for any possible single cell question they run into, I wanted to expose them to several papers’ different methods of analysis. I wanted paoers covering four common questions in single cells
Therefore in an ideal setting, we would have done: - Students read 4 papers ahead of the course - We recreate one figure from each of the papers - We’d cover all possible questions that could be answered using single-cell RNA-seq
I often let “perfect be the enemy of good” and would not fully reuse a lesson from last year because it was from last year’s papers, even if the concepts or programming commands were the same.
The way I designed the notebooks was there were two notebooks for each concept:
1. Explain a mathematical concept using images, animations, and
interactive Jupyter widgets.
1. Assessment: Class discussion, calling on
random_student() to explain
2. Show how the plot from the previous figure was created with complete
step-by-step breakdowns of each function and parameter
1. Assessment: the students have to apply the function in a slightly new way
or read documentation and add a new parameter
One of the hardest things about designing a curriculum like this is finding a good dataset to showcase all of these analyses on. It’s hard to find a single paper that covers all possible questions, but maybe that’s alright. I always have to remind myself that “good enough” but shipped is still better than perfect and unrelease.
The good thing is that these mistakes made me write out my learning goals for the different sections of the course. I remember now from Software Carpentry teacher training ( Lessons and Objectives) that I should have done this in the beginning, but hey, you live and you learn.