Check out this year's flash film festival nominees at the flash forward conference. There is some really cool stuff in there. I had the chance to sneak in and watch last year's festival when my wife attended the conference and I happily tagged along for the trip. Flash has this wonderful quality of uniting the artist crowd with the hacker crowd and the results are very creative. And NY is the perfect setting for this conference, very streamlined, energetic, awake, fast. I miss that city. The company (my wife and I both work for the same shop) didn't send her this year. Oh well.
June 2003 Archives
I always believed in this. When given a more complex problem or a trickier algorithm it helps enormously if you can express it in mathematical notation and have some calculus at your disposal that manipulates these expressions. In Java and other iterative programming languages it makes sense to work with things like precondition and postcondition (ideally as mathematical expressions) and calculi like weakest precondition, loop invariants etc. I've written a small paper that illustrates the concepts and gives some pointers to literature. I will keep posting examples to solving problems this way in this blog. Also check out this paper for another nice example of deriving a program.
Ok, I promise, this is the last entry about skewtrees. I just wanted to point out that this problem is widely known and dealt with in the algorithms literature under the name "optimal binary search trees". I found that out by accident while googling for something else. Just search for "optimal binary search trees" and you'll see what I mean. There are even top-down approaches that provide almost optimal solutions.
I finally did play with LaTex and write up in more detail the skewtree solution.
I have to say LaTex is very cool. I'm still a beginner but I feel the power behind it. You can throw pretty complex mathematical expressions at it and it lays it out nicely, no sweat. You can find the paper here.

