Bootcamp CP-UPV
Aprende programación, ¡tengas el nivel que tengas!
Aprende programación de una forma dinámica y a tu ritmo, probando a hacer pequeños programas tú mismo y en un ambiente competitivo con otros compañeros.
¿Qué es el Bootcamp CP-UPV?
Es un curso completamente online para aprender programación y algoritmia desde 0, de la forma más dinámica y al ritmo que elija el participante.
La inscripción al curso es totalmente gratuita, no hay límite de plazas y está abierta a todos los interesados; alumnos y profesores de la UPV, institutos u otras universidades, profesionales, curiosos, etc..
Estructura del Bootcamp
El curso está estructurado en capítulos, cada uno cubre un temario de creciente dificultad. Al comienzo de cada capítulo se abrirá un concurso online de programación donde los participantes tendrán que resolver problemas relacionados con el temario; esto permite al participante aprender de primera mano y competir contra el resto de participantes. Desde el momento en el que se abren los concursos los participantes tendrán acceso a los problemas como mínimo hasta el 1 de julio de 2026.
Introducción a la programación competitiva, instalación de software y recomendaciones generales
- ¿Qué es la programación competitiva?
- ¿Qué se aprende en este bootcamp y cómo funciona?
- Instalación de un editor de código y lenguajes de programación
- Cómo usar el juez online
- Plantillas, terminal y ánimos
Tipos de datos, entrada y salida
- Tipos comunes en C++: char, int, long long, float, double, long double, bool
- Variables signed y unsigned
- String
- cin, cout
Aritmética entera, binaria y bases numéricas
- Suma, resta, multiplicación, división, módulo
- Bases numéricas (binario, octal, decimal, hexadecimal)
- Overflows
- Sistema binario: <<,>>, &, |, ~, ^
- pow(), sqrt(), log()
Expresiones y control de flujo
- Expresiones e instrucciones
- Bloques de control de flujo:
- Bloques 'if', 'else', 'else if', ! (not)
- Dos tipos de bloques 'for'
- Bloques 'while', 'do while'
- Bloques 'switch'
Arrays unidimensionales y bidimensionales
- Arrays y vectores
- Diferencias entre ellos
- Arrays bidimensionales
Ordenaciones y "Divide y vencerás"
- Complejidad de tiempo
- Divide y vencerás
- Búsqueda Binaria
- Ordenaciones (Sorts)
- Pair
Recursión
- Punteros
- Funciones
- Call stack
- Parámetros por valor
- Parámetros por referencia
- Return
- Recursión básica
- Imprimir del 1 a N
- Fibonnaci
- Factorial
- DFS
Estructuras de Datos
- Stacks
- Queue
- BFS
- LinkedList
- PriorityQueue
- Map
- HashMap
- Set
- Mención de árboles y grafos
Grafos
- Teoría de grafos
- Vértices y aristas
- Grado de un vértice
- Dirigidos y no dirigidos
- Ciclos
- Tipos de grafos
- Subgrafo
- Componentes, conexos e inconexos
- Mención de árboles
- Simples
- Completos
- Bipartitos
- Subgrafo
- Caminos
- Camino
- Recorrido
- Camino simple
- Circuito
- Ciclo
- Ciclo euleriano
- Ciclo hamiltoniano
- Vértices y aristas
- Cómo trabajar con grafos
- Listas de adyacencia
- Matriz de adyacencia
- Dijkstra
Árboles y Árboles de Segmentos
- Árboles
- Características
- Árbol de expansión
- Árbol de expansión mínimo
- Kruskal
- Árbol de expansión mínimo
- Árbol de segmentación (segment trees)
- Disjoint Set Union
Programación dinámica
- Estrategias
- Top-down (Memoización)
- Bottom-up (Tabulación)
- Ejemplos
- Fibonacci
- Subsecuencia común más larga
- Subsecuencia creciente más larga
- Knapsnack
Geometría
- Representación de puntos y vectores
- Distancias y ángulos
- Áreas y orientación
- Convex Hull (Envolvente convexa)
Algorítmos voraces
- Algoritmo de compresión Huffman
- Problema del vendedor ambulante
- Problema de cambio de monedas
Problemas ad-hoc
- Problemas atípicos
Más detalles
A través de esta web se puede acceder al temario de cada capítulo y, solo si estás registrado, a la plataforma online que permite evaluar el código que escriban los participantes. Todo el temario y los problemas que los participantes tendrán que resolver están escritos por los organizadores de Competitive Programming UPV que ayudarán en todo momento a los participantes con sus dudas a través del email competitiveprogrammingupv@gmail.com o preferiblemente por la comunidad de WhatsApp del grupo.