Acerca de CoderPeru, lee sobre nosotros
AdministradorCoderPeru es una comunidad de programación competitiva. Organizamos entrenamientos y concursos, para los programadores de todo el Perú. Nuestro objetivo es proporcionar una plataforma a los programadores para conocer, competir y divertirse. Aquí encontrarás toda la información de nuestra web y también podrás descargar estos contenidos y el Manual de Usuario en la sección de "Descargas".
1. Información General
2. Sobre los Usuarios
3. Sobre los Eventos
4. Sobre los Problemas
6. Sobre los Concursos
5. Sobre los Entrenamientos
7. Sobre las Soluciones
8. Sobre el sistema de calificación
1. Información General
¿Qué es CoderPeru?
Coderperu es una plataforma orientada a la programación competitiva. Dirigido a la comunidad universitaria de todo el Perú y en especial a los alumnos de todas las escuelas de la Facultad Ingeniería. Coderperu Es un portal web con contenidos educativos hechos para aprender, competir y divertirse.
¿Qué es la programación competitiva?
La programación competitiva se podría resumir como “Dado un conjunto de bien conocidos problemas de las Ciencias de la Computación, resolverlos lo más rápido y eficientemente posible”. Esta definición nos lleva a conceptualizar que la programación competitiva consiste en: Competir por ser el mejor en la resolución de problemas de la Ciencias de la Computación. En ella prima el trabajo en equipo, el análisis de problemas y el desarrollo rápido de soluciones.
La programación competitiva surge a inicios de los años 70, cuando un grupo de estudiantes de la Universidad A&M de Texas, Estados Unidos, deciden hacer una competencia para saber quién de ellos era el más eficiente programador. Siete años después esta competencia se convirtió en un evento Inter universidades con varias rondas clasificatorias. Actualmente la Internacional ACM-ICPC es la principal promotora de estos eventos. Con presencia en más de 90 países, la participación de más de 1800 universidades y un estimado de 20000 participantes ACM-ICPC congrega cada año estudiantes de todo mundo en un campeonato mundial cuyo fin principal es develar al mejor programador.
En el Perú, grupos no gubernamentales y sociedades privadas como la SPC (Sociedad Peruana de Computación), la CPC (Concurso Peruano de Programación) en coordinaciones con la ACM-ICPC Perú han venido promoviendo estas actividades hace algunos años. Estudiantes universitarios de nuestro país han encontrado en estos eventos nuevas oportunidades de desarrollo intelectual y profesional, un ejemplo claro fue cuando un equipo peruano clasifico por primera vez al campeonato mundial del año 2011 realizado entonces en Orlando, Estados Unidos quedando entre los 100 mejores equipos del mundo. El campeonato mundial de la ACM-ICPC ha tenido presencia de equipos peruanos también en el año 2012 y 2013.
Proyecto CoderPeru
Coderperu es un proyecto de unir las personas interesadas en la programación y la programación competitiva. Por un lado, Coderperu pretende ser una red social orientada al campo de la programación. Por otro lado, es una plataforma en la que se realizan eventos competitivos con regularidad, eventos a los que llamaremos “concursos”. Las habilidades de los participantes se reflejan mediante un “sistema de clasificación” y los anteriores concursos se pueden utilizar para las practicas diarias, a estos eventos llamaremos “entrenamientos”, dicho en si para futuros concursos.
Coderperu desarrolla concursos, esta siempre actualizado y orienta al participante con contenidos de aprendizaje. Coderperu se dedica a la formación y el aprendizaje y está estrictamente desarrollado bajo las reglas y condiciones del Concurso Internacional de Programación Colegiada ACM-ICPC.
Coderperu esta operado por alumnos de pregrado de distintas universidades del Perú. La comunidad Coderperu no es sólo una plataforma de concursos, es una comunidad de programadores que aspiran a cada vez más. Apoyamos a todos los que quieran iniciar su propio capítulo en el campo competitivo de la programación.
¿A quién está dirigido?
Coderperu está dirigido principalmente a estudiantes universitarios de cualquier rama de la Ingeniería de todas las universidades del Perú.
Es una herramienta totalmente gratuita que sirve de soporte a quien le interese la programación y la competencia, guiándolo a dar el paso entre el NO SABER COMO hasta el SABER QUE HACER.
Coderperu comienza por ser la primera puerta al mundo programador, desarrollando desde concursos muy sencillos hasta llegar a niveles altos como los requeridos en los eventos nacionales y campeonatos mundiales. Coderperu sigue una ambiciosa ruta y pretende ser reconocido como formador de los mejores competidores del Perú.
¿Cuáles son sus objetivos?
Coderperu tiene por objetivo general servir a jóvenes universitarios en formación interesados en la programación, destacando:
- Organizar concursos de programación propios e incentivar a otras instituciones a organizarlas, usando la plataforma Coderperu como soporte confiable.
- Servir a la comunidad de programadores como una plataforma que les brinde desafíos constantes tanto en la práctica, competencia y mejora de sus habilidades, permitiéndoles a la vez comparar sus avances con la de sus compañeros, comprometiéndoles así, a una superación sostenida.
- Fortalecer la cultura de participación en concursos de programación a la comunidad universitaria, ayudándoles a fortalecer su nivel de competitividad en dichos eventos.
- Fortalecer la participación de los concursantes en torneos internacionales como ACM-ICPC, Google Codejam, Facebook Hackercup , entre otros.
¿Qué servicios ofrece?
Coderperu ofrece una plataforma de competencias online, nuestras actividades y servicios ofrecidos están distribuidos de la siguiente manera:
- Introducción y conocimiento básico 10 %
- Capacitaciones y guías 10 %
- Entrenamientos y Concursos 50 %
- Conectar a gente con el mismo interés (comunidad) 20 %
- Promocionar nuestras actividades en otras organizaciones 10 %
Coderperu plantea una estrategia de enseñanza, orientación y competencias.
2. Sobre los Usuarios
Los usuarios en nuestra plataforma web se identifican con un nombre y una contraseña, datos que son elegidos personalmente al momento del registro. Los usuarios brindan también una cuenta de correo valida que servirá para poder mantenerlos informados sobre cambios, noticias y eventos en nuestra web. Cabe mencionar también que los datos proporcionados por los usuarios están bajo estricto régimen de las políticas de privacidad establecidas para el correcto uso y protección de los mismos. Lea más sobre nuestras políticas de privacidad.
3. Sobre los Eventos
En general dos tipos de eventos son celebrados en Coderperu. Los entrenamientos y los concursos. Cada uno de estos eventos se identifica por su nombre “Training” en el caso de entrenamientos y “Contest” en el caso de concursos.
Tipos de evento
Los eventos se diferencian entre sí por su nivel de dificultad, esta diferencia se identifica por el rotulo al final del nombre del evento, por ejemplo: “Training Round # 1 Inicia”.
i. Inicia
Los eventos de este tipo son creados y propuestos para participantes que están dando sus primeros pasos, si bien su nivel de dificultad no es complejo, estos problemas enseñan los primeros métodos y técnicas de codificación.
ii. Prime
Los eventos Prime, son los que preparan a los participantes para exigencias mayores, los niveles de dificultad de este tipo de eventos pueden llegar a ser altos y desarrollarlos pueden requerir técnicas de desarrollo. Esto conlleva al participante a mejorar su calidad de programador de soluciones.
iii. Plus
Este tipo de eventos identifican aquellos entrenamientos y/o concursos realizados por terceros usando nuestra plataforma, un evento personalizado estará dirigido hacia un grupo determinado de participantes.
Importante: Tanto los entrenamientos como los concursos se identificarán siempre con un tipo de evento, de esta manera el participante no encontrará dificultades para participar del que más le convenga.
4. Sobre los Problemas
Los problemas propuestos en nuestra plataforma están orientados a la mejora continua de los participantes en el desarrollo de soluciones. Un problema propone un reto al participante mediante una descripción y solicita una solución. Un problema en Coderperu está compuesto de la siguiente manera:
a. Descripción
Describe el problema en su totalidad, propone el reto que el participante debe asumir e incluye ejemplos y casos de prueba para su mayor comprensión.
b. Input
Son los datos que el sistema propone al participante para que pueda operarlos y a través de ellos encontrar una solución al problema, denominados como “casos de entrada” su uso y valor estarán definidos en la descripción del problema. Un problema define una cantidad exacta de casos de entrada, por ejemplo 100.
c. Output
Son los datos que se espera el participante dé cómo solución al problema, de acuerdo a la cantidad de casos de entrada, cada respuesta en la salida corresponde a un caso de entrada, por ejemplo si los casos de entrada de un problema tienen un valor de 100, los datos en la salida estarán compuestos de 100 respuestas.
d. Puntaje
El puntaje indica el nivel de dificultad de un problema, a mayor puntaje, mayor dificultad. Los puntajes de los problemas se usan para medir la capacidad y/o rapidez del participante para encontrar una solución, siendo el valor superior de donde se descuentan puntos usando un valor de penalidad.
e. Penalidad
La penalidad de los problemas permite la reducción de puntos otorgados al participante al momento de encontrar una solución correcta, multiplicado por un factor “K” establece puntuaciones distintas para cada participante. Por ejemplo para todos los problemas cuyo puntaje PA sea menor o igual a 500 el valor de penalidad será 2, entonces:
Puntaje de la solución correcta = PA – (2 x K)
Donde K es un factor distinto para cada tipo de evento.
Especificamos el valor de K como:
K = tiempo (en minutos) transcurrido en el evento. Si el problema pertenece a un concurso en ejecución.
K = numero de soluciones correctas enviadas anteriormente. Si el problema pertenece a un entrenamiento activo.
6. Sobre los Concursos
Los concursos celebrados son el evento más importante de nuestra plataforma, de la mano con el sistema de calificación permiten al participante medir sus progresos en el desarrollo de soluciones.
a. Estructura
Siguiendo un único modelo de competencia los concursos están compuestos por cinco problemas y tienen una duración de dos horas, siempre y cuando este tiempo no sea modificado y anunciado por el administrador. Los problemas son propuestos con diferentes niveles de dificultad. En la práctica se establece que; el problema uno tiene una dificultad menor que el problema dos, de modo que el problema dos tiene una dificultad menor que el problema tres, y así consecutivamente. La dificultad del problema pretende el crecimiento lógico de cada participante.
b. Registro de participantes
El registro de participantes para un evento de tipo concurso está establecido entre dos fechas. El registro estará disponible desde el momento en que el evento es publicado, hasta la fecha y hora que se indican en los datos del concurso. Una vez pasada la fecha de registro, no se admitirán más participantes, lo que convertirá al evento en único y exclusivo para los registrados en el plazo otorgado. Un participante no registrado, podrá ver los problemas y el desarrollo del evento en su clasificación, mas no podrá enviar soluciones a la misma.
c. Desarrollo
El concurso inicia y finaliza en el plazo establecido. Al iniciar un concurso, su tabla de clasificación final está vacía. Solo durante y mientras el concurso este activo los participantes pueden enviar soluciones y las actualizaciones en la tabla se rigen a las siguientes condiciones:
- Si un participante envía una solución correcta para un problema, se le otorga un puntaje y aumenta su acumulado de puntos.
- Si un participante envía una o más soluciones incorrectas para un problema, se le asigna un puntaje negativo correspondiente a cuantas veces ha fallado. Por ejemplo (-1) indica que el participante tiene una solución incorrecta para el problema.
- Si un participante envía una solución correcta para un problema después de haber enviado una o más incorrectas, se borra el puntaje negativo, se le otorga un nuevo puntaje y se aumenta su acumulado de puntos.
- El puntaje otorgado por una solución correcta solo es modificado la primera vez, si un participante envía varias soluciones correctas o incorrectas después de esta, su primer puntaje no es modificado.
- Los puntajes de cada solución correcta de un problema serán cada vez menores y difieren de los puntajes otorgados en los entrenamientos por la aplicación de la penalidad a la solución. Por ejemplo: Si el problema uno tiene un puntaje igual a 500, una penalidad igual a 2 y el tiempo transcurrido desde el inicio del concurso hasta el momento de ser enviada al solución es igual a 10 minutos. Dicha solución recibirá un total de 480 puntos. Los puntos se reducirán hasta un valor límite establecido en el sistema. Ver detalles de la aplicación de la penalidad en el punto (4).
- Cada solución incorrecta tendrá un puntaje de resta para la siguiente presentación correcta. Se ha establecido que el valor de resta inicia con un valor igual a 50. Por ejemplo: Si el participante envió una solución incorrecta para el problema uno de puntaje 500 y penalidad 2, su puntaje al momento será (-1), al enviar una siguiente solución aceptada por el “juez” a los 10 minutos, su nuevo puntaje PA de la solución será.
PA = 500 – ((10 x 2) + (50 x 1))d. Clasificación Final
Durante la competencia, una tabla de clasificación entra en acción, importante no confundir la tabla de clasificación del concurso con la tabla de calificación de los participantes. La tabla de clasificación del concurso revela las posiciones de los participantes en el concurso de acuerdo a los problemas desarrollados. Cuando un participante resuelve un problema, un puntaje es asignado a su posición en la tabla, a mayor puntaje, mayor posibilidad de ocupar las primeras posiciones.
Importante: La posición obtenida por cada participante en el concurso, será la posición evaluada para obtener su nueva calificación. Ver detalles sobre la calificación en el punto (8).
5. Sobre los Entrenamientos
Los entrenamientos, como su propio nombre lo dice, sirven para entrenar y preparar a los participantes para futuros concursos, los entrenamientos son los concursos celebrados que se activan una vez estos hayan finalizado.
a. Estructura
Los entrenamientos tienen la misma estructura y cantidad de problemas del concurso al que pertenece, pero la presentación de soluciones está disponible sin límite de tiempo.
b. Registro de participantes
Los entrenamientos están disponibles para el registro de participantes en cualquier momento, si un participante no se ha registrado en un entrenamiento #N no podrá enviar soluciones en este ni figurar en su tabla de posiciones.
c. Desarrollo
Un entrenamiento es activado una sola vez, a partir de ese momento y mientras el administrador lo permita, estará disponible para el registro y actividad de los participantes. Al iniciar un entrenamiento, su tabla de clasificación actual está vacía. Solo durante y mientras el entrenamiento este activo las actualizaciones en la tabla se rigen a las siguientes condiciones:
- Si un participante envía una solución correcta para un problema, sin haber visto el código de solución de otro, se le otorga un puntaje y aumenta su acumulado de puntos.
- Si un participante envía una solución correcta para un problema, después de haber visto el código de solución de otro, no se le otorgan puntos, su acumulado de puntos no se modifica y en la ubicación en la tabla del problema resuelto y su posición se escribirá (+1).
- Si un participante envía una o más soluciones incorrectas para un problema, se le asigna un puntaje negativo correspondiente a cuantas veces ha fallado. Por ejemplo (-1) indica que el participante tiene una solución incorrecta para el problema.
- Si un participante envía una solución correcta para un problema después de haber enviado una o más incorrectas, se borra el puntaje negativo, se le otorga un nuevo puntaje y se aumenta su acumulado de puntos.
- Cada solución incorrecta tendrá un puntaje de resta para la siguiente presentación correcta. Se ha establecido que el valor de resta inicia con un valor igual a 50. Por ejemplo: Si el participante envió una solución incorrecta para el problema uno de puntaje 500 y penalidad 2, su puntaje al momento será (-1), al enviar una siguiente solución aceptada por el “juez” a los 10 minutos, su nuevo puntaje PA de la solución será.
PA = 500 – ((10 x 2) + (50 x 1))- El puntaje otorgado por una solución correcta solo es modificado la primera vez, si un participante envía varias soluciones correctas o incorrectas después de esta, su primer puntaje no es modificado.
- Los puntajes de cada solución correcta de un problema serán cada vez menores. Por ejemplo si el problema uno tiene un puntaje igual a 500, una penalidad igual a 2 y una cantidad de soluciones correctas igual a 5. La próxima solución correcta recibirá un total de 490 puntos. Los puntos se reducirán hasta un valor límite establecido en el sistema. Ver detalles de la aplicación de la penalidad en el punto (4).
- Un participante puede ver y descargar los casos de entrada de un problema, esta opción está disponible solo en los eventos de tipo entrenamiento y se encuentra accediendo a la descripción del problema, en el área de opciones a la derecha de la pantalla.
d. Clasificación actual
La clasificación de un evento de tipo entrenamiento, se mantiene en constante actualización, cada vez que un nuevo o actual participante genera un nuevo puntaje en la tabla, el acumulado de sus puntos es modificado y por ende (aunque no siempre ocurre) su posición en la tabla también es modificada.
7. Sobre las Soluciones
De hecho, en nuestra plataforma publicamos materiales de los últimos concursos y entrenamientos, estos materiales (soluciones de los participantes) solo pueden ser usados con fines de enseñanza, por ejemplo, para clases individuales, resolución de problemas, explicación de concursos, etc. Asegúrese de leer los términos de uso antes utilizar los materiales.
Para ver el código de solución de un participante, es necesario iniciar sesión y luego hacer click en el ID de la solución (número asignado de manera ascendente a cada solución, por ejemplo: solución 121) las soluciones están listadas en diferentes secciones de la web como "Todas las presentaciones en (Ejercicios)", “Presentaciones en (coder/presentaciones)” y "Presentaciones en (concursos/presentaciones)". Mostrados a través de diferentes filtros.
8. Sobre el sistema de calificación
a. Niveles
Un rango y un puntaje, son asignados a cada participante, este rotulo refleja su destreza y habilidad en un campo tan difícil como es la informática y la resolución de problemas. Después de una ronda de tipo concurso el participante ganará o perderá (esperamos que ese no sea su caso) puntos. Si un participante obtiene puntuaciones cada vez más altas será promovido a un rango superior. La dependencia entre cada rango de calificación y se muestra en la siguiente tabla. Además, cada categoría tiene su color, utilizado para identificar fácilmente un tipo de participante.
b. Puntación
Un método de valoración ha sido implementado para estimar las puntuaciones de los participantes antes y después de un evento de tipo concurso. Por ahora está en beta y aquí la fórmula de cómo se calcula.
Cada participante se caracteriza por su calificación actual representado por R. Si la persona A tiene una calificación RA y la persona B tiene una calificación RB, entonces:
![]()
La formula da la probabilidad de que A pueda obtener una posición más alta que B en la clasificación final. Cabe mencionar que aquí todo está muy cerca de la clasificación ELO.
Antes de actualizar su calificación después del final de un concurso, para cada participante se calculó su alcance, que es el lugar que se espera que el participante tome en el concurso. Por lo tanto, se obtienen dos datos para todos los participantes: Su alcance (el lugar esperado) y su rango (el lugar actual). En función de la diferencia entre estos dos valores, los aumentos o disminuciones de calificación. Si la diferencia es mayor, su nueva calificación cambiará más.
Otro dato técnico es que, si se trata del primer concurso para el participante, su alcance se calcula como 1 + n / 2, donde n es el número total de participantes en la ronda; los cambios en la clasificación de los concursantes se multiplican por un factor de corrección de tal manera que permite que la suma de las calificaciones de los participantes se mantienen sin cambios (antes y después de la ronda).





