from zero to python

Students actually showed up, so we really do have to teach the course. MCB112 Biological Data Analysis is now in its first week.

The tricksiest bit in the first couple weeks is bringing people up to speed in writing Python, for people who've never written code before. We trust in the power of trial and error. We give working example scripts that are related to what the students are asked to do on a problem set. Developing code by mutation, descent with modification, and selection: coding for biologists.

Soon we'll start to lift the training wheels, while trying not to leave people in a "now draw the rest of the damn owl" situation.

When you're learning to code, with every line you type you're looking something up. Your concentration is getting broken all over the place as you try to express the Simplest Stupid Thing (Why Don't You Work gaaaah \$%\^&#@). If you're also trying to learn something else at the same time that requires hard thinking - an algorithm, a mathematical equation, a biological analysis approach - really just about the last thing you need is to have your concentration broken every ten seconds because you can't express yourself. The best way to learn to code isn't to start by writing scientific code. It's better to code something fun, something that you're completely absorbed by, something that isn't too conceptually difficult. You want to have only the code frustrating you, while the goal pulls you in and keeps you engaged.

But I can't exactly recommend that students learn to code the way that I did. Sure, go get yourself absorbed in an early Internet massive military-industrial simulation game. Automate your country's economy, re-invent Dijkstra's shortest path algorithm to distribute your resources, make an interactive display of your map, reverse engineer the client/server communication interface so you can launch automated attacks... no, this is no way to do a PhD. Even if it does mean you end up knowing C and Perl and understanding dynamic programming, GUI development, and networked computing.

So alas, we'll try to generate entertainment value in more socially acceptable ways, like sand mouse mysteries in the problem sets, or teasing Lior Pachter. We'll see if it's enough. If not, maybe I'll have to see if the old Empire code still compiles.