AdaByron es un concurso universitario de programación para alumnos matriculados en las titulaciones de informática de las universidades públicas de la Comunidad de Madrid. No se establecen diferencias entre los distintos grados o itinerarios por lo que permite la participación de cualquier alumno que curse grados de informática, ya sean más orientados a desarrollo software o hardware.
El concurso nació en 2015 con el objetivo de fomentar la participación de los alumnos de la Comunidad de Madrid en los concursos universitarios internacionales como el SWERC pues la representación de las universidades madrileñas había ido bajando en picado. Puedes ver más detalles sobre la historia del concurso en la página sobre su historia.
Los alumnos participan en equipos formados por tres estudiantes. Durante el concurso, los participantes disponen de 5 horas para resolver los problemas propuestos (normalmente entre 8 y 12 problemas). Deben programar sus soluciones en C, C++ o Java.
Las reglas del concurso están diseñadas para que sea cual sea el curso origen de los participantes todos puedan divertirse y disfrutar compitiendo.
Los problemas son siempre aplicaciones de consola. Las soluciones enviadas por los participantes son validadas por un juez automático que las ejecuta de manera autónoma contra un conjunto secreto de casos de prueba establecidos de antemano. El juez, supervisado por jueces humanos, proporciona un veredicto sobre el problema, aceptándolo o marcándolo como incorrecto, pero en ningún caso ofrece información sobre cuál es el error. En caso de que el veredicto indique que la solución es incorrecta el equipo puede realizar envíos posteriores del mismo problema para intentar corregirla.
La dificultad de los problemas varía desde problemas fáciles que pueden ser resueltos por alumnos de un primer curso de programación hasta problemas que requieren técnicas algorítmicas sólo al alcance de alumnos de últimos cursos.
Cada problema tiene un valor en puntos proporcional a su dificultad. El equipo ganador es aquel que al final del concurso ha conseguido más puntos. En caso de empate, ganará el equipo que menos tiempo acumulado haya necesitado para sus envíos correctos. Para calcular el tiempo acumulado por cada equipo se suma el tiempo transcurrido desde el inicio del concurso hasta el instante del primer envío aceptado de cada problema. Por cada envío que haya sido rechazado en esos problemas se añade una penalización extra de 20 minutos. Esta penalización sólo se acumulará en los problemas que hayan sido resueltos correctamente; en caso de problemas no aceptados no se acumulará la penalización al tiempo total del equipo.
Los concursos de programación suponen un reto divertido y un cambio en la forma de aprender programación y algoritmia. En lugar de realizar hojas de ejercicios sin un fin claro, te meten en una dinámica de competición colaborativa no sólo contra el resto de equipos sino también contra el propio juez.
La participación en concursos como AdaByron hará de ti un mejor programador que entenderá la importancia de pensar el problema que tienes delante para valorar sus dificultades antes de lanzarte a resolverlo, y realizar programas robustos que reaccionen bien ante todos los casos posibles del problema.
Los problemas que se ponen en el concurso cubren todos los niveles de programación, desde el nivel más básico al nivel de últimos cursos. Los equipos son categorizados en función del curso de procedencia y, además de la clasificación general, hay una clasificación específica para cada categoría. De esta forma podrás compararte fácilmente (y por tanto competir) con otros participantes de tu mismo nivel incluso aunque haya ejercicios fuera de tu alcance.
El apuntarse a un concurso de programación muchas veces, además, hace que los equipos entrenen para intentar quedar en un buen puesto. Esto, lejos de ser una pérdida de tiempo, supone un incremento de destreza programando que se verá recompensada en las asignaturas que estés cursando.
Por último, nuestra experiencia nos dice que la participación en concursos de programación es un punto a favor también para tu incursión en el mundo laboral. Si consigues un buen puesto en AdaByron no olvides mencionarlo en tu currículum.
Los concursos de programación en general y AdaByron en particular proporcionan al profesor una excusa perfecta para enfrentar a los alumnos a problemas de programación con un componente algorítmico relativamente fuerte que de otro modo sería considerado tedioso y aburrido.
Como hemos dicho antes, los equipos pueden entrenar para el concurso. Cuando un equipo está muy motivado sale de ellos mismos el entrenar fuera de las clases. Pero en realidad también los profesores pueden aprovechar esa motivación y utilizar problemas de concursos para todos los alumnos, participen o no. Esta idea se lleva haciendo ya desde hace algunos años en la Facultad de Informática de la Universidad Complutense de Madrid en asignaturas de segundo (ver los detalles aquí) y la misma idea se ha extrapolado a asignaturas de primero y tercero, todas ellas utilizando problemas del portal Acepta el reto.
Por lo tanto, si eres profesor de asignaturas de programación y/o de algoritmia, sea cual sea el curso, no dejes pasar la oportunidad de animar a tus alumnos e incluso integrar en tus clases los problemas de los concursos y utilizarlos como hojas de ejercicios.