Módulos

Módulo I: Introducción a Programación Competitiva

¿Qué se verá?

  • Introducción a la Programación Competitiva
  • Estructura del curso
  • ¿Cómo consigo los créditos RAC?
  • Tipos de problemas y competiciones
  • Novedades de este año y herramientas que utilizaremos
  • ¿Qué es un juez? ¿Cómo funciona?
  • Primeros concursos

Diapositivas

Concursos

Ejercicios

Recursos

Competitive Programming 3/4
Introducción a los algoritmos
Guide to Competitive Programming: Learning and Improving Algorithms Through Contests

Módulo II: Estructuras de Datos

¿Qué se verá?

  • Complejidad en tiempo
  • Arrays, Vectors
  • Strings
  • Listas, Pilas, Colas
  • Conjuntos
  • Mapas
  • Colas de prioridad
  • Representación de Grafos
  • Recorridos BFS y DFS

Diapositivas

Concursos

Ejercicios

Recursos

VisuAlgo
Competitive Programming 3/4

Módulo III: Algoritmia básica

¿Qué se verá?

  • Algoritmos de Ordenamiento
  • Algoritmos de Búsqueda
  • Algoritmos Voraces
  • Ventana deslizante
  • Otras estrategias

Diapositivas

Concursos

Ejercicios

Recursos

VisuAlgo
Competitive Programming 3/4
Introducción a los algoritmos

Módulo IV: Grafos

¿Qué se verá?

  • Representación
  • Recorridos por anchura
  • Recorridos en profundidad
  • Caminos de coste mínimo

Diapositivas

Concursos

Ejercicios

Recursos

VisuAlgo
Competitive Programming 3/4

Calendario

Horario de 17:00 a 19:00, puedes observar el Aula y contenido de cada día pulsando encima de cada una de las fechas.

FEBRERO

6

Módulo I
Introducción
Laboratorio III: 111

13

Módulo II
ED I
Laboratorio III: 111

20

Concurso
ED I
Laboratorio III: 111

27

Módulo II
ED II
Laboratorio III: 109

MARZO

6

Concurso
ED II
Laboratorio III: 109

13

Módulo III
Algoritmia
Laboratorio III: 109

20

Concurso
Clasificatorio Ada Byron
Laboratorio III: 109

27

Módulo IV
Grafos
Laboratorio III: 111

ABRIL

10

Concurso Final
Laboratorio III: 109

Herramientas necesarias

Es recomendable tener instalado un entorno de desarrollo para el lenguaje de programación que se desee utilizar. Por su sencillez y rápido aprendizaje, el curso se va a realizar utilizando principalmente Python. Sin embargo, como el lenguaje más utilizado en programación competitiva debido a su velocidad es C++, y los mejores equipos históricos de la universidad mucha gente usa Java, se va a proporcionar ayuda para estos otros lenguajes.

Para las sesiones y los concursos, podréis utilizar los entornos de desarrollo que tenéis en el entorno virtual de los laboratorios. Para practicar en casa, aunque se puede utilizar el entorno virtual desde la herramienta de MyApps de la Universidad Rey Juan Carlos, se recomienda tener preparado el entorno en vuestros dispositvos.

Inscripción

La inscripción está disponible para alumnos de la Universidad Rey Juan Carlos, es gratuita y se debe realizar desde el formulario que puedes llegar desde el siguiente botón.

¿Dónde encontrarnos?

Tenemos dos grupos de Telegram para todos los asistentes. Uno pertenece al grupo de programación competitiva y otro a la asociación de Dijkstraidos. En ambos podeis consultar las dudas que tengáis y ayudaros mutuamente, junto con los profesores. En el grupo de la asociación además podrás disfrutar de una comunidad y organizar diferentes actividades ¿A qué esperas para unirte? ¡Creemos comunidad!

Preguntas frecuentes

  • Son competencias donde se mide las habilidades de programación y algoritmia de los participantes para resolver un conjunto de problemas lógicos y matemáticos.

    Muchas empresas realizan este tipo de competiciones en sus entrevistas de trabajo (Amazon, Google, Facebook, etc). Los participantes en programacióm competitiva tienen alguna ventaja al conocerlo de antes.

  • Es recomendable pero no necesario, el curso se aborda desde cero explicando los conceptos en los lenguajes de Python, Java y C++.

  • El curso aborda la mayoría de algoritmos en pseudocódigo y se facilitan los códigos en diversos lenguajes como Python, Java y C++. Sin embargo, para la realización de problemas en las sesiones, se realizará la solución en Python y se proprocionarán las soluciones en el resto de lenguajes.

  • ¡Claro que sí! En este curso abordaremos los diferentes conceptos y módulos desde un nivel introductorio, sin dejar de lado a aquellos asistentes más aventajados. Lo único necesario son ganas de aprender y de compartir el conocimiento con los demás.

  • El curso se impartirá los viernes de 17:00 a 19:00 presencial (previa inscripción).

    El aula en el que se desarrolle será la ¿? del edificio de Laboratorios III.

  • Revisa el apartado de Materiales necesarios para traer preparado todo lo imprescindible para clase. Si tienes alguna problema, no dudes en preguntarnos por los grupos de Telegram.

  • En caso de superar el curso obtendrás 0.9 créditos RAC.

  • No se grabará el curso.

  • Si quieres ir adentrándote en el mundillo y practicando con algunos problemas, puedes empezar con Kattis. También puede ayudarte toda la información de la web personal de uno de los entrenadores.

    Si no solo sabes en programar en Python y quieres probar otras plataformas que permiten enviar soluciones en C++ o Java, puedes probar con Acepta el Reto.

    Si tu nivel es más avanzado, ¿te atreverás con los retos de Codeforces?