Competición Internacional Universitaria de Programación

La Competición Internacional Universitaria de Programación (en inglés International Collegiate Programming Contest, abreviado ICPC) es una competición anual de programación y algorítmica entre universidades de todo el mundo, donde prima el trabajo en equipo, el análisis de problemas y el desarrollo rápido de software. Tiene su sede en la Universidad de Baylor y está liderada por su Director Ejecutivo y profesor de esta universidad, el Dr. William B. Poucher. La ICPC lleva a cabo concursos regionales autónomos que cubren los seis continentes y culminan en una final mundial cada año. En 2018, la participación del ICPC incluyó a 52 709 estudiantes de 3 233 universidades en 110 países.[1] Archivado el 25 de marzo de 2019 en Wayback Machine.

Participantes de la Competición Internacional Universitaria de Programación representando a la Universidad Nacional de Taiwán en 2010.

La ICPC es auspiciada por la Fundación ICPC y opera bajo acuerdos con las universidades anfitrionas y organizaciones sin fines de lucro, todo de acuerdo con las Políticas y Procedimientos del ICPC.[2] Archivado el 29 de agosto de 2017 en Wayback Machine. Desde 1977 hasta 2017, el ICPC contó con los auspicios de la Association for Computing Machinery (ACM) y se denominó ACM-ICPC.[3] (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).

Misión editar

La Competición Internacional Universitaria de Programación es una actividad extracurricular y deporte de programación competitiva para estudiantes de universidades de todo el mundo. Las competiciones de ICPC brindan a los estudiantes aventajados la oportunidad de interactuar, demostrar y mejorar sus habilidades de trabajo en equipo, programación y resolución de problemas. La ICPC es una plataforma global para la academia, la industria y la comunidad para destacar y elevar las aspiraciones de la próxima generación de profesionales de la computación en su búsqueda de la excelencia.[4]

Historia editar

La ICPC es una competición que se inició en la Universidad A&M de Texas en 1970. Pasó a ser una competición con varias rondas clasificatorias en 1977 y la final mundial se organizó en colaboración con la ACM Computer Science Conference.

De 1977 a 1989, compitieron principalmente equipos de Estados Unidos y Canadá. La sede central está ubicada desde 1989 en la Universidad de Baylor y las competiciones regionales se ubican en universidades de todo el mundo, bajo el auspicio de ACM y la colaboración de grandes empresas de la industria informática. La ICPC ha ido aumentando en número de participantes y países, por lo que ahora es una competición mundial con equipos de 103 países (en 2016).

Desde 1997 el principal patrocinador es IBM y la participación en la competición ha aumentado enormemente. En 1997 participaron 840 equipos de 560 universidades. En 2016 participaron 46381 estudiantes de 2948 universidades de todo el mundo.[1]​ El número de equipos aumenta entre un 10% y un 20% cada año.

Reglas de la competición editar

El ICPC es una competición por equipos. Las reglas actuales estipulan que cada equipo ha de tener exactamente 3 miembros. Los miembros han de ser estudiantes universitarios, que hayan estudiado menos de 5 años en la universidad antes del concurso. Los estudiantes que hayan competido en dos finales mundiales (World Finals) o cinco competiciones regionales no pueden participar otra vez.

Durante la competición, los equipos tienen alrededor de 5 horas para resolver entre 8 y 15 problemas (lo normal es 8 para las competiciones regionales y 12 para la final). Se deben programar las soluciones con C, C++, Java, Ada, Python o Kotlin[2][3]​ (aunque no está garantizado que todos los problemas sean solucionables usando cualquier lenguaje, el ICPC establece que los jueces habrán resuelto todos los problemas en Java y C++, tanto para los regionales como para la final mundial). Los programas enviados por los equipos se compilan y ejecutan con unos ciertos datos de entrada, si el programa falla al calcular la solución, el equipo es notificado del error y pueden enviar nuevamente el programa o probar con otros problemas.

El ganador es el equipo que resuelve más problemas. Si hay equipos empatadas con el mismo número de problemas resueltos, el orden de clasificación se calcula a partir de los que han tardado menos en resolver los problemas.

Ejemplo: si un equipo A ha enviado sus soluciones para 2 problemas los 60 y 120 minutos desde el inicio del concurso, y otro equipo B lo ha hecho a los 80 y 90 minutos. El desempate entre ambos equipos se haría mirando los tiempos, para el equipo A: 60+120 = 180 minutos. Para el equipo B: 80+90 = 170 minutos. El equipo B ganaría.

El tiempo que se toma para los desempates es el tiempo que ha pasado desde el inicio del concurso más 20 minutos por cada solución incorrecta enviada. En el ejemplo anterior, si el equipo A hubiera enviado 2 soluciones incorrectas para su primer problema, su tiempo final sería: 20+20+60+120 = 220.

El ICPC se diferencia de otras competiciones de programación (por ejemplo la IOI) en que suele tener un gran número de problemas (8 o más para resolver en 5 horas) y que es una competición por equipos con un solo ordenador. Es necesario un buen entendimiento entre los miembros de un equipo para conseguir la victoria.

Competiciones locales, regionales y final mundial editar

La competición tiene distintas fases clasificatorias. Algunas universidades tienen competiciones locales para elegir a los componentes de los equipos. Cada universidad puede mandar un máximo de equipos de 3 personas a la fase regional que puede variar en dependencia de la región. Las competiciones locales son opcionales y las organiza cada universidad como estime conveniente. Algunas universidades optan por seleccionar a los alumnos con notas más altas o a los que muestran más interés.

Los equipos de cada universidad participan en la fase regional, con otros equipos de universidades próximas geográficamente. Hay más de 30 regiones en todo el mundo. Algunas regiones agrupan distintos países (por ejemplo la SWERC incluye a España, Portugal, Francia y otros países europeos), otras son un solo país (la región de Brasil) y otras son sólo parte un país (Estados Unidos está dividido en varias regiones). Los mejor clasificados en cada competición regional participarán en la final mundial. Cada región envía a la final un cierto número de equipos, no pudiendo haber más de un equipo de una misma universidad.

La final mundial se celebra cada año en una ciudad distinta, y congrega a los equipos ganadores de todas las competiciones regionales.

Lista de competiciones regionales editar

Regiones de Europa y Rusia:

  • Suroeste (SWERC): esta región comprende España, Portugal, Francia, Italia, Suiza y el oeste de Austria.[4]
  • Noroeste (NWERC)
  • Central (CERC)
  • Sureste (SEERC)
  • Noreste (NEERC)

Regiones de África:

  • África y Arabia (AARPC)
  • Sudáfrica (SAfrica)

Regiones de Asia:

  • Beijing
  • Coimbatore (Coim)
  • Kanpur (Kolkata)
  • Daca
  • Kaohsiun
  • Manila
  • Seúl
  • Teerán
  • Xian
  • Shanghái
  • Yokohama
  • Hanói

Regiones de Oceanía:

  • Pacífico sur (SPacific)

Regiones de América Latina:

  • México y Centroamérica (CAmerica)
  • Caribe
  • Brasil
  • Suramérica Norte
  • Suramérica Sur

Regiones de Norteamérica:

  • Pacific Northwest (PacNW)
  • North Central (NCNA)
  • East Central (ECNA)
  • Northeastern (NENA)
  • Rocky Mountain (RM)
  • Mid-Central (MCUSA)
  • Greater New York (GNY)
  • Southern California (Scal)
  • South Central (SCUSA)
  • Southeast USA (SEUSA)
  • Mid-Atlantic (MAUSA)

Ganadores editar

Instituciones Top
Wins Institución
7 Universidad ITMO
4 Universidad Estatal de San Petersburgo
3 Universidad de Shanghái Jiao Tong
3 Universidad Stanford
2 Instituto Tecnológico de California
2 Universidad de Varsovia
2 Universidad de Waterloo
2 Universidad Washington en San Luis
2 Universidad Estatal de Moscú

Véase también editar

Enlaces editar

Jueces en Línea editar

Referencias editar

  1. «ICPC FACT SHEET». Archivado desde el original el 25 de marzo de 2019. Consultado el 2 de febrero de 2017. 
  2. team, ICPC. «ACM ICPC meets FAU». icpc.informatik.uni-erlangen.de. Archivado desde el original el 14 de septiembre de 2016. Consultado el 1 de julio de 2016. 
  3. «Python at ICPC world finals 2017 - Codeforces». Codeforces. Consultado el 1 de julio de 2016. 
  4. «Copia archivada». Archivado desde el original el 23 de noviembre de 2010. Consultado el 24 de septiembre de 2010.