{
  "version": "0.3",
  "descripcion": "Temas atomicos del grafo (reconstruido por merge_graph.py).",
  "nodos": [
    {
      "id": "cardinalidad",
      "nombre": "Cardinalidad de un conjunto",
      "curso": "fundamentos",
      "modulo": "conteo_y_cardinalidad",
      "nivel": 1,
      "xp": 6,
      "descripcion": "El último número contado es la cantidad total.",
      "puntos_de_conocimiento": [
        "El último número contado indica el total",
        "Comparar cantidades por conteo",
        "Subitización de grupos pequeños (1 a 5)"
      ]
    },
    {
      "id": "contar_uno_a_uno",
      "nombre": "Contar de uno en uno",
      "curso": "fundamentos",
      "modulo": "conteo_y_cardinalidad",
      "nivel": 1,
      "xp": 6,
      "descripcion": "Recitar la secuencia y asociar un número a cada objeto.",
      "puntos_de_conocimiento": [
        "Recitar la secuencia numérica 1 a 20",
        "Correspondencia uno a uno objeto-número",
        "Contar colecciones de hasta 20 objetos"
      ]
    },
    {
      "id": "comparar_naturales",
      "nombre": "Comparar números naturales",
      "curso": "fundamentos",
      "modulo": "comparar_y_ordenar",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Usar <, > e = por valor posicional.",
      "puntos_de_conocimiento": [
        "Usar los símbolos <, > e =",
        "Comparar por valor posicional",
        "Comparar números con distinto número de cifras"
      ]
    },
    {
      "id": "conteo_salteado",
      "nombre": "Conteo salteado",
      "curso": "fundamentos",
      "modulo": "conteo_y_cardinalidad",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Contar de 2 en 2, 5 en 5 y 10 en 10.",
      "puntos_de_conocimiento": [
        "Contar de 2 en 2",
        "Contar de 5 en 5",
        "Contar de 10 en 10",
        "Identificar patrones de la secuencia"
      ]
    },
    {
      "id": "leer_escribir_numeros",
      "nombre": "Leer y escribir números hasta 1000",
      "curso": "fundamentos",
      "modulo": "valor_posicional",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Relacionar la cifra con su nombre.",
      "puntos_de_conocimiento": [
        "Escribir el número a partir de su nombre",
        "Escribir el nombre de un número",
        "Relacionar cifra y palabra"
      ]
    },
    {
      "id": "ordenar_naturales",
      "nombre": "Ordenar números naturales",
      "curso": "fundamentos",
      "modulo": "comparar_y_ordenar",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Ordenar listas ascendente y descendente.",
      "puntos_de_conocimiento": [
        "Ordenar de menor a mayor",
        "Ordenar de mayor a menor",
        "Intercalar un número en una lista ordenada"
      ]
    },
    {
      "id": "recta_numerica_naturales",
      "nombre": "Recta numérica (naturales)",
      "curso": "fundamentos",
      "modulo": "comparar_y_ordenar",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Ubicar números y leer posiciones en la recta.",
      "puntos_de_conocimiento": [
        "Ubicar números en la recta",
        "La distancia representa diferencia",
        "Identificar el número en una posición dada"
      ]
    },
    {
      "id": "resta_sin_prestar",
      "nombre": "Resta sin prestar",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Restar por columnas sin reagrupar.",
      "puntos_de_conocimiento": [
        "Restar por columnas",
        "La resta como diferencia",
        "Restar cero"
      ]
    },
    {
      "id": "secuencia_numerica_hasta_1000",
      "nombre": "Secuencia numérica hasta 1000",
      "curso": "fundamentos",
      "modulo": "conteo_y_cardinalidad",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Anterior, posterior y conteo en ambos sentidos.",
      "puntos_de_conocimiento": [
        "Número anterior y posterior",
        "Contar hacia adelante y hacia atrás",
        "Completar secuencias con saltos"
      ]
    },
    {
      "id": "suma_sin_reagrupar",
      "nombre": "Suma sin reagrupar",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Sumar por columnas sin llevar.",
      "puntos_de_conocimiento": [
        "Sumar por columnas (U, D, C)",
        "Suma horizontal y vertical",
        "Sumas que incluyen cero"
      ]
    },
    {
      "id": "valor_posicional_basico",
      "nombre": "Valor posicional: unidades, decenas, centenas",
      "curso": "fundamentos",
      "modulo": "valor_posicional",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Cada cifra vale según su posición.",
      "puntos_de_conocimiento": [
        "Identificar el valor de cada cifra",
        "Descomponer en U, D, C",
        "Agrupar de 10 en 10"
      ]
    },
    {
      "id": "concepto_multiplicacion",
      "nombre": "Concepto de multiplicación",
      "curso": "fundamentos",
      "modulo": "multiplicacion_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Suma repetida y arreglos rectangulares.",
      "puntos_de_conocimiento": [
        "Multiplicación como suma repetida",
        "Arreglos rectangulares",
        "Factores y producto"
      ]
    },
    {
      "id": "forma_desarrollada",
      "nombre": "Forma desarrollada de un número",
      "curso": "fundamentos",
      "modulo": "valor_posicional",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Escribir un número como suma de valores posicionales.",
      "puntos_de_conocimiento": [
        "Número como suma de valores posicionales",
        "De forma desarrollada a estándar",
        "Relación con potencias de 10"
      ]
    },
    {
      "id": "propiedades_de_la_suma",
      "nombre": "Propiedades de la suma",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Conmutativa, asociativa y neutro.",
      "puntos_de_conocimiento": [
        "Propiedad conmutativa",
        "Propiedad asociativa",
        "Elemento neutro (0)"
      ]
    },
    {
      "id": "redondear_naturales",
      "nombre": "Redondear números naturales",
      "curso": "fundamentos",
      "modulo": "comparar_y_ordenar",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Aproximar a decena, centena o millar.",
      "puntos_de_conocimiento": [
        "Redondear a la decena más cercana",
        "Redondear a centena y millar",
        "Regla del 5 y estimación de resultados"
      ]
    },
    {
      "id": "relacion_suma_resta",
      "nombre": "Relación entre suma y resta",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "La resta es la operación inversa de la suma.",
      "puntos_de_conocimiento": [
        "Resta como inversa de la suma",
        "Familias de operaciones",
        "Encontrar el sumando desconocido"
      ]
    },
    {
      "id": "resta_con_reagrupacion",
      "nombre": "Resta con reagrupación (prestando)",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Pedir prestado a la siguiente columna.",
      "puntos_de_conocimiento": [
        "Pedir prestado a la siguiente columna",
        "Restar con ceros intermedios",
        "Verificar el resultado con la suma"
      ]
    },
    {
      "id": "suma_con_reagrupacion",
      "nombre": "Suma con reagrupación (llevando)",
      "curso": "fundamentos",
      "modulo": "suma_y_resta_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Llevar a la siguiente columna.",
      "puntos_de_conocimiento": [
        "Llevar a la siguiente columna",
        "Sumar tres o más sumandos",
        "Estimar antes de sumar"
      ]
    },
    {
      "id": "tablas_de_multiplicar",
      "nombre": "Tablas de multiplicar",
      "curso": "fundamentos",
      "modulo": "multiplicacion_naturales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Dominio de las tablas del 1 al 10.",
      "puntos_de_conocimiento": [
        "Tablas del 1 al 10",
        "Patrones en las tablas (5, 9, 10)",
        "Recuperación rápida de productos"
      ]
    },
    {
      "id": "valor_posicional_grande",
      "nombre": "Valor posicional: millares y millones",
      "curso": "fundamentos",
      "modulo": "valor_posicional",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Leer números de 4 a 7 cifras por clases.",
      "puntos_de_conocimiento": [
        "Leer números de 4 a 7 cifras",
        "Identificar clases (unidades, miles, millones)",
        "Valor de cada posición"
      ]
    },
    {
      "id": "concepto_division",
      "nombre": "Concepto de división",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Reparto equitativo y agrupamiento.",
      "puntos_de_conocimiento": [
        "División como reparto equitativo",
        "División como agrupamiento",
        "Dividendo, divisor y cociente"
      ]
    },
    {
      "id": "division_con_residuo",
      "nombre": "División con residuo",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Interpretar el residuo y la relación D=d*c+r.",
      "puntos_de_conocimiento": [
        "Interpretar el residuo",
        "Residuo menor que el divisor",
        "Relación dividendo = divisor x cociente + residuo"
      ]
    },
    {
      "id": "division_exacta",
      "nombre": "División exacta",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "División por una cifra sin residuo.",
      "puntos_de_conocimiento": [
        "División usando las tablas",
        "División por una cifra sin residuo",
        "Verificar con la multiplicación"
      ]
    },
    {
      "id": "estimacion_de_operaciones",
      "nombre": "Estimación de operaciones",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Aproximar resultados redondeando antes de operar.",
      "puntos_de_conocimiento": [
        "Redondear los números antes de operar",
        "Estimar sumas, restas y productos",
        "Comparar la estimación con el resultado exacto",
        "Usar la estimación para detectar errores"
      ]
    },
    {
      "id": "multiplicacion_una_cifra",
      "nombre": "Multiplicación por una cifra",
      "curso": "fundamentos",
      "modulo": "multiplicacion_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Algoritmo con reagrupación por una cifra.",
      "puntos_de_conocimiento": [
        "Multiplicar con reagrupación",
        "Multiplicar por múltiplos de 10",
        "Estimar productos"
      ]
    },
    {
      "id": "multiplicacion_varias_cifras",
      "nombre": "Multiplicación por varias cifras",
      "curso": "fundamentos",
      "modulo": "multiplicacion_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Algoritmo estándar con productos parciales.",
      "puntos_de_conocimiento": [
        "Algoritmo estándar de varias cifras",
        "Productos parciales",
        "Multiplicar por 10, 100, 1000"
      ]
    },
    {
      "id": "propiedades_multiplicacion",
      "nombre": "Propiedades de la multiplicación",
      "curso": "fundamentos",
      "modulo": "multiplicacion_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Conmutativa, asociativa y distributiva.",
      "puntos_de_conocimiento": [
        "Conmutativa y asociativa",
        "Distributiva sobre la suma",
        "Neutro (1) y absorbente (0)"
      ]
    },
    {
      "id": "relacion_multiplicacion_division",
      "nombre": "Relación entre multiplicación y división",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "La división es la inversa de la multiplicación.",
      "puntos_de_conocimiento": [
        "División como inversa de la multiplicación",
        "Familias de operaciones",
        "Encontrar el factor desconocido"
      ]
    },
    {
      "id": "division_larga",
      "nombre": "División larga (varias cifras)",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Algoritmo de división larga por dos cifras.",
      "puntos_de_conocimiento": [
        "Algoritmo de división larga",
        "Dividir por dos cifras",
        "Estimar el cociente"
      ]
    },
    {
      "id": "expresiones_con_parentesis_basica",
      "nombre": "Expresiones con parentesis",
      "curso": "fundamentos",
      "modulo": "jerarquia_operaciones_basica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver primero lo que esta dentro de los parentesis.",
      "puntos_de_conocimiento": [
        "Resolver el contenido del parentesis primero",
        "Aplicar la jerarquía después de quitar el parentesis",
        "Comparar expresiones con y sin parentesis"
      ]
    },
    {
      "id": "jerarquia_basica",
      "nombre": "Jerarquía de operaciones básica",
      "curso": "fundamentos",
      "modulo": "jerarquia_operaciones_basica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Orden de operaciones sin potencias.",
      "puntos_de_conocimiento": [
        "Multiplicación y división antes que suma y resta",
        "Uso de paréntesis",
        "Evaluar de izquierda a derecha en igual jerarquía"
      ]
    },
    {
      "id": "problemas_verbales_aritmetica_basica",
      "nombre": "Problemas verbales de aritmética basica",
      "curso": "fundamentos",
      "modulo": "division_naturales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Elegir la operación correcta a partir del contexto de un enunciado.",
      "puntos_de_conocimiento": [
        "Identificar palabras clave de cada operación",
        "Decidir entre suma, resta, multiplicación o división según el contexto",
        "Resolver problemas de uno y dos pasos",
        "Interpretar el resultado en el contexto del problema"
      ]
    },
    {
      "id": "traducir_expresion_numerica",
      "nombre": "Traducir enunciados a expresiones numericas",
      "curso": "fundamentos",
      "modulo": "jerarquia_operaciones_basica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Escribir una expresión numerica con operaciones y parentesis a partir de un enunciado.",
      "puntos_de_conocimiento": [
        "Identificar la operación descrita en cada frase",
        "Usar parentesis para respetar el orden del enunciado",
        "Escribir y evaluar la expresión resultante"
      ]
    },
    {
      "id": "criterios_divisibilidad",
      "nombre": "Criterios de divisibilidad",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Reglas rápidas de divisibilidad.",
      "puntos_de_conocimiento": [
        "Divisibilidad por 2, 5 y 10",
        "Divisibilidad por 3 y 9",
        "Divisibilidad por 4 y 6"
      ]
    },
    {
      "id": "factores_y_multiplos",
      "nombre": "Factores y múltiplos",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Distinguir factor de múltiplo.",
      "puntos_de_conocimiento": [
        "Encontrar todos los factores de un número",
        "Listar múltiplos",
        "Distinguir factor de múltiplo"
      ]
    },
    {
      "id": "concepto_de_decimal",
      "nombre": "Concepto de número decimal",
      "curso": "aritmetica",
      "modulo": "decimales_concepto",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Decimal como fracción de denominador 10, 100.",
      "puntos_de_conocimiento": [
        "Decimal como fracción de base 10",
        "Lectura de decimales",
        "Parte entera y parte decimal"
      ]
    },
    {
      "id": "concepto_de_fraccion",
      "nombre": "Concepto de fracción",
      "curso": "aritmetica",
      "modulo": "fracciones_concepto",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Fracción como parte de un todo.",
      "puntos_de_conocimiento": [
        "Fracción como parte de un todo",
        "Numerador y denominador",
        "Representación grafica"
      ]
    },
    {
      "id": "factorizacion_prima",
      "nombre": "Factorización prima",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Descomponer en factores primos.",
      "puntos_de_conocimiento": [
        "Descomponer en factores primos",
        "Notación con exponentes",
        "Árbol de factores"
      ]
    },
    {
      "id": "primos_y_compuestos",
      "nombre": "Números primos y compuestos",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Identificar primos con la criba.",
      "puntos_de_conocimiento": [
        "Definición de primo y compuesto",
        "Identificar primos hasta 100",
        "Criba de Eratostenes"
      ]
    },
    {
      "id": "valor_posicional_decimal",
      "nombre": "Valor posicional decimal",
      "curso": "aritmetica",
      "modulo": "decimales_concepto",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Décimos, centesimos, milesimos.",
      "puntos_de_conocimiento": [
        "Décimos, centesimos y milesimos",
        "Forma desarrollada decimal",
        "Ceros a la derecha no cambian el valor"
      ]
    },
    {
      "id": "clasificar_fracciones",
      "nombre": "Fracciones propias, impropias y mixtas",
      "curso": "aritmetica",
      "modulo": "fracciones_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Convertir entre impropia y mixta.",
      "puntos_de_conocimiento": [
        "Distinguir propia e impropia",
        "Convertir impropia a mixta",
        "Convertir mixta a impropia"
      ]
    },
    {
      "id": "comparar_decimales",
      "nombre": "Comparar y ordenar decimales",
      "curso": "aritmetica",
      "modulo": "decimales_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Comparar por valor posicional.",
      "puntos_de_conocimiento": [
        "Comparar por valor posicional",
        "Igualar el número de cifras decimales",
        "Ordenar listas de decimales"
      ]
    },
    {
      "id": "concepto_de_potencia",
      "nombre": "Concepto de potencia",
      "curso": "aritmetica",
      "modulo": "potencias_y_raices",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Potencia como producto repetido.",
      "puntos_de_conocimiento": [
        "Potencia como producto repetido",
        "Base y exponente",
        "Potencias de 10"
      ]
    },
    {
      "id": "cuadrados_y_cubos",
      "nombre": "Cuadrados y cubos",
      "curso": "aritmetica",
      "modulo": "potencias_y_raices",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Cuadrados y cubos perfectos.",
      "puntos_de_conocimiento": [
        "Cuadrados perfectos",
        "Cubos perfectos",
        "Cuadrado y cubo de un número"
      ]
    },
    {
      "id": "fracciones_equivalentes",
      "nombre": "Fracciones equivalentes",
      "curso": "aritmetica",
      "modulo": "fracciones_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Amplificar y reconocer equivalencias.",
      "puntos_de_conocimiento": [
        "Amplificar una fracción",
        "Reconocer equivalencias",
        "Modelos visuales de equivalencia"
      ]
    },
    {
      "id": "mcd",
      "nombre": "Máximo común divisor (MCD)",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 3,
      "xp": 10,
      "descripcion": "MCD por factorización y por divisores.",
      "puntos_de_conocimiento": [
        "MCD por factorización prima",
        "MCD por listado de divisores",
        "Aplicación: simplificar fracciones"
      ]
    },
    {
      "id": "mcm",
      "nombre": "Mínimo común múltiplo (MCM)",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 3,
      "xp": 10,
      "descripcion": "MCM por factorización y por múltiplos.",
      "puntos_de_conocimiento": [
        "MCM por factorización prima",
        "MCM por listado de múltiplos",
        "Relación MCD x MCM = a x b"
      ]
    },
    {
      "id": "redondear_decimales",
      "nombre": "Redondear decimales",
      "curso": "aritmetica",
      "modulo": "decimales_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Aproximar a décimos o centesimos.",
      "puntos_de_conocimiento": [
        "Redondear a décimos y centesimos",
        "Regla del 5",
        "Estimación con decimales"
      ]
    },
    {
      "id": "simplificar_fracciones",
      "nombre": "Simplificar fracciones",
      "curso": "aritmetica",
      "modulo": "fracciones_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Reducir a fracción irreducible con el MCD.",
      "puntos_de_conocimiento": [
        "Dividir por un factor común",
        "Fracción irreducible usando el MCD",
        "Verificar equivalencia"
      ]
    },
    {
      "id": "sumar_restar_decimales",
      "nombre": "Sumar y restar decimales",
      "curso": "aritmetica",
      "modulo": "operaciones_decimales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Alinear el punto decimal.",
      "puntos_de_conocimiento": [
        "Alinear el punto decimal",
        "Completar con ceros",
        "Estimar el resultado"
      ]
    },
    {
      "id": "comparar_fracciones",
      "nombre": "Comparar y ordenar fracciones",
      "curso": "aritmetica",
      "modulo": "fracciones_concepto",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Comparar con denominador común o productos cruzados.",
      "puntos_de_conocimiento": [
        "Comparar con igual denominador",
        "Comparar con denominador común",
        "Comparar con productos cruzados"
      ]
    },
    {
      "id": "concepto_de_porcentaje",
      "nombre": "Concepto de porcentaje",
      "curso": "aritmetica",
      "modulo": "porcentajes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Porcentaje como razón por cien.",
      "puntos_de_conocimiento": [
        "Porcentaje como razón por cien",
        "Representación visual",
        "Porcentajes notables (50%, 25%, 10%)"
      ]
    },
    {
      "id": "concepto_de_razon",
      "nombre": "Concepto de razón",
      "curso": "aritmetica",
      "modulo": "razones_y_proporciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Razón como comparación de dos cantidades.",
      "puntos_de_conocimiento": [
        "Razón como comparación",
        "Notación a:b y a/b",
        "Razones equivalentes"
      ]
    },
    {
      "id": "conversion_fraccion_decimal",
      "nombre": "Conversión entre fracción y decimal",
      "curso": "aritmetica",
      "modulo": "decimales_concepto",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Pasar de fracción a decimal y viceversa.",
      "puntos_de_conocimiento": [
        "Fracción a decimal por división",
        "Decimal exacto a fracción",
        "Decimal periódico (introducción)"
      ]
    },
    {
      "id": "conversion_porcentajes",
      "nombre": "Conversión entre porcentaje, decimal y fracción",
      "curso": "aritmetica",
      "modulo": "porcentajes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Pasar entre las tres representaciones.",
      "puntos_de_conocimiento": [
        "Porcentaje a decimal",
        "Decimal a porcentaje",
        "Porcentaje a fracción simplificada"
      ]
    },
    {
      "id": "decimal_periodico",
      "nombre": "Decimales periodicos",
      "curso": "aritmetica",
      "modulo": "operaciones_decimales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Decimales que repiten una cifra o grupo de cifras indefinidamente.",
      "puntos_de_conocimiento": [
        "Reconocer un decimal periodico al dividir",
        "Distinguir decimal exacto, periodico puro y mixto",
        "Notación de la barra sobre el periodo",
        "Relacionar fracciones con decimales periodicos"
      ]
    },
    {
      "id": "dividir_decimales",
      "nombre": "Dividir decimales",
      "curso": "aritmetica",
      "modulo": "operaciones_decimales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Correr el punto para dividir entre decimal.",
      "puntos_de_conocimiento": [
        "Dividir un decimal entre un entero",
        "Dividir entre un decimal (correr el punto)",
        "Dividir por 10, 100, 1000"
      ]
    },
    {
      "id": "divisibilidad_por_8_y_11",
      "nombre": "Criterios de divisibilidad por 8 y por 11",
      "curso": "aritmetica",
      "modulo": "divisibilidad",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Reglas para decidir si un número es divisible por 8 y por 11.",
      "puntos_de_conocimiento": [
        "Criterio de divisibilidad por 8 (últimas tres cifras)",
        "Criterio de divisibilidad por 11 (suma alternada)",
        "Aplicar los criterios a números grandes",
        "Verificar con la división"
      ]
    },
    {
      "id": "multiplicar_decimales",
      "nombre": "Multiplicar decimales",
      "curso": "aritmetica",
      "modulo": "operaciones_decimales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Contar cifras decimales del producto.",
      "puntos_de_conocimiento": [
        "Multiplicar ignorando el punto",
        "Contar las cifras decimales",
        "Multiplicar por 10, 100, 1000"
      ]
    },
    {
      "id": "multiplicar_fracciones",
      "nombre": "Multiplicar fracciones",
      "curso": "aritmetica",
      "modulo": "operaciones_fracciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Producto de numeradores y denominadores.",
      "puntos_de_conocimiento": [
        "Multiplicar numeradores y denominadores",
        "Simplificar antes de multiplicar",
        "Fracción de una cantidad"
      ]
    },
    {
      "id": "proporciones",
      "nombre": "Proporciones",
      "curso": "aritmetica",
      "modulo": "razones_y_proporciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Igualdad de razones y productos cruzados.",
      "puntos_de_conocimiento": [
        "Igualdad de dos razones",
        "Propiedad fundamental (productos cruzados)",
        "Resolver una proporción"
      ]
    },
    {
      "id": "raiz_cuadrada",
      "nombre": "Raíz cuadrada",
      "curso": "aritmetica",
      "modulo": "potencias_y_raices",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Raíz cuadrada como inversa del cuadrado.",
      "puntos_de_conocimiento": [
        "Raíz cuadrada como inversa del cuadrado",
        "Raíces de cuadrados perfectos",
        "Estimar raíces no exactas"
      ]
    },
    {
      "id": "sumar_fracciones_distinto_denominador",
      "nombre": "Sumar y restar fracciones con distinto denominador",
      "curso": "aritmetica",
      "modulo": "operaciones_fracciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Usar denominador común (MCM).",
      "puntos_de_conocimiento": [
        "Encontrar el denominador común (MCM)",
        "Reescribir como fracciones equivalentes",
        "Sumar o restar y simplificar"
      ]
    },
    {
      "id": "sumar_fracciones_igual_denominador",
      "nombre": "Sumar y restar fracciones con igual denominador",
      "curso": "aritmetica",
      "modulo": "operaciones_fracciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Operar numeradores conservando el denominador.",
      "puntos_de_conocimiento": [
        "Sumar numeradores",
        "Restar numeradores",
        "Simplificar el resultado"
      ]
    },
    {
      "id": "aumento_descuento",
      "nombre": "Aumento y descuento porcentual",
      "curso": "aritmetica",
      "modulo": "porcentajes",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Precio final con factor (1 +/- r).",
      "puntos_de_conocimiento": [
        "Aumento porcentual",
        "Descuento porcentual",
        "Precio final con factor (1 +/- r)"
      ]
    },
    {
      "id": "dividir_fracciones",
      "nombre": "Dividir fracciones",
      "curso": "aritmetica",
      "modulo": "operaciones_fracciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Multiplicar por el recíproco.",
      "puntos_de_conocimiento": [
        "Multiplicar por el recíproco",
        "Recíproco de una fracción",
        "División de números mixtos"
      ]
    },
    {
      "id": "escalas_y_tasas",
      "nombre": "Escalas, tasas y velocidad",
      "curso": "aritmetica",
      "modulo": "razones_y_proporciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Tasa unitaria, escalas y velocidad.",
      "puntos_de_conocimiento": [
        "Tasa unitaria",
        "Escalas en mapas y planos",
        "Velocidad como razón distancia/tiempo"
      ]
    },
    {
      "id": "jerarquia_con_potencias",
      "nombre": "Jerarquía de operaciones con potencias",
      "curso": "aritmetica",
      "modulo": "jerarquia_operaciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Evaluar potencias antes de multiplicar, dividir, sumar y restar.",
      "puntos_de_conocimiento": [
        "Resolver las potencias antes que mult/div",
        "Orden: parentesis, potencias, mult/div, suma/resta",
        "Evaluar expresiones con cuadrados y cubos",
        "Errores comunes al elevar antes de tiempo"
      ]
    },
    {
      "id": "notacion_cientifica_intro",
      "nombre": "Notación cientifica (introducción)",
      "curso": "aritmetica",
      "modulo": "potencias_y_raices",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Números muy grandes y muy pequeños.",
      "puntos_de_conocimiento": [
        "Escribir números grandes en notación cientifica",
        "Números pequeños con exponente negativo",
        "Pasar a forma estándar"
      ]
    },
    {
      "id": "operaciones_mixtas_fracciones",
      "nombre": "Operaciones con números mixtos",
      "curso": "aritmetica",
      "modulo": "operaciones_fracciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Operar mixtos reagrupando al restar.",
      "puntos_de_conocimiento": [
        "Sumar y restar mixtos",
        "Multiplicar y dividir mixtos",
        "Restar mixtos cuando la fracción no alcanza"
      ]
    },
    {
      "id": "porcentaje_de_cantidad",
      "nombre": "Calcular el porcentaje de una cantidad",
      "curso": "aritmetica",
      "modulo": "porcentajes",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Métodos decimal y de fracción.",
      "puntos_de_conocimiento": [
        "Método decimal",
        "Método de fracción",
        "Cálculo mental con porcentajes notables"
      ]
    },
    {
      "id": "regla_de_tres",
      "nombre": "Regla de tres simple",
      "curso": "aritmetica",
      "modulo": "razones_y_proporciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Regla de tres directa e inversa.",
      "puntos_de_conocimiento": [
        "Regla de tres directa",
        "Regla de tres inversa",
        "Identificar el tipo de proporcionalidad"
      ]
    },
    {
      "id": "jerarquia_completa",
      "nombre": "Jerarquía de operaciones completa",
      "curso": "aritmetica",
      "modulo": "jerarquia_operaciones",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Orden con potencias y paréntesis anidados.",
      "puntos_de_conocimiento": [
        "Orden: paréntesis, potencias, mult/div, suma/resta",
        "Expresiones con varias operaciones",
        "Paréntesis anidados"
      ]
    },
    {
      "id": "parentesis_anidados",
      "nombre": "Parentesis anidados",
      "curso": "aritmetica",
      "modulo": "jerarquia_operaciones",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Resolver expresiones con parentesis dentro de corchetes y llaves.",
      "puntos_de_conocimiento": [
        "Resolver de adentro hacia afuera",
        "Distinguir parentesis, corchetes y llaves",
        "Aplicar la jerarquía en cada nivel de agrupación",
        "Evaluar expresiones con potencias y agrupación anidada"
      ]
    },
    {
      "id": "variacion_porcentual",
      "nombre": "Variación porcentual e interés simple",
      "curso": "aritmetica",
      "modulo": "porcentajes",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Porcentaje de cambio e interés simple.",
      "puntos_de_conocimiento": [
        "Calcular el porcentaje de cambio",
        "Interés simple (introducción)",
        "Problemas de variación porcentual"
      ]
    },
    {
      "id": "concepto_de_entero",
      "nombre": "Concepto de número entero",
      "curso": "prealgebra",
      "modulo": "numeros_enteros",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Los enteros extienden los naturales con los números negativos.",
      "puntos_de_conocimiento": [
        "Distinguir enteros positivos, negativos y cero",
        "Situaciones reales con cantidades negativas (deuda, temperatura)",
        "Notación del signo y lectura de enteros"
      ]
    },
    {
      "id": "recta_numerica_enteros",
      "nombre": "Recta numerica de enteros",
      "curso": "prealgebra",
      "modulo": "numeros_enteros",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Ubicar enteros positivos y negativos a ambos lados del cero.",
      "puntos_de_conocimiento": [
        "Ubicar enteros en la recta a partir del cero",
        "Negativos a la izquierda, positivos a la derecha",
        "Identificar el entero en una posición dada"
      ]
    },
    {
      "id": "comparar_ordenar_enteros",
      "nombre": "Comparar y ordenar enteros",
      "curso": "prealgebra",
      "modulo": "numeros_enteros",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Comparar enteros usando la recta y el orden.",
      "puntos_de_conocimiento": [
        "Usar < y > con enteros negativos",
        "Más a la derecha en la recta es mayor",
        "Ordenar listas de enteros de menor a mayor"
      ]
    },
    {
      "id": "concepto_de_variable",
      "nombre": "Concepto de variable",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Una variable es una letra que representa un número desconocido o variable.",
      "puntos_de_conocimiento": [
        "Una letra representa un número",
        "Distinguir variable, constante y expresión",
        "Notación: la multiplicación implicita junto a una variable"
      ]
    },
    {
      "id": "opuesto_de_un_entero",
      "nombre": "Opuesto de un entero",
      "curso": "prealgebra",
      "modulo": "numeros_enteros",
      "nivel": 2,
      "xp": 10,
      "descripcion": "El opuesto invierte el signo y queda a igual distancia del cero.",
      "puntos_de_conocimiento": [
        "Definir el opuesto (inverso aditivo)",
        "El opuesto en la recta es simetrico respecto al cero",
        "El opuesto del opuesto es el número original"
      ]
    },
    {
      "id": "sumar_enteros_mismo_signo",
      "nombre": "Sumar enteros del mismo signo",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Sumar valores absolutos y conservar el signo comun.",
      "puntos_de_conocimiento": [
        "Sumar dos negativos conservando el signo",
        "Sumar valores absolutos y poner el signo comun",
        "Modelo en la recta numerica"
      ]
    },
    {
      "id": "valor_absoluto_concepto",
      "nombre": "Concepto de valor absoluto",
      "curso": "prealgebra",
      "modulo": "valor_absoluto_recta",
      "nivel": 2,
      "xp": 10,
      "descripcion": "El valor absoluto es la distancia al cero, siempre no negativa.",
      "puntos_de_conocimiento": [
        "Definir valor absoluto como distancia al cero",
        "Notación con barras verticales",
        "El valor absoluto nunca es negativo"
      ]
    },
    {
      "id": "concepto_de_desigualdad",
      "nombre": "Concepto de desigualdad",
      "curso": "prealgebra",
      "modulo": "desigualdades_basicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Una desigualdad compara dos expresiones con <, >, <= o >=.",
      "puntos_de_conocimiento": [
        "Leer y escribir los simbolos de desigualdad",
        "Distinguir estricta de no estricta",
        "Verificar si un valor satisface la desigualdad"
      ]
    },
    {
      "id": "concepto_de_ecuacion",
      "nombre": "Concepto de ecuación y solución",
      "curso": "prealgebra",
      "modulo": "ecuaciones_lineales_basicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Una ecuación es una igualdad; su solución la hace verdadera.",
      "puntos_de_conocimiento": [
        "Distinguir ecuación de expresión",
        "Verificar si un valor es solución",
        "Concepto de balanza y equilibrio de la igualdad"
      ]
    },
    {
      "id": "distancia_en_recta_enteros",
      "nombre": "Distancia entre enteros en la recta",
      "curso": "prealgebra",
      "modulo": "valor_absoluto_recta",
      "nivel": 3,
      "xp": 12,
      "descripcion": "La distancia entre dos enteros es el valor absoluto de su diferencia.",
      "puntos_de_conocimiento": [
        "Distancia como valor absoluto de la diferencia",
        "Calcular distancias entre enteros con signo",
        "Relacionar distancia y orden en la recta"
      ]
    },
    {
      "id": "ecuaciones_un_paso_suma",
      "nombre": "Ecuaciones de un paso (suma y resta)",
      "curso": "prealgebra",
      "modulo": "ecuaciones_lineales_basicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Despejar sumando o restando el mismo valor en ambos lados.",
      "puntos_de_conocimiento": [
        "Sumar o restar lo mismo en ambos lados",
        "Aislar la variable con la operación inversa",
        "Comprobar la solución sustituyendo"
      ]
    },
    {
      "id": "evaluar_expresiones",
      "nombre": "Evaluar expresiones algebraicas",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Sustituir valores numericos en una expresión y operar.",
      "puntos_de_conocimiento": [
        "Sustituir un valor en la variable",
        "Aplicar la jerarquía tras sustituir",
        "Evaluar con valores enteros negativos"
      ]
    },
    {
      "id": "multiplicar_enteros",
      "nombre": "Multiplicar enteros",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Regla de signos para el producto de enteros.",
      "puntos_de_conocimiento": [
        "Producto de signos iguales es positivo",
        "Producto de signos distintos es negativo",
        "Multiplicar por cero y por uno"
      ]
    },
    {
      "id": "producto_de_potencias",
      "nombre": "Producto de potencias de igual base",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Al multiplicar potencias de igual base se suman los exponentes.",
      "puntos_de_conocimiento": [
        "Sumar exponentes con la misma base",
        "Justificar la regla con producto repetido",
        "Aplicar con coeficientes y varias variables"
      ]
    },
    {
      "id": "restar_enteros",
      "nombre": "Restar enteros",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Restar es sumar el opuesto del sustraendo.",
      "puntos_de_conocimiento": [
        "Convertir la resta en suma del opuesto",
        "Restar un negativo equivale a sumar",
        "Resolver cadenas de sumas y restas"
      ]
    },
    {
      "id": "sistema_coordenadas_cartesianas",
      "nombre": "Sistema de coordenadas cartesianas",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Dos rectas numericas perpendiculares forman el plano.",
      "puntos_de_conocimiento": [
        "Identificar eje x, eje y y origen",
        "Concepto de par ordenado (x, y)",
        "El orden de las coordenadas importa"
      ]
    },
    {
      "id": "sistema_metrico_decimal",
      "nombre": "Sistema metrico decimal",
      "curso": "prealgebra",
      "modulo": "unidades_y_conversiones",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Unidades de longitud, masa y capacidad y sus prefijos.",
      "puntos_de_conocimiento": [
        "Identificar unidades base (metro, gramo, litro)",
        "Prefijos kilo, centi y mili",
        "Escalera de unidades en potencias de diez"
      ]
    },
    {
      "id": "sumar_enteros_distinto_signo",
      "nombre": "Sumar enteros de distinto signo",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Restar valores absolutos y tomar el signo del mayor.",
      "puntos_de_conocimiento": [
        "Restar el valor absoluto menor del mayor",
        "Asignar el signo del sumando de mayor valor absoluto",
        "Suma de un número y su opuesto da cero"
      ]
    },
    {
      "id": "terminos_y_coeficientes",
      "nombre": "Terminos, coeficientes y parte literal",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Identificar las partes de un término algebraico.",
      "puntos_de_conocimiento": [
        "Distinguir coeficiente, parte literal y termino",
        "Identificar terminos en una expresión",
        "Termino constante e identificar el signo del término"
      ]
    },
    {
      "id": "traducir_lenguaje_algebraico",
      "nombre": "Traducir lenguaje al algebra",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Pasar de enunciados verbales a expresiones algebraicas.",
      "puntos_de_conocimiento": [
        "Identificar palabras clave de cada operación",
        "Escribir expresiones a partir de frases",
        "Traducir el doble, el triple, la mitad y la diferencia"
      ]
    },
    {
      "id": "valor_absoluto_en_operaciones",
      "nombre": "Valor absoluto en operaciones",
      "curso": "prealgebra",
      "modulo": "valor_absoluto_recta",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Evaluar expresiones que contienen valor absoluto.",
      "puntos_de_conocimiento": [
        "Evaluar el valor absoluto antes de operar",
        "El valor absoluto agrupa como un parentesis",
        "Comparar expresiones con valor absoluto"
      ]
    },
    {
      "id": "cociente_de_potencias",
      "nombre": "Cociente de potencias de igual base",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Al dividir potencias de igual base se restan los exponentes.",
      "puntos_de_conocimiento": [
        "Restar exponentes con la misma base",
        "Justificar la regla con cancelación de factores",
        "Simplificar cocientes con coeficientes"
      ]
    },
    {
      "id": "conversion_unidades_metricas",
      "nombre": "Conversión de unidades metricas",
      "curso": "prealgebra",
      "modulo": "unidades_y_conversiones",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Convertir entre unidades multiplicando o dividiendo por potencias de diez.",
      "puntos_de_conocimiento": [
        "Multiplicar o dividir por potencias de diez",
        "Mover el punto decimal al cambiar de unidad",
        "Convertir entre kilo, base, centi y mili"
      ]
    },
    {
      "id": "cuadrantes_y_ejes",
      "nombre": "Cuadrantes y signos de las coordenadas",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Los signos de x e y determinan el cuadrante.",
      "puntos_de_conocimiento": [
        "Identificar los cuatro cuadrantes",
        "Signos de las coordenadas en cada cuadrante",
        "Puntos sobre los ejes (no pertenecen a ningún cuadrante)"
      ]
    },
    {
      "id": "desigualdad_regla_signo_negativo",
      "nombre": "Invertir la desigualdad al usar negativos",
      "curso": "prealgebra",
      "modulo": "desigualdades_basicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Multiplicar o dividir por un negativo invierte el sentido.",
      "puntos_de_conocimiento": [
        "Invertir el simbolo al multiplicar por negativo",
        "Invertir el simbolo al dividir por negativo",
        "Justificar por que el sentido cambia"
      ]
    },
    {
      "id": "dividir_enteros",
      "nombre": "Dividir enteros",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Regla de signos para el cociente de enteros.",
      "puntos_de_conocimiento": [
        "Regla de signos en la división",
        "El cociente comparte la regla de la multiplicación",
        "División con cero (cuando es indefinida)"
      ]
    },
    {
      "id": "ecuaciones_un_paso_producto",
      "nombre": "Ecuaciones de un paso (producto y cociente)",
      "curso": "prealgebra",
      "modulo": "ecuaciones_lineales_basicas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Despejar multiplicando o dividiendo ambos lados.",
      "puntos_de_conocimiento": [
        "Dividir ambos lados entre el coeficiente",
        "Multiplicar ambos lados por el divisor",
        "Resolver con coeficientes negativos"
      ]
    },
    {
      "id": "exponente_cero",
      "nombre": "Exponente cero",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Toda base no nula elevada a cero es uno.",
      "puntos_de_conocimiento": [
        "Justificar el exponente cero con el cociente de potencias",
        "Toda base no nula a la cero da uno",
        "Aplicar en expresiones con varios factores"
      ]
    },
    {
      "id": "jerarquia_con_enteros",
      "nombre": "Jerarquía de operaciones con enteros",
      "curso": "prealgebra",
      "modulo": "operaciones_enteros",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Aplicar el orden de operaciones con números con signo.",
      "puntos_de_conocimiento": [
        "Orden de operaciones con enteros negativos",
        "Manejo de signos dentro y fuera de parentesis",
        "Potencias de base negativa con paréntesis"
      ]
    },
    {
      "id": "potencia_de_potencia",
      "nombre": "Potencia de una potencia",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Al elevar una potencia a otro exponente se multiplican los exponentes.",
      "puntos_de_conocimiento": [
        "Multiplicar los exponentes",
        "Distinguir potencia de potencia de producto de potencias",
        "Aplicar a expresiones con variables"
      ]
    },
    {
      "id": "propiedad_distributiva_algebraica",
      "nombre": "Propiedad distributiva con variables",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Distribuir un factor sobre una suma o resta de terminos.",
      "puntos_de_conocimiento": [
        "Multiplicar un término por un parentesis",
        "Distribuir con factores negativos",
        "Distribuir y quitar el signo menos de un parentesis"
      ]
    },
    {
      "id": "resolver_desigualdad_un_paso",
      "nombre": "Resolver desigualdades de un paso",
      "curso": "prealgebra",
      "modulo": "desigualdades_basicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Aislar la variable con operaciones que conservan el sentido.",
      "puntos_de_conocimiento": [
        "Sumar o restar lo mismo en ambos lados",
        "Dividir o multiplicar por un positivo",
        "Expresar la solución como conjunto de valores"
      ]
    },
    {
      "id": "simplificar_expresiones",
      "nombre": "Simplificar expresiones algebraicas",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Combinar distributiva y reducción de semejantes.",
      "puntos_de_conocimiento": [
        "Distribuir y luego reducir semejantes",
        "Simplificar expresiones con varios parentesis",
        "Verificar evaluando con un valor"
      ]
    },
    {
      "id": "terminos_semejantes",
      "nombre": "Reducir terminos semejantes",
      "curso": "prealgebra",
      "modulo": "expresiones_algebraicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Combinar terminos con la misma parte literal.",
      "puntos_de_conocimiento": [
        "Reconocer terminos semejantes",
        "Sumar y restar coeficientes de semejantes",
        "Reducir una expresión con varios terminos"
      ]
    },
    {
      "id": "ubicar_puntos_plano",
      "nombre": "Ubicar puntos en el plano",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Localizar un punto a partir de su par ordenado.",
      "puntos_de_conocimiento": [
        "Avanzar en x y luego en y",
        "Ubicar puntos con coordenadas negativas",
        "Leer las coordenadas de un punto dado"
      ]
    },
    {
      "id": "analisis_dimensional_basico",
      "nombre": "Análisis dimensional basico",
      "curso": "prealgebra",
      "modulo": "unidades_y_conversiones",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Convertir usando factores de conversión que cancelan unidades.",
      "puntos_de_conocimiento": [
        "Escribir un factor de conversión como razón igual a uno",
        "Cancelar unidades al multiplicar",
        "Encadenar varios factores de conversión"
      ]
    },
    {
      "id": "desigualdades_dos_pasos",
      "nombre": "Desigualdades de dos pasos",
      "curso": "prealgebra",
      "modulo": "desigualdades_basicas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Resolver desigualdades que requieren deshacer dos operaciones.",
      "puntos_de_conocimiento": [
        "Deshacer la suma o resta primero",
        "Deshacer la multiplicación o división después",
        "Invertir el sentido al usar un negativo",
        "Expresar y verificar el conjunto solución"
      ]
    },
    {
      "id": "ecuaciones_dos_pasos",
      "nombre": "Ecuaciones de dos pasos",
      "curso": "prealgebra",
      "modulo": "ecuaciones_lineales_basicas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Deshacer suma o resta y luego el producto o cociente.",
      "puntos_de_conocimiento": [
        "Deshacer primero la suma o resta",
        "Luego deshacer la multiplicación o división",
        "Resolver con terminos negativos y comprobar"
      ]
    },
    {
      "id": "exponente_negativo",
      "nombre": "Exponente negativo",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Un exponente negativo indica el reciproco de la potencia positiva.",
      "puntos_de_conocimiento": [
        "Convertir exponente negativo en reciproco",
        "Reescribir una expresión con exponentes positivos",
        "Combinar con producto y cociente de potencias"
      ]
    },
    {
      "id": "graficar_desigualdad_recta",
      "nombre": "Graficar desigualdades en la recta",
      "curso": "prealgebra",
      "modulo": "desigualdades_basicas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Representar el conjunto solución en la recta numerica.",
      "puntos_de_conocimiento": [
        "Círculo abierto para estricta, cerrado para no estricta",
        "Sombrear la dirección correcta",
        "Leer una desigualdad a partir de su gráfica"
      ]
    },
    {
      "id": "graficar_pares_tabla",
      "nombre": "Graficar pares ordenados desde una tabla",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Construir una tabla de valores y graficar los puntos.",
      "puntos_de_conocimiento": [
        "Generar pares ordenados a partir de una regla",
        "Ubicar todos los puntos de la tabla",
        "Reconocer un patrón lineal en los puntos"
      ]
    },
    {
      "id": "operaciones_notacion_cientifica",
      "nombre": "Operaciones en notación cientifica",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Multiplicar y dividir números escritos en notación cientifica.",
      "puntos_de_conocimiento": [
        "Multiplicar coeficientes y sumar exponentes",
        "Dividir coeficientes y restar exponentes",
        "Reajustar el coeficiente a la forma estandar",
        "Operar con exponentes negativos"
      ]
    },
    {
      "id": "potencia_de_producto_cociente",
      "nombre": "Potencia de un producto y de un cociente",
      "curso": "prealgebra",
      "modulo": "leyes_exponentes",
      "nivel": 5,
      "xp": 14,
      "descripcion": "El exponente se distribuye sobre el producto o el cociente.",
      "puntos_de_conocimiento": [
        "Distribuir el exponente en un producto",
        "Distribuir el exponente en un cociente",
        "Combinar con la potencia de una potencia"
      ]
    },
    {
      "id": "problemas_verbales_ecuaciones",
      "nombre": "Problemas verbales con ecuaciones",
      "curso": "prealgebra",
      "modulo": "ecuaciones_lineales_basicas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Plantear y resolver una ecuación a partir de un enunciado.",
      "puntos_de_conocimiento": [
        "Definir la variable a partir del enunciado",
        "Plantear la ecuación de uno o dos pasos",
        "Resolver e interpretar la solución en contexto"
      ]
    },
    {
      "id": "proporcionalidad_directa_constante",
      "nombre": "Proporcionalidad directa y constante (y=kx)",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Relación en la que y es un multiplo constante de x.",
      "puntos_de_conocimiento": [
        "Reconocer la forma y=kx",
        "Calcular la constante de proporcionalidad k=y/x",
        "Identificar proporcionalidad directa en una tabla",
        "Graficar una relación proporcional que pasa por el origen"
      ]
    },
    {
      "id": "tasa_de_cambio_constante",
      "nombre": "Tasa de cambio constante",
      "curso": "prealgebra",
      "modulo": "plano_cartesiano",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Cambio constante de una cantidad respecto a otra entre dos puntos.",
      "puntos_de_conocimiento": [
        "Calcular el cambio en y sobre el cambio en x",
        "Reconocer una tasa de cambio constante en una tabla",
        "Interpretar la tasa como cantidad por unidad",
        "Distinguir tasa constante de tasa variable"
      ]
    },
    {
      "id": "conversiones_compuestas",
      "nombre": "Conversiones de unidades compuestas",
      "curso": "prealgebra",
      "modulo": "unidades_y_conversiones",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Convertir tasas y unidades compuestas como velocidad.",
      "puntos_de_conocimiento": [
        "Convertir unidades de velocidad (km/h a m/s)",
        "Convertir unidades compuestas con dos factores",
        "Verificar que las unidades finales sean correctas"
      ]
    },
    {
      "id": "ecuacion_lineal_un_paso",
      "nombre": "Ecuación lineal de un paso",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Resolver ax=b o x+a=b con una sola operación inversa.",
      "puntos_de_conocimiento": [
        "Resolver por suma o resta",
        "Resolver por multiplicación o división",
        "Verificar la solución por sustitución"
      ]
    },
    {
      "id": "propiedades_igualdad",
      "nombre": "Propiedades de la igualdad",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Sumar, restar, multiplicar o dividir ambos lados conserva la igualdad.",
      "puntos_de_conocimiento": [
        "Propiedad aditiva y sustractiva de la igualdad",
        "Propiedad multiplicativa y de división",
        "Operaciones inversas para aislar la variable"
      ]
    },
    {
      "id": "concepto_de_funcion",
      "nombre": "Concepto de función",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Relación que asigna a cada entrada exactamente una salida.",
      "puntos_de_conocimiento": [
        "Entrada, salida y regla de asignación",
        "Una entrada tiene una sola salida",
        "Distinguir relación de función"
      ]
    },
    {
      "id": "concepto_desigualdad_lineal",
      "nombre": "Concepto de desigualdad lineal",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Interpretar y graficar desigualdades en la recta numerica.",
      "puntos_de_conocimiento": [
        "Simbolos <, >, <= y >=",
        "Graficar el conjunto solución en la recta",
        "Notación de intervalo basica"
      ]
    },
    {
      "id": "ecuacion_lineal_dos_pasos",
      "nombre": "Ecuación lineal de dos pasos",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Resolver ax+b=c deshaciendo dos operaciones en orden inverso.",
      "puntos_de_conocimiento": [
        "Deshacer suma o resta primero",
        "Deshacer multiplicación o división después",
        "Verificar la solución"
      ]
    },
    {
      "id": "notacion_funcion_fx",
      "nombre": "Notación de función f(x)",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Leer y escribir funciones en notación f(x).",
      "puntos_de_conocimiento": [
        "Interpretar f(x) como salida",
        "Escribir reglas con notación de función",
        "Distinguir variable independiente y dependiente"
      ]
    },
    {
      "id": "clasificar_polinomios",
      "nombre": "Clasificación de polinomios",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Clasificar por número de terminos y por grado.",
      "puntos_de_conocimiento": [
        "Monomio, binomio y trinomio",
        "Grado del polinomio",
        "Coeficiente principal y termino constante"
      ]
    },
    {
      "id": "concepto_funcion_lineal",
      "nombre": "Función lineal y razón de cambio",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Función con razón de cambio constante y grafica recta.",
      "puntos_de_conocimiento": [
        "Razón de cambio constante",
        "Reconocer linealidad en tablas",
        "Función lineal frente a no lineal"
      ]
    },
    {
      "id": "concepto_polinomio",
      "nombre": "Concepto de polinomio",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Identificar terminos, coeficientes y grado de un polinomio.",
      "puntos_de_conocimiento": [
        "Termino, coeficiente y grado",
        "Polinomio frente a no polinomio",
        "Ordenar en forma descendente"
      ]
    },
    {
      "id": "dominio_y_rango",
      "nombre": "Dominio y rango",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Identificar el conjunto de entradas y salidas válidas.",
      "puntos_de_conocimiento": [
        "Dominio como conjunto de entradas",
        "Rango como conjunto de salidas",
        "Restricciones del dominio (división y raices)"
      ]
    },
    {
      "id": "ecuacion_con_parentesis",
      "nombre": "Ecuación lineal con parentesis",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Aplicar la propiedad distributiva para eliminar parentesis y resolver.",
      "puntos_de_conocimiento": [
        "Distribuir para quitar parentesis",
        "Combinar terminos y resolver",
        "Distribuir un signo negativo correctamente"
      ]
    },
    {
      "id": "ecuacion_lineal_multipaso",
      "nombre": "Ecuación lineal multipaso",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Combinar terminos semejantes antes de aislar la variable.",
      "puntos_de_conocimiento": [
        "Combinar terminos semejantes en cada lado",
        "Aislar la variable paso a paso",
        "Resolver ecuaciones con varios terminos"
      ]
    },
    {
      "id": "evaluar_funcion",
      "nombre": "Evaluar una función",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Sustituir un valor de entrada y calcular la salida.",
      "puntos_de_conocimiento": [
        "Evaluar f(a) por sustitución",
        "Evaluar en expresiones como f(x+1)",
        "Resolver f(x)=k para la entrada"
      ]
    },
    {
      "id": "multiplicar_monomios",
      "nombre": "Multiplicación de monomios",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Multiplicar coeficientes y sumar exponentes de la misma base.",
      "puntos_de_conocimiento": [
        "Multiplicar coeficientes",
        "Sumar exponentes de bases iguales",
        "Potencia de un monomio"
      ]
    },
    {
      "id": "pendiente_concepto",
      "nombre": "Concepto de pendiente",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Pendiente como razón entre el cambio vertical y el horizontal.",
      "puntos_de_conocimiento": [
        "Pendiente como subida sobre avance",
        "Pendiente positiva, negativa, cero e indefinida",
        "Interpretar la pendiente en contexto"
      ]
    },
    {
      "id": "prueba_recta_vertical",
      "nombre": "Prueba de la recta vertical",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Decidir si una gráfica representa una función.",
      "puntos_de_conocimiento": [
        "Aplicar la prueba de la recta vertical",
        "Relacionar con una entrada-una salida",
        "Clasificar graficas como función o no"
      ]
    },
    {
      "id": "representaciones_funcion",
      "nombre": "Representaciones de una función",
      "curso": "algebra_1",
      "modulo": "funciones_concepto",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Pasar entre tabla, grafica, ecuación y descripción verbal.",
      "puntos_de_conocimiento": [
        "Tabla a grafica y a ecuación",
        "Lectura de valores en una gráfica",
        "Traducir descripción verbal a regla"
      ]
    },
    {
      "id": "resolver_desigualdad_lineal_un_paso",
      "nombre": "Desigualdad lineal de uno y dos pasos",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Resolver invirtiendo el signo al multiplicar o dividir por negativo.",
      "puntos_de_conocimiento": [
        "Resolver con operaciones inversas",
        "Invertir el sentido al multiplicar o dividir por negativo",
        "Graficar la solución"
      ]
    },
    {
      "id": "sumar_restar_polinomios",
      "nombre": "Suma y resta de polinomios",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Combinar terminos semejantes para sumar o restar.",
      "puntos_de_conocimiento": [
        "Identificar terminos semejantes",
        "Sumar polinomios",
        "Restar distribuyendo el signo negativo"
      ]
    },
    {
      "id": "calcular_pendiente_dos_puntos",
      "nombre": "Pendiente entre dos puntos",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Calcular la pendiente con la fórmula (y2-y1)/(x2-x1).",
      "puntos_de_conocimiento": [
        "Aplicar la fórmula de la pendiente",
        "Pendiente desde una gráfica",
        "Pendiente desde una tabla"
      ]
    },
    {
      "id": "concepto_funcion_cuadratica",
      "nombre": "Concepto de función cuadratica",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Función de la forma f(x)=ax^2+bx+c y su gráfica parabólica.",
      "puntos_de_conocimiento": [
        "Forma estandar de la cuadratica",
        "La gráfica es una parábola",
        "Concavidad según el signo de a"
      ]
    },
    {
      "id": "concepto_sistema_lineal",
      "nombre": "Concepto de sistema de ecuaciones lineales",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "La solución es el par que satisface todas las ecuaciones a la vez.",
      "puntos_de_conocimiento": [
        "Solución como punto de intersección",
        "Verificar un par ordenado en el sistema",
        "Modelar situaciones con dos ecuaciones"
      ]
    },
    {
      "id": "desigualdad_compuesta",
      "nombre": "Desigualdades compuestas",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Resolver conjunciones (y) y disyunciones (o) de desigualdades.",
      "puntos_de_conocimiento": [
        "Desigualdades con 'y' (intersección)",
        "Desigualdades con 'o' (union)",
        "Graficar y escribir el intervalo solución"
      ]
    },
    {
      "id": "desigualdades_lineales_dos_variables",
      "nombre": "Desigualdades lineales en dos variables",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Graficar el semiplano solución de una desigualdad lineal en dos variables.",
      "puntos_de_conocimiento": [
        "Trazar la recta frontera continua o discontinua",
        "Elegir un punto de prueba para decidir el lado",
        "Sombrear el semiplano solución",
        "Interpretar <=, >=, < y > en el plano"
      ]
    },
    {
      "id": "diferencia_de_cuadrados",
      "nombre": "Diferencia de cuadrados",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Factorizar a^2-b^2 como (a+b)(a-b).",
      "puntos_de_conocimiento": [
        "Reconocer cuadrados perfectos",
        "Aplicar a^2-b^2=(a+b)(a-b)",
        "Distinguir de la suma de cuadrados"
      ]
    },
    {
      "id": "division_polinomio_monomio",
      "nombre": "División de polinomio entre monomio",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Dividir cada término del polinomio entre el monomio.",
      "puntos_de_conocimiento": [
        "Dividir termino a termino",
        "Restar exponentes de bases iguales",
        "Simplificar el cociente"
      ]
    },
    {
      "id": "ecuacion_con_fracciones",
      "nombre": "Ecuación lineal con fracciones",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Multiplicar por el mínimo comun denominador para eliminar fracciones.",
      "puntos_de_conocimiento": [
        "Hallar el mínimo comun denominador",
        "Multiplicar toda la ecuación por el MCD",
        "Resolver la ecuación lineal resultante"
      ]
    },
    {
      "id": "ecuacion_cuadratica_concepto",
      "nombre": "Concepto de ecuación cuadratica",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Forma estandar ax^2+bx+c=0 y noción de raices.",
      "puntos_de_conocimiento": [
        "Reconocer la forma estandar",
        "Identificar a, b y c",
        "Significado de raíz o solución"
      ]
    },
    {
      "id": "ecuacion_valor_absoluto",
      "nombre": "Ecuaciones con valor absoluto",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Resolver |ax+b|=c separando los dos casos posibles.",
      "puntos_de_conocimiento": [
        "Aislar el valor absoluto antes de resolver",
        "Plantear los dos casos ax+b=c y ax+b=-c",
        "Reconocer cuando no hay solución (c negativo)",
        "Verificar ambas soluciones por sustitución"
      ]
    },
    {
      "id": "ecuacion_variable_ambos_lados",
      "nombre": "Ecuación con variable en ambos lados",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Reunir los terminos con variable de un solo lado.",
      "puntos_de_conocimiento": [
        "Mover variables a un solo lado",
        "Mover constantes al otro lado",
        "Identificar identidades y ecuaciones sin solución"
      ]
    },
    {
      "id": "factor_comun",
      "nombre": "Factor comun (GCF)",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Extraer el máximo factor comun de un polinomio.",
      "puntos_de_conocimiento": [
        "Hallar el GCF de los terminos",
        "Factorizar extrayendo el GCF",
        "Verificar distribuyendo"
      ]
    },
    {
      "id": "forma_pendiente_interseccion",
      "nombre": "Forma pendiente-intersección",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Identificar pendiente y ordenada al origen en y=mx+b.",
      "puntos_de_conocimiento": [
        "Identificar m y b en y=mx+b",
        "Escribir la ecuación dados m y b",
        "Interpretar la ordenada al origen"
      ]
    },
    {
      "id": "forma_punto_pendiente",
      "nombre": "Forma punto-pendiente",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Escribir la ecuación de una recta dados un punto y la pendiente.",
      "puntos_de_conocimiento": [
        "Aplicar y-y1=m(x-x1)",
        "Ecuación dada la pendiente y un punto",
        "Ecuación dados dos puntos"
      ]
    },
    {
      "id": "graficar_recta_pendiente_interseccion",
      "nombre": "Graficar rectas desde pendiente-intersección",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Trazar y=mx+b usando la ordenada al origen y la pendiente.",
      "puntos_de_conocimiento": [
        "Marcar la ordenada al origen",
        "Usar la pendiente para hallar otro punto",
        "Trazar la recta completa"
      ]
    },
    {
      "id": "multiplicar_polinomios",
      "nombre": "Multiplicación de polinomios",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Distribuir cada término, incluido el método FOIL para binomios.",
      "puntos_de_conocimiento": [
        "Monomio por polinomio",
        "Binomio por binomio (FOIL)",
        "Polinomio por polinomio y reducción"
      ]
    },
    {
      "id": "productos_notables",
      "nombre": "Productos notables",
      "curso": "algebra_1",
      "modulo": "polinomios",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Cuadrado de un binomio y producto de binomios conjugados.",
      "puntos_de_conocimiento": [
        "Cuadrado de una suma y de una diferencia",
        "Producto de binomios conjugados",
        "Reconocer el patrón para abreviar"
      ]
    },
    {
      "id": "resolver_desigualdad_multipaso",
      "nombre": "Desigualdad lineal multipaso",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Distribuir, combinar terminos y resolver desigualdades con variable en ambos lados.",
      "puntos_de_conocimiento": [
        "Distribuir y combinar terminos semejantes",
        "Variable en ambos lados",
        "Expresar la solución en notación de intervalo"
      ]
    },
    {
      "id": "sistema_metodo_grafico",
      "nombre": "Sistemas por el método grafico",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Resolver graficando ambas rectas y leyendo la intersección.",
      "puntos_de_conocimiento": [
        "Graficar ambas rectas",
        "Leer el punto de intersección",
        "Estimar y verificar la solución"
      ]
    },
    {
      "id": "variacion_directa_inversa",
      "nombre": "Variación directa e inversa",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Modelar relaciones y=kx (directa) e y=k/x (inversa) y hallar la constante k.",
      "puntos_de_conocimiento": [
        "Reconocer variación directa y=kx",
        "Reconocer variación inversa y=k/x",
        "Hallar la constante de variación k",
        "Resolver problemas de proporcionalidad directa e inversa"
      ]
    },
    {
      "id": "cuadratica_por_factorizacion",
      "nombre": "Cuadratica por factorización",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Usar la propiedad del producto cero tras factorizar.",
      "puntos_de_conocimiento": [
        "Igualar a cero y factorizar",
        "Aplicar la propiedad del producto cero",
        "Resolver cada factor lineal"
      ]
    },
    {
      "id": "cuadratica_raiz_cuadrada",
      "nombre": "Cuadratica por raíz cuadrada",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver x^2=k y (x-h)^2=k extrayendo raíz cuadrada.",
      "puntos_de_conocimiento": [
        "Aislar el término cuadratico",
        "Extraer raíz con signo doble",
        "Resolver binomios al cuadrado"
      ]
    },
    {
      "id": "desigualdad_valor_absoluto",
      "nombre": "Desigualdades con valor absoluto",
      "curso": "algebra_1",
      "modulo": "desigualdades_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Reescribir |ax+b|<c y |ax+b|>c como desigualdades compuestas.",
      "puntos_de_conocimiento": [
        "|x|<c como desigualdad 'y'",
        "|x|>c como desigualdad 'o'",
        "Aislar el valor absoluto antes de resolver"
      ]
    },
    {
      "id": "ecuaciones_literales",
      "nombre": "Ecuaciones literales y despeje de formulas",
      "curso": "algebra_1",
      "modulo": "ecuaciones_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Despejar una variable en una fórmula con varias letras.",
      "puntos_de_conocimiento": [
        "Despejar una variable indicada",
        "Tratar otras letras como constantes",
        "Reordenar formulas comunes"
      ]
    },
    {
      "id": "eje_de_simetria",
      "nombre": "Eje de simetría",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Recta vertical x=-b/2a que divide la parábola.",
      "puntos_de_conocimiento": [
        "Ecuación del eje de simetría",
        "Simetría de puntos respecto al eje",
        "Relación con la coordenada x del vértice"
      ]
    },
    {
      "id": "factorizacion_agrupacion",
      "nombre": "Factorización por agrupación",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Agrupar terminos para extraer factores comunes por pares.",
      "puntos_de_conocimiento": [
        "Agrupar en pares de terminos",
        "Extraer el factor comun de cada grupo",
        "Factorizar el binomio comun"
      ]
    },
    {
      "id": "factorizar_trinomio_general",
      "nombre": "Factorizar trinomio ax^2+bx+c",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Factorizar con coeficiente principal distinto de 1 (método ac).",
      "puntos_de_conocimiento": [
        "Método ac para descomponer el término medio",
        "Factorizar por agrupación",
        "Verificar el resultado"
      ]
    },
    {
      "id": "factorizar_trinomio_simple",
      "nombre": "Factorizar trinomio x^2+bx+c",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Buscar dos números que sumen b y multipliquen c.",
      "puntos_de_conocimiento": [
        "Hallar dos números con suma b y producto c",
        "Escribir como producto de dos binomios",
        "Manejo de signos"
      ]
    },
    {
      "id": "forma_general_recta",
      "nombre": "Forma general y estandar de la recta",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Reescribir entre Ax+By=C y la forma pendiente-intersección.",
      "puntos_de_conocimiento": [
        "Convertir a forma estandar Ax+By=C",
        "De forma estandar a pendiente-intersección",
        "Hallar intersecciones con los ejes"
      ]
    },
    {
      "id": "intersecciones_parabola",
      "nombre": "Intersecciones de la parábola",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Hallar cortes con los ejes x e y.",
      "puntos_de_conocimiento": [
        "Intersección con y evaluando en x=0",
        "Raices o ceros como cortes en x",
        "Relación entre raices y factorización"
      ]
    },
    {
      "id": "parabola_vertice",
      "nombre": "Vértice de la parábola",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Hallar el vértice con x=-b/2a y evaluar para la coordenada y.",
      "puntos_de_conocimiento": [
        "Calcular x=-b/2a",
        "Evaluar para la coordenada y del vértice",
        "Vértice como máximo o mínimo"
      ]
    },
    {
      "id": "rectas_paralelas_perpendiculares",
      "nombre": "Rectas paralelas y perpendiculares",
      "curso": "algebra_1",
      "modulo": "funciones_lineales",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Usar pendientes iguales o reciprocas negativas.",
      "puntos_de_conocimiento": [
        "Paralelas tienen igual pendiente",
        "Perpendiculares con pendientes reciprocas negativas",
        "Escribir la ecuación de una recta paralela o perpendicular"
      ]
    },
    {
      "id": "sistema_eliminacion",
      "nombre": "Sistemas por eliminación",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Sumar o restar las ecuaciones para eliminar una variable.",
      "puntos_de_conocimiento": [
        "Multiplicar para igualar coeficientes",
        "Sumar o restar para eliminar una variable",
        "Resolver el sistema completo"
      ]
    },
    {
      "id": "sistema_sustitucion",
      "nombre": "Sistemas por sustitución",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Despejar una variable y sustituir en la otra ecuación.",
      "puntos_de_conocimiento": [
        "Despejar una variable",
        "Sustituir en la otra ecuación",
        "Resolver y hallar el par solución"
      ]
    },
    {
      "id": "sistemas_casos_soluciones",
      "nombre": "Sistemas sin solución o con infinitas",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Distinguir sistemas consistentes, inconsistentes y dependientes.",
      "puntos_de_conocimiento": [
        "Sin solución (rectas paralelas)",
        "Infinitas soluciones (misma recta)",
        "Reconocer el caso desde el algebra"
      ]
    },
    {
      "id": "sistemas_de_desigualdades_lineales",
      "nombre": "Sistemas de desigualdades lineales",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Hallar la region solución comun a varias desigualdades lineales.",
      "puntos_de_conocimiento": [
        "Graficar cada desigualdad en el mismo plano",
        "Identificar la region de intersección",
        "Hallar los vértices de la region factible",
        "Verificar puntos dentro y fuera de la region"
      ]
    },
    {
      "id": "trinomio_cuadrado_perfecto",
      "nombre": "Trinomio cuadrado perfecto",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Factorizar a^2+-2ab+b^2 como (a+-b)^2.",
      "puntos_de_conocimiento": [
        "Reconocer el patrón del trinomio cuadrado perfecto",
        "Factorizar como cuadrado de un binomio",
        "Relación con los productos notables"
      ]
    },
    {
      "id": "aplicaciones_sistemas",
      "nombre": "Aplicaciones de sistemas lineales",
      "curso": "algebra_1",
      "modulo": "sistemas_lineales",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Plantear y resolver problemas verbales con dos variables.",
      "puntos_de_conocimiento": [
        "Definir variables y plantear el sistema",
        "Elegir el método de solución",
        "Interpretar la solución en contexto"
      ]
    },
    {
      "id": "completar_el_cuadrado",
      "nombre": "Completar el cuadrado",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Transformar a (x-h)^2=k para resolver.",
      "puntos_de_conocimiento": [
        "Anadir (b/2)^2 para formar el cuadrado",
        "Escribir como binomio al cuadrado",
        "Resolver por raíz cuadrada"
      ]
    },
    {
      "id": "discriminante",
      "nombre": "Discriminante y naturaleza de las raices",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 6,
      "xp": 14,
      "descripcion": "Usar b^2-4ac para predecir el número y tipo de raices.",
      "puntos_de_conocimiento": [
        "Calcular el discriminante",
        "Dos, una o ninguna raíz real",
        "Relacionar con cortes en el eje x"
      ]
    },
    {
      "id": "factorizacion_completa",
      "nombre": "Factorización completa (estrategia)",
      "curso": "algebra_1",
      "modulo": "factorizacion",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Combinar tecnicas: GCF primero y luego el patrón adecuado.",
      "puntos_de_conocimiento": [
        "Extraer el GCF antes de seguir",
        "Elegir la tecnica según el número de terminos",
        "Factorizar por completo y verificar"
      ]
    },
    {
      "id": "forma_vertice_parabola",
      "nombre": "Forma de vértice de la parábola",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Interpretar f(x)=a(x-h)^2+k y los desplazamientos.",
      "puntos_de_conocimiento": [
        "Leer el vértice (h,k) directamente",
        "Desplazamientos horizontal y vertical",
        "Pasar de forma estandar a forma de vértice"
      ]
    },
    {
      "id": "formula_general_cuadratica",
      "nombre": "Fórmula general cuadratica",
      "curso": "algebra_1",
      "modulo": "ecuaciones_cuadraticas",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Aplicar x=(-b+-raíz(b^2-4ac))/(2a).",
      "puntos_de_conocimiento": [
        "Identificar a, b y c",
        "Sustituir en la fórmula general",
        "Simplificar las raices"
      ]
    },
    {
      "id": "graficar_parabola",
      "nombre": "Graficar una parábola",
      "curso": "algebra_1",
      "modulo": "funcion_cuadratica",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Trazar usando vértice, eje de simetría e intersecciones.",
      "puntos_de_conocimiento": [
        "Marcar vértice y eje de simetría",
        "Usar las intersecciones y simetría",
        "Trazar la curva con su concavidad"
      ]
    },
    {
      "id": "geo_punto_recta_plano",
      "nombre": "Punto, recta y plano",
      "curso": "geometria",
      "modulo": "fundamentos_geometricos",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Terminos no definidos y notación basica de la geometría.",
      "puntos_de_conocimiento": [
        "Punto, recta y plano como terminos no definidos",
        "Notación de punto, recta y plano",
        "Puntos colineales y coplanares"
      ]
    },
    {
      "id": "geo_segmento_y_rayo",
      "nombre": "Segmento y rayo",
      "curso": "geometria",
      "modulo": "fundamentos_geometricos",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Distinguir segmento, rayo y semirrecta a partir de la recta.",
      "puntos_de_conocimiento": [
        "Definir segmento por sus extremos",
        "Definir rayo y su origen",
        "Notación de segmento y rayo",
        "Rayos opuestos"
      ]
    },
    {
      "id": "geo_clasificar_angulos",
      "nombre": "Clasificación de ángulos",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Agudo, recto, obtuso, llano y completo según su medida.",
      "puntos_de_conocimiento": [
        "Ángulo agudo, recto y obtuso",
        "Ángulo llano y completo",
        "Bisectriz de un ángulo"
      ]
    },
    {
      "id": "geo_concepto_angulo",
      "nombre": "Concepto y notación de ángulo",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Ángulo como union de dos rayos con origen comun.",
      "puntos_de_conocimiento": [
        "Ángulo como dos rayos y un vértice",
        "Lados, vértice e interior del ángulo",
        "Notación de ángulos"
      ]
    },
    {
      "id": "geo_medir_angulos",
      "nombre": "Medida de ángulos con transportador",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Medir ángulos en grados y sumar medidas adyacentes.",
      "puntos_de_conocimiento": [
        "Medir un ángulo con transportador",
        "Postulado de adición de ángulos",
        "Ángulos congruentes"
      ]
    },
    {
      "id": "geo_medir_segmentos",
      "nombre": "Longitud de un segmento",
      "curso": "geometria",
      "modulo": "fundamentos_geometricos",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Medir segmentos y aplicar el postulado de adición de segmentos.",
      "puntos_de_conocimiento": [
        "Medir la longitud de un segmento",
        "Postulado de adición de segmentos",
        "Segmentos congruentes"
      ]
    },
    {
      "id": "geo_planos_postulados",
      "nombre": "Postulados de incidencia",
      "curso": "geometria",
      "modulo": "fundamentos_geometricos",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Relaciones de incidencia entre puntos, rectas y planos.",
      "puntos_de_conocimiento": [
        "Dos puntos determinan una recta",
        "Tres puntos no colineales determinan un plano",
        "Intersección de dos rectas y de dos planos"
      ]
    },
    {
      "id": "geo_punto_medio_segmento",
      "nombre": "Punto medio y bisectriz de un segmento",
      "curso": "geometria",
      "modulo": "fundamentos_geometricos",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Punto que divide un segmento en dos partes congruentes.",
      "puntos_de_conocimiento": [
        "Definir el punto medio",
        "Calcular longitudes con el punto medio",
        "Bisectriz de un segmento"
      ]
    },
    {
      "id": "geo_angulos_adyacentes_opv",
      "nombre": "Ángulos adyacentes y opuestos por el vértice",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Pares formados por rectas que se cortan.",
      "puntos_de_conocimiento": [
        "Ángulos adyacentes y par lineal",
        "Ángulos opuestos por el vértice son congruentes",
        "Resolver con pares lineales y opuestos"
      ]
    },
    {
      "id": "geo_clasificar_triangulos",
      "nombre": "Clasificación de triángulos",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Por sus lados y por sus ángulos.",
      "puntos_de_conocimiento": [
        "Por lados: equilátero, isósceles, escaleno",
        "Por ángulos: acutangulo, rectángulo, obtusangulo",
        "Relación entre lados y ángulos iguales"
      ]
    },
    {
      "id": "geo_concepto_triangulo",
      "nombre": "Triángulo: elementos y notación",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Vértices, lados y ángulos de un triángulo.",
      "puntos_de_conocimiento": [
        "Vértices, lados y ángulos interiores",
        "Notación de triángulos",
        "Lado opuesto y adyacente a un ángulo"
      ]
    },
    {
      "id": "geo_pares_de_angulos",
      "nombre": "Ángulos complementarios y suplementarios",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Pares cuya suma es 90 o 180 grados.",
      "puntos_de_conocimiento": [
        "Ángulos complementarios (suman 90)",
        "Ángulos suplementarios (suman 180)",
        "Hallar el ángulo desconocido planteando una ecuación"
      ]
    },
    {
      "id": "geo_perimetro_poligonos",
      "nombre": "Perímetro de poligonos",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Suma de las longitudes de los lados.",
      "puntos_de_conocimiento": [
        "Perímetro como suma de lados",
        "Perímetro de poligonos regulares",
        "Hallar un lado conocido el perímetro"
      ]
    },
    {
      "id": "geo_proposiciones_condicionales",
      "nombre": "Proposiciones condicionales",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Enunciados si-entonces y sus variantes.",
      "puntos_de_conocimiento": [
        "Hipotesis y conclusión de un condicional",
        "Reciproco, inverso y contrarreciproco",
        "Valor de verdad de un condicional"
      ]
    },
    {
      "id": "geo_razonamiento_inductivo_deductivo",
      "nombre": "Razonamiento inductivo y deductivo",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Conjeturar a partir de patrones y deducir de premisas.",
      "puntos_de_conocimiento": [
        "Razonamiento inductivo y conjeturas",
        "Razonamiento deductivo",
        "Definición, postulado y teorema"
      ]
    },
    {
      "id": "geo_rectas_paralelas_perpendiculares",
      "nombre": "Rectas paralelas y perpendiculares",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Relaciones de paralelismo y perpendicularidad entre rectas.",
      "puntos_de_conocimiento": [
        "Definir rectas paralelas",
        "Definir rectas perpendiculares",
        "Distancia de un punto a una recta"
      ]
    },
    {
      "id": "geo_angulo_exterior_triangulo",
      "nombre": "Teorema del ángulo exterior",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "El ángulo exterior es igual a la suma de los internos no adyacentes.",
      "puntos_de_conocimiento": [
        "Definir el ángulo exterior",
        "Ángulo exterior = suma de los internos remotos",
        "Resolver problemas con ángulos exteriores"
      ]
    },
    {
      "id": "geo_area_cuadrilateros",
      "nombre": "Área de cuadrilateros",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Rectángulo, paralelogramo, rombo y trapecio.",
      "puntos_de_conocimiento": [
        "Area del rectángulo y del paralelogramo",
        "Area del rombo con diagonales",
        "Area del trapecio"
      ]
    },
    {
      "id": "geo_area_triangulo",
      "nombre": "Área del triángulo",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Area con base y altura, y fórmula de Heron.",
      "puntos_de_conocimiento": [
        "Area = base por altura / 2",
        "Identificar la altura correcta",
        "Fórmula de Heron"
      ]
    },
    {
      "id": "geo_circulo_elementos",
      "nombre": "Círculo: radio, diámetro y cuerda",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Elementos basicos de la circunferencia.",
      "puntos_de_conocimiento": [
        "Centro, radio y diámetro",
        "Cuerda, secante y tangente",
        "Relación diámetro = 2 por radio"
      ]
    },
    {
      "id": "geo_clasificar_cuadrilateros",
      "nombre": "Clasificación de cuadrilateros",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Jerarquía de paralelogramos, trapecios y cometas.",
      "puntos_de_conocimiento": [
        "Paralelogramo, rectángulo, rombo y cuadrado",
        "Trapecio y trapezoide",
        "Jerarquía de los cuadrilateros"
      ]
    },
    {
      "id": "geo_congruencia_concepto",
      "nombre": "Concepto de congruencia de figuras",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Figuras con la misma forma y tamaño.",
      "puntos_de_conocimiento": [
        "Figuras congruentes: igual forma y tamaño",
        "Correspondencia de vértices, lados y ángulos",
        "Notación de congruencia"
      ]
    },
    {
      "id": "geo_contraejemplo",
      "nombre": "Contraejemplo",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Refutar una afirmación con un solo caso.",
      "puntos_de_conocimiento": [
        "Refutar una conjetura con un contraejemplo",
        "Distinguir afirmación verdadera de falsa",
        "Construir un contraejemplo"
      ]
    },
    {
      "id": "geo_desigualdad_triangular",
      "nombre": "Desigualdad triangular",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "La suma de dos lados supera al tercero.",
      "puntos_de_conocimiento": [
        "La suma de dos lados es mayor que el tercero",
        "Determinar si tres longitudes forman triángulo",
        "Rango de valores del tercer lado"
      ]
    },
    {
      "id": "geo_distancia_entre_puntos",
      "nombre": "Distancia entre dos puntos",
      "curso": "geometria",
      "modulo": "geometria_analitica",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Fórmula de distancia derivada de Pitágoras.",
      "puntos_de_conocimiento": [
        "Fórmula de distancia en el plano",
        "Relación con el teorema de Pitágoras",
        "Longitud de un segmento dado por coordenadas"
      ]
    },
    {
      "id": "geo_lugar_geometrico",
      "nombre": "Lugar geométrico",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Conjunto de puntos que cumplen una condición geométrica dada.",
      "puntos_de_conocimiento": [
        "Definir un lugar geométrico como conjunto de puntos con una propiedad",
        "Describir la circunferencia como lugar de puntos equidistantes de un centro",
        "Describir la mediatriz como lugar equidistante de dos puntos",
        "Describir la bisectriz como lugar equidistante de dos rectas"
      ]
    },
    {
      "id": "geo_poligonos_concepto",
      "nombre": "Polígonos: elementos y clasificación",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Lados, vértices, diagonales y convexidad.",
      "puntos_de_conocimiento": [
        "Lados, vértices y diagonales",
        "Polígono convexo y concavo",
        "Polígono regular e irregular"
      ]
    },
    {
      "id": "geo_probar_paralelismo",
      "nombre": "Criterios para probar que dos rectas son paralelas",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Usar pares de ángulos para concluir paralelismo.",
      "puntos_de_conocimiento": [
        "Reciproco de correspondientes congruentes",
        "Reciproco de alternos congruentes",
        "Reciproco de co-interiores suplementarios"
      ]
    },
    {
      "id": "geo_punto_medio_coordenadas",
      "nombre": "Punto medio en coordenadas",
      "curso": "geometria",
      "modulo": "geometria_analitica",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Promedio de coordenadas de los extremos.",
      "puntos_de_conocimiento": [
        "Fórmula del punto medio",
        "Hallar un extremo dado el punto medio",
        "Aplicar a figuras en el plano"
      ]
    },
    {
      "id": "geo_rectas_notables_triangulo",
      "nombre": "Rectas y puntos notables del triángulo",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Medianas, alturas, mediatrices y bisectrices.",
      "puntos_de_conocimiento": [
        "Mediana y baricentro",
        "Altura y ortocentro",
        "Mediatriz, bisectriz y sus puntos de concurrencia"
      ]
    },
    {
      "id": "geo_reflexion",
      "nombre": "Reflexion",
      "curso": "geometria",
      "modulo": "transformaciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Imagen especular respecto a un eje.",
      "puntos_de_conocimiento": [
        "Reflexion respecto a un eje",
        "Reflexion sobre los ejes x e y",
        "Eje de simetría de una figura"
      ]
    },
    {
      "id": "geo_solidos_clasificacion",
      "nombre": "Clasificación de sólidos y sus elementos",
      "curso": "geometria",
      "modulo": "solidos_volumen",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Prismas, pirámides, cilindros, conos y esferas.",
      "puntos_de_conocimiento": [
        "Caras, aristas y vértices",
        "Prisma, pirámide, cilindro, cono y esfera",
        "Redes (desarrollos planos) de un sólido"
      ]
    },
    {
      "id": "geo_suma_angulos_triangulo",
      "nombre": "Suma de los ángulos interiores de un triángulo",
      "curso": "geometria",
      "modulo": "triangulos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Los ángulos interiores suman 180 grados.",
      "puntos_de_conocimiento": [
        "Los ángulos interiores suman 180 grados",
        "Hallar un ángulo faltante",
        "Ángulos de triángulos especiales (equilátero, isósceles)"
      ]
    },
    {
      "id": "geo_teorema_pitagoras",
      "nombre": "Teorema de Pitágoras",
      "curso": "geometria",
      "modulo": "teorema_pitagoras",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Relación entre catetos e hipotenusa en el triángulo rectángulo.",
      "puntos_de_conocimiento": [
        "Identificar catetos e hipotenusa",
        "Aplicar a^2 + b^2 = c^2",
        "Hallar la hipotenusa",
        "Hallar un cateto"
      ]
    },
    {
      "id": "geo_transversal_angulos",
      "nombre": "Ángulos entre paralelas y una transversal",
      "curso": "geometria",
      "modulo": "angulos_y_rectas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Correspondientes, alternos y co-interiores en paralelas cortadas.",
      "puntos_de_conocimiento": [
        "Ángulos correspondientes",
        "Ángulos alternos internos y externos",
        "Ángulos co-interiores (suman 180)",
        "Resolver ángulos con una transversal"
      ]
    },
    {
      "id": "geo_traslacion",
      "nombre": "Traslación",
      "curso": "geometria",
      "modulo": "transformaciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Deslizar una figura según un vector.",
      "puntos_de_conocimiento": [
        "Traslación según un vector",
        "Regla de traslación en coordenadas",
        "La traslación conserva forma y tamaño"
      ]
    },
    {
      "id": "geo_angulo_inscrito",
      "nombre": "Ángulo inscrito",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Relación entre el ángulo inscrito y su arco.",
      "puntos_de_conocimiento": [
        "El ángulo inscrito mide la mitad de su arco",
        "Ángulos inscritos que abarcan el mismo arco",
        "Ángulo inscrito en una semicircunferencia es recto"
      ]
    },
    {
      "id": "geo_angulos_exteriores_poligono",
      "nombre": "Ángulos exteriores de un polígono",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "La suma de los exteriores es 360 grados.",
      "puntos_de_conocimiento": [
        "La suma de los ángulos exteriores es 360",
        "Ángulo exterior de un polígono regular",
        "Relación entre ángulo interior y exterior"
      ]
    },
    {
      "id": "geo_aplicaciones_pitagoras",
      "nombre": "Aplicaciones del teorema de Pitágoras",
      "curso": "geometria",
      "modulo": "teorema_pitagoras",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Distancias, diagonales y problemas del mundo real.",
      "puntos_de_conocimiento": [
        "Diagonal de un rectángulo",
        "Altura y problemas en contexto",
        "Distancia en el plano coordenado (introducción)"
      ]
    },
    {
      "id": "geo_arcos_y_angulo_central",
      "nombre": "Arcos y ángulo central",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Medida de arcos y su relación con el ángulo central.",
      "puntos_de_conocimiento": [
        "Arco menor, mayor y semicircunferencia",
        "El ángulo central mide igual que su arco",
        "Suma de arcos en la circunferencia"
      ]
    },
    {
      "id": "geo_area_poligono_regular",
      "nombre": "Área de un polígono regular",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Area con apotema y perímetro.",
      "puntos_de_conocimiento": [
        "Concepto de apotema",
        "Area = perímetro por apotema / 2",
        "Descomponer en triángulos"
      ]
    },
    {
      "id": "geo_area_volumen_cilindro",
      "nombre": "Área superficial y volumen del cilindro",
      "curso": "geometria",
      "modulo": "solidos_volumen",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Cilindro recto.",
      "puntos_de_conocimiento": [
        "Area lateral y total del cilindro",
        "Volumen = pi por r al cuadrado por altura",
        "Problemas en contexto"
      ]
    },
    {
      "id": "geo_area_volumen_prisma",
      "nombre": "Área superficial y volumen del prisma",
      "curso": "geometria",
      "modulo": "solidos_volumen",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Prismas rectos y el cubo.",
      "puntos_de_conocimiento": [
        "Area superficial del prisma",
        "Volumen = area de la base por altura",
        "Caso del cubo y del ortoedro"
      ]
    },
    {
      "id": "geo_circunferencia_y_area_circulo",
      "nombre": "Longitud de la circunferencia y area del círculo",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Formulas con pi para circunferencia y area.",
      "puntos_de_conocimiento": [
        "Longitud C = 2 por pi por r",
        "Area A = pi por r al cuadrado",
        "Hallar el radio a partir de C o de A"
      ]
    },
    {
      "id": "geo_congruencia_hipotenusa_cateto",
      "nombre": "Criterio de congruencia hipotenusa-cateto (HC)",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Criterio de congruencia exclusivo de triángulos rectángulos a partir de la hipotenusa y un cateto.",
      "puntos_de_conocimiento": [
        "Enunciar el criterio hipotenusa-cateto (HC) para triángulos rectángulos",
        "Justificar el criterio HC con el teorema de Pitágoras",
        "Distinguir HC del caso ambiguo lado-lado-ángulo",
        "Probar congruencia de dos triángulos rectángulos con HC"
      ]
    },
    {
      "id": "geo_construcciones_regla_compas",
      "nombre": "Construcciones con regla y compas",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Construcciones clasicas elementales usando solo regla no graduada y compas.",
      "puntos_de_conocimiento": [
        "Copiar un segmento y un ángulo con regla y compas",
        "Trazar la mediatriz de un segmento",
        "Trazar la bisectriz de un ángulo",
        "Construir la perpendicular y la paralela a una recta por un punto"
      ]
    },
    {
      "id": "geo_criterios_congruencia",
      "nombre": "Criterios de congruencia de triángulos",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 5,
      "xp": 16,
      "descripcion": "LLL, LAL, ALA y LAA.",
      "puntos_de_conocimiento": [
        "Criterio LLL",
        "Criterio LAL",
        "Criterio ALA y LAA",
        "Seleccionar el criterio adecuado"
      ]
    },
    {
      "id": "geo_criterios_semejanza",
      "nombre": "Criterios de semejanza de triángulos",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 5,
      "xp": 16,
      "descripcion": "AA, LAL y LLL de semejanza.",
      "puntos_de_conocimiento": [
        "Criterio AA",
        "Criterio LAL de semejanza",
        "Criterio LLL de semejanza",
        "Hallar lados faltantes con proporciones"
      ]
    },
    {
      "id": "geo_cuerdas_y_arcos",
      "nombre": "Relaciones entre cuerdas y arcos",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Relaciones entre cuerdas, sus arcos y el radio perpendicular a una cuerda.",
      "puntos_de_conocimiento": [
        "Relacionar cuerdas congruentes con arcos congruentes",
        "Usar que el radio perpendicular a una cuerda la biseca",
        "Comparar la distancia al centro con la longitud de la cuerda",
        "Hallar longitudes de cuerdas y arcos relacionados"
      ]
    },
    {
      "id": "geo_demostracion_directa",
      "nombre": "Demostración directa",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Cadena de razones desde hipotesis a conclusión.",
      "puntos_de_conocimiento": [
        "Estructura afirmación-razón (two-column)",
        "Justificar pasos con postulados y teoremas",
        "Demostrar igualdad de ángulos o congruencia"
      ]
    },
    {
      "id": "geo_ecuacion_recta",
      "nombre": "Ecuación de la recta",
      "curso": "geometria",
      "modulo": "geometria_analitica",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Formas punto-pendiente y pendiente-ordenada.",
      "puntos_de_conocimiento": [
        "Forma pendiente-ordenada al origen",
        "Forma punto-pendiente",
        "Recta por dos puntos"
      ]
    },
    {
      "id": "geo_homotecia",
      "nombre": "Homotecia (dilatación)",
      "curso": "geometria",
      "modulo": "transformaciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Transformación que escala respecto a un centro.",
      "puntos_de_conocimiento": [
        "Homotecia con centro y factor de escala",
        "Factor mayor, menor o igual a 1",
        "La homotecia produce figuras semejantes"
      ]
    },
    {
      "id": "geo_partes_correspondientes",
      "nombre": "Partes correspondientes de triángulos congruentes",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Deducir igualdades una vez probada la congruencia.",
      "puntos_de_conocimiento": [
        "Concluir lados y ángulos iguales tras la congruencia",
        "Probar congruencia y deducir partes",
        "Aplicar a triángulos isósceles"
      ]
    },
    {
      "id": "geo_pendiente_recta",
      "nombre": "Pendiente de una recta",
      "curso": "geometria",
      "modulo": "geometria_analitica",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Razón de cambio vertical sobre horizontal.",
      "puntos_de_conocimiento": [
        "Pendiente como cambio en y sobre cambio en x",
        "Pendiente positiva, negativa, cero e indefinida",
        "Pendientes de rectas paralelas y perpendiculares"
      ]
    },
    {
      "id": "geo_propiedades_paralelogramos",
      "nombre": "Propiedades de los paralelogramos",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Lados, ángulos y diagonales de paralelogramos.",
      "puntos_de_conocimiento": [
        "Lados y ángulos opuestos",
        "Ángulos consecutivos suplementarios",
        "Diagonales del paralelogramo, rectángulo y rombo"
      ]
    },
    {
      "id": "geo_propiedades_trapecios",
      "nombre": "Propiedades de los trapecios",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Bases, lados y ángulos del trapecio y la mediana o base media.",
      "puntos_de_conocimiento": [
        "Identificar bases, lados y altura de un trapecio",
        "Aplicar las propiedades del trapecio isósceles (ángulos y diagonales)",
        "Calcular la mediana como semisuma de las bases",
        "Hallar ángulos del trapecio usando lados paralelos"
      ]
    },
    {
      "id": "geo_razones_reciprocas",
      "nombre": "Razones reciprocas: cosecante, secante y cotangente",
      "curso": "geometria",
      "modulo": "trigonometria_triangulo_rectangulo",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Inversas de seno, coseno y tangente.",
      "puntos_de_conocimiento": [
        "Cosecante, secante y cotangente",
        "Relación con seno, coseno y tangente",
        "Calcular las seis razones de un ángulo"
      ]
    },
    {
      "id": "geo_razones_trigonometricas",
      "nombre": "Razones trigonometricas: seno, coseno y tangente",
      "curso": "geometria",
      "modulo": "trigonometria_triangulo_rectangulo",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Definición en el triángulo rectángulo.",
      "puntos_de_conocimiento": [
        "Identificar cateto opuesto, adyacente e hipotenusa",
        "Definir seno, coseno y tangente (SOH-CAH-TOA)",
        "Calcular las razones dados los lados"
      ]
    },
    {
      "id": "geo_reciproco_pitagoras",
      "nombre": "Reciproco del teorema de Pitágoras",
      "curso": "geometria",
      "modulo": "teorema_pitagoras",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Clasificar un triángulo a partir de sus lados.",
      "puntos_de_conocimiento": [
        "Determinar si un triángulo es rectángulo",
        "Clasificar como acutangulo u obtusangulo por sus lados",
        "Reconocer ternas pitagoricas"
      ]
    },
    {
      "id": "geo_resolver_lados_trig",
      "nombre": "Hallar lados con razones trigonometricas",
      "curso": "geometria",
      "modulo": "trigonometria_triangulo_rectangulo",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Usar una razón para despejar un lado desconocido.",
      "puntos_de_conocimiento": [
        "Plantear la razón adecuada",
        "Despejar un lado desconocido",
        "Usar la calculadora con seno, coseno y tangente"
      ]
    },
    {
      "id": "geo_rotacion",
      "nombre": "Rotación",
      "curso": "geometria",
      "modulo": "transformaciones",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Giro alrededor de un centro un cierto ángulo.",
      "puntos_de_conocimiento": [
        "Rotación alrededor de un centro",
        "Rotaciones de 90, 180 y 270 grados",
        "Simetría de rotación"
      ]
    },
    {
      "id": "geo_semejanza_concepto",
      "nombre": "Concepto de semejanza y razón de semejanza",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Misma forma con lados proporcionales.",
      "puntos_de_conocimiento": [
        "Figuras semejantes: ángulos iguales y lados proporcionales",
        "Razón de semejanza (factor de escala)",
        "Notación de semejanza"
      ]
    },
    {
      "id": "geo_suma_angulos_poligono",
      "nombre": "Suma de ángulos interiores de un polígono",
      "curso": "geometria",
      "modulo": "cuadrilateros_y_poligonos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Fórmula (n-2)*180 y ángulo interior regular.",
      "puntos_de_conocimiento": [
        "Fórmula (n-2) por 180",
        "Ángulo interior de un polígono regular",
        "Hallar el número de lados a partir de un ángulo"
      ]
    },
    {
      "id": "geo_triangulos_rectangulos_especiales",
      "nombre": "Triángulos rectángulos especiales",
      "curso": "geometria",
      "modulo": "teorema_pitagoras",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Razones de lados en 45-45-90 y 30-60-90.",
      "puntos_de_conocimiento": [
        "Triángulo 45-45-90",
        "Triángulo 30-60-90",
        "Resolver lados sin trigonometria"
      ]
    },
    {
      "id": "geo_volumen_piramide_cono",
      "nombre": "Volumen de la pirámide y del cono",
      "curso": "geometria",
      "modulo": "solidos_volumen",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Sólidos con vértice y un tercio de su prisma o cilindro.",
      "puntos_de_conocimiento": [
        "Volumen de la pirámide (un tercio del prisma)",
        "Volumen del cono (un tercio del cilindro)",
        "Area superficial con la generatriz del cono"
      ]
    },
    {
      "id": "geo_area_sector_circular",
      "nombre": "Área del sector y longitud de arco",
      "curso": "geometria",
      "modulo": "perimetro_y_area",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Fracción del círculo según el ángulo central.",
      "puntos_de_conocimiento": [
        "Longitud de arco como fracción de la circunferencia",
        "Area del sector como fracción del círculo",
        "Area del segmento circular"
      ]
    },
    {
      "id": "geo_area_volumen_esfera",
      "nombre": "Área superficial y volumen de la esfera",
      "curso": "geometria",
      "modulo": "solidos_volumen",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Formulas de la esfera y sólidos compuestos.",
      "puntos_de_conocimiento": [
        "Area = 4 por pi por r al cuadrado",
        "Volumen = cuatro tercios por pi por r al cubo",
        "Volumen de sólidos compuestos"
      ]
    },
    {
      "id": "geo_cuadrilatero_ciclico",
      "nombre": "Cuadrilatero ciclico",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Cuadrilatero inscrito en una circunferencia y la suma de sus ángulos opuestos.",
      "puntos_de_conocimiento": [
        "Reconocer un cuadrilatero inscrito en una circunferencia",
        "Aplicar que los ángulos opuestos suman 180 grados",
        "Justificar la propiedad con el ángulo inscrito",
        "Determinar si un cuadrilatero dado es ciclico"
      ]
    },
    {
      "id": "geo_demostracion_indirecta",
      "nombre": "Demostración indirecta (por contradicción)",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Suponer lo contrario y llegar a contradicción.",
      "puntos_de_conocimiento": [
        "Suponer la negación de la conclusión",
        "Deducir hasta una contradicción",
        "Relación con el contrarreciproco"
      ]
    },
    {
      "id": "geo_demostracion_pitagoras",
      "nombre": "Demostración del teorema de Pitágoras",
      "curso": "geometria",
      "modulo": "razonamiento_y_demostracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Demostración formal del teorema de Pitágoras por areas y por semejanza.",
      "puntos_de_conocimiento": [
        "Demostrar el teorema reordenando areas de cuadrados y triángulos",
        "Demostrar el teorema usando la semejanza con la altura sobre la hipotenusa",
        "Justificar cada paso de la demostración con un teorema o postulado",
        "Comparar la demostración por areas con la demostración por semejanza"
      ]
    },
    {
      "id": "geo_ecuacion_circulo",
      "nombre": "Ecuación de la circunferencia",
      "curso": "geometria",
      "modulo": "geometria_analitica",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Forma centro-radio en el plano coordenado.",
      "puntos_de_conocimiento": [
        "Ecuación (x-h)^2 + (y-k)^2 = r^2",
        "Identificar centro y radio",
        "Escribir la ecuación dado centro y radio"
      ]
    },
    {
      "id": "geo_elevacion_depresion",
      "nombre": "Ángulos de elevación y depresión",
      "curso": "geometria",
      "modulo": "trigonometria_triangulo_rectangulo",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Aplicaciones de la trigonometria a problemas reales.",
      "puntos_de_conocimiento": [
        "Definir ángulo de elevación y de depresión",
        "Modelar la situación con un triángulo rectángulo",
        "Resolver alturas y distancias inaccesibles"
      ]
    },
    {
      "id": "geo_hallar_angulos_trig",
      "nombre": "Hallar ángulos con razones inversas",
      "curso": "geometria",
      "modulo": "trigonometria_triangulo_rectangulo",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Usar arcoseno, arcocoseno y arcotangente.",
      "puntos_de_conocimiento": [
        "Concepto de función trigonometrica inversa",
        "Hallar un ángulo a partir de dos lados",
        "Resolver completamente un triángulo rectángulo"
      ]
    },
    {
      "id": "geo_potencia_de_un_punto",
      "nombre": "Potencia de un punto",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 6,
      "xp": 17,
      "descripcion": "Producto constante de segmentos desde un punto a la circunferencia: cuerdas, secantes y tangentes.",
      "puntos_de_conocimiento": [
        "Aplicar el producto de segmentos de dos cuerdas que se cortan",
        "Aplicar la relación secante-secante desde un punto externo",
        "Aplicar la relación tangente-secante (cuadrado de la tangente)",
        "Resolver longitudes desconocidas con la potencia de un punto"
      ]
    },
    {
      "id": "geo_simetria_y_congruencia_transformaciones",
      "nombre": "Transformaciones, congruencia y semejanza",
      "curso": "geometria",
      "modulo": "transformaciones",
      "nivel": 6,
      "xp": 14,
      "descripcion": "Isometrías y composición de transformaciones.",
      "puntos_de_conocimiento": [
        "Isometrías preservan la congruencia",
        "Composición de dos o más transformaciones",
        "Relacionar transformaciones con semejanza"
      ]
    },
    {
      "id": "geo_tangentes_secantes",
      "nombre": "Tangentes y secantes a un círculo",
      "curso": "geometria",
      "modulo": "circulos",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Propiedades de rectas tangentes y ángulos formados.",
      "puntos_de_conocimiento": [
        "La tangente es perpendicular al radio",
        "Segmentos tangentes desde un punto externo",
        "Ángulos formados por secantes y tangentes"
      ]
    },
    {
      "id": "geo_teorema_bisectriz",
      "nombre": "Teorema de la bisectriz de un ángulo",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 6,
      "xp": 16,
      "descripcion": "La bisectriz interior divide el lado opuesto en segmentos proporcionales a los lados adyacentes.",
      "puntos_de_conocimiento": [
        "Enunciar el teorema de la bisectriz interior de un triángulo",
        "Plantear la proporción entre los segmentos y los lados adyacentes",
        "Hallar longitudes desconocidas con la proporción de la bisectriz",
        "Reconocer el teorema de la bisectriz exterior"
      ]
    },
    {
      "id": "geo_teorema_tales",
      "nombre": "Teorema de Tales y rectas paralelas",
      "curso": "geometria",
      "modulo": "semejanza_y_congruencia",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Segmentos proporcionales cortados por paralelas.",
      "puntos_de_conocimiento": [
        "Paralelas que cortan transversales en segmentos proporcionales",
        "Recta paralela a un lado del triángulo",
        "Resolver longitudes con proporciones"
      ]
    },
    {
      "id": "repaso_funciones_dominio_rango",
      "nombre": "Repaso de funciones: dominio y rango",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Evaluar funciones y determinar dominio y rango a partir de la regla o la gráfica.",
      "puntos_de_conocimiento": [
        "Evaluar f(x) en valores y en expresiones",
        "Determinar el dominio según restricciones (denominador, radical)",
        "Leer dominio y rango desde la gráfica"
      ]
    },
    {
      "id": "composicion_de_funciones",
      "nombre": "Composición de funciones",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 2,
      "xp": 12,
      "descripcion": "Formar y evaluar la composición (f compuesta con g).",
      "puntos_de_conocimiento": [
        "Definir (f o g)(x) = f(g(x))",
        "Evaluar composiciones en un punto",
        "Calcular la regla de la función compuesta",
        "Determinar el dominio de la composición"
      ]
    },
    {
      "id": "descomposicion_de_funciones",
      "nombre": "Descomposición de funciones compuestas",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Expresar una función dada como composición de funciones más simples.",
      "puntos_de_conocimiento": [
        "Identificar la función interna y la externa",
        "Escribir h como f o g de varias formas",
        "Reconocer la estructura de composición"
      ]
    },
    {
      "id": "funcion_inversa_concepto",
      "nombre": "Función inversa: concepto",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 2,
      "xp": 12,
      "descripcion": "Significado de la inversa, prueba de la recta horizontal y funciones uno a uno.",
      "puntos_de_conocimiento": [
        "La inversa deshace la acción de la función",
        "Prueba de la recta horizontal (uno a uno)",
        "Relación entre dominio y rango de f y su inversa",
        "Verificar inversas con la composición"
      ]
    },
    {
      "id": "sucesion_concepto",
      "nombre": "Sucesiones: concepto y notación",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Termino general, notación y formas recursiva y explicita.",
      "puntos_de_conocimiento": [
        "Sucesión como función de los naturales",
        "Termino general a_n",
        "Definición recursiva y explicita",
        "Generar terminos de una sucesión"
      ]
    },
    {
      "id": "suma_resta_complejos",
      "nombre": "Suma y resta de números complejos",
      "curso": "algebra_2",
      "modulo": "numeros_complejos",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Operar partes reales e imaginarias por separado.",
      "puntos_de_conocimiento": [
        "Sumar agrupando parte real y parte imaginaria",
        "Restar números complejos",
        "Representar complejos en el plano (Argand)"
      ]
    },
    {
      "id": "unidad_imaginaria",
      "nombre": "Unidad imaginaria y números complejos",
      "curso": "algebra_2",
      "modulo": "numeros_complejos",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Definición de i, potencias de i y forma binomica a + bi.",
      "puntos_de_conocimiento": [
        "Definir i como la raíz de -1",
        "Simplificar raices de números negativos",
        "Potencias ciclicas de i",
        "Identificar parte real e imaginaria de a + bi"
      ]
    },
    {
      "id": "conjugado_division_complejos",
      "nombre": "Conjugado y división de complejos",
      "curso": "algebra_2",
      "modulo": "numeros_complejos",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Usar el conjugado para dividir y racionalizar.",
      "puntos_de_conocimiento": [
        "Definir el conjugado de a + bi",
        "Producto de un complejo por su conjugado",
        "Dividir multiplicando por el conjugado del denominador",
        "Expresar el cociente en forma a + bi"
      ]
    },
    {
      "id": "division_larga_polinomios",
      "nombre": "División larga de polinomios",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Dividir un polinomio entre otro con el algoritmo largo.",
      "puntos_de_conocimiento": [
        "Ordenar y completar con terminos cero",
        "Algoritmo de división larga paso a paso",
        "Identificar cociente y residuo",
        "Expresar como dividendo = divisor x cociente + residuo"
      ]
    },
    {
      "id": "division_sintetica",
      "nombre": "División sintetica",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Dividir entre un binomio (x - c) con división sintetica.",
      "puntos_de_conocimiento": [
        "Disponer los coeficientes del dividendo",
        "Aplicar el algoritmo de división sintetica",
        "Leer cociente y residuo del arreglo",
        "Reconocer cuando aplica (divisor lineal x - c)"
      ]
    },
    {
      "id": "dominio_funcion_racional",
      "nombre": "Dominio de una función racional",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Excluir los ceros del denominador del dominio.",
      "puntos_de_conocimiento": [
        "Hallar los valores que anulan el denominador",
        "Expresar el dominio excluyendo esos valores",
        "Distinguir hueco de asíntota (factor comun)"
      ]
    },
    {
      "id": "funcion_a_trozos",
      "nombre": "Funciones a trozos",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Evaluar y graficar funciones definidas por tramos.",
      "puntos_de_conocimiento": [
        "Evaluar según el intervalo del dominio",
        "Graficar cada tramo con puntos abiertos y cerrados",
        "Determinar dominio y rango de la función a trozos",
        "Función valor absoluto como función a trozos"
      ]
    },
    {
      "id": "funcion_exponencial",
      "nombre": "Función exponencial",
      "curso": "algebra_2",
      "modulo": "funciones_exponenciales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Forma, grafica, dominio, rango y asíntota de a*b^x.",
      "puntos_de_conocimiento": [
        "Reconocer la forma f(x) = a*b^x",
        "Graficar funciones exponenciales",
        "Dominio, rango y asíntota horizontal",
        "Transformaciones de la gráfica exponencial"
      ]
    },
    {
      "id": "hallar_funcion_inversa",
      "nombre": "Hallar la inversa de una función",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Obtener la regla de la función inversa despejando.",
      "puntos_de_conocimiento": [
        "Intercambiar x e y y despejar",
        "Inversa de funciones lineales y racionales simples",
        "Graficar la inversa como reflexion en y = x",
        "Restringir el dominio para que exista la inversa"
      ]
    },
    {
      "id": "matriz_concepto_operaciones",
      "nombre": "Matrices: concepto, suma y resta",
      "curso": "algebra_2",
      "modulo": "matrices_intro",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Notación, dimensión y suma o resta de matrices.",
      "puntos_de_conocimiento": [
        "Notación y dimensión de una matriz",
        "Elemento a_ij y matriz transpuesta",
        "Sumar y restar matrices de igual dimensión",
        "Multiplicación por un escalar"
      ]
    },
    {
      "id": "modulo_complejo",
      "nombre": "Modulo de un número complejo",
      "curso": "algebra_2",
      "modulo": "numeros_complejos",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Magnitud de un complejo como distancia al origen.",
      "puntos_de_conocimiento": [
        "Definir el modulo como raíz de a^2 + b^2",
        "Interpretar el modulo como distancia en el plano",
        "Relacionar el modulo con el producto por el conjugado"
      ]
    },
    {
      "id": "multiplicacion_complejos",
      "nombre": "Multiplicación de números complejos",
      "curso": "algebra_2",
      "modulo": "numeros_complejos",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Multiplicar complejos usando i^2 = -1.",
      "puntos_de_conocimiento": [
        "Multiplicar usando la propiedad distributiva",
        "Sustituir i^2 = -1",
        "Multiplicar un complejo por un escalar real"
      ]
    },
    {
      "id": "principio_fundamental_conteo",
      "nombre": "Principio fundamental del conteo",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Contar resultados con la regla del producto.",
      "puntos_de_conocimiento": [
        "Regla del producto para etapas sucesivas",
        "Diagramas de arbol",
        "Conteo con y sin repetición",
        "Contar arreglos sencillos"
      ]
    },
    {
      "id": "simetria_par_impar",
      "nombre": "Simetría par e impar",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Clasificar funciones como pares, impares o ninguna.",
      "puntos_de_conocimiento": [
        "Función par: f(-x) = f(x), simetría respecto al eje y",
        "Función impar: f(-x) = -f(x), simetría respecto al origen",
        "Comprobar simetría algebraicamente",
        "Identificar simetría desde la gráfica"
      ]
    },
    {
      "id": "simplificar_racionales",
      "nombre": "Simplificar expresiones racionales",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Factorizar y cancelar factores comunes.",
      "puntos_de_conocimiento": [
        "Factorizar numerador y denominador",
        "Cancelar factores comunes",
        "Indicar las restricciones del dominio",
        "Identificar huecos removibles"
      ]
    },
    {
      "id": "simplificar_radicales_variables",
      "nombre": "Simplificar radicales con variables",
      "curso": "algebra_2",
      "modulo": "funciones_radicales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Simplificar raices cuadradas y de indice n con variables.",
      "puntos_de_conocimiento": [
        "Extraer factores de la raíz",
        "Raices de indice n con exponentes",
        "Racionalizar denominadores con radicales",
        "Usar valor absoluto cuando el indice es par"
      ]
    },
    {
      "id": "sucesion_aritmetica",
      "nombre": "Sucesiones aritmeticas",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Diferencia comun y fórmula del término n.",
      "puntos_de_conocimiento": [
        "Identificar la diferencia comun",
        "Fórmula a_n = a_1 + (n-1)d",
        "Hallar el término n-esimo",
        "Hallar el número de terminos"
      ]
    },
    {
      "id": "sucesion_geometrica",
      "nombre": "Sucesiones geométricas",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Razón comun y fórmula del término n.",
      "puntos_de_conocimiento": [
        "Identificar la razón comun",
        "Fórmula a_n = a_1 * r^(n-1)",
        "Hallar el término n-esimo",
        "Distinguir sucesión aritmética de geométrica"
      ]
    },
    {
      "id": "transformaciones_de_graficas",
      "nombre": "Transformaciones de graficas",
      "curso": "algebra_2",
      "modulo": "funciones_avanzadas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Traslaciones, reflexiones y dilataciones de la gráfica de una función.",
      "puntos_de_conocimiento": [
        "Traslaciones verticales y horizontales",
        "Reflexiones respecto a los ejes",
        "Estiramientos y compresiones",
        "Combinar transformaciones a partir de funciones base"
      ]
    },
    {
      "id": "asintotas_racionales",
      "nombre": "Asíntotas verticales y horizontales",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Localizar asintotas verticales y horizontales de una racional.",
      "puntos_de_conocimiento": [
        "Asintotas verticales en los ceros del denominador",
        "Asíntota horizontal según grados del numerador y denominador",
        "Comportamiento cerca de las asintotas",
        "Cortes con los ejes"
      ]
    },
    {
      "id": "circunferencia_ecuacion",
      "nombre": "La circunferencia",
      "curso": "algebra_2",
      "modulo": "secciones_conicas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Ecuación centro-radio y forma general de la circunferencia.",
      "puntos_de_conocimiento": [
        "Ecuación (x-h)^2 + (y-k)^2 = r^2",
        "Hallar centro y radio",
        "Completar el cuadrado para la forma general",
        "Graficar la circunferencia"
      ]
    },
    {
      "id": "combinaciones",
      "nombre": "Combinaciones",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Selecciones sin importar el orden.",
      "puntos_de_conocimiento": [
        "Fórmula de combinaciones C(n, r)",
        "Distinguir permutación de combinación",
        "Calcular combinaciones",
        "Aplicar a problemas de selección"
      ]
    },
    {
      "id": "crecimiento_decaimiento",
      "nombre": "Crecimiento y decaimiento exponencial",
      "curso": "algebra_2",
      "modulo": "funciones_exponenciales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Modelar crecimiento y decaimiento con factor (1 +/- r).",
      "puntos_de_conocimiento": [
        "Distinguir crecimiento (b>1) de decaimiento (0<b<1)",
        "Modelo A = A0*(1 +/- r)^t",
        "Interés compuesto",
        "Resolver problemas de población y depreciación"
      ]
    },
    {
      "id": "definicion_logaritmo",
      "nombre": "Definición de logaritmo",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "El logaritmo como inverso de la exponencial.",
      "puntos_de_conocimiento": [
        "Convertir entre forma exponencial y logaritmica",
        "Evaluar logaritmos exactos",
        "Logaritmo comun (base 10) y natural (ln)",
        "Restricciones del argumento (positivo)"
      ]
    },
    {
      "id": "determinante_2x2",
      "nombre": "Determinante de una matriz 2x2",
      "curso": "algebra_2",
      "modulo": "matrices_intro",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Calcular el determinante y la matriz inversa 2x2.",
      "puntos_de_conocimiento": [
        "Fórmula del determinante ad - bc",
        "Interpretar determinante cero (sin inversa)",
        "Calcular la inversa de una matriz 2x2",
        "Determinante de matrices 3x3 (introducción)"
      ]
    },
    {
      "id": "ecuaciones_exponenciales_base_comun",
      "nombre": "Ecuaciones exponenciales con base comun",
      "curso": "algebra_2",
      "modulo": "funciones_exponenciales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Resolver igualando bases sin usar logaritmos.",
      "puntos_de_conocimiento": [
        "Reescribir ambos lados con la misma base",
        "Igualar exponentes cuando las bases coinciden",
        "Resolver la ecuación lineal resultante",
        "Verificar soluciones"
      ]
    },
    {
      "id": "exponentes_racionales",
      "nombre": "Exponentes racionales",
      "curso": "algebra_2",
      "modulo": "funciones_radicales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Relacionar radicales y exponentes fraccionarios.",
      "puntos_de_conocimiento": [
        "Convertir entre radical y exponente racional",
        "Aplicar las leyes de los exponentes con fracciones",
        "Simplificar expresiones con exponentes racionales",
        "Evaluar potencias de exponente fraccionario"
      ]
    },
    {
      "id": "funcion_logaritmica_grafica",
      "nombre": "Función logaritmica y su gráfica",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Graficar la función log como inversa de la exponencial.",
      "puntos_de_conocimiento": [
        "Grafica de y = log_b(x)",
        "Dominio, rango y asíntota vertical",
        "Simetría con la exponencial respecto a y = x",
        "Transformaciones de la gráfica logaritmica"
      ]
    },
    {
      "id": "funcion_raiz_grafica",
      "nombre": "Función raíz cuadrada y su gráfica",
      "curso": "algebra_2",
      "modulo": "funciones_radicales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Graficar y analizar la función raíz cuadrada y cúbica.",
      "puntos_de_conocimiento": [
        "Grafica base de la raíz cuadrada y la raíz cúbica",
        "Dominio y rango de funciones radicales",
        "Transformaciones de la función raíz",
        "Relación con la inversa de la función cuadratica"
      ]
    },
    {
      "id": "multiplicacion_matrices",
      "nombre": "Multiplicación de matrices",
      "curso": "algebra_2",
      "modulo": "matrices_intro",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Producto fila por columna y condición de dimensiones.",
      "puntos_de_conocimiento": [
        "Condición de dimensiones para multiplicar",
        "Producto fila por columna",
        "Dimensión de la matriz producto",
        "La multiplicación no es conmutativa"
      ]
    },
    {
      "id": "multiplicar_dividir_racionales",
      "nombre": "Multiplicar y dividir expresiones racionales",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Producto y cociente factorizando y cancelando.",
      "puntos_de_conocimiento": [
        "Multiplicar y simplificar racionales",
        "Dividir multiplicando por el reciproco",
        "Cancelar factores antes de operar",
        "Indicar restricciones del resultado"
      ]
    },
    {
      "id": "notacion_sigma",
      "nombre": "Notación sigma",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Escribir y evaluar sumas con notación sigma.",
      "puntos_de_conocimiento": [
        "Leer los limites de la suma",
        "Desarrollar una suma en notación sigma",
        "Escribir una suma con notación sigma",
        "Evaluar sumas aritmeticas y geométricas en sigma"
      ]
    },
    {
      "id": "numero_e",
      "nombre": "El número e y la exponencial natural",
      "curso": "algebra_2",
      "modulo": "funciones_exponenciales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Definición de e y la función e^x.",
      "puntos_de_conocimiento": [
        "Origen de e como límite del interés compuesto continuo",
        "La función exponencial natural e^x",
        "Modelo de crecimiento continuo A = A0*e^(kt)",
        "Evaluar expresiones con e"
      ]
    },
    {
      "id": "operaciones_radicales",
      "nombre": "Operaciones con radicales",
      "curso": "algebra_2",
      "modulo": "funciones_radicales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Sumar, restar y multiplicar expresiones con radicales.",
      "puntos_de_conocimiento": [
        "Sumar y restar radicales semejantes",
        "Multiplicar radicales del mismo indice",
        "Multiplicar binomios con radicales",
        "Racionalizar con el conjugado"
      ]
    },
    {
      "id": "parabola_conica",
      "nombre": "La parábola (foco y directriz)",
      "curso": "algebra_2",
      "modulo": "secciones_conicas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Parábola como lugar geométrico con foco y directriz.",
      "puntos_de_conocimiento": [
        "Definición como lugar geométrico",
        "Ecuaciones con eje vertical y horizontal",
        "Hallar vértice, foco y directriz",
        "Graficar la parábola"
      ]
    },
    {
      "id": "permutaciones",
      "nombre": "Permutaciones",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Arreglos ordenados y notación factorial.",
      "puntos_de_conocimiento": [
        "Notación factorial",
        "Permutaciones de n objetos",
        "Permutaciones de n tomados de r",
        "Distinguir cuando el orden importa"
      ]
    },
    {
      "id": "probabilidad_basica",
      "nombre": "Probabilidad basica",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Probabilidad clasica como casos favorables sobre totales.",
      "puntos_de_conocimiento": [
        "Espacio muestral y eventos",
        "Probabilidad = favorables / totales",
        "Probabilidad del complemento",
        "Usar conteo para hallar probabilidades"
      ]
    },
    {
      "id": "raices_racionales",
      "nombre": "Teorema de las raices racionales",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Listar y probar las posibles raices racionales p/q.",
      "puntos_de_conocimiento": [
        "Listar candidatos p/q (factores del término independiente y del lider)",
        "Probar candidatos con división sintetica",
        "Hallar todas las raices racionales",
        "Reducir el polinomio al hallar cada raíz"
      ]
    },
    {
      "id": "serie_aritmetica",
      "nombre": "Series aritmeticas",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Suma de los primeros n terminos de una sucesión aritmética.",
      "puntos_de_conocimiento": [
        "Fórmula S_n = n(a_1 + a_n)/2",
        "Sumar los primeros n terminos",
        "Problemas de suma aritmética"
      ]
    },
    {
      "id": "serie_geometrica",
      "nombre": "Series geométricas",
      "curso": "algebra_2",
      "modulo": "sucesiones_y_series",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Suma finita y suma infinita de series geométricas.",
      "puntos_de_conocimiento": [
        "Suma de n terminos S_n = a_1(1 - r^n)/(1 - r)",
        "Suma infinita cuando |r| < 1",
        "Condición de convergencia",
        "Aplicaciones (decimal periodico, anualidades)"
      ]
    },
    {
      "id": "sistema_lineal_cuadratico",
      "nombre": "Sistema lineal-cuadratico",
      "curso": "algebra_2",
      "modulo": "sistemas_no_lineales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Resolver un sistema de una recta y una parábola.",
      "puntos_de_conocimiento": [
        "Resolver por sustitución",
        "Interpretar 0, 1 o 2 soluciones geometricamente",
        "Verificar las soluciones",
        "Resolver graficamente"
      ]
    },
    {
      "id": "sumar_restar_racionales",
      "nombre": "Sumar y restar expresiones racionales",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Usar el mínimo comun denominador de polinomios.",
      "puntos_de_conocimiento": [
        "Hallar el MCD de denominadores polinómicos",
        "Reescribir cada fracción con el comun denominador",
        "Sumar o restar y simplificar",
        "Operar con denominadores opuestos"
      ]
    },
    {
      "id": "teorema_del_factor",
      "nombre": "Teorema del factor",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Relacionar raices y factores: (x - c) es factor si P(c) = 0.",
      "puntos_de_conocimiento": [
        "(x - c) es factor si y solo si P(c) = 0",
        "Verificar factores con el teorema del residuo",
        "Factorizar usando una raíz conocida",
        "Construir un polinomio a partir de sus raices"
      ]
    },
    {
      "id": "teorema_del_residuo",
      "nombre": "Teorema del residuo",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Evaluar P(c) como el residuo de dividir entre (x - c).",
      "puntos_de_conocimiento": [
        "El residuo de dividir entre (x - c) es P(c)",
        "Evaluar polinomios con división sintetica",
        "Comprobar valores de función sin sustitución directa"
      ]
    },
    {
      "id": "asintota_oblicua",
      "nombre": "Asíntotas oblicuas",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Hallar la asíntota oblicua por división de polinomios.",
      "puntos_de_conocimiento": [
        "Cuando el grado del numerador supera en 1 al del denominador",
        "Obtener la asíntota oblicua con división larga",
        "Interpretar el cociente como recta asintótica",
        "Esbozar la gráfica con asíntota oblicua"
      ]
    },
    {
      "id": "cambio_de_base",
      "nombre": "Cambio de base",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Reexpresar un logaritmo en otra base para evaluarlo.",
      "puntos_de_conocimiento": [
        "Fórmula de cambio de base",
        "Evaluar logaritmos de cualquier base con la calculadora",
        "Reescribir en terminos de ln o log"
      ]
    },
    {
      "id": "desigualdades_no_lineales",
      "nombre": "Desigualdades y sistemas no lineales",
      "curso": "algebra_2",
      "modulo": "sistemas_no_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Graficar regiones solución de desigualdades no lineales.",
      "puntos_de_conocimiento": [
        "Graficar una desigualdad cuadratica en dos variables",
        "Region solución de un sistema de desigualdades no lineales",
        "Frontera con línea continua o discontinua",
        "Probar puntos para sombrear la region"
      ]
    },
    {
      "id": "ecuaciones_con_radicales",
      "nombre": "Ecuaciones con radicales",
      "curso": "algebra_2",
      "modulo": "funciones_radicales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver elevando a una potencia y verificando.",
      "puntos_de_conocimiento": [
        "Aislar el radical y elevar a la potencia adecuada",
        "Resolver ecuaciones con dos radicales",
        "Descartar soluciones extranas",
        "Ecuaciones con exponentes racionales"
      ]
    },
    {
      "id": "ecuaciones_exponenciales_logaritmos",
      "nombre": "Ecuaciones exponenciales con logaritmos",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver exponenciales tomando logaritmo en ambos lados.",
      "puntos_de_conocimiento": [
        "Tomar logaritmo en ambos lados",
        "Bajar el exponente con la propiedad de la potencia",
        "Despejar la incógnita",
        "Resolver problemas de tiempo en crecimiento continuo"
      ]
    },
    {
      "id": "ecuaciones_logaritmicas",
      "nombre": "Ecuaciones logaritmicas",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver ecuaciones con logaritmos y verificar el dominio.",
      "puntos_de_conocimiento": [
        "Condensar y pasar a forma exponencial",
        "Igualar argumentos con logaritmos de igual base",
        "Descartar soluciones extranas (argumento negativo)",
        "Aplicaciones (pH, decibeles)"
      ]
    },
    {
      "id": "ecuaciones_racionales",
      "nombre": "Ecuaciones racionales",
      "curso": "algebra_2",
      "modulo": "funciones_racionales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver ecuaciones con fracciones algebraicas.",
      "puntos_de_conocimiento": [
        "Multiplicar por el comun denominador",
        "Resolver la ecuación polinómica resultante",
        "Descartar soluciones extranas que anulan denominadores",
        "Problemas de trabajo y razón"
      ]
    },
    {
      "id": "elipse_conica",
      "nombre": "La elipse",
      "curso": "algebra_2",
      "modulo": "secciones_conicas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Ecuación de la elipse, ejes, vértices y focos.",
      "puntos_de_conocimiento": [
        "Forma canonica de la elipse",
        "Ejes mayor y menor, vértices",
        "Relación c^2 = a^2 - b^2 para los focos",
        "Graficar la elipse"
      ]
    },
    {
      "id": "graficar_polinomios",
      "nombre": "Graficar polinomios de grado superior",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Comportamiento extremo, ceros con multiplicidad y forma de la gráfica.",
      "puntos_de_conocimiento": [
        "Comportamiento extremo según grado y coeficiente lider",
        "Ceros y su multiplicidad (cruce o rebote)",
        "Esbozar la gráfica a partir de los ceros",
        "Número máximo de puntos de retorno"
      ]
    },
    {
      "id": "hiperbola_conica",
      "nombre": "La hipérbola",
      "curso": "algebra_2",
      "modulo": "secciones_conicas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Ecuación de la hipérbola, vértices, focos y asintotas.",
      "puntos_de_conocimiento": [
        "Forma canonica de la hipérbola",
        "Vértices y focos",
        "Asintotas de la hipérbola",
        "Graficar la hipérbola"
      ]
    },
    {
      "id": "identificar_conica",
      "nombre": "Identificar y clasificar conicas",
      "curso": "algebra_2",
      "modulo": "secciones_conicas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Reconocer la conica a partir de su ecuación general.",
      "puntos_de_conocimiento": [
        "Clasificar según los coeficientes de x^2 e y^2",
        "Completar el cuadrado para llevar a forma canonica",
        "Distinguir circunferencia, elipse, parábola e hipérbola",
        "Identificar la conica desde la ecuación general"
      ]
    },
    {
      "id": "probabilidad_compuesta",
      "nombre": "Probabilidad de eventos compuestos",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Union, intersección y eventos independientes.",
      "puntos_de_conocimiento": [
        "Regla de la suma (union de eventos)",
        "Eventos mutuamente excluyentes",
        "Regla del producto para eventos independientes",
        "Probabilidad condicional (introducción)"
      ]
    },
    {
      "id": "propiedades_logaritmos",
      "nombre": "Propiedades de los logaritmos",
      "curso": "algebra_2",
      "modulo": "logaritmos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Producto, cociente y potencia para expandir y condensar.",
      "puntos_de_conocimiento": [
        "Propiedad del producto y del cociente",
        "Propiedad de la potencia",
        "Expandir expresiones logaritmicas",
        "Condensar en un solo logaritmo"
      ]
    },
    {
      "id": "sistema_no_lineal_general",
      "nombre": "Sistemas no lineales generales",
      "curso": "algebra_2",
      "modulo": "sistemas_no_lineales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver sistemas con dos conicas o curvas no lineales.",
      "puntos_de_conocimiento": [
        "Resolver por sustitución y por eliminación",
        "Sistemas de dos cuadraticas o conicas",
        "Interpretar las intersecciones de curvas",
        "Descartar soluciones no válidas"
      ]
    },
    {
      "id": "sistemas_con_matrices",
      "nombre": "Resolver sistemas con matrices",
      "curso": "algebra_2",
      "modulo": "matrices_intro",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver sistemas lineales con la inversa y con Cramer.",
      "puntos_de_conocimiento": [
        "Escribir un sistema en forma matricial AX = B",
        "Resolver con la matriz inversa",
        "Regla de Cramer con determinantes",
        "Interpretar sistemas sin solución o con infinitas"
      ]
    },
    {
      "id": "teorema_del_binomio_alg2",
      "nombre": "Teorema del binomio",
      "curso": "algebra_2",
      "modulo": "probabilidad_y_combinatoria",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Expandir (a+b)^n con el triángulo de Pascal y los coeficientes binomiales.",
      "puntos_de_conocimiento": [
        "Construir el triángulo de Pascal",
        "Calcular coeficientes binomiales C(n,k)",
        "Expandir (a+b)^n termino a termino",
        "Hallar un término especifico de la expansión"
      ]
    },
    {
      "id": "teorema_fundamental_algebra",
      "nombre": "Teorema fundamental del algebra y raices complejas",
      "curso": "algebra_2",
      "modulo": "polinomios_superiores",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Número de raices, multiplicidad y raices complejas conjugadas.",
      "puntos_de_conocimiento": [
        "Un polinomio de grado n tiene n raices (con multiplicidad)",
        "Las raices complejas aparecen en pares conjugados",
        "Factorizar completamente sobre los complejos",
        "Escribir un polinomio dadas sus raices reales y complejas"
      ]
    },
    {
      "id": "trig_angulo_posicion_estandar",
      "nombre": "Ángulo en posición estándar",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 1,
      "xp": 7,
      "descripcion": "Vértice en el origen, lado inicial sobre el eje x positivo y lado terminal.",
      "puntos_de_conocimiento": [
        "Identificar lado inicial y lado terminal de un ángulo",
        "Distinguir ángulos positivos (antihorario) de negativos (horario)",
        "Ubicar el cuadrante del lado terminal de un ángulo en grados"
      ]
    },
    {
      "id": "trig_radian_definicion",
      "nombre": "Definición de radián",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 1,
      "xp": 8,
      "descripcion": "El radián como razón arco/radio y por qué una vuelta completa son 2pi radianes.",
      "puntos_de_conocimiento": [
        "Definir el radián como la razón entre arco y radio",
        "Relacionar una vuelta completa con 2pi radianes",
        "Interpretar un radián como medida independiente del tamaño del círculo"
      ]
    },
    {
      "id": "trig_angulo_de_referencia",
      "nombre": "Ángulo de referencia",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 2,
      "xp": 11,
      "descripcion": "Ángulo agudo entre el lado terminal y el eje x, usado para evaluar funciones.",
      "puntos_de_conocimiento": [
        "Calcular el ángulo de referencia en cada cuadrante",
        "Obtener el ángulo de referencia de ángulos en grados y en radianes",
        "Reducir un ángulo mayor a 360 a su ángulo de referencia"
      ]
    },
    {
      "id": "trig_angulos_coterminales",
      "nombre": "Ángulos coterminales",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Ángulos que comparten el mismo lado terminal sumando o restando vueltas completas.",
      "puntos_de_conocimiento": [
        "Hallar ángulos coterminales sumando o restando 360 grados",
        "Hallar coterminales en radianes sumando o restando 2pi",
        "Encontrar el coterminal positivo más pequeño de un ángulo dado"
      ]
    },
    {
      "id": "trig_circulo_unitario_definicion",
      "nombre": "Definición del círculo unitario",
      "curso": "trigonometria",
      "modulo": "circulo_unitario",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Círculo de radio 1 centrado en el origen y su ecuación x al cuadrado más y al cuadrado igual a 1.",
      "puntos_de_conocimiento": [
        "Reconocer la ecuación x^2 + y^2 = 1 del círculo unitario",
        "Verificar si un punto pertenece al círculo unitario",
        "Asociar un ángulo con un punto sobre el círculo unitario"
      ]
    },
    {
      "id": "trig_conversion_grados_radianes",
      "nombre": "Conversión grados-radianes",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Convertir entre grados y radianes con el factor pi/180.",
      "puntos_de_conocimiento": [
        "Convertir de grados a radianes multiplicando por pi/180",
        "Convertir de radianes a grados multiplicando por 180/pi",
        "Expresar ángulos notables (30, 45, 60, 90) en radianes"
      ]
    },
    {
      "id": "trig_razones_triangulo_rectangulo",
      "nombre": "Razones trigonométricas en el triángulo rectángulo",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 2,
      "xp": 11,
      "descripcion": "Seno, coseno y tangente como razones de cateto opuesto, adyacente e hipotenusa.",
      "puntos_de_conocimiento": [
        "Definir seno, coseno y tangente con opuesto, adyacente e hipotenusa",
        "Usar la regla mnemotécnica SOH CAH TOA",
        "Calcular razones a partir de los lados de un triángulo rectángulo"
      ]
    },
    {
      "id": "trig_area_sector_circular",
      "nombre": "Área de un sector circular",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Área de un sector con A = un medio r al cuadrado por theta en radianes.",
      "puntos_de_conocimiento": [
        "Aplicar la fórmula A = (1/2) r^2 theta con theta en radianes",
        "Despejar el ángulo o el radio a partir del área del sector",
        "Comparar el área del sector con el área total del círculo"
      ]
    },
    {
      "id": "trig_coordenadas_circulo_unitario",
      "nombre": "Coordenadas en el círculo unitario",
      "curso": "trigonometria",
      "modulo": "circulo_unitario",
      "nivel": 3,
      "xp": 12,
      "descripcion": "El punto del lado terminal tiene coordenadas (cos theta, sen theta).",
      "puntos_de_conocimiento": [
        "Identificar las coordenadas del punto como (cos theta, sen theta)",
        "Leer el coseno como la abscisa y el seno como la ordenada",
        "Ubicar el punto correspondiente a un ángulo en cada cuadrante"
      ]
    },
    {
      "id": "trig_funciones_angulos_cuadrantales",
      "nombre": "Funciones en ángulos cuadrantales",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Evaluación en 0, 90, 180 y 270 grados, incluyendo valores indefinidos.",
      "puntos_de_conocimiento": [
        "Evaluar las funciones en 0, 90, 180 y 270 grados",
        "Identificar dónde la tangente y la secante quedan indefinidas",
        "Justificar valores indefinidos por división entre cero"
      ]
    },
    {
      "id": "trig_longitud_de_arco",
      "nombre": "Longitud de arco",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Cálculo de la longitud de arco mediante s = r por theta con theta en radianes.",
      "puntos_de_conocimiento": [
        "Aplicar la fórmula s = r theta con el ángulo en radianes",
        "Despejar radio o ángulo a partir de la longitud de arco",
        "Convertir un ángulo a radianes antes de usar la fórmula"
      ]
    },
    {
      "id": "trig_seis_funciones_trigonometricas",
      "nombre": "Las seis funciones trigonométricas",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 3,
      "xp": 13,
      "descripcion": "Definición de seno, coseno, tangente, cosecante, secante y cotangente.",
      "puntos_de_conocimiento": [
        "Definir las seis funciones a partir de coordenadas (x, y, r)",
        "Relacionar cosecante, secante y cotangente como recíprocas",
        "Expresar tangente y cotangente como cocientes de seno y coseno"
      ]
    },
    {
      "id": "trig_seno_coseno_definicion_unitario",
      "nombre": "Seno y coseno desde el círculo unitario",
      "curso": "trigonometria",
      "modulo": "circulo_unitario",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Definición de seno y coseno como funciones del ángulo vía el círculo unitario.",
      "puntos_de_conocimiento": [
        "Definir seno y coseno como funciones de un ángulo real",
        "Evaluar seno y coseno en ángulos notables usando coordenadas",
        "Reconocer el rango de seno y coseno entre menos 1 y 1"
      ]
    },
    {
      "id": "trig_signos_por_cuadrante",
      "nombre": "Signos de las funciones por cuadrante",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Signo de cada función trigonométrica en los cuatro cuadrantes.",
      "puntos_de_conocimiento": [
        "Determinar el signo de seno, coseno y tangente por cuadrante",
        "Aplicar la regla de las funciones positivas en cada cuadrante",
        "Deducir el cuadrante a partir de los signos de dos funciones"
      ]
    },
    {
      "id": "trig_simetria_circulo_unitario",
      "nombre": "Simetría en el círculo unitario",
      "curso": "trigonometria",
      "modulo": "circulo_unitario",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Simetrías respecto a los ejes y al origen que relacionan ángulos en distintos cuadrantes.",
      "puntos_de_conocimiento": [
        "Relacionar puntos simétricos respecto al eje x, al eje y y al origen",
        "Deducir el signo de cada coordenada según el cuadrante",
        "Usar la simetría para hallar coordenadas de ángulos relacionados"
      ]
    },
    {
      "id": "trig_valores_funciones_angulos_notables",
      "nombre": "Funciones en ángulos notables",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 3,
      "xp": 13,
      "descripcion": "Valores exactos de las seis funciones en 30, 45 y 60 grados y múltiplos.",
      "puntos_de_conocimiento": [
        "Evaluar las seis funciones en 30, 45 y 60 grados",
        "Usar el ángulo de referencia y el signo del cuadrante",
        "Construir una tabla de valores exactos para ángulos notables"
      ]
    },
    {
      "id": "trig_valores_notables_circulo_unitario",
      "nombre": "Valores notables en el círculo unitario",
      "curso": "trigonometria",
      "modulo": "circulo_unitario",
      "nivel": 3,
      "xp": 13,
      "descripcion": "Coordenadas exactas en 0, 30, 45, 60, 90 grados y sus simetrías.",
      "puntos_de_conocimiento": [
        "Memorizar las coordenadas en 0, 30, 45, 60 y 90 grados",
        "Usar simetría para extender los valores a los cuatro cuadrantes",
        "Expresar coordenadas con radicales como raíz de 2 entre 2"
      ]
    },
    {
      "id": "trig_velocidad_angular_lineal",
      "nombre": "Velocidad angular y lineal",
      "curso": "trigonometria",
      "modulo": "angulos_y_radianes",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Relación entre velocidad angular (omega) y velocidad lineal (v = r por omega).",
      "puntos_de_conocimiento": [
        "Calcular la velocidad angular en radianes por unidad de tiempo",
        "Relacionar velocidad lineal y angular mediante v = r omega",
        "Convertir revoluciones por minuto a radianes por segundo"
      ]
    },
    {
      "id": "trig_amplitud_periodo",
      "nombre": "Amplitud y periodo",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Efecto de los coeficientes A y B en y = A sen(Bx) sobre amplitud y periodo.",
      "puntos_de_conocimiento": [
        "Calcular la amplitud como el valor absoluto de A",
        "Calcular el periodo como 2pi entre el valor absoluto de B",
        "Trazar curvas seno y coseno con amplitud y periodo modificados"
      ]
    },
    {
      "id": "trig_dominio_rango_funciones",
      "nombre": "Dominio y rango de las funciones trigonométricas",
      "curso": "trigonometria",
      "modulo": "funciones_trigonometricas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Dominio y rango de seno, coseno, tangente y sus recíprocas.",
      "puntos_de_conocimiento": [
        "Establecer dominio y rango de seno y coseno",
        "Identificar asíntotas y dominio restringido de tangente y secante",
        "Determinar el rango de cosecante y secante fuera de menos 1 a 1"
      ]
    },
    {
      "id": "trig_grafica_coseno",
      "nombre": "Gráfica de la función coseno",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Forma de onda del coseno y su relación de desfase con el seno.",
      "puntos_de_conocimiento": [
        "Trazar y = cos x identificando ceros, máximos y mínimos",
        "Reconocer el coseno como función par",
        "Relacionar coseno y seno mediante un desfase de pi/2"
      ]
    },
    {
      "id": "trig_grafica_seno",
      "nombre": "Gráfica de la función seno",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Forma de onda del seno, periodo 2pi, ceros, máximos y mínimos.",
      "puntos_de_conocimiento": [
        "Trazar y = sen x identificando ceros, máximos y mínimos",
        "Reconocer el periodo 2pi y la amplitud 1 del seno básico",
        "Describir el seno como función impar y su simetría respecto al origen"
      ]
    },
    {
      "id": "trig_identidad_pitagorica",
      "nombre": "Identidad pitagórica fundamental",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Identidad seno al cuadrado más coseno al cuadrado igual a 1 y sus derivadas.",
      "puntos_de_conocimiento": [
        "Aplicar sen^2 + cos^2 = 1 para despejar una función",
        "Derivar 1 + tan^2 = sec^2 y 1 + cot^2 = csc^2",
        "Hallar las demás funciones dado el valor de una y el cuadrante"
      ]
    },
    {
      "id": "trig_identidades_cofuncion",
      "nombre": "Identidades de cofunción",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Relación entre una función y la cofunción de su ángulo complementario.",
      "puntos_de_conocimiento": [
        "Aplicar sen theta = cos(90 menos theta) y casos análogos",
        "Relacionar tangente con cotangente del ángulo complementario",
        "Usar cofunciones para reescribir expresiones"
      ]
    },
    {
      "id": "trig_identidades_pares_impares",
      "nombre": "Identidades de paridad",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Comportamiento par del coseno y secante e impar del resto de funciones.",
      "puntos_de_conocimiento": [
        "Aplicar cos(menos x) = cos x y sec par",
        "Aplicar sen(menos x) = menos sen x para funciones impares",
        "Simplificar expresiones con ángulos negativos"
      ]
    },
    {
      "id": "trig_identidades_reciprocas_cociente",
      "nombre": "Identidades recíprocas y de cociente",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Relaciones recíprocas y tangente y cotangente como cocientes.",
      "puntos_de_conocimiento": [
        "Aplicar las identidades recíprocas de seno, coseno y tangente",
        "Expresar tangente como seno entre coseno y cotangente al revés",
        "Reescribir expresiones usando identidades recíprocas y de cociente"
      ]
    },
    {
      "id": "trig_ley_de_senos",
      "nombre": "Ley de senos",
      "curso": "trigonometria",
      "modulo": "ley_senos_cosenos",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Relación lado-seno del ángulo opuesto para resolver triángulos oblicuos.",
      "puntos_de_conocimiento": [
        "Enunciar la ley de senos como proporción lado-seno",
        "Resolver triángulos con casos lado-ángulo-ángulo y ángulo-lado-ángulo",
        "Despejar un lado o un ángulo desconocido con la proporción"
      ]
    },
    {
      "id": "trig_angulo_doble",
      "nombre": "Identidades de ángulo doble",
      "curso": "trigonometria",
      "modulo": "identidades_avanzadas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Fórmulas para seno, coseno y tangente del doble de un ángulo.",
      "puntos_de_conocimiento": [
        "Aplicar sen 2theta = 2 sen theta cos theta",
        "Usar las tres formas de cos 2theta",
        "Calcular la función de un ángulo doble a partir de una función conocida"
      ]
    },
    {
      "id": "trig_angulo_medio",
      "nombre": "Identidades de ángulo medio",
      "curso": "trigonometria",
      "modulo": "identidades_avanzadas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Fórmulas de seno, coseno y tangente de la mitad de un ángulo.",
      "puntos_de_conocimiento": [
        "Aplicar las fórmulas de ángulo medio para seno y coseno",
        "Elegir el signo correcto según el cuadrante del ángulo mitad",
        "Evaluar funciones de ángulos como 22.5 grados con ángulo medio"
      ]
    },
    {
      "id": "trig_area_triangulo_oblicuo",
      "nombre": "Área de triángulos oblicuos",
      "curso": "trigonometria",
      "modulo": "ley_senos_cosenos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Área con un medio a b sen C y fórmula de Herón para tres lados.",
      "puntos_de_conocimiento": [
        "Calcular el área con la fórmula (1/2) a b sen C",
        "Aplicar la fórmula de Herón con los tres lados",
        "Elegir el método de área según los datos disponibles"
      ]
    },
    {
      "id": "trig_caso_ambiguo",
      "nombre": "Caso ambiguo de la ley de senos",
      "curso": "trigonometria",
      "modulo": "ley_senos_cosenos",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Análisis del caso lado-lado-ángulo con cero, una o dos soluciones posibles.",
      "puntos_de_conocimiento": [
        "Identificar el caso lado-lado-ángulo (LLA)",
        "Determinar si existen cero, una o dos soluciones",
        "Construir el segundo triángulo cuando hay dos soluciones"
      ]
    },
    {
      "id": "trig_conversion_rectangular_polar",
      "nombre": "Conversión rectangular-polar de complejos",
      "curso": "trigonometria",
      "modulo": "forma_polar_complejos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Pasar de a más bi a r(cos theta más i sen theta) y viceversa.",
      "puntos_de_conocimiento": [
        "Convertir de forma rectangular a forma trigonométrica",
        "Convertir de forma polar a forma rectangular",
        "Expresar el complejo como r(cos theta + i sen theta)"
      ]
    },
    {
      "id": "trig_demostracion_identidades",
      "nombre": "Demostración de identidades",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Verificar identidades transformando un lado de la igualdad hasta el otro.",
      "puntos_de_conocimiento": [
        "Transformar el lado más complejo hasta igualar el otro",
        "Multiplicar por el conjugado para crear una identidad pitagórica",
        "Justificar cada paso con una identidad fundamental"
      ]
    },
    {
      "id": "trig_desfase_desplazamiento_vertical",
      "nombre": "Desfase y desplazamiento vertical",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Forma y = A sen(B(x menos C)) más D con desfase C y desplazamiento vertical D.",
      "puntos_de_conocimiento": [
        "Identificar el desfase horizontal C en la forma general",
        "Identificar el desplazamiento vertical D y la línea media",
        "Graficar una sinusoide completa con amplitud, periodo, desfase y D"
      ]
    },
    {
      "id": "trig_ecuaciones_basicas",
      "nombre": "Ecuaciones trigonométricas básicas",
      "curso": "trigonometria",
      "modulo": "ecuaciones_trigonometricas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Resolver ecuaciones del tipo sen x = k aislando la función.",
      "puntos_de_conocimiento": [
        "Resolver ecuaciones de la forma función igual a constante",
        "Hallar todas las soluciones en el intervalo de 0 a 2pi",
        "Verificar que el valor de k esté dentro del rango de la función"
      ]
    },
    {
      "id": "trig_ecuaciones_en_intervalo",
      "nombre": "Soluciones en un intervalo y generales",
      "curso": "trigonometria",
      "modulo": "ecuaciones_trigonometricas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Encontrar soluciones en un intervalo dado y la solución general periódica.",
      "puntos_de_conocimiento": [
        "Listar las soluciones dentro de un intervalo acotado",
        "Escribir la solución general sumando múltiplos del periodo",
        "Usar la periodicidad para generar soluciones adicionales"
      ]
    },
    {
      "id": "trig_forma_polar_complejo",
      "nombre": "Forma polar de un número complejo",
      "curso": "trigonometria",
      "modulo": "forma_polar_complejos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Representación de un complejo mediante módulo r y argumento theta.",
      "puntos_de_conocimiento": [
        "Ubicar un número complejo en el plano complejo",
        "Calcular el módulo como la distancia al origen",
        "Determinar el argumento usando arcotangente y el cuadrante"
      ]
    },
    {
      "id": "trig_funcion_arcocoseno_arcotangente",
      "nombre": "Funciones arcocoseno y arcotangente",
      "curso": "trigonometria",
      "modulo": "funciones_trig_inversas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Inversas del coseno y la tangente con sus dominios y rangos restringidos.",
      "puntos_de_conocimiento": [
        "Definir arcocoseno y arcotangente con dominio y rango",
        "Evaluar arcocoseno y arcotangente en valores notables",
        "Distinguir los rangos de las tres funciones inversas principales"
      ]
    },
    {
      "id": "trig_funcion_arcoseno",
      "nombre": "Función arcoseno",
      "curso": "trigonometria",
      "modulo": "funciones_trig_inversas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Inversa del seno con dominio menos 1 a 1 y rango restringido.",
      "puntos_de_conocimiento": [
        "Definir el arcoseno con su dominio y rango restringido",
        "Evaluar el arcoseno en valores notables",
        "Justificar la restricción del seno para que sea invertible"
      ]
    },
    {
      "id": "trig_grafica_tangente",
      "nombre": "Gráfica de la función tangente",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Periodo pi, asíntotas verticales y comportamiento creciente de la tangente.",
      "puntos_de_conocimiento": [
        "Trazar y = tan x con periodo pi",
        "Ubicar las asíntotas verticales donde el coseno se anula",
        "Aplicar cambios de periodo a la tangente con coeficiente B"
      ]
    },
    {
      "id": "trig_graficas_reciprocas",
      "nombre": "Gráficas de cosecante, secante y cotangente",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Forma, asintotas y periodo de las gráficas de las funciones reciprocas.",
      "puntos_de_conocimiento": [
        "Trazar la cosecante y la secante a partir del seno y el coseno",
        "Ubicar las asintotas verticales donde el seno o el coseno se anulan",
        "Trazar la cotangente con periodo pi y sus asintotas",
        "Relacionar maximos y minimos de seno y coseno con las ramas reciprocas"
      ]
    },
    {
      "id": "trig_ley_de_cosenos",
      "nombre": "Ley de cosenos",
      "curso": "trigonometria",
      "modulo": "ley_senos_cosenos",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Generalización del teorema de Pitágoras para resolver triángulos oblicuos.",
      "puntos_de_conocimiento": [
        "Aplicar la ley de cosenos en el caso lado-ángulo-lado",
        "Resolver un triángulo con los tres lados conocidos (LLL)",
        "Despejar un ángulo a partir de la ley de cosenos"
      ]
    },
    {
      "id": "trig_modelado_sinusoidal",
      "nombre": "Modelado con funciones sinusoidales",
      "curso": "trigonometria",
      "modulo": "graficas_trigonometricas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Construir un modelo seno o coseno a partir de datos periódicos reales.",
      "puntos_de_conocimiento": [
        "Determinar amplitud y línea media a partir de máximo y mínimo",
        "Hallar el periodo a partir del intervalo de repetición",
        "Escribir una ecuación sinusoidal que ajuste un fenómeno periódico"
      ]
    },
    {
      "id": "trig_simplificacion_expresiones",
      "nombre": "Simplificación de expresiones trigonométricas",
      "curso": "trigonometria",
      "modulo": "identidades_fundamentales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Reducir expresiones combinando identidades recíprocas, de cociente y pitagóricas.",
      "puntos_de_conocimiento": [
        "Combinar varias identidades para simplificar una expresión",
        "Factorizar y cancelar usando la identidad pitagórica",
        "Reescribir todo en términos de seno y coseno"
      ]
    },
    {
      "id": "trig_suma_resta_angulos",
      "nombre": "Identidades de suma y resta de ángulos",
      "curso": "trigonometria",
      "modulo": "identidades_avanzadas",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Fórmulas de seno, coseno y tangente de la suma y la diferencia de dos ángulos.",
      "puntos_de_conocimiento": [
        "Aplicar las fórmulas de seno y coseno de suma y resta",
        "Aplicar la fórmula de tangente de suma y resta",
        "Evaluar funciones de ángulos como 15 o 75 grados con sumas y restas"
      ]
    },
    {
      "id": "trig_aplicaciones_triangulos",
      "nombre": "Aplicaciones de resolución de triángulos",
      "curso": "trigonometria",
      "modulo": "ley_senos_cosenos",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Problemas de ángulos de elevación, depresión, rumbos y navegación.",
      "puntos_de_conocimiento": [
        "Modelar problemas de ángulo de elevación y depresión",
        "Resolver problemas de rumbos y navegación con triángulos",
        "Elegir entre ley de senos y ley de cosenos según el problema"
      ]
    },
    {
      "id": "trig_composicion_inversas",
      "nombre": "Composición de funciones trigonométricas e inversas",
      "curso": "trigonometria",
      "modulo": "funciones_trig_inversas",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Evaluar composiciones como sen(arccos x) y simplificarlas a expresiones algebraicas.",
      "puntos_de_conocimiento": [
        "Evaluar composiciones directas como sen(arcsen x)",
        "Simplificar composiciones mixtas como cos(arcsen x) con un triángulo",
        "Cuidar las restricciones de dominio al componer"
      ]
    },
    {
      "id": "trig_ecuaciones_con_identidades",
      "nombre": "Ecuaciones que requieren identidades",
      "curso": "trigonometria",
      "modulo": "ecuaciones_trigonometricas",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Resolver ecuaciones aplicando identidades pitagóricas o de ángulo doble.",
      "puntos_de_conocimiento": [
        "Reducir la ecuación a una sola función con identidades",
        "Resolver ecuaciones con ángulo doble usando identidades",
        "Descartar soluciones extrañas tras aplicar identidades"
      ]
    },
    {
      "id": "trig_ecuaciones_tipo_cuadratico",
      "nombre": "Ecuaciones trigonométricas de tipo cuadrático",
      "curso": "trigonometria",
      "modulo": "ecuaciones_trigonometricas",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Resolver mediante factorización o sustitución ecuaciones cuadráticas en una función.",
      "puntos_de_conocimiento": [
        "Factorizar una ecuación cuadrática en seno o coseno",
        "Sustituir u igual a la función para resolver la cuadrática",
        "Recuperar todos los ángulos a partir de las raíces"
      ]
    },
    {
      "id": "trig_producto_a_suma",
      "nombre": "Identidades producto a suma y suma a producto",
      "curso": "trigonometria",
      "modulo": "identidades_avanzadas",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Conversión entre productos de funciones y sumas o diferencias.",
      "puntos_de_conocimiento": [
        "Transformar un producto de funciones en suma o diferencia",
        "Transformar una suma o diferencia en producto",
        "Usar estas identidades para simplificar o resolver expresiones"
      ]
    },
    {
      "id": "trig_producto_cociente_polar",
      "nombre": "Producto y cociente en forma polar",
      "curso": "trigonometria",
      "modulo": "forma_polar_complejos",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Multiplicar módulos y sumar argumentos; dividir módulos y restar argumentos.",
      "puntos_de_conocimiento": [
        "Multiplicar complejos multiplicando módulos y sumando argumentos",
        "Dividir complejos dividiendo módulos y restando argumentos",
        "Expresar el resultado nuevamente en forma trigonométrica"
      ]
    },
    {
      "id": "trig_raices_complejas",
      "nombre": "Raíces de números complejos",
      "curso": "trigonometria",
      "modulo": "forma_polar_complejos",
      "nivel": 6,
      "xp": 17,
      "descripcion": "Cálculo de las n raíces n-ésimas distribuidas uniformemente en un círculo.",
      "puntos_de_conocimiento": [
        "Aplicar la fórmula de las n raíces n-ésimas de un complejo",
        "Distribuir las raíces de forma equidistante en el círculo",
        "Representar gráficamente las raíces como vértices de un polígono"
      ]
    },
    {
      "id": "trig_teorema_de_moivre",
      "nombre": "Teorema de De Moivre",
      "curso": "trigonometria",
      "modulo": "forma_polar_complejos",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Potencias de un complejo elevando el módulo y multiplicando el argumento.",
      "puntos_de_conocimiento": [
        "Aplicar el teorema de De Moivre para potencias enteras",
        "Elevar el módulo a la potencia y multiplicar el argumento por n",
        "Expresar la potencia resultante en forma rectangular"
      ]
    },
    {
      "id": "dominio_rango_avanzado",
      "nombre": "Dominio y rango a partir de la gráfica",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 1,
      "xp": 10,
      "descripcion": "Leer dominio y rango de funciones dadas por su gráfica o regla.",
      "puntos_de_conocimiento": [
        "Dominio por restricciones (raices y denominadores)",
        "Rango a partir de la gráfica",
        "Notación de intervalos y de conjuntos"
      ]
    },
    {
      "id": "simetria_paridad_funciones",
      "nombre": "Simetría: funciones pares e impares",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 2,
      "xp": 12,
      "descripcion": "Determinar paridad algebraica y geometricamente.",
      "puntos_de_conocimiento": [
        "Función par: f(-x)=f(x) y simetría al eje y",
        "Función impar: f(-x)=-f(x) y simetría al origen",
        "Prueba algebraica de paridad",
        "Funciones sin simetría"
      ]
    },
    {
      "id": "comportamiento_extremo_funciones",
      "nombre": "Comportamiento extremo de una función",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 3,
      "xp": 14,
      "descripcion": "Describir la tendencia de f(x) cuando x tiende a más o menos infinito.",
      "puntos_de_conocimiento": [
        "Notación de comportamiento extremo",
        "Tendencia hacia +/- infinito",
        "Funciones acotadas y no acotadas"
      ]
    },
    {
      "id": "coordenadas_polares_concepto",
      "nombre": "Sistema de coordenadas polares",
      "curso": "precalculo",
      "modulo": "coordenadas_polares",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Ubicar puntos con coordenadas polares y sus equivalentes.",
      "puntos_de_conocimiento": [
        "Ubicar puntos (r, theta)",
        "Representaciones equivalentes de un punto",
        "Radios negativos"
      ]
    },
    {
      "id": "ecuaciones_parametricas_concepto",
      "nombre": "Ecuaciones parametricas: concepto y grafica",
      "curso": "precalculo",
      "modulo": "ecuaciones_parametricas",
      "nivel": 3,
      "xp": 14,
      "descripcion": "Graficar curvas dadas por x(t), y(t) con orientación.",
      "puntos_de_conocimiento": [
        "Tabla de valores con el parámetro t",
        "Trazo de la curva",
        "Orientación según t crece"
      ]
    },
    {
      "id": "matriz_sistema_aumentada",
      "nombre": "Sistemas y matriz aumentada",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Representar un sistema lineal con su matriz aumentada.",
      "puntos_de_conocimiento": [
        "Escribir la matriz de coeficientes",
        "Matriz aumentada del sistema",
        "Operaciones elementales de fila"
      ]
    },
    {
      "id": "monotonia_extremos_locales",
      "nombre": "Monotonia y extremos locales",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 3,
      "xp": 14,
      "descripcion": "Identificar intervalos de crecimiento, decrecimiento y extremos relativos.",
      "puntos_de_conocimiento": [
        "Intervalos de crecimiento y decrecimiento",
        "Maximos y minimos locales",
        "Máximo y mínimo absoluto en un intervalo"
      ]
    },
    {
      "id": "operaciones_con_funciones",
      "nombre": "Operaciones algebraicas con funciones",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Sumar, restar, multiplicar y dividir funciones y hallar su dominio.",
      "puntos_de_conocimiento": [
        "Suma y resta de funciones",
        "Producto y cociente de funciones",
        "Dominio de la función resultante"
      ]
    },
    {
      "id": "operaciones_vectores",
      "nombre": "Suma de vectores y multiplo escalar",
      "curso": "precalculo",
      "modulo": "vectores_en_el_plano",
      "nivel": 3,
      "xp": 14,
      "descripcion": "Sumar, restar y escalar vectores algebraica y geometricamente.",
      "puntos_de_conocimiento": [
        "Suma y resta por componentes",
        "Regla del paralelogramo",
        "Multiplicación por un escalar"
      ]
    },
    {
      "id": "sucesiones_termino_general",
      "nombre": "Sucesiones y termino general",
      "curso": "precalculo",
      "modulo": "sucesiones_series_induccion",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Definir sucesiones por fórmula explicita y recursiva.",
      "puntos_de_conocimiento": [
        "Termino n-esimo explicito",
        "Definición recursiva",
        "Sucesiones factoriales"
      ]
    },
    {
      "id": "transformaciones_compuestas",
      "nombre": "Transformaciones compuestas de funciones",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 3,
      "xp": 14,
      "descripcion": "Combinar traslaciones, reflexiones y dilataciones en orden correcto.",
      "puntos_de_conocimiento": [
        "Traslaciones horizontales y verticales",
        "Reflexiones respecto a los ejes",
        "Dilataciones y compresiones",
        "Orden de aplicación en a*f(b(x-h))+k"
      ]
    },
    {
      "id": "vector_componentes_magnitud",
      "nombre": "Vectores en el plano: componentes y magnitud",
      "curso": "precalculo",
      "modulo": "vectores_en_el_plano",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Representar vectores por componentes y calcular su magnitud.",
      "puntos_de_conocimiento": [
        "Vector como par ordenado y forma componente",
        "Magnitud de un vector",
        "Vector entre dos puntos",
        "Vector unitario"
      ]
    },
    {
      "id": "aplicaciones_vectores",
      "nombre": "Aplicaciones de vectores",
      "curso": "precalculo",
      "modulo": "vectores_en_el_plano",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Modelar fuerza, velocidad y trabajo con vectores.",
      "puntos_de_conocimiento": [
        "Vectores de fuerza y velocidad resultante",
        "Componentes de un vector aplicado",
        "Trabajo como producto escalar"
      ]
    },
    {
      "id": "ceros_y_multiplicidad",
      "nombre": "Ceros reales y multiplicidad",
      "curso": "precalculo",
      "modulo": "funciones_polinomiales_racionales",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Hallar raices de polinomios e interpretar su multiplicidad.",
      "puntos_de_conocimiento": [
        "Teorema de las raices racionales",
        "Multiplicidad de una raíz",
        "Cruce o tangencia en cada cero"
      ]
    },
    {
      "id": "cociente_diferencial",
      "nombre": "Cociente de diferencias",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Calcular y simplificar [f(x+h)-f(x)]/h como tasa de cambio promedio.",
      "puntos_de_conocimiento": [
        "Tasa de cambio promedio en un intervalo",
        "Construir el cociente de diferencias",
        "Simplificar el cociente de diferencias"
      ]
    },
    {
      "id": "comportamiento_final_polinomios",
      "nombre": "Comportamiento final y grafica de polinomios",
      "curso": "precalculo",
      "modulo": "funciones_polinomiales_racionales",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Dibujar polinomios usando grado, coeficiente principal y ceros.",
      "puntos_de_conocimiento": [
        "Comportamiento final por grado y signo principal",
        "Número máximo de cambios de dirección",
        "Dibujo a partir de ceros y multiplicidades"
      ]
    },
    {
      "id": "composicion_funciones_avanzada",
      "nombre": "Composición de funciones y su dominio",
      "curso": "precalculo",
      "modulo": "analisis_de_funciones",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Evaluar y construir (f compuesta g) determinando su dominio.",
      "puntos_de_conocimiento": [
        "Evaluar (f o g)(x)",
        "Dominio de una composición",
        "Descomponer una función en composiciones"
      ]
    },
    {
      "id": "conversion_polar_rectangular",
      "nombre": "Conversión polar-rectangular",
      "curso": "precalculo",
      "modulo": "coordenadas_polares",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Convertir puntos y ecuaciones entre coordenadas polares y cartesianas.",
      "puntos_de_conocimiento": [
        "De polar a rectangular",
        "De rectangular a polar",
        "Convertir ecuaciones entre sistemas"
      ]
    },
    {
      "id": "determinantes_2x2_3x3",
      "nombre": "Determinantes 2x2 y 3x3",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Calcular determinantes y por cofactores.",
      "puntos_de_conocimiento": [
        "Determinante de una matriz 2x2",
        "Determinante 3x3 por cofactores",
        "Determinante y singularidad"
      ]
    },
    {
      "id": "eliminacion_gaussiana",
      "nombre": "Eliminación gaussiana",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Resolver sistemas por eliminación y forma escalonada.",
      "puntos_de_conocimiento": [
        "Forma escalonada por filas",
        "Forma escalonada reducida (Gauss-Jordan)",
        "Sustitución regresiva",
        "Sistemas sin solución o con infinitas"
      ]
    },
    {
      "id": "eliminar_parametro",
      "nombre": "Eliminar el parámetro",
      "curso": "precalculo",
      "modulo": "ecuaciones_parametricas",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Pasar de forma parametrica a una ecuación en x e y.",
      "puntos_de_conocimiento": [
        "Despejar y sustituir t",
        "Usar identidades para eliminar t",
        "Indicar el dominio restringido por t"
      ]
    },
    {
      "id": "leyes_logaritmos_avanzadas",
      "nombre": "Leyes de los logaritmos",
      "curso": "precalculo",
      "modulo": "exponenciales_logaritmicas_avanzadas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Expandir y condensar expresiones logaritmicas.",
      "puntos_de_conocimiento": [
        "Logaritmo de producto y cociente",
        "Logaritmo de una potencia",
        "Cambio de base",
        "Condensar y expandir expresiones"
      ]
    },
    {
      "id": "limite_intuitivo_concepto",
      "nombre": "Idea intuitiva de límite",
      "curso": "precalculo",
      "modulo": "limites_intuitivos",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Comprender el límite como la tendencia de f(x) al acercarse x a un valor.",
      "puntos_de_conocimiento": [
        "Tendencia de f(x) cuando x se aproxima a c",
        "Límite frente a valor de la función",
        "Notación de límite"
      ]
    },
    {
      "id": "limite_numerico_grafico",
      "nombre": "Estimar limites numerica y graficamente",
      "curso": "precalculo",
      "modulo": "limites_intuitivos",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Aproximar limites con tablas de valores y lectura de graficas.",
      "puntos_de_conocimiento": [
        "Tabla de valores cercanos a c",
        "Lectura del límite en la gráfica",
        "Casos donde el límite no existe"
      ]
    },
    {
      "id": "limites_laterales",
      "nombre": "Límites laterales",
      "curso": "precalculo",
      "modulo": "limites_intuitivos",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Analizar el límite por la izquierda y por la derecha.",
      "puntos_de_conocimiento": [
        "Límite por la izquierda",
        "Límite por la derecha",
        "Existencia del límite por coincidencia lateral"
      ]
    },
    {
      "id": "modelos_parametricos_movimiento",
      "nombre": "Modelos parametricos del movimiento",
      "curso": "precalculo",
      "modulo": "ecuaciones_parametricas",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Describir trayectorias y movimiento de proyectiles con parametricas.",
      "puntos_de_conocimiento": [
        "Posición en función del tiempo",
        "Trayectoria de un proyectil",
        "Parametrizar segmentos y curvas conocidas"
      ]
    },
    {
      "id": "operaciones_matrices",
      "nombre": "Operaciones con matrices",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Sumar, escalar y multiplicar matrices.",
      "puntos_de_conocimiento": [
        "Suma y resta de matrices",
        "Multiplicación por un escalar",
        "Producto de matrices y compatibilidad"
      ]
    },
    {
      "id": "producto_escalar_angulo",
      "nombre": "Producto escalar y ángulo entre vectores",
      "curso": "precalculo",
      "modulo": "vectores_en_el_plano",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Calcular el producto punto y el ángulo entre dos vectores.",
      "puntos_de_conocimiento": [
        "Producto escalar por componentes",
        "Ángulo entre dos vectores",
        "Vectores ortogonales",
        "Proyección de un vector"
      ]
    },
    {
      "id": "vector_forma_polar",
      "nombre": "Vectores en forma magnitud-dirección",
      "curso": "precalculo",
      "modulo": "vectores_en_el_plano",
      "nivel": 4,
      "xp": 16,
      "descripcion": "Convertir entre componentes y forma magnitud-ángulo.",
      "puntos_de_conocimiento": [
        "De magnitud y dirección a componentes",
        "De componentes a magnitud y ángulo",
        "Vectores en forma i, j"
      ]
    },
    {
      "id": "asintotas_funciones_racionales",
      "nombre": "Asíntotas de funciones racionales",
      "curso": "precalculo",
      "modulo": "funciones_polinomiales_racionales",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Determinar asintotas verticales, horizontales y oblicuas.",
      "puntos_de_conocimiento": [
        "Asintotas verticales en los ceros del denominador",
        "Asintotas horizontales por grados",
        "Asíntota oblicua por división",
        "Huecos removibles"
      ]
    },
    {
      "id": "continuidad_intuitiva",
      "nombre": "Continuidad intuitiva",
      "curso": "precalculo",
      "modulo": "limites_intuitivos",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Reconocer continuidad y clasificar discontinuidades de forma intuitiva.",
      "puntos_de_conocimiento": [
        "Función continua: trazo sin levantar el lápiz",
        "Continuidad ligada al límite y al valor",
        "Discontinuidades removibles",
        "Discontinuidades de salto e infinitas"
      ]
    },
    {
      "id": "ecuaciones_exp_log",
      "nombre": "Ecuaciones exponenciales y logaritmicas",
      "curso": "precalculo",
      "modulo": "exponenciales_logaritmicas_avanzadas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Resolver ecuaciones con exponenciales y logaritmos.",
      "puntos_de_conocimiento": [
        "Igualar bases o tomar logaritmos",
        "Usar la definición de logaritmo",
        "Verificar y descartar soluciones extranas"
      ]
    },
    {
      "id": "escalas_logaritmicas",
      "nombre": "Escalas logaritmicas",
      "curso": "precalculo",
      "modulo": "exponenciales_logaritmicas_avanzadas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Interpretar escalas como pH, decibeles y Richter.",
      "puntos_de_conocimiento": [
        "Escala de pH",
        "Decibeles y escala Richter",
        "Comparar cantidades en escala logaritmica"
      ]
    },
    {
      "id": "grafica_funciones_racionales",
      "nombre": "Gráfica completa de funciones racionales",
      "curso": "precalculo",
      "modulo": "funciones_polinomiales_racionales",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Trazar racionales combinando intersecciones, asintotas y signo.",
      "puntos_de_conocimiento": [
        "Intersecciones con los ejes",
        "Análisis de signo por intervalos",
        "Trazo usando asintotas y huecos"
      ]
    },
    {
      "id": "graficas_curvas_polares",
      "nombre": "Gráficas de curvas polares",
      "curso": "precalculo",
      "modulo": "coordenadas_polares",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Trazar circunferencias, rosas, cardioides y caracoles.",
      "puntos_de_conocimiento": [
        "Circunferencias y rectas polares",
        "Cardioides y caracoles",
        "Rosas polares",
        "Simetría de curvas polares"
      ]
    },
    {
      "id": "induccion_matematica",
      "nombre": "Inducción matemática",
      "curso": "precalculo",
      "modulo": "sucesiones_series_induccion",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Demostrar proposiciones para todo n por inducción.",
      "puntos_de_conocimiento": [
        "Caso base",
        "Hipotesis y paso inductivo",
        "Demostrar formulas de sumatoria",
        "Demostrar relaciones de divisibilidad"
      ]
    },
    {
      "id": "interes_compuesto_continuo",
      "nombre": "Interés compuesto y continuo",
      "curso": "precalculo",
      "modulo": "exponenciales_logaritmicas_avanzadas",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Aplicar las formulas de interés compuesto periodico y continuo.",
      "puntos_de_conocimiento": [
        "Fórmula de interés compuesto periodico",
        "Interés compuesto continuo con e",
        "Resolver para tiempo o tasa"
      ]
    },
    {
      "id": "limites_infinito_intuitivo",
      "nombre": "Límites al infinito y asintotas",
      "curso": "precalculo",
      "modulo": "limites_intuitivos",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Relacionar limites infinitos y al infinito con las asintotas.",
      "puntos_de_conocimiento": [
        "Límite cuando x tiende a infinito",
        "Limites infinitos y asintotas verticales",
        "Asintotas horizontales como limites"
      ]
    },
    {
      "id": "matriz_inversa",
      "nombre": "Matriz inversa y solución de sistemas",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Calcular la inversa y resolver sistemas matriciales.",
      "puntos_de_conocimiento": [
        "Matriz identidad e inversa",
        "Inversa de una matriz 2x2",
        "Inversa por Gauss-Jordan",
        "Resolver A x = b con la inversa"
      ]
    },
    {
      "id": "modelos_crecimiento_decaimiento",
      "nombre": "Modelos de crecimiento y decaimiento",
      "curso": "precalculo",
      "modulo": "exponenciales_logaritmicas_avanzadas",
      "nivel": 5,
      "xp": 18,
      "descripcion": "Modelar fenomenos con A=A0*e^(kt) y vida media.",
      "puntos_de_conocimiento": [
        "Crecimiento y decaimiento exponencial",
        "Vida media y tiempo de duplicación",
        "Hallar la constante de tasa k"
      ]
    },
    {
      "id": "regla_de_cramer",
      "nombre": "Regla de Cramer",
      "curso": "precalculo",
      "modulo": "sistemas_y_matrices",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Resolver sistemas con determinantes.",
      "puntos_de_conocimiento": [
        "Resolver sistemas 2x2 con Cramer",
        "Resolver sistemas 3x3 con Cramer",
        "Caso de determinante cero"
      ]
    },
    {
      "id": "teorema_del_binomio",
      "nombre": "Teorema del binomio",
      "curso": "precalculo",
      "modulo": "sucesiones_series_induccion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Expandir potencias de binomios con coeficientes binomiales.",
      "puntos_de_conocimiento": [
        "Triángulo de Pascal",
        "Coeficientes binomiales",
        "Expandir (a+b)^n",
        "Termino general de la expansión"
      ]
    },
    {
      "id": "limite_concepto_intuitivo",
      "nombre": "Concepto intuitivo de límite",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Idea de tendencia: a que valor se acerca f(x) cuando x se acerca a un punto.",
      "puntos_de_conocimiento": [
        "Idea de tendencia y aproximación",
        "Notación lim x->a f(x) = L",
        "El límite no depende del valor f(a)"
      ]
    },
    {
      "id": "limite_numerico_grafico_formal",
      "nombre": "Límites por tabla y por grafica",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Estimar un límite con una tabla de valores y leyendolo en la gráfica.",
      "puntos_de_conocimiento": [
        "Estimar el límite con tabla de valores",
        "Leer el límite en una gráfica",
        "Detectar cuando el límite no existe (salto u oscilación)"
      ]
    },
    {
      "id": "continuidad_en_un_punto",
      "nombre": "Continuidad en un punto",
      "curso": "calculo_1",
      "modulo": "continuidad",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Las tres condiciones: f(a) existe, el límite existe y coinciden.",
      "puntos_de_conocimiento": [
        "Las tres condiciones de continuidad",
        "Verificar continuidad en un punto",
        "Continuidad lateral"
      ]
    },
    {
      "id": "indeterminaciones_algebraicas",
      "nombre": "Indeterminaciones algebraicas 0/0",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 2,
      "xp": 12,
      "descripcion": "Resolver la forma 0/0 factorizando, racionalizando o simplificando.",
      "puntos_de_conocimiento": [
        "Reconocer la forma indeterminada 0/0",
        "Factorizar y cancelar el factor comun",
        "Racionalizar el numerador o denominador"
      ]
    },
    {
      "id": "leyes_de_los_limites",
      "nombre": "Leyes de los limites",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Límite de suma, producto, cociente, potencia y constante por función.",
      "puntos_de_conocimiento": [
        "Límite de suma, resta y producto",
        "Límite de cociente y potencia",
        "Límite por sustitución directa en funciones continuas"
      ]
    },
    {
      "id": "limites_laterales_formal",
      "nombre": "Límites laterales",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Límite por la izquierda y por la derecha; existencia del límite bilateral.",
      "puntos_de_conocimiento": [
        "Límite por la izquierda y por la derecha",
        "El límite existe si ambos laterales coinciden",
        "Limites laterales en funciones a trozos"
      ]
    },
    {
      "id": "cociente_incremental",
      "nombre": "Cociente incremental y derivada como límite",
      "curso": "calculo_1",
      "modulo": "definicion_de_derivada",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Definición de la derivada como límite del cociente de diferencias.",
      "puntos_de_conocimiento": [
        "Razón de cambio promedio (cociente incremental)",
        "Derivada como límite del cociente cuando h->0",
        "Calcular f'(a) por definición"
      ]
    },
    {
      "id": "continuidad_en_intervalos",
      "nombre": "Continuidad en intervalos",
      "curso": "calculo_1",
      "modulo": "continuidad",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Continuidad en intervalos y operaciones que la preservan.",
      "puntos_de_conocimiento": [
        "Continuidad en un intervalo abierto y cerrado",
        "Suma, producto, cociente y composición de continuas",
        "Continuidad de polinomios, racionales y trascendentes"
      ]
    },
    {
      "id": "limites_al_infinito_asintota_horizontal",
      "nombre": "Límites al infinito y asintotas horizontales",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Comportamiento cuando x tiende a +-infinito y la asíntota horizontal.",
      "puntos_de_conocimiento": [
        "Límite cuando x -> +-infinito",
        "Cociente de polinomios: comparar grados",
        "Identificar asintotas horizontales"
      ]
    },
    {
      "id": "limites_infinitos_asintota_vertical",
      "nombre": "Límites infinitos y asintotas verticales",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Cuando f(x) crece o decrece sin cota y la asíntota vertical asociada.",
      "puntos_de_conocimiento": [
        "Limites que tienden a +infinito o -infinito",
        "Analizar el signo cerca de la asíntota",
        "Identificar asintotas verticales"
      ]
    },
    {
      "id": "limites_trigonometricos_especiales",
      "nombre": "Límites trigonometricos especiales",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Limites notables sen(x)/x y (1-cos x)/x cuando x->0.",
      "puntos_de_conocimiento": [
        "Límite de sen(x)/x cuando x->0",
        "Límite de (1-cos x)/x cuando x->0",
        "Aplicar los limites notables por sustitución"
      ]
    },
    {
      "id": "razon_instantanea_velocidad",
      "nombre": "Razón de cambio instantánea y velocidad",
      "curso": "calculo_1",
      "modulo": "definicion_de_derivada",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Interpretación fisica: velocidad instantánea como derivada de la posición.",
      "puntos_de_conocimiento": [
        "Velocidad media frente a velocidad instantánea",
        "Velocidad como derivada de la posición",
        "Razón de cambio en contextos aplicados"
      ]
    },
    {
      "id": "recta_tangente_pendiente",
      "nombre": "Recta tangente y pendiente",
      "curso": "calculo_1",
      "modulo": "definicion_de_derivada",
      "nivel": 3,
      "xp": 12,
      "descripcion": "La derivada como pendiente de la recta tangente a la gráfica.",
      "puntos_de_conocimiento": [
        "La derivada es la pendiente de la tangente",
        "Ecuación de la recta tangente en un punto",
        "Recta normal a la curva"
      ]
    },
    {
      "id": "regla_constante_potencia",
      "nombre": "Reglas de la constante y de la potencia",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Derivada de una constante, de x^n y de constante por función.",
      "puntos_de_conocimiento": [
        "Derivada de una constante es 0",
        "Regla de la potencia para x^n",
        "Constante por función"
      ]
    },
    {
      "id": "regla_suma_diferencia",
      "nombre": "Regla de la suma y la diferencia",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Derivar termino a termino sumas y restas; derivar polinomios.",
      "puntos_de_conocimiento": [
        "Derivar termino a termino",
        "Derivar polinomios completos",
        "Combinar con la regla de la potencia"
      ]
    },
    {
      "id": "teorema_del_emparedado",
      "nombre": "Teorema del emparedado",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Acotar una función entre otras dos con el mismo límite para hallar el límite intermedio.",
      "puntos_de_conocimiento": [
        "Acotar f(x) entre g(x) y h(x) con igual límite",
        "Resolver limites del tipo x^2 sen(1/x)",
        "Justificar el límite de sen(x)/x con el emparedado"
      ]
    },
    {
      "id": "tipos_de_discontinuidad",
      "nombre": "Tipos de discontinuidad",
      "curso": "calculo_1",
      "modulo": "continuidad",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Discontinuidad evitable, de salto e infinita.",
      "puntos_de_conocimiento": [
        "Discontinuidad evitable (removible)",
        "Discontinuidad de salto",
        "Discontinuidad infinita (asintótica)"
      ]
    },
    {
      "id": "aproximacion_lineal",
      "nombre": "Aproximación lineal",
      "curso": "calculo_1",
      "modulo": "aproximacion_lineal_diferenciales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Usar la recta tangente para aproximar valores de la función.",
      "puntos_de_conocimiento": [
        "Fórmula de la linealización L(x) = f(a) + f'(a)(x-a)",
        "Aproximar valores cercanos al punto",
        "Estimar el error de la aproximación"
      ]
    },
    {
      "id": "definicion_epsilon_delta",
      "nombre": "Definición epsilon-delta del límite",
      "curso": "calculo_1",
      "modulo": "limites",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Significado intuitivo y formal de la definición con epsilon y delta.",
      "puntos_de_conocimiento": [
        "Interpretación de epsilon y delta como tolerancias",
        "Lectura geométrica en la gráfica",
        "Verificar un límite lineal con epsilon-delta"
      ]
    },
    {
      "id": "derivabilidad_vs_continuidad",
      "nombre": "Derivabilidad y continuidad",
      "curso": "calculo_1",
      "modulo": "definicion_de_derivada",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivable implica continua; puntos donde no hay derivada.",
      "puntos_de_conocimiento": [
        "Derivable implica continua (no al reves)",
        "Puntos angulosos, picos y rectas tangentes verticales",
        "Continuidad sin derivabilidad (ejemplo del valor absoluto)"
      ]
    },
    {
      "id": "derivadas_exponenciales",
      "nombre": "Derivadas de funciones exponenciales",
      "curso": "calculo_1",
      "modulo": "derivadas_funciones_trascendentes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivada de e^x y de a^x.",
      "puntos_de_conocimiento": [
        "Derivada de e^x",
        "Derivada de a^x con ln a",
        "Exponencial compuesta con la regla de la cadena"
      ]
    },
    {
      "id": "derivadas_logaritmicas",
      "nombre": "Derivadas de funciones logaritmicas",
      "curso": "calculo_1",
      "modulo": "derivadas_funciones_trascendentes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivada de ln(x) y de log base a.",
      "puntos_de_conocimiento": [
        "Derivada de ln(x)",
        "Derivada de log base a",
        "Logaritmo compuesto con la regla de la cadena"
      ]
    },
    {
      "id": "derivadas_orden_superior",
      "nombre": "Derivadas de orden superior",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Segunda derivada y derivadas sucesivas; aceleración.",
      "puntos_de_conocimiento": [
        "Calcular la segunda derivada",
        "Notación f''(x), d2y/dx2",
        "Aceleración como segunda derivada de la posición"
      ]
    },
    {
      "id": "derivadas_trigonometricas",
      "nombre": "Derivadas de funciones trigonometricas",
      "curso": "calculo_1",
      "modulo": "derivadas_funciones_trascendentes",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivadas de seno, coseno, tangente y reciprocas.",
      "puntos_de_conocimiento": [
        "Derivadas de sen, cos y tan",
        "Derivadas de cot, sec y csc",
        "Combinar con la regla de la cadena"
      ]
    },
    {
      "id": "funcion_creciente_decreciente",
      "nombre": "Funciones crecientes y decrecientes",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 4,
      "xp": 12,
      "descripcion": "El signo de la primera derivada determina crecimiento.",
      "puntos_de_conocimiento": [
        "f' > 0 indica crecimiento, f' < 0 decrecimiento",
        "Hallar intervalos de monotonia",
        "Puntos criticos (f' = 0 o no existe)"
      ]
    },
    {
      "id": "funcion_derivada",
      "nombre": "La función derivada",
      "curso": "calculo_1",
      "modulo": "definicion_de_derivada",
      "nivel": 4,
      "xp": 12,
      "descripcion": "La derivada como nueva función y notaciones de derivada.",
      "puntos_de_conocimiento": [
        "Construir f'(x) como función de x",
        "Notaciones f'(x), dy/dx, Df",
        "Esbozar la gráfica de f' a partir de la de f"
      ]
    },
    {
      "id": "regla_de_la_cadena",
      "nombre": "Regla de la cadena",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Derivada de una composición de funciones.",
      "puntos_de_conocimiento": [
        "Identificar función externa e interna",
        "Fórmula (f(g(x)))' = f'(g(x)) g'(x)",
        "Cadena anidada (varias composiciones)"
      ]
    },
    {
      "id": "regla_del_cociente",
      "nombre": "Regla del cociente",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivada del cociente de dos funciones.",
      "puntos_de_conocimiento": [
        "Fórmula (u/v)' = (u'v - uv')/v^2",
        "Aplicar a funciones racionales",
        "Simplificar el resultado"
      ]
    },
    {
      "id": "regla_del_producto",
      "nombre": "Regla del producto",
      "curso": "calculo_1",
      "modulo": "reglas_de_derivacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivada de un producto de dos funciones.",
      "puntos_de_conocimiento": [
        "Fórmula (uv)' = u'v + uv'",
        "Aplicar a productos de polinomios",
        "Producto de tres factores"
      ]
    },
    {
      "id": "teorema_valor_intermedio",
      "nombre": "Teorema del valor intermedio",
      "curso": "calculo_1",
      "modulo": "continuidad",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Una función continua toma todo valor intermedio entre f(a) y f(b).",
      "puntos_de_conocimiento": [
        "Enunciado e interpretación grafica",
        "Garantizar la existencia de una raíz",
        "Localizar raices por bisqueda de cambio de signo"
      ]
    },
    {
      "id": "concavidad_puntos_inflexion",
      "nombre": "Concavidad y puntos de inflexion",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 5,
      "xp": 14,
      "descripcion": "El signo de la segunda derivada y los cambios de concavidad.",
      "puntos_de_conocimiento": [
        "f'' > 0 concava hacia arriba, f'' < 0 hacia abajo",
        "Localizar puntos de inflexion",
        "Tabla de signos de f''"
      ]
    },
    {
      "id": "consecuencias_tvm",
      "nombre": "Consecuencias del teorema del valor medio",
      "curso": "calculo_1",
      "modulo": "teorema_valor_medio",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Funciones con derivada nula son constantes; funciones con igual derivada difieren en constante.",
      "puntos_de_conocimiento": [
        "Derivada cero implica función constante",
        "Funciones con igual derivada difieren en una constante",
        "Justificar criterios de monotonia"
      ]
    },
    {
      "id": "criterio_segunda_derivada",
      "nombre": "Criterio de la segunda derivada",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Clasificar extremos con el signo de f'' en los puntos criticos.",
      "puntos_de_conocimiento": [
        "f'' > 0 en punto critico indica mínimo",
        "f'' < 0 indica máximo",
        "Caso no concluyente (f'' = 0)"
      ]
    },
    {
      "id": "derivacion_implicita_concepto",
      "nombre": "Derivación implicita",
      "curso": "calculo_1",
      "modulo": "derivacion_implicita",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Derivar ecuaciones donde y no esta despejada y resolver para dy/dx.",
      "puntos_de_conocimiento": [
        "Derivar ambos lados respecto a x",
        "Tratar y como función de x (regla de la cadena)",
        "Despejar dy/dx"
      ]
    },
    {
      "id": "derivacion_logaritmica",
      "nombre": "Derivación logaritmica",
      "curso": "calculo_1",
      "modulo": "derivadas_funciones_trascendentes",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Tomar logaritmo para derivar productos, cocientes y potencias con variable.",
      "puntos_de_conocimiento": [
        "Aplicar ln a ambos lados antes de derivar",
        "Derivar funciones de la forma f(x)^g(x)",
        "Simplificar productos y cocientes complejos"
      ]
    },
    {
      "id": "derivadas_trig_inversas",
      "nombre": "Derivadas de trigonometricas inversas",
      "curso": "calculo_1",
      "modulo": "derivadas_funciones_trascendentes",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Derivadas de arcsen, arccos y arctan.",
      "puntos_de_conocimiento": [
        "Derivada de arcsen y arccos",
        "Derivada de arctan",
        "Combinar con la regla de la cadena"
      ]
    },
    {
      "id": "diferenciales",
      "nombre": "Diferenciales",
      "curso": "calculo_1",
      "modulo": "aproximacion_lineal_diferenciales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Diferencial dy = f'(x) dx y su uso en propagación de errores.",
      "puntos_de_conocimiento": [
        "Definir dy = f'(x) dx",
        "Aproximar el cambio de la función con dy",
        "Propagación de errores y error relativo"
      ]
    },
    {
      "id": "estimacion_error_diferenciales",
      "nombre": "Estimación de error con diferenciales",
      "curso": "calculo_1",
      "modulo": "aproximacion_lineal_diferenciales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Usar diferenciales para estimar el error propagado y el error relativo y porcentual.",
      "puntos_de_conocimiento": [
        "Estimar el error propagado con dy = f'(x) dx",
        "Calcular el error relativo y el error porcentual",
        "Aplicar a area, volumen y mediciones fisicas"
      ]
    },
    {
      "id": "extremos_absolutos",
      "nombre": "Extremos absolutos en un intervalo",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Máximo y mínimo absolutos en un intervalo cerrado.",
      "puntos_de_conocimiento": [
        "Teorema del valor extremo en intervalo cerrado",
        "Evaluar en puntos criticos y extremos del intervalo",
        "Comparar valores para hallar el absoluto"
      ]
    },
    {
      "id": "extremos_relativos_primera_derivada",
      "nombre": "Extremos relativos: criterio de la primera derivada",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Clasificar puntos criticos por cambio de signo de f'.",
      "puntos_de_conocimiento": [
        "Identificar puntos criticos",
        "Cambio de signo de f' para clasificar máximo o mínimo",
        "Construir la tabla de signos"
      ]
    },
    {
      "id": "lhopital_cocientes_indeterminados",
      "nombre": "Regla de L'Hopital para 0/0 e infinito sobre infinito",
      "curso": "calculo_1",
      "modulo": "regla_de_lhopital",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Derivar numerador y denominador para resolver formas 0/0 e inf/inf.",
      "puntos_de_conocimiento": [
        "Verificar la forma 0/0 o inf/inf",
        "Derivar numerador y denominador por separado",
        "Aplicar la regla repetidamente cuando hace falta"
      ]
    },
    {
      "id": "optimizacion_modelado",
      "nombre": "Planteamiento de problemas de optimización",
      "curso": "calculo_1",
      "modulo": "optimizacion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Traducir un problema en una función objetivo con restricción.",
      "puntos_de_conocimiento": [
        "Identificar la cantidad a optimizar",
        "Escribir la función objetivo",
        "Usar la restricción para dejar una sola variable"
      ]
    },
    {
      "id": "razones_relacionadas_movimiento",
      "nombre": "Razones relacionadas de movimiento",
      "curso": "calculo_1",
      "modulo": "razones_relacionadas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Modelos de movimiento: separación de objetos, ángulos de elevación y distancias variables.",
      "puntos_de_conocimiento": [
        "Tasas de separación entre dos objetos en movimiento",
        "Ángulo de elevación que cambia con el tiempo",
        "Relacionar velocidades con el teorema de Pitágoras o trigonometria"
      ]
    },
    {
      "id": "razones_relacionadas_planteamiento",
      "nombre": "Planteamiento de razones relacionadas",
      "curso": "calculo_1",
      "modulo": "razones_relacionadas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Relacionar variables y sus tasas mediante una ecuación.",
      "puntos_de_conocimiento": [
        "Identificar variables y tasas conocidas y buscadas",
        "Escribir la ecuación que relaciona las variables",
        "Derivar implicitamente respecto al tiempo"
      ]
    },
    {
      "id": "razones_relacionadas_resolucion",
      "nombre": "Resolución de problemas de razones relacionadas",
      "curso": "calculo_1",
      "modulo": "razones_relacionadas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Modelos clasicos: escalera, cono que se llena, sombra, distancias.",
      "puntos_de_conocimiento": [
        "Sustituir valores instantáneos después de derivar",
        "Problemas geométricos (escalera, cono, esfera)",
        "Interpretar el signo y las unidades del resultado"
      ]
    },
    {
      "id": "segunda_derivada_implicita",
      "nombre": "Segunda derivada implicita",
      "curso": "calculo_1",
      "modulo": "derivacion_implicita",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Calcular d2y/dx2 derivando de nuevo de forma implicita y sustituyendo dy/dx.",
      "puntos_de_conocimiento": [
        "Derivar implicitamente por segunda vez",
        "Sustituir dy/dx ya despejada en la segunda derivada",
        "Determinar concavidad de una curva implicita"
      ]
    },
    {
      "id": "tangentes_curvas_implicitas",
      "nombre": "Tangentes a curvas implicitas",
      "curso": "calculo_1",
      "modulo": "derivacion_implicita",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Recta tangente a curvas dadas en forma implicita.",
      "puntos_de_conocimiento": [
        "Evaluar dy/dx en un punto de la curva",
        "Ecuación de la tangente a una curva implicita",
        "Tangentes horizontales y verticales"
      ]
    },
    {
      "id": "teorema_de_rolle",
      "nombre": "Teorema de Rolle",
      "curso": "calculo_1",
      "modulo": "teorema_valor_medio",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Si f(a)=f(b) existe c con f'(c)=0.",
      "puntos_de_conocimiento": [
        "Hipotesis del teorema de Rolle",
        "Interpretación grafica (tangente horizontal)",
        "Verificar las hipotesis y hallar c"
      ]
    },
    {
      "id": "teorema_valor_medio_lagrange",
      "nombre": "Teorema del valor medio",
      "curso": "calculo_1",
      "modulo": "teorema_valor_medio",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Existe c donde la pendiente instantánea iguala la pendiente media.",
      "puntos_de_conocimiento": [
        "Enunciado del teorema del valor medio",
        "Interpretación: tangente paralela a la secante",
        "Hallar el valor c que lo satisface"
      ]
    },
    {
      "id": "lhopital_otras_indeterminaciones",
      "nombre": "Otras indeterminaciones con L'Hopital",
      "curso": "calculo_1",
      "modulo": "regla_de_lhopital",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Transformar 0*inf, inf-inf, 1^inf, 0^0 e inf^0 a un cociente.",
      "puntos_de_conocimiento": [
        "Transformar 0*infinito e infinito-infinito a cociente",
        "Formas exponenciales 1^inf, 0^0, inf^0 con logaritmo",
        "Concluir el límite tras la transformación"
      ]
    },
    {
      "id": "metodo_de_newton",
      "nombre": "Método de Newton",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Aproximar raices de una ecuación iterando con la recta tangente.",
      "puntos_de_conocimiento": [
        "Fórmula iterativa x_{n+1} = x_n - f(x_n)/f'(x_n)",
        "Elegir un valor inicial y iterar hasta la precisión deseada",
        "Interpretación geométrica con la recta tangente",
        "Casos de divergencia o convergencia lenta"
      ]
    },
    {
      "id": "optimizacion_aplicada_economia",
      "nombre": "Optimización aplicada y de economia",
      "curso": "calculo_1",
      "modulo": "optimizacion",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Optimización en contextos de costo, ingreso, ganancia y análisis marginal.",
      "puntos_de_conocimiento": [
        "Maximizar la ganancia y minimizar el costo",
        "Costo e ingreso marginal como derivadas",
        "Cantidad optima de producción o de pedido"
      ]
    },
    {
      "id": "optimizacion_geometrica",
      "nombre": "Optimización geométrica",
      "curso": "calculo_1",
      "modulo": "optimizacion",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Maximizar o minimizar areas, volumenes y distancias con restricciones geométricas.",
      "puntos_de_conocimiento": [
        "Maxima area o volumen con perímetro o material fijo",
        "Caja o lata de costo o superficie minima",
        "Distancia minima de un punto a una curva"
      ]
    },
    {
      "id": "optimizacion_resolucion",
      "nombre": "Resolución de problemas de optimización",
      "curso": "calculo_1",
      "modulo": "optimizacion",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Hallar el extremo, verificarlo y validar el dominio fisico.",
      "puntos_de_conocimiento": [
        "Derivar y hallar puntos criticos de la objetivo",
        "Verificar máximo o mínimo con primera o segunda derivada",
        "Validar en el dominio e interpretar el resultado"
      ]
    },
    {
      "id": "trazado_de_curvas",
      "nombre": "Trazado de curvas",
      "curso": "calculo_1",
      "modulo": "aplicaciones_derivada",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Sintesis: dominio, asintotas, monotonia, concavidad y extremos para graficar.",
      "puntos_de_conocimiento": [
        "Reunir dominio, intersecciones y asintotas",
        "Combinar información de f' y f''",
        "Esbozar la gráfica completa"
      ]
    },
    {
      "id": "concepto_antiderivada",
      "nombre": "Concepto de antiderivada",
      "curso": "calculo_2",
      "modulo": "antiderivadas",
      "nivel": 1,
      "xp": 8,
      "descripcion": "La antiderivada como operación inversa de la derivada.",
      "puntos_de_conocimiento": [
        "Antiderivada como inversa de la derivada",
        "Verificar una antiderivada derivando",
        "Familia de antiderivadas y la constante +C"
      ]
    },
    {
      "id": "integral_indefinida_notacion",
      "nombre": "La integral indefinida y su notación",
      "curso": "calculo_2",
      "modulo": "antiderivadas",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Notación de integral indefinida y su relación con la familia de antiderivadas.",
      "puntos_de_conocimiento": [
        "Simbolo de integral, integrando y diferencial dx",
        "La integral indefinida como solución general",
        "Interpretar la constante de integración"
      ]
    },
    {
      "id": "notacion_sigma_series",
      "nombre": "Notación sigma y sumatorias",
      "curso": "calculo_2",
      "modulo": "integral_definida",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Escribir y evaluar sumas con notación sigma y formulas de suma.",
      "puntos_de_conocimiento": [
        "Escribir una suma en notación sigma",
        "Propiedades lineales de la sumatoria",
        "Formulas para suma de i, i^2 e i^3"
      ]
    },
    {
      "id": "reglas_basicas_antiderivada",
      "nombre": "Reglas basicas de antiderivación",
      "curso": "calculo_2",
      "modulo": "antiderivadas",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Regla de la potencia inversa, constante y suma para antiderivadas.",
      "puntos_de_conocimiento": [
        "Regla de la potencia para antiderivadas",
        "Antiderivada de una constante por una función",
        "Antiderivada de una suma o diferencia"
      ]
    },
    {
      "id": "antiderivadas_trascendentes",
      "nombre": "Antiderivadas de funciones trascendentes",
      "curso": "calculo_2",
      "modulo": "antiderivadas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Antiderivadas de funciones trigonometricas, exponenciales y de 1/x.",
      "puntos_de_conocimiento": [
        "Antiderivadas de seno y coseno",
        "Antiderivada de la exponencial e^x",
        "Antiderivada de 1/x como logaritmo natural"
      ]
    },
    {
      "id": "condiciones_iniciales_integral",
      "nombre": "Condiciones iniciales y solución particular",
      "curso": "calculo_2",
      "modulo": "antiderivadas",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Determinar la constante de integración a partir de una condición inicial.",
      "puntos_de_conocimiento": [
        "Hallar C con una condición inicial",
        "Obtener la solución particular",
        "Reconstruir posición a partir de velocidad"
      ]
    },
    {
      "id": "sumas_de_riemann",
      "nombre": "Sumas de Riemann",
      "curso": "calculo_2",
      "modulo": "integral_definida",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Aproximar area con sumas por la izquierda, derecha y punto medio.",
      "puntos_de_conocimiento": [
        "Partición de un intervalo y ancho delta x",
        "Suma por izquierda, derecha y punto medio",
        "Punto muestral en cada subintervalo"
      ]
    },
    {
      "id": "area_bajo_la_curva_limite",
      "nombre": "Área bajo la curva como límite",
      "curso": "calculo_2",
      "modulo": "integral_definida",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Definir el area exacta como límite de sumas de Riemann.",
      "puntos_de_conocimiento": [
        "Area exacta como límite de sumas de Riemann",
        "Refinar la partición cuando n tiende a infinito",
        "Calcular area por límite con formulas de suma"
      ]
    },
    {
      "id": "integral_definida_concepto",
      "nombre": "La integral definida",
      "curso": "calculo_2",
      "modulo": "integral_definida",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Definición de integral definida como límite de sumas de Riemann.",
      "puntos_de_conocimiento": [
        "Definición como límite de sumas de Riemann",
        "Notación con limites de integración a y b",
        "Interpretación como area con signo"
      ]
    },
    {
      "id": "propiedades_integral_definida",
      "nombre": "Propiedades de la integral definida",
      "curso": "calculo_2",
      "modulo": "integral_definida",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Linealidad, aditividad por intervalos e inversión de limites.",
      "puntos_de_conocimiento": [
        "Linealidad de la integral",
        "Aditividad sobre intervalos contiguos",
        "Inversión de limites e integral de a a a"
      ]
    },
    {
      "id": "serie_geometrica_calculo",
      "nombre": "Serie geométrica",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Convergencia y suma de la serie geométrica.",
      "puntos_de_conocimiento": [
        "Condición de convergencia |r| < 1",
        "Fórmula de la suma a/(1-r)",
        "Decimales periodicos como serie geométrica"
      ]
    },
    {
      "id": "series_sumas_parciales",
      "nombre": "Series infinitas y sumas parciales",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Definir la suma de una serie como límite de sumas parciales.",
      "puntos_de_conocimiento": [
        "Sucesión de sumas parciales",
        "Convergencia de una serie como límite",
        "Concepto de suma infinita"
      ]
    },
    {
      "id": "sucesiones_limite",
      "nombre": "Sucesiones y su límite",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Concepto de sucesión y convergencia de sucesiones.",
      "puntos_de_conocimiento": [
        "Termino general de una sucesión",
        "Límite de una sucesión y convergencia",
        "Sucesiones monotonas y acotadas"
      ]
    },
    {
      "id": "sustitucion_definida",
      "nombre": "Sustitución en integrales definidas",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Cambiar los limites de integración al sustituir.",
      "puntos_de_conocimiento": [
        "Transformar los limites a la variable u",
        "Evaluar sin regresar a x",
        "Sustitución con funciones pares e impares"
      ]
    },
    {
      "id": "sustitucion_indefinida",
      "nombre": "Integración por sustitución",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Método de sustitución u para invertir la regla de la cadena.",
      "puntos_de_conocimiento": [
        "Elegir u y calcular du",
        "Reescribir el integrando en terminos de u",
        "Regresar a la variable original"
      ]
    },
    {
      "id": "tfc_parte_1",
      "nombre": "Teorema fundamental del calculo (parte 1)",
      "curso": "calculo_2",
      "modulo": "teorema_fundamental",
      "nivel": 4,
      "xp": 14,
      "descripcion": "La derivada de una función definida por una integral.",
      "puntos_de_conocimiento": [
        "Derivada de la integral con límite superior variable",
        "Función acumulación como antiderivada",
        "Límite superior con regla de la cadena"
      ]
    },
    {
      "id": "tfc_parte_2",
      "nombre": "Teorema fundamental del calculo (parte 2)",
      "curso": "calculo_2",
      "modulo": "teorema_fundamental",
      "nivel": 4,
      "xp": 14,
      "descripcion": "Evaluar una integral definida mediante una antiderivada.",
      "puntos_de_conocimiento": [
        "Evaluar la integral con F(b) menos F(a)",
        "Elegir una antiderivada para evaluar",
        "Notación de evaluación entre limites"
      ]
    },
    {
      "id": "area_entre_curvas",
      "nombre": "Área entre curvas",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Area de la region entre dos curvas integrando la diferencia.",
      "puntos_de_conocimiento": [
        "Integrar la diferencia superior menos inferior",
        "Hallar puntos de intersección como limites",
        "Integrar respecto a y cuando conviene"
      ]
    },
    {
      "id": "completar_cuadrado_integracion",
      "nombre": "Completar el cuadrado en integración",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Completar el cuadrado en el denominador para reducir a una forma estandar integrable.",
      "puntos_de_conocimiento": [
        "Completar el cuadrado en cuadraticas del denominador",
        "Reducir a la forma a^2+u^2 o a^2-u^2",
        "Integrar como arcotangente, arcoseno o logaritmo"
      ]
    },
    {
      "id": "derivadas_parametricas",
      "nombre": "Derivadas de curvas parametricas",
      "curso": "calculo_2",
      "modulo": "calculo_parametricas_polares",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Primera y segunda derivada de una curva dada en forma parametrica.",
      "puntos_de_conocimiento": [
        "Calcular dy/dx parametrica",
        "Segunda derivada y concavidad",
        "Tangentes horizontales y verticales"
      ]
    },
    {
      "id": "edo_introduccion",
      "nombre": "Introducción a las ecuaciones diferenciales",
      "curso": "calculo_2",
      "modulo": "ecuaciones_diferenciales_intro",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Concepto de ecuación diferencial, solución y campos de pendientes.",
      "puntos_de_conocimiento": [
        "Verificar una solución de una EDO",
        "Solución general frente a particular",
        "Campos de pendientes y curvas solución"
      ]
    },
    {
      "id": "fracciones_parciales_lineales",
      "nombre": "Fracciones parciales con factores lineales",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Descomponer una función racional con factores lineales distintos.",
      "puntos_de_conocimiento": [
        "División previa si el grado no es propio",
        "Descomponer con factores lineales distintos",
        "Integrar cada término como logaritmo"
      ]
    },
    {
      "id": "impropias_discontinuidad",
      "nombre": "Integrales impropias de tipo 2",
      "curso": "calculo_2",
      "modulo": "integrales_impropias",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Integrales con integrando discontinuo o no acotado.",
      "puntos_de_conocimiento": [
        "Discontinuidad en un extremo del intervalo",
        "Discontinuidad interior partiendo la integral",
        "Evaluar el límite lateral correspondiente"
      ]
    },
    {
      "id": "impropias_limites_infinitos",
      "nombre": "Integrales impropias de tipo 1",
      "curso": "calculo_2",
      "modulo": "integrales_impropias",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Integrales con limites de integración infinitos.",
      "puntos_de_conocimiento": [
        "Reescribir como límite de una integral definida",
        "Determinar convergencia o divergencia",
        "Integrales notables como la p-integral 1/x^p"
      ]
    },
    {
      "id": "integracion_por_partes",
      "nombre": "Integración por partes",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Fórmula de integración por partes y elección de u y dv.",
      "puntos_de_conocimiento": [
        "Fórmula de partes a partir de la regla del producto",
        "Elegir u y dv con el criterio LIATE",
        "Aplicar partes en una integral definida"
      ]
    },
    {
      "id": "integrales_resultan_inversas_trig",
      "nombre": "Integrales que resultan en inversas trigonometricas",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Reconocer integrales cuya antiderivada es arcoseno o arcotangente.",
      "puntos_de_conocimiento": [
        "Antiderivada con 1/(a^2+x^2) que da arcotangente",
        "Antiderivada con 1/raíz(a^2-x^2) que da arcoseno",
        "Ajustar constantes y usar sustitución lineal"
      ]
    },
    {
      "id": "partes_repetida_ciclica",
      "nombre": "Integración por partes repetida y ciclica",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Aplicar partes más de una vez, incluyendo integrales ciclicas.",
      "puntos_de_conocimiento": [
        "Aplicar partes varias veces",
        "Método tabular",
        "Resolver integrales ciclicas despejando la integral"
      ]
    },
    {
      "id": "potencias_trig_seno_coseno",
      "nombre": "Potencias de seno y coseno",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Integrar productos de potencias de seno y coseno.",
      "puntos_de_conocimiento": [
        "Estrategia con potencia impar",
        "Identidades de reducción para potencias pares",
        "Separar un factor para sustituir"
      ]
    },
    {
      "id": "series_alternantes",
      "nombre": "Series alternantes",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Criterio de Leibniz y cota del error de truncamiento.",
      "puntos_de_conocimiento": [
        "Criterio de Leibniz para series alternantes",
        "Cota del error por truncamiento",
        "Serie armonica alternante"
      ]
    },
    {
      "id": "teorema_cambio_neto",
      "nombre": "Teorema del cambio neto",
      "curso": "calculo_2",
      "modulo": "teorema_fundamental",
      "nivel": 5,
      "xp": 14,
      "descripcion": "La integral de una tasa de cambio da el cambio neto total.",
      "puntos_de_conocimiento": [
        "Integral de una tasa como cambio neto",
        "Desplazamiento frente a distancia recorrida",
        "Aplicaciones de acumulación"
      ]
    },
    {
      "id": "test_comparacion",
      "nombre": "Criterios de comparación",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Comparación directa y por límite para series de terminos positivos.",
      "puntos_de_conocimiento": [
        "Comparación directa de series positivas",
        "Comparación por límite",
        "Elegir una serie de referencia"
      ]
    },
    {
      "id": "test_divergencia_telescopica",
      "nombre": "Criterio de divergencia y series telescopicas",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Prueba del término n-esimo y suma de series telescopicas.",
      "puntos_de_conocimiento": [
        "Criterio del término n-esimo para divergencia",
        "Suma de series telescopicas",
        "La serie armonica diverge"
      ]
    },
    {
      "id": "test_integral_p_series",
      "nombre": "Criterio de la integral y p-series",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Usar el criterio de la integral y clasificar p-series.",
      "puntos_de_conocimiento": [
        "Hipotesis del criterio de la integral",
        "Aplicar el criterio de la integral",
        "Convergencia de p-series según p"
      ]
    },
    {
      "id": "test_razon_raiz",
      "nombre": "Criterios de la razón y de la raíz",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 5,
      "xp": 16,
      "descripcion": "Aplicar el criterio de la razón y el de la raíz.",
      "puntos_de_conocimiento": [
        "Criterio de la razón",
        "Criterio de la raíz",
        "Casos no concluyentes con límite igual a 1"
      ]
    },
    {
      "id": "valor_promedio_aplicado",
      "nombre": "Valor promedio en aplicaciones",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Aplicar el valor promedio de una función a problemas fisicos.",
      "puntos_de_conocimiento": [
        "Velocidad y temperatura promedio",
        "Interpretar el promedio integral en contexto",
        "Comparar promedio con valores puntuales"
      ]
    },
    {
      "id": "valor_promedio_integral",
      "nombre": "Valor promedio de una función",
      "curso": "calculo_2",
      "modulo": "teorema_fundamental",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Promedio de una función en un intervalo y teorema del valor medio integral.",
      "puntos_de_conocimiento": [
        "Fórmula del valor promedio de una función",
        "Teorema del valor medio para integrales",
        "Interpretación geométrica del promedio"
      ]
    },
    {
      "id": "area_longitud_parametricas",
      "nombre": "Área y longitud de curvas parametricas",
      "curso": "calculo_2",
      "modulo": "calculo_parametricas_polares",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Area bajo una curva parametrica y longitud de arco parametrica.",
      "puntos_de_conocimiento": [
        "Area bajo una curva parametrica",
        "Longitud de arco en forma parametrica",
        "Area de superficie de revolución parametrica"
      ]
    },
    {
      "id": "area_polar",
      "nombre": "Área en coordenadas polares",
      "curso": "calculo_2",
      "modulo": "calculo_parametricas_polares",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Area encerrada por curvas polares con la integral de medio r^2.",
      "puntos_de_conocimiento": [
        "Area con la integral de un medio r^2",
        "Area entre dos curvas polares",
        "Hallar limites con intersecciones polares"
      ]
    },
    {
      "id": "centro_de_masa_centroides",
      "nombre": "Centro de masa y centroides",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Calcular momentos y el centroide de una region plana mediante integración.",
      "puntos_de_conocimiento": [
        "Momentos respecto a los ejes x e y",
        "Centroide de una region plana",
        "Teorema de Pappus para volumenes de revolución"
      ]
    },
    {
      "id": "convergencia_absoluta",
      "nombre": "Convergencia absoluta y condicional",
      "curso": "calculo_2",
      "modulo": "sucesiones_y_series_infinitas",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Distinguir convergencia absoluta de convergencia condicional.",
      "puntos_de_conocimiento": [
        "Definición de convergencia absoluta",
        "Convergencia condicional",
        "Criterio de la razón para convergencia absoluta"
      ]
    },
    {
      "id": "derivadas_polares",
      "nombre": "Derivadas y tangentes en coordenadas polares",
      "curso": "calculo_2",
      "modulo": "calculo_parametricas_polares",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Pendiente de una curva polar usando su forma parametrica.",
      "puntos_de_conocimiento": [
        "Convertir la curva polar a forma parametrica",
        "Pendiente dy/dx de una curva polar",
        "Tangentes horizontales y verticales"
      ]
    },
    {
      "id": "edo_modelos_crecimiento",
      "nombre": "Modelos de crecimiento y decaimiento",
      "curso": "calculo_2",
      "modulo": "ecuaciones_diferenciales_intro",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Crecimiento exponencial y modelos basicos con EDO separables.",
      "puntos_de_conocimiento": [
        "Crecimiento y decaimiento exponencial",
        "Vida media e interés continuo",
        "Introducción al modelo logistico"
      ]
    },
    {
      "id": "edo_separables",
      "nombre": "Ecuaciones diferenciales separables",
      "curso": "calculo_2",
      "modulo": "ecuaciones_diferenciales_intro",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Resolver EDO de variables separables por integración.",
      "puntos_de_conocimiento": [
        "Separar variables y diferenciales",
        "Integrar ambos lados",
        "Aplicar una condición inicial"
      ]
    },
    {
      "id": "estrategia_de_integracion",
      "nombre": "Estrategia de integración",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Tabla de decisión para elegir la tecnica de integración adecuada.",
      "puntos_de_conocimiento": [
        "Clasificar el integrando para elegir la tecnica",
        "Simplificar o manipular antes de integrar",
        "Decidir entre sustitución, partes, fracciones parciales o trig",
        "Reconocer integrales sin antiderivada elemental"
      ]
    },
    {
      "id": "fracciones_parciales_avanzadas",
      "nombre": "Fracciones parciales con factores repetidos y cuadraticos",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Descomponer con factores lineales repetidos y cuadraticos irreducibles.",
      "puntos_de_conocimiento": [
        "Factores lineales repetidos",
        "Factores cuadraticos irreducibles",
        "Integrar terminos con arcotangente"
      ]
    },
    {
      "id": "fuerza_hidrostatica",
      "nombre": "Fuerza hidrostatica",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Calcular la fuerza de un fluido sobre una superficie sumergida mediante integración.",
      "puntos_de_conocimiento": [
        "Presión hidrostatica en función de la profundidad",
        "Plantear la fuerza sobre franjas horizontales",
        "Integrar la fuerza sobre placas verticales sumergidas"
      ]
    },
    {
      "id": "impropias_comparacion",
      "nombre": "Criterio de comparación para integrales impropias",
      "curso": "calculo_2",
      "modulo": "integrales_impropias",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Decidir convergencia comparando con una integral conocida.",
      "puntos_de_conocimiento": [
        "Comparación directa de integrandos positivos",
        "Comparación por límite",
        "Elegir una integral de referencia adecuada"
      ]
    },
    {
      "id": "integracion_numerica",
      "nombre": "Integración numerica",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Aproximar integrales definidas con la regla del trapecio y la regla de Simpson.",
      "puntos_de_conocimiento": [
        "Regla del trapecio",
        "Regla de Simpson",
        "Cota del error de cada método",
        "Aproximar integrales sin antiderivada elemental"
      ]
    },
    {
      "id": "longitud_arco_polar",
      "nombre": "Longitud de arco en coordenadas polares",
      "curso": "calculo_2",
      "modulo": "calculo_parametricas_polares",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Longitud de una curva polar mediante integración.",
      "puntos_de_conocimiento": [
        "Fórmula de longitud con r y dr/dtheta",
        "Plantear la integral de longitud polar",
        "Calcular la longitud de curvas polares conocidas"
      ]
    },
    {
      "id": "longitud_de_arco",
      "nombre": "Longitud de arco",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Longitud de una curva y = f(x) mediante integración.",
      "puntos_de_conocimiento": [
        "Fórmula de longitud con raíz de 1 + (f')^2",
        "Plantear la integral de longitud",
        "Area de una superficie de revolución"
      ]
    },
    {
      "id": "potencias_trig_secante_tangente",
      "nombre": "Potencias de secante y tangente",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Integrar productos de potencias de secante y tangente.",
      "puntos_de_conocimiento": [
        "Identidad sec^2 = 1 + tan^2",
        "Reservar el factor sec por tan",
        "Casos de potencias pares e impares"
      ]
    },
    {
      "id": "representacion_series_potencias",
      "nombre": "Funciones como series de potencias",
      "curso": "calculo_2",
      "modulo": "series_de_potencias_taylor",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Representar funciones usando la serie geométrica y operar termino a termino.",
      "puntos_de_conocimiento": [
        "Representar 1/(1-x) y similares",
        "Derivar e integrar termino a termino",
        "Sustituir para obtener nuevas series"
      ]
    },
    {
      "id": "series_de_potencias",
      "nombre": "Series de potencias",
      "curso": "calculo_2",
      "modulo": "series_de_potencias_taylor",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Series de potencias, radio e intervalo de convergencia.",
      "puntos_de_conocimiento": [
        "Forma general de una serie de potencias",
        "Radio de convergencia con el criterio de la razón",
        "Intervalo de convergencia revisando los extremos"
      ]
    },
    {
      "id": "series_notables_maclaurin",
      "nombre": "Series de Maclaurin notables",
      "curso": "calculo_2",
      "modulo": "series_de_potencias_taylor",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Series conocidas de e^x, seno, coseno y la serie binomial.",
      "puntos_de_conocimiento": [
        "Series de e^x, seno y coseno",
        "Serie binomial",
        "Combinar series notables para nuevas funciones"
      ]
    },
    {
      "id": "series_taylor_maclaurin",
      "nombre": "Series de Taylor y Maclaurin",
      "curso": "calculo_2",
      "modulo": "series_de_potencias_taylor",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Construir la serie de Taylor y de Maclaurin de una función.",
      "puntos_de_conocimiento": [
        "Fórmula de los coeficientes de Taylor",
        "Serie de Maclaurin centrada en cero",
        "Polinomio de Taylor de grado n"
      ]
    },
    {
      "id": "sustitucion_trigonometrica",
      "nombre": "Sustitución trigonometrica",
      "curso": "calculo_2",
      "modulo": "tecnicas_de_integracion",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Sustituir con seno, tangente o secante para radicales cuadraticos.",
      "puntos_de_conocimiento": [
        "Elegir la sustitución según el radical",
        "Triángulo de referencia para regresar a x",
        "Integrales con a^2-x^2, a^2+x^2 y x^2-a^2"
      ]
    },
    {
      "id": "taylor_aproximacion_error",
      "nombre": "Aproximación de Taylor y residuo",
      "curso": "calculo_2",
      "modulo": "series_de_potencias_taylor",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Aproximar valores y acotar el error con el residuo de Taylor.",
      "puntos_de_conocimiento": [
        "Aproximar valores de funciones",
        "Cota del residuo de Lagrange",
        "Aproximar integrales con series"
      ]
    },
    {
      "id": "trabajo_integral",
      "nombre": "Trabajo como integral",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Calcular trabajo de una fuerza variable mediante integración.",
      "puntos_de_conocimiento": [
        "Trabajo con fuerza variable",
        "Resortes y la ley de Hooke",
        "Bombeo de liquidos y levantar cadenas"
      ]
    },
    {
      "id": "volumen_capas",
      "nombre": "Volumen por capas cilíndricas",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Volumen de sólidos de revolución por cascarones cilíndricos.",
      "puntos_de_conocimiento": [
        "Plantear el cascaron 2*pi*radio*altura",
        "Elegir capas frente a arandelas",
        "Revolución respecto a un eje vertical u horizontal"
      ]
    },
    {
      "id": "volumen_discos_arandelas",
      "nombre": "Volumen por discos y arandelas",
      "curso": "calculo_2",
      "modulo": "aplicaciones_integral",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Volumen de sólidos de revolución por secciones transversales circulares.",
      "puntos_de_conocimiento": [
        "Método de discos alrededor de un eje",
        "Método de arandelas con radio interior y exterior",
        "Revolución alrededor de un eje desplazado"
      ]
    },
    {
      "id": "ecuacion_esfera",
      "nombre": "Ecuación de la esfera",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Ecuación estándar de la esfera y su centro y radio.",
      "puntos_de_conocimiento": [
        "Escribir la ecuación de la esfera dado centro y radio",
        "Completar el cuadrado para hallar centro y radio",
        "Describir regiones definidas por desigualdades esféricas"
      ]
    },
    {
      "id": "operaciones_vectores_3d",
      "nombre": "Operaciones con vectores",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 1,
      "xp": 9,
      "descripcion": "Suma, resta y multiplicación por escalar de vectores por componentes.",
      "puntos_de_conocimiento": [
        "Sumar y restar vectores por componentes",
        "Multiplicar un vector por un escalar",
        "Interpretación geométrica (regla del paralelogramo)",
        "Combinaciones lineales y vectores base i, j, k"
      ]
    },
    {
      "id": "sistema_coordenadas_3d",
      "nombre": "Sistema de coordenadas en el espacio",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 1,
      "xp": 7,
      "descripcion": "Ubicar puntos en R3 con ejes, octantes y planos coordenados.",
      "puntos_de_conocimiento": [
        "Graficar puntos (x,y,z) y reconocer los ocho octantes",
        "Identificar los planos coordenados xy, xz, yz",
        "Distancia entre dos puntos en el espacio",
        "Punto medio de un segmento en R3"
      ]
    },
    {
      "id": "vectores_2d_repaso",
      "nombre": "Vectores en el plano: repaso",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 1,
      "xp": 6,
      "descripcion": "Repaso de vectores en R2 como puente hacia el espacio tridimensional.",
      "puntos_de_conocimiento": [
        "Representar un vector en el plano por componentes",
        "Sumar vectores y multiplicar por escalar en R2",
        "Magnitud y dirección de un vector en el plano",
        "Vector entre dos puntos del plano"
      ]
    },
    {
      "id": "vectores_3d_concepto",
      "nombre": "Vectores en el espacio: concepto",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Vectores como pares posición-dirección en R2 y R3 y su forma por componentes.",
      "puntos_de_conocimiento": [
        "Distinguir punto, vector posición y vector libre",
        "Expresar un vector por componentes a partir de dos puntos",
        "Representación geométrica de un vector en R3"
      ]
    },
    {
      "id": "angulo_entre_vectores",
      "nombre": "Ángulo entre vectores y ortogonalidad",
      "curso": "calculo_multivariable",
      "modulo": "producto_punto_y_cruz",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Uso del producto punto para hallar ángulos y detectar perpendicularidad.",
      "puntos_de_conocimiento": [
        "Calcular el ángulo entre dos vectores",
        "Determinar si dos vectores son ortogonales",
        "Cosenos directores de un vector",
        "Clasificar vectores paralelos vs perpendiculares"
      ]
    },
    {
      "id": "funciones_varias_variables_concepto",
      "nombre": "Funciones de varias variables: dominio y rango",
      "curso": "calculo_multivariable",
      "modulo": "funciones_varias_variables",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Funciones de dos y tres variables, su dominio y rango.",
      "puntos_de_conocimiento": [
        "Evaluar funciones de dos y tres variables",
        "Determinar el dominio de una función de varias variables",
        "Determinar el rango de una función de dos variables",
        "Notación y representación de funciones multivariables"
      ]
    },
    {
      "id": "graficas_funciones_dos_variables",
      "nombre": "Gráficas de funciones de dos variables",
      "curso": "calculo_multivariable",
      "modulo": "funciones_varias_variables",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Superficie z=f(x,y) y trazas con planos coordenados.",
      "puntos_de_conocimiento": [
        "Interpretar la gráfica z=f(x,y) como superficie",
        "Obtener trazas con planos x=k, y=k, z=k",
        "Relacionar la superficie con su fórmula",
        "Identificar simetrías de la gráfica"
      ]
    },
    {
      "id": "magnitud_vector_unitario",
      "nombre": "Magnitud y vector unitario",
      "curso": "calculo_multivariable",
      "modulo": "vectores_y_espacio_3d",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Norma de un vector y normalización a vector unitario.",
      "puntos_de_conocimiento": [
        "Calcular la magnitud (norma) de un vector en R3",
        "Normalizar un vector para obtener un unitario",
        "Vector de magnitud dada en una dirección",
        "Vectores unitarios estándar i, j, k"
      ]
    },
    {
      "id": "producto_punto_definicion",
      "nombre": "Producto punto: definición",
      "curso": "calculo_multivariable",
      "modulo": "producto_punto_y_cruz",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Definición algebraica y geométrica del producto escalar y sus propiedades.",
      "puntos_de_conocimiento": [
        "Calcular el producto punto por componentes",
        "Fórmula geométrica con coseno del ángulo",
        "Propiedades conmutativa y distributiva del producto punto",
        "Relación entre producto punto y magnitud al cuadrado"
      ]
    },
    {
      "id": "aplicaciones_producto_cruz",
      "nombre": "Área y triple producto",
      "curso": "calculo_multivariable",
      "modulo": "producto_punto_y_cruz",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Area de paralelogramo, triple producto escalar y volumen del paralelepipedo.",
      "puntos_de_conocimiento": [
        "Área del paralelogramo y del triángulo con el producto cruz",
        "Triple producto escalar como determinante",
        "Volumen del paralelepípedo",
        "Coplanaridad de tres vectores"
      ]
    },
    {
      "id": "continuidad_multivariable",
      "nombre": "Continuidad de funciones de varias variables",
      "curso": "calculo_multivariable",
      "modulo": "limites_continuidad_multivariable",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Continuidad puntual y en regiones para funciones de varias variables.",
      "puntos_de_conocimiento": [
        "Verificar la continuidad de una función en un punto",
        "Identificar puntos y curvas de discontinuidad",
        "Continuidad de funciones compuestas y polinómicas",
        "Regiones de continuidad de funciones racionales"
      ]
    },
    {
      "id": "continuidad_polares_multivariable",
      "nombre": "Continuidad de funciones definidas a trozos en (0,0)",
      "curso": "calculo_multivariable",
      "modulo": "limites_continuidad_multivariable",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Decidir continuidad en el origen comparando el límite con el valor asignado.",
      "puntos_de_conocimiento": [
        "Comparar el límite en (0,0) con el valor f(0,0) definido a trozos",
        "Usar el resultado polar para verificar continuidad en el origen",
        "Redefinir el valor en un punto para hacer continua la función",
        "Clasificar la discontinuidad como evitable o esencial"
      ]
    },
    {
      "id": "curvas_superficies_nivel",
      "nombre": "Curvas y superficies de nivel",
      "curso": "calculo_multivariable",
      "modulo": "funciones_varias_variables",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Conjuntos de nivel f=k y mapas de contorno.",
      "puntos_de_conocimiento": [
        "Dibujar curvas de nivel de una función de dos variables",
        "Interpretar un mapa de contorno",
        "Superficies de nivel de una función de tres variables",
        "Relacionar densidad de contornos con la pendiente"
      ]
    },
    {
      "id": "derivadas_parciales_concepto",
      "nombre": "Derivadas parciales: concepto y cálculo",
      "curso": "calculo_multivariable",
      "modulo": "derivadas_parciales",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Definición e interpretación de la derivada parcial y su calculo.",
      "puntos_de_conocimiento": [
        "Definición de derivada parcial como límite",
        "Calcular fx y fy tratando otras variables como constantes",
        "Interpretación geométrica como pendiente de traza",
        "Derivadas parciales de funciones de tres o más variables"
      ]
    },
    {
      "id": "funciones_vectoriales_concepto",
      "nombre": "Funciones vectoriales y curvas",
      "curso": "calculo_multivariable",
      "modulo": "funciones_vectoriales",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Funciones de un parámetro a R3, su dominio y la curva que trazan.",
      "puntos_de_conocimiento": [
        "Evaluar y graficar funciones vectoriales r(t)",
        "Dominio de una función vectorial",
        "Curvas en el espacio y sus proyecciones",
        "Límite y continuidad de una función vectorial"
      ]
    },
    {
      "id": "limite_trayectorias_multivariable",
      "nombre": "No existencia de un límite por trayectorias",
      "curso": "calculo_multivariable",
      "modulo": "limites_continuidad_multivariable",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Probar que un límite de dos variables no existe usando trayectorias distintas.",
      "puntos_de_conocimiento": [
        "Calcular el límite a lo largo de rectas y=mx",
        "Calcular el límite a lo largo de parábolas y=kx^2",
        "Concluir que el límite no existe cuando dos trayectorias dan valores distintos",
        "Elegir trayectorias adecuadas para funciones racionales"
      ]
    },
    {
      "id": "limites_multivariable",
      "nombre": "Límites de funciones de varias variables",
      "curso": "calculo_multivariable",
      "modulo": "limites_continuidad_multivariable",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Limites en R2, dependencia de la trayectoria y tecnicas de calculo.",
      "puntos_de_conocimiento": [
        "Calcular límites por sustitución directa",
        "Demostrar que un límite no existe usando trayectorias distintas",
        "Límites en coordenadas polares",
        "Propiedades de los límites multivariables"
      ]
    },
    {
      "id": "limites_polares_multivariable",
      "nombre": "Límites multivariables en coordenadas polares",
      "curso": "calculo_multivariable",
      "modulo": "limites_continuidad_multivariable",
      "nivel": 3,
      "xp": 12,
      "descripcion": "Evaluar limites en (0,0) convirtiendo a coordenadas polares.",
      "puntos_de_conocimiento": [
        "Sustituir x=r cosθ, y=r senθ y dejar r->0",
        "Reconocer cuándo el límite es independiente de θ y existe",
        "Acotar la expresión para aplicar el teorema del emparedado",
        "Detectar dependencia de θ que implica no existencia"
      ]
    },
    {
      "id": "planos_en_espacio",
      "nombre": "Planos en el espacio",
      "curso": "calculo_multivariable",
      "modulo": "rectas_y_planos",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Ecuación del plano via vector normal y forma general.",
      "puntos_de_conocimiento": [
        "Ecuación de un plano dado punto y vector normal",
        "Forma general ax+by+cz=d del plano",
        "Plano que pasa por tres puntos",
        "Ángulo entre dos planos"
      ]
    },
    {
      "id": "producto_cruz_definicion",
      "nombre": "Producto cruz: definición",
      "curso": "calculo_multivariable",
      "modulo": "producto_punto_y_cruz",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Producto vectorial via determinante y sus propiedades de orientación.",
      "puntos_de_conocimiento": [
        "Calcular el producto cruz con el determinante 3x3",
        "Propiedad anticonmutativa del producto cruz",
        "Dirección por la regla de la mano derecha",
        "El producto cruz es ortogonal a ambos factores"
      ]
    },
    {
      "id": "proyeccion_vectorial",
      "nombre": "Proyección y componente escalar",
      "curso": "calculo_multivariable",
      "modulo": "producto_punto_y_cruz",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Proyección de un vector sobre otro y trabajo como producto punto.",
      "puntos_de_conocimiento": [
        "Calcular la componente escalar de a sobre b",
        "Calcular la proyección vectorial proy_b a",
        "Descomponer un vector en componentes paralela y ortogonal",
        "Trabajo de una fuerza constante con producto punto"
      ]
    },
    {
      "id": "rectas_en_espacio",
      "nombre": "Rectas en el espacio",
      "curso": "calculo_multivariable",
      "modulo": "rectas_y_planos",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Ecuaciones vectorial, parametricas y simetricas de una recta en R3.",
      "puntos_de_conocimiento": [
        "Ecuación vectorial de una recta dada punto y dirección",
        "Ecuaciones paramétricas de una recta",
        "Ecuaciones simétricas de una recta",
        "Recta que pasa por dos puntos dados"
      ]
    },
    {
      "id": "superficies_cuadricas",
      "nombre": "Superficies cuádricas",
      "curso": "calculo_multivariable",
      "modulo": "funciones_varias_variables",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Clasificación e identificación de elipsoides, paraboloides, hiperboloides y conos.",
      "puntos_de_conocimiento": [
        "Identificar elipsoides, paraboloides e hiperboloides",
        "Usar trazas para reconocer una cuádrica",
        "Conos y cilindros cuádricos",
        "Escribir y reconocer formas estándar de cuádricas"
      ]
    },
    {
      "id": "aproximacion_lineal_multivariable",
      "nombre": "Aproximación lineal y linealización",
      "curso": "calculo_multivariable",
      "modulo": "planos_tangentes_aproximacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Linealización de una función de varias variables y diferenciabilidad.",
      "puntos_de_conocimiento": [
        "Construir la linealización L(x,y) de una función",
        "Aproximar valores de la función cerca de un punto",
        "Concepto de diferenciabilidad en varias variables",
        "Estimar el error de la aproximación lineal"
      ]
    },
    {
      "id": "calculo_funciones_vectoriales",
      "nombre": "Derivada e integral de funciones vectoriales",
      "curso": "calculo_multivariable",
      "modulo": "funciones_vectoriales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Diferenciación e integración componente a componente y vector tangente.",
      "puntos_de_conocimiento": [
        "Derivar una función vectorial componente a componente",
        "Vector tangente y recta tangente a una curva",
        "Reglas de derivación de productos de vectores",
        "Integral de una función vectorial y problema de valor inicial"
      ]
    },
    {
      "id": "campo_gradiente_construccion",
      "nombre": "Campo gradiente de una función escalar",
      "curso": "calculo_multivariable",
      "modulo": "campos_vectoriales",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Construir F = grad f y relacionar sus flechas con las curvas de nivel.",
      "puntos_de_conocimiento": [
        "Calcular el campo gradiente F = grad f de una función potencial",
        "Comprobar que las flechas del gradiente son ortogonales a las curvas de nivel",
        "Relacionar la magnitud del gradiente con la densidad de los contornos",
        "Reconocer un campo gradiente como campo conservativo"
      ]
    },
    {
      "id": "campo_vectorial_concepto",
      "nombre": "Campos vectoriales",
      "curso": "calculo_multivariable",
      "modulo": "campos_vectoriales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Concepto y representación grafica de campos vectoriales en R2 y R3.",
      "puntos_de_conocimiento": [
        "Definir un campo vectorial en el plano y en el espacio",
        "Dibujar y reconocer un campo vectorial",
        "Identificar campos radiales y rotacionales",
        "Campo gradiente de una función escalar"
      ]
    },
    {
      "id": "derivacion_implicita_multivariable",
      "nombre": "Derivación implícita multivariable",
      "curso": "calculo_multivariable",
      "modulo": "derivadas_parciales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Derivadas parciales implicitas usando la regla de la cadena.",
      "puntos_de_conocimiento": [
        "Hallar dy/dx implícita con la fórmula de gradiente",
        "Derivadas parciales implícitas de z respecto a x e y",
        "Aplicar a superficies definidas por F(x,y,z)=0",
        "Relacionar con el vector gradiente normal"
      ]
    },
    {
      "id": "derivada_direccional",
      "nombre": "Derivada direccional",
      "curso": "calculo_multivariable",
      "modulo": "gradiente_y_derivada_direccional",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Razón de cambio en una dirección via gradiente y vector unitario.",
      "puntos_de_conocimiento": [
        "Calcular la derivada direccional con el producto punto gradiente·u",
        "Usar un vector unitario en la dirección dada",
        "Derivada direccional desde un ángulo",
        "Relacionar derivadas parciales con casos especiales de la direccional"
      ]
    },
    {
      "id": "derivadas_parciales_orden_superior",
      "nombre": "Derivadas parciales de orden superior",
      "curso": "calculo_multivariable",
      "modulo": "derivadas_parciales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Segundas derivadas parciales, mixtas y teorema de Clairaut.",
      "puntos_de_conocimiento": [
        "Calcular fxx, fyy y derivadas mixtas fxy, fyx",
        "Aplicar el teorema de Clairaut (igualdad de mixtas)",
        "Notación de derivadas parciales de orden superior",
        "Verificar soluciones de ecuaciones en derivadas parciales sencillas"
      ]
    },
    {
      "id": "diferencial_total",
      "nombre": "Diferencial total",
      "curso": "calculo_multivariable",
      "modulo": "planos_tangentes_aproximacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Diferencial total y propagación de errores en mediciones.",
      "puntos_de_conocimiento": [
        "Calcular el diferencial total dz",
        "Estimar el cambio de una función con dz",
        "Propagación de errores en magnitudes medidas",
        "Relacionar dz con la aproximación lineal"
      ]
    },
    {
      "id": "distancias_rectas_planos",
      "nombre": "Distancias entre puntos, rectas y planos",
      "curso": "calculo_multivariable",
      "modulo": "rectas_y_planos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Formulas de distancia punto-plano, punto-recta y entre rectas oblicuas.",
      "puntos_de_conocimiento": [
        "Distancia de un punto a un plano",
        "Distancia de un punto a una recta",
        "Distancia entre dos rectas oblicuas",
        "Distancia entre planos paralelos"
      ]
    },
    {
      "id": "integral_doble_rectangulos",
      "nombre": "Integrales dobles sobre rectángulos",
      "curso": "calculo_multivariable",
      "modulo": "integrales_dobles",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Integral doble como volumen y su evaluación por integrales iteradas en rectángulos.",
      "puntos_de_conocimiento": [
        "Definir la integral doble con sumas de Riemann dobles",
        "Teorema de Fubini sobre un rectángulo",
        "Evaluar integrales iteradas en una región rectangular",
        "Interpretar la integral doble como volumen"
      ]
    },
    {
      "id": "lineas_de_campo",
      "nombre": "Líneas de campo (curvas integrales)",
      "curso": "calculo_multivariable",
      "modulo": "campos_vectoriales",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Curvas tangentes en cada punto al campo y su ecuación diferencial.",
      "puntos_de_conocimiento": [
        "Definir una línea de campo como curva tangente al campo en cada punto",
        "Plantear dy/dx = Q/P para hallar las líneas de campo en R2",
        "Resolver la ecuación diferencial para campos sencillos",
        "Distinguir líneas de campo de curvas de nivel"
      ]
    },
    {
      "id": "longitud_de_arco_curva",
      "nombre": "Longitud de arco y parámetro arco",
      "curso": "calculo_multivariable",
      "modulo": "funciones_vectoriales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Longitud de una curva en el espacio y reparametrización por longitud de arco.",
      "puntos_de_conocimiento": [
        "Calcular la longitud de arco de una curva en R3",
        "Función longitud de arco s(t)",
        "Reparametrizar una curva por longitud de arco",
        "Vector tangente unitario T(t)"
      ]
    },
    {
      "id": "plano_tangente_superficie",
      "nombre": "Plano tangente y recta normal",
      "curso": "calculo_multivariable",
      "modulo": "planos_tangentes_aproximacion",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Plano tangente a z=f(x,y) y a superficies de nivel via gradiente.",
      "puntos_de_conocimiento": [
        "Plano tangente a la gráfica z=f(x,y)",
        "Plano tangente a una superficie de nivel F(x,y,z)=k",
        "Recta normal a una superficie",
        "Usar el gradiente como vector normal"
      ]
    },
    {
      "id": "posiciones_relativas_rectas_planos",
      "nombre": "Posiciones relativas e intersecciones",
      "curso": "calculo_multivariable",
      "modulo": "rectas_y_planos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Paralelismo, intersecciones y rectas oblicuas entre rectas y planos.",
      "puntos_de_conocimiento": [
        "Determinar si dos rectas son paralelas, se cortan o son oblicuas",
        "Intersección de una recta con un plano",
        "Recta de intersección de dos planos",
        "Condiciones de paralelismo y perpendicularidad plano-recta"
      ]
    },
    {
      "id": "propiedades_gradiente",
      "nombre": "Propiedades geométricas del gradiente",
      "curso": "calculo_multivariable",
      "modulo": "gradiente_y_derivada_direccional",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Maxima razón de cambio y ortogonalidad del gradiente a los conjuntos de nivel.",
      "puntos_de_conocimiento": [
        "Dirección y valor de la máxima razón de cambio",
        "El gradiente es ortogonal a las curvas y superficies de nivel",
        "Recta tangente a una curva de nivel",
        "Dirección de máximo decrecimiento"
      ]
    },
    {
      "id": "puntos_criticos_multivariable",
      "nombre": "Puntos críticos de funciones de dos variables",
      "curso": "calculo_multivariable",
      "modulo": "optimizacion_multivariable",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Hallar puntos criticos donde el gradiente se anula.",
      "puntos_de_conocimiento": [
        "Resolver fx=0 y fy=0 para hallar puntos críticos",
        "Clasificar candidatos a máximo, mínimo o silla",
        "Puntos críticos donde las parciales no existen",
        "Interpretar puntos críticos en la superficie"
      ]
    },
    {
      "id": "regla_cadena_multivariable",
      "nombre": "Regla de la cadena multivariable",
      "curso": "calculo_multivariable",
      "modulo": "derivadas_parciales",
      "nivel": 4,
      "xp": 13,
      "descripcion": "Regla de la cadena con arboles de dependencia para varias variables.",
      "puntos_de_conocimiento": [
        "Regla de la cadena para z=f(x(t),y(t))",
        "Regla de la cadena con variables intermedias múltiples",
        "Construir y usar el diagrama de árbol de dependencias",
        "Aplicar la regla de la cadena a problemas de razones"
      ]
    },
    {
      "id": "vector_gradiente",
      "nombre": "Vector gradiente",
      "curso": "calculo_multivariable",
      "modulo": "gradiente_y_derivada_direccional",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Definición del gradiente y su construcción a partir de parciales.",
      "puntos_de_conocimiento": [
        "Calcular el vector gradiente de una función",
        "Interpretar el gradiente como dirección de máximo crecimiento",
        "Gradiente de funciones de tres variables",
        "Notación nabla y campo gradiente"
      ]
    },
    {
      "id": "visualizacion_campo_vectorial",
      "nombre": "Representación y visualización de un campo vectorial",
      "curso": "calculo_multivariable",
      "modulo": "campos_vectoriales",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Dibujar y leer el diagrama de flechas de un campo vectorial en el plano.",
      "puntos_de_conocimiento": [
        "Evaluar F(x,y) en una malla de puntos y dibujar las flechas",
        "Escalar las flechas para visualizar magnitud y dirección",
        "Reconocer campos constantes, radiales y de rotación a partir del dibujo",
        "Asociar una fórmula de campo con su diagrama de flechas"
      ]
    },
    {
      "id": "aplicaciones_integral_doble",
      "nombre": "Aplicaciones de la integral doble",
      "curso": "calculo_multivariable",
      "modulo": "integrales_dobles",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Area, masa, centro de masa y valor promedio con integrales dobles.",
      "puntos_de_conocimiento": [
        "Área de una región plana como integral doble",
        "Masa y centro de masa con densidad variable",
        "Momentos y momento de inercia",
        "Valor promedio de una función sobre una región"
      ]
    },
    {
      "id": "area_de_superficie",
      "nombre": "Área de una superficie",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_superficie",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Area de una superficie parametrizada y de graficas z=f(x,y).",
      "puntos_de_conocimiento": [
        "Calcular el área con la integral de |ru x rv|",
        "Área de superficie de una gráfica z=f(x,y)",
        "Elemento de área dS",
        "Aplicar a superficies de revolución"
      ]
    },
    {
      "id": "cambio_orden_integracion",
      "nombre": "Cambio de orden de integración",
      "curso": "calculo_multivariable",
      "modulo": "integrales_dobles",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Invertir el orden dx dy para simplificar una integral doble.",
      "puntos_de_conocimiento": [
        "Reescribir los límites al invertir el orden de integración",
        "Dibujar la región para reescribir los límites",
        "Resolver integrales que solo son evaluables en cierto orden",
        "Verificar la equivalencia de ambos órdenes"
      ]
    },
    {
      "id": "campos_conservativos_potencial",
      "nombre": "Campos conservativos y función potencial",
      "curso": "calculo_multivariable",
      "modulo": "campos_vectoriales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Test de campo conservativo y reconstrucción de la función potencial.",
      "puntos_de_conocimiento": [
        "Probar si un campo es conservativo (test de parciales)",
        "Hallar la función potencial f con grad f = F",
        "Independencia de la trayectoria en campos conservativos",
        "Relacionar campos conservativos con rotacional cero"
      ]
    },
    {
      "id": "criterio_segundas_derivadas_hessiano",
      "nombre": "Criterio de las segundas derivadas (Hessiano)",
      "curso": "calculo_multivariable",
      "modulo": "optimizacion_multivariable",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Discriminante Hessiano para clasificar puntos criticos.",
      "puntos_de_conocimiento": [
        "Calcular el discriminante D = fxx·fyy - (fxy)^2",
        "Clasificar máximo local, mínimo local o punto silla",
        "Interpretar el caso D=0 (no concluyente)",
        "Aplicar el criterio a problemas concretos"
      ]
    },
    {
      "id": "curvatura_y_tnb",
      "nombre": "Curvatura y vectores TNB",
      "curso": "calculo_multivariable",
      "modulo": "funciones_vectoriales",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Curvatura, marco de Frenet TNB y componentes de la aceleración.",
      "puntos_de_conocimiento": [
        "Calcular la curvatura de una curva",
        "Vectores tangente, normal y binormal (TNB)",
        "Plano osculador y plano normal",
        "Componentes tangencial y normal de la aceleración"
      ]
    },
    {
      "id": "divergencia_campo",
      "nombre": "Divergencia de un campo vectorial",
      "curso": "calculo_multivariable",
      "modulo": "rotacional_y_divergencia",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Definición y calculo de la divergencia y campos solenoidales.",
      "puntos_de_conocimiento": [
        "Calcular div F = ∇·F",
        "Interpretar la divergencia como expansión o compresión",
        "Identificar campos solenoidales (div F = 0)",
        "Identidad div(rot F) = 0"
      ]
    },
    {
      "id": "green_area_formas",
      "nombre": "Áreas y formas vectoriales del teorema de Green",
      "curso": "calculo_multivariable",
      "modulo": "teorema_de_green",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Calculo de areas con Green y formas de circulación y flujo.",
      "puntos_de_conocimiento": [
        "Calcular el área de una región con una integral de línea",
        "Forma de circulación (rotacional) del teorema de Green",
        "Forma de flujo (divergencia) del teorema de Green",
        "Verificar el teorema en ejemplos concretos"
      ]
    },
    {
      "id": "green_calculo_areas",
      "nombre": "Cálculo de áreas con el teorema de Green",
      "curso": "calculo_multivariable",
      "modulo": "teorema_de_green",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Usar Green para expresar el area de una region como una integral de línea en su frontera.",
      "puntos_de_conocimiento": [
        "Deducir A = (1/2) ∮ (x dy - y dx) a partir de Green",
        "Calcular el área de regiones acotadas por curvas paramétricas",
        "Aplicar la fórmula del área a elipses y curvas cerradas",
        "Verificar el resultado con la integral doble del área"
      ]
    },
    {
      "id": "green_forma_circulacion",
      "nombre": "Teorema de Green: forma de circulación (rotacional)",
      "curso": "calculo_multivariable",
      "modulo": "teorema_de_green",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Forma de circulación de Green que iguala la integral de línea con la integral doble del rotacional escalar.",
      "puntos_de_conocimiento": [
        "Escribir la circulación como integral doble de (Qx - Py)",
        "Identificar Qx - Py como el rotacional escalar (componente k de rot F)",
        "Calcular la circulación de un campo sobre una curva cerrada",
        "Interpretar la circulación como rotación neta en la región"
      ]
    },
    {
      "id": "green_forma_flujo",
      "nombre": "Teorema de Green: forma de flujo (divergencia 2D)",
      "curso": "calculo_multivariable",
      "modulo": "teorema_de_green",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Forma de flujo de Green que iguala el flujo a traves de la frontera con la integral doble de la divergencia plana.",
      "puntos_de_conocimiento": [
        "Escribir el flujo a través de la frontera como integral de línea con el normal exterior",
        "Convertir el flujo en la integral doble de (Px + Qy)",
        "Identificar Px + Qy como la divergencia 2D del campo",
        "Interpretar el flujo neto como fuentes y sumideros en la región"
      ]
    },
    {
      "id": "identidades_vectoriales_nabla",
      "nombre": "Identidades vectoriales: rot grad = 0 y div rot = 0",
      "curso": "calculo_multivariable",
      "modulo": "rotacional_y_divergencia",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Identidades fundamentales del calculo vectorial demostradas con la igualdad de mixtas.",
      "puntos_de_conocimiento": [
        "Demostrar rot(grad f) = 0 usando la igualdad de derivadas mixtas",
        "Demostrar div(rot F) = 0 con derivadas parciales",
        "Calcular el laplaciano div(grad f) = ∇²f",
        "Usar las identidades para descartar campos no conservativos o no solenoidales"
      ]
    },
    {
      "id": "integral_doble_polares",
      "nombre": "Integrales dobles en coordenadas polares",
      "curso": "calculo_multivariable",
      "modulo": "integrales_dobles",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Conversión a polares con el factor r dr dtheta para regiones circulares.",
      "puntos_de_conocimiento": [
        "Convertir x, y y la región a coordenadas polares",
        "Incluir el jacobiano r en dA = r dr dθ",
        "Establecer límites polares para discos y sectores",
        "Evaluar integrales con simetría radial"
      ]
    },
    {
      "id": "integral_doble_regiones_generales",
      "nombre": "Integrales dobles sobre regiones generales",
      "curso": "calculo_multivariable",
      "modulo": "integrales_dobles",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Integración sobre regiones tipo I y tipo II y planteo de limites.",
      "puntos_de_conocimiento": [
        "Identificar regiones tipo I y tipo II",
        "Establecer los límites de integración para regiones generales",
        "Evaluar integrales dobles sobre regiones no rectangulares",
        "Dibujar la región de integración"
      ]
    },
    {
      "id": "integral_linea_campo_escalar",
      "nombre": "Integral de línea de un campo escalar",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_linea",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Integral de línea respecto a la longitud de arco para funciones escalares.",
      "puntos_de_conocimiento": [
        "Plantear la integral de línea ∫ f ds parametrizando la curva",
        "Incluir el factor |r'(t)| dt",
        "Calcular masa de un alambre con densidad variable",
        "Integrales de línea sobre curvas a trozos"
      ]
    },
    {
      "id": "integral_linea_campo_vectorial",
      "nombre": "Integral de línea de un campo vectorial",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_linea",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Trabajo de un campo a lo largo de una curva orientada.",
      "puntos_de_conocimiento": [
        "Plantear ∫ F·dr como trabajo del campo",
        "Parametrizar la curva orientada y sustituir",
        "Relacionar ∫ F·dr con ∫ F·T ds",
        "Efecto de invertir la orientación de la curva"
      ]
    },
    {
      "id": "integral_superficie_escalar",
      "nombre": "Integral de superficie de un campo escalar",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_superficie",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Integral de una función escalar sobre una superficie.",
      "puntos_de_conocimiento": [
        "Plantear ∫∫ f dS sobre una superficie parametrizada",
        "Incluir el factor |ru x rv| dA",
        "Calcular masa de una lámina curva",
        "Integrales de superficie sobre gráficas z=f(x,y)"
      ]
    },
    {
      "id": "integral_triple_cilindricas",
      "nombre": "Integrales triples en coordenadas cilíndricas",
      "curso": "calculo_multivariable",
      "modulo": "integrales_triples",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Conversión a cilíndricas con el factor r dz dr dtheta.",
      "puntos_de_conocimiento": [
        "Convertir entre coordenadas cartesianas y cilíndricas",
        "Incluir el jacobiano r en dV = r dz dr dθ",
        "Establecer límites cilíndricos para sólidos de revolución",
        "Evaluar integrales triples en cilíndricas"
      ]
    },
    {
      "id": "integral_triple_rectangular",
      "nombre": "Integrales triples en coordenadas rectangulares",
      "curso": "calculo_multivariable",
      "modulo": "integrales_triples",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Integral triple iterada sobre regiones solidas en coordenadas cartesianas.",
      "puntos_de_conocimiento": [
        "Definir la integral triple sobre una región sólida",
        "Establecer los límites en el orden dz dy dx",
        "Evaluar integrales triples iteradas",
        "Interpretar la integral triple como volumen o masa"
      ]
    },
    {
      "id": "interpretacion_fisica_rot_div",
      "nombre": "Interpretación física del rotacional y la divergencia",
      "curso": "calculo_multivariable",
      "modulo": "rotacional_y_divergencia",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Significado fisico del rotacional como giro local y de la divergencia como flujo por unidad de volumen.",
      "puntos_de_conocimiento": [
        "Interpretar el rotacional como rotación local de un fluido (rueda de paletas)",
        "Interpretar la divergencia como expansión o fuente puntual",
        "Clasificar un campo como irrotacional o solenoidal según su significado físico",
        "Relacionar rot y div con velocidad de fluidos y campos electromagnéticos"
      ]
    },
    {
      "id": "lagrange_aplicaciones_optimizacion",
      "nombre": "Aplicaciones de Lagrange a optimización con restricción",
      "curso": "calculo_multivariable",
      "modulo": "multiplicadores_lagrange",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Modelar y resolver problemas reales de optimización sujetos a una restricción.",
      "puntos_de_conocimiento": [
        "Plantear la función objetivo y la restricción de un problema verbal",
        "Hallar dimensiones óptimas (caja, cilindro) con volumen o superficie fija",
        "Maximizar utilidad o producción sujeta a un presupuesto",
        "Interpretar λ como tasa marginal (precio sombra)"
      ]
    },
    {
      "id": "lagrange_interpretacion_geometrica",
      "nombre": "Interpretación geométrica de Lagrange: gradientes paralelos",
      "curso": "calculo_multivariable",
      "modulo": "multiplicadores_lagrange",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Justificar la condición de Lagrange como tangencia de niveles y gradientes paralelos.",
      "puntos_de_conocimiento": [
        "Reconocer que en el óptimo la curva de nivel es tangente a la restricción",
        "Interpretar grad f = λ grad g como gradientes paralelos",
        "Relacionar el signo y la magnitud de λ con la dirección de mejora",
        "Visualizar el punto de tangencia con mapas de contorno"
      ]
    },
    {
      "id": "lagrange_una_restriccion",
      "nombre": "Multiplicadores de Lagrange (una restricción)",
      "curso": "calculo_multivariable",
      "modulo": "multiplicadores_lagrange",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Optimización con una restricción via grad f = lambda grad g.",
      "puntos_de_conocimiento": [
        "Plantear el sistema grad f = λ grad g con la restricción",
        "Resolver el sistema de Lagrange",
        "Interpretar geométricamente la tangencia de niveles",
        "Aplicaciones a optimización con restricción de igualdad"
      ]
    },
    {
      "id": "operador_nabla",
      "nombre": "El operador nabla",
      "curso": "calculo_multivariable",
      "modulo": "rotacional_y_divergencia",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Operador vectorial nabla y su acción como gradiente, divergencia y rotacional.",
      "puntos_de_conocimiento": [
        "Definir nabla como operador de derivadas parciales",
        "Aplicar nabla a un escalar para obtener el gradiente",
        "Aplicar nabla con producto punto para obtener la divergencia",
        "Aplicar nabla con producto cruz para obtener el rotacional"
      ]
    },
    {
      "id": "optimizacion_dominios_cerrados",
      "nombre": "Extremos absolutos en dominios cerrados",
      "curso": "calculo_multivariable",
      "modulo": "optimizacion_multivariable",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Maximos y minimos absolutos en regiones cerradas y acotadas.",
      "puntos_de_conocimiento": [
        "Evaluar puntos críticos interiores",
        "Optimizar la función sobre la frontera de la región",
        "Comparar candidatos para hallar extremos absolutos",
        "Problemas aplicados de optimización multivariable"
      ]
    },
    {
      "id": "parametrizacion_superficies",
      "nombre": "Parametrización de superficies",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_superficie",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Representación de superficies con dos parametros y vector normal.",
      "puntos_de_conocimiento": [
        "Parametrizar superficies con r(u,v)",
        "Parametrizar planos, esferas, cilindros y gráficas z=f(x,y)",
        "Calcular ru x rv como vector normal",
        "Curvas coordenadas de una superficie parametrizada"
      ]
    },
    {
      "id": "rotacional_campo",
      "nombre": "Rotacional de un campo vectorial",
      "curso": "calculo_multivariable",
      "modulo": "rotacional_y_divergencia",
      "nivel": 5,
      "xp": 13,
      "descripcion": "Definición y calculo del rotacional via determinante con nabla.",
      "puntos_de_conocimiento": [
        "Calcular rot F = ∇ x F con el determinante",
        "Interpretar el rotacional como tendencia a rotar",
        "Relacionar rot F = 0 con campos conservativos",
        "Propiedades del rotacional"
      ]
    },
    {
      "id": "teorema_fundamental_integrales_linea",
      "nombre": "Teorema fundamental de integrales de línea",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_linea",
      "nivel": 5,
      "xp": 14,
      "descripcion": "Evaluación de integrales de campos conservativos via función potencial.",
      "puntos_de_conocimiento": [
        "Aplicar ∫ grad f·dr = f(B) - f(A)",
        "Usar independencia de la trayectoria",
        "Integral de línea nula sobre curvas cerradas conservativas",
        "Identificar cuándo aplica el teorema"
      ]
    },
    {
      "id": "teorema_green",
      "nombre": "Teorema de Green",
      "curso": "calculo_multivariable",
      "modulo": "teorema_de_green",
      "nivel": 5,
      "xp": 15,
      "descripcion": "Relación entre integral de línea cerrada e integral doble de la circulación.",
      "puntos_de_conocimiento": [
        "Enunciar el teorema de Green y la orientación positiva",
        "Convertir una integral de línea cerrada en integral doble",
        "Aplicar a regiones simplemente conexas",
        "Manejar regiones con agujeros (frontera múltiple)"
      ]
    },
    {
      "id": "aplicaciones_integral_triple",
      "nombre": "Aplicaciones de la integral triple",
      "curso": "calculo_multivariable",
      "modulo": "integrales_triples",
      "nivel": 6,
      "xp": 14,
      "descripcion": "Volumen, masa, centroide y momentos de inercia de sólidos.",
      "puntos_de_conocimiento": [
        "Volumen de un sólido con integral triple",
        "Masa y centro de masa de un sólido",
        "Momentos de inercia de un sólido",
        "Elegir el sistema de coordenadas más conveniente"
      ]
    },
    {
      "id": "cambio_variables_jacobiano",
      "nombre": "Cambio de variables y jacobiano",
      "curso": "calculo_multivariable",
      "modulo": "integrales_triples",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Cambio general de variables en integrales multiples usando el jacobiano.",
      "puntos_de_conocimiento": [
        "Calcular el jacobiano de una transformación",
        "Cambio de variables en integrales dobles",
        "Cambio de variables en integrales triples",
        "Justificar los factores r y ρ²senφ con el jacobiano"
      ]
    },
    {
      "id": "integral_superficie_flujo",
      "nombre": "Integral de flujo y orientación",
      "curso": "calculo_multivariable",
      "modulo": "integrales_de_superficie",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Flujo de un campo a traves de una superficie orientada.",
      "puntos_de_conocimiento": [
        "Definir el flujo ∫∫ F·dS = ∫∫ F·n dS",
        "Orientar la superficie (normal hacia afuera o arriba)",
        "Calcular flujo a través de gráficas y superficies cerradas",
        "Interpretar el flujo físicamente"
      ]
    },
    {
      "id": "integral_triple_esfericas",
      "nombre": "Integrales triples en coordenadas esféricas",
      "curso": "calculo_multivariable",
      "modulo": "integrales_triples",
      "nivel": 6,
      "xp": 15,
      "descripcion": "Conversión a esféricas con el factor rho^2 sin(phi).",
      "puntos_de_conocimiento": [
        "Convertir entre coordenadas cartesianas y esféricas",
        "Incluir el jacobiano ρ²senφ en dV",
        "Establecer límites esféricos para esferas y conos",
        "Evaluar integrales triples en esféricas"
      ]
    },
    {
      "id": "lagrange_dos_restricciones",
      "nombre": "Multiplicadores de Lagrange (dos restricciones)",
      "curso": "calculo_multivariable",
      "modulo": "multiplicadores_lagrange",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Optimización con dos restricciones usando dos multiplicadores.",
      "puntos_de_conocimiento": [
        "Plantear grad f = λ grad g + μ grad h",
        "Resolver el sistema con dos restricciones",
        "Interpretar la intersección de superficies de restricción",
        "Aplicaciones con dos restricciones de igualdad"
      ]
    },
    {
      "id": "sintesis_teoremas_calculo_vectorial",
      "nombre": "Síntesis: del TFC a Green, Stokes y la divergencia",
      "curso": "calculo_multivariable",
      "modulo": "teoremas_stokes_divergencia",
      "nivel": 6,
      "xp": 18,
      "descripcion": "Visión unificada de los teoremas fundamentales como el patrón frontera-interior en distintas dimensiones.",
      "puntos_de_conocimiento": [
        "Reconocer el patrón común: integrar una derivada en el interior = evaluar en la frontera",
        "Situar TFC, Green, Stokes y divergencia como casos de un mismo principio",
        "Elegir el teorema adecuado según la dimensión y el tipo de frontera",
        "Resolver un problema mixto combinando varios teoremas"
      ]
    },
    {
      "id": "stokes_aplicaciones_flujo",
      "nombre": "Aplicaciones del teorema de Stokes al flujo",
      "curso": "calculo_multivariable",
      "modulo": "teoremas_stokes_divergencia",
      "nivel": 6,
      "xp": 16,
      "descripcion": "Usar Stokes para cambiar entre circulación en la frontera y flujo del rotacional, eligiendo la superficie conveniente.",
      "puntos_de_conocimiento": [
        "Calcular la circulación de un campo evaluando el flujo del rotacional",
        "Reemplazar una superficie por otra más simple con la misma frontera",
        "Evaluar ∮ F·dr en curvas complicadas usando rot F",
        "Verificar la orientación compatible entre frontera y superficie"
      ]
    },
    {
      "id": "teorema_de_stokes",
      "nombre": "Teorema de Stokes",
      "curso": "calculo_multivariable",
      "modulo": "teoremas_stokes_divergencia",
      "nivel": 6,
      "xp": 17,
      "descripcion": "Relación entre circulación en la frontera y flujo del rotacional sobre la superficie.",
      "puntos_de_conocimiento": [
        "Enunciar el teorema de Stokes y la orientación compatible",
        "Convertir ∮ F·dr en ∫∫ rot F·dS",
        "Elegir la superficie más conveniente con la misma frontera",
        "Reconocer Green como caso particular de Stokes"
      ]
    },
    {
      "id": "teorema_divergencia_gauss",
      "nombre": "Teorema de la divergencia (Gauss)",
      "curso": "calculo_multivariable",
      "modulo": "teoremas_stokes_divergencia",
      "nivel": 6,
      "xp": 17,
      "descripcion": "Relación entre flujo a traves de una superficie cerrada e integral de la divergencia.",
      "puntos_de_conocimiento": [
        "Enunciar el teorema de la divergencia",
        "Convertir el flujo cerrado en ∫∫∫ div F dV",
        "Aplicar a sólidos con coordenadas cilíndricas o esféricas",
        "Aplicaciones físicas (ley de Gauss, flujo neto)"
      ]
    },
    {
      "id": "oli_casos_pequenos",
      "nombre": "Buscar casos pequenos",
      "curso": "olimpiadas",
      "modulo": "oli_estrategia",
      "nivel": 1,
      "xp": 7,
      "descripcion": "Explorar valores pequenos para conjeturar el patrón.",
      "puntos_de_conocimiento": [
        "Calcular los primeros casos a mano",
        "Detectar el patrón o la conjetura emergente",
        "Decidir la tecnica de demostración a partir del patrón"
      ]
    },
    {
      "id": "oli_biyecciones",
      "nombre": "Biyecciones",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Contar un conjunto poniendolo en correspondencia uno a uno con otro.",
      "puntos_de_conocimiento": [
        "Construir una correspondencia uno a uno entre conjuntos",
        "Verificar que la correspondencia es invertible",
        "Sustituir un conteo difícil por uno equivalente fácil"
      ]
    },
    {
      "id": "oli_casillas_basico",
      "nombre": "Principio de casillas basico",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Si hay más objetos que cajas, alguna caja repite.",
      "puntos_de_conocimiento": [
        "Enunciar el principio de Dirichlet con n+1 objetos en n cajas",
        "Identificar las cajas y los objetos en un problema",
        "Concluir que existe una caja con dos o más objetos"
      ]
    },
    {
      "id": "oli_divisibilidad_euclides",
      "nombre": "Divisibilidad y algoritmo de Euclides",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Propiedades de divisibilidad y calculo del MCD por Euclides.",
      "puntos_de_conocimiento": [
        "Aplicar propiedades de divisibilidad y combinaciones lineales",
        "Calcular el MCD con el algoritmo de Euclides",
        "Usar la identidad de Bezout para escribir el MCD"
      ]
    },
    {
      "id": "oli_escribir_solucion_rigurosa",
      "nombre": "Escribir una solución rigurosa",
      "curso": "olimpiadas",
      "modulo": "oli_estrategia",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Redactar una prueba completa, ordenada y sin huecos.",
      "puntos_de_conocimiento": [
        "Separar afirmaciones de justificaciones",
        "Cubrir todos los casos y justificar cada paso",
        "Distinguir lo probado de lo conjeturado y cerrar con la conclusión"
      ]
    },
    {
      "id": "oli_induccion_fuerte",
      "nombre": "Inducción fuerte",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Probar una afirmación usando todos los casos anteriores como hipotesis.",
      "puntos_de_conocimiento": [
        "Distinguir inducción debil de inducción fuerte",
        "Usar todos los casos previos como hipotesis",
        "Elegir y verificar los casos base suficientes"
      ]
    },
    {
      "id": "oli_telescopicas",
      "nombre": "Sumas telescopicas",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Sumas que se colapsan al cancelar terminos consecutivos.",
      "puntos_de_conocimiento": [
        "Reescribir el término general como diferencia consecutiva",
        "Cancelar terminos intermedios de la suma",
        "Aplicar a productos telescopicos"
      ]
    },
    {
      "id": "oli_am_gm",
      "nombre": "Desigualdad AM-GM",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 3,
      "xp": 10,
      "descripcion": "La media aritmética es mayor o igual que la geométrica.",
      "puntos_de_conocimiento": [
        "Enunciar AM-GM para dos y para n terminos",
        "Identificar el caso de igualdad",
        "Acotar sumas y productos con AM-GM"
      ]
    },
    {
      "id": "oli_angulos_dirigidos",
      "nombre": "Ángulos dirigidos",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Ángulos modulo 180 grados que unifican casos de configuración.",
      "puntos_de_conocimiento": [
        "Definir el ángulo dirigido entre rectas modulo 180",
        "Evitar la dependencia de la figura concreta",
        "Reescribir el criterio de conciclicos con ángulos dirigidos"
      ]
    },
    {
      "id": "oli_congruencias",
      "nombre": "Congruencias",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Aritmética modular y clases de residuos.",
      "puntos_de_conocimiento": [
        "Operar sumas y productos modulo n",
        "Resolver congruencias lineales",
        "Hallar el último digito y residuos de potencias"
      ]
    },
    {
      "id": "oli_conteo_doble",
      "nombre": "Conteo doble",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Contar la misma cantidad de dos maneras para obtener una identidad.",
      "puntos_de_conocimiento": [
        "Contar un mismo total de dos formas distintas",
        "Igualar ambos conteos para deducir una identidad",
        "Aplicar a sumas de coeficientes binomiales"
      ]
    },
    {
      "id": "oli_cuadrilateros_ciclicos",
      "nombre": "Cuadrilateros ciclicos",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Criterios para que cuatro puntos esten en una circunferencia.",
      "puntos_de_conocimiento": [
        "Usar ángulos opuestos suplementarios",
        "Usar ángulos inscritos iguales sobre la misma cuerda",
        "Aplicar el teorema de Ptolomeo"
      ]
    },
    {
      "id": "oli_dirichlet_conteo",
      "nombre": "Principio de Dirichlet en conteo",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Combinar casillas con conteo para garantizar estructuras.",
      "puntos_de_conocimiento": [
        "Promediar para garantizar un valor por encima de la media",
        "Combinar casillas con conteo de configuraciones",
        "Garantizar la existencia de un subconjunto con propiedad"
      ]
    },
    {
      "id": "oli_ecuaciones_diofantinas_lineales",
      "nombre": "Ecuaciones diofantinas lineales",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Resolver ax+by=c en enteros.",
      "puntos_de_conocimiento": [
        "Condición de solubilidad con el MCD divide a c",
        "Hallar una solución particular con Euclides extendido",
        "Describir la familia general de soluciones enteras"
      ]
    },
    {
      "id": "oli_ingenieria_inversa",
      "nombre": "Ingenieria inversa del problema",
      "curso": "olimpiadas",
      "modulo": "oli_estrategia",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Trabajar hacia atras desde la conclusión deseada.",
      "puntos_de_conocimiento": [
        "Partir de la conclusión y buscar condiciones suficientes",
        "Reformular el problema en una forma equivalente más simple",
        "Identificar la afirmación clave que cierra el argumento"
      ]
    },
    {
      "id": "oli_paridad_coloraciones",
      "nombre": "Paridad y coloraciones",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Usar paridad y coloreos para probar imposibilidad.",
      "puntos_de_conocimiento": [
        "Argumentos de paridad para descartar configuraciones",
        "Colorear un tablero para contar regiones",
        "Probar que un cubrimiento o recorrido es imposible"
      ]
    },
    {
      "id": "oli_semejanza_razon",
      "nombre": "Semejanza y razón en concurso",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Usar triángulos semejantes para obtener proporciones clave.",
      "puntos_de_conocimiento": [
        "Detectar triángulos semejantes en una figura",
        "Plantear proporciones entre lados correspondientes",
        "Encadenar razones para hallar longitudes"
      ]
    },
    {
      "id": "oli_sustituciones_algebraicas",
      "nombre": "Sustituciones algebraicas",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Cambiar variables para simplificar una expresión o desigualdad.",
      "puntos_de_conocimiento": [
        "Sustituir para normalizar o reducir variables",
        "Usar sustituciones de simetría y homogeneidad",
        "Reconocer cuando una sustitución linealiza el problema"
      ]
    },
    {
      "id": "oli_casillas_avanzado",
      "nombre": "Principio de casillas avanzado",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Versión generalizada: alguna caja tiene al menos el techo de n sobre k objetos.",
      "puntos_de_conocimiento": [
        "Aplicar la cota ceil(n/k) de la versión general",
        "Construir cajas no obvias (residuos, regiones, sumas)",
        "Resolver problemas de existencia con doble casilla"
      ]
    },
    {
      "id": "oli_cauchy_schwarz",
      "nombre": "Desigualdad de Cauchy-Schwarz",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Cota del producto escalar y su forma de Engel (suma de cuadrados sobre).",
      "puntos_de_conocimiento": [
        "Enunciar Cauchy-Schwarz y su caso de igualdad",
        "Aplicar la forma de Engel (Titu) a fracciones",
        "Combinar con AM-GM en desigualdades"
      ]
    },
    {
      "id": "oli_gestion_tiempo_concurso",
      "nombre": "Gestion del tiempo en concurso",
      "curso": "olimpiadas",
      "modulo": "oli_estrategia",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Repartir el tiempo y asegurar puntos parciales.",
      "puntos_de_conocimiento": [
        "Priorizar problemas por dificultad estimada",
        "Asegurar puntos parciales antes de buscar la solución completa",
        "Revisar y verificar antes de entregar"
      ]
    },
    {
      "id": "oli_inclusion_exclusion",
      "nombre": "Inclusión-exclusión",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Contar uniones alternando sumas y restas de intersecciones.",
      "puntos_de_conocimiento": [
        "Aplicar la fórmula para dos y tres conjuntos",
        "Generalizar la alternancia de signos a n conjuntos",
        "Contar desarreglos y elementos sin propiedad"
      ]
    },
    {
      "id": "oli_invariantes",
      "nombre": "Invariantes",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Una cantidad que no cambia bajo las operaciones permitidas.",
      "puntos_de_conocimiento": [
        "Buscar una cantidad conservada por cada movimiento",
        "Usar el invariante para separar estados alcanzables",
        "Probar imposibilidad comparando invariantes inicial y final"
      ]
    },
    {
      "id": "oli_pequeno_fermat",
      "nombre": "Pequeño teorema de Fermat",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Si p es primo y no divide a a, entonces a^(p-1) es congruente a 1 modulo p.",
      "puntos_de_conocimiento": [
        "Enunciar y aplicar el pequeño teorema de Fermat",
        "Reducir exponentes grandes modulo un primo",
        "Introducir la función phi y el teorema de Euler"
      ]
    },
    {
      "id": "oli_polinomios_vieta",
      "nombre": "Polinomios y formulas de Vieta",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Relacionar las raices de un polinomio con sus coeficientes.",
      "puntos_de_conocimiento": [
        "Aplicar las formulas de Vieta para suma y producto de raices",
        "Usar simetría de las raices en sumas de potencias",
        "Construir polinomios a partir de condiciones sobre las raices"
      ]
    },
    {
      "id": "oli_potencia_de_un_punto",
      "nombre": "Potencia de un punto",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Producto constante de distancias desde un punto a una circunferencia.",
      "puntos_de_conocimiento": [
        "Calcular la potencia con secantes y tangentes",
        "Aplicar el criterio de conciclicos por potencia",
        "Introducir el eje radical de dos circunferencias"
      ]
    },
    {
      "id": "oli_recurrencias",
      "nombre": "Recurrencias",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Plantear y resolver relaciones de recurrencia de conteo.",
      "puntos_de_conocimiento": [
        "Plantear la recurrencia desde el problema de conteo",
        "Resolver recurrencias lineales con ecuación caracteristica",
        "Reconocer Fibonacci y Catalan en conteos"
      ]
    },
    {
      "id": "oli_teorema_chino_resto",
      "nombre": "Teorema chino del resto",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Resolver sistemas de congruencias con modulos coprimos.",
      "puntos_de_conocimiento": [
        "Condición de modulos coprimos por pares",
        "Construir la solución combinando congruencias",
        "Reconstruir el residuo único modulo el producto"
      ]
    },
    {
      "id": "oli_teoria_graficas",
      "nombre": "Teoria de graficas (grados y caminos)",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Vértices, aristas, grados y conexidad en problemas de concurso.",
      "puntos_de_conocimiento": [
        "Aplicar el lema del apreton de manos (suma de grados)",
        "Usar conexidad, caminos y ciclos",
        "Modelar relaciones como grafica para contar o decidir"
      ]
    },
    {
      "id": "oli_ceva_menelao",
      "nombre": "Teoremas de Ceva y Menelao",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Condiciones de concurrencia y colinealidad por razones de segmentos.",
      "puntos_de_conocimiento": [
        "Aplicar Ceva para concurrencia de cevianas",
        "Aplicar Menelao para colinealidad de puntos",
        "Manejar las razones con signo"
      ]
    },
    {
      "id": "oli_desigualdades_geometricas",
      "nombre": "Desigualdades geométricas",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Acotar longitudes, areas y ángulos en figuras.",
      "puntos_de_conocimiento": [
        "Aplicar la desigualdad triangular y sus extensiones",
        "Usar AM-GM y Cauchy en cantidades geométricas",
        "Resolver problemas de mínimo y máximo geométrico"
      ]
    },
    {
      "id": "oli_ecuaciones_pell",
      "nombre": "Ecuaciones de Pell (introducción)",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 5,
      "xp": 12,
      "descripcion": "La ecuación x^2 - d y^2 = 1 y sus soluciones.",
      "puntos_de_conocimiento": [
        "Reconocer la forma de la ecuación de Pell",
        "Hallar la solución fundamental por busqueda",
        "Generar nuevas soluciones a partir de la fundamental"
      ]
    },
    {
      "id": "oli_funciones_generadoras",
      "nombre": "Funciones generadoras (introducción)",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Codificar una sucesión en los coeficientes de una serie.",
      "puntos_de_conocimiento": [
        "Asociar una serie de potencias a una sucesión",
        "Multiplicar series para combinar conteos",
        "Extraer el coeficiente que resuelve el problema"
      ]
    },
    {
      "id": "oli_jensen",
      "nombre": "Desigualdad de Jensen",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Desigualdad para funciones convexas y concavas.",
      "puntos_de_conocimiento": [
        "Reconocer convexidad y concavidad de una función",
        "Aplicar Jensen a un promedio ponderado",
        "Recuperar AM-GM y otras desigualdades desde Jensen"
      ]
    },
    {
      "id": "oli_juegos_combinatorios",
      "nombre": "Juegos combinatorios (Nim y estrategia)",
      "curso": "olimpiadas",
      "modulo": "oli_combinatoria",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Posiciones ganadoras y perdedoras en juegos imparciales.",
      "puntos_de_conocimiento": [
        "Clasificar posiciones en ganadoras (N) y perdedoras (P)",
        "Analizar el juego de Nim con la suma XOR",
        "Disenar estrategias por simetría o emparejamiento"
      ]
    },
    {
      "id": "oli_monovariantes",
      "nombre": "Monovariantes",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Una cantidad monotona que garantiza terminación del proceso.",
      "puntos_de_conocimiento": [
        "Definir una cantidad que solo crece o solo decrece",
        "Acotar la monovariante para forzar el fin del proceso",
        "Distinguir monovariante de invariante"
      ]
    },
    {
      "id": "oli_principio_extremal",
      "nombre": "Principio extremal",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Tomar el elemento máximo o mínimo y derivar una contradicción.",
      "puntos_de_conocimiento": [
        "Elegir el objeto extremo (mayor, menor, mas cercano)",
        "Derivar propiedades del caso extremo",
        "Llegar a contradicción o a la configuración optima"
      ]
    },
    {
      "id": "oli_recta_euler_puntos_notables",
      "nombre": "Recta de Euler y puntos notables",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Baricentro, circuncentro, ortocentro y su alineación.",
      "puntos_de_conocimiento": [
        "Ubicar baricentro, circuncentro, ortocentro e incentro",
        "Reconocer la recta de Euler y la razón 2 a 1",
        "Usar la circunferencia de los nueve puntos"
      ]
    },
    {
      "id": "oli_reordenamiento",
      "nombre": "Desigualdad del reordenamiento",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 5,
      "xp": 11,
      "descripcion": "La suma de productos es maxima con ordenaciones iguales.",
      "puntos_de_conocimiento": [
        "Ordenar dos sucesiones del mismo modo para maximizar",
        "Ordenar de modo opuesto para minimizar",
        "Derivar la desigualdad de Chebyshev como corolario"
      ]
    },
    {
      "id": "oli_descenso_infinito",
      "nombre": "Descenso infinito",
      "curso": "olimpiadas",
      "modulo": "oli_tecnicas",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Construir una sucesión decreciente infinita de naturales, lo cual es imposible.",
      "puntos_de_conocimiento": [
        "De una solución construir otra estrictamente menor",
        "Usar la buena ordenación de los naturales",
        "Aplicar descenso a ecuaciones diofantinas y geometría"
      ]
    },
    {
      "id": "oli_ecuaciones_funcionales",
      "nombre": "Ecuaciones funcionales (Cauchy)",
      "curso": "olimpiadas",
      "modulo": "oli_algebra",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Resolver f(x+y)=f(x)+f(y) y variantes.",
      "puntos_de_conocimiento": [
        "Sustituir valores especiales para hallar f(0) y f(1)",
        "Probar inyectividad, sobreyectividad o monotonia",
        "Resolver la ecuación de Cauchy con hipotesis de regularidad"
      ]
    },
    {
      "id": "oli_lte_valuacion_p_adica",
      "nombre": "Valuación p-adica y LTE",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 6,
      "xp": 12,
      "descripcion": "El lema del exponente que eleva (Lifting the Exponent).",
      "puntos_de_conocimiento": [
        "Definir la valuación p-adica v_p(n)",
        "Aplicar el lema LTE a a^n - b^n",
        "Manejar los casos especiales p=2"
      ]
    },
    {
      "id": "oli_orden_raices_primitivas",
      "nombre": "Orden multiplicativo y raices primitivas",
      "curso": "olimpiadas",
      "modulo": "oli_teoria_numeros",
      "nivel": 6,
      "xp": 12,
      "descripcion": "El orden de un elemento y la existencia de raices primitivas.",
      "puntos_de_conocimiento": [
        "Definir el orden multiplicativo modulo n",
        "El orden divide a phi(n)",
        "Reconocer y usar una raíz primitiva"
      ]
    },
    {
      "id": "oli_transformaciones_inversion",
      "nombre": "Transformaciones e inversión (introducción)",
      "curso": "olimpiadas",
      "modulo": "oli_geometria",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Homotecia, rotación e inversión como herramientas de demostración.",
      "puntos_de_conocimiento": [
        "Usar homotecia y rotación para mapear configuraciones",
        "Aplicar inversión para transformar circunferencias en rectas",
        "Elegir el centro y la razón adecuados de la transformación"
      ]
    },
    {
      "id": "al_matriz_aumentada",
      "nombre": "Sistema como matriz aumentada",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 1,
      "xp": 6,
      "descripcion": "Representar un sistema lineal mediante su matriz aumentada.",
      "puntos_de_conocimiento": [
        "Escribir la matriz de coeficientes",
        "Anadir la columna de terminos independientes",
        "Traducir entre sistema y matriz aumentada",
        "Identificar matriz cuadrada y dimensiones"
      ]
    },
    {
      "id": "al_vectores_rn",
      "nombre": "Vectores en R^n",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 1,
      "xp": 6,
      "descripcion": "Definir un vector como n-tupla ordenada y representarlo geometricamente.",
      "puntos_de_conocimiento": [
        "Vector como n-tupla ordenada de números reales",
        "Notación de vector columna y vector renglon",
        "Interpretación geométrica en R^2 y R^3",
        "Vector cero y vectores iguales"
      ]
    },
    {
      "id": "al_combinacion_lineal",
      "nombre": "Combinación lineal",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Expresar un vector como suma de multiplos escalares de otros vectores.",
      "puntos_de_conocimiento": [
        "Definir combinación lineal de un conjunto de vectores",
        "Hallar los coeficientes de una combinación",
        "Plantear una combinación como sistema de ecuaciones",
        "Decidir si un vector es combinación lineal de otros"
      ]
    },
    {
      "id": "al_determinante_2x2_3x3",
      "nombre": "Determinante 2x2 y 3x3",
      "curso": "algebra_lineal",
      "modulo": "al_determinantes",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Calcular determinantes de matrices 2x2 y 3x3.",
      "puntos_de_conocimiento": [
        "Fórmula ad - bc para 2x2",
        "Regla de Sarrus para 3x3",
        "Interpretación como area y volumen con signo",
        "Determinante de la identidad y de matrices triangulares"
      ]
    },
    {
      "id": "al_eliminacion_gaussiana",
      "nombre": "Eliminación gaussiana",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Aplicar operaciones elementales de renglon para llegar a forma escalonada.",
      "puntos_de_conocimiento": [
        "Las tres operaciones elementales de renglon",
        "Crear ceros bajo los pivotes",
        "Llegar a la forma escalonada por renglones",
        "Resolver por sustitución hacia atras"
      ]
    },
    {
      "id": "al_operaciones_matrices",
      "nombre": "Operaciones con matrices",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Sumar, restar y multiplicar matrices por un escalar.",
      "puntos_de_conocimiento": [
        "Suma y resta entrada a entrada",
        "Multiplicación por escalar",
        "Transpuesta de una matriz",
        "Propiedades de las operaciones"
      ]
    },
    {
      "id": "al_suma_escalar_vectores",
      "nombre": "Suma de vectores y multiplo escalar",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Sumar vectores componente a componente y multiplicar por un escalar.",
      "puntos_de_conocimiento": [
        "Suma componente a componente",
        "Multiplicación por un escalar",
        "Regla del paralelogramo",
        "Propiedades (conmutativa, asociativa, distributiva)"
      ]
    },
    {
      "id": "al_axiomas_espacio_vectorial",
      "nombre": "Axiomas de espacio vectorial",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Verificar los axiomas que definen un espacio vectorial abstracto.",
      "puntos_de_conocimiento": [
        "Cerradura bajo suma y producto por escalar",
        "Axiomas de la suma (asociativa, neutro, opuesto)",
        "Axiomas del producto por escalar",
        "Ejemplos: R^n, polinomios, matrices, funciones"
      ]
    },
    {
      "id": "al_conjunto_generador",
      "nombre": "Conjunto generador",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Determinar el espacio generado (span) por un conjunto de vectores.",
      "puntos_de_conocimiento": [
        "Definir el generado (span) de un conjunto",
        "Decidir si un conjunto genera R^n",
        "Interpretar el span geometricamente (recta, plano)",
        "Relacionar generador con consistencia del sistema"
      ]
    },
    {
      "id": "al_definicion_transformacion_lineal",
      "nombre": "Definición de transformación lineal",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Verificar si una función entre espacios es lineal.",
      "puntos_de_conocimiento": [
        "Preserva suma: T(u+v)=T(u)+T(v)",
        "Preserva escalar: T(cu)=cT(u)",
        "T del vector cero es cero",
        "Ejemplos y contraejemplos de linealidad"
      ]
    },
    {
      "id": "al_expansion_cofactores",
      "nombre": "Expansión por cofactores",
      "curso": "algebra_lineal",
      "modulo": "al_determinantes",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Calcular determinantes de orden n por desarrollo de Laplace.",
      "puntos_de_conocimiento": [
        "Definir menor y cofactor",
        "Patron de signos de los cofactores",
        "Expandir a lo largo de un renglon o columna",
        "Elegir la fila o columna con más ceros"
      ]
    },
    {
      "id": "al_forma_escalonada_reducida",
      "nombre": "Forma escalonada reducida",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Llevar una matriz a su forma escalonada reducida por renglones (Gauss-Jordan).",
      "puntos_de_conocimiento": [
        "Pivotes iguales a 1 y únicos en su columna",
        "Eliminar también por encima de los pivotes",
        "Leer la solución directamente",
        "Distinguir variables basicas de libres"
      ]
    },
    {
      "id": "al_independencia_lineal",
      "nombre": "Independencia lineal",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Distinguir conjuntos de vectores linealmente independientes de los dependientes.",
      "puntos_de_conocimiento": [
        "Definir independencia: solo la combinación trivial da cero",
        "Plantear el sistema homogeneo asociado",
        "Decidir dependencia resolviendo el sistema",
        "Interpretar geometricamente la dependencia"
      ]
    },
    {
      "id": "al_matriz_identidad",
      "nombre": "Matriz identidad",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 3,
      "xp": 6,
      "descripcion": "Reconocer la identidad como neutro del producto de matrices.",
      "puntos_de_conocimiento": [
        "Forma de la matriz identidad I_n",
        "AI = IA = A",
        "Papel de la identidad en la inversa",
        "Matrices elementales asociadas a operaciones"
      ]
    },
    {
      "id": "al_norma_ortogonalidad",
      "nombre": "Norma y ortogonalidad",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Calcular la norma y decidir ortogonalidad entre vectores.",
      "puntos_de_conocimiento": [
        "Norma a partir del producto interno",
        "Vectores ortogonales: producto interno cero",
        "Distancia entre vectores",
        "Vector unitario y normalización"
      ]
    },
    {
      "id": "al_producto_interno",
      "nombre": "Producto interno",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Definir el producto punto y sus propiedades en R^n.",
      "puntos_de_conocimiento": [
        "Definir el producto punto en R^n",
        "Propiedades (simetría, bilinealidad, positividad)",
        "Producto interno general y sus axiomas",
        "Calcular productos internos"
      ]
    },
    {
      "id": "al_producto_matrices",
      "nombre": "Producto de matrices",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Multiplicar matrices con la regla renglon por columna.",
      "puntos_de_conocimiento": [
        "Condición de dimensiones compatibles",
        "Regla renglon por columna",
        "No conmutatividad del producto",
        "Producto matriz por vector como combinación lineal"
      ]
    },
    {
      "id": "al_propiedades_determinante",
      "nombre": "Propiedades del determinante",
      "curso": "algebra_lineal",
      "modulo": "al_determinantes",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Usar las propiedades del determinante para simplificar su calculo.",
      "puntos_de_conocimiento": [
        "Efecto de las operaciones de renglon",
        "det(AB) = det(A)det(B)",
        "Determinante de la transpuesta",
        "Determinante cero si hay filas dependientes"
      ]
    },
    {
      "id": "al_rango_matriz",
      "nombre": "Rango de una matriz",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Calcular el rango como número de pivotes y usarlo para clasificar sistemas.",
      "puntos_de_conocimiento": [
        "Rango = número de pivotes",
        "Teorema de Rouche-Frobenius (consistencia)",
        "Relacionar rango y número de incógnitas",
        "Contar grados de libertad de la solución"
      ]
    },
    {
      "id": "al_subespacios",
      "nombre": "Subespacios",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Decidir si un subconjunto es subespacio mediante el criterio de cerradura.",
      "puntos_de_conocimiento": [
        "Criterio de subespacio (cero y cerradura)",
        "Contiene al vector cero",
        "Cerrado bajo combinaciones lineales",
        "Ejemplos: rectas y planos por el origen"
      ]
    },
    {
      "id": "al_base_concepto",
      "nombre": "Base de un espacio",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Reconocer una base como conjunto generador linealmente independiente.",
      "puntos_de_conocimiento": [
        "Base: conjunto generador e independiente",
        "Verificar si un conjunto es base de R^n",
        "Base canonica de R^n",
        "Unicidad de la representación en una base"
      ]
    },
    {
      "id": "al_composicion_transformaciones",
      "nombre": "Composición de transformaciones",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 4,
      "xp": 8,
      "descripcion": "Componer transformaciones lineales mediante el producto de sus matrices.",
      "puntos_de_conocimiento": [
        "Composición corresponde a producto de matrices",
        "Orden de la composición",
        "Componer transformaciones geométricas",
        "No conmutatividad en general"
      ]
    },
    {
      "id": "al_coordenadas_base",
      "nombre": "Coordenadas en una base",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Expresar un vector por su vector de coordenadas respecto a una base.",
      "puntos_de_conocimiento": [
        "Vector de coordenadas en una base ordenada",
        "Resolver el sistema para hallar las coordenadas",
        "Unicidad de las coordenadas",
        "Coordenadas en la base canonica"
      ]
    },
    {
      "id": "al_determinante_invertibilidad",
      "nombre": "Determinante e invertibilidad",
      "curso": "algebra_lineal",
      "modulo": "al_determinantes",
      "nivel": 4,
      "xp": 8,
      "descripcion": "Relacionar determinante distinto de cero con la existencia de inversa.",
      "puntos_de_conocimiento": [
        "A es invertible si y solo si det(A) distinto de cero",
        "det(A^-1) = 1/det(A)",
        "Conexion con rango máximo e independencia",
        "Teorema de la matriz invertible (resumen)"
      ]
    },
    {
      "id": "al_dimension",
      "nombre": "Dimensión",
      "curso": "algebra_lineal",
      "modulo": "al_vectores",
      "nivel": 4,
      "xp": 8,
      "descripcion": "Definir la dimensión como el número de vectores de una base.",
      "puntos_de_conocimiento": [
        "Dimensión = número de vectores de cualquier base",
        "Toda base de un espacio tiene el mismo tamaño",
        "Dimensión de R^n es n",
        "Relación entre dimensión y cardinalidad de un generador"
      ]
    },
    {
      "id": "al_eigenvalores_eigenvectores",
      "nombre": "Eigenvalores y eigenvectores",
      "curso": "algebra_lineal",
      "modulo": "al_eigen",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Definir eigenvalor y eigenvector mediante Av = lambda v.",
      "puntos_de_conocimiento": [
        "Ecuación Av = lambda v",
        "Interpretación geométrica (dirección invariante)",
        "Verificar si un vector es eigenvector",
        "Eigenvalor cero y matrices singulares"
      ]
    },
    {
      "id": "al_espacio_columna_renglon",
      "nombre": "Espacio columna y renglon",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Determinar bases del espacio columna y del espacio renglon de una matriz.",
      "puntos_de_conocimiento": [
        "Espacio columna como generado por las columnas",
        "Base con las columnas pivote",
        "Espacio renglon y su base",
        "Rango = dimensión del espacio columna"
      ]
    },
    {
      "id": "al_espacio_nulo",
      "nombre": "Espacio nulo",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Hallar el espacio nulo de una matriz como solución del sistema homogeneo.",
      "puntos_de_conocimiento": [
        "Definir el núcleo como soluciones de Ax = 0",
        "Hallar una base resolviendo el homogeneo",
        "Relación con variables libres",
        "Dimensión del nulo = nulidad"
      ]
    },
    {
      "id": "al_matriz_asociada",
      "nombre": "Matriz asociada a una transformación",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Construir la matriz estandar de una transformación lineal.",
      "puntos_de_conocimiento": [
        "Columnas como imagenes de la base canonica",
        "Escribir T(x) = Ax",
        "Matrices de transformaciones geométricas (rotación, reflexion)",
        "Matriz respecto a bases dadas"
      ]
    },
    {
      "id": "al_matriz_inversa",
      "nombre": "Matriz inversa",
      "curso": "algebra_lineal",
      "modulo": "al_sistemas_matrices",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Calcular la inversa por Gauss-Jordan y usarla para resolver sistemas.",
      "puntos_de_conocimiento": [
        "Definir A inversa con AA^-1 = I",
        "Calcular la inversa por Gauss-Jordan",
        "Inversa de una matriz 2x2 con fórmula",
        "Resolver Ax = b como x = A^-1 b"
      ]
    },
    {
      "id": "al_nucleo_imagen",
      "nombre": "Núcleo e imagen",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Determinar el núcleo y la imagen de una transformación lineal.",
      "puntos_de_conocimiento": [
        "Núcleo = vectores que van a cero",
        "Imagen = conjunto de salidas alcanzables",
        "Hallar bases del núcleo y de la imagen",
        "Relación con inyectividad y sobreyectividad"
      ]
    },
    {
      "id": "al_proyeccion_ortogonal",
      "nombre": "Proyección ortogonal",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Proyectar un vector sobre otro y sobre un subespacio.",
      "puntos_de_conocimiento": [
        "Fórmula de proyección sobre un vector",
        "Componente paralela y perpendicular",
        "Proyección sobre un subespacio",
        "Interpretación como mejor aproximación"
      ]
    },
    {
      "id": "al_regla_cramer",
      "nombre": "Regla de Cramer",
      "curso": "algebra_lineal",
      "modulo": "al_determinantes",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Resolver sistemas cuadrados con cocientes de determinantes.",
      "puntos_de_conocimiento": [
        "Condición det distinto de cero",
        "Sustituir columnas por el vector de terminos",
        "Calcular cada incógnita como cociente",
        "Limitaciones frente a la eliminación"
      ]
    },
    {
      "id": "al_bases_ortonormales",
      "nombre": "Bases ortonormales",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 5,
      "xp": 9,
      "descripcion": "Usar bases ortonormales para simplificar coordenadas y proyecciones.",
      "puntos_de_conocimiento": [
        "Definir base ortonormal",
        "Coordenadas via productos internos",
        "Ventaja en proyecciones",
        "Verificar ortonormalidad"
      ]
    },
    {
      "id": "al_cambio_de_base",
      "nombre": "Cambio de base",
      "curso": "algebra_lineal",
      "modulo": "al_espacios_vectoriales",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Convertir coordenadas entre bases con la matriz de cambio de base.",
      "puntos_de_conocimiento": [
        "Construir la matriz de cambio de base",
        "Convertir coordenadas de una base a otra",
        "Inversa como cambio de base contrario",
        "Composición de cambios de base"
      ]
    },
    {
      "id": "al_espacios_propios",
      "nombre": "Espacios propios",
      "curso": "algebra_lineal",
      "modulo": "al_eigen",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Hallar el eigenespacio asociado a cada eigenvalor.",
      "puntos_de_conocimiento": [
        "Eigenespacio = núcleo de (A - lambda I)",
        "Hallar una base de cada eigenespacio",
        "Independencia de eigenvectores de distintos eigenvalores",
        "Dimensión del eigenespacio"
      ]
    },
    {
      "id": "al_gram_schmidt",
      "nombre": "Proceso de Gram-Schmidt",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Ortogonalizar una base con el proceso de Gram-Schmidt.",
      "puntos_de_conocimiento": [
        "Restar proyecciones para ortogonalizar",
        "Construir paso a paso una base ortogonal",
        "Normalizar para obtener base ortonormal",
        "Relación con la factorización QR"
      ]
    },
    {
      "id": "al_isomorfismos",
      "nombre": "Isomorfismos",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Reconocer transformaciones biyectivas y espacios isomorfos.",
      "puntos_de_conocimiento": [
        "Isomorfismo = transformación lineal biyectiva",
        "Existencia de la transformación inversa",
        "Espacios de igual dimensión son isomorfos",
        "Conservación de estructura algebraica"
      ]
    },
    {
      "id": "al_matrices_ortogonales",
      "nombre": "Matrices ortogonales",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 5,
      "xp": 9,
      "descripcion": "Reconocer matrices ortogonales y sus propiedades de isometría.",
      "puntos_de_conocimiento": [
        "Columnas ortonormales: Q^T Q = I",
        "Inversa igual a la transpuesta",
        "Preservan norma y ángulos",
        "Determinante igual a +1 o -1"
      ]
    },
    {
      "id": "al_multiplicidad_alg_geom",
      "nombre": "Multiplicidad algebraica y geométrica",
      "curso": "algebra_lineal",
      "modulo": "al_eigen",
      "nivel": 5,
      "xp": 9,
      "descripcion": "Comparar la multiplicidad algebraica y geométrica de un eigenvalor.",
      "puntos_de_conocimiento": [
        "Multiplicidad algebraica como raíz del caracteristico",
        "Multiplicidad geométrica = dim del eigenespacio",
        "Desigualdad geométrica <= algebraica",
        "Conexion con diagonalizabilidad"
      ]
    },
    {
      "id": "al_polinomio_caracteristico",
      "nombre": "Polinomio caracteristico",
      "curso": "algebra_lineal",
      "modulo": "al_eigen",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Hallar eigenvalores como raices de det(A - lambda I) = 0.",
      "puntos_de_conocimiento": [
        "Plantear det(A - lambda I) = 0",
        "Calcular el polinomio caracteristico",
        "Resolver para los eigenvalores",
        "Eigenvalores reales y complejos"
      ]
    },
    {
      "id": "al_teorema_rango_nulidad",
      "nombre": "Teorema de la dimensión (rango-nulidad)",
      "curso": "algebra_lineal",
      "modulo": "al_transformaciones",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Aplicar rango + nulidad = dimensión del dominio.",
      "puntos_de_conocimiento": [
        "Enunciado dim(núcleo) + dim(imagen) = dim dominio",
        "Calcular rango y nulidad de una matriz",
        "Deducir inyectividad o sobreyectividad",
        "Aplicar el teorema a ejemplos"
      ]
    },
    {
      "id": "al_aplicaciones_markov_grafica",
      "nombre": "Aplicaciones: cadenas de Markov y grafos",
      "curso": "algebra_lineal",
      "modulo": "al_aplicaciones",
      "nivel": 6,
      "xp": 11,
      "descripcion": "Aplicar matrices a cadenas de Markov y a matrices de adyacencia de grafos.",
      "puntos_de_conocimiento": [
        "Matriz estocastica y vector de estado",
        "Estado estacionario como eigenvector de lambda = 1",
        "Matriz de adyacencia de un grafo",
        "Conteo de caminos con potencias de la matriz"
      ]
    },
    {
      "id": "al_diagonalizacion",
      "nombre": "Diagonalización",
      "curso": "algebra_lineal",
      "modulo": "al_eigen",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Diagonalizar una matriz como A = PDP^-1 cuando es posible.",
      "puntos_de_conocimiento": [
        "Condición: n eigenvectores independientes",
        "Construir P con eigenvectores y D con eigenvalores",
        "Verificar A = PDP^-1",
        "Calcular potencias A^k con la diagonalización"
      ]
    },
    {
      "id": "al_formas_cuadraticas",
      "nombre": "Formas cuadraticas",
      "curso": "algebra_lineal",
      "modulo": "al_aplicaciones",
      "nivel": 6,
      "xp": 11,
      "descripcion": "Escribir y clasificar formas cuadraticas mediante matrices simetricas.",
      "puntos_de_conocimiento": [
        "Forma cuadratica como x^T A x",
        "Diagonalizar para eliminar terminos cruzados",
        "Clasificar (definida positiva, negativa, indefinida)",
        "Aplicación a conicas y superficies"
      ]
    },
    {
      "id": "al_matrices_simetricas_espectral",
      "nombre": "Matrices simetricas y teorema espectral",
      "curso": "algebra_lineal",
      "modulo": "al_aplicaciones",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Diagonalizar matrices simetricas con una base ortonormal de eigenvectores.",
      "puntos_de_conocimiento": [
        "Eigenvalores reales de matrices simetricas",
        "Eigenvectores ortogonales",
        "Diagonalización ortogonal A = QDQ^T",
        "Enunciado del teorema espectral"
      ]
    },
    {
      "id": "al_minimos_cuadrados",
      "nombre": "Mínimos cuadrados",
      "curso": "algebra_lineal",
      "modulo": "al_ortogonalidad",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Resolver sistemas inconsistentes con la solución de minimos cuadrados.",
      "puntos_de_conocimiento": [
        "Ecuaciones normales A^T A x = A^T b",
        "Interpretación como proyección ortogonal",
        "Ajuste de una recta a datos",
        "Vector y norma del residual"
      ]
    },
    {
      "id": "al_svd_intro",
      "nombre": "Descomposición en valores singulares (intro)",
      "curso": "algebra_lineal",
      "modulo": "al_aplicaciones",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Introducir la SVD A = U Sigma V^T y los valores singulares.",
      "puntos_de_conocimiento": [
        "Valores singulares como raices de eigenvalores de A^T A",
        "Estructura A = U Sigma V^T",
        "Vectores singulares izquierdos y derechos",
        "Aplicación: aproximación de rango bajo"
      ]
    },
    {
      "id": "c4_supremo_infimo",
      "nombre": "Supremo e infimo",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Cotas, supremo e infimo de un conjunto de números reales.",
      "puntos_de_conocimiento": [
        "Cota superior e inferior de un conjunto",
        "Supremo como minima cota superior e infimo como maxima cota inferior",
        "Caracterización epsilon del supremo",
        "Máximo y mínimo frente a supremo e infimo"
      ]
    },
    {
      "id": "c4_axioma_supremo_completitud",
      "nombre": "Axioma del supremo y completitud de R",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 3,
      "xp": 9,
      "descripcion": "El axioma del supremo como propiedad que distingue a R de Q.",
      "puntos_de_conocimiento": [
        "Enunciado del axioma del supremo",
        "Por que Q no es completo",
        "Propiedad arquimediana como consecuencia",
        "Densidad de los racionales en R"
      ]
    },
    {
      "id": "c4_convergencia_puntual",
      "nombre": "Convergencia puntual de sucesiones de funciones",
      "curso": "calculo_4",
      "modulo": "c4_sucesiones_funciones",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Convergencia punto a punto de una sucesión de funciones a una función límite.",
      "puntos_de_conocimiento": [
        "Definición de convergencia puntual",
        "Función límite punto a punto",
        "El N depende del punto x",
        "Ejemplos donde el límite pierde propiedades"
      ]
    },
    {
      "id": "c4_definicion_metrica",
      "nombre": "Definición de metrica",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Axiomas de una metrica y ejemplos de espacios metricos.",
      "puntos_de_conocimiento": [
        "Axiomas de distancia (no negatividad, simetría, triangular)",
        "Metrica euclidiana en R^n",
        "Metricas discreta, del taxista y del supremo",
        "Espacio metrico como par (X, d)"
      ]
    },
    {
      "id": "c4_serie_sumas_parciales_rigurosa",
      "nombre": "Serie y sumas parciales (definición rigurosa)",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Serie como límite de sumas parciales y criterio de Cauchy para series.",
      "puntos_de_conocimiento": [
        "Sucesión de sumas parciales y convergencia de la serie",
        "Criterio del término general que tiende a cero",
        "Criterio de Cauchy para series",
        "Linealidad de series convergentes"
      ]
    },
    {
      "id": "c4_sucesiones_limite_riguroso",
      "nombre": "Límite riguroso de sucesiones (epsilon-N)",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Definición formal epsilon-N de convergencia de una sucesión.",
      "puntos_de_conocimiento": [
        "Definición epsilon-N de límite de sucesión",
        "Unicidad del límite",
        "Sucesiones acotadas y convergencia",
        "Algebra de limites de sucesiones"
      ]
    },
    {
      "id": "c4_bolas_abiertos_cerrados",
      "nombre": "Bolas y conjuntos abiertos y cerrados",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Bolas abiertas, conjuntos abiertos, cerrados, interior y clausura.",
      "puntos_de_conocimiento": [
        "Bola abierta y bola cerrada",
        "Conjunto abierto y conjunto cerrado",
        "Punto interior, de adherencia y de frontera",
        "Interior y clausura de un conjunto"
      ]
    },
    {
      "id": "c4_coeficientes_fourier",
      "nombre": "Coeficientes de Fourier",
      "curso": "calculo_4",
      "modulo": "c4_series_fourier",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Definición de los coeficientes de Fourier y de la serie asociada.",
      "puntos_de_conocimiento": [
        "Formulas de los coeficientes a_n y b_n",
        "Ortogonalidad de senos y cosenos",
        "Serie de Fourier de una función periodica",
        "Forma compleja de la serie de Fourier"
      ]
    },
    {
      "id": "c4_continuidad_metricos",
      "nombre": "Continuidad en espacios metricos",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Continuidad por epsilon-delta, por sucesiones y por preimagenes de abiertos.",
      "puntos_de_conocimiento": [
        "Continuidad epsilon-delta entre espacios metricos",
        "Caracterización por sucesiones",
        "Continuidad via preimagen de abiertos",
        "Continuidad uniforme y homeomorfismos"
      ]
    },
    {
      "id": "c4_contraejemplos_puntual_uniforme",
      "nombre": "Contraejemplos: puntual no uniforme",
      "curso": "calculo_4",
      "modulo": "c4_convergencia_uniforme",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Ejemplos clasicos donde la convergencia es puntual pero no uniforme.",
      "puntos_de_conocimiento": [
        "x^n en [0,1] y discontinuidad del límite",
        "Picos que se mueven y pierden el area",
        "Sucesiones donde el supremo no tiende a cero",
        "Diagnostico via la norma del supremo"
      ]
    },
    {
      "id": "c4_convergencia_absoluta_condicional",
      "nombre": "Convergencia absoluta y condicional",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Distinción entre convergencia absoluta y condicional con criterios finos.",
      "puntos_de_conocimiento": [
        "Convergencia absoluta implica convergencia",
        "Convergencia condicional y series alternantes (Leibniz)",
        "Criterios de Dirichlet y Abel",
        "Ejemplo de la serie armonica alternante"
      ]
    },
    {
      "id": "c4_convergencia_uniforme_def",
      "nombre": "Convergencia uniforme (definición)",
      "curso": "calculo_4",
      "modulo": "c4_sucesiones_funciones",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Definición de convergencia uniforme con N independiente del punto.",
      "puntos_de_conocimiento": [
        "Definición epsilon-N uniforme (N no depende de x)",
        "Norma del supremo y distancia uniforme",
        "Diferencia entre convergencia puntual y uniforme",
        "Interpretación grafica de la banda epsilon"
      ]
    },
    {
      "id": "c4_criterio_cauchy_uniforme",
      "nombre": "Criterio de Cauchy uniforme",
      "curso": "calculo_4",
      "modulo": "c4_sucesiones_funciones",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Condición de Cauchy uniforme para convergencia uniforme.",
      "puntos_de_conocimiento": [
        "Enunciado del criterio de Cauchy uniforme",
        "Equivalencia con la convergencia uniforme",
        "Aplicación a series de funciones",
        "Completitud del espacio de funciones acotadas"
      ]
    },
    {
      "id": "c4_criterios_comparacion_serie",
      "nombre": "Criterios de comparación para series",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Comparación directa y por límite para series de terminos no negativos.",
      "puntos_de_conocimiento": [
        "Comparación directa de series positivas",
        "Comparación por paso al límite",
        "Series de referencia: geométrica y p-serie",
        "Acotación de sumas parciales como criterio"
      ]
    },
    {
      "id": "c4_criterios_razon_raiz_integral",
      "nombre": "Criterios de razón, raíz e integral",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Criterios del cociente, de la raíz de Cauchy y de la integral.",
      "puntos_de_conocimiento": [
        "Criterio del cociente (DAlembert)",
        "Criterio de la raíz (Cauchy)",
        "Criterio de la integral",
        "Casos no concluyentes con límite igual a 1"
      ]
    },
    {
      "id": "c4_limite_superior_inferior",
      "nombre": "Límite superior e inferior",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Limsup y liminf de una sucesión y su relación con la convergencia.",
      "puntos_de_conocimiento": [
        "Definición de limsup y liminf",
        "Limsup como supremo de limites de subsucesiones",
        "Convergencia equivale a limsup igual a liminf",
        "Calculo de limsup y liminf en ejemplos"
      ]
    },
    {
      "id": "c4_radio_de_convergencia",
      "nombre": "Radio de convergencia",
      "curso": "calculo_4",
      "modulo": "c4_series_potencias",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Radio de convergencia de una serie de potencias y fórmula de Cauchy-Hadamard.",
      "puntos_de_conocimiento": [
        "Forma general de una serie de potencias",
        "Fórmula de Cauchy-Hadamard con limsup",
        "Intervalo de convergencia y comportamiento en los extremos",
        "Convergencia uniforme en compactos del interior"
      ]
    },
    {
      "id": "c4_series_seno_coseno",
      "nombre": "Series de seno y coseno (par-impar)",
      "curso": "calculo_4",
      "modulo": "c4_series_fourier",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Desarrollos en serie de senos o cosenos según la paridad de la función.",
      "puntos_de_conocimiento": [
        "Función par produce serie de cosenos",
        "Función impar produce serie de senos",
        "Extensión par e impar a medio intervalo",
        "Simetrías que anulan coeficientes"
      ]
    },
    {
      "id": "c4_subsucesiones_bolzano_weierstrass",
      "nombre": "Subsucesiones y Bolzano-Weierstrass",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Subsucesiones, puntos límite y teorema de Bolzano-Weierstrass.",
      "puntos_de_conocimiento": [
        "Definición de subsucesión y punto límite",
        "Toda subsucesión de una sucesión convergente converge al mismo límite",
        "Teorema de Bolzano-Weierstrass en R",
        "Sucesión acotada con subsucesión convergente"
      ]
    },
    {
      "id": "c4_sucesiones_cauchy",
      "nombre": "Sucesiones de Cauchy",
      "curso": "calculo_4",
      "modulo": "c4_fundamentos_analisis",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Condición de Cauchy y su equivalencia con la convergencia en R.",
      "puntos_de_conocimiento": [
        "Definición de sucesión de Cauchy",
        "Toda sucesión convergente es de Cauchy",
        "Completitud: en R toda sucesión de Cauchy converge",
        "Sucesiones de Cauchy son acotadas"
      ]
    },
    {
      "id": "c4_sucesiones_completitud_metrica",
      "nombre": "Sucesiones y completitud en espacios metricos",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Convergencia y sucesiones de Cauchy en un espacio metrico general.",
      "puntos_de_conocimiento": [
        "Convergencia de sucesiones en un espacio metrico",
        "Sucesiones de Cauchy en (X, d)",
        "Definición de espacio metrico completo",
        "Ejemplos completos e incompletos"
      ]
    },
    {
      "id": "c4_aplicaciones_fourier",
      "nombre": "Aplicaciones de las series de Fourier",
      "curso": "calculo_4",
      "modulo": "c4_series_fourier",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Aplicaciones de Fourier a sumas notables y a ecuaciones clasicas.",
      "puntos_de_conocimiento": [
        "Calcular sumas como la de Basilea",
        "Aproximación de senales periodicas",
        "Idea de separación de variables en calor y onda",
        "Espectro de frecuencias de una senal"
      ]
    },
    {
      "id": "c4_compacidad_intro",
      "nombre": "Compacidad (introducción)",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Compacidad por cubiertas y secuencial, con el teorema de Heine-Borel.",
      "puntos_de_conocimiento": [
        "Compacidad por cubiertas abiertas finitas",
        "Compacidad secuencial en espacios metricos",
        "Teorema de Heine-Borel en R^n",
        "Función continua sobre compacto alcanza máximo y mínimo"
      ]
    },
    {
      "id": "c4_conexidad_intro",
      "nombre": "Conexidad (introducción)",
      "curso": "calculo_4",
      "modulo": "c4_espacios_metricos",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Conjuntos conexos, conexidad por trayectorias y su invariancia continua.",
      "puntos_de_conocimiento": [
        "Definición de espacio conexo",
        "Conexos de la recta real son intervalos",
        "Conexidad por trayectorias",
        "La imagen continua de un conexo es conexa"
      ]
    },
    {
      "id": "c4_continuidad_limite_uniforme",
      "nombre": "Continuidad del límite uniforme",
      "curso": "calculo_4",
      "modulo": "c4_convergencia_uniforme",
      "nivel": 5,
      "xp": 12,
      "descripcion": "El límite uniforme de funciones continuas es continuo.",
      "puntos_de_conocimiento": [
        "Teorema: límite uniforme de funciones continuas es continuo",
        "Argumento epsilon tercios",
        "Intercambio de limites lim lim",
        "El resultado falla con convergencia solo puntual"
      ]
    },
    {
      "id": "c4_convergencia_fourier_dirichlet",
      "nombre": "Convergencia de Fourier (Dirichlet)",
      "curso": "calculo_4",
      "modulo": "c4_series_fourier",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Condiciones de Dirichlet para la convergencia puntual de la serie de Fourier.",
      "puntos_de_conocimiento": [
        "Condiciones de Dirichlet (suave a trozos)",
        "Convergencia al promedio de los limites laterales",
        "Fenomeno de Gibbs en discontinuidades",
        "Convergencia uniforme en intervalos sin saltos"
      ]
    },
    {
      "id": "c4_criterio_m_weierstrass",
      "nombre": "Criterio M de Weierstrass",
      "curso": "calculo_4",
      "modulo": "c4_sucesiones_funciones",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Criterio mayorante de Weierstrass para convergencia uniforme de series.",
      "puntos_de_conocimiento": [
        "Enunciado del criterio M de Weierstrass",
        "Hallar la serie mayorante numerica",
        "Aplicar a series trigonometricas y de potencias",
        "Relación con convergencia absoluta y uniforme"
      ]
    },
    {
      "id": "c4_derivacion_integracion_potencias",
      "nombre": "Derivación e integración de series de potencias",
      "curso": "calculo_4",
      "modulo": "c4_series_potencias",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Una serie de potencias se deriva e integra termino a termino con igual radio.",
      "puntos_de_conocimiento": [
        "El radio se conserva al derivar o integrar",
        "Derivación termino a termino dentro del radio",
        "Integración termino a termino",
        "Suma cerrada de series via derivación o integración"
      ]
    },
    {
      "id": "c4_derivacion_termino_a_termino",
      "nombre": "Derivación termino a termino",
      "curso": "calculo_4",
      "modulo": "c4_convergencia_uniforme",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Condiciones para derivar el límite de una sucesión de funciones.",
      "puntos_de_conocimiento": [
        "Hipotesis: convergencia uniforme de las derivadas",
        "Convergencia en un punto más derivadas uniformes",
        "Teorema de derivación termino a termino",
        "Por que la convergencia uniforme de fn no basta"
      ]
    },
    {
      "id": "c4_funciones_analiticas",
      "nombre": "Funciones analiticas",
      "curso": "calculo_4",
      "modulo": "c4_series_potencias",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Funciones representables localmente por una serie de potencias convergente.",
      "puntos_de_conocimiento": [
        "Definición de función analitica",
        "Una serie de potencias es infinitamente derivable e identifica sus coeficientes",
        "Principio de identidad de series de potencias",
        "Analiticidad implica suavidad pero no al reves"
      ]
    },
    {
      "id": "c4_identidad_parseval",
      "nombre": "Identidad de Parseval",
      "curso": "calculo_4",
      "modulo": "c4_series_fourier",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Relación entre la energia de la función y la suma de cuadrados de sus coeficientes.",
      "puntos_de_conocimiento": [
        "Enunciado de la identidad de Parseval",
        "Interpretación como conservación de energia",
        "Convergencia en media cuadratica (L2)",
        "Sumar series numericas via Parseval"
      ]
    },
    {
      "id": "c4_integracion_termino_a_termino",
      "nombre": "Integración termino a termino",
      "curso": "calculo_4",
      "modulo": "c4_convergencia_uniforme",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Bajo convergencia uniforme se puede integrar el límite termino a termino.",
      "puntos_de_conocimiento": [
        "Intercambio de límite e integral con convergencia uniforme",
        "Integración termino a termino de series uniformes",
        "Cota del error por la norma del supremo",
        "Contraejemplo sin convergencia uniforme"
      ]
    },
    {
      "id": "c4_producto_cauchy",
      "nombre": "Producto de Cauchy de series",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Producto de Cauchy y el teorema de Mertens para convergencia.",
      "puntos_de_conocimiento": [
        "Definición del producto de Cauchy",
        "Teorema de Mertens con una serie absolutamente convergente",
        "Convergencia del producto cuando ambas son absolutas",
        "Contraejemplo con series solo condicionalmente convergentes"
      ]
    },
    {
      "id": "c4_reordenamiento_riemann",
      "nombre": "Reordenamiento de series (teorema de Riemann)",
      "curso": "calculo_4",
      "modulo": "c4_series_numericas",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Como reordenar una serie condicionalmente convergente cambia su suma.",
      "puntos_de_conocimiento": [
        "Reordenamientos no alteran la suma de series absolutamente convergentes",
        "Teorema de reordenamiento de Riemann",
        "Reordenar para obtener cualquier suma o divergencia",
        "Distinción entre suma incondicional y condicional"
      ]
    },
    {
      "id": "c4_serie_taylor_rigurosa",
      "nombre": "Serie de Taylor rigurosa",
      "curso": "calculo_4",
      "modulo": "c4_series_potencias",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Serie de Taylor, residuo y condiciones para que represente a la función.",
      "puntos_de_conocimiento": [
        "Coeficientes de Taylor y residuo de Lagrange",
        "Convergencia del residuo a cero",
        "Función suave no analitica (ejemplo de e^{-1/x^2})",
        "Series de Taylor de funciones elementales"
      ]
    },
    {
      "id": "ed_concepto_edo_solucion",
      "nombre": "Concepto de EDO y solución",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 1,
      "xp": 8,
      "descripcion": "Que es una ecuación diferencial ordinaria y que significa que una función sea solución.",
      "puntos_de_conocimiento": [
        "Distinguir EDO de ecuación algebraica y reconocer su orden",
        "Verificar que una función es solución sustituyendo en la EDO",
        "Solución general con constante frente a solución particular"
      ]
    },
    {
      "id": "ed_campo_de_pendientes",
      "nombre": "Campo de pendientes",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 2,
      "xp": 8,
      "descripcion": "Interpretación geométrica de y'=f(x,y) mediante el campo de pendientes y las curvas solución.",
      "puntos_de_conocimiento": [
        "Trazar segmentos de pendiente a partir de y'=f(x,y)",
        "Bosquejar curvas solución siguiendo el campo de pendientes",
        "Identificar isoclinas y soluciones de equilibrio"
      ]
    },
    {
      "id": "ed_crecimiento_decaimiento",
      "nombre": "Crecimiento y decaimiento",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 2,
      "xp": 9,
      "descripcion": "Modelos dy/dt=ky de crecimiento poblacional y decaimiento radiactivo.",
      "puntos_de_conocimiento": [
        "Plantear el modelo dy/dt=ky a partir del enunciado",
        "Resolver con solución exponencial y constante de tiempo",
        "Calcular vida media y tiempo de duplicación"
      ]
    },
    {
      "id": "ed_variables_separables",
      "nombre": "Variables separables",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 2,
      "xp": 10,
      "descripcion": "Resolver EDO de primer orden separando variables e integrando cada lado.",
      "puntos_de_conocimiento": [
        "Reescribir la EDO en la forma g(y) dy = h(x) dx",
        "Integrar ambos lados y despejar la solución implicita o explicita",
        "Aplicar una condición inicial para hallar la constante"
      ]
    },
    {
      "id": "ed_ecuaciones_exactas",
      "nombre": "Ecuaciones exactas",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Reconocer y resolver M dx + N dy = 0 cuando proviene de una función potencial.",
      "puntos_de_conocimiento": [
        "Probar exactitud con la condición dM/dy = dN/dx",
        "Reconstruir la función potencial F(x,y) por integración parcial",
        "Usar un factor integrante simple para volver exacta la ecuación"
      ]
    },
    {
      "id": "ed_homogenea_coef_constantes",
      "nombre": "EDO lineal homogenea de coeficientes constantes",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Plantear la solución de ay''+by'+cy=0 proponiendo y=e^(rx).",
      "puntos_de_conocimiento": [
        "Reconocer una EDO lineal homogenea de coeficientes constantes",
        "Proponer y=e^(rx) para obtener la ecuación caracteristica",
        "Escribir la solución general como combinación de soluciones base"
      ]
    },
    {
      "id": "ed_laplace_definicion",
      "nombre": "Definición de la transformada de Laplace",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 3,
      "xp": 10,
      "descripcion": "La transformada como integral impropia L{f}(s)=integral de 0 a infinito de e^(-st)f(t) dt.",
      "puntos_de_conocimiento": [
        "Definir la transformada como integral impropia en s",
        "Condiciones de existencia y orden exponencial",
        "Calcular transformadas directamente desde la definición"
      ]
    },
    {
      "id": "ed_laplace_transformadas_basicas",
      "nombre": "Transformadas basicas",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Transformadas de funciones elementales: constantes, potencias, exponenciales y senoidales.",
      "puntos_de_conocimiento": [
        "Transformadas de 1, t^n y e^(at)",
        "Transformadas de seno y coseno",
        "Uso de una tabla de transformadas elementales"
      ]
    },
    {
      "id": "ed_ley_enfriamiento_newton",
      "nombre": "Ley de enfriamiento de Newton",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Modelar la temperatura de un cuerpo con dT/dt=-k(T-Tamb).",
      "puntos_de_conocimiento": [
        "Plantear dT/dt=-k(T-Tamb) y su temperatura de equilibrio",
        "Resolver la EDO lineal o separable resultante",
        "Ajustar k y la constante con datos de temperatura"
      ]
    },
    {
      "id": "ed_lineal_primer_orden_factor_integrante",
      "nombre": "EDO lineal de primer orden y factor integrante",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 3,
      "xp": 11,
      "descripcion": "Resolver y'+p(x)y=q(x) mediante el factor integrante mu=exp(integral de p).",
      "puntos_de_conocimiento": [
        "Llevar la EDO a la forma estandar y'+p(x)y=q(x)",
        "Calcular el factor integrante mu(x)=exp(integral de p(x) dx)",
        "Integrar (mu*y)'=mu*q y despejar y"
      ]
    },
    {
      "id": "ed_principio_superposicion",
      "nombre": "Principio de superposición",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Las combinaciones lineales de soluciones de una EDO lineal homogenea también son solución.",
      "puntos_de_conocimiento": [
        "Combinar soluciones homogeneas en una combinación lineal",
        "Independencia lineal y wronskiano de un conjunto fundamental",
        "Estructura solución general homogenea más particular"
      ]
    },
    {
      "id": "ed_problemas_mezclas",
      "nombre": "Problemas de mezclas",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 3,
      "xp": 10,
      "descripcion": "Modelar la cantidad de soluto en un tanque mediante un balance entrada menos salida.",
      "puntos_de_conocimiento": [
        "Plantear dQ/dt = tasa de entrada - tasa de salida",
        "Expresar la concentración de salida como Q/V",
        "Resolver la EDO lineal y analizar el comportamiento a largo plazo"
      ]
    },
    {
      "id": "ed_circuitos_rlc",
      "nombre": "Circuitos RLC",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Modelar la carga y la corriente en un circuito RLC con una EDO lineal de segundo orden.",
      "puntos_de_conocimiento": [
        "Aplicar la ley de Kirchhoff para obtener LQ''+RQ'+Q/C=E(t)",
        "Analogia entre el circuito RLC y el sistema masa-resorte",
        "Resolver para la carga y derivar la corriente"
      ]
    },
    {
      "id": "ed_coeficientes_indeterminados",
      "nombre": "Coeficientes indeterminados",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Proponer una particular con coeficientes a ajustar para g(x) polinómica, exponencial o trigonometrica.",
      "puntos_de_conocimiento": [
        "Elegir la forma de prueba según el tipo de g(x)",
        "Multiplicar por x cuando hay traslape con la homogenea",
        "Sustituir y resolver el sistema de coeficientes"
      ]
    },
    {
      "id": "ed_ecuacion_bernoulli",
      "nombre": "Ecuación de Bernoulli",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Reducir y'+p(x)y=q(x)y^n a una EDO lineal mediante la sustitución v=y^(1-n).",
      "puntos_de_conocimiento": [
        "Identificar la forma de Bernoulli y el exponente n",
        "Aplicar la sustitución v=y^(1-n) para linealizar",
        "Resolver la EDO lineal resultante y volver a la variable y"
      ]
    },
    {
      "id": "ed_ecuacion_caracteristica",
      "nombre": "Ecuación caracteristica y tipos de raices",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Construir la solución según raices reales distintas, repetidas o complejas conjugadas.",
      "puntos_de_conocimiento": [
        "Raices reales distintas: combinación de exponenciales",
        "Raíz repetida: factor extra x en la segunda solución",
        "Raices complejas a+-bi: solución con e^(ax) y senos y cosenos"
      ]
    },
    {
      "id": "ed_existencia_unicidad",
      "nombre": "Existencia y unicidad (intro)",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_primer_orden",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Condiciones del teorema de Picard que garantizan una única solución de un PVI.",
      "puntos_de_conocimiento": [
        "Enunciar la hipotesis de continuidad de f y de df/dy",
        "Determinar un intervalo donde la solución existe y es única",
        "Reconocer casos de no unicidad o solución no global"
      ]
    },
    {
      "id": "ed_laplace_inversa",
      "nombre": "Transformada inversa",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Recuperar f(t) a partir de F(s) usando tablas y fracciones parciales.",
      "puntos_de_conocimiento": [
        "Reconocer transformadas inversas desde una tabla",
        "Descomponer F(s) en fracciones parciales",
        "Completar el cuadrado para inversas con senos y cosenos"
      ]
    },
    {
      "id": "ed_laplace_propiedades",
      "nombre": "Propiedades de la transformada",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Linealidad, transformada de derivadas y traslaciones que vuelven util la transformada.",
      "puntos_de_conocimiento": [
        "Linealidad de la transformada",
        "Transformada de la derivada en terminos de condiciones iniciales",
        "Primer teorema de traslación en s"
      ]
    },
    {
      "id": "ed_no_homogenea_estructura",
      "nombre": "EDO lineal no homogenea",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Solución general de ay''+by'+cy=g(x) como suma de la homogenea y una particular.",
      "puntos_de_conocimiento": [
        "Separar la solución en parte homogenea y particular",
        "Reconocer el papel del término forzante g(x)",
        "Imponer condiciones iniciales sobre la solución completa"
      ]
    },
    {
      "id": "ed_oscilador_armonico",
      "nombre": "Oscilador armonico",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 4,
      "xp": 12,
      "descripcion": "Sistema masa-resorte libre, amortiguado y forzado modelado por mx''+cx'+kx=F(t).",
      "puntos_de_conocimiento": [
        "Movimiento libre no amortiguado y frecuencia natural",
        "Casos sub, critico y sobreamortiguado según el discriminante",
        "Respuesta forzada y estado estacionario frente al transitorio"
      ]
    },
    {
      "id": "ed_plano_fase_equilibrios",
      "nombre": "Plano fase y puntos de equilibrio",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_sistemas",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Representar trayectorias en el plano fase y localizar puntos de equilibrio.",
      "puntos_de_conocimiento": [
        "Hallar puntos de equilibrio resolviendo Ax=0",
        "Trazar el retrato de fase con el campo de direcciones",
        "Interpretar trayectorias cerca del equilibrio"
      ]
    },
    {
      "id": "ed_reduccion_de_orden",
      "nombre": "Reducción de orden",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Obtener una segunda solución a partir de una conocida mediante y2=v(x)y1.",
      "puntos_de_conocimiento": [
        "Proponer y2=v(x)y1 con una solución y1 conocida",
        "Reducir la EDO a una de primer orden en v'",
        "Integrar para hallar la segunda solución independiente"
      ]
    },
    {
      "id": "ed_sistemas_lineales",
      "nombre": "Sistemas lineales de EDO",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_sistemas",
      "nivel": 4,
      "xp": 11,
      "descripcion": "Escribir un sistema de EDO de primer orden en forma matricial x'=Ax.",
      "puntos_de_conocimiento": [
        "Convertir EDO de orden superior en un sistema de primer orden",
        "Escribir el sistema en forma matricial x'=Ax+g",
        "Interpretar la solución como una trayectoria vectorial"
      ]
    },
    {
      "id": "ed_clasificacion_equilibrios",
      "nombre": "Clasificación de equilibrios",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_sistemas",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Clasificar nodos, sillas, espirales y centros según los eigenvalores.",
      "puntos_de_conocimiento": [
        "Nodo y silla a partir de eigenvalores reales",
        "Espiral y centro a partir de eigenvalores complejos",
        "Estabilidad según el signo de la parte real"
      ]
    },
    {
      "id": "ed_edp_clasificacion",
      "nombre": "EDP y su clasificación",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_intro_edp",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Que es una EDP y como se clasifican las lineales de segundo orden.",
      "puntos_de_conocimiento": [
        "Distinguir EDP de EDO y reconocer su orden",
        "Clasificar en parabólica, hiperbólica y elíptica",
        "Ejemplos: calor, onda y Laplace"
      ]
    },
    {
      "id": "ed_laplace_convolucion",
      "nombre": "Convolución",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 5,
      "xp": 11,
      "descripcion": "El teorema de convolución para invertir productos de transformadas.",
      "puntos_de_conocimiento": [
        "Definir la convolución (f*g)(t)",
        "Teorema de convolución L{f*g}=F(s)G(s)",
        "Aplicar la convolución para hallar inversas y respuestas"
      ]
    },
    {
      "id": "ed_laplace_escalon_delta",
      "nombre": "Función escalon y delta",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Modelar entradas discontinuas e impulsivas con el escalon de Heaviside y la delta de Dirac.",
      "puntos_de_conocimiento": [
        "Función escalon de Heaviside y segundo teorema de traslación",
        "Transformada de la delta de Dirac",
        "Resolver PVI con forzantes a trozos o impulsivos"
      ]
    },
    {
      "id": "ed_laplace_resolver_pvi",
      "nombre": "Resolver PVI con Laplace",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_laplace",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Transformar un problema de valor inicial en algebra en s y antitransformar.",
      "puntos_de_conocimiento": [
        "Transformar la EDO incorporando las condiciones iniciales",
        "Despejar Y(s) algebraicamente",
        "Antitransformar para obtener y(t)"
      ]
    },
    {
      "id": "ed_metodo_eigenvalores",
      "nombre": "Método de eigenvalores",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_sistemas",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Resolver x'=Ax con eigenvalores y eigenvectores de la matriz A.",
      "puntos_de_conocimiento": [
        "Plantear y resolver el problema de eigenvalores de A",
        "Construir soluciones con eigenvectores reales",
        "Tratar eigenvalores complejos y repetidos"
      ]
    },
    {
      "id": "ed_resonancia",
      "nombre": "Resonancia",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_aplicaciones",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Crecimiento de la amplitud cuando la frecuencia forzante coincide con la natural.",
      "puntos_de_conocimiento": [
        "Identificar la condición de resonancia frecuencia forzante igual a la natural",
        "Aparición del factor t y amplitud creciente sin amortiguamiento",
        "Amplitud maxima y curva de respuesta con amortiguamiento"
      ]
    },
    {
      "id": "ed_series_punto_ordinario",
      "nombre": "Solución en series cerca de un punto ordinario",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_series",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Construir soluciones en serie de potencias alrededor de un punto ordinario.",
      "puntos_de_conocimiento": [
        "Proponer y=suma de a_n (x-x0)^n e identificar un punto ordinario",
        "Obtener la relación de recurrencia para los coeficientes",
        "Escribir las dos soluciones independientes en serie"
      ]
    },
    {
      "id": "ed_series_puntos_singulares",
      "nombre": "Puntos singulares regulares",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_series",
      "nivel": 5,
      "xp": 10,
      "descripcion": "Distinguir puntos singulares regulares e irregulares de una EDO lineal.",
      "puntos_de_conocimiento": [
        "Reconocer puntos singulares de la EDO",
        "Criterio para singularidad regular frente a irregular",
        "Identificar el punto base adecuado para Frobenius"
      ]
    },
    {
      "id": "ed_sistemas_no_homogeneos",
      "nombre": "Sistemas no homogeneos",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_sistemas",
      "nivel": 5,
      "xp": 11,
      "descripcion": "Resolver x'=Ax+g(t) con coeficientes indeterminados o variación de parametros matricial.",
      "puntos_de_conocimiento": [
        "Solución general homogenea más particular en forma vectorial",
        "Coeficientes indeterminados para forzantes simples",
        "Variación de parametros con matriz fundamental"
      ]
    },
    {
      "id": "ed_variacion_parametros",
      "nombre": "Variación de parametros",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_segundo_orden",
      "nivel": 5,
      "xp": 12,
      "descripcion": "Construir una particular usando el wronskiano para cualquier termino forzante g(x).",
      "puntos_de_conocimiento": [
        "Plantear yp=u1 y1 + u2 y2 con funciones a determinar",
        "Calcular el wronskiano del par fundamental",
        "Integrar u1' y u2' para obtener la solución particular"
      ]
    },
    {
      "id": "ed_edp_ecuacion_calor",
      "nombre": "Ecuación de calor",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_intro_edp",
      "nivel": 6,
      "xp": 11,
      "descripcion": "Resolver la ecuación de difusión del calor en una barra con condiciones de frontera.",
      "puntos_de_conocimiento": [
        "Modelo u_t = k u_xx y su interpretación fisica",
        "Solución por separación con condiciones de frontera homogeneas",
        "Decaimiento de los modos con el tiempo"
      ]
    },
    {
      "id": "ed_edp_ecuacion_onda",
      "nombre": "Ecuación de onda",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_intro_edp",
      "nivel": 6,
      "xp": 11,
      "descripcion": "Resolver la ecuación de la cuerda vibrante mediante separación de variables.",
      "puntos_de_conocimiento": [
        "Modelo u_tt = c^2 u_xx de la cuerda vibrante",
        "Modos normales y frecuencias de la cuerda",
        "Solución como superposición de modos"
      ]
    },
    {
      "id": "ed_edp_separacion_variables",
      "nombre": "Separación de variables",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_intro_edp",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Reducir una EDP lineal a EDO proponiendo soluciones producto u(x,t)=X(x)T(t).",
      "puntos_de_conocimiento": [
        "Proponer u(x,t)=X(x)T(t) y separar variables",
        "Obtener dos EDO ligadas por una constante de separación",
        "Plantear el problema de valores propios con las condiciones de frontera"
      ]
    },
    {
      "id": "ed_edp_series_fourier",
      "nombre": "Series de Fourier en EDP",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_intro_edp",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Usar series de Fourier para ajustar condiciones iniciales en problemas de calor y onda.",
      "puntos_de_conocimiento": [
        "Calcular coeficientes de Fourier de senos y cosenos",
        "Representar la condición inicial como serie de Fourier",
        "Construir la solución completa superponiendo los modos"
      ]
    },
    {
      "id": "ed_series_bessel_legendre",
      "nombre": "Ecuaciones de Bessel y Legendre (intro)",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_series",
      "nivel": 6,
      "xp": 11,
      "descripcion": "Introducción a dos EDO clasicas resueltas por series y sus funciones especiales.",
      "puntos_de_conocimiento": [
        "Reconocer la ecuación de Legendre y sus polinomios",
        "Reconocer la ecuación de Bessel y sus funciones",
        "Contexto fisico donde aparecen estas ecuaciones"
      ]
    },
    {
      "id": "ed_series_frobenius",
      "nombre": "Método de Frobenius (intro)",
      "curso": "ecuaciones_diferenciales",
      "modulo": "ed_series",
      "nivel": 6,
      "xp": 12,
      "descripcion": "Soluciones en serie alrededor de un punto singular regular mediante la ecuación indicial.",
      "puntos_de_conocimiento": [
        "Proponer y=(x-x0)^r por suma de a_n (x-x0)^n",
        "Obtener y resolver la ecuación indicial para r",
        "Casos según la diferencia de las raices indiciales"
      ]
    },
    {
      "id": "mu_proposiciones_conectivos",
      "nombre": "Proposiciones y conectivos logicos",
      "curso": "matematicas_utiles",
      "modulo": "mu_razonamiento",
      "nivel": 1,
      "xp": 6,
      "descripcion": "Una proposición es verdadera o falsa; los conectivos las combinan.",
      "puntos_de_conocimiento": [
        "Distinguir una proposición de una opinion o pregunta",
        "Conectar con y, o, no y la condicional",
        "Negar una proposición correctamente"
      ]
    },
    {
      "id": "mu_areas_por_descomposicion",
      "nombre": "Areas por descomposición",
      "curso": "matematicas_utiles",
      "modulo": "mu_geometria_practica",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Calcular areas irregulares partiendolas en figuras conocidas.",
      "puntos_de_conocimiento": [
        "Dividir una figura irregular en partes simples",
        "Sumar y restar areas de las partes",
        "Estimar areas por aproximación con figuras"
      ]
    },
    {
      "id": "mu_cifras_significativas",
      "nombre": "Cifras significativas",
      "curso": "matematicas_utiles",
      "modulo": "mu_estimacion",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Las cifras significativas expresan la precisión real de un dato.",
      "puntos_de_conocimiento": [
        "Contar cifras significativas de un número",
        "No reportar más precisión de la que se midio",
        "Cifras significativas en multiplicación y suma"
      ]
    },
    {
      "id": "mu_contraejemplos",
      "nombre": "Contraejemplos",
      "curso": "matematicas_utiles",
      "modulo": "mu_razonamiento",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Un solo contraejemplo basta para refutar una afirmación universal.",
      "puntos_de_conocimiento": [
        "Refutar un para todo con un solo caso",
        "Construir un contraejemplo mínimo",
        "Distinguir refutar de no poder probar"
      ]
    },
    {
      "id": "mu_conversion_por_factores",
      "nombre": "Conversión por factores unitarios",
      "curso": "matematicas_utiles",
      "modulo": "mu_dimensional",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Multiplicar por razones iguales a uno para cancelar unidades.",
      "puntos_de_conocimiento": [
        "Escribir un factor de conversión igual a uno",
        "Cancelar unidades al multiplicar la cadena",
        "Convertir unidades compuestas (velocidad, densidad)"
      ]
    },
    {
      "id": "mu_cotas_rapidas",
      "nombre": "Cotas rapidas de un calculo",
      "curso": "matematicas_utiles",
      "modulo": "mu_aproximaciones",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Acotar un resultado por arriba y por abajo para validarlo.",
      "puntos_de_conocimiento": [
        "Sustituir por valores extremos para acotar",
        "Dar una cota superior y una inferior",
        "Descartar respuestas fuera del rango razonable"
      ]
    },
    {
      "id": "mu_cuantificadores",
      "nombre": "Cuantificadores: para todo y existe",
      "curso": "matematicas_utiles",
      "modulo": "mu_razonamiento",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Para todo y existe precisan el alcance de una afirmación.",
      "puntos_de_conocimiento": [
        "Leer para todo (universal) y existe (existencial)",
        "Negar un cuantificador (la negación de para todo es existe)",
        "Detectar el cuantificador oculto en frases cotidianas"
      ]
    },
    {
      "id": "mu_leer_interpretar_graficas",
      "nombre": "Leer e interpretar graficas",
      "curso": "matematicas_utiles",
      "modulo": "mu_datos",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Extraer información correcta de una gráfica antes de concluir.",
      "puntos_de_conocimiento": [
        "Leer ejes, unidades y escala de una gráfica",
        "Distinguir tendencia de fluctuación",
        "Extraer un valor puntual de la gráfica"
      ]
    },
    {
      "id": "mu_ordenes_de_magnitud",
      "nombre": "Ordenes de magnitud",
      "curso": "matematicas_utiles",
      "modulo": "mu_estimacion",
      "nivel": 2,
      "xp": 7,
      "descripcion": "El orden de magnitud es la potencia de diez más cercana a un número.",
      "puntos_de_conocimiento": [
        "Expresar una cantidad por su potencia de diez",
        "Comparar dos cantidades por su orden de magnitud",
        "Redondear a la potencia de diez más cercana"
      ]
    },
    {
      "id": "mu_porcentajes_cambios",
      "nombre": "Porcentajes y cambios porcentuales",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Variaciones porcentuales y por que no se suman ni se cancelan.",
      "puntos_de_conocimiento": [
        "Calcular un cambio porcentual entre dos valores",
        "Encadenar dos cambios porcentuales (no se suman)",
        "Por que +20% y luego -20% no regresa al inicio"
      ]
    },
    {
      "id": "mu_probabilidad_bien_entendida",
      "nombre": "Probabilidad basica bien entendida",
      "curso": "matematicas_utiles",
      "modulo": "mu_probabilidad",
      "nivel": 2,
      "xp": 7,
      "descripcion": "La probabilidad mide la frecuencia esperada a largo plazo, no la certeza.",
      "puntos_de_conocimiento": [
        "Interpretar la probabilidad como frecuencia a largo plazo",
        "Distinguir probabilidad de un evento aislado vs muchos",
        "Sumar probabilidades de eventos mutuamente excluyentes"
      ]
    },
    {
      "id": "mu_que_es_escala_log",
      "nombre": "Que es una escala logaritmica",
      "curso": "matematicas_utiles",
      "modulo": "mu_escalas_log",
      "nivel": 2,
      "xp": 7,
      "descripcion": "En una escala logaritmica, pasos iguales representan factores iguales.",
      "puntos_de_conocimiento": [
        "Entender que multiplicar mueve un paso fijo",
        "Leer una escala donde cada marca multiplica por diez",
        "Reconocer cuando conviene una escala logaritmica"
      ]
    },
    {
      "id": "mu_redondeo_inteligente",
      "nombre": "Redondeo inteligente",
      "curso": "matematicas_utiles",
      "modulo": "mu_estimacion",
      "nivel": 2,
      "xp": 6,
      "descripcion": "Redondear a números amables para calcular mentalmente sin perder utilidad.",
      "puntos_de_conocimiento": [
        "Redondear a números faciles antes de operar",
        "Compensar redondeos hacia arriba y hacia abajo",
        "Decidir cuanta precisión necesita la respuesta"
      ]
    },
    {
      "id": "mu_regla_72",
      "nombre": "Regla del 72",
      "curso": "matematicas_utiles",
      "modulo": "mu_aproximaciones",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Dividir 72 entre la tasa estima los anos para duplicar.",
      "puntos_de_conocimiento": [
        "Estimar el tiempo de duplicación como 72 entre la tasa",
        "Aplicarla a interés, inflación o crecimiento",
        "Conocer su rango de validez (tasas moderadas)"
      ]
    },
    {
      "id": "mu_secuencias_patrones",
      "nombre": "Secuencias y patrones",
      "curso": "matematicas_utiles",
      "modulo": "mu_recursion",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Detectar la regla que genera los terminos de una secuencia.",
      "puntos_de_conocimiento": [
        "Identificar el patrón entre terminos consecutivos",
        "Predecir el siguiente termino de una secuencia",
        "Distinguir patrón aditivo de multiplicativo"
      ]
    },
    {
      "id": "mu_unidades_y_dimensiones",
      "nombre": "Unidades y dimensiones",
      "curso": "matematicas_utiles",
      "modulo": "mu_dimensional",
      "nivel": 2,
      "xp": 7,
      "descripcion": "Toda cantidad fisica tiene una unidad y una dimensión asociada.",
      "puntos_de_conocimiento": [
        "Distinguir unidad (metro) de dimensión (longitud)",
        "Asociar magnitudes comunes a sus dimensiones",
        "Reconocer cantidades adimensionales"
      ]
    },
    {
      "id": "mu_acotar_expresiones",
      "nombre": "Acotar expresiones",
      "curso": "matematicas_utiles",
      "modulo": "mu_desigualdades",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Encontrar cotas superiores e inferiores de una expresión.",
      "puntos_de_conocimiento": [
        "Acotar termino a termino una expresión",
        "Sustituir partes por sus valores extremos",
        "Combinar cotas para acotar el total"
      ]
    },
    {
      "id": "mu_aproximacion_lineal_mental",
      "nombre": "Aproximación lineal mental",
      "curso": "matematicas_utiles",
      "modulo": "mu_aproximaciones",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Cerca de un punto conocido, una función se comporta casi como una recta.",
      "puntos_de_conocimiento": [
        "Estimar un valor cercano usando una pendiente local",
        "Aproximar cambios pequenos de forma proporcional",
        "Reconocer cuando la recta deja de servir"
      ]
    },
    {
      "id": "mu_como_enganan_graficas",
      "nombre": "Como enganan las gráficas",
      "curso": "matematicas_utiles",
      "modulo": "mu_datos",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Trucos visuales que distorsionan datos honestos.",
      "puntos_de_conocimiento": [
        "Detectar un eje truncado que exagera diferencias",
        "Reconocer escalas inconsistentes o invertidas",
        "Detectar areas o volumenes que distorsionan la proporción"
      ]
    },
    {
      "id": "mu_correlacion_vs_causa",
      "nombre": "Tendencias y correlación vs causa",
      "curso": "matematicas_utiles",
      "modulo": "mu_datos",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Que dos variables se muevan juntas no implica que una cause la otra.",
      "puntos_de_conocimiento": [
        "Reconocer correlación positiva, negativa o nula",
        "No confundir correlación con causalidad",
        "Identificar una variable de confusión"
      ]
    },
    {
      "id": "mu_crecimiento_exponencial_real",
      "nombre": "Crecimiento exponencial en la realidad",
      "curso": "matematicas_utiles",
      "modulo": "mu_escalas_log",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Por que el crecimiento porcentual constante explota y rompe la intuición.",
      "puntos_de_conocimiento": [
        "Distinguir crecimiento lineal de exponencial",
        "Reconocer la duplicación repetida en datos reales",
        "Detectar cuando un proceso deja de ser exponencial"
      ]
    },
    {
      "id": "mu_decibeles_ph_richter",
      "nombre": "Decibeles, pH y Richter",
      "curso": "matematicas_utiles",
      "modulo": "mu_escalas_log",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Escalas cotidianas que comprimen rangos enormes con logaritmos.",
      "puntos_de_conocimiento": [
        "Interpretar que +1 en la escala significa un factor",
        "Comparar dos valores en decibeles, pH o Richter",
        "Traducir un salto de escala a un factor real"
      ]
    },
    {
      "id": "mu_definicion_recursiva",
      "nombre": "Definición recursiva",
      "curso": "matematicas_utiles",
      "modulo": "mu_recursion",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Definir un término en función de los anteriores más un caso base.",
      "puntos_de_conocimiento": [
        "Escribir un caso base y un paso recursivo",
        "Calcular terminos aplicando la recursión",
        "Reconocer recursión en problemas cotidianos"
      ]
    },
    {
      "id": "mu_desigualdad_triangulo",
      "nombre": "Desigualdad del triángulo",
      "curso": "matematicas_utiles",
      "modulo": "mu_desigualdades",
      "nivel": 3,
      "xp": 8,
      "descripcion": "El valor de una suma nunca supera la suma de los valores absolutos.",
      "puntos_de_conocimiento": [
        "Enunciar |a+b| menor o igual que |a|+|b|",
        "Interpretarla como el camino más corto es la recta",
        "Aplicarla para acotar sumas y distancias"
      ]
    },
    {
      "id": "mu_estimar_raices",
      "nombre": "Estimar raices a mano",
      "curso": "matematicas_utiles",
      "modulo": "mu_aproximaciones",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Acotar una raíz entre cuadrados conocidos y refinar.",
      "puntos_de_conocimiento": [
        "Acotar la raíz entre dos cuadrados perfectos",
        "Interpolar para afinar la estimación",
        "Verificar elevando al cuadrado"
      ]
    },
    {
      "id": "mu_falacias_probabilidad",
      "nombre": "Falacias comunes (jugador y tasa base)",
      "curso": "matematicas_utiles",
      "modulo": "mu_probabilidad",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Errores tipicos al razonar con azar e ignorar la frecuencia base.",
      "puntos_de_conocimiento": [
        "Detectar la falacia del jugador (eventos independientes)",
        "No ignorar la tasa base de un evento",
        "Distinguir correlación aparente de causa"
      ]
    },
    {
      "id": "mu_homogeneidad_dimensional",
      "nombre": "Homogeneidad dimensional",
      "curso": "matematicas_utiles",
      "modulo": "mu_dimensional",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Solo se suman o igualan cantidades con las mismas dimensiones.",
      "puntos_de_conocimiento": [
        "Sumar solo cantidades de igual dimensión",
        "Igualar dimensiones en ambos lados de una ecuación",
        "Detectar una ecuación dimensionalmente imposible"
      ]
    },
    {
      "id": "mu_interes_simple_compuesto",
      "nombre": "Interés simple y compuesto",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 3,
      "xp": 9,
      "descripcion": "El interés compuesto gana sobre los intereses ya generados.",
      "puntos_de_conocimiento": [
        "Distinguir interés simple de compuesto",
        "Calcular un saldo con capitalización periodica",
        "Ver el efecto del tiempo en el interés compuesto"
      ]
    },
    {
      "id": "mu_media_aritmetica_geometrica",
      "nombre": "Media aritmética-geométrica practica",
      "curso": "matematicas_utiles",
      "modulo": "mu_desigualdades",
      "nivel": 3,
      "xp": 9,
      "descripcion": "La media aritmética nunca es menor que la geométrica.",
      "puntos_de_conocimiento": [
        "Comparar media aritmética y geométrica de dos números",
        "Reconocer que la igualdad ocurre cuando son iguales",
        "Usarla para hallar el mínimo de una suma con producto fijo"
      ]
    },
    {
      "id": "mu_media_mediana_moda",
      "nombre": "Media, mediana y moda en contexto",
      "curso": "matematicas_utiles",
      "modulo": "mu_datos",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Cada medida de centro cuenta una historia distinta de los datos.",
      "puntos_de_conocimiento": [
        "Calcular media, mediana y moda",
        "Elegir la medida adecuada según la distribución",
        "Ver por que los valores extremos arrastran la media"
      ]
    },
    {
      "id": "mu_necesaria_vs_suficiente",
      "nombre": "Condición necesaria vs suficiente",
      "curso": "matematicas_utiles",
      "modulo": "mu_razonamiento",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Suficiente garantiza; necesaria es indispensable pero no garantiza.",
      "puntos_de_conocimiento": [
        "Distinguir si A es necesaria, suficiente o ambas para B",
        "Relacionar la condicional con suficiente y necesaria",
        "Evitar confundir implicación con equivalencia"
      ]
    },
    {
      "id": "mu_probabilidad_condicional",
      "nombre": "Probabilidad condicional",
      "curso": "matematicas_utiles",
      "modulo": "mu_probabilidad",
      "nivel": 3,
      "xp": 9,
      "descripcion": "La probabilidad de A dado que ocurrio B cambia el espacio de casos.",
      "puntos_de_conocimiento": [
        "Calcular P(A dado B) restringiendo a los casos con B",
        "Distinguir P(A dado B) de P(B dado A)",
        "Reconocer eventos dependientes e independientes"
      ]
    },
    {
      "id": "mu_problemas_fermi",
      "nombre": "Problemas de Fermi",
      "curso": "matematicas_utiles",
      "modulo": "mu_estimacion",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Estimar cantidades imposibles de medir descomponiendo en factores.",
      "puntos_de_conocimiento": [
        "Descomponer una pregunta grande en factores estimables",
        "Encadenar estimaciones razonables",
        "Aceptar un margen de error de un orden de magnitud"
      ]
    },
    {
      "id": "mu_semejanza_escalas",
      "nombre": "Semejanza y escalas (mapas y planos)",
      "curso": "matematicas_utiles",
      "modulo": "mu_geometria_practica",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Como interpretar escalas y por que el area escala al cuadrado.",
      "puntos_de_conocimiento": [
        "Convertir distancias con la escala de un mapa",
        "Reconocer que el area crece con el cuadrado de la escala",
        "Reconocer que el volumen crece con el cubo"
      ]
    },
    {
      "id": "mu_tasa_efectiva_nominal",
      "nombre": "Tasa efectiva vs nominal",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 3,
      "xp": 8,
      "descripcion": "La capitalización hace que la tasa efectiva supere a la nominal.",
      "puntos_de_conocimiento": [
        "Distinguir tasa nominal de efectiva anual",
        "Convertir una tasa nominal a efectiva",
        "Comparar productos con distinta capitalización"
      ]
    },
    {
      "id": "mu_tipos_demostracion",
      "nombre": "Tipos de demostración",
      "curso": "matematicas_utiles",
      "modulo": "mu_razonamiento",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Directa, contrapositiva y contradicción son tres rutas para probar algo.",
      "puntos_de_conocimiento": [
        "Demostración directa partiendo de la hipotesis",
        "Contrapositiva (probar no-B implica no-A)",
        "Reducción al absurdo o contradicción"
      ]
    },
    {
      "id": "mu_trigonometria_de_campo",
      "nombre": "Trigonometria de campo (alturas y distancias)",
      "curso": "matematicas_utiles",
      "modulo": "mu_geometria_practica",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Medir alturas y distancias inaccesibles con ángulos y razones.",
      "puntos_de_conocimiento": [
        "Medir una altura con un ángulo de elevación",
        "Estimar una distancia con triángulos semejantes",
        "Aplicar seno, coseno y tangente en el terreno"
      ]
    },
    {
      "id": "mu_uno_mas_x_n",
      "nombre": "Aproximación (1+x)^n para x pequeño",
      "curso": "matematicas_utiles",
      "modulo": "mu_aproximaciones",
      "nivel": 3,
      "xp": 8,
      "descripcion": "Para x pequeño, (1+x)^n es casi 1+nx.",
      "puntos_de_conocimiento": [
        "Aplicar (1+x)^n aproximadamente igual a 1+nx",
        "Usarla en intereses y descuentos pequenos",
        "Saber que el error crece si x no es pequeño"
      ]
    },
    {
      "id": "mu_valor_esperado_decisiones",
      "nombre": "Valor esperado en decisiones",
      "curso": "matematicas_utiles",
      "modulo": "mu_probabilidad",
      "nivel": 3,
      "xp": 9,
      "descripcion": "El valor esperado pondera cada resultado por su probabilidad.",
      "puntos_de_conocimiento": [
        "Calcular el valor esperado de una apuesta o decisión",
        "Comparar opciones por su valor esperado",
        "Reconocer cuando el riesgo importa más que el promedio"
      ]
    },
    {
      "id": "mu_valor_presente_futuro",
      "nombre": "Valor presente y futuro",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Un peso hoy vale más que un peso manana; descontar lo cuantifica.",
      "puntos_de_conocimiento": [
        "Llevar un monto futuro a valor presente",
        "Proyectar un monto presente a valor futuro",
        "Comparar flujos en distintos momentos"
      ]
    },
    {
      "id": "mu_verificar_formulas_dimensiones",
      "nombre": "Verificar formulas por dimensiones",
      "curso": "matematicas_utiles",
      "modulo": "mu_dimensional",
      "nivel": 3,
      "xp": 9,
      "descripcion": "Una fórmula correcta debe ser dimensionalmente consistente.",
      "puntos_de_conocimiento": [
        "Sustituir cada variable por su dimensión",
        "Comparar dimensiones de ambos lados",
        "Descartar una fórmula que no cuadra dimensionalmente"
      ]
    },
    {
      "id": "mu_amortizacion_intro",
      "nombre": "Amortización (introducción)",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Como cada pago de un préstamo se reparte entre interés y capital.",
      "puntos_de_conocimiento": [
        "Separar un pago en interés y abono a capital",
        "Entender por que al inicio domina el interés",
        "Leer una tabla de amortización"
      ]
    },
    {
      "id": "mu_analisis_dimensional_buckingham",
      "nombre": "Análisis dimensional (Buckingham intro)",
      "curso": "matematicas_utiles",
      "modulo": "mu_dimensional",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Combinar variables en grupos adimensionales para deducir relaciones.",
      "puntos_de_conocimiento": [
        "Formar un grupo adimensional con las variables",
        "Contar variables y dimensiones independientes",
        "Deducir la forma de una ley salvo una constante"
      ]
    },
    {
      "id": "mu_anualidades",
      "nombre": "Anualidades",
      "curso": "matematicas_utiles",
      "modulo": "mu_finanzas",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Valor de una serie de pagos iguales en el tiempo.",
      "puntos_de_conocimiento": [
        "Reconocer una anualidad como pagos periodicos iguales",
        "Estimar el valor presente de una serie de pagos",
        "Aplicarla a rentas, prestamos y ahorro"
      ]
    },
    {
      "id": "mu_graficas_loglog_semilog",
      "nombre": "Gráficas log-log y semilog",
      "curso": "matematicas_utiles",
      "modulo": "mu_escalas_log",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Ejes logaritmicos convierten potencias y exponenciales en rectas.",
      "puntos_de_conocimiento": [
        "Reconocer que una exponencial es recta en semilog",
        "Reconocer que una potencia es recta en log-log",
        "Estimar el exponente a partir de la pendiente"
      ]
    },
    {
      "id": "mu_induccion_practica",
      "nombre": "Inducción practica",
      "curso": "matematicas_utiles",
      "modulo": "mu_recursion",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Probar para todos los naturales con caso base y paso inductivo.",
      "puntos_de_conocimiento": [
        "Verificar el caso base",
        "Suponer el caso n y probar el caso n+1",
        "Reconocer el efecto domino del argumento"
      ]
    },
    {
      "id": "mu_monotonia_para_comparar",
      "nombre": "Monotonia para comparar",
      "curso": "matematicas_utiles",
      "modulo": "mu_desigualdades",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Una función creciente conserva el orden y permite comparar valores.",
      "puntos_de_conocimiento": [
        "Aplicar la misma función creciente a ambos lados",
        "Usar el logaritmo para comparar potencias",
        "Cuidar que la operación conserve el sentido"
      ]
    },
    {
      "id": "mu_propagacion_errores_intro",
      "nombre": "Propagación de errores (introducción)",
      "curso": "matematicas_utiles",
      "modulo": "mu_estimacion",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Como se acumula la incertidumbre al combinar cantidades inciertas.",
      "puntos_de_conocimiento": [
        "Sumar errores absolutos al sumar cantidades",
        "Sumar errores relativos al multiplicar o dividir",
        "Identificar la variable que domina el error total"
      ]
    },
    {
      "id": "mu_recurrencias_simples",
      "nombre": "Relaciones de recurrencia simples",
      "curso": "matematicas_utiles",
      "modulo": "mu_recursion",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Recurrencias como Fibonacci o crecimiento por etapas.",
      "puntos_de_conocimiento": [
        "Plantear una recurrencia de un problema real",
        "Iterar la recurrencia para obtener valores",
        "Reconocer Fibonacci y el crecimiento geométrico"
      ]
    },
    {
      "id": "mu_regla_bayes_intuitiva",
      "nombre": "Regla de Bayes intuitiva",
      "curso": "matematicas_utiles",
      "modulo": "mu_probabilidad",
      "nivel": 4,
      "xp": 10,
      "descripcion": "Bayes actualiza una creencia previa con nueva evidencia.",
      "puntos_de_conocimiento": [
        "Actualizar una probabilidad previa con evidencia",
        "Razonar con frecuencias naturales en vez de fracciones",
        "Aplicarla a pruebas medicas y falsos positivos"
      ]
    },
    {
      "id": "mu_teorema_de_pick",
      "nombre": "Teorema de Pick",
      "curso": "matematicas_utiles",
      "modulo": "mu_geometria_practica",
      "nivel": 4,
      "xp": 9,
      "descripcion": "Area de un polígono en una retica contando puntos.",
      "puntos_de_conocimiento": [
        "Contar puntos interiores y de borde",
        "Aplicar area igual a interiores más borde medios menos uno",
        "Usarlo para verificar areas en una cuadricula"
      ]
    },
    {
      "id": "fq_retornos_logaritmicos_y_simples",
      "nombre": "Retornos simples y logaritmicos",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 1,
      "xp": 8,
      "descripcion": "PENDIENTE: distinguir retornos simples, log-retornos y su agregación temporal.",
      "puntos_de_conocimiento": [
        "Calcular retorno simple y logaritmico",
        "Convertir entre precio y retorno",
        "Agregar log-retornos en el tiempo",
        "Detectar cuando los retornos simples no se suman"
      ]
    },
    {
      "id": "fq_capitalizacion_continua",
      "nombre": "Capitalización continua y tasa instantánea",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 2,
      "xp": 9,
      "descripcion": "PENDIENTE: usar exponenciales para crecimiento, descuento y tasas instantáneas.",
      "puntos_de_conocimiento": [
        "Pasar de tasa discreta a continua",
        "Usar e^(rt) para crecer y descontar",
        "Interpretar una tasa instantánea",
        "Comparar tasas con distintas frecuencias de capitalización"
      ]
    },
    {
      "id": "fq_descuento_factores_cero",
      "nombre": "Factores de descuento y tasas cero",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 2,
      "xp": 9,
      "descripcion": "PENDIENTE: construir factores de descuento y tasas cero para valuar flujos.",
      "puntos_de_conocimiento": [
        "Definir factor de descuento P(0,T)",
        "Relacionar tasa cero y factor de descuento",
        "Descontar flujos en distintas fechas",
        "Leer una curva cero como precios de dinero futuro"
      ]
    },
    {
      "id": "fq_variable_aleatoria_retornos",
      "nombre": "Retornos como variables aleatorias",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 2,
      "xp": 9,
      "descripcion": "PENDIENTE: modelar retornos como variables aleatorias con distribución.",
      "puntos_de_conocimiento": [
        "Definir el retorno como variable aleatoria",
        "Distinguir muestra observada de distribución subyacente",
        "Calcular media y varianza de retornos",
        "Interpretar P(R > x) en lenguaje financiero"
      ]
    },
    {
      "id": "fq_autocorrelacion_acf_pacf",
      "nombre": "Autocorrelación, ACF y PACF",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 3,
      "xp": 9,
      "descripcion": "PENDIENTE: medir memoria lineal en retornos, volatilidad y senales.",
      "puntos_de_conocimiento": [
        "Calcular autocorrelación a distintos rezagos",
        "Leer ACF y PACF",
        "Distinguir memoria en retornos y en retornos absolutos",
        "Identificar ruido blanco aproximado"
      ]
    },
    {
      "id": "fq_base_rates_priors",
      "nombre": "Base rates y priors en research",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: empezar un problema quant desde tasas base antes de mirar evidencia llamativa.",
      "puntos_de_conocimiento": [
        "Estimar la tasa base de una oportunidad",
        "Separar prior, evidencia y posterior",
        "Evitar sobreponderar casos memorables",
        "Actualizar una creencia sin destruir el prior"
      ]
    },
    {
      "id": "fq_bonos_duracion_convexidad",
      "nombre": "Bonos, duración y convexidad",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: medir sensibilidad de bonos a cambios de tasas.",
      "puntos_de_conocimiento": [
        "Valuar bono como suma de flujos descontados",
        "Calcular duración Macaulay y modificada",
        "Interpretar convexidad",
        "Aproximar cambio de precio por cambios de yield"
      ]
    },
    {
      "id": "fq_calendarios_timezones",
      "nombre": "Calendarios, sesiones y zonas horarias",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: alinear datos por calendario de mercado y timestamps correctos.",
      "puntos_de_conocimiento": [
        "Manejar días festivos y medias sesiones",
        "Convertir timestamps entre zonas horarias",
        "Distinguir fecha local y UTC",
        "Evitar joins que desplazan eventos"
      ]
    },
    {
      "id": "fq_caminata_aleatoria_markov",
      "nombre": "Caminatas aleatorias y cadenas de Markov",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: conectar precios discretos, transiciones y memoria markoviana.",
      "puntos_de_conocimiento": [
        "Definir caminata aleatoria discreta",
        "Construir matriz de transición",
        "Calcular distribución tras n pasos",
        "Distinguir Markov de procesos con memoria larga"
      ]
    },
    {
      "id": "fq_covarianza_correlacion_dependencia",
      "nombre": "Covarianza, correlación y dependencia",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: distinguir dependencia lineal, dependencia no lineal y correlación espuria.",
      "puntos_de_conocimiento": [
        "Calcular covarianza y correlación",
        "Interpretar matriz de covarianza",
        "Distinguir correlación cero de independencia",
        "Reconocer correlación inestable en mercados"
      ]
    },
    {
      "id": "fq_curva_forward_y_par",
      "nombre": "Curvas forward, spot y par",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: conectar tasas spot, forwards implicitos y tasas par.",
      "puntos_de_conocimiento": [
        "Extraer forward implicito de factores de descuento",
        "Distinguir tasa spot, forward y par",
        "Interpretar pendiente de la curva",
        "Ver consistencia entre curvas por no arbitraje"
      ]
    },
    {
      "id": "fq_distribuciones_colas_financieras",
      "nombre": "Distribuciones y colas pesadas",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: comparar normal, t, lognormal y distribuciones con colas pesadas.",
      "puntos_de_conocimiento": [
        "Reconocer colas pesadas frente a normalidad",
        "Usar cuantiles para eventos extremos",
        "Distinguir distribución de precios y de retornos",
        "Explicar por que la varianza puede ser fragil"
      ]
    },
    {
      "id": "fq_estacionariedad_ergodicidad",
      "nombre": "Estacionariedad y ergodicidad",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: saber cuando una serie puede aprenderse desde una sola trayectoria historica.",
      "puntos_de_conocimiento": [
        "Definir estacionariedad debil y estricta",
        "Interpretar ergodicidad como aprendizaje temporal",
        "Detectar cambio de regimen",
        "Explicar por que precios y retornos tienen propiedades distintas"
      ]
    },
    {
      "id": "fq_estimacion_mle_momentos",
      "nombre": "Estimación por maxima verosimilitud y momentos",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: estimar parametros de modelos financieros y cuantificar incertidumbre.",
      "puntos_de_conocimiento": [
        "Plantear una función de verosimilitud",
        "Estimar parametros por maxima verosimilitud",
        "Usar momentos muestrales como estimadores",
        "Comparar sesgo, varianza y consistencia"
      ]
    },
    {
      "id": "fq_fermi_quant_estimacion",
      "nombre": "Estimación Fermi para mercados",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: descomponer cantidades financieras desconocidas en factores estimables.",
      "puntos_de_conocimiento": [
        "Partir una pregunta grande en multiplicadores",
        "Acotar cada factor con ordenes de magnitud",
        "Propagar incertidumbre aproximada",
        "Usar estimación para detectar números absurdos"
      ]
    },
    {
      "id": "fq_forwards_futuros_swaps",
      "nombre": "Forwards, futuros y swaps",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 3,
      "xp": 11,
      "descripcion": "PENDIENTE: valuar contratos lineales y swaps como combinaciones de flujos.",
      "puntos_de_conocimiento": [
        "Valuar un forward por costo de acarreo",
        "Distinguir precio forward y valor del contrato",
        "Construir un swap como cartera de bonos",
        "Calcular tasa fija de equilibrio de un swap"
      ]
    },
    {
      "id": "fq_momentos_cumulantes_asimetria",
      "nombre": "Momentos, cumulantes, skew y kurtosis",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: describir distribuciones financieras más alla de media y varianza.",
      "puntos_de_conocimiento": [
        "Calcular e interpretar momentos",
        "Interpretar asimetria y kurtosis",
        "Relacionar cumulantes con forma de distribución",
        "Detectar limites de resumir riesgo con volatilidad"
      ]
    },
    {
      "id": "fq_no_arbitraje_un_precio",
      "nombre": "No arbitraje y ley de un precio",
      "curso": "finanzas_quant",
      "modulo": "fq_matematica_financiera",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: formular precios consistentes mediante replicación y no arbitraje.",
      "puntos_de_conocimiento": [
        "Definir arbitraje como ganancia sin riesgo ni inversión neta",
        "Aplicar la ley de un precio",
        "Construir argumentos de replicación",
        "Detectar inconsistencias de precios entre instrumentos"
      ]
    },
    {
      "id": "fq_pruebas_hipotesis_financieras",
      "nombre": "Pruebas de hipotesis en finanzas",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: evaluar si un efecto financiero supera ruido estadistico.",
      "puntos_de_conocimiento": [
        "Formular hipotesis nula y alternativa",
        "Calcular estadistico y p-valor",
        "Distinguir significancia estadistica y economica",
        "Reconocer baja potencia y p-hacking"
      ]
    },
    {
      "id": "fq_regresion_lineal_financiera",
      "nombre": "Regresión lineal financiera",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 3,
      "xp": 10,
      "descripcion": "PENDIENTE: ajustar modelos lineales para retornos, betas y factores.",
      "puntos_de_conocimiento": [
        "Estimar coeficientes por minimos cuadrados",
        "Interpretar beta, alfa y residual",
        "Diagnosticar heterocedasticidad y autocorrelación",
        "Separar ajuste predictivo de explicación causal"
      ]
    },
    {
      "id": "fq_arbitraje_portafolio_replicante",
      "nombre": "Portafolio replicante",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: valuar derivados construyendo una cartera que replica sus pagos.",
      "puntos_de_conocimiento": [
        "Definir payoff de un derivado",
        "Construir cartera autofinanciada",
        "Igualar payoff del derivado",
        "Usar replicación para obtener precio único"
      ]
    },
    {
      "id": "fq_arboles_probabilidad_condicional",
      "nombre": "Arboles de probabilidad condicional",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: resolver problemas con información secuencial usando arboles y condicionamiento.",
      "puntos_de_conocimiento": [
        "Construir un arbol de eventos",
        "Actualizar probabilidades tras observar una rama",
        "Evitar confundir P(A|B) con P(B|A)",
        "Aplicar arboles a fills, defaults y senales"
      ]
    },
    {
      "id": "fq_barras_financieras_eventos",
      "nombre": "Barras financieras y muestreo por eventos",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: construir muestras por información, no solo por reloj.",
      "puntos_de_conocimiento": [
        "Distinguir barras de tiempo, tick, volumen y dolar",
        "Explicar por que el tiempo de reloj puede sesgar",
        "Construir eventos por umbral CUSUM",
        "Relacionar muestreo con independencia aproximada"
      ]
    },
    {
      "id": "fq_bid_ask_adverse_selection",
      "nombre": "Spread bid-ask y selección adversa",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: descomponer spread en inventario, costos y información privada.",
      "puntos_de_conocimiento": [
        "Calcular spread cotizado y efectivo",
        "Explicar selección adversa",
        "Distinguir costo de liquidez de movimiento informativo",
        "Relacionar spread con volatilidad y flujo informado"
      ]
    },
    {
      "id": "fq_bootstrap_curva_tasas",
      "nombre": "Bootstrap de curva de tasas",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: construir curva cero desde instrumentos de mercado.",
      "puntos_de_conocimiento": [
        "Usar depositos, FRAs, swaps o bonos",
        "Extraer factores de descuento secuencialmente",
        "Interpolar nodos de la curva",
        "Revisar consistencia por no arbitraje"
      ]
    },
    {
      "id": "fq_bootstrap_financiero",
      "nombre": "Bootstrap financiero y dependencia temporal",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: remuestrear datos financieros sin destruir dependencia temporal.",
      "puntos_de_conocimiento": [
        "Aplicar bootstrap no parametrico basico",
        "Usar block bootstrap para series temporales",
        "Construir intervalos de confianza empiricos",
        "Reconocer limites del remuestreo bajo regimenes cambiantes"
      ]
    },
    {
      "id": "fq_calibracion_probabilistica",
      "nombre": "Calibración probabilistica",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: medir si las probabilidades subjetivas corresponden a frecuencias reales.",
      "puntos_de_conocimiento": [
        "Comparar predicciones del 60% con frecuencia realizada",
        "Usar bins de calibración",
        "Distinguir calibración y discriminación",
        "Registrar pronosticos antes del resultado"
      ]
    },
    {
      "id": "fq_checklist_supuestos_modelo",
      "nombre": "Checklist de supuestos de modelo",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: hacer explicitos los supuestos matematicos, estadisticos y de mercado.",
      "puntos_de_conocimiento": [
        "Listar supuestos de datos",
        "Listar supuestos de distribución",
        "Listar supuestos de ejecución",
        "Marcar cuales supuestos son criticos"
      ]
    },
    {
      "id": "fq_complejidad_big_o_latency",
      "nombre": "Complejidad, Big-O y latencia",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: evaluar costo computacional de algoritmos de research y trading.",
      "puntos_de_conocimiento": [
        "Calcular complejidad temporal y espacial",
        "Distinguir throughput y latencia",
        "Identificar cuellos de botella",
        "Elegir estructura de datos según uso"
      ]
    },
    {
      "id": "fq_corporate_actions_adjustments",
      "nombre": "Corporate actions y ajustes de precio",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: corregir splits, dividendos, spin-offs y retornos totales.",
      "puntos_de_conocimiento": [
        "Distinguir precio ajustado y no ajustado",
        "Aplicar splits correctamente",
        "Incluir dividendos en retorno total",
        "Detectar discontinuidades falsas"
      ]
    },
    {
      "id": "fq_data_lineage_provenance",
      "nombre": "Lineage y provenance de datos",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: rastrear origen, transformaciones y versiones de cada dato usado.",
      "puntos_de_conocimiento": [
        "Registrar fuente y versión del dataset",
        "Documentar transformaciones reproducibles",
        "Guardar checksums o hashes",
        "Reconstruir un resultado desde datos crudos"
      ]
    },
    {
      "id": "fq_diseno_pregunta_research",
      "nombre": "Diseño de pregunta de research",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: convertir intuiciones vagas en preguntas falsables y medibles.",
      "puntos_de_conocimiento": [
        "Escribir hipotesis antes del experimento",
        "Definir universo, horizonte y metrica",
        "Separar criterio de exito y criterio de descarte",
        "Evitar preguntas que no pueden refutarse"
      ]
    },
    {
      "id": "fq_esperanza_condicional",
      "nombre": "Esperanza condicional",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: usar esperanza condicional como proyección de información.",
      "puntos_de_conocimiento": [
        "Calcular E[X | Y] en casos discretos",
        "Interpretar condicionamiento como información disponible",
        "Usar la ley de esperanza total",
        "Relacionar predicción optima con esperanza condicional"
      ]
    },
    {
      "id": "fq_estabilidad_numerica_float",
      "nombre": "Estabilidad numerica y floating point",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: evitar errores numericos silenciosos en optimización, pricing y backtests.",
      "puntos_de_conocimiento": [
        "Reconocer redondeo y cancelación catastrofica",
        "Usar escalamiento numérico",
        "Comparar condicionamiento de matrices",
        "Probar algoritmos con casos extremos"
      ]
    },
    {
      "id": "fq_estimadores_robustos",
      "nombre": "Estimadores robustos de centro y escala",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: usar mediana, MAD y estimadores robustos cuando hay outliers.",
      "puntos_de_conocimiento": [
        "Comparar media y mediana bajo outliers",
        "Calcular MAD como escala robusta",
        "Entender breakdown point",
        "Elegir estimador según distribución y contaminación"
      ]
    },
    {
      "id": "fq_influencia_outliers",
      "nombre": "Influencia de outliers y leverage points",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: medir cuanto una observación extrema cambia un modelo.",
      "puntos_de_conocimiento": [
        "Distinguir outlier en y y punto de alto leverage",
        "Medir influencia sobre una regresión",
        "Comparar winsorizar, truncar y modelar colas",
        "Documentar decisiones sobre datos extremos"
      ]
    },
    {
      "id": "fq_kill_criteria_hypothesis",
      "nombre": "Kill criteria de hipotesis",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: definir de antemano que evidencia mata una senal o estrategia.",
      "puntos_de_conocimiento": [
        "Especificar umbral mínimo de efecto",
        "Definir fallas estadisticas y economicas",
        "Separar pausa por datos insuficientes de refutación",
        "Evitar mover la porteria tras ver resultados"
      ]
    },
    {
      "id": "fq_libro_ordenes_limite",
      "nombre": "Libro de ordenes límite",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: modelar precios como resultado de colas de ordenes y prioridad.",
      "puntos_de_conocimiento": [
        "Distinguir orden limitada y de mercado",
        "Leer bid, ask y profundidad",
        "Interpretar prioridad precio-tiempo",
        "Relacionar liquidez visible con ejecución"
      ]
    },
    {
      "id": "fq_lookahead_bias",
      "nombre": "Look-ahead bias",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: detectar uso accidental de información futura en research y backtests.",
      "puntos_de_conocimiento": [
        "Identificar campos conocidos solo después del trade",
        "Distinguir timestamp de evento y timestamp de disponibilidad",
        "Auditar features con retrasos realistas",
        "Probar que el pipeline no ve el futuro"
      ]
    },
    {
      "id": "fq_media_varianza_markowitz",
      "nombre": "Media-varianza de Markowitz",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: optimizar carteras por retorno esperado y varianza.",
      "puntos_de_conocimiento": [
        "Formular objetivo media-varianza",
        "Usar vector de retornos y matriz de covarianza",
        "Interpretar aversión al riesgo",
        "Reconocer sensibilidad a errores de estimación"
      ]
    },
    {
      "id": "fq_missing_stale_data",
      "nombre": "Datos faltantes y precios stale",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: tratar ausencias, suspensiones y precios que no reflejan negociación real.",
      "puntos_de_conocimiento": [
        "Distinguir cero volumen de dato faltante",
        "Detectar stale prices",
        "Elegir imputación compatible con backtest",
        "Medir sensibilidad a reglas de relleno"
      ]
    },
    {
      "id": "fq_modelo_binomial_opciones",
      "nombre": "Modelo binomial de opciones",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: valuar opciones por arboles discretos y probabilidad neutral al riesgo.",
      "puntos_de_conocimiento": [
        "Construir arbol de precios up/down",
        "Calcular probabilidad neutral al riesgo",
        "Valuar por inducción hacia atras",
        "Comparar opción europea y americana"
      ]
    },
    {
      "id": "fq_modelos_arima_var",
      "nombre": "Modelos ARIMA y VAR",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: modelar dinamica lineal univariada y multivariada.",
      "puntos_de_conocimiento": [
        "Identificar componentes AR, I y MA",
        "Ajustar un ARIMA a una serie estacionaria",
        "Modelar varias series con VAR",
        "Interpretar impulso-respuesta de un VAR"
      ]
    },
    {
      "id": "fq_modelos_factoriales_capm_apt",
      "nombre": "CAPM, APT y modelos factoriales",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: explicar retornos por exposiciones sistematicas.",
      "puntos_de_conocimiento": [
        "Interpretar beta de mercado",
        "Separar retorno sistematico e idiosincratico",
        "Estimar exposiciones factoriales",
        "Distinguir factor de caracteristica"
      ]
    },
    {
      "id": "fq_point_in_time_data",
      "nombre": "Datos point-in-time",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: usar solo datos disponibles en la fecha real de decisión.",
      "puntos_de_conocimiento": [
        "Distinguir fecha efectiva, fecha reportada y fecha disponible",
        "Evitar restatements invisibles",
        "Construir snapshots historicos",
        "Auditar vendors por point-in-time real"
      ]
    },
    {
      "id": "fq_prospect_theory_sesgos",
      "nombre": "Prospect theory y sesgos de decisión",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: reconocer perdida, referencia y sobreponderación de eventos pequenos.",
      "puntos_de_conocimiento": [
        "Distinguir utilidad clasica y prospect theory",
        "Interpretar aversión a perdidas",
        "Detectar anclaje en punto de referencia",
        "Aplicar sesgos a trading discrecional"
      ]
    },
    {
      "id": "fq_puzzles_valor_esperado",
      "nombre": "Puzzles de valor esperado",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: resolver apuestas, juegos y decisiones por valor esperado y distribución completa.",
      "puntos_de_conocimiento": [
        "Enumerar estados posibles",
        "Calcular esperanza por linealidad",
        "Identificar cuando la varianza cambia la decisión",
        "Comparar estrategia miope y estrategia optima"
      ]
    },
    {
      "id": "fq_randomness_reproducible",
      "nombre": "Aleatoriedad reproducible",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: controlar seeds, generadores y reproducibilidad en simulación.",
      "puntos_de_conocimiento": [
        "Fijar y registrar seeds",
        "Distinguir generador pseudoaleatorio y fuente real",
        "Evitar dependencia oculta entre experimentos",
        "Reproducir resultados de simulación exactamente"
      ]
    },
    {
      "id": "fq_regresion_regularizada",
      "nombre": "Regresión regularizada: Ridge, Lasso y Elastic Net",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: controlar overfitting en modelos con muchos predictores.",
      "puntos_de_conocimiento": [
        "Distinguir penalización L1 y L2",
        "Interpretar shrinkage de coeficientes",
        "Elegir lambda con validación temporal",
        "Usar regularización cuando p es grande frente a n"
      ]
    },
    {
      "id": "fq_research_log_reproducible",
      "nombre": "Research log reproducible",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: documentar decisiones, versiones y resultados para reconstruir un experimento.",
      "puntos_de_conocimiento": [
        "Registrar dataset, commit y parametros",
        "Guardar resultados negativos",
        "Distinguir exploración de validación",
        "Permitir que otro reproduzca el experimento"
      ]
    },
    {
      "id": "fq_security_master_symbology",
      "nombre": "Security master y simbologia",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: mantener identificadores historicos robustos frente a cambios de ticker.",
      "puntos_de_conocimiento": [
        "Distinguir ticker, ISIN, CUSIP y permid",
        "Resolver cambios de nombre y ticker",
        "Evitar colisiones de simbolos",
        "Construir universe membership historica"
      ]
    },
    {
      "id": "fq_selection_bias_universos",
      "nombre": "Selection bias en universos",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: evitar seleccionar datos, activos o periodos porque ya se conoce el resultado.",
      "puntos_de_conocimiento": [
        "Definir universo antes de observar outcomes",
        "Separar filtros ex ante y ex post",
        "Detectar cherry-picking de periodos",
        "Registrar reglas de inclusión y exclusión"
      ]
    },
    {
      "id": "fq_survivorship_delisting_bias",
      "nombre": "Survivorship y delisting bias",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: incluir activos muertos, deslistados y datos historicos completos.",
      "puntos_de_conocimiento": [
        "Distinguir universo actual y universo historico",
        "Incluir retornos de delisting",
        "Evitar excluir fracasos invisibles",
        "Medir impacto del sesgo en performance"
      ]
    },
    {
      "id": "fq_tests_no_parametricos",
      "nombre": "Pruebas no parametricas",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: usar pruebas de rangos y permutaciones cuando supuestos normales fallan.",
      "puntos_de_conocimiento": [
        "Aplicar prueba de signos o rangos",
        "Construir prueba de permutación",
        "Interpretar p-valores sin normalidad",
        "Comparar potencia contra pruebas parametricas"
      ]
    },
    {
      "id": "fq_utilidad_esperada_aversion_riesgo",
      "nombre": "Utilidad esperada y aversión al riesgo",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: modelar decisiones donde el promedio no basta por riesgo y convexidad.",
      "puntos_de_conocimiento": [
        "Definir función de utilidad",
        "Comparar utilidad esperada y valor esperado",
        "Interpretar aversión al riesgo",
        "Aplicar concavidad a sizing y seguros"
      ]
    },
    {
      "id": "fq_var_expected_shortfall",
      "nombre": "VaR y Expected Shortfall",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: medir perdidas extremas con cuantiles y cola condicional.",
      "puntos_de_conocimiento": [
        "Calcular VaR historico y parametrico",
        "Calcular Expected Shortfall",
        "Comparar coherencia de medidas de riesgo",
        "Backtestear excepciones de VaR"
      ]
    },
    {
      "id": "fq_vectorizacion_matrices_compute",
      "nombre": "Vectorización y computo matricial",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: convertir loops lentos en operaciones vectorizadas verificables.",
      "puntos_de_conocimiento": [
        "Expresar calculos como operaciones matriciales",
        "Evitar broadcasting accidental",
        "Comparar memoria y velocidad",
        "Verificar equivalencia con implementación simple"
      ]
    },
    {
      "id": "fq_visualizacion_incertidumbre",
      "nombre": "Visualización de incertidumbre",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 4,
      "xp": 12,
      "descripcion": "PENDIENTE: mostrar intervalos, dispersión y escenarios sin ocultar fragilidad.",
      "puntos_de_conocimiento": [
        "Graficar bandas de confianza o credibilidad",
        "Mostrar distribución de outcomes",
        "Evitar graficas con precisión falsa",
        "Comparar escenarios base, bull y bear"
      ]
    },
    {
      "id": "fq_volatilidad_implicita",
      "nombre": "Volatilidad implicita",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 4,
      "xp": 11,
      "descripcion": "PENDIENTE: invertir Black-Scholes para leer la volatilidad que descuenta el mercado.",
      "puntos_de_conocimiento": [
        "Definir volatilidad implicita como parámetro invertido",
        "Resolver IV numericamente",
        "Distinguir IV de volatilidad realizada",
        "Detectar limites de una IV única"
      ]
    },
    {
      "id": "fq_alternative_data_biases",
      "nombre": "Sesgos en alternative data",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: evaluar cobertura, representatividad y drift en datos alternativos.",
      "puntos_de_conocimiento": [
        "Detectar sesgo de cobertura",
        "Medir lag de publicación y revisión",
        "Separar senal de proxy socioeconomico",
        "Auditar estabilidad de proveedor"
      ]
    },
    {
      "id": "fq_auction_theory_markets",
      "nombre": "Auction theory para mercados",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: entender subastas, prioridad y formación de precios en mecanismos de mercado.",
      "puntos_de_conocimiento": [
        "Comparar subastas de primer y segundo precio",
        "Interpretar winner's curse",
        "Relacionar subasta continua con libro de ordenes",
        "Evaluar incentivos de distintos mecanismos"
      ]
    },
    {
      "id": "fq_backtest_overfitting_anatomia",
      "nombre": "Anatomia del backtest overfitting",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: reconocer patrones de sobreajuste que sobreviven a metricas superficiales.",
      "puntos_de_conocimiento": [
        "Detectar exceso de parametros frente a datos",
        "Comparar performance in-sample y out-of-sample",
        "Buscar sensibilidad extrema a hiperparametros",
        "Penalizar complejidad no justificada"
      ]
    },
    {
      "id": "fq_black_litterman",
      "nombre": "Black-Litterman",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: combinar equilibrio de mercado con views probabilisticas.",
      "puntos_de_conocimiento": [
        "Derivar retornos implicitos de mercado",
        "Expresar views absolutas y relativas",
        "Combinar prior y views",
        "Interpretar confianza en cada view"
      ]
    },
    {
      "id": "fq_browniano_movimiento",
      "nombre": "Movimiento browniano",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: usar Browniano como límite continuo de ruido acumulado.",
      "puntos_de_conocimiento": [
        "Definir incrementos independientes y normales",
        "Usar varianza proporcional al tiempo",
        "Entender continuidad pero no derivabilidad",
        "Relacionar Browniano con difusión de precios"
      ]
    },
    {
      "id": "fq_capacity_slippage_model_risk",
      "nombre": "Capacidad, slippage y riesgo de modelo",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: convertir alpha teorico en estrategia implementable con limites de capacidad.",
      "puntos_de_conocimiento": [
        "Estimar slippage por liquidez y participación",
        "Calcular capacidad aproximada de una senal",
        "Distinguir performance antes y después de costos",
        "Auditar riesgo de modelo y degradación fuera de muestra"
      ]
    },
    {
      "id": "fq_causal_inference_finanzas",
      "nombre": "Inferencia causal en finanzas",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: preguntar por mecanismos causales antes de adoptar senales.",
      "puntos_de_conocimiento": [
        "Distinguir predicción, correlación y causalidad",
        "Identificar variables de confusión",
        "Formular un contrafactual financiero",
        "Definir que observación mataria una senal"
      ]
    },
    {
      "id": "fq_cointegracion_vecm",
      "nombre": "Cointegración y VECM",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: detectar relaciones de equilibrio de largo plazo entre precios.",
      "puntos_de_conocimiento": [
        "Distinguir correlación de cointegración",
        "Probar estacionariedad del spread",
        "Construir un modelo de corrección de error",
        "Aplicar cointegración a pares y canastas"
      ]
    },
    {
      "id": "fq_conformal_prediction_finanzas",
      "nombre": "Conformal prediction para intervalos financieros",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: construir intervalos calibrados para predicciones bajo incertidumbre.",
      "puntos_de_conocimiento": [
        "Definir score no conforme",
        "Separar entrenamiento, calibración y test",
        "Construir intervalo con cobertura finita",
        "Adaptar conformal a series temporales con cautela"
      ]
    },
    {
      "id": "fq_costos_transaccion_rebalanceo",
      "nombre": "Costos de transacción y rebalanceo optimo",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: incluir fricción, turnover e inercia en decisiones de cartera.",
      "puntos_de_conocimiento": [
        "Modelar costos lineales y cuadraticos",
        "Medir turnover",
        "Definir banda de no-trade",
        "Comparar beneficio esperado contra costo"
      ]
    },
    {
      "id": "fq_credito_intensidad_default",
      "nombre": "Riesgo de credito por intensidad de default",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: modelar default como tiempo aleatorio con hazard rate.",
      "puntos_de_conocimiento": [
        "Definir intensidad o hazard rate",
        "Calcular supervivencia y probabilidad de default",
        "Valuar bono riesgoso con recuperación",
        "Relacionar spreads de credito con default esperado"
      ]
    },
    {
      "id": "fq_data_snooping_researcher_degrees",
      "nombre": "Data snooping y researcher degrees of freedom",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: contabilizar variantes probadas aunque no lleguen al reporte final.",
      "puntos_de_conocimiento": [
        "Registrar todos los intentos de una investigación",
        "Distinguir hipotesis confirmatoria y exploratoria",
        "Corregir por multiples pruebas",
        "Estimar probabilidad de hallazgo por suerte"
      ]
    },
    {
      "id": "fq_descomposicion_incertidumbre",
      "nombre": "Descomposición de incertidumbre",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: separar incertidumbre aleatoria, parametrica, de modelo y de implementación.",
      "puntos_de_conocimiento": [
        "Distinguir aleatoriedad y error de parámetro",
        "Identificar incertidumbre de especificación",
        "Incluir incertidumbre de datos y ejecución",
        "Comunicar rangos en vez de puntos falsamente precisos"
      ]
    },
    {
      "id": "fq_descomposicion_problemas_janest",
      "nombre": "Descomposición de problemas estilo Jane Street",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: atacar problemas abiertos con supuestos explicitos, casos pequenos y verificación.",
      "puntos_de_conocimiento": [
        "Resolver primero casos extremos y pequenos",
        "Nombrar supuestos antes de optimizar",
        "Buscar una solución aproximada defendible",
        "Verificar unidades, limites y monotonia"
      ]
    },
    {
      "id": "fq_empirical_bayes_shrinkage",
      "nombre": "Empirical Bayes y shrinkage",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: estabilizar estimaciones ruidosas contrayendolas hacia un prior empirico.",
      "puntos_de_conocimiento": [
        "Separar ruido muestral de dispersión real",
        "Contraer estimaciones extremas hacia la media",
        "Aplicar shrinkage a alfas o retornos esperados",
        "Evitar sobreinterpretar campeones por suerte"
      ]
    },
    {
      "id": "fq_feature_importance_financiera",
      "nombre": "Importancia de features en datos financieros",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: interpretar predictores evitando importancia espuria.",
      "puntos_de_conocimiento": [
        "Comparar MDI, MDA y SFI",
        "Detectar colinealidad entre features",
        "Usar importancia fuera de muestra",
        "Separar importancia predictiva de causalidad"
      ]
    },
    {
      "id": "fq_filtraciones_martingalas",
      "nombre": "Filtraciones y martingalas",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: formalizar información disponible y procesos sin drift predecible.",
      "puntos_de_conocimiento": [
        "Definir filtración como información acumulada",
        "Reconocer proceso adaptado",
        "Definir martingala por esperanza condicional",
        "Relacionar precios descontados con martingalas"
      ]
    },
    {
      "id": "fq_formula_black_scholes_greeks",
      "nombre": "Fórmula Black-Scholes y griegas",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: usar la fórmula cerrada y sensibilidades de opciones vanilla.",
      "puntos_de_conocimiento": [
        "Calcular precio de call y put europea",
        "Interpretar delta, gamma, vega, theta y rho",
        "Usar paridad put-call",
        "Relacionar griegas con gestion dinamica de riesgo"
      ]
    },
    {
      "id": "fq_frontera_eficiente_restricciones",
      "nombre": "Frontera eficiente con restricciones",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: construir carteras eficientes bajo limites reales.",
      "puntos_de_conocimiento": [
        "Trazar frontera eficiente",
        "Agregar restricción long-only o leverage",
        "Incluir limites por activo y sector",
        "Comparar frontera teorica y frontera implementable"
      ]
    },
    {
      "id": "fq_garch_volatilidad_condicional",
      "nombre": "ARCH, GARCH y volatilidad condicional",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: modelar clustering de volatilidad y varianza condicional.",
      "puntos_de_conocimiento": [
        "Reconocer heterocedasticidad condicional",
        "Plantear un GARCH(1,1)",
        "Estimar volatilidad condicional",
        "Comparar volatilidad realizada e implicita"
      ]
    },
    {
      "id": "fq_inferencia_bayesiana_financiera",
      "nombre": "Inferencia bayesiana financiera",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_inferencia",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: actualizar creencias sobre parametros, retornos y riesgos con evidencia.",
      "puntos_de_conocimiento": [
        "Escribir prior, likelihood y posterior",
        "Interpretar distribución posterior de un parámetro",
        "Usar shrinkage bayesiano para estimar retornos",
        "Distinguir incertidumbre parametrica de ruido de mercado"
      ]
    },
    {
      "id": "fq_informacion_entropia_mutua",
      "nombre": "Entropia e información mutua",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: medir dependencia no lineal y contenido informativo de senales.",
      "puntos_de_conocimiento": [
        "Definir entropia de una distribución",
        "Interpretar información mutua",
        "Comparar correlación e información mutua",
        "Usar información para filtrar features redundantes"
      ]
    },
    {
      "id": "fq_juegos_order_flow",
      "nombre": "Juegos de order flow",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: ver mercados como interacción estrategica entre participantes informados y liquidez.",
      "puntos_de_conocimiento": [
        "Identificar jugadores y pagos",
        "Modelar información privada",
        "Razonar sobre respuesta de market makers",
        "Conectar equilibrio con spread y profundidad"
      ]
    },
    {
      "id": "fq_kalman_state_space",
      "nombre": "Modelos de espacio de estados y filtro de Kalman",
      "curso": "finanzas_quant",
      "modulo": "fq_series_tiempo",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: estimar estados latentes como tendencia, beta dinamica o spread oculto.",
      "puntos_de_conocimiento": [
        "Distinguir ecuación de estado y observación",
        "Aplicar predicción y actualización de Kalman",
        "Estimar beta dinamica",
        "Modelar ruido de proceso y ruido de medición"
      ]
    },
    {
      "id": "fq_kelly_risk_of_ruin",
      "nombre": "Kelly, crecimiento logaritmico y riesgo de ruina",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: dimensionar apuestas por crecimiento esperado y supervivencia.",
      "puntos_de_conocimiento": [
        "Maximizar esperanza de log riqueza",
        "Calcular fracción Kelly en apuestas simples",
        "Aplicar fraccionamiento de Kelly",
        "Distinguir crecimiento optimo de tolerancia a drawdown"
      ]
    },
    {
      "id": "fq_limpieza_tick_data",
      "nombre": "Limpieza de tick data",
      "curso": "finanzas_quant",
      "modulo": "fq_datos_financieros",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: limpiar trades y quotes de alta frecuencia antes de modelar.",
      "puntos_de_conocimiento": [
        "Filtrar quotes cruzadas o negativas",
        "Detectar trades fuera de secuencia",
        "Alinear trades con NBBO",
        "Documentar reglas de limpieza"
      ]
    },
    {
      "id": "fq_modelos_corto_plazo_tasas",
      "nombre": "Modelos de tasa corta: Vasicek y CIR",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: modelar la tasa corta con reversión a la media.",
      "puntos_de_conocimiento": [
        "Escribir dinamica Vasicek y CIR",
        "Interpretar velocidad de reversión, media y volatilidad",
        "Calcular precio de bono affine en casos basicos",
        "Comparar posibilidad de tasas negativas"
      ]
    },
    {
      "id": "fq_monte_carlo_variance_reduction",
      "nombre": "Monte Carlo y reducción de varianza",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: estimar expectativas con simulación eficiente y error cuantificado.",
      "puntos_de_conocimiento": [
        "Calcular error estandar de Monte Carlo",
        "Usar variables antiteticas",
        "Usar control variates",
        "Separar error de discretización y error de simulación"
      ]
    },
    {
      "id": "fq_optimizacion_convexa_finanzas",
      "nombre": "Optimización convexa en finanzas",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: formular problemas financieros convexos con restricciones.",
      "puntos_de_conocimiento": [
        "Distinguir función convexa y conjunto convexo",
        "Plantear restricción lineal y de norma",
        "Usar condiciones KKT",
        "Reconocer cuando un optimo local es global"
      ]
    },
    {
      "id": "fq_order_flow_imbalance",
      "nombre": "Order Flow Imbalance",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: medir presión neta de compra/venta desde cambios del libro.",
      "puntos_de_conocimiento": [
        "Calcular imbalance por niveles del libro",
        "Distinguir trade imbalance y order book imbalance",
        "Relacionar OFI con cambios de precio",
        "Controlar normalización por liquidez"
      ]
    },
    {
      "id": "fq_pca_matriz_covarianza",
      "nombre": "PCA y limpieza de matriz de covarianza",
      "curso": "finanzas_quant",
      "modulo": "fq_portafolios_riesgo",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: extraer factores estadisticos y estabilizar covarianzas.",
      "puntos_de_conocimiento": [
        "Aplicar PCA a retornos normalizados",
        "Interpretar componentes principales",
        "Filtrar ruido de eigenvalores pequenos",
        "Reconocer riesgo de inestabilidad fuera de muestra"
      ]
    },
    {
      "id": "fq_pensamiento_adversarial",
      "nombre": "Pensamiento adversarial",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: analizar quien pierde si una estrategia gana y como puede cambiar el entorno.",
      "puntos_de_conocimiento": [
        "Preguntar quien esta al otro lado del trade",
        "Separar edge estructural de error transitorio",
        "Anticipar crowding y respuesta competitiva",
        "Buscar el mecanismo que mata la senal"
      ]
    },
    {
      "id": "fq_prediction_markets_scoring",
      "nombre": "Prediction markets y scoring rules",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: disenar incentivos para revelar probabilidades honestas.",
      "puntos_de_conocimiento": [
        "Definir scoring rule propia",
        "Comparar log score y Brier score",
        "Relacionar mercados predictivos con probabilidades implicitas",
        "Evitar incentivos para reportar mal"
      ]
    },
    {
      "id": "fq_programacion_cuadratica_portafolios",
      "nombre": "Programación cuadratica de portafolios",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: resolver asignación de cartera con objetivo cuadratico.",
      "puntos_de_conocimiento": [
        "Escribir objetivo cuadratico de varianza",
        "Agregar restricciones de pesos",
        "Interpretar multiplicadores de Lagrange",
        "Resolver casos pequenos por KKT"
      ]
    },
    {
      "id": "fq_purged_cv_embargo",
      "nombre": "Purged cross-validation y embargo",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: validar modelos cuando labels se solapan en el tiempo.",
      "puntos_de_conocimiento": [
        "Detectar leakage por solapamiento temporal",
        "Purgar observaciones contaminadas",
        "Aplicar embargo después del test",
        "Comparar k-fold normal con purged CV"
      ]
    },
    {
      "id": "fq_red_team_research",
      "nombre": "Red team de research quant",
      "curso": "finanzas_quant",
      "modulo": "fq_comunicacion_rigor",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: revisar una investigación buscando activamente fallas antes de deploy.",
      "puntos_de_conocimiento": [
        "Atacar supuestos principales",
        "Buscar fuentes de leakage",
        "Reproducir metricas clave desde cero",
        "Escribir contraargumento y bear case tecnico"
      ]
    },
    {
      "id": "fq_regime_shift_no_estacionariedad",
      "nombre": "Regime shift y no estacionariedad",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: evaluar cuando una relación historica deja de ser explotable.",
      "puntos_de_conocimiento": [
        "Detectar cambio estructural",
        "Separar decay de alpha y ruido normal",
        "Evaluar robustez por subperiodos",
        "Definir kill switch de regimen"
      ]
    },
    {
      "id": "fq_regresion_cuantilica",
      "nombre": "Regresión cuantílica",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: modelar cuantiles condicionales en vez de solo media condicional.",
      "puntos_de_conocimiento": [
        "Interpretar el cuantil condicional",
        "Comparar regresión de media y de mediana",
        "Estimar efectos en colas",
        "Aplicar a riesgo downside y liquidez"
      ]
    },
    {
      "id": "fq_reservoir_sampling",
      "nombre": "Reservoir sampling",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: muestrear uniformemente de flujos de datos grandes o infinitos.",
      "puntos_de_conocimiento": [
        "Mantener muestra de tamaño fijo",
        "Probar probabilidad uniforme de inclusión",
        "Aplicar a logs y ticks masivos",
        "Distinguir muestreo uniforme de muestreo ponderado"
      ]
    },
    {
      "id": "fq_simetria_invariantes_problemas",
      "nombre": "Simetría e invariantes en problemas quant",
      "curso": "finanzas_quant",
      "modulo": "fq_pensamiento_quant",
      "nivel": 5,
      "xp": 12,
      "descripcion": "PENDIENTE: encontrar cantidades conservadas o simetrías que simplifican problemas dificiles.",
      "puntos_de_conocimiento": [
        "Buscar simetría antes de calcular",
        "Detectar invariantes bajo transformaciones",
        "Reducir casos equivalentes",
        "Usar invariantes para verificar una solución"
      ]
    },
    {
      "id": "fq_streaming_statistics_online",
      "nombre": "Estadistica online y streaming",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: actualizar medias, varianzas y modelos sin recalcular todo el historico.",
      "puntos_de_conocimiento": [
        "Actualizar media y varianza online",
        "Usar ventanas rodantes eficientemente",
        "Controlar estabilidad numerica",
        "Aplicar a datos intradia en vivo"
      ]
    },
    {
      "id": "fq_superficie_volatilidad_smile",
      "nombre": "Smile, skew y superficie de volatilidad",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: mapear volatilidad implicita por strike y vencimiento.",
      "puntos_de_conocimiento": [
        "Leer smile y skew por strike",
        "Leer estructura temporal de IV",
        "Interpolar una superficie de volatilidad",
        "Relacionar skew con demanda de protección y colas"
      ]
    },
    {
      "id": "fq_target_leakage_features",
      "nombre": "Target leakage en features",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: detectar predictores que contienen directa o indirectamente la variable objetivo.",
      "puntos_de_conocimiento": [
        "Mapear causalidad temporal feature-target",
        "Buscar agregados calculados con datos futuros",
        "Auditar normalizaciones globales",
        "Eliminar proxies contaminados"
      ]
    },
    {
      "id": "fq_triple_barrier_labeling",
      "nombre": "Triple Barrier Method",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 5,
      "xp": 13,
      "descripcion": "PENDIENTE: etiquetar eventos por toma de profit, stop y límite temporal.",
      "puntos_de_conocimiento": [
        "Definir barrera superior, inferior y vertical",
        "Etiquetar outcome por primera barrera tocada",
        "Ajustar barreras por volatilidad",
        "Evitar labels con horizonte fijo arbitrario"
      ]
    },
    {
      "id": "fq_bayesian_games_asimetria",
      "nombre": "Juegos bayesianos e información asimetrica",
      "curso": "finanzas_quant",
      "modulo": "fq_decision_juegos",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: razonar con tipos ocultos, senales privadas y creencias estrategicas.",
      "puntos_de_conocimiento": [
        "Definir tipo privado de un jugador",
        "Actualizar creencias sobre tipos",
        "Resolver equilibrio bayesiano simple",
        "Aplicar a adverse selection y signalling"
      ]
    },
    {
      "id": "fq_black_scholes_pde",
      "nombre": "PDE de Black-Scholes-Merton",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: derivar la ecuación de valuación por cobertura delta.",
      "puntos_de_conocimiento": [
        "Aplicar Ito al precio de la opción",
        "Construir cartera delta-neutral",
        "Eliminar el riesgo browniano local",
        "Obtener la PDE de Black-Scholes"
      ]
    },
    {
      "id": "fq_control_estocastico_hjb",
      "nombre": "Control estocastico y ecuación HJB",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: formular decisiones continuas bajo incertidumbre dinamica.",
      "puntos_de_conocimiento": [
        "Definir estado, control y función de valor",
        "Escribir principio de programación dinamica",
        "Derivar una HJB basica",
        "Aplicar control a consumo-inversión o cobertura"
      ]
    },
    {
      "id": "fq_copulas_credito_dependencia",
      "nombre": "Copulas y dependencia de credito",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: separar marginales de default y estructura de dependencia.",
      "puntos_de_conocimiento": [
        "Definir copula como acoplamiento de marginales",
        "Interpretar correlación de default",
        "Reconocer riesgo de cola conjunta",
        "Entender limites historicos de copulas gaussianas"
      ]
    },
    {
      "id": "fq_deflated_sharpe_multiple_testing",
      "nombre": "Deflated Sharpe y multiple testing",
      "curso": "finanzas_quant",
      "modulo": "fq_ml_validacion",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: corregir performance por busqueda de muchas estrategias.",
      "puntos_de_conocimiento": [
        "Distinguir Sharpe observado y Sharpe esperado por suerte",
        "Estimar número de trials",
        "Aplicar deflated Sharpe ratio",
        "Reconocer false discoveries en backtests"
      ]
    },
    {
      "id": "fq_dupire_volatilidad_local",
      "nombre": "Volatilidad local de Dupire",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: extraer una difusión local consistente con la superficie de opciones.",
      "puntos_de_conocimiento": [
        "Interpretar volatilidad local sigma(S,t)",
        "Usar derivadas de precios por strike y vencimiento",
        "Distinguir local vol de implied vol",
        "Reconocer problemas numericos de suavizado"
      ]
    },
    {
      "id": "fq_edo_estocasticas_sde",
      "nombre": "Ecuaciones diferenciales estocasticas",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: modelar dinamicas con drift y ruido difusivo.",
      "puntos_de_conocimiento": [
        "Escribir dX = mu dt + sigma dW",
        "Interpretar drift y difusión",
        "Resolver casos lineales simples",
        "Simular trayectorias con Euler-Maruyama"
      ]
    },
    {
      "id": "fq_feynman_kac_pricing",
      "nombre": "Feynman-Kac para valuación",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: conectar PDEs de valuación con esperanzas condicionales.",
      "puntos_de_conocimiento": [
        "Relacionar generador infinitesimal y PDE",
        "Convertir una PDE en esperanza descontada",
        "Interpretar condiciones terminales como payoff",
        "Usar Feynman-Kac como puente PDE-probabilidad"
      ]
    },
    {
      "id": "fq_heston_volatilidad_estocastica",
      "nombre": "Modelo Heston de volatilidad estocastica",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: modelar varianza como proceso estocastico mean-reverting.",
      "puntos_de_conocimiento": [
        "Escribir dinamica de precio y varianza",
        "Interpretar correlación spot-vol",
        "Reconocer condición de Feller",
        "Calibrar parametros a una superficie"
      ]
    },
    {
      "id": "fq_hjm_lmm",
      "nombre": "HJM y Libor Market Model",
      "curso": "finanzas_quant",
      "modulo": "fq_renta_fija_credito",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: modelar dinamica completa de curvas forward bajo no arbitraje.",
      "puntos_de_conocimiento": [
        "Formular dinamica de tasas forward",
        "Entender condición de drift HJM",
        "Distinguir HJM de modelos de tasa corta",
        "Relacionar LMM con volatilidades de caplets"
      ]
    },
    {
      "id": "fq_impacto_mercado_almgren_chriss",
      "nombre": "Impacto de mercado y Almgren-Chriss",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: optimizar ejecución balanceando impacto y riesgo de precio.",
      "puntos_de_conocimiento": [
        "Distinguir impacto permanente y temporal",
        "Formular costo esperado de ejecución",
        "Incluir aversión al riesgo en el calendario",
        "Derivar trayectorias optimas simples"
      ]
    },
    {
      "id": "fq_inferencia_post_seleccion",
      "nombre": "Inferencia post-selección",
      "curso": "finanzas_quant",
      "modulo": "fq_sesgos_y_validacion",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: ajustar inferencia después de escoger modelos, features o estrategias ganadoras.",
      "puntos_de_conocimiento": [
        "Distinguir estimar antes y después de seleccionar",
        "Entender sesgo del ganador",
        "Usar holdout verdaderamente virgen",
        "Reportar incertidumbre condicionada al proceso de selección"
      ]
    },
    {
      "id": "fq_integral_ito",
      "nombre": "Integral de Ito",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: integrar procesos respecto al Browniano usando información no anticipativa.",
      "puntos_de_conocimiento": [
        "Distinguir integral de Riemann e integral estocastica",
        "Usar integrandos adaptados",
        "Interpretar isometría de Ito",
        "Entender por que dW^2 se comporta como dt"
      ]
    },
    {
      "id": "fq_lema_ito",
      "nombre": "Lema de Ito",
      "curso": "finanzas_quant",
      "modulo": "fq_procesos_estocasticos",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: aplicar la regla de la cadena para procesos estocasticos.",
      "puntos_de_conocimiento": [
        "Aplicar derivadas parcial, temporal y segunda",
        "Usar la regla dW^2 = dt",
        "Transformar una SDE bajo una función suave",
        "Derivar dinamica de log-precios"
      ]
    },
    {
      "id": "fq_market_making_avellaneda_stoikov",
      "nombre": "Market making de Avellaneda-Stoikov",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: cotizar bid/ask optimos con inventario, riesgo y llegada de ordenes.",
      "puntos_de_conocimiento": [
        "Definir precio de reserva según inventario",
        "Calcular spread optimo aproximado",
        "Modelar llegada de ordenes por distancia a mid",
        "Controlar riesgo de inventario"
      ]
    },
    {
      "id": "fq_medida_cambio_radon_nikodym",
      "nombre": "Cambio de medida y Radon-Nikodym",
      "curso": "finanzas_quant",
      "modulo": "fq_probabilidad_avanzada",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: introducir cambio de medida como base matemática de precios neutrales al riesgo.",
      "puntos_de_conocimiento": [
        "Distinguir medida fisica y medida de valuación",
        "Interpretar una densidad de Radon-Nikodym",
        "Cambiar expectativas entre medidas equivalentes",
        "Preparar el paso a Girsanov y valuación martingala"
      ]
    },
    {
      "id": "fq_medida_riesgo_neutral",
      "nombre": "Medida neutral al riesgo",
      "curso": "finanzas_quant",
      "modulo": "fq_valuacion_derivados",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: valuar pagos como esperanzas descontadas bajo una medida equivalente.",
      "puntos_de_conocimiento": [
        "Distinguir probabilidad real y neutral al riesgo",
        "Escribir precio como esperanza descontada",
        "Relacionar no arbitraje con martingalas",
        "Interpretar prima de riesgo como cambio de drift"
      ]
    },
    {
      "id": "fq_optimal_transport_wasserstein",
      "nombre": "Transporte optimo y distancias Wasserstein",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: comparar distribuciones financieras por costo de transportar masa.",
      "puntos_de_conocimiento": [
        "Definir distancia Wasserstein intuitivamente",
        "Comparar distribuciones completas, no solo momentos",
        "Usar transporte para cambio de regimen",
        "Reconocer costo computacional y regularización"
      ]
    },
    {
      "id": "fq_procesos_puntuales_hawkes",
      "nombre": "Procesos puntuales y Hawkes",
      "curso": "finanzas_quant",
      "modulo": "fq_microestructura_ejecucion",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: modelar llegada autocorrelacionada de ordenes, trades y saltos.",
      "puntos_de_conocimiento": [
        "Definir proceso puntual e intensidad",
        "Interpretar auto-excitación Hawkes",
        "Estimar kernel de excitación",
        "Aplicar Hawkes a clusters de trades o volatilidad"
      ]
    },
    {
      "id": "fq_procesos_saltos_levy",
      "nombre": "Procesos con saltos y Levy",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: extender difusiones continuas con saltos para colas y gaps.",
      "puntos_de_conocimiento": [
        "Modelar saltos con Poisson compuesto",
        "Distinguir difusión continua y proceso con salto",
        "Interpretar intensidad y distribución de salto",
        "Relacionar saltos con smile de corto plazo"
      ]
    },
    {
      "id": "fq_programacion_dinamica_trading",
      "nombre": "Programación dinamica para trading",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: tomar decisiones secuenciales con estado, acción y recompensa.",
      "puntos_de_conocimiento": [
        "Formular Bellman discreto",
        "Definir politica y valor",
        "Incluir inventario y costos",
        "Resolver problemas finitos por backward induction"
      ]
    },
    {
      "id": "fq_quasi_monte_carlo",
      "nombre": "Quasi-Monte Carlo",
      "curso": "finanzas_quant",
      "modulo": "fq_algoritmos_quant",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: usar secuencias de baja discrepancia para integración numerica de alta dimensión moderada.",
      "puntos_de_conocimiento": [
        "Distinguir aleatoriedad y baja discrepancia",
        "Usar secuencias Sobol o Halton",
        "Comparar convergencia con Monte Carlo",
        "Reconocer degradación en dimensión alta efectiva"
      ]
    },
    {
      "id": "fq_random_matrix_covariance",
      "nombre": "Random Matrix Theory para covarianzas",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: separar senal y ruido en matrices de covarianza de alta dimensión.",
      "puntos_de_conocimiento": [
        "Interpretar espectro de eigenvalores muestrales",
        "Usar intuición Marchenko-Pastur",
        "Limpiar eigenvalores ruidosos",
        "Aplicar RMT a portafolios grandes"
      ]
    },
    {
      "id": "fq_reinforcement_learning_trading",
      "nombre": "Reinforcement learning para trading",
      "curso": "finanzas_quant",
      "modulo": "fq_optimizacion_control",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: entender RL financiero con fricciones, no estacionariedad y riesgo.",
      "puntos_de_conocimiento": [
        "Definir MDP en contexto de trading",
        "Distinguir recompensa inmediata y retorno descontado",
        "Evitar leakage en entrenamiento de politicas",
        "Reconocer fragilidad por cambio de regimen"
      ]
    },
    {
      "id": "fq_rough_paths_signatures",
      "nombre": "Rough paths y signatures",
      "curso": "finanzas_quant",
      "modulo": "fq_frontera_matematica",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: representar trayectorias financieras por iterated integrals y signatures.",
      "puntos_de_conocimiento": [
        "Interpretar signature como resumen de una trayectoria",
        "Distinguir ordenes de iterated integrals",
        "Usar signatures como features de series temporales",
        "Reconocer relación con rough paths y control"
      ]
    },
    {
      "id": "fq_teoria_valores_extremos",
      "nombre": "Teoria de valores extremos",
      "curso": "finanzas_quant",
      "modulo": "fq_estadistica_robusta",
      "nivel": 6,
      "xp": 14,
      "descripcion": "PENDIENTE: modelar maxima perdida, exceso sobre umbral y riesgo de cola.",
      "puntos_de_conocimiento": [
        "Distinguir maxima por bloques y POT",
        "Ajustar distribución de extremos",
        "Interpretar umbral y exceso",
        "Aplicar EVT a VaR y Expected Shortfall"
      ]
    },
    {
      "id": "fq_volatilidad_rugosa",
      "nombre": "Volatilidad rugosa",
      "curso": "finanzas_quant",
      "modulo": "fq_volatilidad_opciones",
      "nivel": 6,
      "xp": 15,
      "descripcion": "PENDIENTE: introducir memoria fraccional y rough volatility en superficies modernas.",
      "puntos_de_conocimiento": [
        "Interpretar parámetro de Hurst menor que 1/2",
        "Distinguir memoria rugosa de GARCH clasico",
        "Relacionar rugosidad con skew de corto vencimiento",
        "Conocer retos numericos de simulación"
      ]
    }
  ]
}