I'm the guy no one wants to hear from about computational biology.
I think the distinction is misleading. Teach programming, but do it with purely biological cases. Strip down the real tasks into simplified forms, and give them very specific tools where they have to have them.
You can't unwrap BLAST in a first course, but you can have them find exact matches. That can be used to find restriction sites, and have them generate simulated electrophoresis gel patterns. You can have them do read depth counting in RNAseq with exact matching on a single stranded virus genome (so they don't have to worry about reverse complement matching). It throws away a lot of reads, but you're not missing anything fundamental.
You can't do full molecular dynamics, but you can do wiggling polymers on a 2D lattice and relax them. Likewise, you can do a simple version of threading an amino acid sequence through a known 2D structure on a lattice and relax it.
You can't do sophisticated phylogeny, but you can brute force assemble small trees with substitutions and no indels, and you can likewise evolve and sample trees of sequences with substitution, and then have the students evaluate how well their tree reconstructions match the generating algorithm. Then take a subregion of a set of real 16S sequences without indels and have them build a tree of those.
You can't do full metabolic network modeling, but you can do a simple stochastic transition model of a couple of pathways and use it to make predictions about genetic experiments. See Hatzimanikatis's work for some interesting things to do with this.
I spent some time thinking about this when I was part of the Swiss Institute for Bioinformatics, and we put together a course de perfectionnement about programming practice for computational biologists. They finally ran the course after I left the country (they weren't waiting for me to leave, honestly, it just didn't get scheduled until then), and I'm told it went well.
This is absolutely my view as well. I ran a course along the same lines for MD and PhD students last summer and it went quite well.
One aspect that I think should be emphasized more is feeling comfortable with the command line. A lot of science-focused courses put you in an IDE and never have you muck around in bash, which I think is a big mistake for the long term usefulness of the course.
I agree with the idea, but I'm curious -- at the Swiss Institute for Bioinformatics did undergrads have the fundamental biochemistry knowledge to model pathways? When I was a third year half my enzymology class were struggling mentally modeling a single reaction.
I would attend a graduate class that worked like you outline though, and I kind of wish all of them did.
SIB was a consortium for practitioners at the various universities, but many of them came out of a biology background, so the ones that would be taking this course generally had a masters or PhD in biology.
I think the distinction is misleading. Teach programming, but do it with purely biological cases. Strip down the real tasks into simplified forms, and give them very specific tools where they have to have them.
You can't unwrap BLAST in a first course, but you can have them find exact matches. That can be used to find restriction sites, and have them generate simulated electrophoresis gel patterns. You can have them do read depth counting in RNAseq with exact matching on a single stranded virus genome (so they don't have to worry about reverse complement matching). It throws away a lot of reads, but you're not missing anything fundamental.
You can't do full molecular dynamics, but you can do wiggling polymers on a 2D lattice and relax them. Likewise, you can do a simple version of threading an amino acid sequence through a known 2D structure on a lattice and relax it.
You can't do sophisticated phylogeny, but you can brute force assemble small trees with substitutions and no indels, and you can likewise evolve and sample trees of sequences with substitution, and then have the students evaluate how well their tree reconstructions match the generating algorithm. Then take a subregion of a set of real 16S sequences without indels and have them build a tree of those.
You can't do full metabolic network modeling, but you can do a simple stochastic transition model of a couple of pathways and use it to make predictions about genetic experiments. See Hatzimanikatis's work for some interesting things to do with this.
I spent some time thinking about this when I was part of the Swiss Institute for Bioinformatics, and we put together a course de perfectionnement about programming practice for computational biologists. They finally ran the course after I left the country (they weren't waiting for me to leave, honestly, it just didn't get scheduled until then), and I'm told it went well.