Wed, 27 Aug 2008

Position: Assistant Professor/Comparative Genomics


We have an opening for a project on which I'm collaborating:

Full-time 12 month appointment academic position for a genomics scientist. The incumbent will spend 50% time as the Associate Director of the Comparative Genomics Laboratory, with duties in directing daily activities, long-range planning and seeking extramural funding, and 50% time to conduct research. Qualified candidates should have an earned Ph.D, training in Bioinformatics or Quantitative Biology and strong interests in evolution of early vertebrate genomes and functional genomics. Postdoctoral experience preferred. Initial appointment will be for three years as a fixed-term assistant professor in the Department of Fisheries and Wildlife at Michigan State University, with possible renewal. Email a single PDF or word file containing cover letter, CV and statement of research interests to liweim<at>msu.edu before 30 Sept. 2008.

Note that this is a non-tenure-track assistant professorship, so it's fixed term and soft money. We don't have positions like this in my departments (comp sci & molecular biology) but you could think of this as a very senior, very well paid, and very independent postdoc position.

--titus

posted at: 19:47 | path: /aug-08 | 0 comments

Tags:


Wed, 20 Aug 2008

Python for Intro CS?


I'm surprised I haven't seen this on planetpython yet...

...an emerging consensus in the scripting community holds that Python is the right solution for freshman programming. Ruby would also be a defensible choice.

(emphasis mine). Originally found via Lambda the Ultimate, and also passed onto me by Rich Enbody.

In other news, there are some rumors coming out of the intro CS course (CSE 231/232) here at Michigan State that the switch to Python from C++ for the first term, 231, didn't affect the students' performance in the follow-on course, 232. That is, students performed equally well on the 232 final independently of whether or not they'd had Python or C++ in 231. I had hoped for an improvement in the scores, but at least it's not a decline!

--titus

posted at: 09:35 | path: /aug-08 | 2 comments

Tags:


Tue, 12 Aug 2008

SciFoo - am I just jealous?


I read things like this report on SciFoo and think, gawd! I'd have had a great time! I should try to beg/bully/buy/brown-nose my way into the next SciFoo so I can talk about Science 2.0 etc.!

And then I think back to the heady days of ALife when all that stuff was pretty new, and wacky ideas were being proposed, and the conferences gatherings were crazy interesting and fun, and realize that -- apart from a lot of great connections, a few publications, and a wife -- I didn't get much of lasting import from that whole ALife thing. What really added to my life, long-term, from that period was execution ability. I wrote some code, did some research, and ran conferences; those have all stuck with me. The people-talking and socializing didn't stick except in so far as it led to interesting research (well, and a wife, but I'm not looking for another one of those).

My assessment is that I really just need to buckle down and produce over the next few years. This Science 2.0 stuff will come and go, and I'll adjust as I need to; but since it's unlikely to offer me a revolutionary way of doing science, I'm better off doing good science first and only then worrying about socializing. (YMMV, esp if you're Mike Eisen. :)

Also, looking at my work schedule for the last few weeks (talking with students about their projects; ordering stuff for my lab; discussing research with my postdoc; and generally getting shit together) it's hard to argue that there are more important things for me to be doing than that, at least in the academic sphere.

To put things another way: talk is cheap. Action speaks louder than words. Ideas multiply execution.

Or perhaps I'm just bitter that I didn't get invited. It sounds like fun!

--titus

posted at: 07:50 | path: /aug-08 | 3 comments

Tags:


Fri, 01 Aug 2008

A reply to Elanthis: Python Annoyances


In reply to elanthis's post on Advogato,

1. I agree that the documentation could be improved, and we've been working on it. The next release should add a whole bunch of examples. Google is your friend, as is the Python Cookbook.

  1. Files as modules. What about importing those symbols in the package __init__.py? e.g.
foo/some/other/package/blah.py:
class MyClass:
...
foo/__init__.py
from foo.some.other.package.blah import MyClass

The physical layout is for you, the developer, while the exposed package interface can be pretty much whatever you want.

3. Classes are weak: yes, I guess so, but I don't really know how to address your concerns without adding a lot of syntax. Are you just lusting after variable declarations 'cause that's how you think?

Your take on unit testing seems just plain wrong. I know of no useful language that can prevent the majority of programming errors without some form of actually running the code, a.k.a. "testing". You might think YMMV, but you're almost certainly wrong.

  1. I agree that the decorator syntax is inelegant and inconsistent.

5. No variable declaration: you'd catch most of these problems with even the most rudimentary of unit tests and code coverage analysis. Shadowing is a concern, though. In practice it's never caused problems for me.

6. There are official recommendations regarding docstrings; see PEP 257. The (new) Python documentation is formatted with Sphinx, which you might like better.

I think you have a good point or two, but I also think you need to spend some more time programming in Python to figure out which of your complaints are actual problems with Python and what is simply a legacy of bad habits garnered from experiences with other languages. Even if you abandon Python for another dynamic language, I think you'll have the same (or stronger) criticisms of those.

cheers, --titus

posted at: 10:21 | path: /aug-08 | 5 comments

Tags: