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.

Inscripción miembros UPV Inscripción Institutos
***

¿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.

Capítulo 0

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
Entrar
Capítulo 1

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
Entrar
Capítulo 2

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()
Entrar
Capítulo 3

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'
Entrar
Capítulo 4

Arrays unidimensionales y bidimensionales

  • Arrays y vectores
    • Diferencias entre ellos
  • Arrays bidimensionales
Entrar
Capítulo 5

Ordenaciones y "Divide y vencerás"

  • Complejidad de tiempo
  • Divide y vencerás
    • Búsqueda Binaria
  • Ordenaciones (Sorts)
  • Pair
Entrar
Capítulo 6

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
Entrar
Capítulo 7

Estructuras de Datos

  • Stacks
  • Queue
    • BFS
  • LinkedList
  • PriorityQueue
  • Map
    • HashMap
  • Set
  • Mención de árboles y grafos
Entrar
Capítulo 8

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
    • Caminos
      • Camino
      • Recorrido
      • Camino simple
      • Circuito
      • Ciclo
        • Ciclo euleriano
        • Ciclo hamiltoniano
  • Cómo trabajar con grafos
    • Listas de adyacencia
    • Matriz de adyacencia
  • Dijkstra
Entrar
Capítulo 9

Árboles y Árboles de Segmentos

  • Árboles
    • Características
    • Árbol de expansión
      • Árbol de expansión mínimo
        • Kruskal
  • Árbol de segmentación (segment trees)
  • Disjoint Set Union
Entrar
Capítulo 10

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
Entrar
Capítulo 11

Geometría

  • Representación de puntos y vectores
  • Distancias y ángulos
  • Áreas y orientación
  • Convex Hull (Envolvente convexa)
Entrar
Capítulo 12

Algorítmos voraces

  • Algoritmo de compresión Huffman
  • Problema del vendedor ambulante
  • Problema de cambio de monedas
Capítulo 13

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.