Teaching basic lab skills
for research computing

More Thoughts on Better Teachers

Over the last few weeks I read Greg's blog post on Building Better Teachers and watched his Scipy keynote and I've been thinking a lot about how can instructors share their knowledge.

My story is the following. I graduated from Vassar College with a degree in Mathematics and New York Teaching Certification for Secondary Education (that's middle and high school) also in mathematics. Though this certification, I spent 2 semesters observing 2 different classrooms twice a week and 12 weeks student teaching. As a student teacher I worked with one teacher, shadowing them and eventually taking over the lesson planning and teaching of all 5 math classes. While we discussed teaching and lesson planning, I do not believe we engaged in the deep discussions of the Japanese instruction. We definitely were not talking until 8pm (I can't imagine how you could plan lessons for the next day, grade, and carry on that level of discussion). I left student teaching with the distinct impression that I was not ready to devote my life to teaching high school. I scrambled for a new life plan and found my self the following Fall pursuing a Master's degree in Astronomy.

For my Master's degree I was introduced to very basic programming in Fortran 77 and taught myself IDL. It's time for a confession. The code I used for my thesis was not version controlled, there were no functions or classes; it was one long piece of code. Also, I have no idea what version I ultimately used to publish my thesis. It wasn't that I didn't want to program better or use version control, I had never heard of anything remotely like SVN or functions.

Armed with a Master's degree in Astronomy I started working at the Space Telescope Science Institute. Here I learned Python (although not really functions) and finally, in September 2011, Greg came to teach Software Carpentry. If you look at my code, you can see the day I took SWC because I started writing functions. Greg taught us Subversion and I really liked the idea, but figuring out how to set up a server for myself was a barrier I never made it over (to be fair I never tried).

Greg recruited Matt Davis to teach SWC, Matt recruited me and I suddenly found myself signed up to teach SWC in Edinburgh in December. This before instructor training existed, Greg had never seen me teach, I had never observed SWC from a teaching perspective, and it was all new and terrifying. I quickly asked Erik Bray if I could tag along a bootcamp at George Mason University, just to give me some experience before being the US SWC representative to Edinburgh. It all went pretty well, I learned a lot, and met a great new group of people.

From there I've had the pleasure to teach with Matt Davis, Tracy Teal, Alex Viana, Chris Lonnen, Rachel Slaybaugh, Mike Jackson, Justin Ely, Erik Bray, and Greg. For me SWC represents everything that I love about teaching, inspiring students and sharing useful information that I wish I'd had, but without the things I hate (grading, students who do not want to be in class, writing tests, etc). It allows me to continue working on science and teaching (I'm still not ready to devote my life to teaching). I also learn something new at every SWC bootcamp I've taught. Seeing a different instructor teach material you've taught a different way is great. You pick up on things that they teach better and you can see what you like. I especially like the stories that Greg tells. They aren't quite the same when I tell them since it is second hand, but they are still great nuggets.

So now that you have a history of how I came to be the person that I am today, here are my thoughts and challenges on communicating teaching skills, specifically in the context of SWC:

  • First - in his keynote Greg asked why do teachers not share materials. I think some of it is that teaching is very personal. It is one thing to copy the teaching style of someone you are inspired by, who you have watched teach, and another to be handed something that someone says, "This worked for me." People teach with different styles. Everyone has developed their own way. How you distill down the "right way" or the "best way" is highly subjective. Many of our SWC discussions end with a bunch of ideas being thrown out and no final conclusion reached. I think this makes it difficult to collaborate on a single set of material without some oversight and ultimate decision making from someone. I've also found myself asking - is this change a personal preference or does it make the material better?
  • This is a challenge for SWC. Our repository is filled with great ideas, but lacks the cohesion of a single path. This allows those familiar with the whole repository to design an individual curriculum for each bootcamp but it leaves those not familiar with the repository without a clear curriculum. When I taught intermediate Python, I dove into the material in the repo, but ended up rearranging a lot of it. We are in the process of synthesizing that material. But we've run into questions such as: should we be teaching numpy or pandas? The answer to this will vary person to person.
  • Another confession: I don't know what is in the repo. Each bootcamp I look at another lesson, but I haven't had time to comprehensively look through everything. I took my instructor's training with the first class in the Fall of 2012, a lot has changed since then. I would like to see a streamlined repo. I believe that involves a new definition of our target audience (s?). What does a typical bootcamp look like. Is there such thing as a typical bootcamp? Is there a typical bootcamp for a particular field? For instance, when I teach astronomers I usually skip the shell section or give a very short advanced section, the Python is from the intermediate directory and the version control is from the beginner directory. I think it is rare for a bootcamp to be taught entirely from one level's directory and this format is confusing to students and to new instructors. If I wanted to look at the material most useful to my bootcamp, where would I find it?
  • Even with a streamlined repository, I think we need a way to keep our instructors up to date on new developments, whether they are improvements to the lesson plans, new materials, or new techniques.
  • I would use the bootcamps as a time to bring people together. You have at least 2 instructors who have likely never taught together planning material, executing it in front of each other, and leading a class through the material for 2 days. In every bootcamp I've taught I felt like I was pushing for this connections. Let's talk about what we are going to teach, how the bootcamp will go, do we want a capstone project, should we teach testing or code review. This is a time for people to connect with each other person to person and share their experiences. At the end of each day, the instructors should check in with each other. What went well, what didn't go well, what could we do better next time? Do we need to change the schedule for tomorrow, do we need to rearrange the classroom?
  • I see helpers as instructors in training. It used to be that to be an instructor you had to either complete the online training or have been a helper 3 times. Even those who have taken the instructor training but who have never taught may want to be a helper at their first bootcamp. As an instructor I ask my helpers if they would like to take a 15 minute chunk of a lesson and teach the class. This gives them a taste of teaching but doesn't derail a section if it doesn't go well. I would like to see more of this.
  • I would like to see a mentorship program. I know this is on the to do list and there are complications such as who should be a mentor and should every new instructor have a mentor, etc. A mentor/mentee relationship could provide one-on-one interaction between instructors. A mentor could comment on a lesson plan before instruction, answer questions the mentee may have, and provide a sounding board for new ideas or frustrations. I could see a mentor watching a lesson via Skype (or hangout) and providing feedback. I can also see a mentee reporting back on a bootcamp.

Finally, I want to share this with you. I heard a fascinating piece on the TED radio hour: Unstoppable Learning by Sugata Mitra on children teaching themselves to use a computer with no instruction. In it he says: "If you allow the organizational process to self-organize then learning emerges. It is not about making learning happen, it is about letting it happen. The teacher sets the process in motion and then she stands back in awe and watches as learning happens."

This is the role I see SWC taking in the lives of all of our students. We don't have time to teach everything, but we have time to set the process in motion.

COMMUNITY · OPINION · TEACHING

Dialogue & Discussion

You can review our commenting policy here.