[BioPython] "Developing Bioinformatics Computer Skills"
Johann Visagie
johann@egenetics.com
Wed, 28 Mar 2001 15:32:22 +0200
Brad Chapman on 2001-03-27 (Tue) at 14:21:45 -0500:
>
> I'm a biologist who tried C++, Java and Perl before deciding python was the
> right bet for me.
And I'm a computer scientist[1] who has used and continues to use a whole
slew of programming languages, and though I have yet to find the perfect
language for teaching programming to a complete newcomer, Perl is very high
on my list of languages which are utterly UNsuited to that task.[2] If you
want to teach someone all the wrong habits, start him off on Perl.
(Sorry, Ewan.)
> Count-me-in-for-a-Python-and-Bioinformatics-book-ly y'rs;
For some time now I've had these ideas percolating[3] in my head as to how
the ideal "introduction to programming" course should be structured. To
over-simplify things horribly, I'd like to try a top-down approach instead of
a bottom-up one.
Most programming tutorials spend about five chapters telling you what a
variable is, around three explaining types, then another two explaining basic
programming structures, and finally one about functions. The concept of a
class or an object may or may not be introduced in an appendix.
Frankly, I feel that in the 21st century that's putting the cart before the
horse. I want to get the novice programmer comfortable with the concept of
objects *before* they really know how to write a syntactically correct line
of code. I want to see if it's possible to instill OO as a natural basis for
problem solving.
The company I work for has close ties with an academic institute, and said
institute has a number of postgrad students who want to learn to program.
(Mmmmm, guinea pigs...) I've been thinking for some time that I should put
together an "introduction to programming for bioinformatics", using Python as
a vehicle. In my copious free time these past six months, I've even written
one half of one tutorial. :-) Unfortunately I've found that top-down,
though great in theory, does not work that well in practice. You sort of do
need to know what a variable and a for loop are before you can be taught
about classes. Hmm. I'm open to suggestions. I'm also very open to the
idea of such a course being developed communally. :-)
(Top-down may not really possible without an entirely graphical programming
environment, though. OO Logo, if you will. In fact, Alice[4] may be the
answer (and it's Python-based!).)
More things to check out:
The edu-sig (and specifically CP4E:
http://www.python.org/sigs/edu-sig/
Two nice online books introducing the novice to programming, using Python:
http://www.ibiblio.org/obp/thinkCSpy/
http://www.crosswinds.net/~agauld/
An intro to Python for the experienced OO programmer (very cool):
http://diveintopython.org/
-- Johann
[1] OK, OK. Electrical engineer by training, actually.
[2] Says he who started with BASIC.
[3] Hmm, almost time for coffee.
[4] http://www.alice.org/