Everyone Loves a Good Argument: Encouraging the Use of Programming Languages in Biology

Tags: , , , ,

Categories: GSI Online LibraryTeaching Effectiveness Award Essays

by Eric Armstrong, Integrative Biology

Teaching Effectiveness Award Essay, 2016

In addition to providing the educational scaffolding necessary for life-long learning, we as instructors face an equally important challenge in preparing interested students for professional careers in our fields. In biology, the ability to analyze and visualize data is a central skill for success and is one of the key concepts emphasized in IB 158LF, a research-intensive field course in island ecology. Among the primary tools used by professional biologists to accomplish these tasks are programming languages such as “R” and “Matlab” which aid in statistical analysis and visualization of data. However, the teaching of programming languages like these is often avoided in biological courses because of their perceived unfamiliarity and difficulty for novice users. Indeed, the DOS-like screens of most programming software seem an ocean away from the charismatic creatures that draw many young biologists to our classrooms.

Introducing students to programming languages in a field-based biology course has its risks. Initial forays into coding can be discouraging, and have the potential to overwhelm student confidence and distract from the unique ecosystems courses like IB 158LF are designed to take advantage of. To avoid these pitfalls, I used a three-step method with frequent evaluation to help guide students through the basics of analyzing their original ecological research in the programming language “R.” This approach consisted of a series of short, focused programming lectures, a student-led group discussion of analytical methods, and an end-of-term individual written research report. Throughout these steps I used weekly individual meetings as checkpoints to evaluate student progress and understanding of programming arguments and concepts.

Students were asked to come to these meeting with two prepared questions or hurdles they had encountered in the previous week. This allowed for focused discussion on the programming method a student was using and allowed me to better understand the student’s analytical process. Most importantly however, these sessions allowed students the opportunity to describe organically, in their own words, how they intended to analyze their data (e.g. If my data contains the letter “A” then I’d like to do “X”), which made transitioning to the equivalent programming syntax (e.g. an IF/THEN statement) more intuitive. This frequent feedback also called attention to those methods in which my analytical process differed from student understanding, allowing me to evaluate my own teaching strategy and hone my presentation of topics in lectures.

For the group discussions, students were divided into teams based on experimental design and were tasked with writing code in R with which they could analyze their data statistically (using an ANOVA or T-test as appropriate) and display it graphically. This collaborative style of learning proved particularly effective and both the course instructors and I were inspired to see the quality of the figures and analyses that students generated from these sessions. However, perhaps the greatest reward of this teaching experience was learning that my task-focused approach to coding led one student to publish their course research paper with only minor edits in the professional quality, peer-reviewed scientific journal PLOS ONE. Thus, by dividing the task of coding into small, question-based sections, I was able to teach students how to use a valuable and complex professional tool in the biological sciences.