Por @Alvy — 24 de Febrero de 2011

Computer-Olympics
Programadores practicando. Foto: bcdean

Jason Fagone publicó en Wired un interesante y detallado artículo titulado Teen Mathletes Do Battle at Algorithm Olympics sobre la Olimpiada de programación que se celebra desde hace más de veinte años en distintos lugares del mundo, al estilo de las olimpiadas matemáticas, de física y similares: hormonas nerd a tope, vamos. En 2010 tuvo lugar en Canadá y la 23ª edición se celebrará en Tailandia. Este año pasado compitieron 315 participantes de 83 países, en categorías tanto individuales como de equipo.

Una curiosidad de este concurso es que se compite para resolver ocho problemas de programación, pero como son tantos los que encuentran la solución y resuelven los problemas a la perfección (269 de los 315 el año pasado), la competición incluye el «factor tiempo»: quien más rápido entregue los resultados, gana el concurso. Así que ese aspecto no es baladí en este caso.

Entre los problemas del año pasado estaban incluidos:

  • Cluedo: Diseñar el código más eficiente para resolver una partida de Cluedo con 6 personajes, 10 lugares y 6 armas. El ganador: 22 líneas en Pascal.
  • Lenguajes: Dadas 10.000 cadenas de texto seleccionadas al azar de la Wikipedia, crear un programa que identifique en qué idioma están escritas. El ganador: 227 líneas de código, con una eficiencia del 85 por ciento de aciertos.
  • Laberinto: Diseñar un programa que dibuje laberintos de diversos tamaños y grados de complejidad.
  • Tráfico: Encontrar el camino más corto en una red de transporte con miles de ciudades conectadas a través de algunos nodos centrales. Es un problema de gran complejidad de esos que sólo suelen resolverse mediante una aproximación a la solución óptima, a menos que el tamaño de la red sea razonable y tengas un superordenador a mano.

Los lenguajes de programación oficiales de la competición son tres: Pascal, C y C++. Los participantes suelen practicar en sitios como TopCoder, así como en las «zonas de práctica» de los equipos regionales. A efectos prácticos, en la competición por 200 euros los chicos pasan una semana en la ciudad donde se celebra la competición oficial, concentrada en dos días de tensión. A los ganadores les pagan el viaje. (Anecdóticamente, respecto al tema chicos-chicas, el lugar resulta ser el un proverbial BDN, con solo un 10-15% de participantes femeninas).

Uno de los detalles que me pareció más curioso –y apropiado– es que hay todo un complejo sistema informático encargado de controlar los tiempos, recibir los programas y ejecutarlos para dar en tiempo real los resultados a los participantes y mostrarlos en un gran panel al público asistente. Dicen que el ambiente para los más geeks y los acompañantes llega a volverse «emocionantemente eléctrico» a medida que pasa el tiempo, una sensación seguramente difícil de describir para los no-iniciados en el mundo de la programación.

Entre las «estrellas» del año pasado estaba Neal Wu del equipo de los Estados Unidos, al que le montaron hasta una página en Facebook a modo de club de fans y Gennady Korotkevich de Bielorrusia, que comenzó a competir con 11 años y que con 15 parece tener Jolt en las venas, chips de Deep Blue por neuronas y concentra su vida en programar, dejando de lado chorradas para nenazas como tener un blog, una cuenta de Twitter o una página en Facebook. Dado que en la rrrussia sssoviética tú no programas el código sino que el código programa tu cerebro, el chaval arrasó en la competición como era de esperar y se hizo con el primer premio. Pero seguramente mejor premio será que lo fiche alguno de los espónsores que envían «ojeadores» a la olimpiada, como IBM, Amazon, Google, BlackBerry o Lenovo, y le ofrezcan un buen sueldo a cambio de su increíble capacidad para picar código e inventar algoritmos ingeniosos.

Compartir en Flipboard Publicar / Tuitear