learning bioinformatics and programming through problem solving.