¿Qué es el Training Camp?

¿De qué se trata el Training Camp?

Se trata de un entrenamiento intensivo de 2 semanas para competencias de programación con una parte teórica durante la mañana y sesiones de práctica durante la tarde.

¿Cuándo y dónde se organiza el Training Camp?

El Training Camp se organiza todos los años desde 2010 durante el receso invernal en distintas universidades de la Argentina. La edición 2017 será la octava edición y se realizará en la Universidad Nacional de San Martín, que será la sexta sede en la que se realice un Training Camp en Argentina.

¿Cuánto dura un Training Camp?

Desde 2012 los Training Camp son de dos semanas, siempre de lunes a viernes, de 9 a 18hs.

¿Para qué sirve participar del Training Camp?

Un Training Camp prepara a los estudiantes para participar de competencias de programación. La más importante de ellas, la ACM ICPC, es para la cual apuntamos a preparar a los participantes. Además, al aprender a resolver problemas algorítmicos, lógicos y matemáticos los participantes quedan también muy bien preparados para enfrentar entrevistas en las principales empresas de la industria, muchas de las cuales son o han sido sponsors del Training Camp.

¿Qué es una competencia de programación?

Se trata de competencias en las que hay que resolver problemas individualmente o en equipo, utilizando razonamientos de lógica y matemática, como así también algorítmicos. Luego, la solución debe ser implementada mediante un lenguaje de programación, y se evalúa dicha solución contra un conjunto de casos de prueba que juzgan automáticamente (y muchas veces en vivo) si esta es correcta o no.

¿El entrenamiento recibido en el Training Camp sirve para cualquier competencia de programación?

Si, aunque el entrenamiento se enfoca en la preparación para la competencia Regional de la ACM ICPC y en el caso de los participantes argentinos también para el Torneo Argentino de Programación. En ambas competencias, varios equipos de 3 integrantes, compiten en distintas sedes del país (o del continente) en simultaneo, tratando de resolver un conjunto de entre 8 y 13 problemas, utilizando una única computadora por equipo y en un plazo de 5 horas. Cada vez que resuelven un problema, suben el código fuente a un sitio web, que les informa si su programa resuelve de forma correcta el problema.

¿Qué tipo de problemas se pueden encontrar en una competencia de programación?

Las competencias cuentan con problemas de diversos estilos: estructuras de datos, teoría de juegos, algoritmos greedy, programación dinámica, fuerza bruta, aritmética, geometría computacional, etc. Se pueden ver en la página del Torneo Argentino de Programación los problemas de años anteriores.

¿Qué lenguajes utilizaremos en el Training Camp?

Utilizaremos C, C++, Java o Python, ya que estos son los lenguajes permitidos en las competencias ACM-ICPC.

¿Y qué mas?

Además de las charlas técnicas, y sesiones de práctica, el Training Camp contará con momentos de distensión y recreación, y algún bloque para que los sponsors hagan una presentación.

Recién comienzo la carrera y no tengo muchos conocimientos… ¿Puedo asistir? ¿Me sirve el entrenamiento?

¡Por supuesto que sí! No va a ser fácil, pero esto es un desafío. Mientras antes comiencen a practicar, mejor. El nivel de los participantes en los Training Camp suele ser muy variado, y los instructores están capacitados para que todos aprendan.

¿Me gano algo por participar de un Training Camp o de un torneo de programación?

Sí, van a aprender muchas cosas nuevas, en muchos casos diferentes de las que suelen estudiar en sus respectivas carreras. Además, aquellos con buen desempeño durante los torneos de programación tendrán la posibilidad de viajar a las respectivas finales regionales o mundiales.

El Torneo Argentino de Programación tiene el estilo de las competencias ACM-ICPC. En el 2016, el equipo de la Universidad Nacional de Rosario se coronó campeón latinoamericano de las finales mundiales en Tailandia. En el 2017, tres equipos argentinos participarán de las finales en Estados Unidos.

Además, el entrenamiento puede ser útil para la mayoría de las competencias de programación más reconocidas: Google Code Jam, Facebook Hacker Cup, CodeForces, TopCoder, Codility, Codechef, SPOJ, URI OJ, HackerRank.