Si quieres aplicar la estructura de este repositorio en tus propios proyectos educativos, mira el documento con los metadatos del repositorio.
-
Clase: Programación Competitiva UFPS, grupo de estudio.
-
Coach: Milton Vera
-
Instructores/Lideres del grupo (abierto a nuevas postulaciones):
- Gerson Lázaro, [email protected]
- Melissa Delgado, [email protected]
- Manuel Salazar,
- Crisel Ayala,
- Carlos Calderon,
- David Tolosa
-
Metodología:
- Gerson Lázaro
- Melissa Delgado
-
¿Necesitas ayuda?
- Revisa Nuestro grupo en facebook.
- Crea issues indicando el problema.
- Contacta con los instructores o el couch de los equipos de la Universidad.
Explora la programación desde un nuevo contexto. Aprende creando y resolviendo problemas mientras te diviertes y compites con los demás estudiantes en la Universidad y en el resto del mundo. En este grupo de estudio se socializan los temas comunes en las maratones de programación competitiva, se hacen sesiones colaborativas sobre cada uno de estos temas, y se proponen ejercicios para resolver con la ayuda guiada de los instructores y el couch.
El grupo de estudio hace parte activa de las competencias organizadas por la Red de programación Competitiva y la Liga Colombiana de Programación. Del mismo modo, elige a los estudiantes que representan a la Universidad en las diferentes fases del International Collegiate Programming Contest.
Si eres nuevo en competencias de Programación, una corta introducción: Slides
Basicamente, es una competencia donde las personas miden sus habilidades en programación, intentando resolver el mayor numero de problemas en el menor tiempo posible, donde cada problema requiere el desarrollo de un software que procese correctamente unas entradas determinadas, y genere unas salidas validas.
Aunque existen diferentes tipos de maratones de programación, el grupo de estudio se centra en preparar a los estudiantes para las maratones de tipo ICPC, las cuales conllevan las siguientes reglas:
- Equipos de 3 estudiantes
- Un computador por equipo
- Set de entre 8 y 13 ejercicios propuestos en inglés.
- Gana el equipo que mas ejercicios correctos envie.
- Los empates se definen por el menor tiempo. El tiempo es la suma de los minutos transcurridos entre el inicio de la competencia y el momento de envio del ejercicio.
- Cada envio erroneo conlleva una penalización de 20 minutos en el tiempo final si el ejercicio logra ser solucionado.
- Solo se permite el uso de internet para interactuar con la plataforma de envío.
- Se permite utilizar todo el material impreso/escrito que el equipo lleve previamente.
Las siguientes competencias utilizan formatos similares de competencias, y suelen entregar grandes premios a sus ganadores. Se recomienda a los miembros del grupo participar en estas competencias para mejorar sus habilidades y medirse contra una gran comunidad:
- Se recomienda entender previamente los conceptos básicos de programación y saber aplicarlo en algún lenguaje. No es estrictamente obligatorio, pero hará mas facil la curva de aprendizaje
- Dedicación.
- Para participar en las competencias oficiales de ICPC, es necesario cumplir con los requisitos establecidos en el Árbol de elegibilidad de ICPC. En resumen, para el 2018 debes cumplir al menos UNO de los siguientes dos requisitos:
- Haber iniciado estudios superiores en 2014 o después.
- Haber nacido en 1995 o después. Si no cumples ninguno de estos requisitos no podrás representar a la Universidad en competencias Nacionales/Regionales, pero si hacer parte del grupo de estudio, de las competencias en RPC/CCPL y todas las demás actividades planteadas.
Cada semana se lleva a cabo una sesión presencial en las salas de Sistemas de la Universidad Francisco de Paula Santander. En esta seccin se realiza una parte básica y una avanzada, con temáticas que se ajustan a la complejidad indicada. En estas sesiones en primer lugar se discuten dudas que hayan surgido en el desarrollo de los ejercicios de la semana anterior. Posteriormente se trata el tema de la semana, cuyos slides estarán disponibles en el repositorio. La sesión culmina con ejercicios sobre el tema visto, los cuales se publican en el repositorio, y los estudiantes pueden realizarlos con el apoyo y acompañamiento de los tutores.
Los temas a tratar en el grupo de estudio se encuentran detallados en temas.md.
El grupo de estudio no es una asignatura y no es una clase tradicional. Por lo tanto, no se dejan tareas. Sin embargo cada semana se plantea un set de ejercicios propuestos generalmente relacionados al tema visto. Este set empieza a desarrollarse en el aula de clase, y el estudiante puede continuarlo posteriormente en el trascurso de la semana.
Aunque ningún ejercicio es de obligatoria entrega, se recomienda estudiar y practicar los ejercicios tratados para mejorar las habilidades frente a las futuras competencias.
Estos ejercicios se encuentran en la plataforma UFPS Training Center.
Las soluciones realizadas tanto en las competencias de RPC y CCPL como en los sets de entrenamiento pueden ser compartidas con el resto del grupo si asi lo decide su creador (quien comparte una solución acepta liberarla bajo una licencia MIT). Estas soluciones se encuentran en el repositorio soluciones en esta misma organización.
Existen dos maneras de compartir las soluciones:
- Compartirla directamente con los tutores para que ellos la integren al repositorio.
- (RECOMENDADA) Puedes hacer fork del repositorio soluciones, agregar las tuyas, y enviar un pull requests para unir al repositorio original. Con esto no solo contribuyes al grupo, sino que aprendes el flujo de control de versiones Git, muy útil en otros proyectos educativos y profesionales.
Los entrenamientos se llevan a cabo algunos sabados, de 1PM a 6PM con el apoyo de RPC o CCPL, compitiendo con equipos de otras Universidades en Colombia y Latinoamerica. En el archivo calendario.md puedes encontrar la lista de competencias a realizarse durante el 2018:
- LIBRO: Competitive Programming - Steven Halim & Felix Halim.
- LIBRO: Competitive Programmer’s Handbook - Antti Laaksonen
- DIAPOSITIVAS: Programación Competitiva - Ana Echavarria Uribe.
- VIDEOS: Explicaciones en video de los temas vistos en el grupo - Gerson Lázaro, Melissa Delgado y Crisel Ayala.
- VIDEOS: Explicaciones a diferentes ejercicios de RPC - Miembros de RPC (Incluyendo algunos del grupo).
- LECTURAS: Sección "Resolvamos un Problema", The Science of Code - Daniel Cañizares.
- UFPS Training Center
- UVA - Juez Universidad de Valladolid
- COJ - Caribbean Online Judge - Universidad de las ciencias Informáticas - Cuba
- Codeforces
- POJ - Peking University Online Judge
- A2 Online Judge By Ahmed Aly
- ICPC Archive
- HackerRank
- URI - Online Judge
- Uva Hunting - uHunt - Herramienta creada por Felix Halim para llevar un seguimiento avanzado de tu progreso en UVA.
- UDebug - Busca un problema de UVA, añade una entrada, y verifica la salida.
- Ideone - IDE online multilenguaje (Incluye java, C y C++)