Showing posts with label TopCoder. Show all posts
Showing posts with label TopCoder. Show all posts

Thursday, April 26, 2007

Phew!

And so, ladies and gentlemen, my second semester of graduate school comes to an end. I'd say it went pretty well, all things considered.

It's been 3 months since I blogged. The amount of catching up stories I need to tell is insane, so I'm going to be shamelessly selective and just pick out anything that seems important.

Though now that I think about it, that isn't very different from what I normally do...mrgreen So anyway, let's say goodbye to the semester with a little look at what I did.

Formal Languages and Automata Theory - in many ways the most fun course I've ever had, primarily because the professor who teaches it is the most amazing expert on recursive function theory (among other things) I've ever had the privilege of knowing. Not only do I feel twice as smart in some ways, I'll never forget those hilarious jokes that he'd deliver every ten minutes. They certainly compensated for all the brain-addling he dished out.

Actually, I will forget those jokes. What I won't forget is that they were absolutely freaking hilarious. And there is one comic incident that I'll remember to my dying day. That's right, even when I'm creating my own universes and reveling in godlike splendor that amateurs like Yahweh could never imagine, I'll occasionally remember that crazy antic and my laughs will thunder through the cosmos. rolleyes

Machine Learning was pretty good - as a course I learned an amazing amount from it. The little project we had on constructing a Go AI using Temporal Difference Learning didn't go all that well - but it certainly seemed to be learning, which was all the professor cared about anyway.

I managed to come up with a fairly neat idea for my term paper on Natural Language Processing, though I'm not sure how good it is yet. Still, bad ideas are often the seeds of good ones. I'll shut up for now, because if something good comes out of it, I don't want to get scooped. wink

I guess the most useful thing that came out of it was the ability to read papers and not die halfway through the second page. When you have to read four of them a week and write reviews for each one, reading just one is a trivial task. And it helps that I can now read them critically too, though sometimes I can't turn on that particular mode of thought until I imagine firing up OpenOffice and starting the review...

Right, so what was the most interesting thing that happened? Without a doubt, it would probably be that amazing trip to Tokyo for the 2007 ACM ICPC World Finals. We didn't do too badly either - we're officially ranked 44th, but then so are all the other teams that solved 3 problems. We're actually second in that lot. In any event, we wound up surpassing UCF teams for the last few years, so our coaches are happy - and we got ranked rather than a mere Honorable Mention, so they're even happier. We even wound up getting interviewed by the student newspaper, and showed up on the university website for a bit. cool

As an interesting aside, Google has invited the ICPC finalists over to their New York office for a day, around the last week of June. They're going to show off in ways that only us geeks can do without looking like idiots (except to normal people, but then they're merely peasants whose opinions are unworthy of consideration anyway mrgreen).

Now for the really fun part: in just a few days, my family is going to be flying to the US for a month-long visit. They'll hit Orlando at the beginning of next week, and we'll have a whirlwind tour of Disney World for a couple of days before we head over to my uncle's place in Maryland. And then it'll just be a nice family holiday involving meeting relatives that I may or may not have met before, and all that sort of thing. Of course, as all hungry grad students know, these are merely incidental to the truly important things in life, such as getting to eat good old fashioned home cooking. And when your mom is the best cook in the world...biggrin

So any way you look at it, I'm all set.

Except for losing my yellow color on TopCoder. cry I guess I'll have to take it back by force in the next SRM. twisted

It'll be nice to get in some real hard training over summer. I'll be teaching myself loads of cool mathematics (you never know when it might save your life) and preparing for the Ph.D qualifiers next Fall. Putting that all together will mean a serious boost in my abilities. If all goes according to plan, I'll be a lean mean problem-solving machine by the next ACM Regional. cool

Well, that's it. I'm off to do whatever the hell I feel like, because I'm free as a bird! :D

I think I'll make me some soup at 1 AM. That would just about hit the spot. mrgreen

Thursday, January 04, 2007

At the half century mark!

Today was my 50th TopCoder SRM. The fates were with me (I suppose all those hours of practice also helped a little mrgreen) and I hit a new all-time rating high! I'm now at 1483 - just 17 points short of going yellow. cool

Can't stop practicing now - I'm in more danger than ever of a rating loss after that huge increase. If anything, I need to practice harder to be able to maintain my rating at this level. Still, it's nice to see that practice does pay off, even over the short two week period in this case.

Apparently the trick is to find exactly the right level of problems to practice on. Doing the ones you can crack instantly is a waste of time and a recipe for stagnation. Doing the ones that are so hard you'd never think of the answer is equally useless. Even if you read someone else's solution and look up explanations and what not, you won't gain the ability to make those observations and come up with those approaches on your own. It's like practicing weightlifting by trying to lift what an Olympic champion does, when you can barely manage the groceries. mrgreen

So the ones you want to do are just a little above your current level. Do enough of those, and you'll have boosted your skills enough to aim a little higher, and so forth.

There's an interesting lesson here - all the practice in the world will bring only minor results if it isn't tightly scoped to your skill level. Perhaps this is one of the major differences between the reds and the rest of us. There's obviously more to it, but I suspect this particular aspect is underrated.

How did I get this idea? At the beginning of my practice sessions, I noticed that I never solved the division 1 medium problems on my own. I always needed the editorial, or perhaps someone else's solution. There was no other way for me to get it.

Since there's been quite a bit of discussion on how the average level of difficulty is rising at TC, I began to wonder if old matches had the kind of problems I could do. So I moved back 130 matches to SRM 200, and tried it out. I was delightfully surprised when I found I could do most medium problems from around then. They took time to think through and figure out, but I could actually do them! If I had my present level of skill back in those days, I would probably have been rated mid-yellow.

This doesn't mean that you should completely neglect the really hard stuff. For the moment, the old mediums are sufficient for me, because once in a while a really devilish problem turns up and leaves me reeling. That's good. Keeps you humble, and teaches you a thing or two.

I only started this a few days ago, and I could almost feel the difference. I started coding and thinking much faster on the ad hoc problems that turn up in division 2 as 250s and 500s.

Okay, it was mostly the 500s. I'm already fast enough at div 2 250s that any speedup there is difficult to distinguish from normal statistical variations. My scores on the 500s have apparently risen about 30 points, though.

Our first Spring practice session for the World Finals is this Saturday. Perhaps we'll see some improvement there. Or not. neutral

The Spring semester starts again on Monday. As predicted, I'm going to need to be really organized if I intend to be productive. I'm taking Formal Languages and Automata Theory, Machine Learning and Natural Language Systems. Topped off with World Finals practice, that's one hell of a workload.

Should be fun.
mrgreen