Goals for learning Bioinformatics programming online

The course I’ll work on first is BNFO 201 Computing Skills in Bioinformatics. It is an introductory python programming course for sophomore and junior level bioinformatics students. We created this class two years ago, and it’s time to reflect on how it’s working to improve student learning. I don’t teach the course, but helped design the course with a colleague, and we direct the course and make sure the course happens each fall. (The course has been taught by a talented staff bioinformaticist for the past two iterations.) I am also responsible for using program assessment to improve our courses and for making sure our undergraduate curriculum responds to the larger goals of our program learning outcomes. The Bioinformatics Program learning outcomes include very little content, but instead focus on behaviors and abilities displayed by scientists and behaviors and abilities that build life-long learning (quite reflective of this post). Finally, all of our bioinformatics courses require students to take an active approach to their own learning and include many opportunities for hands-on practice in problem solving. This is the background I’ll use to approach implementation of an on-line piece in our python course.

The goals of the class are to teach students how to write python programs to solve bioinformatics problems. That’s really a two-part goal of 1) writing python programs and 2) solving bioinformatics problems. We are finding the students learn the syntax of python programming but even at the end of the course are still struggling with problem solving- both in how to put their program together, and how to break down big problems into manageable pieces. This is a typical situation for undergraduate students, and an area that we need to address so students have time to practice in their junior and senior years.

As a first goal for online teaching in our program, I would like to identify or create an online system for students to learn the syntax of python out side of class so that class time can focus on teaching problem solving. This would be a sort of ‘flipped’ class approach to programming to create more active learning time in the classroom. We’d like to include more ‘algorithmic thinking’ in the course to help the students develop problem solving skills. Currently, the students have to write pseudocode in English before they start writing in python. We’ll have to work to build more structure into the class problem-solving process and perhaps find a framework to use, especially as their programs grow in complexity. I think this is very doable, so if folks have ideas to push us further, please keep them coming!

As a second goal, our students need more background in the science of the problems they are being asked to solve, and they don’t have class time to cover it. One of the reasons we created this class was to provide their first programming experience in an environment directly relevant to their interests in biology. But, the biology can quickly get more complex than the student’s biology background at the sophomore level. There are great resources we can pull together to provide context to the problems they are solving, which will also help their problem solving approach. This might be too big a goal right now, but perhaps there is an opportunity for us to create some of our own content here, in conjunction with our Nucleic Acids Research Facility or faculty doing bioinformatics research on campus, and the technology and approach to creating this material would have to be identified.

As far as course goals, I think the goals rewritten as essential questions are more inviting for exploration and learning. They lead me to want to try to answer them, to test my current state and think about what might be next. I do wonder if college students even read our course syllabi. We could certainly encourage students to care to read these things through writing them in a way that is more inviting. So, thanks for that push.

4 thoughts on “Goals for learning Bioinformatics programming online

  1. Allison there are a couple of resources you could provide to students to help them with learning python. VCU students and staff now have access to
    Lynda.vcu.edu which has a bunch of python tutorials, Codeacademy also has some python tutorials. You might find these useful enough to weave into your course

    1. Thanks Stan! I found lynda has a very cool theoretical intro to programming that is generalized to elements common to all programming languages. Very useful.

  2. It’s interesting that you identify the distinction between learning the syntax vs. developing real problem-solving skills. I suspect that’s a common issue in other types of courses as well. Interesting to see how it plays out here.

    Unrelated….you probably know of Coursera’s Python sequence but just in case… Don’t know if there’s anything useful there for you.

    1. It’s a relatively old approach from computer science, but also the transferable skill to real life. So I ended up focusing on the problem solving portion of the course in my week 4 search for resources. I was surprise that is the path I ended up taking this week, but as I was looking around that seemed to be the area I had more to learn. Take a look! I have much, much more work to do. There is a lot of material out there, and I still need to do a better job of connecting to some of those folks.

Leave a Reply

Your email address will not be published.