De ex-olímpico a olímpico
Participar en las Olimpiadas de Informática es una experiencia muy gratificante. La gente que se conoce en el evento puede ser considerada como la gente más capaz de tu edad, reunida con la idea no solo de competir sino también de pasar un buen rato. Además de la gente que uno conoce lo mejor es poder obtener un viaje gratis a lugares donde probablemente nunca has estado. Usualmente los organizadores prestan atención a la organización del evento y procuran que sea una experiencia no solo educativa, sino disfrutable. Con suerte el año que participes te tocará ir a una playa en Yucatán, o a un pintoresco hotel en Morelos. Y por si fuera poco la presidencia de la República anunció recientemente que se otorgarán becas a los ganadores de las Olimpiadas de la Ciencia. En el 2008 Miguel Ángel Covarrubias, uno de los medallistas mexicanos de la Olimpiada Internacional de Informática, recibió $100,000 M.N. como reconocimiento del Grupo Salinas.
Así es que puedes tener la oportunidad de participar no solo en las Olimpiadas nacionales, sino ir a un internacional y conocer lugares del mundo completamente gratis para después recibir reconocimiento y apoyo del gobierno para continuar tus estudios, también completamente gratis.
La verdad sea dicha, "completamente gratis" no es completamente cierto. Si bien uno no paga en dinero para participar en las Olimpiadas uno paga en esfuerzo. La intención de las Olimpiadas es promover el interés y aprendizaje de ciencia y tecnología en personas jóvenes. Participar a nivel local es relativamente fácil, pero llegar a la olimpiada internacional no lo es tanto.
Los siguientes tips pueden serte útiles para la preparación de la Olimpiada de Informática
Procura estudiar por ti mismo lo más que puedas. Si bien algunos estados cuentan con apoyo para los estudiantes que desean participar en la Olimpiada no todos tienen la amplitud o profundidad en los temas que muchas veces se requiere para tener éxito en el evento.
Empieza por aprender bien elementos básicos del lenguaje con el cual quieras participar en la Olimpiada. Lo que realmente debes de saber de tu lenguaje es: 1) declaración y manipulación de variables, 2) declaración y manipulación de arreglos 3) condicionales con If 4) Ciclos, con límites (ciclos for) y sin límites (ciclos while) 5) declaración y manipulación de estructuras 6) declaración de procedimientos y funciones 7) lectura y escritura de archivos de texto. Te aseguro que no necesitas nada más de estos elementos para resolver cualquier problema que te den.
Cuando tengas un problema nuevo trata de categorizarlo como problemas de búsquedas, problemas de grafos o problemas de programación dinámica. Una vez que determinas la categoría de problema puedes pensar en algoritmos que puedes aplicar para resolver el problema. Después de definir la categoría comienza por definir la estructura de datos (variables, arreglos, estructuras, etc.) que usaras para resolver el problema. Finalmente diseña los algoritmos que manipularan esas estructuras de datos entre la entrada que recibiste y la salida.
Trata de hacer problemas de diverso tipo de forma contante. Puedes empezar por leer algunos libros en algoritmos recomendados abajo en la sección de material recomendado. Rara vez los problemas de la Olimpiada son aplicaciones directas de lo que se ve en los libros, pero usualmente puedes convertir los problemas que te dan en algo conocido. Por eso es esencial que tengas tus bases bien respecto a los algoritmos más conocidos y explicados en los libros.
Cuando estés trabajando en un problema, empieza por entenderlo correctamente y considerar casos sencillos. A veces trabajando en 2 o 3 casos sencillos te das cuenta de cómo puedes hacer una versión general de la solución.
No te limites solo a leer los problemas o a generar ideas sobre él. Siéntate y trabaja en ellos y asegúrate de que funcione correctamente. Si viene un ejemplo de entrada y salida del problema asegúrate de que tú programa puede reproducir el caso dado.
Resolver un problema de las olimpiadas de informática tiene mucho que ver con poder asociarlos con patrones presentes en tu mente. Mientras más problemas resuelvas con éxito durante tu periodo de práctica más fácil te resultará poder resolver nuevos problemas, porque tendrás más patrones de solución presentes.
Cuando estés en el concurso no pierdas tiempo. En promedio debes de resolver cada problema en una hora. Jamás dejes pasar el tiempo sin escribir algo en papel o en la computadora. Si no estás seguro de qué hacer, comienza por declarar las variables donde guardarás los datos de entrada y salida para el problema, así como los procedimientos para leer y escribir estos datos en el disco duro.
Trabaja, practica, programa ejemplos, lee, trabaja, practica, ....
Finalmente recuerda que todo el trabajo duro es para tu beneficio. Si participas en una Olimpiada a nivel internacional cualquier universidad de aceptará incondicionalmente. El evento es algo que puede ayudar a tu currículo para el resto de tu vida para conseguir acceso a trabajos mejor pagados; créeme, si abre puertas. Incluso si eres realmente bueno es posible que tengas ofertas de trabajo de compañías prestigiosas para cuando termines tus estudios (mucha de la gente que conocí en la Olimpiada y que fueron al evento internacional se encuentran actualmente trabajando en Microsoft o Intel; claro que trabajan mucho, pero les pagan aun mas).
El objetivo de esta página es ser un portal para ti que deseas participar en la Olimpiada de Informática. Si quieres información básica sobre la Olimpiada de Informática por favor continua leyendo y sigue cualquiera de las ligas que te interese. El resto de esta página está organizada en términos de preguntas y respuestas típicas de personas que desean participar en la Olimpiada de Informática.
Si no estás interesado en Informática pero si en las Olimpiadas de la ciencia puedes visitar las páginas hermanas de esta.
¿Qué son las Olimpiadas de Informática?
La Olimpiada Mexicana de Informática es una de las Olimpiadas de Ciencia más jóvenes. Como con todas las demás Olimpiadas de la Ciencia es parte de un proceso de selección que lleva a los mejores concursantes a participar en la Olimpiada Internacional de Informática. Como todas las demás Olimpiadas de la Ciencia la Olimpiada Internacional de Informática está respaldada por la UNESCO, que inició y propuso la primera edición del concurso en 1989 en Bulgaria. Desde entonces se ha llevado a cabo de manera anual alrededor del mundo. De hecho en 2006 México fue el país anfitrión para el evento, que se llevo a cabo en Mérida, Yucatán. Este año la Olimpiada Internacional se llevó a cabo en El Cairo, Egipto del 16 al 23 de agosto. La siguiente se llevará a cabo en Plovdiv, Bulgaria del 8 al 15 de agosto del 2009.
El objetivo de la Olimpiada de Informática es estimular el interés y aprendizaje de algoritmos, ciencias computacionales y tecnología de la información en alumnos de secundaria y preparatoria menores de 18 años. El otro objetivo importante del evento es juntar estudiantes excepcionales de diversos países durante una semana para que compartan experiencias científicas y culturales.
¿Cómo funciona la Olimpiada Internacional de Informática?
Cada año los países que desean participar en la Olimpiada Internacional mandan una delegación formada por 4 estudiantes y 2 delegados al país anfitrión. El evento dura una semana entera, de los cuales solo dos días son asignados para competencia. Durante los días de competencia los estudiantes participan de manera individual y reciben puntos por resolver adecuadamente los problemas asignados por el Comité organizador. Tradicionalmente los estudiantes reciben 3 problemas cada día de competencia, que deben de ser resueltos usando una computadora en un término máximo de 5 horas. Las soluciones deben de ser entregadas en la forma de programas compilados en C, C++ o Pascal.
Los participantes reciben puntos en la medida que sus programas resuelvan el problema para el cual fueron diseñados. El Comité de la Olimpiada utiliza un software automatizado para evaluar que tan correcta es la solución programada por cada participante. Acompañados por un delegado, cada participante regresa al cuarto donde la evaluación se realizo, donde observa a una computadora de evaluación proveer distintos datos de entrada a su programa, asignando puntos por cada caso que correctamente es resuelto. Al finalizar el software de evaluación realiza una copia en un diskette del programa del participante, los casos con los cuales fue evaluado, las respuestas dadas por el programa evaluado, y las respuestas correctas. Este diskette es entregado al participante, que puede después revisar sus soluciones.
Además de las evaluaciones, los participantes de la Olimpiada Internacional disfrutan de eventos culturales organizados por el Comité durante los 5 días que no son utilizados para la competencia. Al igual que las demás Olimpiadas de la Ciencia, uno de los mayores atractivos de la Olimpiada Internacional de Informática es tener la oportunidad de conocer lugares interesantes, con todos los gastos de viaje pagados.
¿Cómo funciona la Olimpiada Mexicana de Informática?
El objetivo de la Olimpiada Mexicana de Informática consiste en encontrar a los mejores y más preparados estudiantes para participar en la Olimpiada Internacional. Debido a esto, el formato de la Olimpiada Mexicana de Informática es muy similar al formato de la Olimpiada Internacional. Tradicionalmente cada estado que desea participar envía una delegación de 6 estudiantes y 2 delegados. La Olimpiada Mexicana usualmente dura 4 días, durante los cuales se realizan dos evaluaciones. Durante cada evaluación los participantes reciben 3 problemas a ser resueltos en 4 horas, con la ayuda de una computadora. Los programas luego son evaluados usando el mismo software y método que en la Olimpiada Internacional. Al finalizar los 2 días de competencia, un anuncio es realizado indicando la selección de 6 pre-candidatos para la delegación de la Olimpiada Internacional.
Estos 6 pre-candidatos realizan dos distintas evaluaciones en fechas posteriores, que usualmente son acompañadas con entrenamiento por parte del Comité Organizador de la Olimpiada Mexicana de Informática. Los cuatro mejores participantes son después elegidos para asistir a la Olimpiada Internacional.
¿Hay algún sitio oficial para la Olimpiada de Informática?
Si, existe una página dedicada a la Olimpiada Mexicana de Informática donde puede encontrar información general, material de estudio, un calendario de las etapas de la Olimpiada e información sobre la Olimpiada en curso, entre muchas otras cosas. Este sitio también administra el examen abierto nacional por Internet. Si quieres participar en la Olimpiada del 2009 no olvides registrarte en Noviembre y Diciembre de este año.
También existe una página oficial para la Olimpiada Internacional de Informática, donde se puede encontrar páginas con problemas de Olimpiadas anteriores (desde 1989) e información general para participantes entre muchas otras cosas. La página también incluye una base de datos con resultados en Olimpiadas anteriores por país y por año. México ha conseguido 7 medallas de bronce y una de plata hasta 2008:
Los 7 medallistas de Bronce
1993 (Mendoza, Argentina): Cesar Arturo Cepeda García ( Cecyt 9 del IPN )
1999 (Antalya, Turquía): Alejandro López Baragaño ( ITESM Campus Estado de México )
2002 (Yong-In, Corea del Sur): Jorge del Río Santiago ( Escuela Preparatoria Regional de la Barca Jalisco U de G )
2005 (Nowy Sacz, Polonia): Luis Enrique Vargas Azcona ( Instituto de Ciencias en Zapopan, Jalisco )
2006 (Mérida, México): Luis Enrique Vargas Azcona ( Por segunda vez! )
2007 (Zagreb, Croacia): Miguel Ángel Covarrubias Sánchez ( Colegio Americano de Durango, Durango )
2008 (Cairo, Egipto): Rodrigo Santiago Nieves ( Cecyt 9 del IPN )
El medallista de Plata
2008 (Cairo, Egipto): Enrique Lira Vargas ( Cecyt 9 del IPN)
El ganador de 1993 fue César Arturo Cepeda García, quien es ahora el delegado internacional de México en las Olimpiadas Internacionales, y miembro actual del Comité Científico de la Olimpiada Internacional de Informática. La medalla de plata es un logro reciente de Enrique Lira, estudiante del Cecyt 9 del Instituto Politécnico Nacional. La Jornada publico recientemente un artículo sobre Enrique Lira y Rodrigo Nieves. También puedes ver una nota relacionada en la página oficial de la presidencia de la república.
¿Cuáles son los requisitos para participar en la Olimpiada Mexicana de Informática?
Pueden participar todos aquellos jóvenes que cumplan con los siguientes requisitos:
Estar inscrito en alguna escuela de nivel medio, escolarizado o no escolarizado (secundaria y preparatoria)
Ser mexicano
Ser menor de 20 años a la fecha del concurso Internacional (verano del siguiente año del que se inicia la OMI, la fecha exacta se detallará en la convocatoria de cada año)
Estar a lo más inscrito en 2° año de preparatoria o equivalente
¿Cuándo se realiza la Olimpiada de Informática?
Las Olimpiadas de Informática se llevan a cabo por etapas cada año desde un concurso abierto nacional en Enero o Febrero hasta la eventual participación de 4 estudiantes en la Olimpiada Internacional que se lleva a cabo de Julio a Septiembre. Las etapas están descritas en la página de introducción de la página oficial de la Olimpiada Mexicana de Informática, copiadas a continuación
Inscripciones (Noviembre, Diciembre y Enero)
Examen abierto Nacional por Internet (Enero-Febrero)
Examen escrito Estatal (Marzo)
Examen práctico Estatal (Abril)
Entrenamiento de las selecciones Estatales (Abril-Mayo)
Examen Practico Nacional (Mayo)
Entrenamiento y exámenes por Internet para la Preselección Nacional (Junio - Marzo siguiente año)
Entrenamiento y exámenes presenciales para la Preselección Nacional (Marzo)
Entrenamiento de la Selección Nacional ante la IOI (Junio-Julio)
Participación en el concurso Internacional - IOI (Julio-Septiembre)
Así pues las siguientes fechas importantes para participar en la Olimpiada son los próximos meses de Noviembre, Diciembre y Enero cuando quienes lo deseen deben de registrarse en el examen abierto Nacional por Internet administrado por el sitio oficial de la Olimpiada Mexicana de Informática. También es recomendable verificar con tu coordinación estatal los eventos anuales relacionados con la Olimpiada.
Este calendario te puede ayudar a visualizar las fechas importantes en varios estados.
¿Qué necesito saber para participar en las Olimpiadas de Informática?
En términos de conocimiento, la Olimpiada de Informática no requiere conocimientos extensos sobre algún lenguaje de programación, sino sobre algoritmos, esto es, sobre la forma de resolver problemas. Tener conocimientos previos básicos sobre alguno de los lenguajes de programación usados en la competencia (C, C++ o Pascal) es deseable, pero no absolutamente necesario, ya que puede ser aprendido junto con el material que debe de ser estudiado para el concurso.
Algunas de los temas que son recomendables para aprender con el objetivo de asistir a la olimpiada son
Ordenación
Búsquedas
Estructuras de Datos: pilas, colas, colas de prioridad, árboles
Recursión y búsqueda exhaustiva
Teoría y algoritmos de grafos
Teoría y práctica de programación dinámica
Teoría y práctica de juegos (algoritmos minimax)
Algoritmos en cadenas de caracteres
Conceptos básicos sobre análisis de complejidad de algoritmos
Tradicionalmente no se requiere conocimientos avanzados de matemáticas para la Olimpiada de Informática. Por lo tanto no se necesita aprender algoritmos para la solución de problemas numéricos.
Respecto al lenguaje de programación que se quiera usar, los siguientes conceptos son necesarios
Declaración de variables
Tipos de datos
Entrada de datos por teclado y/o lectura de datos archivos
Salida de datos por pantalla y/o escritura de archivos
Condicionales (estructuras if)
Ciclos limitados (for)
Ciclos ilimitados (do..while o repeat, while)
Arreglos
Estructuras y declaración de tipos de datos
No se necesita conocimientos sobre apuntadores o aspectos avanzados del lenguaje elegido, aunque claramente es una ventaja.
¿Cómo me preparo para participar en las Olimpiadas de Informática?
Varios estados ofrecen apoyo para la preparación de participantes en la etapa estatal de la Olimpiada Mexicana de Informática. Sin embargo la realidad es que varios de estos programas de apoyo quedan un poco cortos para el examen nacional. Lo mejor que uno puede hacer para asegurar una participación exitosa en el concurso nacional es leer y estudiar material de apoyo y libros sobre algoritmos así como practicar la programación de todo aquello que se estudia. Estos dos puntos son la clave real para el concurso y difícilmente pueden ser remarcados de más.
Los compiladores oficiales para la Olimpiada Mexicana de Informática son Free Pascal y Gnu C Compiler. Dependiendo de en que lenguaje se quiera trabajar es altamente recomendable instalar uno de estos compiladores y usarlos para practicar problemas y reproducir códigos de materiales de apoyo.
En la opinión de Enrique Luis Vargas Azcona, ganador de 2 medallas de bronce en la Olimpiada Internacional de Informática, es que la única forma de ser hábil en concursos de programación es MPS, "Massive Problem Solving", es decir, resolver muchos problemas para desarrollar la habilidad de aplicar algoritmos conocidos en situaciones exóticas. El mismo declara que dedica aproximadamente 90% de su tiempo a resolver problemas y 10% de su tiempo a leer libros y tutoriales de algoritmos.
De manera similar César Cepeda, delegado actual de la Olimpiada de informática, lo más importante para poder abordar problemas de la Olimpiada es precisamente practicar muchos problemas hasta que se desarrolle el instinto para saber que conocimientos utilizar en la resolución de un problema dado. El documento introductorio de temas básicos en la página oficial de la Olimpiada Mexicana de Informática contiene una introducción a lo mínimo necesario que se requiere para abordar problemas de la Olimpiada, así como un recuento de las dificultades típicas que existen en problemas de programación.
Finalmente quiero compartir en esta sección una anécdota personal. Después de mi primera participación en la 2a Olimpiada de Informática en 1997 en la cual logre un tercer lugar nacional con un puntaje de 9/300 (si, está bien escrito... el primer lugar nacional consiguió 29/300) me di cuenta de la cantidad enorme de cosas que no sabía para la Olimpiada. Regresando a mi Estado un profesor me ofreció crear un curso para "ponernos al nivel" del concurso. Durante un año nos juntamos una vez por semana para estudiar lenguajes de programación, y jamás aprendimos nada de algoritmos. Cada vez que le preguntaba al profesor sobre el material que nos faltaba me decía "No te preocupes, lo vamos a cubrir. Solo ten paciencia". Cuatro semanas antes de concurso nacional por fin me di cuenta de algo obvio: no íbamos a aprender nada de lo que necesitábamos en el curso, y el profesor no tenía ni la intención ni el interés ni el nivel de conocimiento para hacerlo. En esas 4 semanas trate de aprender todo el material que pude de los temas incluidos arriba, y aunque logre pasar a la etapa de preselección nacional no logre quedar en la delegación final. El punto de esta anécdota para futuros participantes es: traten de estudiar por ustedes mismos la mayor cantidad de material posible en la mayor cantidad de tiempo posible. A veces quien gana en las Olimpiadas de la Ciencia no es quien sabe más, sino quien está más motivado y dedica más tiempo a practicar (casi como si fueran Olimpiadas deportivas).
¿Existe alguna fuente o sitio de internet que me recomienden para estudiar el material?
En la opinión del editor de esta página (participante de la Olimpiada Nacional de Informática en 1997 y preseleccionado Nacional en 1998) el mejor libro para aprender varios de los temas requeridos para la Olimpiada Mexicana de Informática es el libro de Algoritmos en C++ de Robert Sedgewick. Este libro existe para distintos lenguajes. La versión para Pascal esta titulada Algorithms (si, lamentablemente solo está en inglés), mientras que hay una versión para C y para Java también. Las versiones electrónicas para Pascal y para C están disponibles en Badongo.com. Estos libros incluyen código muy corto para varios de los problemas típicos que se encuentran en la Olimpiada, así como diagramas mostrando el funcionamiento de los mismos. Este libro es excelente para todos los temas de la Olimpiada (especialmente algoritmos relacionados con grafos), pero carece de una buena explicación para recursión. Para el tema de recursión el capítulo 3 del libro Algoritmos + Estructura de Datos = Programación de Niklaus Wirth (el autor del lenguaje Pascal) es realmente útil. Una versión electrónica se encuentra en Bandongo.com.
Un recurso en línea muy valioso es la página de Algoritmia en español que contiene muchos documentos explicando los algoritmos básicos que encontrarás en la Olimpiada, así como muchísimos ejemplos de los algoritmos en lenguaje C/C++. También vienen implementaciones y explicaciones de estructuras de datos básicas que se utilizan para diversos problemas de la Olimpiada. Un recurso similar es la página oficial de Manuel Martínez Ortiz, delegado de Puebla. Su página contiene muchísimos ejercicios, ejemplos y notas de técnicas básicas, escritas en Pascal.
En la página oficial de la Olimpiada Mexicana de Informática existe una lista de bibliografía recomendada para la Olimpiada. El sitio también contiene documentos desarrollados por miembros del Comité Nacional orientados como introducción a algunos temas para participantes, como estructuras de datos, recursión y análisis de complejidad. También existen animaciones muy buenas en Flash que ilustran ordenación por montículo (heapsort), búsquedas en amplitud (1 y 2), búsquedas exhaustivas, búsquedas en profundidad, visitas de árboles (1, 2 y 3) programación dinámica (1 y 2); realmente vale la pena verlas y estudiarlas.
La página oficial de la Olimpiada Internacional también contiene una lista de libros similar a la de la Olimpiada Mexicana.
La página no oficial de la IOI que fue mantenida por la Universidad de Eindhoven de 1992 al 2006 contiene también una extensiva lista de fuentes bibliográficas para estudio. Esta página también contiene un archivo de problemas de Olimpiadas Internacionales anteriores al 2006; el sitio no solo se utilizó para hacer una base de datos de los problemas, sino también de las correspondientes soluciones e incluso documentos pdf con las soluciones a los problemas, programas codificados por los organizadores y casos usados para evaluación en algunos problemas. El formato del sitio no es homogéneo, así que a veces requiere un poco de creatividad y paciencia encontrar las soluciones oficiales a los problemas. La página de la Olimpiada Mexicana de Informática contiene archivos ZIP con problemas de Olimpiadas nacionales en formatos PDF y Word. El zip con archivos PDF contiene un archivo con tips para algunos problemas.
Otro recurso útil es ver sitios de concursos nacionales de Informática en otros países, así como las páginas estatales citadas en la siguiente sección.
Si deseas ver algunos problemas con soluciones puedes checar la página personal de Pier Paolo Guillén Hernández. Su página contiene diversos problemas de la Olimpiada Mexicana de Informática y del ACM-International Collegiate Programming Contest (ACM-ICPC). El ACM-ICPC es un concursos similar a la Olimpiada de Informática, enfocada a estudiantes de Universidad pero con muchas semejanzas. De hecho puedes utilizar el repositorio de problemas del ACM-ICPC como uan fuente alternativa para estudiar. De esta manera también estarás listo para participar en el concurso cuando estés en Universidad.
¿Me pueden recomendar algunos problemas básicos para empezar, una preparación básica?
Puedes comenzar por problemas que son más matemáticos en forma mientras mejoras tus técnicas de programación. Una posible lista de problemas básicos puede ser encontrada en una de las páginas de preparación de la Olimpiada de Informática de Argentina. Algunos problemas matemáticos con soluciones pueden ser encontrados en MathsChallenge; esta última página de hecho es recomendada en la sección de ligas de la página oficial de la olimpiada nacional.
¿Hay alguna página para mi estado?
Las siguientes páginas contienen información sobre las Olimpiadas estatales de informática así como material de estudio en algunas. Si vives en alguno de los siguientes estados por favor contacta al responsable del mantenimiento de la página para mayores informes. Si tu estado no está listado puedes visitar cualquiera de las páginas para encontrar material de estudio para los concursos locales y nacionales como páginas Web y en documentos pdf.
Página oficial de olimpiada estatal en Chihuahua
Página oficial de olimpiada estatal en Jalisco
Página oficial de olimpiada estatal en Oaxaca
Página oficial de olimpiada estatal en Coahuila
Página oficial de olimpiada estatal en Puebla
Página oficial de olimpiada estatal en DF y Estado de México
Página oficial de olimpiada estatal en Aguascalientes
Página oficial de olimpiada estatal en Nuevo León (Versión nueva)
Página oficial de olimpiada estatal en Nuevo León (Versión antigua, con material de estudio para todos los niveles)
Página oficial de olimpiada estatal en Guanajuato
Información de apoyo en Veracruz en el Laboratorio Nacional de Informática Avanzada
¿Dónde y cómo puedo practicar?
En internet hay una multitud de sitios donde puedes entrenar, la mayoría de los sitios consisten en jueces virtuales en los cuales se almacenan una gran cantidad de problemas y en los que se pueden probar la validez de tus programas, algunos de estos sitios son:
Topcoder - Competencias de programación semanales.
USACO - Página oficial de la Olimpiada de Computación de Estados Unidos.
ACM-ICPC Live Archive y UVa Online Judge (old page) - Contiene problemas de concursos regionales y mundiales del ACM-ICPC (competencia de programación para universitarios).
University of Zhejiang Online Judge - Juez en línea con muchos problemas
Peking University Online Judge - Otro juez en línea. Este tiene una liga para bajar el juez a tu computadora.
Proyecto Euler - Problemas matemáticos y computacionales que también pueden ser evaluados en línea.
Sphere Online Judge - Otro juez interesante, con gran variedad de problemas.
Algorithmist.com - Ligas a otros jueces, herramientas y con un calendario actualizado de concursos realizados en línea