Módulos
Módulo I: Introducción y Estructuras de Datos
¿Qué se verá?
- Introducción a la Programación Competitiva
- ¿Para qué me sirve este curso de programación competitiva?
- Novedades de este año
- Estructura del curso de programación competitiva
- ¿Cómo consigo los créditos RAC?
- Tipos de competiciones
- Tipos de problemas
- Herramientas que utilizaremos
- Complejidad en tiempo
- Estructuras de datos
- Arrays
- Strings
- Vectors
- Listas, pilas, colas
- Sets
- Maps
- Concurso introductorio
Grabaciones
Este año no se grabará el curso.
Bibliografia
Competitive Programming 3/4
Introducción a los algoritmos
Guide to Competitive Programming: Learning and Improving Algorithms Through Contests
Módulo II: Algoritmos de ordenamiento
¿Qué se verá?
- Algoritmos de Ordenamiento
- Bubble Sort / Selection Sort
- Quicksort
- Mergesort
- Otro tipo de algoritmos de ordenamiento y búsquedas
- Algoritmos Voraces
- Búsqueda Binaria
- Búsqueda Ternaria
- Concurso sobre Algoritmos de Ordenamiento
Grabaciones
No se grabará el curso.
Módulo III: Iniciación a problemas de Grafos
¿Qué se verá?
- Representación
- Recorridos (BFS, DFS)
- Caminos y ciclos eulerianos y hamiltonianos
- Ordenamiento Topológico
- Puntos de articulación
- Concurso iniciación a Grafos.
- Concurso iniciación a Grafos.
- Heaps
- Floyd Warshall
- Dijkstra
- Union-Find
- Prim
- Kruskal
- Concurso iniciación a Grafos.
- Concurso grafos avanzados.
Grabaciones
No se grabará el curso.
Módulo IV: Programación Dinámica
¿Qué se verá?
- Introducción
- Estructura
- Memoización
- Tipos de Programación Dinámica
- Ejemplos
- Fibonacci
- Contar caminos
- Knapsack
- Memoización
- Concurso final.
Grabaciones
No se grabará el curso.
Herramientas
Recursos
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
3
IntroducciónAulario II: 001
10
Módulo IAulario II: 001
24
Concurso Módulo ILaboratorios III: 109 y 111
MARZO
3
Módulo IIAulario II: 001
10
Concurso Módulo IILaboratorios III: 109 y 111
17
Módulo IIIAulario II: 001
24
Concurso Módulo IIILaboratorios III: 108 y 111
31
Módulo IIIAulario II: 001
ABRIL
14
Concurso Módulo IIILaboratorios III: 109 y 111
21
Módulo IVAulario II: 001
28
Concurso finalLaboratorios III: 109 y 111
Herramientas necesarias
Es recomendable tener instalado un entorno de desarrollo para el lenguaje de programación que se desee utilizar. El lenguaje más utilizado en programación competitiva debido a su velocidad es C++, no obstante de los mejores equipos históricos de la universidad mucha gente usa Java.
Para los concursos, podréis utilizar los entornos de desarrollo que tenéis en el entorno virtual, pero para practicar en casa no.
¿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
-
¿Qué es la programación competitiva?
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.
-
¿Necesito previamente conocer un lenguaje de programación?
Es recomendable pero no necesario, el curso se aborda desde cero explicando los conceptos en los lenguajes de C++, Java y Python.
-
¿En que lenguaje se da el curso?
El curso aborda la mayoría de algoritmos en pseudocódigo y se facilitan los códigos en diversos lenguajes como Java, C++ o Python. No está centrado en un solo lenguaje.
-
¿Puedo asistir al curso si no tengo conocimientos?
¡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.
-
¿Cuándo y dónde se desarrolla el curso?
El curso se impartirá los viernes de 17:00 a 19:00 presencial (previa inscripción).
El aula en el que se desarrolle dependerá del número de asistentes inscritos y la disponibilidad de la Universidad. Lo iremos actualizando en el calendario que puedes encontrar más arriba.
-
¿Qué material necesito para seguir las clases?
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.
-
¿Se otorgan créditos RAC por asistir?
Sí, el curso tiene una duración de 24 horas repartidas en clases de 2 horas a la semana. Esto equivale a 1.2 créditos RAC reconocidos por la Universidad para aquellos asistentes que acudan y participen activamente en las sesiones.
-
¿Quedarán grabadas las clases?
No se grabará el curso.
-
¿Qué material o plataformas recomendáis para practicar?
Si quieres ir adentrándote en el mundillo y practicando con algunos problemas, puedes empezar con Acepta el Reto o con OnlineJudge. También puede ayudarte toda la información de la web personal de uno de los entrenadores.
Si tu nivel es más avanzado, ¿te atreverás con los retos de Codeforces?