¿A qué te enfrentas?
Aunque el campo de la informática es enorme, la Olimpiada es esencialmente un concurso de programación.
En él te enfrentarás a una batería de problemas que tendrás que resolver con programas escritos en alguno de los lenguajes de programación admitidos (C, C++, Java y, con algunas condiciones, Python 3).
La programación es también en sí misma un campo muy amplio, por lo que los problemas se centran principalmente en cuestiones de algoritmia y estructuras de datos, y se restringen a las aplicaciones de consola. Esto significa que leerán datos de entrada del teclado (entrada estándar) y generarán su salida en la pantalla (salida estándar).
Para prepararte para la competición, tendrás que saber programar, lo que supone tener destreza con variables, condicionales, bucles, arrays... e incluso estructuras como pilas, árboles o grafos.
Y luego... entrenar una y otra vez :-) La mejor preparación es la que proporciona agilidad con el tipo de problemas habituales en las Olimpiadas y otros concursos parecidos.
Si esto te parece muy complicado, ¡no te preocupes! A continuación te proporcionamos algunos recursos para allanarte el camino.
Aprende a programar
El primer paso es aprender a programar. En la fase regional de Madrid los lenguajes admitidos son C, C++ y Java (¡basta con saber uno de ellos!). Existen múltiples libros y recursos en Internet para aprender los conceptos de programación y los tres lenguajes anteriores.
Aprende OI
Tutoriales creados por los responsables de la OIE. Se describen tanto aspectos relacionados con el lenguaje (C++) como con algoritmia.
Descubre
Proyecto de la Universidad de Murcia para aprender a programar on-line usando un lenguaje similar a C++ y Java.
Fundamentos de Programación
Transparencias de la asignatura "Fundamentos de Programación" de la Facultad de Informática de la UCM (C++)
Puedes también revisar las recomendaciones de la Olimpiada Informática Internacional, que sugieren tutoriales y webs donde aprender, así como una lista de libros relacionados con la programación y la algoritmia.
Practica, practica, practica
La mejor forma de aprender a programar es programando. Existen muchas plataformas en línea con problemas similares a los de competiciones como las olimpiadas que, además, permiten enviar tus soluciones y comprobar si son correctas. También hay competiciones en línea a lo largo del año que permiten simular (desde casa) la experiencia de la competición.
Aquí van nuestras recomendaciones:
¡Acepta el reto!
Juez en línea en español con infinidad de problemas. Hemos preparado además una página para que sigas tu progreso si utilizas esta plataforma.