
Teen Mathletes Do Battle at Algorithm Olympics - kingsidharth
http://www.wired.com/magazine/2010/11/mf_algorithmolympics/
======
ovi256
One neat thing: at Harvard, Neal takes Math 55, a course so famous it has its
own Wikipedia page.

<http://en.wikipedia.org/wiki/Math_55>

" ... covers four years of math in two semesters."

Otherwise, that "will he die a virgin ?" quip was really uncalled for.

~~~
protomyth
That quip is pretty much why I don't subscribe to wired anymore. Showing
contempt for the audience is not a good thing.

------
Benjo
If you can find it, _Beautiful Young Minds_ is a great documentary about the
British team for the International Math Olympiad.

<http://en.wikipedia.org/wiki/Beautiful_Young_Minds>

------
apl
It'd be interesting to observe their workflow, from editor choice to debugging
methodology. Sure, choosing and developing a sensible algorithm is the "meaty"
part. I, for one, am fairly impressed by the stuff these kids do.

But I'd be surprised if they didn't have some serious Vim-Fu going on as well.

~~~
chunkbot
There's very little usage of either Emacs or vim at these competitions (they
seem to prefer a simple text editor). Also, they code _fast_ , literally at
the limit of how fast they can type! Maybe it's a consequence of the language
choice (typically C++)...

~~~
apl
_Maybe it's a consequence of the language choice (typically C++)..._

Because it allows them to type as fast as they can, or because it forces them
to do so?

~~~
kingsidharth
Too much to type in C++ as compared to language like Python

------
RiderOfGiraffes
Single page:
[http://www.wired.com/magazine/2010/11/mf_algorithmolympics/a...](http://www.wired.com/magazine/2010/11/mf_algorithmolympics/all/1)

------
hacjjjjjjjj
How to become matheletes like them ? Any guides ? Books? Where to get started
? You suggest to learn python by it clearly says C,C++ and Pascal. Should I
learn C++ as first language ? Help ?

~~~
RiderOfGiraffes
Ask for opinions of 10 HNers and get 10! answers ...

Personal opinion only ...

Learn Python first. Work on problems from Project Euler. Learn to program
Python in OO mode. Learn C. Learn C++. Learn to program Python in functional
mode. Read about the algorithms mentioned in the article. Understand P vs NP.
Understand why this is funny: <http://xkcd.com/287/>

~~~
rednum
I have to disagree. I participated in few algorithm competition (however much
easier than IOI) and I think that: \- OOP \- C \- functional python are
redundant. Creating more advanced objects than graph vertex/edge is usually
unnecessary in algorithm tasks. Functional programming - well, that would be
useful sometimes, but as IOI and most similiar type competirions support
C/C++/Pascal, you won't be able to use it anyway. Problems from project euler
seems to be a good start, however. Learning mentioned in article algorithms
too.

~~~
RiderOfGiraffes
If I want to play Rachmaninov's second piano concerto, I don't start by trying
to play it straight away. I start with simple pieces, with scales and
arpeggios, and with speed exercises. I build my basics, initially leaving out
things that I'm not ready for.

I think learning Python first, and then the concepts behind both OOP and FP,
better prepare someone for solving problems in languages like C++ than trying
to start with C++ first.

As I said, personal opinion.

ADDED IN EDIT:

Fascinating. Rather than refuting the point I'm trying to make, someone has
simply down-voted it without comment. That's a shame, as it doesn't provide me
the opportunity to learn. Perhaps I simply haven't been clear, or perhaps they
simply disagree without caring to articulate their point.

To try to be more specific, I think that learning Python, then learning Python
in an OO style, then learning C++, makes a better programmer faster than
trying to learn C++ directly. I have no evidence, only anecdotes, and they're
not worth much. I think it's like trying to make a 6 inch reflector telescope.
It's faster to make a 4 inch, then a 6 inch, than it is to try to make a 6
inch first. Again, there have been no controlled, double-blind experiments,
but it is the conventional wisdom.

So there it is. If you think that expressing such a thought is detracting from
the value of HN then feel free to downvote this comment further. If you
disagree, but think it's an interesting point that deserves to be refuted, I'd
love to hear your reasons.

~~~
hardy263
Algorithm competitions aren't like playing Rachmaninov's second piano
concerto.

It's more like playing a simpler piece that everyone knows, like Canon in D.
Except you learn to play it faster than anybody else.

You're giving advice on how to be a better programmer, which is significantly
different from being a programmer who implements algorithms. In a programming
competition, I don't go back and optimize my code. I test to see if it works,
and go on to the next question.

------
borii
In case anyone's interested, there's a syllabus:
<http://people.ksp.sk/~misof/ioi-syllabus/ioi-syllabus.pdf>

------
ianbishop
"For kicks, he took the tryout test for Harvard’s team. He came in first
place."

I knew I recognized him from somewhere! ACM Regionals in New York took place a
couple weeks ago. MIT managed to solve 7/8 problems, Harvard solved 3.

No one on our team has been doing competitive programming for nearly as long
as some of these guys have. It took me only about a year of (very casual)
practice to get to this point. So it doesn't necessarily mean you need to
spend every waking moment on TopCoder.

