developerWorks: Fue en la cuna de la humanidad cuando nacieron

Anuncio
developerWorks: Fue en la cuna de la humanidad cuando nacieron las competencias entre
personas y, aunque los enfrentamientos se hacían en disciplinas físicas, la rivalidad también fue
llevada al ámbito intelectual, de tal suerte que hoy existen concursos de desarrollo.
Soy Jorge A. Salgado, editor en jefe de developerWorks en español y anfitrión del
developercast. En este capítulo tuve oportunidad de platicar con Alberto Lamadrid, director
regional del concurso de programación internacional ACM, quien me explicó los pormenores
del certamen patrocinado por IBM en el que se ponen a prueba las habilidades técnicas de los
estudiantes de tecnologías de la información.
developerWorks: ¿Qué es el concurso ACM?
Alberto Lamadrid: Es una oportunidad para enfocar la atención a los alumnos y que puedan
demostrar sus habilidades de resolucíon de problemas, de trabajo en equipo, de trabajo en
situaciones bajo presión y también ser efectivos en la solución de sus problemas.
developerWorks: ¿Cuándo y dónde surgió este concurso?
Alberto Lamadrid: Este año va a ser la edición 36 a nivel mundial y nace en Texas, en Estados
Unidos. Empezó primero como un concurso local en una universidad luego creció a Estados
Unidos. Un par de años después una universidad australiana se enteró del concurso y dijo que
quería competir, entonces el concurso se volvió internacional.
Hace 16 años, a través de la inquietud de uno de mis alumnos en el Tec de Monterrey campus
Querétaro, él y un servidor aplicamos para crear la región de Centroamérica, la cual tiene 16
años y la he estado dirigiendo desde entonces.
developerWorks: ¿En qué consiste este concurso?
Alberto Lamadrid: El concurso tiene los siguientes elementos: se requiere de un equipo de tres
alumnos universitarios, de una computadora, de un ambiente de desarrollo donde
normalmente manejamos C, C++, Java y a los alumnos se les da en un ambiente de
competencia y un ambiente aislado donde cada equipo trabaja de forma independiente,
indivisual, sin ayuda externa durante cinco horas. Se les da un conjunto de problemas, la
descripción de un problema, un conjunto de entrada y sus correspondientes salidas y se arranca
el concurso que dura cinco horas.
Durante estas cinco horas los muchachos deben tratar de resolver la mayor cantidad de
problemas en el menor cantidad de intentos y el ganador es el que resuelve la mayor cantidad
de problemas en esas cinco horas con menos penalizaciones. Una penalización es cuando se
ofrece un intento de solución que resulta fallido y entonces se le penaliza con 20 puntos o el
quivalente a 20 minutos.
developerWorks: ¿Los alumnos tienen que pertenecer a cierto semestre o puede ser una
mezcla?
Alberto Lamadrid: Idealmente deberíamos tener alumnos de todos los semestres; sin embargo,
lo que tradicionalmente ha estado pasado es que los alumnos de los últimos semestres son los
que participan y son los que tienen también mejor desempeño, pero este no es necesariamente
el caso; cuando empezamos en el tec de Monterrey campus Querétaro hace como 20 años
haciendo estos concursos primero de forma interna o local, hubo un semestre en el que los
alumnos de Java de primer semestre barrieron con todos los alumnos de todos los semestres.
developerWorks: Me comentabas que programan en C, C++ y Java, pero ¿es una mezcla de los
tres o se divide por categorías?
Alberto Lamadrid: No, en realidad es un solo evento: todos compiten contra todos utilizando la
herramienta que mejor les convenga. Todos tienen disponible las tres herramientas y puede ser
que algún equipo escoja programar nada más en Java o escoja programar nada más en C++ o
puede hacer una mezcla y decir este problema las librerías que tiene Java me ayudan y
resolverlo en Java y después resolver uno en C y resolver los otros tres en C++.
developerWorks: ¿Por qué se eligieron C, C++ y Java?
Alberto Lamadrid: Bueno, esto ha ido evolucionando cuando el concurso empezó hace 36 años
empezaron programando en ensamblador luego se usó forecamp, luego se usó C y Pascal. Hace
como seis años se retiró Pascal y los lenguajes de mayor uso mundial son los que estamos
usando, que son C, C++ y Java.
developerWorks: ¿Y tendrías un ejemplo del tipo de problemas que les ponen?
Alberto Lamadrid: Bueno, de hecho hay actualmente en el mundo varios lugares donde se
pueden encontrar no uno sino una gran cantidad de ejemplos. El primer lugar que se usó para
esto es un sitio en España en la universidad de Valladolid. La dirección URL es acm.uva.es Ahí
uno se puede registrar y tiene acceso a más de o alrededor 3,000 problemas tipo, de hecho no
son problemas tipo, son problemas que se han usado en el pasado en regionales como la de
México o en las finales mundiales del concurso.
developerWorks: ¿Cuáles son las etapas del concurso?
Alberto Lamadrid: Normalmente se manejan tres etapas que es concurso locales, o a nivel
ciudad, luego concurso regional, que en este caso sería la región de México y Centroamérica. El
mundo según el concurso de ACM está dividido como en 36 regiones, en América Latina, por
ejemplo hay tres regiones y México y Centroamérica es una sola región. Este año se acaba de
crear la región del Caribe donde van a estar participando muchas de las islas del Caribe y la
sede de esa región está en La Habana, Cuba. Los que avanzan de estas 36 regiones al rededor
del mundo avanzan a la final mundial. En los últimos años la final mundial ha reunido a 100 ó
205 equipos que compitieron en los concursos regionales y son equipos que vienen de más de
80 países de los 6 continentes y normalmente más de 2,000 equipos participan.
developerWorks: ¿La dinámica es similar tanto en la etapa local como en la regional y en la
mundial?
Sí, se busca el entorno de la competencia que en todos los casos sea lo más parecido posible a
la final mundial con el objetivo de los que van participando les sirva de entrenamiento la
experiencia de haber participado en un local o un regional para una vez que lleguen a la final
mundial puedan desarrollarse sin complicaciones por el ambiente.
developerWorks: ¿Recuerdas que haya habido algún ganador de América Latina?
Alberto Lamadrid: En los últimos, Brasil empezó o la región del sur con sede en Brasil, inició un
año después que lo que iniciamos México, entonces nosotros estaríamos diciendo, éste va a ser
nuestro dieciseisavo año, en Brasil, en América del Sur es el quinceavo.
El mejor lugar que ha tenido América Latina es de un equipo argentino, si no estoy equivocado
hace como unos seis o cinco años y quedó en doceavo lugar a nivel mundial.
developerWorks: Imagino que muchos de los chavos participan por los premios ¿cuáles son
estos?
Alberto Lamadrid: Los mejores premios están en la final mundial. El premio de la regional, el
principal pase de la regional es el pase a la final mundial que dependiendo del número de
escuelas, de universidades y el número de equipos que concursan en cada región, cada región
avanza de forma garantizada un lugar, pero dependiendo del número de universidades y quipos
pueden ser dos o tres lugares con los que pueda avanzar a la final mundial y el premio no es
nada más el pase, sino que el patrocinador mundial es IBM desde hace 10 ó 12 años y se pulen,
son muy buenos como anfitriones. Cada equipo que gana tiene su pase a la final mundial es
atendido excelentemente en el lugar de la sede y esto quiere decir que todo su alojamiento,
que todos sus alimentos, todas las actividades recreativas, el mismo concurso, todo es cubierto
por IBM. Lo único que el equipo tiene que hacer es llegar al lugar.
developerWorks: ¿Cuál es el objetivo principal de realizar este tipo de eventos?
Alberto Lamadrid: A nivel de México la idea es incrementar el número de personas
involucradas en el desarrollo de software y mejorar la calidad de desarrollo de software de
estas personas. La competencia es un elemento primordial para motivar a los alumnos para irse
mejorando y superándose. Entonces, la idea es que cada vez los ingenieros de software o la
gente de las carreras relacionadas con Tecnologías de la Información o con programación
tengan un mejor nivel de habilidades de desarrollo de software y con esto puedan que hacer
que México y, bueno, primero ellos, luego su entorno y luego México podamos mejorar.
developerWorks: ¿En qué fechas se van a realizar?
De hecho, estamos, este año para propiciar mayor participación de alumnos, se hizo de forma
coordinada un esfuerzo de concursos de preparación, este es el primer año que se hace esta
etapa y este tipo de esfuerzo, de la cual es el evento que se realizará el 15 de octubre en el
ITAM; sin embargo, ya este sábado pasado, el sábado 8 de octubre hubo 16 universidades en 14
ciudades en 6 estados donde ya participaron 170 equipos como una fase de entrenamiento y el
día 13 va a haber uno en Campeche y de forma simultánea en Zamora y tenemos el del día 15
en la ciudad de México en el ITAM.
De todos estos que participaron en los concursos de preparación, los que hayan tenido mejor
desempeño van a avanzar al regional, el regional es el 4 y 5 de noviembre. Para este regional
hay cuatro sedes establecidas este año: una en el Tec de Monterrey, Campus Monterrey; una
en Guadalajara, en el ITESO; una en Querétaro en el Tec de Monterrey, Campus Querétaro y la
última en el Instituto Tecnológico Superior de Zamora en el área de Michoacán.
developerWorks: Mencionabas que Argentina es uno de los países que mejor han quedado,
llegando al décimo segundo puesto. Como académico ¿a qué crees que se atribuya esto?
Alberto Lamadrid: Aquí yo creo que tiene que ver un poco con la cultura de México. A lo mejor
la pregunta es ¿por qué México todavía no llega a esos lugares? Y yo creo que tiene que ver con
la cultura. Yo creo que tenemos un país maravilloso con muchas opciones y muchas actividades
disponibles y la cultura del mexicano también es mucho de diversión y de dejar las cosas hasta
el final. Los equipos que han ganado las regionales en México han resuelto seis o siete
problemas; sin embargo, cuando llegan a la final mundial pues tenemos un nivel de
competencia diferente, es más difícil y también hay un elemento que yo considero que es muy
importante que es la presión. Yo creo que los muchachos que llegan a la final mundial, los
muchachos mexicanos que llegan a la final mundial no están preparados para el evento. No
están preparados para el evento emocionalmente, la presión, yo creo que es mucha.
Si me permites hacer un simil el concurso de ACM, el concurso internacional, es equivalente a
las Olimpiadas. Es de ese nivel y los muchachos que ganan la final mundial ya sean rusos, o
chinos, o canadienses, son muchachos que dedican mucho tiempo a prepararse para el evento:
es como si fueran las Olimpiadas y los muchachos mexicanos que ganan, son muy buenos, son
muy brillantes y son alumnos, también normalmente de últimos semestres y a la hora que
llegan allá todos emocionados, la presión a la que se enfrentan por no haber tenido a lo mejor
una preparación en cuanto al impacto que tiene esto, los abruma y no los permite desarrollarse
como debiera.
Desde hace tres años tengo yo una hipótesis y estoy trabajando en eso, necesitamos que los
alumnos -hace rato me preguntabas cuáles alumnos o que semestres pueden participarnecesitamos que los alumnos empiecen a participar desde el primer semestre para que cuando
lleguen a cuarto o quinto semestre ya sean lo suficientemente maduros y tenga las suficientes
habilidades para convertirse en campeones regionales y que vayan a la final mundial y que se
enfrenten con el shock de la final mundial y que regresen y que tengan la oportunidad de volver
a ir por una segunda ocasión a la final mundial cuando estén en octavo o noveno semestre.
Entonces cuando logremos que en México llevemos dos o tres o cuatro equipos y que la mitad
de esos equipos sean alumnos de cuarto o quinto que van por primera vez y los otros equipos
sean de octavo y noveno que van por segunda vez, entonces creo que vamos a empezar a ver
resultados en México
developerWorks: Partiendo de este punto y siguiendo con tu símil de que este concurso es
como las olimpiadas, hemos visto como todos los atletas se preparan por años ¿tú has visto en
alguna universidad que haya un grupo de preparación específico para este certamen?
Alberto Lamadrid: Sí, los ha habido a lo largo de los años; sin embargo, han sido esfuerzos
aislados y también, como decía mi jefe aquí en la Facultad de Informática, de cierta forma
elitista y yo creo que lo que tenemos que hacer es buscar que aunque las Olimpiadas sí es
también elitista porque son gente que básicamente vive para eso, lo que tenemos que buscar o
uno de los objetivos que yo tengo es que lleguemos a mucha más base de alumnos para que de
una mayor base de alumnos, todos suban su nivel y entonces tengamos a los más buenos en un
nivel superior.
Por ejemplo, hubo un par de años que la universidad mixteca se puso las pilas y en esos tres
años ganaron las regionales y fueron a la final mundial. Hubo un par de años que el Tec de
Monterrey campus Monterrey se puso las pilas y también llegó, no sé por qué fueron nada más
por periodos de cuatro tres, cuatro años y después baja. Yo creo que debemos tener un o
buscar tener un programa que sea más bien tratar de llegar a todos los alumnos y digamos que
haya mayores candidatos y que todos suban de nivel, pero los mejores van a estar más arriba.
developerWorks: ¿Crees que haya un favorito para este año?
Alberto Lamadrid: En los últimos años ha estado alternando, por ejemplo: el Cimat ha sido un
candidato fuerte, la Universidad de Guanajuto, Cimat. Los dos años pasados, Cuba fue parte de
mi región, este año es ya es una región por sí sola, pero estuvo dos años participando Cuba con
nosotros. Hace dos años uno de los tres lugares de la final mundial fue un equipo cubano y el
año pasado fueron dos equipos cubanos los fueron de nuestra región entonces el año pasado
nada más fue un equipo mexicano porque estabamos participando con los cubanos.
developerWorks: Por último ¿qué mensaje tendrías para los desarrolladores que escuchan
nuestro podcast?
Alberto Lamadrid: Hubo una iniciativa a nivel federal junto con la universidad Carnegie Mellon
y el Software Institute de hacer certificaciones en PCT y TCP, yo creo que una de las cosas para
mejorar en la calidad es medir lo que hacemos y tanto el PCT como el TCP son herramientas
que nos ayudan hacer esto. La otra es que necesitamos ponernos a hacer las cosas, hacerlas
bien y ser consistentes.
developerWorks: Muchas gracias por tu tiempo Alberto.
Muchas gracias, hasta luego.
developerWorks: El talento y la enseñanza de calidad están presentes, sólo es necesario ser
dedicado.
Así sea para un concurso o para un trabajo profesional, developerWorks tiene a tu disposición
artículos, tutoriales, ejercicios y cursos de autoestudio que te ayudarán a incrementar tus
habilidades técnicas.
Para escuchar éste y otros podcasts o para leer artículos y tutoriales de tecnologías de IBM o
abiertas, visita www.ibm.com/developerworks/ssa.
Si tienes algún comentario o te gustaría saber más al respecto, contáctanos en nuestra cuenta
de Twitter dwespanol o envía un correo electrónico.
Descargar