While we plan to grow CodeStories into an education platform for all professionals who want more from their data, it is currently only available for students of InPyBio-20.


Our Team

Jessime Kirk, PhD

Creator and Developer

Started CodeStories in 2017 to help teach Python to life science graduate students.

Bioinformatics Engineer at Invitae.

Kimiko Suzuki

Developer and Instructor

Co-taught InPyBio-18 and InPyBio-19; helps with ongoing development efforts.

Bioinformatics and Computational Biology Ph.D. candidate at UNC-CH.

Paul LaFosse

Developer and Instructor

Co-taught InPyBio-17 and helped develop the first version of CodeStories.

Graduate Research Assistant at GMU.

Drake Jackson


The reason there aren't spelling mistakes everywhere.

Math Teacher in Spring Hill, TN.

David Lee, PhD

Beta Tester

Makes sure the app doesn't crash when you look at it.

Life Sciences Patent Agent at Kilpatrick Townsend & Stockton.

Our Story

How to Learn to Code at UNC-Chapel Hill

CodeStories began as a conversation in 2015 when a group of first-year life science graduate students at UNC-Chapel Hill took a taxing biophysics course that highlighted a couple of issues:

  1. Biological sciences increasingly rely on programming and data analysis to interpret data and understand experiments.
  2. The university didn’t have the training infrastructure needed to teach its hundreds of graduate students in life sciences how to program.

The students decided to organize and lead their own summer course. As someone who’d had those exact realizations a couple years earlier as a biochem undergrad, I volunteered as a cofounder to teach what I knew about coding at the time.

In order to keep class sizes manageable, we capped course registration at 60 students. It was full in less than two days. The six-week course was a huge success, with surveyed students indicating that they both learned a lot and enjoyed themselves. As will be obvious to many of you, six weeks is hardly enough time to fully learn how to program. The instructors were aware of this from the start, even electing to call the course How to Learn to Code. We aimed not only to teach the fundamentals of programming but to provide students with the tools to continue their education on their own. This belief that it’s as important to teach the discoverability of programming as it is to teach coding itself is still a key aspect of our teaching philosophy.

A need for Intermediate Python

Despite our best efforts, however, some portion of students later reported that they’d largely abandoned coding, citing a lack of comfort with programming on their own. In response, InPyBio was born in 2016. The goal was (and remains) to teach individuals who have learned what they could by teaching themselves via MOOCs and beginner sites how to feel comfortable translating their biological experiments into algorithms and data structures. The class takes a project-based learning approach, focusing on real-world problems that students might need to solve in their careers and ensuring that students constantly have sufficient context to understand why what they’re learning is important.

Learning anywhere and anytime

Work on the CodeStories webapp also began in 2016, due to a need to engage students not only in the classroom but also throughout the week. Primarily, I wanted a tool that would allow students to submit scripts they’d written and have the code automatically graded. A number of sites offer this general functionality, but there were a few other requirements:

  1. The site needed to support Python, the language the class was going to be taught in.
  2. It needed to either be biologically focused or allow instructors to write their own problems.
  3. Native support for Python’s scientific stack, like numpy and pandas, was also critical.
  4. There should be some way for students to earn hints when they get stuck on a problem.
  5. Most importantly, students should find the site engaging, easy to use, and immediately applicable.

We couldn’t find anything that fit these criteria, so we built it ourselves. CodeStories has been in use at UNC every summer since.

Why Bioinformatics?

Even though I’ve always believed that bioinformatics is going to be one of the most important careers in the coming decades and that training future scientists and engineers is a critical responsibility for current bioinformaticians, I was originally planning on leaving this project behind when I graduated. The events of the past couple months, however, have forced me to reconsider, due to a couple of key insights:

  1. For numerous reasons, individuals who can work from home are increasingly well-positioned to contribute to their company and to their field, regardless of the circumstances.
  2. Biological threats aren’t something that began in January, and they certainly won’t go away when this particular pandemic passes. Our only hope to be better prepared in the future is to start better equipping people with the tools they need to make sense of biology’s complexity. Humanity as a whole would greatly benefit from having more, and more broadly-trained, life scientists.

A new chapter

While both CodeStories and InPyBio have a long history at this point, this summer is going to be the first time it’s going to be opened to a general audience. And, of course, it’s the first time it’s going to be remote. I have to say...I’m really excited about seeing how this new chapter turns out!