{
  "responsive-web-design": {
    "title": "Desafíos de Diseño Web Responsivo de Legacy",
    "intro": [
      "En esta Certificación de Diseño Web Adaptativo, aprenderás los lenguajes que los desarrolladores utilizan para construir páginas web: HTML (lenguaje de marcado de hipertexto) para el contenido, y CSS (Hojas de estilo en cascada) para el diseño.",
      "Primero, crearás una aplicación de fotos de gatos para aprender los conceptos básicos de HTML y CSS. Más adelante, aprenderá técnicas modernas como variables CSS mediante la construcción de un pingüino, y las mejores prácticas para la accesibilidad mediante la construcción de un formulario web.",
      "Finalmente, aprenderás cómo hacer páginas web que respondan a diferentes tamaños de pantalla construyendo una tarjeta de Twitter con Flexbox, y un diseño complejo de blog con CSS Grid."
    ],
    "note": "Nota: Algunas extensiones del navegador, como bloqueadores de anuncios o extensiones de modo oscuro pueden interferir con las pruebas. Si tienes algun problema, te recomendamos deshabilitar las extensiones que modifiquen el contenido de la página, mientras tomas el curso.",
    "blocks": {
      "basic-html-and-html5": {
        "title": "HTML básico y HTML5",
        "intro": [
          "HTML es un lenguaje de marcado que usa una sintaxis o notación especial para describir la estructura de una página web al navegador. Los elementos HTML generalmente tienen etiquetas de apertura y cierre que rodean y dan sentido al contenido. Por ejemplo, diferentes elementos pueden describir el texto como un título, párrafo o elemento de lista.",
          "En este curso, crearás una aplicación de fotos para gatos para aprender algunos de los elementos HTML más comunes, los bloques básicos de cualquier página web."
        ]
      },
      "basic-css": {
        "title": "CSS básico",
        "intro": [
          "CSS, u hojas de estilo en cascada (Cascading Style Sheets), informa al navegador cómo mostrar el texto y otros contenidos que escribas en HTML. Con CSS, puedes controlar el color, fuente, tamaño, espaciado y muchos otros aspectos de los elementos HTML.",
          "Ahora que has descrito la estructura de tu aplicación de fotos para gatos, dale algo de estilo con CSS."
        ]
      },
      "applied-visual-design": {
        "title": "Diseño visual aplicado",
        "intro": [
          "El diseño visual es una combinación de tipografía, teoría del color, gráficos, animación, diseño de página y más para ayudar a entregar tu mensaje único.",
          "En este curso, aprenderás cómo aplicar estos diferentes elementos de diseño visual a tus páginas web."
        ]
      },
      "applied-accessibility": {
        "title": "Accesibilidad aplicada",
        "intro": [
          "En el desarrollo web, la accesibilidad se refiere al contenido web y a una interfaz de usuario que puede ser entendida, navegada e interactuada por una amplia audiencia. Esto incluye a personas con discapacidades visuales, auditivas, móviles o cognitivas.",
          "En este curso, aprenderás las prácticas recomendadas para crear páginas web que sean accesibles para todos."
        ]
      },
      "responsive-web-design-principles": {
        "title": "Principios de diseño web adaptativo",
        "intro": [
          "Hay muchos dispositivos que pueden acceder a la web, y vienen en todas las formas y tamaños. El diseño web adaptativo es la práctica de diseñar sitios web flexibles que pueden responder a diferentes tamaños de pantalla, orientaciones y resoluciones.",
          "En este curso, aprenderás a usar CSS para que tus páginas web luzcan bien, sin importar en qué dispositivo se vean."
        ]
      },
      "css-flexbox": {
        "title": "CSS flexbox",
        "intro": [
          "Flexbox es un método de diseño potente y bien soportado que se introdujo con la última versión de CSS, CSS3. Con flexbox, es fácil centrar elementos en la página y crear interfaces de usuario dinámicas que se reducen y se expanden automáticamente.",
          "En este curso, aprenderás los fundamentos de flexbox y diseños dinámicos mediante la construcción de una tarjeta de Twitter."
        ]
      },
      "css-grid": {
        "title": "CSS grid",
        "intro": [
          "La cuadrícula (grid) CSS es un estándar reciente que facilita la creación de diseños complejos y responsivos. Funciona convirtiendo un elemento HTML en una cuadrícula y te permite colocar elementos secundarios en cualquier lugar dentro ella.",
          "En este curso, aprenderá los fundamentos de la cuadrícula (grid) CSS construyendo diferentes diseños complejos, incluido un blog."
        ]
      }
    }
  },
  "2022/responsive-web-design": {
    "title": "Legado de Diseño Web Responsivo V8",
    "intro": [
      "En esta certificación de Diseño Web Adaptativo, aprenderás los lenguajes que los desarrolladores usan para construir páginas web: HTML (Lenguaje de Marcado de Hipertexto) para el contenido, y CSS (hojas de estilo en cascada) para el diseño.",
      "Primero, crearás una aplicación de fotos de gatos para aprender los conceptos básicos de HTML y CSS. Más adelante, aprenderás técnicas modernas como variables CSS, mediante la construcción de un pingüino, y las mejores prácticas para la accesibilidad mediante la construcción de un sitio de cuestionarios.",
      "Por último, aprenderás cómo hacer páginas web que respondan a diferentes tamaños de pantalla, mediante la construcción de una galería de fotos con Flexbox, y un diseño de artículos de revista con CSS Grid."
    ],
    "note": "Nota: Algunas extensiones del navegador, como bloqueadores de anuncios o extensiones de modo oscuro pueden interferir con las pruebas. Si tienes algun problema, te recomendamos deshabilitar las extensiones que modifiquen el contenido de la página, mientras tomas el curso.",
    "blocks": {
      "build-a-tribute-page-project": {
        "title": "Página del homenaje",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás una página de homenaje para un tema de tu elección, ficción o real."
        ]
      },
      "build-a-personal-portfolio-webpage-project": {
        "title": "Página web del Portafolio personal",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirá su propia página de portafolio personal."
        ]
      },
      "build-a-product-landing-page-project": {
        "title": "Landing Page del producto",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, usted construirá una página de inicio de producto para comercializar un producto de su elección."
        ]
      },
      "build-a-survey-form-project": {
        "title": "Encuesta",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirá un formulario de encuesta para recopilar datos de sus usuarios."
        ]
      },
      "build-a-technical-documentation-page-project": {
        "title": "Página de documentación técnica",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener la certificación.",
          "En este proyecto, construirás una página de documentación técnica que sirva de instrucción o de referencia para un tema."
        ]
      },
      "learn-html-by-building-a-cat-photo-app": {
        "title": "Aprende HTML construyendo una aplicación de fotos de gatos",
        "intro": [
          "Las etiquetas HTML dan a la página su estructura. Puedes usar etiquetas HTML para añadir fotos, botones, y otros elementos en tu página.",
          "En este curso, aprenderás las etiquetas HTML más comunes por medio de la construcción de tu propia aplicación para fotos de gatos."
        ]
      },
      "learn-basic-css-by-building-a-cafe-menu": {
        "title": "Aprende CSS básico construyendo un menú de cafetería",
        "intro": [
          "CSS le dice al navegador cómo presentar tu página web. Puedes usar CSS para definir el color, fuente, tamaño, y otros aspectos de los elementos HTML.",
          "En este curso, aprenderás CSS diseñando una página para el menú de la página web de un café."
        ]
      },
      "learn-the-css-box-model-by-building-a-rothko-painting": {
        "title": "Aprende el Modelo de Cajas de CSS construyendo una pintura de Rothko",
        "intro": [
          "Cada elemento HTML es su propia caja – con su propio espaciado y borde. A esto se le llama Modelo de Caja.",
          "En este curso, utilizarás CSS y el Modelo de Cajas para crear tus propias piezas de arte rectangulares al estilo de Rothko."
        ]
      },
      "learn-css-variables-by-building-a-city-skyline": {
        "title": "Aprende variables CSS construyendo un horizonte de la ciudad",
        "intro": [
          "Las variables de CSS te ayudan a organizar tus estilos y a reorganizarlos.",
          "En este curso, construirás un horizonte de ciudad. Aprenderás cómo configurar variables de CSS de forma que puedas reusarlas cuando quieras."
        ]
      },
      "learn-html-forms-by-building-a-registration-form": {
        "title": "Aprende formularios HTML construyendo un formulario de registro",
        "intro": [
          "Puedes hacer uso de formularios HTML para recopilar información de las personas que visitan tu página web.",
          "En este curso, aprenderás formularios de HTML construyendo una página de registro. Aprenderás cómo controlar qué tipo de datos pueden colocarse en tu formulario, y herramientas nuevas de CSS para cambiar el diseño de tu página."
        ]
      },
      "learn-accessibility-by-building-a-quiz": {
        "title": "Aprende accesibilidad construyendo un cuestionario",
        "intro": [
          "Accesibilidad es hacer que tu página web sea sencilla de usar para todas las personas, incluyendo a aquellas con discapacidades.",
          "En este curso, construirás una página web de cuestionarios. Aprenderás herramientas de accesibilidad como atajos de teclado, atributos ARIA y mejores prácticas de diseño."
        ]
      },
      "learn-intermediate-css-by-building-a-picasso-painting": {
        "title": "Aprende CSS intermedio construyendo una Pintura Picasso",
        "intro": [
          "En este curso, aprenderás a usar algunas técnicas intermedias de CSS codificando tu propia página web de pintura de Picasso. Aprenderá sobre los iconos SVG, la posición CSS y revisará otras habilidades CSS que haya aprendido."
        ]
      },
      "learn-responsive-web-design-by-building-a-piano": {
        "title": "Aprende diseño web adaptativo construyendo un piano",
        "intro": [
          "El diseño adaptativo indica a tu página web cómo debe verse en pantallas de distintos tamaños.",
          "En este curso, usarás CSS y diseño responsivo para programar un piano. También aprenderás más acerca de las consultas de medios y pseudoselectores."
        ]
      },
      "learn-css-flexbox-by-building-a-photo-gallery": {
        "title": "Aprende CSS Flexbox construyendo una galería de fotos",
        "intro": [
          "Flexbox te ayuda a diseñar tu página web para que se vea bien en cualquier tamaño de pantalla.",
          "En este curso, usarás Flexbox para crear una página web de una galería de fotos adaptativa."
        ]
      },
      "learn-css-grid-by-building-a-magazine": {
        "title": "Aprende la cuadrícula de CSS construyendo una revista",
        "intro": [
          "CSS Grid le brinda control sobre las filas y columnas del diseño de su página web.",
          "En este curso, construirás un artículo de revista. Aprenderás como usar CSS Grid, incluidos los conceptos como filas de cuadrícula y columnas de cuadrícula."
        ]
      },
      "learn-typography-by-building-a-nutrition-label": {
        "title": "Aprende tipografía construyendo una etiqueta de nutrición",
        "intro": [
          "La tipografía es el arte de diseñar tu texto haciéndolo de fácil lectura y adaptado a su propósito.",
          "En este curso, usarás tipografía para compilar una página web de etiqueta. Aprenderás cómo estilizar el texto, ajustar altura de línea y la posición de tu texto usando CSS."
        ]
      },
      "learn-css-transforms-by-building-a-penguin": {
        "title": "Aprende CSS Transforms construyéndo un pingüino",
        "intro": [
          "Puedes transformar elementos HTML para crear diseños atractivos que atraigan la atención de tu lector. Puedes utilizar las transformaciones para girar elementos, escalarlos y mucho más.",
          "En este curso, construirás un pingüino. Utilizarás transformaciones CSS para posicionar y cambiar el tamaño de las partes de tu pingüino, crearás un fondo y animarás tu trabajo."
        ]
      },
      "learn-css-animation-by-building-a-ferris-wheel": {
        "title": "Aprende a animar con CSS construyendo una noria",
        "intro": [
          "Puedes utilizar la animación CSS para llamar la atención sobre secciones específicas de tu página web y hacerla más atractiva.",
          "En este curso, construirás una noria. Aprenderás a utilizar CSS para animar elementos, transformarlos y ajustar su velocidad."
        ]
      },
      "learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": {
        "title": "Aprende más sobre los selectores pseudo de CSS construyendo una hoja de balance",
        "intro": [
          "Puede utilizar pseudoselectores CSS para cambiar elementos HTML específicos.",
          "En este curso, construirás un balance usando pseudo selectores. Aprenderás a cambiar el estilo de un elemento al pasar el ratón por encima y a activar otros eventos en tu página web."
        ]
      },
      "learn-css-colors-by-building-a-set-of-colored-markers": {
        "title": "Aprenda los colores de CSS construyendo un conjunto de marcadores de colores",
        "intro": [
          "Seleccionar los colores correctos para tu página web puede mejorar enormemente el atractivo estético para tus lectores.",
          "En este curso, construirás un conjunto de marcadores de color. Aprenderás diferentes maneras de establecer valores de color y cómo combinar colores entre sí."
        ]
      },
      "learn-intermediate-css-by-building-a-cat-painting": {
        "title": "Aprende CSS Intermedio haciendo una pintura de gatos",
        "intro": [
          "Dominar la posición CSS es esencial para crear diseños web visualmente atractivos y receptivos",
          "En este curso construirás una pintura para gatos, aprenderás cómo trabajar con la posición absoluta, la propiedad z-index y la propiedad transform."
        ]
      }
    }
  },
  "javascript-algorithms-and-data-structures": {
    "title": "Algoritmos de JavaScript y Estructuras de Datos V7",
    "intro": [
      "Mientras HTML y CSS controlan el contenido y el estilo de una página, JavaScript se utiliza para hacerlo interactivo. En la certificación Algoritmos de JavaScript y Estructuras de Datos, aprenderás los fundamentos de JavaScript incluyendo variables, arreglos, objetos, bucles y funciones.",
      "Una vez que tengas los fundamentos, aplicarás ese conocimiento creando algoritmos para manipular cadenas, factorizar números e incluso calcular la órbita de la Estación Espacial Internacional.",
      "A lo largo del camino, también aprenderás dos estilos o paradigmas importantes de programación: la Programación Orientada a Objetos (OOP), y la Programación Funcional (FP)."
    ],
    "note": "Nota: Algunas extensiones del navegador, como bloqueadores de anuncios o bloqueadores de scripts pueden interferir con las pruebas. Si se te presentan problemas, te recomendamos deshabilitar las extensiones que modifiquen o bloqueen el contenido de la página, mientras tomas el curso.",
    "blocks": {
      "basic-javascript": {
        "title": "JavaScript básico",
        "intro": [
          "JavaScript es un lenguaje de scripting que puedes utilizar para hacer que las páginas web sean interactivas. Es una de las principales tecnologías de la web, junto con HTML y CSS, y es soportada por todos los navegadores modernos.",
          "En este curso, aprenderás conceptos fundamentales de programación en JavaScript. Empezarás con estructuras básicas de datos como números y cadenas. Luego aprenderás a trabajar con arreglos, objetos, funciones, bucles, declaraciones if/else y más."
        ]
      },
      "es6": {
        "title": "ES6",
        "intro": [
          "ECMAScript, o ES, es una versión estandarizada de JavaScript. Debido a que todos los principales navegadores siguen esta especificación, los términos ECMAScript y JavaScript son intercambiables.",
          "La mayoría del JavaScript que has aprendido hasta este punto estaba en ES5 (ECMAScript 5), el cual fue finalizado en 2009. Aunque puedes seguir escribiendo programas en ES5, JavaScript está evolucionando siempre, y cada año se lanzan nuevas funcionalidades.",
          "ES6, lanzado en 2015, agrego muchas nuevas y potentes características al lenguaje. En este curso, aprenderás estas nuevas características, incluyendo let y const, funciones flecha, clases, promesas, y módulos."
        ]
      },
      "regular-expressions": {
        "title": "Expresiones regulares",
        "intro": [
          "Expresiones regulares, a veces acortadas a \"regex\" o \"regexp\", son patrones que ayudan a los programadores a encontrar, buscar, y reemplazar texto. Las expresiones regulares son muy potentes, pero pueden ser difícil de leer porque usan caracteres especiales para hacer coincidencias más complejas y flexibles.",
          "En este curso, aprenderás como usar caracteres especiales, grupos de captura, miradas positivas y negativas, así como otras técnicas para hacer coincidir cualquier texto que quieras."
        ]
      },
      "debugging": {
        "title": "Depuración",
        "intro": [
          "La depuración es el proceso de revisar tu código, encontrando cualquier problema, y arreglándolo.",
          "Los problemas en el código generalmente vienen en tres formas: errores de sintaxis que impiden que tu programa se ejecute, errores de tiempo de ejecución donde tu código tiene un comportamiento inesperado, o errores lógicos donde tu código no hace lo que pretendes.",
          "En este curso, aprenderás como usar la consola de JavaScript para depurar programas y prevenir errores comunes antes de que ocurran."
        ]
      },
      "basic-data-structures": {
        "title": "Estructuras de datos básicas",
        "intro": [
          "Los datos pueden almacenarse y accederse de muchas maneras. Ya conoces algunas estructuras de datos comunes en JavaScript: los arreglos y los objetos.",
          "En este curso de estructuras de datos básicas, aprenderás más acerca de las diferencias entre arreglos y objetos, y cuál usar en diferentes situaciones. También aprenderás como usar métodos útiles de JavaScript como <code>splice()</code> y <code>Object.keys()</code> para acceder y manipular datos."
        ]
      },
      "basic-algorithm-scripting": {
        "title": "Programación de algoritmos básicos",
        "intro": [
          "Un algoritmo es una serie de instrucciones paso a paso que describen cómo hacer algo.",
          "Para escribir un algoritmo eficaz, ayuda el dividir un problema en partes más pequeñas y pensar cuidadosamente cómo resolver cada parte con código.",
          "En este curso, aprenderás los fundamentos del pensamiento algorítmico mediante la escritura de algoritmos que hacen de todo, desde la conversión de temperaturas hasta el manejo de arreglos 2D complejos."
        ]
      },
      "object-oriented-programming": {
        "title": "Programación orientada a objetos",
        "intro": [
          "OOP, o programación orientada a objetos, es uno de los principales enfoques del proceso de desarrollo de software. En OOP, los objetos y las clases son utilizadas para organizar código y para describir lo que pueden hacer.",
          "En este curso, aprenderás los principios básicos de OOP en JavaScript incluyendo la palabra clave <code>this</code>, cadenas prototipo, constructores, y herencias."
        ]
      },
      "functional-programming": {
        "title": "Programación funcional",
        "intro": [
          "La programación funcional es otro enfoque común en el desarrollo de software. En programación funcional, el código está organizado en funciones más pequeñas y básicas que se pueden combinar para construir programas de mayor complejidad.",
          "En este curso, aprenderás los conceptos básicos de programación funcional incluyendo funciones puras, cómo evitar mutaciones, y cómo escribir código más limpio con métodos como <code>.map()</code> y <code>.filter()</code>."
        ]
      },
      "intermediate-algorithm-scripting": {
        "title": "Programación de algoritmos intermedios",
        "intro": [
          "Ahora que conoces los conceptos básicos del pensamiento algorítmico, junto con la OOP y la programación funcional, prueba tus habilidades con los desafíos de programación de algoritmos intermedios."
        ]
      },
      "javascript-algorithms-and-data-structures-projects": {
        "title": "Algoritmos de JavaScript y proyectos de estructuras de datos",
        "intro": [
          "¡Ha llegado el momento de poner tus habilidades de JavaScript a prueba! Estos proyectos son muy similares a los desafíos algorítmicos que has hecho antes, pero más difíciles.",
          "Completa estos 5 proyectos de JavaScript para obtener la certificación algoritmos de JavaScript y estructuras de datos."
        ]
      }
    }
  },
  "javascript-algorithms-and-data-structures-v8": {
    "title": "Algoritmos de JavaScript y Estructuras de Datos V8",
    "intro": [
      "Los desarrolladores usan HTML y CSS para controlar el contenido y estilo de una página. También usan JavaScript para hacer interactiva la página.",
      "En esta certificación de Algoritmos de JavaScript y Estructura de Datos, aprenderas los fundamentos de JavaScript, como variables, arreglos, objetos, bucles, funciones, DOM y mucho más.",
      "También aprenderás sobre Programación Orientada a Objetos (POO), Programación Funcional, pensamiento algorítmico, cómo trabajar con el almacenamiento local y cómo extraer datos usando una API."
    ],
    "note": "Nota: Algunas extensiones de tu navegador, como bloqueadores de ventanas y bloqueadores de comandos pueden interferir con los ejercicios. Si tienes problemas, te recomendamos deshabilitar las extensiones que modifican o bloquean el contenido de las páginas mientras estés tomando el curso.",
    "blocks": {
      "build-an-rpg-creature-search-app-project": {
        "title": "Construir un proyecto de búsqueda de RPG Creature",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás una aplicación de búsqueda de criaturas RPG."
        ]
      },
      "build-a-cash-register-project": {
        "title": "Construye un proyecto de una caja registradora",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás una aplicación web de una caja registradora."
        ]
      },
      "build-a-palindrome-checker-project": {
        "title": "Construye un Proyecto Corrector de Palíndromos",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás una aplicación que revisa si una palabra dada es un palíndromo."
        ]
      },
      "build-a-roman-numeral-converter-project": {
        "title": "Construye un Proyecto Convertidor a Números Romanos",
        "intro": [
          "Este es uno de los proyectos requeridos para reclamar su certificación.",
          "Para este proyecto, construirás una aplicación que convierte números enteros a números Romanos."
        ]
      },
      "build-a-telephone-number-validator-project": {
        "title": "Construye un Proyecto Validador de Números Telefónicos",
        "intro": [
          "Este es uno de los proyectos requeridos para reclamar su certificación.",
          "Para este proyecto, construirás una aplicación que revisa sí un número es un número telefónico valido de los Estados Unidos."
        ]
      },
      "learn-basic-javascript-by-building-a-role-playing-game": {
        "title": "Aprende JavaScript Básico Construyendo un Juego de Rol",
        "intro": [
          "JavaScript es un poderoso lenguaje en secuencias de comandos qué puedes usar para hacer páginas web interactivas. Esta es una de las tecnologías principales de la web, junto al HTML y CSS. Todos los navegadores modernos son compatibles con JavaScript.",
          "En este proyecto de práctica, aprenderás conceptos fundamentales de la programación en el JavaScript programando tu propio Juego de Rol. Aprenderás como trabajar con arreglos, cadenas, objetos, funciones, bucles, declaraciones <code>if/else</code>, y más."
        ]
      },
      "learn-form-validation-by-building-a-calorie-counter": {
        "title": "Aprende Validación de Formularios Construyendo un Contador de Calorías",
        "intro": [
          "A veces cuando estas programando una aplicación web, Necesitaras ser capaz de aceptar entradas de un usuario. En este proyecto contador de calorias, aprenderás a cómo validar la entrada del usuario, realizar calculos basado en esa entrada, y actualizar dinamicamente tu interfaz para mostrar los resultados.",
          "En este proyecto de práctica, aprenderás lo básico de las expresiones regulares, literales de plantilla, los métodos <code>addEvenListener()</code>, y más."
        ]
      },
      "learn-functional-programming-by-building-a-spreadsheet": {
        "title": "Aprende Programación Funcional Construyendo una Hoja de Cálculo",
        "intro": [
          "La programación funcional es un enfoque popular para el desarrollo de software. En la programación funcional, los desarrolladores organizan el código en funciones más pequeñas, luego combinan esas funciones para construir programas complejos.",
          "En este proyecto aplicación de hoja de cálculo, aprenderás sobre el análisis y evaluación de expresiones matemáticas, implementación de funciones para hoja de cálculo, manejar referencias de celda, y crear interfaces de web interactivas. Aprenderás cómo actualizar dinámicamente la página basado en la entrada del usuario.",
          "Este proyecto cubrirá conceptos como los métodos <code>map()</code>, <code>find()</code>, y <code>includes()</code> y la función <code>parseInt()</code>."
        ]
      },
      "learn-modern-javascript-methods-by-building-football-team-cards": {
        "title": "Aprende Métodos Modernos de JavaScript Construyendo Cartas de un Equipo de Fútbol",
        "intro": [
          "Un aspecto común de la construcción de aplicaciones web: procesar conjuntos de datos, y luego enviar información a la pantalla. En este proyecto Cartas de Equipos Deportivos, aprenderás cómo trabajar con manipulación del DOM, des-estructurando objetos, manipulando eventos, y filtrando datos.",
          "Este proyecto cubrirá conceptos como, parámetros por defecto, <code>Object.freeze()</code>, y reforzará tu conocimiento de la sentencia <code>switch</code> y el método <code>map()</code>."
        ]
      },
      "learn-advanced-array-methods-by-building-a-statistics-calculator": {
        "title": "Aprende Métodos Avanzados para Arreglos Construyendo una Calculadora de Estadísticas",
        "intro": [
          "Mientras expandes tus habilidades en JavaScript, querrás conseguir métodos cómodos con los que manipular arreglos, tales cómo <code>map()</code>, <code>reduce()</code>, y <code>filter()</code>.",
          "En este proyecto calculadora de estadísticas, ganarás experiencia con el manejo de entrada del usuario, manipulación del DOM, y encadenando metodos. Obtendrás practica realizando cálculos estadísticos como media, mediana, moda, diferencia y desviación estándar."
        ]
      },
      "learn-basic-oop-by-building-a-shopping-cart": {
        "title": "Aprende POO construyendo un carrito de compras",
        "intro": [
          "La POO, o Programación Orientada a Objetos, es uno de los principales enfoques para el proceso del desarrollo de software. En la POO, los desarrolladores usan objetos y clases para estructurar su código.",
          "En este proyecto carrito de compras, aprenderás cómo definir clases y usarlas. Crearás instancias de clase y implementaras métodos para la manipulación de datos.",
          "Este projecto cubrirá conceptos cómo el operador ternario, el operador de propagación, la palabra clave <code>this</code>, y más."
        ]
      },
      "learn-fetch-and-promises-by-building-an-fcc-authors-page": {
        "title": "Aprende a Usar Fetch y Promises Construyendo una Página de Autores de fCC",
        "intro": [
          "Un aspecto común del desarollo web es aprender cómo traer datos desde una API externa, luego trabajar con JavaScript asíncronamente.",
          "Este proyecto página de autores para freeCodeCamp te mostrara cómo usar el método fetch, luego actualizar dinámicamente el DOM para mostrar los datos obtenidos.",
          "Este projecto también te enseñara cómo paginar tus datos para que puedas cargar los resultados en lotes."
        ]
      },
      "learn-regular-expressions-by-building-a-spam-filter": {
        "title": "Aprende Expresiones Regulares Construyendo un Filtro para Correos Basura",
        "intro": [
          "Expresiones Regulares, a menudo acortadas a \"regex\" o \"regexp\", son patrones que los programadores usan de ayuda para coincidir, buscar, y reemplazar texto. Las expresiones regulares son poderosas, pero pueden ser difíciles de entender porque usan demasiados caracteres especiales.",
          "En este proyecto filtro de spam, aprenderás acerca de los grupos de captura, anticipación positiva, anticipación negativa, y otras técnicas para coincidir cualquier texto que tu quieras."
        ]
      },
      "learn-basic-algorithmic-thinking-by-building-a-number-sorter": {
        "title": "Aprenda el Pensamiento Algorítmico Básico Construyendo un Clasificador de Números",
        "intro": [
          "En ciencias de la computación, hay algoritmos de clasificación fundamentales que todos los desarrolladores deben aprender. En este proyecto clasificador de números, aprenderás cómo implementar y visualizar diferentes algoritmos de clasificación como la clasificación por burbuja, clasificación por selección, y la clasificación por inserción - todo con JavaScript.",
          "Este proyecto te ayudará a entender los conceptos fundamentales detrás de estos algoritmos, y cómo puedes aplicarlos para ordenar datos numéricos en aplicaciones web."
        ]
      },
      "review-algorithmic-thinking-by-building-a-dice-game": {
        "title": "Repasa el pensamiento algorítmico construyendo un juego de dados",
        "intro": [
          "El pensamiento algorítmico implica la capacidad de desglosar problemas complejos en una secuencia de instrucciones bien definidas, paso a paso.",
          "En este proyecto de juego de dados, aprenderás a gestionar el estado del juego, implementar la lógica del juego para tirar los dados, llevar la puntuación y aplicar reglas para varias combinaciones.",
          "Este proyecto abarca conceptos como la gestión de eventos, la manipulación de arreglos, la lógica condicional y la actualización dinámica de la interfaz de usuario en función del estado del juego."
        ]
      },
      "learn-intermediate-oop-by-building-a-platformer-game": {
        "title": "Aprenda POO Intermedia Construyendo un Juego de Plataforma",
        "intro": [
          "Codificar un juego es una gran manera de entender los principales fundamentos de la programación, al mismo tiempo creando una experiencia de juego interactiva.",
          "En este proyecto juego de plataforma, continuarás aprendiendo acerca de clases, objetos, herencia, y encapsulación. También aprenderás cómo diseñar y organizar eficientemente elementos del juego y obtendrás conocimiento en resolución de problemas y reutilización del código."
        ]
      },
      "learn-localstorage-by-building-a-todo-app": {
        "title": "Aprenda Almacenamiento Local Construyendo una Aplicación Todo",
        "intro": [
          "Almacenamiento Local es una característica del navegador web, eso deja a las aplicaciones web almacenar pares clave-valor de forma persistente dentro del navegador de un usuario. Esto permite a aplicaciones web guardar datos durante una sesión, y luego recuperarlo en una página de sesión después.",
          "En esta aplicación TODO, aprenderás cómo manejar entradas de formulario, administrar el almacenamiento local, llevar a cabo operaciones en tareas CRUD(Crear, Leer, Actualizar, Eliminar), implementar escucha de eventos, y alternar elementos de la interfaz de usuarios."
        ]
      },
      "learn-the-date-object-by-building-a-date-formatter": {
        "title": "Aprende el Objecto Fecha Construyendo un Formateador de Fecha",
        "intro": [
          "Trabajar con fechas en JavaScript puede ser un desafío. Tienes que navegar por varios métodos, formatos, y zonas horarias. En este proyecto, aprenderás cómo trabajar con el objeto Fecha en JavaScript, incluyendo sus métodos y propiedades. También aprenderás cómo formatear correctamente las fechas.",
          "Este proyecto cubrirá conceptos tales cómo los métodos <code>getDate()</code>, <code>getMonth()</code>, y <code>getFullYear()</code>."
        ]
      },
      "learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard": {
        "title": "Aprende Programación Asíncrona Construyendo una Tabla de Clasificación para el Foro de fCC",
        "intro": [
          "JavaScript es un lenguaje de programación asincrónico. Y este proyecto te ayudará a ganar competencia en conceptos asíncronos. Usted programara su propia tabla de clasificaciones para el foro de freeCodeCamp.",
          "Este proyecto cubrirá la Búsqueda en API, promesas. En sincronización/En espera, y la declaración de intentar..atrapar."
        ]
      },
      "learn-basic-string-and-array-methods-by-building-a-music-player": {
        "title": "Aprende Métodos Básicos de Cadena y Arreglo Construyendo un Reproductor de Música",
        "intro": [
          "Ahora vamos a aprender algunos métodos esenciales de cadena y arreglo como el <code>find()</code>, <code>forEach()</code>, <code>map()</code>, y <code>join()</code>. Estos métodos son cruciales para el desarrollo dinámico de aplicaciones web.",
          "En este proyecto, programara un reproductor MP3 básico usando HTML, CSS, y JavaScript. El proyecto cubrirá los conceptos fundamentales como manejar la reproducción de audio, gestionar un lista de reproducción, implementando reproducir, pausar, siguiente, anterior, y funcionalidades aleatorias. Incluso aprenderás como actualizar dinámicamente tu interfaz de usuario basado en la canción actual."
        ]
      },
      "learn-recursion-by-building-a-decimal-to-binary-converter": {
        "title": "Aprende la Recursividad Construyendo un Convertidor de Decimal a Binario",
        "intro": [
          "Recursivo es un concepto de programación donde una función se llama a si misma. Esto puede reducir un problema complejo en sub-problemas más simples, hasta que se vuelven sencillos de resolver.",
          "En este proyecto, construiremos un convertidor decimal-a-binario usando JavaScript. Aprenderás los conceptos fundamentales de la recursividad, explorar las llamadas a pila, y construir una representación visual del proceso de recursivo a través de una animación."
        ]
      },
      "learn-introductory-javascript-by-building-a-pyramid-generator": {
        "title": "Introducción a JavaScript aprendiendo a construir un Generador de Pirámide",
        "intro": [
          "JavaScript es un poderoso lenguaje para escritura de secuencia de comandos (scripting) que puedes usar para crear páginas web interactivas. Es una de las tecnologías centrales de la internet, junto con HTML y CSS. Todos los navegadores modernos soportan JavaScript.",
          "En este proyecto de práctica, aprenderás fundamentos de programación en JavaScript codificando tu propio Generador de Pirámide. Aprenderás a trabajar con arreglos, cadenas, funciones, bucles, <code>if/else</code> declaraciones, y más."
        ]
      },
      "review-js-fundamentals-by-building-a-gradebook-app": {
        "title": "Revisión de Fundamentos en Javascript Contruyendo una Aplicación de Calificaciones",
        "intro": [
          "En este mini proyecto, podrás revisar fundamentos de JavaScript como funciones, variables, condicionales y más construyendo una aplicacion de calificaciones.",
          "Esto te dará la oportunidad de resolver pequeños problemas y obtener una mejor comprensión de lo básico."
        ]
      },
      "learn-basic-debugging-by-building-a-random-background-color-changer": {
        "title": "Aprende depuración básica construyendo un cambiador aleatorio de color de fondo",
        "intro": [
          "La depuración es el proceso de revisar tu código, encontrar problemas y arreglarlos.",
          "En este proyecto, ayudarás a CamperBot a construir un cambiador aleatorio de color de fondo y a encontrar y corregir errores."
        ]
      },
      "review-dom-manipulation-by-building-a-rock-paper-scissors-game": {
        "title": "Revise la manipulación de DOM mediante la creación de un juego de Piedra, Papel o Tijera",
        "intro": [
          "En los proyectos anteriores aprendiste los elementos básicos de la manipulación del DOM. Ahora es momento de revisar lo que has aprendido construyendo un juego de Piedra, Papel o Tijera.",
          "En este mini proyecto, revisarás condicionales, funciones, <code>getElementById</code> y más."
        ]
      }
    }
  },
  "front-end-development-libraries": {
    "title": "Front-End Development Libraries V8",
    "intro": [
      "Now that you're familiar with HTML, CSS, and JavaScript, level up your skills by learning some of the most popular front-end libraries in the industry.",
      "In the Front-End Development Libraries Certification, you'll learn how to style your site quickly with Bootstrap. You'll also learn how to add logic to your CSS styles and extend them with Sass.",
      "Después, construirás un carrito de compras y otras aplicaciones para aprender a crear poderosas aplicaciones de página única (SPAs) con React y Redux."
    ],
    "note": "",
    "blocks": {
      "bootstrap": {
        "title": "Bootstrap",
        "intro": [
          "Bootstrap is a front-end framework used to design responsive web pages and applications. It takes a mobile-first approach to web development, and includes pre-built CSS styles and classes, plus some JavaScript functionality.",
          "En este curso, aprenderás cómo crear sitios web adaptativos con Bootstrap, y utilizarás sus clases incluidas para estilizar botones, imágenes, formularios, navegación y otros elementos."
        ]
      },
      "jquery": {
        "title": "jQuery",
        "intro": [
          "jQuery es una de las librerías de JavaScript más utilizadas en el mundo.",
          "En 2006, cuando se lanzó, los principales navegadores manejaban JavaScript de forma ligeramente diferente. jQuery simplificó el proceso de escribir JavaScript del lado del cliente, y también garantizó que tu código funcionara de la misma manera en todos los navegadores.",
          "En este curso, aprenderás a usar jQuery para seleccionar, eliminar, copiar y modificar diferentes elementos de la página."
        ]
      },
      "sass": {
        "title": "SASS",
        "intro": [
          "Sass, o \"Syntactically Awesome StyleSheets\", es una extensión del lenguaje CSS. Añade características que no están disponibles en el CSS básico, lo que facilita la simplificación y el mantenimiento de las hojas de estilo de tus proyectos.",
          "En este curso de Sass, aprenderás cómo almacenar datos en variables, anidar CSS, crear estilos reutilizables con mixins, añadir lógica y bucles a tus estilos, y más."
        ]
      },
      "react": {
        "title": "React js",
        "intro": [
          "React es una librería muy popular de JavaScript para construir interfaces de usuario reutilizables controladas por componentes, para páginas web o aplicaciones.",
          "React combina HTML con la funcionalidad de JavaScript para crear su propio lenguaje de marcado llamado JSX. Además, facilita la administración del flujo de datos a través de la aplicación.",
          "En este curso, aprenderás cómo crear diferentes componentes de React, administrar las propiedades de estado de los datos, usar diferentes métodos de ciclo de vida como <code>componentDidMount</code> y mucho más."
        ]
      },
      "redux": {
        "title": "Redux",
        "intro": [
          "A medida que las aplicaciones crecen en tamaño y alcance, la gestión de datos compartidos se vuelve mucho más difícil. Redux se define como un \"contenedor de estado predecible para aplicaciones de JavaScript\" que ayuda a asegurar que tus aplicaciones funcionen de manera predecible, y sean más fáciles de probar.",
          "Aunque puedes usar Redux con cualquier librería de vistas, aquí introducimos Redux antes de combinarlo con React en los siguientes capítulos del curso.",
          "En este curso, aprenderás los fundamentos de almacenamiento en Redux, así como de las acciones, reductores e intermediarios para administrar datos a lo largo de tu aplicación."
        ]
      },
      "react-and-redux": {
        "title": "React y Redux",
        "intro": [
          "React y Redux se mencionan a menudo juntos, y con razón. El desarrollador que creó Redux era un desarrollador de React que quería hacer más fácil compartir datos a través de diferentes componentes.",
          "Ahora que sabes cómo administrar el flujo de datos compartidos con Redux, es hora de combinar ese conocimiento con React. En los cursos de React y Redux, construirás un componente de React y aprenderás cómo administrar el estado localmente a un nivel de componentes, y a lo largo de toda la aplicación con Redux."
        ]
      },
      "front-end-development-libraries-projects": {
        "title": "Front-End Development Libraries Projects",
        "intro": [
          "It's time to put your front-end development libraries skills to the test. Use Bootstrap, jQuery, Sass, React, and Redux to build 5 projects that will test everything you've learned up to this point.",
          "Complete all 5 projects, and you'll earn the Front-End Development Libraries certification."
        ]
      }
    }
  },
  "data-visualization": {
    "title": "Visualización de datos V8",
    "intro": [
      "Los datos están a nuestro alrededor, pero no significan mucho si no tienen forma o contexto.",
      "En la certificación Visualización de Datos, construirás diagramas, gráficos, y mapas para presentar diferentes tipos de datos utilizando la biblioteca D3.js.",
      "También aprenderás acerca de JSON (JavaScript Object Notation), y cómo trabajar con datos en línea usando un API (Application Programming Interface)."
    ],
    "note": "",
    "blocks": {
      "data-visualization-with-d3": {
        "title": "Visualización de datos con D3",
        "intro": [
          "D3, o D3.js, significa documentos basados en datos. Es una biblioteca JavaScript para crear visualizaciones de datos dinámicas e interactivas en el navegador.",
          "D3 está construido para trabajar con estándares web comunes – a saber, HTML, CSS y gráficos vectoriales escalables (SVG).",
          "D3 soporta muchos tipos diferentes de formatos de datos de entrada. Luego, usando sus potentes métodos incorporados, puedes transformar esos datos en diferentes diagramas, gráficos y mapas.",
          "En los cursos de Visualización de Datos con D3, aprenderás a trabajar con datos para crear diferentes tablas, gráficos, elementos flotantes y otros elementos para crear visualizaciones de datos dinámicas y atractivas."
        ]
      },
      "json-apis-and-ajax": {
        "title": "APIs JSON y AJAX",
        "intro": [
          "De forma similar a la que las interfaces de usuario \"UI\" ayudan a la gente a usar programas, las APIs (Interfaces de Programación de Aplicación) ayudan a los programas a interactuar con otros programas. Las APIs son herramientas que los ordenadores utilizan para comunicarse entre sí, en parte para enviar y recibir datos.",
          "Los programadores a menudo usan AJAX (Asynchronous JavaScript y XML) cuando trabajan con APIs. AJAX se refiere a un grupo de tecnologías que hacen peticiones asíncronas a un servidor para transferir datos, y luego cargar cualquier dato devuelto en la página. Y los datos transferidos entre el navegador y el servidor suelen estar en un formato llamado JSON (JavaScript Object Notation).",
          "Este curso te enseñará lo básico sobre trabajar con APIs y diferentes tecnologías AJAX en el navegador."
        ]
      },
      "data-visualization-projects": {
        "title": "Proyectos de visualización de datos",
        "intro": [
          "Ahora que has aprendido a trabajar con las tecnologías D3, APIs y AJAX, pon a prueba tus habilidades con estos 5 proyectos de visualización de datos.",
          "En estos proyectos, necesitarás obtener datos y analizar un conjunto de datos y después usar D3 para crear diferentes visualizaciones de datos. Termínalos todos para obtener tu certificación de visualización de datos."
        ]
      }
    }
  },
  "relational-database": {
    "title": "Base de Datos Relacional V8",
    "intro": [
      "Para estos cursos, usarás herramientas reales de desarrollador y software incluyendo código VS, PostgreSQL, y la línea de comandos Linux / Unix para completar tutoriales interactivos y construir proyectos.",
      "Estos cursos empiezan con comandos básicos de Base. Utilizando la terminal, aprenderá todo, desde navegar y manipular un sistema de archivos, programar en Bash, hasta el uso avanzado.",
      "A continuación, aprenderá cómo crear y utilizar una base de datos relacional con PostgreSQL, un sistema de gestión de bases de datos, y SQL, el idioma de estas bases de datos.",
      "Por ultimo, aprenderás Git, el sistema de control de version, una herramienta esencial de cada desarrollador."
    ],
    "blocks": {
      "build-a-celestial-bodies-database-project": {
        "title": "Base de datos de cuerpos celestes",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás una base de datos de cuerpos celestes usando PostgreSQL."
        ]
      },
      "build-a-number-guessing-game-project": {
        "title": "Juego de adivinanzas de números",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, usarás el script Bash, PostgreSQL, y Git para crear un juego de adivinación de números que se ejecuta en la terminal y guarda información del usuario."
        ]
      },
      "build-a-periodic-table-database-project": {
        "title": "Base de datos de la Tabla Periódica",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, crearás un script Bash para obtener información sobre elementos químicos desde una base de datos de la tabla periódica."
        ]
      },
      "build-a-salon-appointment-scheduler-project": {
        "title": "Planificador de citas de salón",
        "intro": [
          "Este es uno de los proyectos necesarios para ganar su certificación.",
          "Para este proyecto, crearás un programa Bash interactivo que utilice PostgreSQL para rastrear los clientes y citas de su salón."
        ]
      },
      "build-a-world-cup-database-project": {
        "title": "Base de datos de la Copa del Mundo",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, crearás un script Bash que ingrese información de los juegos de la Copa del Mundo en PostgreSQL, luego consultarás la base de datos para obtener estadísticas útiles."
        ]
      },
      "learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
        "title": "Aprende Bash Avanzado construyendo un traductor de Kitty Ipsum",
        "intro": [
          "Hay más comandos de Bash de lo que se podría pensar.",
          "En este curso de 140 lecciones, aprenderás algunos comandos más complejos, y los detalles de cómo funcionan los comandos."
        ]
      },
      "learn-bash-and-sql-by-building-a-bike-rental-shop": {
        "title": "Aprende Bash y SQL construyendo una tienda de alquiler de bicicletas",
        "intro": [
          "En este curso de 210 lecciones, construirás un programa interactivo de Bash que almacena información de alquiler para tu tienda de alquiler de bicicletas usando PostgreSQL."
        ]
      },
      "learn-bash-by-building-a-boilerplate": {
        "title": "Aprende Bash Construyendo una Plantilla",
        "intro": [
          "La terminal le permite enviar comandos de texto a su computadora que pueden manipular el sistema de archivos, ejecutar programas, automatizar tareas y mucho más.",
          "En este curso de 170 lecciones, aprenderá los comandos del terminal creando un boilerplate del sitio web usando sólo la línea de comandos."
        ]
      },
      "learn-bash-scripting-by-building-five-programs": {
        "title": "Aprende Bash Scripting construyendo cinco programas",
        "intro": [
          "Los scripts Bash combinan comandos de terminal y lógica en programas que pueden ejecutar o automatizar tareas, y mucho más.",
          "En este curso de 220 lecciones, aprenderá más comandos de terminal y cómo usarlos dentro de scripts de Bash creando cinco programas pequeños."
        ]
      },
      "learn-git-by-building-an-sql-reference-object": {
        "title": "Aprende Git construyendo un objeto de referencia SQL",
        "intro": [
          "Git es un sistema de control de versiones que mantiene un seguimiento de todos los cambios que realiza en su código base.",
          "En este curso de 240 lecciones, aprenderá cómo Git realiza un seguimiento de su código creando un objeto que contiene comandos SQL comúnmente utilizados."
        ]
      },
      "learn-nano-by-building-a-castle": {
        "title": "Aprende Nano construyendo un castillo",
        "intro": [
          "Nano es un programa que te permite editar archivos directamente en la terminal.",
          "En este curso de 40 lecciones, aprenderás cómo editar archivos en la terminal con Nano mientras construyes un castillo."
        ]
      },
      "learn-relational-databases-by-building-a-database-of-video-game-characters": {
        "title": "Aprenda Base de Datos Relacionales Creando una Base de Datos de Personaje de Videojuegos",
        "intro": [
          "Una base de datos relacional organiza datos en tablas que están vinculadas entre sí a través de relaciones.",
          "En este curso de 165 lecciones, aprenderás los fundamentos de una base de datos relacional creando una base de datos PostgreSQL llena de personajes de videojuego."
        ]
      },
      "learn-sql-by-building-a-student-database-part-1": {
        "title": "Aprender SQL construyendo una base de datos de estudiantes: Parte 1",
        "intro": [
          "SQL, o Query Language, es el lenguaje para comunicarse con una base de datos relacional.",
          "En este curso de 140 lecciones, creará un script Bash que utilice SQL para introducir información sobre sus estudiantes de informática en PostgreSQL."
        ]
      },
      "learn-sql-by-building-a-student-database-part-2": {
        "title": "Aprender SQL construyendo una base de datos de estudiantes: Parte 2",
        "intro": [
          "Los comandos SQL join se utilizan para combinar información de múltiples tablas en una base de datos relacional",
          "En este curso de 140 lecciones, completará su base de datos de estudiantes mientras se sumerge más en comandos SQL."
        ]
      }
    }
  },
  "back-end-development-and-apis": {
    "title": "Back-End Development and APIs V8",
    "intro": [
      "Until this point, you've only used JavaScript on the front-end to add interactivity to a page, solve algorithm challenges, or build an SPA. But JavaScript can also be used on the back-end, or server, to build entire web applications.",
      "Hoy en día, una de las formas populares para construir aplicaciones es a través de microservicios, que son pequeñas aplicaciones modulares que trabajan juntas para formar una aplicación más grande.",
      "In the Back-End Development and APIs Certification, you'll learn how to write back-end apps with Node.js and npm. You'll also build web applications with the Express framework, and build a People Finder microservice with MongoDB and the Mongoose library."
    ],
    "note": "",
    "blocks": {
      "managing-packages-with-npm": {
        "title": "Gestión de paquetes con NPM",
        "intro": [
          "npm (Gestor de Paquetes de Nodos), es una herramienta de línea de comandos para instalar, crear y compartir paquetes de código JavaScript escritos para Node.js. Hay muchos paquetes de código abierto disponibles en npm, así que antes de iniciar un proyecto, tómate algo de tiempo para explorar los diferentes paquetes, para que no termines reinventando la rueda para cosas comunes como trabajar con fechas y obtener datos de una API.",
          "En este curso, aprenderás los conceptos básicos del uso de npm, incluyendo cómo trabajar con el <code>package.json</code> y cómo administrar las dependencias instaladas."
        ]
      },
      "basic-node-and-express": {
        "title": "Node y Express Basico",
        "intro": [
          "Node.js is a JavaScript runtime that allows developers to write back-end (server-side) programs in JavaScript. Node.js comes with a handful of built-in modules — small, independent programs — that help with this. Some of the core modules include HTTP, which acts like a server, and File System, a module to read and modify files.",
          "En el último conjunto de cursos aprendiste a instalar y administrar paquetes desde npm, que son colecciones de módulos más pequeños. Estos paquetes pueden ayudarte a construir aplicaciones más grandes y complejas.",
          "Express es un framework para aplicaciones web y es uno de los paquetes más populares en npm. Express logra que crear un servidor y manejar el enrutamiento de tu aplicación sea mucho más fácil, ya que realiza cosas como redirigir a las personas a la página correcta cuando visitan un endpoint como <pre>/blog</pre>.",
          "En este curso, aprenderás los fundamentos de Node y Express, incluyendo cómo crear un servidor, servir diferentes archivos y gestionar diferentes peticiones desde el navegador."
        ]
      },
      "mongodb-and-mongoose": {
        "title": "MongoDB y Mongoose",
        "intro": [
          "MongoDB es una aplicación de base de datos que almacena documentos JSON (o registros) que puede usar en su aplicación. A diferencia de SQL, otro tipo de base de datos, MongoDB es una base de datos no relacional o \"NoSQL\". Esto significa que MongoDB almacena todos los datos asociados dentro de un registro, en lugar de almacenarlos en muchas tablas preestablecidas como en una base de datos SQL.",
          "Mongoose es un paquete npm popular para interactuar con MongoDB. Con Mongoose, puede usar objetos de JavaScript sin formato en lugar de JSON, lo que facilita el trabajo con MongoDB. Además, le permite crear planos para sus documentos llamados esquemas, para que no guarde accidentalmente el tipo de datos incorrecto y provoque errores más adelante.",
          "En los cursos de MongoDB y Mongoose, aprenderás los fundamentos para trabajar con datos persistentes, incluyendo cómo configurar un modelo, guardar, eliminar y encontrar documentos en la base de datos."
        ]
      },
      "back-end-development-and-apis-projects": {
        "title": "Back-End Development and APIs Projects",
        "intro": [
          "Ya has trabajado con APIs antes, pero ahora que sabes utilizar npm, Node, Express, MongoDB y Mongoose, es momento de construir la tuya. Haz uso de todo lo que aprendiste hasta ahora para crear 5 microservicios diferentes, los cuales son aplicaciones más pequeñas con ámbito limitado.",
          "After creating these, you'll have 5 cool microservice APIs you can show off to friends, family, and potential employers. Oh, and you'll have a shiny new Back-End Development and APIs Certification, too."
        ]
      }
    }
  },
  "quality-assurance": {
    "title": "Control de Calidad",
    "intro": [
      "A medida que tus programas o aplicaciones web se vuelven más complejos, querrás probarlos para asegurarte de que los nuevos cambios no rompan su funcionalidad original.",
      "En la certificación de control de calidad, aprenderás a escribir pruebas con Chai para asegurarte de que tus aplicaciones funcionan como esperas.",
      "Luego construirás una aplicación de chat para aprender conceptos avanzados de Node y Express. También usarás Pug como motor de plantillas, Passport para autenticación y Socket.io para la comunicación en tiempo real entre el servidor y los clientes conectados."
    ],
    "note": "",
    "blocks": {
      "quality-assurance-and-testing-with-chai": {
        "title": "Control de calidad y pruebas con Chai",
        "intro": [
          "Chai es una librería de pruebas de JavaScript que te ayuda a confirmar que tu programa todavía se comporta de la manera que esperas después de realizar cambios en tu código.",
          "Usando Chai, puedes escribir pruebas que describan los requisitos de tu programa y ver si tu programa los cumple.",
          "En este curso, aprenderá sobre aserciones, igualdad profunda, veracidad, pruebas de APIs y otros fundamentos para probar aplicaciones JavaScript."
        ]
      },
      "advanced-node-and-express": {
        "title": "Node y Express avanzados",
        "intro": [
          "Ahora es el momento de sumergirse en Node.js y Express.js construyendo una aplicación de chat con un sistema de inicio de sesión.",
          "Para implementar el sistema de inicio de sesión de forma segura, necesitarás aprender acerca de autenticación. Este es el acto de verificar la identidad de una persona o proceso.",
          "In this course, you'll learn how to use Passport to manage authentication, Pug to create reusable templates for quickly building the front-end, and web sockets for real-time communication between the clients and server."
        ]
      },
      "quality-assurance-projects": {
        "title": "Proyectos de control de calidad",
        "intro": [
          "Now that you're well versed in both the front-end and back-end, it's time to apply all the skills and concepts you've learned up to this point. You'll build 5 different web applications, and write tests for each one to make sure they're working and can handle different edge cases.",
          "Después de completar estos proyectos de Control de Calidad, tendrás 5 proyectos más en tu currículum, y una nueva certificación para mostrar en tu portafolio."
        ]
      }
    }
  },
  "scientific-computing-with-python": {
    "title": "Computación científica con Python",
    "intro": [
      "El programa de computación científica con Python te brindará las habilidades para analizar y manipular datos utilizando Python, un lenguaje de programación potente y versátil. Aprenderás conceptos clave como estructuras de datos, algoritmos, programación orientada a objetos y cómo realizar cálculos complejos utilizando una variedad de herramientas.",
      "Este curso guia te guiará hacia los fundamentos de la computación cientifica, incluyendo las estructuras de datos y algoritmos."
    ],
    "note": "",
    "blocks": {
      "learn-string-manipulation-by-building-a-cipher": {
        "title": "Aprenda la Manipulación de Cadenas Construyendo un Cipher",
        "intro": [
          "Python es un lenguaje popular y poderoso ampliamente utilizado para la ciencia de datos, visualización de datos, desarrollo web, desarrollo de videojuegos, aprendizaje automatizado y más.",
          "En este proyecto, aprenderás conceptos fundamentales de la programación en Python, como sus variables, funciones, bucles, y declaraciones condicionales. Usaras estos códigos en tus primeros programas."
        ]
      },
      "learn-how-to-work-with-numbers-and-strings-by-implementing-the-luhn-algorithm": {
        "title": "Aprenda Como Trabajar con Números y Cadenas Implementando el Algoritmo Luhn",
        "intro": [
          "El Algoritmo Luhn is ampliamente usado para comprobación de errores en aplicaciones varias, como verificar los números en las tarjetas de crédito.",
          "Construyendo este proyecto, ganaras experiencia trabajando con cómputos numéricos y manipulación de cadenas."
        ]
      },
      "learn-list-comprehension-by-building-a-case-converter-program": {
        "title": "Aprenda Compresión de Listas en Python Creando un Conversor de Mayúsculas a Minúsculas",
        "intro": [
          "La Compresión de Listas es una nueva forma de construir listas en Python desde unos tipos iterables: listas, tuples, y cadenas. Todo sin usar un bucle for ó el método de lista `.append()`.",
          "En este proyecto, escribirás un programa que toma una cadena formateada en Camel Case ó Pascal Case, luego lo convierte en Snake Case.",
          "El proyecto tiene dos fases: primero usaras un bucle for para ejecutar el programa. Luego aprenderás como se usa la Comprensión de Lista en lugar de un bucle para lograr los mismos resultados."
        ]
      },
      "learn-regular-expressions-by-building-a-password-generator": {
        "title": "Aprende Expresiones Regulares para Construir un Generador de Contraseñas",
        "intro": [
          "Un modulo Python es un archivo que contiene un conjunto de declaraciones y definiciones que tu puedes usar en tu código.",
          "En este proyecto, aprendera a como importar modulos desde la libreria estandar de Python. Tambien aprenderas a como usar Expresiones Regulares contruyendo tu propio programa generador de contaseñas."
        ]
      },
      "learn-algorithm-design-by-building-a-shortest-path-algorithm": {
        "title": "Aprende Diseño de Algoritmo Construyendo un Algoritmo de la Ruta más Corta",
        "intro": [
          "Los Algoritmos son procesos paso por paso que los desarrolladores usan para ejecutar cálculos y resolver problemas computacionales.",
          "En este proyecto, aprenderás a como usar funciones, bucles, declaraciones condicionales, y comprensiones de diccionario para realizar un algoritmo de la Ruta más Corta."
        ]
      },
      "learn-recursion-by-solving-the-tower-of-hanoi-puzzle": {
        "title": "Aprende Recursividad Resolviendo el Puzzle de la Torre de Hanoi",
        "intro": [
          "La recursividad es un enfoque de la programacion que te permite resolver problemas computacionales complicados con solo un poco de codigo.",
          "En este proyecto, comenzaras con un bucle basado en el enfoque para resolver el puzzle la torre de Hanoi. Luego aprenderás a como realizar una solución recursiva."
        ]
      },
      "learn-data-structures-by-building-the-merge-sort-algorithm": {
        "title": "Aprende Estructuras de Datos Construyendo el Algoritmo para Orden de Fusión",
        "intro": [
          "El Algoritmo de Orden por Fusión es un algoritmo de orden basado en el principio divide y conquistaras.",
          "En este proyecto, aprenderás a como interactuar con estructuras de datos ordenando una lista de números aleatorios usando el Algoritmo de Orden por Fusión."
        ]
      },
      "learn-classes-and-objects-by-building-a-sudoku-solver": {
        "title": "Aprende Clases y Objetos Construyendo un Solucionador de Sudoku",
        "intro": [
          "Las clases y los objetos son conceptos importantes de programación. Estas herramientas de programación Orientadas a Objetos ayudan a los desarrolladores para lograr la modularidad del código, abstracción, y legibilidad. Y esto promueve su reutilización.",
          "En este proyecto Solucionador de Sudoku, aprenderás a como usar clases y objetos construyendo una cuadricula de Sudoku y a resolver un puzzle Sudoku."
        ]
      },
      "learn-tree-traversal-by-building-a-binary-search-tree": {
        "title": "Aprende el Árbol de Recorrido Construyendo un Árbol de Búsqueda Binaria",
        "intro": [
          "Un Árbol de Búsqueda Binaria (BST) es una estructura común de datos donde los datos son ordenados jerárquicamente.",
          "En este proyecto, aprenderás a como construir tu propio BST y ejecutar un recorrido en orden. También aprenderás operaciones clave como inserción, búsqueda, y eliminación."
        ]
      },
      "learn-lambda-functions-by-building-an-expense-tracker": {
        "title": "Aprende Funciones Lambda Construyendo un Rastreador de Gasto",
        "intro": [
          "Las funciones Lambda le entregan una concisa manera de escribir pequeñas, funciones desechables en su código.",
          "En este proyecto exploraras el poder de las Funciones Lambda creando un rastreador de gasto. La aplicación resultante demostrará cómo puede utilizar Funciones Lambda en eficiencia, y operaciones simplificadas."
        ]
      },
      "build-an-arithmetic-formatter-project": {
        "title": "Construye un formateador aritmético",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener tu certificación."
        ]
      },
      "build-a-time-calculator-project": {
        "title": "Construye una calculadora de tiempo",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener tu certificación."
        ]
      },
      "build-a-budget-app-project": {
        "title": "Construye una app de presupuestos",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener tu certificación."
        ]
      },
      "build-a-polygon-area-calculator-project": {
        "title": "Construye una calculadora del área de un polígono",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener tu certificación."
        ]
      },
      "build-a-probability-calculator-project": {
        "title": "Construye una calculadora de probabilidades",
        "intro": [
          "Este es uno de los proyectos requeridos para obtener tu certificación."
        ]
      },
      "learn-interfaces-by-building-an-equation-solver": {
        "title": "Aprende interfaces construyendo un solucionador de ecuaciones",
        "intro": [
          "Las clases abstractas permiten definir interfaces formales: objetos que actúan como planos para las clases.",
          "En este proyecto, descubrirás cómo implementar una interfaz en Python mientras construyes un sencillo programa solucionador de ecuaciones."
        ]
      },
      "learn-special-methods-by-building-a-vector-space": {
        "title": "Aprender métodos especiales construyendo un espacio vectorial",
        "intro": [
          "Los metodos especiales de Python son llamados en respuesta a operaciones especificas y te permiten personalizar efectiva y detalladamente el comportamiento de tus objetos.",
          "En este proyecto, vas a explorar algunos de los métodos especiales más comunes mientras aprendes sobre vectores construyendo un espacio vectorial."
        ]
      },
      "learn-encapsulation-by-building-a-projectile-trajectory-calculator": {
        "title": "Aprende a encapsular construyendo una calculadora de trayectoria de proyectiles",
        "intro": [
          "La encapsulación es un principio básico de la programación orientada a objetos basado en la escritura de código que limita el acceso directo a los datos.",
          "En este proyecto, descubrirás nuevos conceptos relacionados con la encapsulación, como getters, setters y manipulación de nombres, y los utilizarás junto con lo que ya has aprendido para crear un programa que calcule la trayectoria de un proyectil."
        ]
      },
      "learn-the-bisection-method-by-finding-the-square-root-of-a-number": {
        "title": "Aprende el método de bisección encontrando la raíz cuadrada de un número",
        "intro": [
          "Los métodos numéricos se utilizan para aproximar soluciones a problemas matemáticos difíciles o imposibles de resolver analíticamente.",
          "En este proyecto explorarás el método numérico de bisección para encontrar la raíz cuadrada de un número reduciendo iterativamente el rango posible de valores que contienen la raíz cuadrada."
        ]
      }
    }
  },
  "data-analysis-with-python": {
    "title": "Análisis de Datos con Python",
    "intro": [
      "El análisis de datos ha existido durante mucho tiempo. Pero hasta hace apenas pocos años, los desarrolladores lo practicaban utilizando herramientas costosas de código cerrado como Tableau. Sin embargo recientemente, Python, SQL y otras librerías abiertas han cambiado el Análisis de Datos para siempre.",
      "En la Certificación de Análisis de Datos con Python, aprenderás los fundamentos del análisis de datos con Python. Al terminar la certificación, sabrás como leer datos de fuentes como CSV y SQL, y como usar librerías tales como Numpy, Pandas, Matplotlib y Seaborn para procesar y visualizar datos."
    ],
    "note": "",
    "blocks": {
      "data-analysis-with-python-course": {
        "title": "Análisis de datos con Python",
        "intro": [
          "En esta serie de video cursos, creados por Santiago Basulto, aprenderás todo el proceso de análisis de datos. Leerás datos de múltiples fuentes (CSV, SQL, Excel), procesarás los datos usando NumPy, Pandas y los visualizarás usando Matplotlib y Seaborn,",
          "Además, hemos incluido un curso completo de Jupyter Notebook, y una referencia rápida de Python para actualizar tus habilidades de programación."
        ]
      },
      "numpy": {
        "title": "Numpy",
        "intro": [
          "Aprende los fundamentos de la librería NumPy en el siguiente video curso creado por Keith Galli.",
          "En este curso aprenderás como trabaja NumPy y como se compara con las listas integradas en Python. Aprenderás también como escribir código con NumPy, indexación, remodelar, estadística aplicada y mucho más."
        ]
      },
      "data-analysis-with-python-projects": {
        "title": "Proyectos de análisis de datos con Python",
        "intro": [
          "Hay muchas formas de analizar datos con Python. Al completar estos proyectos, demostrarás que tienes los conocimientos fundamentales del análisis de datos con Python.",
          "Termina todos los proyectos para reclamar tu Certificación de Análisis de Datos con Python."
        ]
      }
    }
  },
  "learn-python-for-beginners": {
    "title": "Learn Python for Beginners",
    "summary": [
      "Learn the fundamentals of Python programming from the ground up by practicing foundational concepts and building small projects."
    ],
    "intro": [
      "Python is one of the most popular programming languages today. It's easy to learn, readable, and versatile.",
      "In this comprehensive course, you'll learn the fundamentals of Python programming from the ground up. You'll start with basic concepts like variables and data types, progress through control flow and functions, and build projects to practice what you've learned."
    ],
    "note": "",
    "blocks": {
      "python-setup-first-steps": {
        "title": "Python Setup & First Steps",
        "intro": [
          "In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
        ]
      },
      "core-primitives-in-python": {
        "title": "Core Primitives in Python",
        "intro": [
          "In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
        ]
      },
      "small-python-projects": {
        "title": "Small Python Projects",
        "intro": [
          "In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
        ]
      },
      "lists-and-tuples": {
        "title": "Lists and Tuples",
        "intro": [
          "In these videos, you will learn about lists, tuples and common operations."
        ]
      },
      "control-flow-and-functions-in-python": {
        "title": "Control Flow and Functions",
        "intro": [
          "In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
        ]
      },
      "dictionaries-and-loops": {
        "title": "Dictionaries and Loops",
        "intro": [
          "In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
        ]
      },
      "error-handling-files-and-modules-in-python": {
        "title": "Error Handling, Files, and Modules",
        "intro": [
          "In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
        ]
      },
      "object-oriented-programming-with-python": {
        "title": "Object-Oriented Programming with Python",
        "intro": [
          "In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
        ]
      }
    }
  },
  "introduction-to-algorithms-and-data-structures": {
    "title": "Introduction to Algorithms and Data Structures",
    "summary": [
      "Learn about common algorithms and data structures in this introductory course."
    ],
    "intro": [
      "Algorithms and Data Structures are the backbone of programming. So it's important to learn how to work with them.",
      "In this comprehensive course, you will learn about common sorting and searching algorithms including merge sort, quicksort and binary search.",
      "You will also learn how to work with common data structures including arrays and linked lists."
    ],
    "note": "",
    "blocks": {
      "searching-algorithms": {
        "title": "Searching Algorithms",
        "intro": [
          "In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
        ]
      },
      "time-complexity": {
        "title": "Time Complexity",
        "intro": [
          "In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
        ]
      },
      "algorithms-in-code": {
        "title": "Algorithms in Code",
        "intro": [
          "In these videos, you will write Python code for the linear and binary search algorithms."
        ]
      },
      "recursion-and-space-complexity": {
        "title": "Recursion and Space Complexity",
        "intro": [
          "In these videos, you will learn about recursion and space complexity for algorithms."
        ]
      },
      "introduction-to-arrays": {
        "title": "Introduction to Arrays",
        "intro": [
          "In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
        ]
      },
      "introduction-to-linked-lists": {
        "title": "Introduction to Linked Lists",
        "intro": [
          "In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
        ]
      },
      "merge-sort-algorithm": {
        "title": "Merge Sort Algorithm",
        "intro": [
          "In these videos, you will learn about the merge sort algorithm."
        ]
      },
      "sorting-a-linked-list": {
        "title": "Sorting a Linked List",
        "intro": [
          "In these videos, you will learn more about how to sort linked lists."
        ]
      },
      "sorting-algorithms": {
        "title": "Sorting Algorithms",
        "intro": [
          "In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
        ]
      },
      "searching-names-using-sorting-and-searching-algorithms": {
        "title": "Searching Names using Sorting and Searching Algorithms",
        "intro": [
          "In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
        ]
      }
    }
  },
  "learn-rag-mcp-fundamentals": {
    "title": "Learn RAG and MCP Fundamentals",
    "summary": [
      "Learn the fundamentals of RAG and MCP in this comprehensive video course."
    ],
    "intro": [
      "RAG stands for Retrieval-Augmented Generation. MCP stands for Model Context Protocol. These are powerful frameworks for building AI agents that can retrieve information from a knowledge base, generate responses based on that information, and plan their actions accordingly.",
      "In this course, you'll learn the fundamentals of RAG and MCP and how to implement them in your own projects. You'll explore the components of RAG and MCP, including retrieval, generation, memory, context, and planning. By the end of this course, you'll have a solid understanding of how RAG and MCP work and how to use them to build intelligent agents."
    ],
    "note": "",
    "blocks": {
      "understanding-rag": {
        "title": "Understanding RAG",
        "intro": [
          "Learn the fundamentals of Retrieval-Augmented Generation (RAG), including what it is, when to use it, and core concepts."
        ]
      },
      "retrieval-engine-internals": {
        "title": "Retrieval Engine Internals",
        "intro": [
          "Dive into semantic search, embedding models, vector databases, and chunking to understand how retrieval works under the hood."
        ]
      },
      "designing-reliable-rag-systems": {
        "title": "Designing Reliable RAG Systems",
        "intro": [
          "Explore RAG architecture, monitoring, error handling, and how to deploy RAG systems in production."
        ]
      },
      "mcp-ecosystem-and-tooling": {
        "title": "MCP Ecosystem & Tooling",
        "intro": [
          "Learn why MCP exists, its architecture, JSON-RPC, and how to build and use MCP servers and clients effectively."
        ]
      }
    }
  },
  "introduction-to-precalculus": {
    "title": "Introduction to Precalculus",
    "summary": [
      "Learn the fundamentals of precalculus, including functions, and trigonometry."
    ],
    "intro": [
      "Precalculus is a branch of mathematics that prepares you for calculus. It covers a wide range of topics including functions, and trigonometry."
    ],
    "note": "",
    "blocks": {
      "function-basics": {
        "title": "Function Basics",
        "intro": [
          "In these videos, you will learn about functions and how to work with them."
        ]
      },
      "angles-and-circular-motion": {
        "title": "Angles and Circular Motion",
        "intro": [
          "In these videos, you will learn about angles and circular motion."
        ]
      },
      "right-triangle-trigonometry": {
        "title": "Right Triangle Trigonometry",
        "intro": [
          "In these videos, you will learn about right triangle trigonometry and how to work with it."
        ]
      },
      "trig-graphs-inverses": {
        "title": "Trigonometric Graphs and Inverses",
        "intro": [
          "In these videos, you will learn about trigonometric graphs and inverse functions."
        ]
      },
      "solving-trig-equations": {
        "title": "Solving Trigonometric Equations",
        "intro": [
          "In these videos, you will learn how to solve trigonometric equations."
        ]
      },
      "trig-identities-formulas": {
        "title": "Trigonometric Identities and Formulas",
        "intro": [
          "In these videos, you will learn about trigonometric identities and formulas."
        ]
      },
      "advanced-trig-conics": {
        "title": "Advanced Trigonometry and Conics",
        "intro": [
          "In these videos, you will learn about advanced trigonometry and conic sections."
        ]
      }
    }
  },
  "introduction-to-bash": {
    "title": "Introduction to Bash",
    "summary": [
      "Learn how to use the terminal and write Bash scripts to automate tasks and manage files and processes."
    ],
    "intro": [
      "Bash is a Unix shell and command language that provides a powerful interface for interacting with your computer's operating system. It allows you to execute commands, automate tasks, and manage files and processes efficiently.",
      "In this course, you'll learn the basics of Bash scripting, including how to navigate the file system, manipulate files and directories."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-the-command-line-and-working-with-bash": {
        "title": "Understanding the Command Line and Working with Bash",
        "intro": [
          "Learn about the Command Line and Working with Bash in these lessons."
        ]
      },
      "workshop-bash-boilerplate": {
        "title": "Build a Boilerplate",
        "intro": [
          "The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
          "In this 170-lesson workshop, you will learn terminal commands by creating a website boilerplate using only the command line."
        ]
      },
      "review-bash-commands": {
        "title": "Bash Commands Review",
        "intro": [
          "Review the Bash Commands concepts to prepare for the upcoming quiz."
        ]
      },
      "quiz-bash-commands": {
        "title": "Bash Commands Quiz",
        "intro": ["Test what you've learned bash commands with this quiz."]
      }
    }
  },
  "introduction-to-sql-and-postgresql": {
    "title": "Introduction to SQL and PostgreSQL",
    "summary": [
      "Learn how to use SQL and PostgreSQL to create and manage relational databases."
    ],
    "intro": [
      "SQL (Structured Query Language) is a programming language used to manage and manipulate relational databases. It allows you to create, read, update, and delete data in a database.",
      "PostgreSQL is a powerful, open-source relational database management system that uses SQL as its query language. It provides a robust and scalable platform for storing and managing data."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-relational-databases": {
        "title": "Working with Relational Databases",
        "intro": [
          "Learn how to work with Relational Databases in these lessons."
        ]
      },
      "workshop-database-of-video-game-characters": {
        "title": "Build a Database of Video Game Characters",
        "intro": [
          "A relational database organizes data into tables that are linked together through relationships.",
          "In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
        ]
      },
      "lab-celestial-bodies-database": {
        "title": "Build a Celestial Bodies Database",
        "intro": [
          "For this project, you will build a database of celestial bodies using PostgreSQL."
        ]
      },
      "review-sql-and-postgresql": {
        "title": "SQL and PostgreSQL Review",
        "intro": [
          "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz."
        ]
      },
      "quiz-sql-and-postgresql": {
        "title": "SQL and PostgreSQL Quiz",
        "intro": [
          "Test what you've learned about SQL and PostgreSQL with this quiz."
        ]
      }
    }
  },
  "learn-bash-scripting": {
    "title": "Learn Bash Scripting",
    "summary": [
      "Learn how to write Bash scripts to automate tasks and manage files and processes."
    ],
    "intro": [
      "Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
      "In this course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-bash-scripting": {
        "title": "Understanding Bash Scripting",
        "intro": ["Learn about Bash Scripting in these lessons."]
      },
      "workshop-bash-five-programs": {
        "title": "Build Five Programs",
        "intro": [
          "Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
          "In this 220-lesson workshop, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
        ]
      },
      "review-bash-scripting": {
        "title": "Bash Scripting Review",
        "intro": [
          "Review the bash scripting concepts you've learned to prepare for the upcoming quiz."
        ]
      },
      "quiz-bash-scripting": {
        "title": "Bash Scripting Quiz",
        "intro": ["Test what you've learned on bash scripting in this quiz."]
      }
    }
  },
  "learn-sql-and-bash": {
    "title": "Learn SQL and Bash",
    "summary": [
      "Learn how to use SQL and Bash together to manage and manipulate relational databases."
    ],
    "intro": [
      "SQL, or Structured Query Language, is the language for communicating with a relational database. Bash is a Unix shell and command language that provides a powerful interface for interacting with your computer's operating system.",
      "In this course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-sql": {
        "title": "Working With SQL",
        "intro": [
          "In these lessons, you will learn about SQL injection, normalization, and the N+1 problem."
        ]
      },
      "workshop-sql-student-database-part-1": {
        "title": "Build a Student Database: Part 1",
        "intro": [
          "SQL, or Structured Query Language, is the language for communicating with a relational database.",
          "In this 140-lesson workshop, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
        ]
      },
      "workshop-sql-student-database-part-2": {
        "title": "Build a Student Database: Part 2",
        "intro": [
          "SQL join commands are used to combine information from multiple tables in a relational database",
          "In this 140-lesson workshop, you will complete your student database while diving deeper into SQL commands."
        ]
      },
      "lab-world-cup-database": {
        "title": "Build a World Cup Database",
        "intro": [
          "For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
        ]
      },
      "workshop-kitty-ipsum-translator": {
        "title": "Build a Kitty Ipsum Translator",
        "intro": [
          "There's more to Bash commands than you might think.",
          "In this 140-lesson workshop, you will learn some more complex commands, and the details of how commands work."
        ]
      },
      "workshop-bike-rental-shop": {
        "title": "Build a Bike Rental Shop",
        "intro": [
          "In this 210-lesson workshop, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
        ]
      },
      "lab-salon-appointment-scheduler": {
        "title": "Build a Salon Appointment Scheduler",
        "intro": [
          "For this lab, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
        ]
      },
      "review-bash-and-sql": {
        "title": "Bash and SQL Review",
        "intro": [
          "Review the Bash and SQL concepts to prepare for the upcoming quiz."
        ]
      },
      "quiz-bash-and-sql": {
        "title": "Bash and SQL Quiz",
        "intro": ["Test what you've learned in this quiz on Bash and SQL."]
      }
    }
  },
  "introduction-to-nano": {
    "title": "Introduction to Nano",
    "summary": [
      "Learn how to use the Nano text editor to create and edit files in the terminal."
    ],
    "intro": [
      "Nano is a simple, user-friendly text editor that runs in the terminal. It allows you to create and edit files without leaving the command line.",
      "In this course, you'll learn how to use Nano to create and edit files, navigate through text, and perform basic editing operations."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-nano": {
        "title": "Working With Nano",
        "intro": ["Learn about Nano in this lesson."]
      },
      "workshop-castle": {
        "title": "Build a Castle",
        "intro": [
          "Nano is a program that allows you to edit files right in the terminal.",
          "In this 40-lesson workshop, you will learn how to edit files in the terminal with Nano while building a castle."
        ]
      }
    }
  },
  "introduction-to-git-and-github": {
    "title": "Introduction to Git and GitHub",
    "summary": [
      "Learn how to use Git and GitHub to manage and collaborate on software projects."
    ],
    "intro": [
      "Git is a version control system that allows developers to track changes in their code and collaborate with others. GitHub is a web-based platform that provides hosting for Git repositories, making it easier for developers to share and collaborate on projects.",
      "In this course, you'll learn the basics of Git and GitHub, including how to create repositories, commit changes, and collaborate with others on software projects."
    ],
    "note": "",
    "blocks": {
      "lecture-introduction-to-git-and-github": {
        "title": "Introduction to Git and GitHub",
        "intro": ["Learn how to work with Git and GitHub in these lessons."]
      },
      "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
        "title": "Working With Code Reviews, Branching, Deployment, and CI/CD",
        "intro": [
          "Learn about code reviews, branching, deployment, and CI/CD in these lessons."
        ]
      },
      "workshop-sql-reference-object": {
        "title": "Build an SQL Reference Object",
        "intro": [
          "Git is a version control system that keeps track of all the changes you make to your codebase.",
          "In this 240-lesson workshop, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
        ]
      },
      "review-git": {
        "title": "Git Review",
        "intro": ["Review Git concepts to prepare for the upcoming quiz."]
      },
      "quiz-git": {
        "title": "Git Quiz",
        "intro": ["Test what you've learned on Git with this quiz."]
      }
    }
  },
  "learn-oop-with-python": {
    "title": "Learn OOP with Python",
    "summary": [
      "In this video course, you will learn about object-oriented programming using Python."
    ],
    "intro": [
      "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
    ],
    "note": "",
    "blocks": {
      "oop-basics": {
        "title": "OOP Basics",
        "intro": [
          "In these videos, learn the basics of OOP including how to create classes and work with constructors."
        ]
      },
      "methods-and-inheritance": {
        "title": "Methods and Inheritance",
        "intro": [
          "In these videos, learn about methods and inheritance in OOP."
        ]
      },
      "advanced-oop-concepts": {
        "title": "Advanced OOP Concepts",
        "intro": [
          "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
        ]
      }
    }
  },
  "introduction-to-python-basics": {
    "title": "Introduction to Python Basics",
    "summary": ["Learn the fundamentals of Python programming."],
    "intro": [
      "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
    ],
    "note": "",
    "blocks": {
      "lecture-introduction-to-python": {
        "title": "Introduction to Python",
        "intro": [
          "In these lessons, you will learn what Python is and how to set up your development environment."
        ]
      },
      "lecture-understanding-variables-and-data-types": {
        "title": "Understanding Variables and Data Types",
        "intro": [
          "In these lessons, you will learn about variables and data types in Python."
        ]
      },
      "workshop-report-card-printer": {
        "title": "Build a Report Card Printer",
        "intro": [
          "In this workshop, you will build a report card printer to work with primitive data types in Python."
        ]
      },
      "lecture-introduction-to-python-strings": {
        "title": "Introduction to Strings",
        "intro": ["In these lessons, you will learn about strings in Python."]
      },
      "workshop-employee-profile-generator": {
        "title": "Build an Employee Profile Generator",
        "intro": [
          "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
        ]
      },
      "lecture-numbers-and-mathematical-operations": {
        "title": "Numbers and Mathematical Operations",
        "intro": [
          "In these lessons, you will learn about numbers and mathematical operations in Python."
        ]
      },
      "workshop-bill-splitter": {
        "title": "Build a Bill Splitter",
        "intro": [
          "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
        ]
      },
      "lecture-booleans-and-conditionals": {
        "title": "Booleans and Conditionals",
        "intro": [
          "In these lessons, you will learn about booleans and conditionals in Python."
        ]
      },
      "workshop-movie-ticket-booking-calculator": {
        "title": "Build a Movie Ticket Booking Calculator",
        "intro": [
          "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
        ]
      },
      "lab-travel-weather-planner": {
        "title": "Build a Travel Weather Planner",
        "intro": [
          "In this lab, you will build a travel weather planner using conditionals."
        ]
      },
      "lecture-understanding-functions-and-scope": {
        "title": "Understanding Functions and Scope",
        "intro": [
          "In these lessons, you will learn about functions and scope in Python."
        ]
      },
      "lab-discount-calculator": {
        "title": "Build an Apply Discount Function",
        "intro": [
          "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
        ]
      },
      "workshop-caesar-cipher": {
        "title": "Build a Caesar Cipher",
        "intro": [
          "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
        ]
      },
      "lab-rpg-character": {
        "title": "Build an RPG Character",
        "intro": [
          "In this lab you will practice basic Python by building an RPG character."
        ]
      },
      "review-python-basics": {
        "title": "Python Basics Review",
        "intro": [
          "Before you're quizzed on Python basics, you should review what you've learned about it.",
          "In this review page, you will review working with strings, functions, comparison operators and more."
        ]
      },
      "quiz-python-basics": {
        "title": "Python Basics Quiz",
        "intro": [
          "Test what you've learned about Python basics with this quiz."
        ]
      }
    }
  },
  "learn-python-loops-and-sequences": {
    "title": "Learn Python Loops and Sequences",
    "summary": ["Learn how to work with loops and sequences in Python."],
    "intro": [
      "In this interactive course, you will learn how to work with loops and sequences in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-loops-and-sequences": {
        "title": "Working with Loops and Sequences",
        "intro": [
          "Learn about working with loops and sequences in these lessons."
        ]
      },
      "workshop-pin-extractor": {
        "title": "Build a Pin Extractor",
        "intro": [
          "In this workshop you will build a function to extract secret pins hidden in poems."
        ]
      },
      "lab-number-pattern-generator": {
        "title": "Build a Number Pattern Generator",
        "intro": ["In this lab you will build a number pattern generator."]
      },
      "review-loops-and-sequences": {
        "title": "Loops and Sequences Review",
        "intro": [
          "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
          "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
        ]
      },
      "quiz-loops-and-sequences": {
        "title": "Loops and Sequences Quiz",
        "intro": [
          "Test what you've learned about loops and sequences in Python with this quiz."
        ]
      }
    }
  },
  "learn-python-dictionaries-and-sets": {
    "title": "Learn Python Dictionaries and Sets",
    "summary": ["Learn how to work with dictionaries and sets in Python."],
    "intro": [
      "In this interactive course, you will learn how to work with dictionaries and sets in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-dictionaries-and-sets": {
        "title": "Working with Dictionaries and Sets",
        "intro": [
          "Learn about working with dictionaries and sets in these lessons."
        ]
      },
      "lecture-working-with-modules": {
        "title": "Working with Modules",
        "intro": ["Learn about working with modules in these lessons."]
      },
      "workshop-medical-data-validator": {
        "title": "Build a Medical Data Validator",
        "intro": [
          "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
        ]
      },
      "lab-user-configuration-manager": {
        "title": "Build a User Configuration Manager",
        "intro": [
          "In this lab, you will practice working with dictionaries in Python."
        ]
      },
      "review-dictionaries-and-sets": {
        "title": "Dictionaries and Sets Review",
        "intro": [
          "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
          "Open up this page to review concepts around dictionaries, sets, and how to import modules."
        ]
      },
      "quiz-dictionaries-and-sets": {
        "title": "Dictionaries and Sets Quiz",
        "intro": [
          "Test what you've learned about dictionaries and sets in Python with this quiz."
        ]
      }
    }
  },
  "learn-error-handling-in-python": {
    "title": "Learn Error Handling in Python",
    "summary": ["Learn how to handle errors and exceptions in Python."],
    "intro": [
      "In this interactive course, you will learn how to handle errors and exceptions in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-error-handling": {
        "title": "Understanding Error Handling",
        "intro": [
          "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
        ]
      },
      "lab-isbn-validator": {
        "title": "Debug an ISBN Validator",
        "intro": [
          "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
        ]
      },
      "review-error-handling": {
        "title": "Error Handling Review",
        "intro": [
          "Before you're quizzed on error handling, you should review what you've learned about it."
        ]
      },
      "quiz-error-handling": {
        "title": "Error Handling Quiz",
        "intro": [
          "Test what you've learned about Error Handling in Python with this quiz."
        ]
      }
    }
  },
  "learn-python-classes-and-objects": {
    "title": "Learn Python Classes and Objects",
    "summary": ["Learn how to work with classes and objects in Python."],
    "intro": [
      "In this interactive course, you will learn how to work with classes and objects in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-classes-and-objects": {
        "title": "Classes and Objects",
        "intro": ["Learn about classes and objects in these lessons."]
      },
      "workshop-musical-instrument-inventory": {
        "title": "Build a Musical Instrument Inventory",
        "intro": [
          "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
        ]
      },
      "lab-planet-class": {
        "title": "Build a Planet Class",
        "intro": [
          "In this lab you will create a class that represents a planet."
        ]
      },
      "workshop-email-simulator": {
        "title": "Build an Email Simulator",
        "intro": [
          "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
        ]
      },
      "lab-budget-app": {
        "title": "Build a Budget App",
        "intro": [
          "In this lab you will build a budget app and practice creating a class and methods for that class."
        ]
      },
      "review-classes-and-objects": {
        "title": "Classes and Objects Review",
        "intro": [
          "Before you're quizzed on classes and objects, you should review what you've learned about them.",
          "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
        ]
      },
      "quiz-classes-and-objects": {
        "title": "Classes and Objects Quiz",
        "intro": [
          "Test what you've learned about classes and objects in Python with this quiz."
        ]
      }
    }
  },
  "introduction-to-oop-in-python": {
    "title": "Introduction to OOP in Python",
    "summary": [
      "Learn the basics of Object-Oriented Programming (OOP) in Python."
    ],
    "intro": [
      "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-object-oriented-programming-and-encapsulation": {
        "title": "Understanding Object Oriented Programming and Encapsulation",
        "intro": [
          "Learn about understanding object oriented programming and encapsulation in these lessons."
        ]
      },
      "workshop-salary-tracker": {
        "title": "Build a Salary Tracker",
        "intro": [
          "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
        ]
      },
      "lab-game-character-stats": {
        "title": "Build a Game Character Stats Tracker",
        "intro": [
          "In this lab, you will build a game character with different stats using object-oriented programming."
        ]
      },
      "lecture-understanding-inheritance-and-polymorphism": {
        "title": "Understanding Inheritance and Polymorphism",
        "intro": [
          "Learn about understanding inheritance and polymorphism in these lessons."
        ]
      },
      "workshop-media-catalogue": {
        "title": "Build a Media Catalogue",
        "intro": [
          "In this workshop, you will create a media catalogue application using object-oriented programming principles."
        ]
      },
      "lecture-understanding-abstraction": {
        "title": "Understanding Abstraction",
        "intro": ["Learn about understanding abstraction in these lessons."]
      },
      "workshop-discount-calculator": {
        "title": "Build a Discount Calculator",
        "intro": [
          "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
        ]
      },
      "lab-player-interface": {
        "title": "Build a Player Interface",
        "intro": [
          "In this lab, you'll use the <code>abc</code> module to build a player interface."
        ]
      },
      "lab-polygon-area-calculator": {
        "title": "Build a Polygon Area Calculator",
        "intro": [
          "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
        ]
      },
      "review-object-oriented-programming": {
        "title": "Object Oriented Programming Review",
        "intro": [
          "Before you're quizzed on object oriented programming, you should review what you've learned about it."
        ]
      },
      "quiz-object-oriented-programming": {
        "title": "Object Oriented Programming Quiz",
        "intro": [
          "Test what you've learned about object oriented programming in Python with this quiz."
        ]
      }
    }
  },
  "introduction-to-linear-data-structures-in-python": {
    "title": "Introduction to Linear Data Structures in Python",
    "summary": ["Learn the basics of linear data structures in Python."],
    "intro": [
      "In this interactive course, you will learn the basics of linear data structures in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-common-data-structures": {
        "title": "Working with Common Data Structures",
        "intro": [
          "Learn about working with common data structures in these lessons."
        ]
      },
      "workshop-linked-list-class": {
        "title": "Build a Linked List",
        "intro": [
          "In this workshop, you'll practice working with data structures by building a linked list."
        ]
      },
      "lab-hash-table": {
        "title": "Build a Hash Table",
        "intro": [
          "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
          "In this lab, you will use your knowledge about data structures to build a hash table."
        ]
      },
      "review-data-structures": {
        "title": "Data Structures Review",
        "intro": [
          "Before you're quizzed on data structures, you should review what you've learned about them.",
          "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
        ]
      },
      "quiz-data-structures": {
        "title": "Data Structures Quiz",
        "intro": [
          "Test what you've learned about data structures in Python with this quiz."
        ]
      }
    }
  },
  "learn-algorithms-in-python": {
    "title": "Learn Algorithms in Python",
    "summary": ["Learn the basics of algorithms in Python."],
    "intro": [
      "In this interactive course, you will learn the basics of algorithms in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-searching-and-sorting-algorithms": {
        "title": "Searching and Sorting Algorithms",
        "intro": [
          "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
          "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
        ]
      },
      "workshop-binary-search": {
        "title": "Implement the Binary Search Algorithm",
        "intro": [
          "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
          "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
        ]
      },
      "lab-bisection-method": {
        "title": "Implement the Bisection Method",
        "intro": [
          "In this lab, you will implement the bisection method to find the square root of a number."
        ]
      },
      "workshop-merge-sort": {
        "title": "Implement the Merge Sort Algorithm",
        "intro": [
          "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
          "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
        ]
      },
      "lab-quicksort": {
        "title": "Implement the Quicksort Algorithm",
        "intro": [
          "In this lab you will implement the quicksort algorithm to sort a list of integers."
        ]
      },
      "lab-selection-sort": {
        "title": "Implement the Selection Sort Algorithm",
        "intro": [
          "In this lab you will implement the selection sort algorithm."
        ]
      },
      "lab-luhn-algorithm": {
        "title": "Implement the Luhn Algorithm",
        "intro": [
          "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
        ]
      },
      "lab-tower-of-hanoi": {
        "title": "Implement the Tower of Hanoi Algorithm",
        "intro": [
          "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
        ]
      },
      "review-searching-and-sorting-algorithms": {
        "title": "Searching and Sorting Algorithms Review",
        "intro": [
          "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
        ]
      },
      "quiz-searching-and-sorting-algorithms": {
        "title": "Searching and Sorting Algorithms Quiz",
        "intro": [
          "Test what you've learned about searching and sorting algorithms in Python with this quiz."
        ]
      }
    }
  },
  "learn-graphs-and-trees-in-python": {
    "title": "Learn Graphs and Trees in Python",
    "summary": ["Learn the basics of graphs and trees in Python."],
    "intro": [
      "In this interactive course, you will learn the basics of graphs and trees in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-graphs-and-trees": {
        "title": "Understanding Graphs and Trees",
        "intro": [
          "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
        ]
      },
      "workshop-shortest-path-algorithm": {
        "title": "Implement the Shortest Path Algorithm",
        "intro": [
          "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
        ]
      },
      "lab-adjacency-list-to-matrix-converter": {
        "title": "Build an Adjacency List to Matrix Converter",
        "intro": [
          "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
        ]
      },
      "workshop-breadth-first-search": {
        "title": "Implement the Breadth-First Search Algorithm",
        "intro": [
          "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
        ]
      },
      "lab-depth-first-search": {
        "title": "Implement the Depth-First Search Algorithm",
        "intro": [
          "In this lab, you will implement the Depth-First Search Algorithm."
        ]
      },
      "lab-n-queens-problem": {
        "title": "Implement the N-Queens Problem",
        "intro": [
          "In this lab, you will implement a solution for the N-Queens problem."
        ]
      },
      "review-graphs-and-trees": {
        "title": "Graphs and Trees Review",
        "intro": [
          "Before you're quizzed on graphs and trees, you should review what you've learned about them."
        ]
      },
      "quiz-graphs-and-trees": {
        "title": "Graphs and Trees Quiz",
        "intro": [
          "Test what you've learned about graphs and trees in Python with this quiz."
        ]
      }
    }
  },
  "learn-dynamic-programming-in-python": {
    "title": "Learn Dynamic Programming in Python",
    "summary": ["Learn the basics of dynamic programming in Python."],
    "intro": [
      "In this interactive course, you will learn the basics of dynamic programming in Python."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-dynamic-programming": {
        "title": "Understanding Dynamic Programming",
        "intro": [
          "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
        ]
      },
      "lab-nth-fibonacci-number": {
        "title": "Build an Nth Fibonacci Number Calculator",
        "intro": [
          "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
        ]
      },
      "review-dynamic-programming": {
        "title": "Dynamic Programming Review",
        "intro": [
          "Before you're quizzed on dynamic programming, you should review what you've learned about it."
        ]
      },
      "quiz-dynamic-programming": {
        "title": "Dynamic Programming Quiz",
        "intro": [
          "Test what you've learned about dynamic programming in Python with this quiz."
        ]
      }
    }
  },
  "introduction-to-variables-and-strings-in-javascript": {
    "title": "Introduction to Variables and Strings in JavaScript",
    "summary": ["Learn the basics of variables and strings in JavaScript."],
    "intro": [
      "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
    ],
    "note": "",
    "blocks": {
      "lecture-introduction-to-javascript": {
        "title": "Introduction to JavaScript",
        "intro": [
          "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
        ]
      },
      "lecture-introduction-to-strings": {
        "title": "Introduction to Strings",
        "intro": [
          "In these lessons, you will learn how to work with strings and string concatenation."
        ]
      },
      "lecture-understanding-code-clarity": {
        "title": "Understanding Code Clarity",
        "intro": [
          "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
        ]
      },
      "workshop-greeting-bot": {
        "title": "Build a Greeting Bot",
        "intro": [
          "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
          "You will learn about variables, <code>let</code>, <code>const</code>, <code>console.log</code> and basic string usage."
        ]
      },
      "lab-javascript-trivia-bot": {
        "title": "Build a JavaScript Trivia Bot",
        "intro": [
          "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
        ]
      },
      "lab-sentence-maker": {
        "title": "Build a Sentence Maker",
        "intro": [
          "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
        ]
      },
      "lecture-working-with-data-types": {
        "title": "Working with Data Types",
        "intro": [
          "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the <code>typeof</code> operator, and the <code>typeof null</code> bug."
        ]
      },
      "review-javascript-variables-and-data-types": {
        "title": "JavaScript Variables and Data Types Review",
        "intro": [
          "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
          "Open up this page to review variables, data types, logging and commenting."
        ]
      },
      "quiz-javascript-variables-and-data-types": {
        "title": "JavaScript Variables and Data Types Quiz",
        "intro": [
          "Test your knowledge of JavaScript variables and data types with this quiz."
        ]
      },
      "lecture-working-with-strings-in-javascript": {
        "title": "Working with Strings in JavaScript",
        "intro": [
          "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
        ]
      },
      "workshop-teacher-chatbot": {
        "title": "Build a Teacher Chatbot",
        "intro": [
          "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
          "You will learn how to work with template literals, and the <code>indexOf</code> method."
        ]
      },
      "lecture-working-with-string-character-methods": {
        "title": "Working with String Character Methods",
        "intro": [
          "In this lecture you will learn about ASCII character encoding and how to use JavaScript's <code>charCodeAt()</code> and <code>fromCharCode()</code> methods to convert between characters and their numerical ASCII values."
        ]
      },
      "lecture-working-with-string-search-and-slice-methods": {
        "title": "Working with String Search and Slice Methods",
        "intro": [
          "In this lecture you will learn how to search for substrings using the <code>includes()</code> method and how to extract portions of strings using the <code>slice()</code> method."
        ]
      },
      "workshop-string-inspector": {
        "title": "Build a String Inspector",
        "intro": [
          "In this workshop, you will practice working with the <code>includes()</code> and <code>slice()</code> methods by building a string inspector."
        ]
      },
      "lecture-working-with-string-formatting-methods": {
        "title": "Working with String Formatting Methods",
        "intro": [
          "In this lecture you will learn how to format strings by changing their case using <code>toUpperCase()</code> and <code>toLowerCase()</code> methods, and how to remove whitespace using <code>trim()</code>, <code>trimStart()</code>, and <code>trimEnd()</code> methods."
        ]
      },
      "workshop-string-formatter": {
        "title": "Build a String Formatter",
        "intro": [
          "In this workshop, you will practice working with various string methods including <code>trim()</code>, <code>toUpperCase()</code> and <code>toLowerCase()</code>."
        ]
      },
      "lecture-working-with-string-modification-methods": {
        "title": "Working with String Modification Methods",
        "intro": [
          "In this lecture you will learn how to modify strings by replacing parts of them using the <code>replace()</code> method and how to repeat strings multiple times using the <code>repeat()</code> method."
        ]
      },
      "workshop-string-transformer": {
        "title": "Build a String Transformer",
        "intro": [
          "In this workshop, you will practice working with the <code>replace()</code>, <code>replaceAll()</code> and <code>repeat()</code> methods."
        ]
      },
      "review-javascript-strings": {
        "title": "JavaScript Strings Review",
        "intro": [
          "Before you are quizzed on working with JavaScript strings, you first need to review.",
          "Open up this page to review how to work with template literals, the <code>slice</code> method, the <code>includes</code> method, the <code>trim</code> method and more."
        ]
      },
      "quiz-javascript-strings": {
        "title": "JavaScript Strings Quiz",
        "intro": ["Test your knowledge of JavaScript strings with this quiz."]
      }
    }
  },
  "introduction-to-booleans-and-numbers-in-javascript": {
    "title": "Introduction to Booleans and Numbers in JavaScript",
    "summary": ["Learn the basics of booleans and numbers in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-numbers-and-arithmetic-operators": {
        "title": "Working with Numbers and Arithmetic Operators",
        "intro": [
          "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
        ]
      },
      "lab-debug-type-coercion-errors": {
        "title": "Debug Type Coercion Errors in a Buggy App",
        "intro": [
          "In this lab, you will be working with a buggy app that contains several type coercion errors.",
          "Your task is to identify and fix these errors to ensure the app functions correctly."
        ]
      },
      "lecture-working-with-operator-behavior": {
        "title": "Working with Operator Behavior",
        "intro": [
          "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
        ]
      },
      "lab-debug-increment-and-decrement-operator-errors": {
        "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
        "intro": [
          "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
          "Your task is to identify and fix the errors so that the app works as intended."
        ]
      },
      "lecture-working-with-comparison-and-boolean-operators": {
        "title": "Working with Comparison and Boolean Operators",
        "intro": [
          "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
        ]
      },
      "workshop-logic-checker-app": {
        "title": "Build a Logic Checker App",
        "intro": [
          "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
        ]
      },
      "lecture-working-with-unary-and-bitwise-operators": {
        "title": "Working with Unary and Bitwise Operators",
        "intro": [
          "In these lectures, you will learn about unary and bitwise operators."
        ]
      },
      "lecture-working-with-conditional-logic-and-math-methods": {
        "title": "Working with Conditional Logic and Math Methods",
        "intro": [
          "In these lectures, you will learn about conditional statements, binary logical operators, and the <code>Math</code> object."
        ]
      },
      "workshop-mathbot": {
        "title": "Build a Mathbot",
        "intro": [
          "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
        ]
      },
      "lab-fortune-teller": {
        "title": "Build a Fortune Teller",
        "intro": [
          "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
          "You'll practice how to work with the <code>Math.random()</code> method and the <code>Math.floor()</code> method to generate random numbers."
        ]
      },
      "lecture-working-with-numbers-and-common-number-methods": {
        "title": "Working with Numbers and Common Number Methods",
        "intro": [
          "In these lectures, you will learn about numbers and common number methods. These include <code>isNaN()</code>, <code>parseInt()</code>, <code>parseFloat()</code>, and <code>toFixed()</code>."
        ]
      },
      "review-javascript-math": {
        "title": "JavaScript Math Review",
        "intro": [
          "Before you're quizzed on working with the <code>Math</code> object, you should review what you've learned.",
          "Open up this page to review how to work with the <code>Math.random()</code> method, the <code>Math.floor()</code> method and more."
        ]
      },
      "quiz-javascript-math": {
        "title": "JavaScript Math Quiz",
        "intro": [
          "Test your knowledge of the JavaScript <code>Math</code> object with this quiz."
        ]
      },
      "lecture-understanding-comparisons-and-conditionals": {
        "title": "Understanding Comparisons and Conditionals",
        "intro": [
          "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with <code>null</code> and <code>undefined</code>."
        ]
      },
      "review-javascript-comparisons-and-conditionals": {
        "title": "JavaScript Comparisons and Conditionals Review",
        "intro": [
          "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
          "Open up this page to review how to work with <code>switch</code> statements, other types of conditionals and more."
        ]
      },
      "quiz-javascript-comparisons-and-conditionals": {
        "title": "JavaScript Comparisons and Conditionals Quiz",
        "intro": [
          "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
        ]
      }
    }
  },
  "introduction-functions-in-javascript": {
    "title": "Introduction to Functions in JavaScript",
    "summary": ["Learn the basics of functions in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with functions in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-functions": {
        "title": "Working with Functions",
        "intro": [
          "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
        ]
      },
      "workshop-calculator": {
        "title": "Build a Calculator",
        "intro": [
          "In this workshop, you will review your knowledge of functions by building a calculator."
        ]
      },
      "lab-boolean-check": {
        "title": "Build a Boolean Check Function",
        "intro": [
          "In this lab, you'll implement a function that checks if a value is a boolean."
        ]
      },
      "lab-email-masker": {
        "title": "Build an Email Masker",
        "intro": [
          "In this lab, you'll build an email masker that will take an email address and obscure it.",
          "You'll practice string slicing, concatenation, and using functions."
        ]
      },
      "workshop-loan-qualification-checker": {
        "title": "Build a Loan Qualification Checker",
        "intro": [
          "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
          "You will learn more about <code>if</code> statements, and how to use comparison operators and multiple conditions in an <code>if</code> statement."
        ]
      },
      "lab-celsius-to-fahrenheit-converter": {
        "title": "Build a Celsius to Fahrenheit Converter",
        "intro": [
          "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
        ]
      },
      "lab-counting-cards": {
        "title": "Build a Card Counting Assistant",
        "intro": ["In this lab you will use JavaScript to count dealt cards."]
      },
      "lab-leap-year-calculator": {
        "title": "Build a Leap Year Calculator ",
        "intro": [
          "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
        ]
      },
      "lab-truncate-string": {
        "title": "Implement the Truncate String Algorithm",
        "intro": [
          "In this lab, you will practice truncating a string at a certain length."
        ]
      },
      "lab-string-ending-checker": {
        "title": "Build a Confirm the Ending Tool",
        "intro": [
          "In this lab, you will implement a function that checks if a given string ends with a specified target string."
        ]
      },
      "review-javascript-functions": {
        "title": "JavaScript Functions Review",
        "intro": [
          "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
          "Open up this page to review functions, arrow functions and scope."
        ]
      },
      "quiz-javascript-functions": {
        "title": "JavaScript Functions Quiz",
        "intro": ["Test your knowledge of JavaScript functions with this quiz."]
      }
    }
  },
  "introduction-to-arrays-in-javascript": {
    "title": "Introduction to Arrays in JavaScript",
    "summary": ["Learn the basics of arrays in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with arrays in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-arrays": {
        "title": "Working with Arrays",
        "intro": [
          "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
        ]
      },
      "workshop-shopping-list": {
        "title": "Build a Shopping List",
        "intro": [
          "In this workshop, you will practice how to work with arrays by building a shopping list.",
          "You will review how to add and remove elements from an array using methods like <code>push</code>, <code>pop</code>, <code>shift</code>, and <code>unshift</code>."
        ]
      },
      "lab-lunch-picker-program": {
        "title": "Build a Lunch Picker Program",
        "intro": [
          "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
        ]
      },
      "lab-golf-score-translator": {
        "title": "Build a Golf Score Translator",
        "intro": [
          "For this lab, you will use array methods to translate golf scores into their nickname."
        ]
      },
      "lecture-working-with-common-array-methods": {
        "title": "Working with Common Array Methods",
        "intro": [
          "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
        ]
      },
      "review-javascript-arrays": {
        "title": "JavaScript Arrays Review",
        "intro": [
          "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
          "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
        ]
      },
      "quiz-javascript-arrays": {
        "title": "JavaScript Arrays Quiz",
        "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
      }
    }
  },
  "introduction-to-objects-in-javascript": {
    "title": "Introduction to Objects in JavaScript",
    "summary": ["Learn the basics of objects in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with objects in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-introduction-to-javascript-objects-and-their-properties": {
        "title": "Introduction to JavaScript Objects and Their Properties",
        "intro": [
          "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
        ]
      },
      "lecture-working-with-json": {
        "title": "Working with JSON",
        "intro": [
          "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the <code>JSON.parse()</code> and <code>JSON.stringify()</code> methods."
        ]
      },
      "lecture-working-with-optional-chaining-and-object-destructuring": {
        "title": "Working with Optional Chaining and Object Destructuring",
        "intro": [
          "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
        ]
      },
      "workshop-recipe-tracker": {
        "title": "Build a Recipe Tracker",
        "intro": [
          "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
        ]
      },
      "lab-quiz-game": {
        "title": "Build a Quiz Game",
        "intro": [
          "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
          "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
        ]
      },
      "lab-record-collection": {
        "title": "Build a Record Collection",
        "intro": [
          "In this lab you will build a function to manage a record collection."
        ]
      },
      "review-javascript-objects": {
        "title": "JavaScript Objects Review",
        "intro": [
          "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
          "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
        ]
      },
      "quiz-javascript-objects": {
        "title": "JavaScript Objects Quiz",
        "intro": ["Test your knowledge of JavaScript objects with this quiz."]
      }
    }
  },
  "introduction-to-loops-in-javascript": {
    "title": "Introduction to Loops in JavaScript",
    "summary": ["Learn the basics of loops in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with loops in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-loops": {
        "title": "Working with Loops",
        "intro": [
          "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
        ]
      },
      "workshop-sentence-analyzer": {
        "title": "Build a Sentence Analyzer",
        "intro": [
          "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
        ]
      },
      "lab-longest-word-in-a-string": {
        "title": "Build a Longest Word Finder App",
        "intro": [
          "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
        ]
      },
      "lab-factorial-calculator": {
        "title": "Build a Factorial Calculator ",
        "intro": [
          "In this lab, you'll build a factorial calculator.",
          "You'll practice using loops and conditionals to calculate the factorial of a number."
        ]
      },
      "lab-mutations": {
        "title": "Implement the Mutations Algorithm",
        "intro": [
          "In this lab, you will practice iterating over two different strings to compare their characters."
        ]
      },
      "lab-chunky-monkey": {
        "title": "Implement the Chunky Monkey Algorithm",
        "intro": [
          "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
        ]
      },
      "lab-profile-lookup": {
        "title": "Build a Profile Lookup",
        "intro": [
          "In this lab, you'll create a function that looks up profile information."
        ]
      },
      "lab-repeat-a-string": {
        "title": "Build a String Repeating Function",
        "intro": [
          "In this lab, you will implement loops to repeat a string a specified number of times."
        ]
      },
      "lab-missing-letter-detector": {
        "title": "Build a Missing Letter Detector",
        "intro": [
          "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
        ]
      },
      "review-javascript-loops": {
        "title": "JavaScript Loops Review",
        "intro": [
          "Before you're quizzed on the different JavaScript loops, you should review them.",
          "Open up this page to review the <code>for...of</code> loop, <code>while</code> loop, <code>break and continue</code> statements and more."
        ]
      },
      "quiz-javascript-loops": {
        "title": "JavaScript Loops Quiz",
        "intro": ["Test your knowledge of JavaScript loops with this quiz."]
      }
    }
  },
  "javascript-fundamentals-review": {
    "title": "JavaScript Fundamentals Review",
    "summary": ["Review the core concepts of JavaScript."],
    "intro": [
      "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-types-and-objects": {
        "title": "Working with Types and Objects",
        "intro": [
          "In these lectures you will learn about string objects, the <code>toString()</code> method, the <code>Number</code> constructor and more."
        ]
      },
      "lecture-working-with-arrays-variables-and-naming-practices": {
        "title": "Working with Arrays, Variables, and Naming Practices",
        "intro": [
          "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
        ]
      },
      "lecture-working-with-code-quality-and-execution-concepts": {
        "title": "Working with Code Quality and Execution Concepts",
        "intro": [
          "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
        ]
      },
      "lab-reverse-a-string": {
        "title": "Build a String Inverter",
        "intro": [
          "In this lab, you create a function that reverses a given string."
        ]
      },
      "lab-largest-number-finder": {
        "title": "Build the Largest Number Finder",
        "intro": [
          "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
        ]
      },
      "lab-first-element-finder": {
        "title": "Build a First Element Finder",
        "intro": [
          "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
        ]
      },
      "lab-slice-and-splice": {
        "title": "Implement the Slice and Splice Algorithm",
        "intro": [
          "In this lab, you will practice merging an array with another."
        ]
      },
      "lab-pyramid-generator": {
        "title": "Build a Pyramid Generator",
        "intro": [
          "In this lab you'll build a pyramid generator.",
          "You'll take a number as input and generate a pyramid with that many levels using a loop."
        ]
      },
      "lab-gradebook-app": {
        "title": "Build a Gradebook App",
        "intro": [
          "For this lab, you'll create a gradebook app.",
          "You'll practice conditionals to determine the student's grade based on their score."
        ]
      },
      "lecture-the-var-keyword-and-hoisting": {
        "title": "The var Keyword and Hoisting",
        "intro": [
          "In these lectures, you will learn about the <code>var</code> keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
        ]
      },
      "lab-title-case-converter": {
        "title": "Build a Title Case Converter",
        "intro": [
          "In this lab, you will build a function that converts a string to title case."
        ]
      },
      "lab-falsy-remover": {
        "title": "Implement a Falsy Remover",
        "intro": [
          "In this lab, you will create a function that removes all falsy values from an array."
        ]
      },
      "lab-inventory-management-program": {
        "title": "Build an Inventory Management Program",
        "intro": [
          "For this lab, you'll build an inventory management program using JavaScript.",
          "You'll use JavaScript array of objects to manage the inventory."
        ]
      },
      "lecture-understanding-modules-imports-and-exports": {
        "title": "Understanding Modules, Imports, and Exports",
        "intro": [
          "In this lecture, you will learn about modules, imports, and exports in JavaScript."
        ]
      },
      "lecture-working-with-the-arguments-object-and-rest-parameters": {
        "title": "Working With the Arguments Object and Rest Parameters",
        "intro": [
          "In these lessons, you will learn how to work with the <code>arguments</code> object and rest parameter syntax."
        ]
      },
      "lab-unique-sorted-union": {
        "title": "Implement a Unique Sorted Union",
        "intro": [
          "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
        ]
      },
      "lab-password-generator": {
        "title": "Build a Password Generator App",
        "intro": [
          "In this lab, you'll build a password generator app based on the user's input."
        ]
      },
      "lab-sum-all-numbers-algorithm": {
        "title": "Design a Sum All Numbers Algorithm",
        "intro": [
          "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
        ]
      },
      "lab-dna-pair-generator": {
        "title": "Implement a DNA Pair Generator",
        "intro": [
          "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
        ]
      },
      "lab-html-entitiy-converter": {
        "title": "Implement an HTML Entity Converter",
        "intro": [
          "In this lab, you will convert special characters in a string to their corresponding HTML entities."
        ]
      },
      "lab-odd-fibonacci-sum-calculator": {
        "title": "Build an Odd Fibonacci Sum Calculator",
        "intro": [
          "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
        ]
      },
      "lab-element-skipper": {
        "title": "Implement an Element Skipper",
        "intro": [
          "In this lab you will create a function that skips elements in an array based on a specified step value."
        ]
      },
      "review-javascript-fundamentals": {
        "title": "JavaScript Fundamentals Review",
        "intro": [
          "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
          "Open up this page to review concepts like closures, memory management, and more."
        ]
      },
      "quiz-javascript-fundamentals": {
        "title": "JavaScript Fundamentals Quiz",
        "intro": [
          "Test your knowledge of JavaScript fundamentals with this quiz."
        ]
      }
    }
  },
  "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
    "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
    "summary": [
      "Learn the basics of higher-order functions and callbacks in JavaScript."
    ],
    "intro": [
      "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-higher-order-functions-and-callbacks": {
        "title": "Working with Higher Order Functions and Callbacks",
        "intro": [
          "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include <code>map()</code>, <code>filter()</code>, <code>reduce()</code>, <code>sort()</code>, <code>every()</code>, and <code>some()</code>. You will also learn how to chain these methods together to achieve your desired results."
        ]
      },
      "workshop-library-manager": {
        "title": "Build a Library Manager",
        "intro": [
          "In this workshop, you will learn higher order array methods by building a library manager."
        ]
      },
      "lab-book-organizer": {
        "title": "Build a Book Organizer",
        "intro": [
          "In this lab, you'll build a book organizer using higher order functions in JavaScript."
        ]
      },
      "lab-sorted-index-finder": {
        "title": "Implement a Sorted Index Finder",
        "intro": [
          "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
        ]
      },
      "lab-symmetric-difference": {
        "title": "Build a Symmetric Difference Function",
        "intro": [
          "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
        ]
      },
      "lab-value-remover-function": {
        "title": "Implement a Value Remover Function",
        "intro": [
          "In this lab, you will create a function that removes all instances of a specified value from an array."
        ]
      },
      "lab-matching-object-filter": {
        "title": "Implement a Matching Object Filter",
        "intro": [
          "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
        ]
      },
      "lab-prime-number-sum-calculator": {
        "title": "Build a Prime Number Sum Calculator",
        "intro": [
          "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
        ]
      },
      "lab-range-based-lcm-calculator": {
        "title": "Implement a Range-Based LCM Calculator",
        "intro": [
          "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
        ]
      },
      "lab-deep-flattening-tool": {
        "title": "Create a Deep Flattening Tool",
        "intro": [
          "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
        ]
      },
      "lab-all-true-property-validator": {
        "title": "Build an All-True Property Validator",
        "intro": [
          "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
        ]
      },
      "review-javascript-higher-order-functions": {
        "title": "JavaScript Higher Order Functions Review",
        "intro": [
          "Before you're quizzed on JavaScript higher order functions, you should review them.",
          "Open up this page to review concepts including how to work with the <code>map()</code>, <code>filter()</code>, and <code>reduce()</code> methods."
        ]
      },
      "quiz-javascript-higher-order-functions": {
        "title": "JavaScript Higher Order Functions Quiz",
        "intro": [
          "Test what you've learned about JavaScript higher order functions with this quiz."
        ]
      }
    }
  },
  "learn-dom-manipulation-and-events-with-javascript": {
    "title": "Learn DOM Manipulation and Events with JavaScript",
    "summary": [
      "Learn how to manipulate the DOM and work with events in JavaScript."
    ],
    "intro": [
      "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-the-dom-click-events-and-web-apis": {
        "title": "Working with the DOM, Click Events, and Web APIs",
        "intro": [
          "In these lectures, you will learn how to work with the Document Object Model (DOM), the <code>addEventListener()</code> method and events, and web APIs."
        ]
      },
      "workshop-storytelling-app": {
        "title": "Build a Storytelling App",
        "intro": [
          "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
        ]
      },
      "workshop-emoji-reactor": {
        "title": "Build an Emoji Reactor",
        "intro": [
          "In this workshop, you will build an emoji reactor to practice <code>querySelector</code> and <code>querySelectorAll</code>."
        ]
      },
      "lab-favorite-icon-toggler": {
        "title": "Build a Favorite Icon Toggler",
        "intro": [
          "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
        ]
      },
      "lecture-understanding-the-event-object-and-event-delegation": {
        "title": "Understanding the Event Object and Event Delegation",
        "intro": [
          "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
        ]
      },
      "workshop-music-instrument-filter": {
        "title": "Build a Music Instrument Filter",
        "intro": [
          "In this workshop, you will build a music instrument filter with JavaScript."
        ]
      },
      "lab-real-time-counter": {
        "title": "Build a Real Time Counter",
        "intro": [
          "In this lab, you'll build a real-time character counter",
          "You'll practice how to work with the <code>input</code> event when the user types in the input field."
        ]
      },
      "lab-lightbox-viewer": {
        "title": "Build a Lightbox Viewer",
        "intro": [
          "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
          "You'll practice click events and toggling classes."
        ]
      },
      "workshop-rps-game": {
        "title": "Build a Rock, Paper, Scissors Game",
        "intro": [
          "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
        ]
      },
      "lab-football-team-cards": {
        "title": "Build a Set of Football Team Cards",
        "intro": [
          "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
        ]
      },
      "review-dom-manipulation-and-click-events-with-javascript": {
        "title": "DOM Manipulation and Click Events with JavaScript Review",
        "intro": [
          "Before you're quizzed on the DOM, you should review what you've learned about it.",
          "Open up this page to review concepts including how to work with the <code>DOM</code>, <code>Web APIs</code>, the <code>addEventListener()</code> method, change events, event bubbling and more."
        ]
      },
      "quiz-dom-manipulation-and-click-event-with-javascript": {
        "title": "DOM Manipulation and Click Events with JavaScript Quiz",
        "intro": [
          "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
        ]
      }
    }
  },
  "introduction-to-javascript-and-accessibility": {
    "title": "Introduction to JavaScript and Accessibility",
    "summary": ["Learn how to use JavaScript to enhance web accessibility."],
    "intro": [
      "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
        "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
        "intro": [
          "In these lectures you will learn more about ARIA attributes like <code>aria-expanded</code>, <code>aria-live</code>, and common ARIA states."
        ]
      },
      "workshop-planets-tablist": {
        "title": "Build a Planets Tablist",
        "intro": [
          "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
        ]
      },
      "workshop-note-taking-app": {
        "title": "Build a Note Taking App",
        "intro": [
          "In this workshop, you are going to build an accessible note taking app.",
          "This will provide you with the opportunity to practice working with <code>aria-live</code> attribute."
        ]
      },
      "lab-theme-switcher": {
        "title": "Build a Theme Switcher",
        "intro": [
          "In this lab, you will build a theme switcher and practice working with the <code>aria-haspopup</code>, <code>aria-expanded</code>, and <code>aria-controls</code> attributes."
        ]
      },
      "review-js-a11y": {
        "title": "JavaScript and Accessibility Review",
        "intro": [
          "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
          "Open up this page to review concepts including how to work with the <code>aria-expanded</code>, <code>aria-live</code>, and <code>aria-controls</code> attributes."
        ]
      },
      "quiz-js-a11y": {
        "title": "JavaScript and Accessibility Quiz",
        "intro": [
          "Test your knowledge of JavaScript and accessibility best practices with this quiz."
        ]
      }
    }
  },
  "learn-javascript-debugging": {
    "title": "Learn JavaScript Debugging",
    "summary": ["Learn how to debug JavaScript code effectively."],
    "intro": [
      "In this interactive course, you will learn how to debug JavaScript code."
    ],
    "note": "",
    "blocks": {
      "lecture-debugging-techniques": {
        "title": "Debugging Techniques",
        "intro": [
          "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
        ]
      },
      "lab-random-background-color-changer": {
        "title": "Debug a Random Background Color Changer",
        "intro": [
          "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
        ]
      },
      "review-debugging-javascript": {
        "title": "Debugging JavaScript Review",
        "intro": [
          "Before you're quizzed on common debugging techniques, you should review what you've learned.",
          "Open up this page to review concepts including how to work with the <code>throw statement</code>, <code>try...catch...finally</code> and more."
        ]
      },
      "quiz-debugging-javascript": {
        "title": "Debugging JavaScript Quiz",
        "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
      }
    }
  },
  "learn-basic-regex-with-javascript": {
    "title": "Learn Basic Regex with JavaScript",
    "summary": ["Learn the basics of regular expressions in JavaScript."],
    "intro": [
      "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-regular-expressions": {
        "title": "Working with Regular Expressions",
        "intro": [
          "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
        ]
      },
      "workshop-spam-filter": {
        "title": "Build a Spam Filter",
        "intro": [
          "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
          "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
        ]
      },
      "lab-palindrome-checker": {
        "title": "Build a Palindrome Checker",
        "intro": [
          "For this lab, you'll build an application that checks whether a given word is a palindrome."
        ]
      },
      "lab-regex-sandbox": {
        "title": "Build a RegEx Sandbox",
        "intro": ["In this lab you'll build a regex sandbox."]
      },
      "lab-spinal-case-converter": {
        "title": "Implement a Spinal Case Converter",
        "intro": [
          "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
        ]
      },
      "lab-pig-latin": {
        "title": "Implement a Pig Latin Translator",
        "intro": [
          "In this lab, you'll implement a Pig Latin translator using JavaScript.",
          "You'll practice string manipulation, conditional logic, and regular expressions."
        ]
      },
      "lab-smart-word-replacement": {
        "title": "Build a Smart Word Replacement Function",
        "intro": [
          "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
        ]
      },
      "lab-markdown-to-html-converter": {
        "title": "Build a Markdown to HTML Converter",
        "intro": [
          "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
          "You'll practice regular expressions, string manipulation, and more."
        ]
      },
      "review-javascript-regular-expressions": {
        "title": "JavaScript Regular Expressions Review",
        "intro": [
          "Before you're quizzed on Regular Expressions, you should review what you've learned.",
          "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
        ]
      },
      "quiz-javascript-regular-expressions": {
        "title": "JavaScript Regular Expressions Quiz",
        "intro": [
          "Test your knowledge of JavaScript Regular Expressions with this quiz."
        ]
      }
    }
  },
  "introduction-to-dates-in-javascript": {
    "title": "Introduction to Dates in JavaScript",
    "summary": ["Learn how to work with dates in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with dates in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-dates": {
        "title": "Working with Dates",
        "intro": [
          "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
        ]
      },
      "lab-date-conversion": {
        "title": "Build a Date Conversion Program",
        "intro": [
          "In this lab, you'll build a program to convert a date from one format to another."
        ]
      },
      "review-javascript-dates": {
        "title": "JavaScript Dates Review",
        "intro": [
          "Before you're quizzed on working with dates, you should review what you've learned.",
          "Open up this page to review the <code>Date()</code> object and common methods."
        ]
      },
      "quiz-javascript-dates": {
        "title": "JavaScript Dates Quiz",
        "intro": [
          "Test what you've learned about JavaScript Dates with this quiz."
        ]
      }
    }
  },
  "learn-audio-and-video-events-with-javascript": {
    "title": "Learn Audio and Video Events with JavaScript",
    "summary": ["Learn how to work with audio and video events in JavaScript."],
    "intro": [
      "In this interactive course, you will learn how to work with audio and video events in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-audio-and-video": {
        "title": "Working with Audio and Video",
        "intro": [
          "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the <code>Audio</code> and <code>Video</code> constructors, their methods and properties, audio and video formats, codecs, the <code>HTMLMediaElement</code> API, and much more."
        ]
      },
      "workshop-music-player": {
        "title": "Build a Music Player",
        "intro": [
          "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
          "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
        ]
      },
      "lab-drum-machine": {
        "title": "Build a Drum Machine",
        "intro": [
          "For this lab you will use the <code>audio</code> element to build a drum machine."
        ]
      },
      "review-javascript-audio-and-video": {
        "title": "JavaScript Audio and Video Review",
        "intro": [
          "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
          "Open up this page to review concepts including the <code>Audio</code> constructor, the <code>HTMLMediaElement</code> API and more."
        ]
      },
      "quiz-javascript-audio-and-video": {
        "title": "JavaScript Audio and Video Quiz",
        "intro": [
          "Test what you've learned about JavaScript audio and video with this quiz."
        ]
      }
    }
  },
  "introduction-to-maps-and-sets-in-javascript": {
    "title": "Introduction to Maps and Sets in JavaScript",
    "summary": ["Learn about the Map and Set objects in JavaScript."],
    "intro": [
      "In this interactive course, you will learn about the Map and Set objects in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-maps-and-sets": {
        "title": "Working with Maps and Sets",
        "intro": [
          "In these lectures, you will learn about JavaScript <code>Map</code> and <code>Set</code>. You will also learn how they both differ from <code>WeakSets</code> and <code>WeakMaps</code>."
        ]
      },
      "workshop-plant-nursery-catalog": {
        "title": "Build a Plant Nursery Catalog",
        "intro": [
          "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
        ]
      },
      "lab-voting-system": {
        "title": "Build a Voting System",
        "intro": [
          "In this lab, you'll build a voting system using Maps and Sets.",
          "You'll practice how to use the <code>Map</code> object to store key-value pairs and the <code>Set</code> object to store unique values."
        ]
      },
      "review-javascript-maps-and-sets": {
        "title": "JavaScript Maps and Sets Review",
        "intro": [
          "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
          "Open up this page to review concepts such as the <code>Map</code> and <code>Set</code> objects, as well as WeakSet and WeakMap."
        ]
      },
      "quiz-javascript-maps-and-sets": {
        "title": "JavaScript Maps and Sets Quiz",
        "intro": [
          "Test what you've learned about JavaScript Maps and Sets with this quiz."
        ]
      }
    }
  },
  "learn-localstorage-and-crud-operations-with-javascript": {
    "title": "Learn localStorage and CRUD Operations with JavaScript",
    "summary": [
      "Learn how to use localStorage and perform CRUD operations in JavaScript."
    ],
    "intro": [
      "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-working-with-client-side-storage-and-crud-operations": {
        "title": "Working with Client-Side Storage and CRUD Operations",
        "intro": [
          "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about <code>localStorage</code> and <code>sessionStorage</code> alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
        ]
      },
      "workshop-todo-app": {
        "title": "Build a Todo App using Local Storage",
        "intro": [
          "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
          "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
        ]
      },
      "lab-bookmark-manager-app": {
        "title": "Build a Bookmark Manager App",
        "intro": [
          "For this lab, you'll build a bookmark manager app.",
          "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
        ]
      },
      "review-local-storage-and-crud": {
        "title": "Local Storage and CRUD Review",
        "intro": [
          "Before you are quizzed on working with <code>localStorage</code>, you first need to review the concepts.",
          "Open up this page to review the <code>localStorage</code> property, <code>sessionStorage</code> property and more."
        ]
      },
      "quiz-local-storage-and-crud": {
        "title": "Local Storage and CRUD Quiz",
        "intro": [
          "Test what you've learned about local storage and CRUD with this quiz."
        ]
      }
    }
  },
  "introduction-to-javascript-classes": {
    "title": "Introduction to JavaScript Classes",
    "summary": ["Learn about classes in JavaScript and how to use them."],
    "intro": [
      "In this interactive course, you will learn about classes in JavaScript and how to use them."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-how-to-work-with-classes-in-javascript": {
        "title": "Understanding How to Work with Classes in JavaScript",
        "intro": [
          "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the <code>this</code> keyword, static properties and methods, and more."
        ]
      },
      "workshop-shopping-cart": {
        "title": "Build a Shopping Cart",
        "intro": [
          "In this workshop you'll create a shopping cart using JavaScript classes.",
          "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
        ]
      },
      "lab-project-idea-board": {
        "title": "Build a Project Idea Board",
        "intro": [
          "In this lab, you'll build a project idea board using OOP in JavaScript.",
          "You'll practice how to create classes, add methods to classes, and create instances of classes."
        ]
      },
      "lab-bank-account-manager": {
        "title": "Build a Bank Account Management Program",
        "intro": [
          "In this lab, you'll build a simple transaction management system for a bank account."
        ]
      },
      "review-javascript-classes": {
        "title": "JavaScript Classes Review",
        "intro": [
          "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
          "Open up this page to review concepts including the <code>this</code> keyword, class inheritance and more."
        ]
      },
      "quiz-javascript-classes": {
        "title": "JavaScript Classes Quiz",
        "intro": [
          "Test what you've learned about JavaScript classes with this quiz."
        ]
      }
    }
  },
  "learn-recursion-with-javascript": {
    "title": "Learn Recursion with JavaScript",
    "summary": [
      "Understand the concept of recursion and how to implement it in JavaScript."
    ],
    "intro": [
      "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-recursion-and-the-call-stack": {
        "title": "Understanding Recursion and the Call Stack",
        "intro": [
          "In this lecture, you will learn about recursion and the call stack."
        ]
      },
      "workshop-countup": {
        "title": "Build a Countup",
        "intro": [
          "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
        ]
      },
      "lab-countdown": {
        "title": "Build a Countdown",
        "intro": [
          "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
        ]
      },
      "lab-range-of-numbers": {
        "title": "Build a Range of Numbers Generator",
        "intro": [
          "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
          "You'll practice recursive function calls, base cases, and building arrays through recursion."
        ]
      },
      "workshop-decimal-to-binary-converter": {
        "title": "Build a Decimal to Binary Converter",
        "intro": [
          "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
          "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
        ]
      },
      "lab-permutation-generator": {
        "title": "Build a Permutation Generator",
        "intro": [
          "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
        ]
      },
      "review-recursion": {
        "title": "Recursion Review",
        "intro": [
          "Before you're quizzed on recursion, you should review what you've learned.",
          "Open up this page to review what is recursion and what is it used for."
        ]
      },
      "quiz-recursion": {
        "title": "Recursion Quiz",
        "intro": ["Test your knowledge of Recursion with this quiz."]
      }
    }
  },
  "introduction-to-functional-programming-with-javascript": {
    "title": "Introduction to Functional Programming with JavaScript",
    "summary": [
      "Learn the fundamentals of functional programming in JavaScript."
    ],
    "intro": [
      "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-functional-programming": {
        "title": "Understanding Functional Programming",
        "intro": [
          "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
        ]
      },
      "workshop-recipe-ingredient-converter": {
        "title": "Build a Recipe Ingredient Converter",
        "intro": [
          "In the previous lectures, you learned the core concepts behind functional programming and currying.",
          "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
        ]
      },
      "lab-optional-arguments-sum-function": {
        "title": "Build an Optional Arguments Sum Function",
        "intro": [
          "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
        ]
      },
      "lab-sorting-visualizer": {
        "title": "Build a Sorting Visualizer",
        "intro": [
          "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
        ]
      },
      "review-javascript-functional-programming": {
        "title": "JavaScript Functional Programming Review",
        "intro": [
          "Before you're quizzed on functional programming, you should review what you've learned.",
          "Open up this page to review concepts on functional programming, currying and more."
        ]
      },
      "quiz-javascript-functional-programming": {
        "title": "JavaScript Functional Programming Quiz",
        "intro": [
          "Test what you've learned about JavaScript functional programming with this quiz."
        ]
      }
    }
  },
  "introduction-to-asynchronous-javascript": {
    "title": "Introduction to Asynchronous JavaScript",
    "summary": [
      "Learn the fundamentals of asynchronous programming in JavaScript."
    ],
    "intro": [
      "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
    ],
    "note": "",
    "blocks": {
      "lecture-understanding-asynchronous-programming": {
        "title": "Understanding Asynchronous Programming",
        "intro": [
          "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the <code>async</code> keyword works, the <code>Fetch</code> API, promises, <code>async/await</code>, the <code>Geolocation</code> API, and much more."
        ]
      },
      "workshop-fcc-authors-page": {
        "title": "Build an fCC Authors Page",
        "intro": [
          "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
          "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
        ]
      },
      "lab-fcc-forum-leaderboard": {
        "title": "Build an fCC Forum Leaderboard",
        "intro": [
          "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
        ]
      },
      "lab-weather-app": {
        "title": "Build a Weather App",
        "intro": [
          "In this lab you'll build a Weather App using an API",
          "You'll practice how to fetch data from the API, store and display it on your app."
        ]
      },
      "review-asynchronous-javascript": {
        "title": "Asynchronous JavaScript Review",
        "intro": [
          "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
        ]
      },
      "quiz-asynchronous-javascript": {
        "title": "Asynchronous JavaScript Quiz",
        "intro": [
          "Test what you've learned about asynchronous JavaScript with this quiz."
        ]
      }
    }
  },
  "information-security": {
    "title": "Seguridad de la Información",
    "intro": [
      "Con todo lo que hacemos en línea, hay una gran cantidad de información sensible en riesgo: direcciones de correo electrónico, contraseñas, números de teléfono y mucho más.",
      "Con la Certificación de Seguridad de Información, construirás aplicaciones web seguras con HelmetJS para aprender los fundamentos de la protección de la información en línea de la gente.",
      "También construirás un cliente TCP, y un escáner de puertos y Nmap con Python. Esto te ayudará a aprender los fundamentos de las pruebas de penetración - un componente importante para la buena seguridad de la información."
    ],
    "note": "",
    "blocks": {
      "information-security-with-helmetjs": {
        "title": "Seguridad de la Información con HelmetJS",
        "intro": [
          "Este curso de programación se enfoca en HelmetJS, un tipo de middleware para aplicaciones basadas en Express que establece automáticamente los encabezados HTTP. De esta forma, se puede prevenir que se pase información sensible entre el servidor y el cliente.",
          "Completar los siguientes cursos, te ayudará a entender como proteger tu página web de comportamiento malicioso."
        ]
      },
      "python-for-penetration-testing": {
        "title": "Python para Pruebas de Penetración",
        "intro": [
          "Estos cursos en video te enseñarán pruebas de penetración con Python. También conocidas como pen test, las pruebas de penetración son ataques simulados contra un sistema para revisar vulnerabilidades.",
          "En este curso aprenderás sobre sockets, a crear un servidor y un cliente TCP, a crear un escáner Nmap, y otras herramientas y técnicas que los probadores de penetración utilizan a diario."
        ]
      },
      "information-security-projects": {
        "title": "Proyectos de Seguridad de la Información",
        "intro": [
          "Ahora es tiempo de poner a trabajar tus nuevas habilidades en seguridad de la información. Estos proyectos te darán oportunidad de aplicar tus habilidades, principios y conceptos que has aprendido.",
          "Cuando termines, tendrás muchos proyectos de seguridad de la información en tu currículum, junto con una certificación que podrás mostrar a tus amigos, familiares y empleadores."
        ]
      }
    }
  },
  "machine-learning-with-python": {
    "title": "Aprendizaje Automático con Python",
    "intro": [
      "Machine learning tiene muchas aplicaciones prácticas que puedes utilizar en tus proyectos o en tu trabajo.",
      "En la certificación de Machine Learning con Python, usarás el framework TensorFlow para construir varias redes neuronales y explorar técnicas más avanzadas como: el procesamiento de lenguaje natural y el aprendizaje por refuerzo.",
      "También te sumergirás en redes neuronales y aprenderás los principios detrás de cómo funcionan las redes neuronales profundas, recurrentes y convolucionales."
    ],
    "note": "",
    "blocks": {
      "tensorflow": {
        "title": "TensorFlow",
        "intro": [
          "TensorFlow es un framework de código abierto que facilita el aprendizaje automático y el uso de redes neuronales.",
          "El siguiente video curso fue creado por Tim Ruscica, también conocido como “Tech With Tim”. Le ayudará a entender TensorFlow y algunas de sus potentes capacidades."
        ]
      },
      "how-neural-networks-work": {
        "title": "Cómo funcionan las redes neuronales",
        "intro": [
          "Las redes neuronales están en el centro de lo que hoy llamamos inteligencia artificial. Pero históricamente han sido difíciles de entender, especialmente para los principiantes en el campo de aprendizaje de máquinas.",
          "Incluso si eres completamente nuevo en las redes neuronales, estos cursos de video de Brandon Rohrer te harán sentir cómodo con los conceptos y las matemáticas detrás de ellos."
        ]
      },
      "machine-learning-with-python-projects": {
        "title": "Aprendizaje automático con proyectos Python",
        "intro": [
          "El aprendizaje automático tiene muchas aplicaciones prácticas. Al completar estos proyectos de programación gratuitos y desafiantes, demostrará que tiene un buen conocimiento fundacional de aprendizaje automático, y califica para su certificación de aprendizaje automático con Python."
        ]
      }
    }
  },
  "college-algebra-with-python": {
    "title": "Algebra universitaria con Python",
    "intro": [
      "Este curso está diseñado como un semestre de academia. Consiste de videos intructivos, con Google Colaboratory para seguir interactivamente, asignaturas y proyectos competitivos.",
      "A medida que pasas por cada parte de este curso en secuencia, ganarás una comprensión completa de Álgebra y cómo escribir código de Python para resolver problemas de Álgebra.",
      "A lo largo de este curso, también construirá su propio Algebra Colab que podrá utilizar como su calculadora personalizada. Este curso (y el código que escribas aquí) te dará la base para una comprensión más profunda de matemáticas y ciencias de datos."
    ],
    "note": "",
    "blocks": {
      "learn-ratios-and-proportions": {
        "title": "Aprender ratios y porciones",
        "intro": [
          "Tu viaje comienza aquí a medida que aprendes cómo configurar un libro de notas Colab que puede ejecutar código Python. Luego, utilice el cuaderno para seguir junto con los videos para aprender ratios y proporciones usando Python."
        ]
      },
      "learn-how-to-solve-for-x": {
        "title": "Aprende cómo resolver X",
        "intro": [
          "Esta unidad se centrará en cómo resolver un número desconocido (a menudo llamado \"x\") usando el código escrito de Álgebra y Python."
        ]
      },
      "learn-fractions-and-decimals": {
        "title": "Aprende Fracciones y Decimales",
        "intro": [
          "Esta unidad se centrará en convertir decimales a fracciones y porcentajes."
        ]
      },
      "learn-functions-and-graphing": {
        "title": "Aprende Funciones y Gráficos",
        "intro": ["Esta unidad te enseñará sobre las funciones matemáticas."]
      },
      "learn-linear-functions": {
        "title": "Aprende funciones lineales",
        "intro": [
          "Esta unidad le mostrará cómo desarrollar ecuaciones lineales desde dos puntos."
        ]
      },
      "learn-common-factors-and-square-roots": {
        "title": "Aprende Factores Comunes y Raíces Cuadrados",
        "intro": [
          "En esta unidad, aprenderás a encontrar factores comunes y dividirlos. Esto será útil para simplificar fracciones y factorizar raíces cuadradas."
        ]
      },
      "build-a-multi-function-calculator-project": {
        "title": "Calculador de múltiples funciones",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirá una calculadora multifuncional."
        ]
      },
      "learn-how-to-graph-systems-of-equations": {
        "title": "Aprende cómo graficar los sistemas de ecuaciones",
        "intro": [
          "Esta unidad se centrará en graficar dos ecuaciones en el mismo plano de coordenadas, para que se pueda ver donde se intersectan las líneas."
        ]
      },
      "learn-how-to-solve-systems-of-equations": {
        "title": "Aprende a resolver los sistemas de ecuaciones",
        "intro": [
          "En esta unidad, aprenderás a resolver un sistema de dos ecuaciones (con dos variables) sin gráfico. Verás cómo puedes factorizar una ecuación y resolver una determinada variable en Python. Al final de esta unidad, usted será capaz de resolver y graficar el sistema con un bloque de código."
        ]
      },
      "learn-applications-of-linear-systems": {
        "title": "Aprender Aplicaciones de Sistemas Lineales",
        "intro": [
          "En esta unidad, verá cómo puede utilizar el algoritmo que aprendió hasta ahora para resolver problemas del mundo real."
        ]
      },
      "learn-quadratic-equations": {
        "title": "Aprende ecuaciones cuadráticas",
        "intro": [
          "Esta unidad irá más allá de las ecuaciones lineales, para trabajar con exponentes y gráficas parabolas. Aprenderás cómo encontrar puntos clave en las parabolas y cómo resolver ecuaciones cuadráticas."
        ]
      },
      "build-a-graphing-calculator-project": {
        "title": "Calculadora de gráficos",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, se construirá una calculadora de gráficos."
        ]
      },
      "learn-parent-graphs-and-polynomials": {
        "title": "Aprende Gráficos y Polinomios de Padres",
        "intro": [
          "Esta unidad le mostrará muchos tipos diferentes de gráficos \"padres\", los patrones básicos que componen gráficos más complicados. Los polinomios son expresiones matemáticas con \"múltiples cosas\" - las ecuaciones más complicadas que se construyen con patrones básicos. Verás cómo se ven estos gráficos, cómo modificarlos y cómo hacerlo todo con código Python."
        ]
      },
      "build-three-math-games-project": {
        "title": "Tres juegos de matemáticas",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirás tres juegos de matemática."
        ]
      },
      "learn-business-applications-of-college-algebra": {
        "title": "Aprender aplicaciones de negocios de la álgebra universitaria",
        "intro": [
          "Esta unidad le mostrará cómo aplicar sus habilidades de resolución y gráfica para encontrar costos, ingresos y ganancias. Escribirás código para desarrollar una función de demanda desde dos puntos. Verán cómo el precio afecta al gráfico de beneficios y cómo todas estas ecuaciones se relacionan entre sí."
        ]
      },
      "learn-simple-and-compound-interest": {
        "title": "Aprende Interés Simple y Compuesto",
        "intro": [
          "Esta unidad le mostrará cómo calcular los intereses, los pagos de préstamos y el valor estimado de las inversiones. Verás la fórmula matemática y convertirla en código. Debido a que estas fórmulas tienden a ser complicadas, apreciarás tener el código donde puedes modificar unos pocos valores."
        ]
      },
      "learn-exponents-and-logarithms": {
        "title": "Aprender Exponentes y Logaritmos",
        "intro": [
          "Esta unidad le mostrará cómo los exponentes y logaritmos son funciones inversas, y cómo puede utilizar estas funciones en varias aplicaciones."
        ]
      },
      "build-a-financial-calculator-project": {
        "title": "Calculador Financiero",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirá una calculadora financiera."
        ]
      },
      "college-algebra-with-python-conclusion": {
        "title": "Algebra universitaria con Python: Conclusión",
        "intro": [
          "Esta será la última unidad en este curso. Veamos cómo puedes conectar tu conocimiento de matemáticas y Python con datos externos."
        ]
      },
      "build-a-data-graph-explorer-project": {
        "title": "Explorador gráfico de datos",
        "intro": [
          "Este es uno de los proyectos necesarios para obtener su certificación.",
          "Para este proyecto, construirá una calculadora financiera."
        ]
      }
    }
  },
  "python-for-everybody": {
    "title": "Python Heredado para Todos",
    "intro": [
      "Python es uno de los mas populares, y flexible lenguajes de programación hoy en día. Tu puedes usar este para cualquier secuencia de comandos básica en aprendizaje automático."
    ],
    "note": "",
    "blocks": {
      "python-for-everybody": {
        "title": "Python para Todos",
        "intro": [
          "Python para todos es una serie de cursos gratuitos en video que the enseñan lo basico de usar Python 3.",
          "Los cursos fueron creados por el Dr. Charles Severance (tambien conocido como el Dr. Chuck). El es un Profesor Clinico en la Escuela de la Información en la Universidad de Michigan, donde el enseña varios cursos orientados a la tecnologia incluyendo programacion, diseño de bases de datos, y desarrollo web."
        ]
      }
    }
  },
  "coding-interview-prep": {
    "title": "Preparación de Entrevistas de Programación",
    "intro": [
      "Si está buscando ejercicios gratuitos de programación para prepararse para tu próxima entrevista de trabajo, aquí los tenemos.",
      "Esta sección contiene docenas de desafíos de codificación que ponen a prueba tus conocimientos de algoritmos, estructuras de datos y matemáticas. También incluye una serie de proyectos para llevar a casa que puedes utilizar para fortalecer tus habilidades o agregar a tu portafolio.",
      "Este trabajo incorpora material de <a href=\"https://www.wikipedia.org/\" target=\"_blank\">Wikipedia</a>, que se encuentra bajo la licencia <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\" target=\"_blank\">Creative Commons Attribution-ShareAlike License \"4,0\"</a>. El contenido original puede haber sido modificado y adaptado. Para ver la versión inalterada y obtener más detalles, consulte la página original en <a href=\"https://www.wikipedia.org/\" target\"_blank\">Wikipedia</a>."
    ],
    "blocks": {
      "algorithms": {
        "title": "Algoritmos",
        "intro": [
          "Estos ejercicios de programación gratuita le enseñarán algunos algoritmos comunes que probablemente encontrará en la vida real. Son una gran oportunidad para mejorar su lógica y habilidades de programación.",
          "Estos algoritmos se utilizan frecuentemente en entrevistas de trabajo para probar las habilidades de un candidato. Le daremos explicaciones claras y concisas de cómo funcionan estos diferentes algoritmos para que pueda implementar una solución para cada uno.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "data-structures": {
        "title": "Estructuras de datos",
        "intro": [
          "Estos cursos de programación gratuita están pensados para ayudarle a manejar estructuras de datos grandes y complejas con las que todavía no esté familiarizado.",
          "Realizando los cursos siguientes, aprenderás sobre cada tipo de estructura de datos, e implementarás algoritmos para reforzar tu entendimiento de ellos.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "take-home-projects": {
        "title": "Proyectos Domiciliarios",
        "intro": [
          "Las entrevistas de programación siempre han sido estresantes. A los solicitantes de empleo a veces se les da un proyecto para llevarse a casa y completarlo fuera de la entrevista. Este tipo de entrevistas normalmente requieren mucho trabajo, pero son una manera genial para que los empleadores vean como podrías desempeñarte en el trabajo.",
          "Construye los proyectos extra, para más práctica. Tómate tu tiempo, hazlos geniales, ponlos en tu currículum o portfolio para mostrarlos a tus posibles empleadores."
        ]
      }
    }
  },
  "the-odin-project": {
    "title": "El Proyecto Odin: Remix de freeCodeCamp",
    "intro": [
      "El Proyecto Odin fue creado en 2013 por un solitario desarrollador, Erik Trautman. A través de los años, ha surgido una comunidad de código abierto para mantener y ampliar el proyecto.",
      "freeCodeCamp ha ampliado el plan de estudios para el código abierto y hacer que se ejecute de forma interactiva en el navegador, con pruebas para evaluar tu código y garantizar que hayas comprendido los conceptos clave.",
      "Si tu quieres la experiencia original de toda la configuración del Proyecto Odin para ejecutarlo dentro de tu computadora local, tu puedes verificar el Proyecto Odin original en <a href='https://www.theodinproject.com/' target='_blank' rel='noopener noreferrer nofollow'>sitio web del Proyecto Odin</a>. Un abrazo gracias a la comunidad de El Proyecto Odin por continuar este valioso recurso de aprendizaje para desarrolladores alrededor de todo el mundo.",
      "Este curso no es oficial y no está avalado por el proyecto Odin. Se han hecho cambios en el contenido del plan de estudios del Proyecto Odin, y todo el material educativo de este curso está licenciado bajo <a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' target='_blank' rel='noopener noreferrer nofollow'>CC-BY-SA-NC 4.0</a>",
      "<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/deed' target='_blank' rel='noopener noreferrer nofollow'>&copy; El Proyecto Odin</a>",
      "Este curso incluye contenido de <a href='https://javascript.info/' target='_blank' rel='noopener noreferrer nofollow'>JavaScript.info</a>, el cual está licenciado bajo <a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' target='_blank' rel='noopener noreferrer nofollow'>CC-BY-NC-SA 4.0</a>."
    ],
    "blocks": {
      "top-learn-html-foundations": {
        "title": "Aprender fundamentos de HTML",
        "intro": [
          "Obtén una solida comprensión de los conceptos básicos de HTML con este curso. Desde estructurar páginas web hasta comprender etiquetas semánticas, construirás una base sólida para crear contenido accesible y bien organizado en la web."
        ]
      },
      "top-working-with-text": {
        "title": "Trabajando con texto",
        "intro": [
          "Explore las complejidades de trabajar con texto en el desarrollo web. Aprenda sobre formato, manipulación y presentación de texto para mejorar sus habilidades en la creación de contenido web."
        ]
      },
      "top-links-and-images": {
        "title": "Enlaces e imágenes",
        "intro": [
          "Aprende a incorporar enlaces e imágenes en sus proyectos web. Este curso cubre los fundamentos de la creación de enlaces e incrustación de imágenes para hacer que sus sitios web sean más interactivos y visualmente atractivos."
        ]
      },
      "top-build-a-recipe-project": {
        "title": "Aprende fundaciones HTML construyendo una página de receta",
        "intro": [
          "Ponga en práctica sus habilidades en HTML creando una página de recetas. Este proyecto práctico le permite aplicar sus conocimientos y crear una página web funcional mientras refuerza conceptos clave del desarrollo HTML."
        ]
      },
      "top-learn-css-foundations": {
        "title": "Aprenda fundamentos en CSS",
        "intro": [
          "Sumérgete en el mundo de las hojas de estilo en cascada (CSS) y aprende a diseñar tus elementos HTML. Explore propiedades de estilo, selectores y diseños para darle vida a tus páginas web."
        ]
      },
      "top-learn-css-foundations-projects": {
        "title": "Aprenda Fundamentos de Proyectos en CSS",
        "intro": [
          "Lleva tus habilidades CSS al siguiente nivel trabajando en proyectos prácticos. Este curso proporciona experiencia práctica en la aplicación de CSS para crear diseños responsivos para escenarios del mundo real."
        ]
      },
      "top-learn-css-specificity": {
        "title": "Aprende Especificidad en CSS",
        "intro": [
          "Aprenda la especificidad de CSS y comprenda mejor cómo se aplican los estilos a los elementos HTML. Este curso explora los matices de las reglas CSS y le ayuda a escribir estilos eficientes y específicos para sus páginas web."
        ]
      },
      "top-the-box-model": {
        "title": "Aprende el modelo de caja",
        "intro": [
          "Aprenda el modelo de caja CSS con este curso. Comprenda cómo se representan los elementos en la web y aprenda a manipular el espaciado, los bordes y el relleno para lograr la disposición y el diseño deseados."
        ]
      },
      "top-introduction-to-flexbox": {
        "title": "Introducción a Flexbox",
        "intro": [
          "Descubra el poder de Flexbox, un modelo de diseño que simplifica el diseño de diseños web flexibles y responsivos. Aprenda a crear estructuras de páginas dinámicas y adaptables con facilidad."
        ]
      },
      "top-learn-block-and-inline": {
        "title": "Aprende la diferencia entre Bloque y En-Linea",
        "intro": [
          "Explore las distinciones entre elementos en bloque y en línea en HTML y CSS. Este curso proporciona información sobre cómo estos tipos de pantalla afectan el diseño y el comportamiento, permitiéndole tomar decisiones de diseño informadas."
        ]
      },
      "top-learn-variables-and-operators": {
        "title": "Aprende Variables y Operadores",
        "intro": [
          "Comienza con JavaScript aprendiendo sobre variables y operadores. Este curso cubre lo fundamental de la programación en JavaScript, incluyendo tipo de datos, operadores y declaración de variables."
        ]
      },
      "top-learn-data-types-and-conditionals": {
        "title": "Aprenda Tipos de Datos y Condicionales",
        "intro": [
          "Aprenda acerca de tipos de datos y condicionales en JavaScript."
        ]
      },
      "top-learn-function-basics": {
        "title": "Aprenda Funciones Básicas",
        "intro": ["Aprenda acerca de las funciones en JavaScript."]
      },
      "top-basic-function-projects": {
        "title": "Proyecto de Función Básica",
        "intro": [
          "Pon tus habilidades de Javascript a prueba construyendo funciones básicas."
        ]
      },
      "top-learn-arrays-and-loops": {
        "title": "Aprende arreglos y bucles",
        "intro": ["Aprende sobre arreglos y bucles en JavaScript."]
      },
      "top-learn-to-solve-problems-and-understand-errors": {
        "title": "Aprende a resolver problemas y comprender errores",
        "intro": [
          "Aprende a resolver problemas y a entender los errores en JavaScript."
        ]
      },
      "top-build-a-rock-paper-scissors-game": {
        "title": "Crea un juego de piedra papel o tijeras",
        "intro": [
          "Pon a prueba tus conocimientos de JavaScript creando un juego de piedra, papel o tijera."
        ]
      }
    }
  },
  "project-euler": {
    "title": "Proyecto Euler",
    "intro": [
      "Completa los siguientes desafíos de programación de los masivos archivos del Project Euler. Estos fortalecerán tus conocimientos de algoritmos y matemáticas.",
      "Estos problemas varían en dificultad y, para muchos, la experiencia es el aprendizaje inductivo en cadena. Es decir, resolviendo un problema, le expondrá a un nuevo concepto que le permitirá emprender un problema previamente inaccesible. ¿Pueden terminar todos?"
    ],
    "blocks": {
      "project-euler-problems-1-to-100": {
        "title": "Proyectos Euler del 1 a 100",
        "intro": [
          "En este primer conjunto de desafíos, utilizarás conceptos matemáticos como la secuencia de Fibonacci, teoría de números primos, y combinatorios para escribir algoritmos eficientes para resolver estos problemas.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "project-euler-problems-101-to-200": {
        "title": "Proyectos Euler del 101 a 200",
        "intro": [
          "En este conjunto de desafíos, basarás las habilidades que aprendiste en la primera parte del curso y usarás conceptos más avanzados como el cálculo del vector, La pirámide, y el algoritmo RSA para resolver estos problemas de forma eficiente.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "project-euler-problems-201-to-300": {
        "title": "Proyectos Euler del 201 a 300",
        "intro": [
          "En este conjunto de desafíos, continuarás construyendo sobre las habilidades que aprendiste anteriormente y usarás conceptos como el teorema binomial, Números de estancamiento, y la secuencia de Collatz para desarrollar aún más tus habilidades de matemáticas y resolución de problemas.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "project-euler-problems-301-to-400": {
        "title": "Proyectos Euler del 301 a 400",
        "intro": [
          "Aquí continuarás exprimiendo tus habilidades matemáticas y algorítmicas mientras usas conceptos como teoría de juegos combinatorios, las operaciones bitwise y la secuencia autodescriptiva de Golomb para desarrollar soluciones eficientes a estos problemas.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      },
      "project-euler-problems-401-to-480": {
        "title": "Proyecto Euler Problemas 401 a 480",
        "intro": [
          "En este último conjunto de desafíos, necesitarás aprovechar todo lo que aprendiste hasta este punto y utilizar conceptos avanzados como divisores unitarios, la rutina de Kaprekar y mucho más para resolver estos problemas complejos.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      }
    }
  },
  "foundational-c-sharp-with-microsoft": {
    "title": "C# fundacional gratuita con certificación Microsoft",
    "intro": [
      "Este curso ofrece una introducción completa a la programación en C#, abarcando sus conceptos básicos, sintaxis y aplicación práctica en el desarrollo de software.",
      "A través de ejercicios prácticos y proyectos, aprenderá los fundamentos de C#, incluyendo variables, tipos de datos, estructuras de control y principios de programación orientados a objetos.",
      "Al terminar este curso, habras ganado las habilidades prácticas y el conocimiento necesario para construir aplicaciones en C# con confianza."
    ],
    "note": "Cada sección de abajo tiene un trofeo asociado con él que debes ganar en la plataforma Microsoft Learn. Después de ganar cada trofeo, necesitas verificarlos en freeCodeCamp. Una vez que los hayas hecho, puedes calificar para el examen de certificación.",
    "blocks": {
      "write-your-first-code-using-c-sharp": {
        "title": "Escribe tu primer código usando C#",
        "intro": [
          "Comienza tu viaje aprendiendo a escribir tu primer codigo usando C#. Desarrolla una base sólida mientras exploras los fundamentos y el sintaxis del lenguaje, establecido el escenario para tus aventuras de programación."
        ]
      },
      "create-and-run-simple-c-sharp-console-applications": {
        "title": "Crea y Ejecuta Aplicaciones de Consola Simples en C#",
        "intro": [
          "Domina el arte de crear y ejecutar aplicaciones simples de consola en C#. Sumérgete en el mundo de programación basada en la consola, donde ganaras experiencia práctica ejecutando tu codigo y viéndolo en acción."
        ]
      },
      "add-logic-to-c-sharp-console-applications": {
        "title": "Añadir Logica a Aplicaciones de Consola en C#",
        "intro": [
          "Desbloquea la potencia de la lógica en aplicaciones de consola con C#. Aprende cómo agregar capacidades lógicas y de toma de decisiones en tu código, permitiendo que tus aplicaciones hagan elecciones dinámicas y respondan inteligentemente a diferentes escenarios."
        ]
      },
      "work-with-variable-data-in-c-sharp-console-applications": {
        "title": "Trabaja con Datos Variables en Aplicaciones de Consola en C#",
        "intro": [
          "Descubre la versatilidad de los datos variables en aplicaciones de consola de C#. Aproveche la capacidad de almacenar y manipular diferentes tipos de datos, tales como números y texto, mientras profundizas en los conceptos esenciales de variables y manejo de datos."
        ]
      },
      "create-methods-in-c-sharp-console-applications": {
        "title": "Crear métodos en aplicaciones de consola C#",
        "intro": [
          "Lleva tus aplicaciones de consola C# al siguiente nivel dominando el arte de crear métodos. Aprende cómo organizar y modularizar tu código, haciéndola más manejable, reutilizable y eficiente."
        ]
      },
      "debug-c-sharp-console-applications": {
        "title": "Depurar Aplicaciones de consola C#",
        "intro": [
          "Perfeccione sus habilidades de resolución de problemas mientras se sumerge en el mundo de la depuración de aplicaciones de consola C#. Obtenga la capacidad de identificar y solucionar problemas en su código, garantizando que sus aplicaciones se ejecuten sin problemas y entreguen los resultados deseados."
        ]
      },
      "foundational-c-sharp-with-microsoft-certification-exam": {
        "title": "C# básico con examen de certificación de Microsoft",
        "intro": [
          "Utiliza lo que has aprendido para aprobar el examen y obtener tu Certificación Fundacional de C# con Microsoft"
        ]
      }
    }
  },
  "a2-english-for-developers": {
    "title": "Certificación de inglés para desarrolladores A2 (Beta)",
    "intro": [
      "En este plan de estudios de inglés para desarrolladores, aprenderá los conceptos básicos de la comunicación en inglés. Esto seguirá el nivel A2 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en vocabulario que es particularmente útil para los desarrolladores.",
      "La primera mitad del plan de estudios te ayudará a sentirte cómodo con la gramática y el uso del inglés. Te brindará toneladas de práctica en tus manos. Aprenderá conceptos básicos de como presentarse, entablar una pequeña charla y discutir sobre tu trabajo.",
      "En la segunda mitad, practicarás vocabulario específico para el desarrollo de software. Aprenderás a describir código, discutir tendencias tecnológicas y participar en reuniones de pie.",
      "Todo este plan de estudios de nivel A2 incluye 105 diálogos diferentes. Cada uno está diseñado para desarrollar su vocabulario y aumentar su confianza al hablar en un entorno tecnológico profesional."
    ],
    "note": "This certification is currently in beta.",
    "blocks": {
      "learn-greetings-in-your-first-day-at-the-office": {
        "title": "Aprende saludos en tu primer día en la oficina",
        "intro": [
          "En este primer curso, aprenderá expresiones comunes para situaciones que puede encontrar en su primer día de trabajo. Aprenderá sobre presentaciones, cómo conocer gente, cómo pedir recomendaciones para el almuerzo, y cómo obtener una tarjeta de acceso de seguridad."
        ]
      },
      "en-a2-quiz-first-day-conversations-at-work": {
        "title": "First Day Conversations at Work Quiz",
        "intro": ["", ""]
      },
      "learn-introductions-in-an-online-team-meeting": {
        "title": "Aprenda las presentaciones en una reunión de equipo en línea",
        "intro": [
          "En este curso, aprenderá a como dar una presentación personal. También aprenderá a como expresar el estado de tu profesión, y a compartir sus metas en reuniones grupales."
        ]
      },
      "en-a2-quiz-meeting-introductions-at-work": {
        "title": "Meeting Introductions at Work Quiz",
        "intro": ["", ""]
      },
      "learn-conversation-starters-in-the-break-room": {
        "title": "Aprenda a iniciar conversaciones en la sala de descanso",
        "intro": [
          "En este curso, aprenderá cómo iniciar una conversación en entornos informales. También aprenderá a hablar acerca de sus pasatiempos y rasgos de personalidad. Incluso aprenderás a como preguntar sobre lugares alrededor de la ciudad."
        ]
      },
      "en-a2-quiz-conversation-starters-at-work": {
        "title": "Break Room Conversations Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-a-typical-workday-and-tasks": {
        "title": "Aprenda a hablar sobre una jornada laboral típica y sus tareas",
        "intro": [
          "En este curso, aprenderás cómo hablar sobre tu día en el trabajo y las tareas que realizas en tu lugar de trabajo y cómo compartirlas con otros. Se centra principalmente en las estructuras utilizadas para describir tus actividades y vocabulario relacionado con las tareas."
        ]
      },
      "en-a2-quiz-work-routines-and-tasks": {
        "title": "Talking About Your Workday Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-discuss-your-morning-or-evening-routine": {
        "title": "Aprenda a hablar sobre su rutina matutina o vespertina",
        "intro": [
          "En este curso, aprenderás a como hablar acerca de los detalles de tu rutina y como compartirlos con alguien más. Se centra principalmente en las estructuras utilizadas para declarar acciones turinarias y vocabulario relacionado."
        ]
      },
      "en-a2-quiz-daily-life-routines": {
        "title": "Daily Routines at Work Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-describe-your-current-project": {
        "title": "Aprenda a describir su proyecto actual",
        "intro": [
          "En este curso, aprenderás a como habalr sobre los proyectos en los que estás involucrado y como informar a otros lo que estás haciendo en estos proyectos. Principalmente se centra en las estructuras utilizadas para informar y en vocabulario relacionado."
        ]
      },
      "en-a2-quiz-what-are-you-working-on": {
        "title": "Describing Your Current Project Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-ask-and-share-about-educational-and-professional-background": {
        "title": "Aprenda a preguntar y compartir sobre antecedentes educativos y profesionales",
        "intro": [
          "En este curso, aprenderá a preguntar sobre los antecedentes educativos y profesionales de otra persona y también aprenderá a compartir información sobre sus antecedentes."
        ]
      },
      "en-a2-quiz-educational-and-professional-background": {
        "title": "Educational and Professional Background Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-hobbies-and-interests": {
        "title": "Aprenda a hablar sobre pasatiempos e intereses",
        "intro": [
          "En este curso, aprenderá sobre diversas maneras de hablar acerca de pasatiempos y las cosas que le interesan. También aprenderá cómo preguntar a otras personas sobre sus pasatiempos e invitarles a ellos a unirse a los suyos."
        ]
      },
      "en-a2-quiz-hobbies-and-interests": {
        "title": "Talking About Hobbies and Interests Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-discuss-roles-and-responsibilities": {
        "title": "Aprende a hablar sobre roles y responsabilidades",
        "intro": [
          "En este curso, hablaremos sobre los roles de las personas y sus responsabilidades en una compañía y fuera de ella. Aprenderás a preguntar sobre estos roles y responsabilidades y cómo compartir información sobre tí relacionada con este tema."
        ]
      },
      "en-a2-quiz-discuss-roles-responsibilities": {
        "title": "Cuestionario sobre roles y responsabilidades.",
        "intro": ["", ""]
      },
      "learn-how-to-have-a-conversation-about-preferences-and-motivations": {
        "title": "Aprenda a tener una conversación sobre preferencias y motivaciones",
        "intro": [
          "En este curso aprenderás cómo preguntar qué motiva a las personas en su vida personal y profesional, responder preguntas relacionadas con tus motivaciones y discutir acerca de las preferencias de las personas."
        ]
      },
      "en-a2-quiz-preferences-and-motivations": {
        "title": "Preferences and Motivations Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-discuss-popular-trends-in-technology": {
        "title": "Aprenda a discutir las tendencias populares en tecnología",
        "intro": [
          "En este curso aprenderás cómo discutir sobre temas que todo el mundo está hablando en tecnología actualmente."
        ]
      },
      "en-a2-quiz-sharing-opinions": {
        "title": "Technology Trends Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-clarify-information-in-different-interactions": {
        "title": "Aprenda a aclarar información en diferentes interacciones",
        "intro": [
          "En este curso, aprenderás cómo verificar si tu información es correcta y cómo pedir aclaraciones cuando algo no te queda claro."
        ]
      },
      "en-a2-quiz-getting-the-details-right": {
        "title": "Clarifying Information Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-use-basic-programming-vocabulary-in-conversations": {
        "title": "Aprenda a utilizar el vocabulario básico de programación en conversaciones",
        "intro": [
          "Este curso presentará el vocabulario básico relacionado con la programación. Aprenderás a formular preguntas relacionadas con conceptos básicos de programación."
        ]
      },
      "en-a2-quiz-basic-programming-vocabulary": {
        "title": "Cuestionario de vocabulario básico de programación.",
        "intro": ["", ""]
      },
      "learn-how-to-use-code-related-concepts-and-terms": {
        "title": "Aprenda a utilizar conceptos y términos relacionados con el código",
        "intro": [
          "En este curso, se le presentarán términos relacionados con la codificación y aprenderá a utilizarlos en una conversación."
        ]
      },
      "en-a2-quiz-key-programming-terms": {
        "title": "Code Concepts and Terms Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-discuss-tech-trends-and-updates": {
        "title": "Aprende a Como Discutir las Tendencias y Actualizaciones Tecnológicas",
        "intro": [
          "En este curso, conocerás algunas tendencias recientes en el mundo de la tecnología y aprenderás a hablar de ellas en inglés."
        ]
      },
      "en-a2-quiz-discussing-new-ideas": {
        "title": "Tech Updates and Trends Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-help-a-coworker-troubleshoot-on-github": {
        "title": "Aprenda a Como Ayudar un Compañero de Trabajo a Solucionar Problemas en GitHub",
        "intro": [
          "En este curso, aprenderás expresiones relacionadas con la forma de pedir ayuda a un compañero de trabajo, así como la forma de ofrecerle ayuda."
        ]
      },
      "en-a2-quiz-discussing-problems-and-solutions": {
        "title": "Helping a Coworker on GitHub Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-share-your-progress-in-weekly-stand-up-meetings": {
        "title": "Aprende a Cómo Compartir Tu Progreso en Reuniones de Pie Semanales",
        "intro": [
          "Este curso te enseñará a hablar de tus proyectos en términos de lo que ya has hecho y de lo que estás haciendo actualmente en ellos."
        ]
      },
      "en-a2-quiz-collaborating-in-meetings": {
        "title": "Weekly Meeting Progress Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-ask-for-clarification-on-code-understanding": {
        "title": "Aprende a Como Preguntar por Aclaración sobre la Comprensión del Código",
        "intro": [
          "En este curso, verás cómo puedes hacer preguntas para aclarar cosas que no te quedan muy claras en un código."
        ]
      },
      "en-a2-quiz-understanding-problems": {
        "title": "Asking for Code Clarification Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-document-code-for-a-project": {
        "title": "Aprende a Como Documentar Código para un Proyecto",
        "intro": [
          "Este curso te mostrará expresiones relacionadas con lo que hay que hacer al documentar código."
        ]
      },
      "en-a2-quiz-document-code-project": {
        "title": "Cuestionario sobre documentar código.",
        "intro": ["", ""]
      },
      "learn-how-to-read-and-understand-code-documentation": {
        "title": "Aprende a Como Leer y Entender Documentación del Código",
        "intro": [
          "Este curso presentará más expresiones relacionadas con la documentación del código y aportará consejos sobre cómo entenderla."
        ]
      },
      "en-a2-quiz-read-understand-code-documentation": {
        "title": "Cuestionario sobre entender la documentación de código.",
        "intro": ["", ""]
      },
      "learn-how-to-analyze-code-documentation": {
        "title": "Aprende a Como Analizar Documentación del Código",
        "intro": [
          "En este curso, verás algunas ideas que te ayudarán a abordar la documentación y analizarla en términos sencillos."
        ]
      },
      "en-a2-quiz-analyzing-documentation": {
        "title": "Analyzing Code Documentation Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-share-progress-and-accomplishments": {
        "title": "Aprende a Como Compartir el Progreso y los Logros",
        "intro": [
          "En este curso aprenderás a compartir tus progresos con tus compañeros de trabajo y a contar los éxitos que has tenido en tus proyectos."
        ]
      },
      "en-a2-quiz-discussing-progress-and-results": {
        "title": "Sharing Progress and Achievements Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects": {
        "title": "Aprende cómo hablar sobre actualizaciones y planes para tareas y proyectos",
        "intro": [
          "Este curso te enseñará a hablar de los avances más recientes en tus proyectos y de tus planes."
        ]
      },
      "en-a2-quiz-task-project-updates-plans": {
        "title": "Cuestionario sobre actualizaciones de tareas y proyectos.",
        "intro": ["", ""]
      },
      "learn-how-to-express-agreement-or-disagreement": {
        "title": "Aprende a Como Expresar Acuerdo y Desacuerdo",
        "intro": [
          "Este curso te enseñará a decir que estás de acuerdo con lo que dice otra persona y a decirle educadamente que no lo está."
        ]
      },
      "en-a2-quiz-express-agreement-disagreement": {
        "title": "Cuestionario sobre expresar acuerdo y desacuerdo.",
        "intro": ["", ""]
      },
      "learn-how-to-offer-technical-support-and-guidance": {
        "title": "Aprende a Como Ofrecer Soporte Técnico y Orientación",
        "intro": [
          "En este curso, verás formas de ofrecer ayuda en términos de detalles técnicos a otra persona."
        ]
      },
      "en-a2-quiz-following-best-practices": {
        "title": "Offering Technical Support Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-request-and-receive-guidance": {
        "title": "Aprende a Como Responder y Recibir Orientación",
        "intro": [
          "Este curso te enseñará a pedir ayuda a un compañero de trabajo cuando la necesites."
        ]
      },
      "en-a2-quiz-asking-for-help": {
        "title": "Requesting and Receiving Guidance Quiz",
        "intro": ["", ""]
      },
      "learn-how-to-provide-explanations-when-helping-others": {
        "title": "Aprende a Cómo Proporcionar Explicaciones Cuando Ayudas a Otros",
        "intro": [
          "Este curso te proporcionará formas de explicar las cosas a otras personas mientras las asistes."
        ]
      },
      "en-a2-quiz-giving-adivice-and-suggestions": {
        "title": "Explaining Things to Others Quiz",
        "intro": ["", ""]
      },
      "en-a2-certification-exam": {
        "title": "Exámen de certificación de inglés para desarrolladores A2",
        "intro": [
          "Este examen es necesario para obtener la Certificación A2 de Inglés para Desarrolladores."
        ]
      }
    }
  },
  "b1-english-for-developers": {
    "title": "Certificación de inglés B1 para Desarrolladores (Beta)",
    "intro": [
      "En este programa de inglés para desarrolladores, aprenderás los conceptos básicos de la comunicación en inglés. Seguirás el nivel B1 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en el vocabulario que resulta especialmente útil para los desarrolladores.",
      "Te ayudará a fortalecer tus habilidades básicas mientras introduces gramática y usos más complejos. Aprenderás a describir lugares y cosas, compartir experiencias pasadas y usar con confianza tiempos verbales como presente perfecto y futuro. También se incluyen estrategias prácticas de comunicación, como gestionar conversaciones, expresar opiniones y generar acuerdos o desacuerdos en discusiones.",
      "También te concentrarás en aplicar estas habilidades en entornos profesionales y técnicos. Practicarás vocabulario y frases esenciales para los desarrolladores, como describir códigos, participar en reuniones de pie y analizar tendencias tecnológicas. Los temas avanzados incluyen condicionales, estructuras comparativas y gestión de conversaciones, para que puedas prepararte para interacciones del mundo real en la industria tecnológica.",
      "Este programa completo de nivel B1 incluye 73 diálogos diferentes. Cada uno está diseñado para ampliar tu vocabulario y aumentar tu confianza al hablar en un entorno tecnológico profesional."
    ],
    "note": "This certification is currently in beta.",
    "blocks": {
      "learn-how-to-describe-places-and-events": {
        "title": "Aprende a describir lugares y acontecimientos",
        "intro": [
          "Este curso le mostrará formas de hablar sobre lugares y eventos de manera conversacional."
        ]
      },
      "en-b1-quiz-describe-places-events": {
        "title": "Cuestionario sobre describir lugares y eventos.",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-past-experiences": {
        "title": "Aprende a hablar de experiencias pasadas",
        "intro": [
          "En este curso aprenderás a compartir experiencias que tuviste en el pasado."
        ]
      },
      "en-b1-quiz-past-experiences": {
        "title": "Cuestionario sobre hablar de experiencias pasadas.",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-past-activities": {
        "title": "Aprende a hablar de actividades pasadas",
        "intro": ["En este curso aprenderás a hablar sobre cosas que hiciste."]
      },
      "en-b1-quiz-past-activities": {
        "title": "Cuestionario sobre hablar de actividades pasadas.",
        "intro": ["", ""]
      },
      "learn-present-perfect-while-talking-about-accessibility": {
        "title": "Aprende el presente perfecto hablando de accesibilidad",
        "intro": [
          "En este curso aprenderás a utilizar la estructura presente perfecto y aprenderás un poco más sobre accesibilidad."
        ]
      },
      "en-b1-quiz-present-perfect-accessibility": {
        "title": "Cuestionario sobre presente perfecto y accesibilidad.",
        "intro": ["", ""]
      },
      "learn-how-to-plan-future-events": {
        "title": "Aprende a planificar eventos futuros",
        "intro": [
          "En este curso aprenderás a utilizar las diferentes formas del futuro para planificar los próximos eventos."
        ]
      },
      "en-b1-quiz-plan-future-events": {
        "title": "Cuestionario sobre planificar eventos futuros.",
        "intro": ["", ""]
      },
      "learn-future-continuous-while-describing-actions": {
        "title": "Aprende el futuro continuo describiendo acciones",
        "intro": [
          "En este curso aprenderás a utilizar el tiempo futuro continuo y cómo describir acciones a realizar."
        ]
      },
      "en-b1-quiz-future-continuous-actions": {
        "title": "Cuestionario sobre acciones en futuro continuo.",
        "intro": ["", ""]
      },
      "learn-how-to-use-conditionals": {
        "title": "Aprende a utilizar los condicionales",
        "intro": [
          "En este curso, aprenderás a usar los condicionales para describir resultados hipotéticos dependiendo si ciertas condiciones se cumplen."
        ]
      },
      "en-b1-quiz-conditionals": {
        "title": "Cuestionario sobre el uso de sentencias condicionales.",
        "intro": ["", ""]
      },
      "learn-how-to-share-feedback": {
        "title": "Aprende a compartir opiniones",
        "intro": [
          "En este curso, aprenderás formas de expresar tu opinión sobre el trabajo de otras personas, resaltando tanto sus fortalezas como sus puntos a mejorar."
        ]
      },
      "en-b1-quiz-share-feedback": {
        "title": "Cuestionario sobre compartir retroalimentación.",
        "intro": ["", ""]
      },
      "learn-how-to-share-your-opinion": {
        "title": "Aprende a compartir tu opinión",
        "intro": [
          "Este curso le mostrará como puede expresar sus ideas y sentimientos hacía temas una discusión."
        ]
      },
      "en-b1-quiz-share-opinions": {
        "title": "Cuestionario sobre compartir opiniones.",
        "intro": ["", ""]
      },
      "learn-how-to-express-agreement": {
        "title": "Aprende a expresar tu acuerdo",
        "intro": [
          "En este curso aprenderás a expresar tu acuerdo en diferentes entornos profesionales."
        ]
      },
      "en-b1-quiz-express-agreement": {
        "title": "Cuestionario sobre expresar acuerdo.",
        "intro": ["", ""]
      },
      "learn-how-to-express-disagreement": {
        "title": "Aprende a expresar desacuerdos",
        "intro": [
          "En este curso aprenderás a expresar desacuerdo en distintos ámbitos profesionales."
        ]
      },
      "en-b1-quiz-express-disagreement": {
        "title": "Cuestionario sobre expresar desacuerdo.",
        "intro": ["", ""]
      },
      "learn-how-to-express-concerns": {
        "title": "Aprende a expresar tus preocupaciones",
        "intro": [
          "En este curso, aprenderás a informar a otras personas de que estás preocupado por cosas que puedan pasar a tus proyectos y tareas."
        ]
      },
      "en-b1-quiz-express-concerns": {
        "title": "Cuestionario sobre expresar preocupaciones.",
        "intro": ["", ""]
      },
      "learn-how-to-express-decisions-based-on-comparisons": {
        "title": "Aprende a expresar decisiones basadas en comparaciones",
        "intro": [
          "En este curso aprenderás a comparar cosas como herramientas o empresas usando palabras como mejor, más rápido y mejor. También practicarás teniendo conversaciones amistosas para dar opiniones y tomar decisiones"
        ]
      },
      "en-b1-quiz-decisions-comparisons": {
        "title": "Cuestionario sobre tomar decisiones con comparaciones.",
        "intro": ["", ""]
      },
      "learn-how-to-use-modal-verbs": {
        "title": "Aprende a utilizar los verbos modales",
        "intro": [
          "En este curso, aprenderás a hablar de normas, describir las cosas que son necesarias y lo que podría pasar si no lo fueran. También practicarás preguntando y respondiendo preguntas claramente, y añadiendo detalles útiles a tus ideas."
        ]
      },
      "en-b1-quiz-modal-verbs": {
        "title": "Cuestionario sobre el uso de verbos modales.",
        "intro": ["", ""]
      },
      "learn-how-to-manage-a-conversation": {
        "title": "Aprende a gestionar una conversación",
        "intro": [
          "En este curso, aprenderás cómo manejar conversaciones en el trabajo - tales como continuar una charla después de un descanso, cambiar temas educadamente, o interrumpir cuando sea necesario. También practicarás usando expresiones útiles para mantener una conversación clara, amistosa y organizada."
        ]
      },
      "en-b1-quiz-manage-conversations": {
        "title": "Cuestionario sobre gestionar conversaciones.",
        "intro": ["", ""]
      },
      "learn-how-to-clarify-misunderstandings": {
        "title": "Aprende a aclarar malentendidos",
        "intro": [
          "En este curso, aprenderás a pedir y dar explicaciones cuando algo no esté claro, usando preguntas educadas y respuestas útiles. También practicarás adivinar el significado de palabras nuevas, describir problemas y aclarar malentendidos de forma amable y profesional."
        ]
      },
      "en-b1-quiz-clarify-misunderstandings": {
        "title": "Cuestionario sobre aclarar malentendidos.",
        "intro": ["", ""]
      },
      "learn-about-speculation-and-requests": {
        "title": "Conoce sobre la especulación y las peticiones",
        "intro": [
          "En este curso, aprenderás a hablar sobre situaciones que deberían o podrían haber ocurrido en el pasado, y a dar sugerencias o hacer peticiones educadas. También practicarás el uso de expresiones para adivinar qué pudo haber causado un problema y cómo colaborar para resolverlo de forma clara y respetuosa."
        ]
      },
      "en-b1-quiz-speculation-requests": {
        "title": "Cuestionario sobre especulación y solicitudes.",
        "intro": ["", ""]
      },
      "learn-about-adverbial-phrases": {
        "title": "Aprende sobre las frases adverbiales",
        "intro": [
          ".En este curso, aprenderás a cómo usar frases que dán más información acerca de cuándo, dónde, cuán a menudo, o cuánto algo pasa. También, practicarás el uso de estas frases para describir tareas, hablar acerca de planes, y explicar resultados de tu día a día, más claramente."
        ]
      },
      "en-b1-quiz-adverbial-phrases": {
        "title": "Cuestionario sobre frases adverbiales.",
        "intro": ["", ""]
      },
      "learn-how-to-use-adjectives-in-conversations": {
        "title": "Aprende a utilizar adjetivos en las conversaciones",
        "intro": [
          "En este curso, aprenderás a usar adjetivos para describir cosas con claridad, comparar opciones y destacar detalles importantes en conversaciones profesionales. También practicarás cómo hacer que tus ideas sean más sólidas y persuasivas."
        ]
      },
      "en-b1-quiz-adjectives-conversations": {
        "title": "Cuestionario sobre el uso de adjetivos en conversaciones.",
        "intro": ["", ""]
      },
      "learn-determiners-and-advanced-use-of-articles": {
        "title": "Aprende los determinantes y el uso avanzado de los artículos",
        "intro": [
          "En este curso, aprenderás a usar determinantes para dar información clara sobre cantidad, elección y distribución. También practicarás el uso de artículos de formas más avanzadas, especialmente en conversaciones profesionales sobre planificación, tareas y recursos."
        ]
      },
      "en-b1-quiz-determiners-articles": {
        "title": "Cuestionario sobre determinantes y artículos.",
        "intro": ["", ""]
      },
      "learn-how-to-use-reported-speech": {
        "title": "Aprende a utilizar el discurso relatado",
        "intro": [
          "En este curso, aprenderás a reportar lo que alguien más dijo de manera clara y natural. También practicarás el uso correcto de los tiempos verbales y estructuras de oraciones para compartir retroalimentación, explicar situaciones y hablar sobre eventos pasados en conversaciones profesionales."
        ]
      },
      "en-b1-quiz-reported-speech": {
        "title": "Cuestionario sobre el uso del estilo indirecto.",
        "intro": ["", ""]
      },
      "learn-how-to-use-prepositions-according-to-context": {
        "title": "Aprende a utilizar las preposiciones según el contexto",
        "intro": [
          "En este curso, vas a aprender a usar preposiciones para describir tiempo, lugar y dirección de forma clara en las situaciones laborales del día a día. También vas a practicar hablando sobre horarios, dando direcciones y explicando dónde se encuentran las personas o las cosas usando un lenguaje natural y preciso."
        ]
      },
      "en-b1-quiz-prepositions-context": {
        "title": "Cuestionario sobre el uso de preposiciones según el contexto.",
        "intro": ["", ""]
      },
      "learn-how-to-talk-about-numbers-with-a-coworker": {
        "title": "Aprende a hablar de números con un compañero de trabajo",
        "intro": [
          "En este curso, aprenderás a usar números para hablar sobre tareas, horarios, presupuestos y recursos en el lugar de trabajo. Practicarás el uso de números cardinales y ordinales, porcentajes y fracciones para organizar el trabajo, explicar el progreso y compartir inventarios o actualizaciones financieras con claridad con tu equipo."
        ]
      },
      "en-b1-quiz-numbers-at-work": {
        "title": "Cuestionario sobre hablar de números en el trabajo.",
        "intro": ["", ""]
      },
      "learn-common-phrasal-verbs-and-idioms": {
        "title": "Aprende verbos frasales y modismos comunes",
        "intro": [
          "En este curso, aprenderás a usar verbos compuestos e idiomáticos comunes para sonar más natural y seguro en el trabajo. Practicarás el uso de expresiones para dar opiniones, hacer sugerencias, organizar reuniones y hablar sobre tareas en conversaciones profesionales diarias."
        ]
      },
      "en-b1-quiz-phrasal-verbs-idioms": {
        "title": "Cuestionario sobre phrasal verbs y modismos.",
        "intro": ["", ""]
      },
      "en-b1-certification-exam": {
        "title": "Examen de Certificación de Inglés para Desarrolladores B1",
        "intro": [
          "Este examen es necesario para obtener la Certificación B1 de Inglés para Desarrolladores."
        ]
      }
    }
  },
  "rosetta-code": {
    "title": "Código Roseta",
    "intro": [
      "Sube de nivel tus habilidades de resolucion de problemas con estas tareas de programación gratuitas desde la clasica libreria de Codigo Roseta.",
      "Estos desafíos pueden resultar difíciles, pero ellos empujarán tu lógica de algoritmos a nuevas alturas.",
      "<a href='https://rosettacode.org/wiki/Rosetta_Code' target='_blank' rel='noopener noreferrer nofollow'>Attribute: Código Roseta</a>"
    ],
    "blocks": {
      "rosetta-code-challenges": {
        "title": "Desafíos de Código Roseta",
        "intro": [
          "Estos son los desafíos para Código Roseta.",
          "NOTA: Estos desafíos sólo soportan soluciones Javascript."
        ]
      }
    }
  },
  "javascript-v9": {
    "title": "Certificación de JavaScript",
    "intro": [
      "Este curso te enseña conceptos de programación en JavaScript como trabajar con variables, funciones, objetos, arreglos, y flujo de control. También aprenderás cómo manipular el DOM, manejar eventos, y aplicar técnicas como programación asíncrona, programación funcional, y mejores prácticas de accesibilidad.",
      "Para obtener tu Certificación en JavaScript:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Aprueba el examen de certificación en JavaScript."
    ],
    "chapters": {
      "javascript": "JavaScript",
      "javascript-certification-exam": "Examen de certificación de JavaScript"
    },
    "modules": {
      "javascript-variables-and-strings": "Variables y Cadenas",
      "javascript-booleans-and-numbers": "Booleanos y Números",
      "javascript-functions": "Funciones",
      "javascript-arrays": "Arreglos",
      "javascript-objects": "Objetos",
      "javascript-loops": "Bucles",
      "review-javascript-fundamentals": "Revisión de Fundamentos de JavaScript",
      "higher-order-functions-and-callbacks": "Funciones de Orden Superior y Devoluciones de Llamadas",
      "dom-manipulation-and-events": "Manipulación del DOM y Eventos",
      "js-a11y": "JavaScript y Accesibilidad",
      "debugging-javascript": "Depuración",
      "basic-regex": "Regex Básico",
      "lab-markdown-to-html-converter": "Construir un Convertidor de Markdown a HTML",
      "form-validation": "Validación de Formularios",
      "javascript-dates": "Fechas",
      "audio-and-video-events": "Eventos de Audio y Video",
      "lab-drum-machine": "Construir una Caja de Ritmos",
      "maps-and-sets": "Mapas y Conjuntos",
      "lab-voting-system": "Construir un Sistema de Votación",
      "localstorage-and-crud-operations": "operaciones CRUD y de almacenamiento local",
      "classes-and-the-this-keyword": "Clases",
      "lab-bank-account-manager": "Desarrollar un Programa de Gestión de Cuentas Bancarias",
      "recursion": "Recursión",
      "data-structures": "Estructuras de datos",
      "algorithms": "Algoritmos",
      "graphs-and-trees": "Grafos y Árboles",
      "dynamic-programming": "Programación Dinámica",
      "functional-programming": "Programación funcional",
      "asynchronous-javascript": "JavaScript asincrónico",
      "lab-weather-app": "Desarrolla una aplicación del tiempo",
      "review-javascript": "Revisión de JavaScript",
      "javascript-certification-exam": "Examen de certificación de JavaScript"
    },
    "module-intros": {
      "data-structures": {
        "note": "Próximamente primavera de 2026.",
        "intro": [
          "En este módulo, aprenderás sobre listas enlazadas, pilas, colas y más."
        ]
      },
      "algorithms": {
        "note": "Próximamente primavera de 2026.",
        "intro": [
          "En este módulo, aprenderás sobre algoritmos comunes de ordenamiento y búsqueda, incluyendo ordenamiento de burbuja, búsqueda binaria y más."
        ]
      },
      "graphs-and-trees": {
        "note": "Próximamente primavera de 2026.",
        "intro": ["En este módulo, aprenderás sobre grafos, árboles y tries."]
      },
      "dynamic-programming": {
        "note": "Próximamente primavera de 2026.",
        "intro": [
          "En este módulo, aprenderás cómo funciona la programación dinámica."
        ]
      }
    },
    "blocks": {
      "lecture-introduction-to-javascript": {
        "title": "Introducción a JavaScript",
        "intro": [
          "En estas lecciones, aprenderás los fundamentos de JavaScript. Los temas cubiertos incluyen, pero no están limitados a, variables, tipos de datos, cómo interactúa JavaScript con HTML y CSS, cadenas y mucho más."
        ]
      },
      "lecture-introduction-to-strings": {
        "title": "Introducción a Cadenas",
        "intro": [
          "En estas lecciones, aprenderá a trabajar con cadenas y concatenación de cadenas."
        ]
      },
      "lecture-understanding-code-clarity": {
        "title": "Entender la Claridad del Código",
        "intro": [
          "En estas lecciones, aprenderá sobre los comentarios en JavaScript y el papel de los puntos y comas en la programación."
        ]
      },
      "workshop-greeting-bot": {
        "title": "Construye un Bot de Saludos",
        "intro": [
          "En este taller, aprenderás los fundamentos de JavaScript construyendo un bot de saludos.",
          "Aprenderás sobre variables, <code>let</code>, <code>const</code>, <code>console.log</code> y el uso básico de cadenas."
        ]
      },
      "lab-javascript-trivia-bot": {
        "title": "Construir un Bot de Trivia en JavaScript",
        "intro": [
          "En este laboratorio, practicarás trabajando con variables y cadenas en JavaScript construyendo un bot de trivia."
        ]
      },
      "lab-sentence-maker": {
        "title": "Construir un Creador de Oraciones",
        "intro": [
          "En este laboratorio, continuarás practicando con cadenas y concatenación creando y personalizando varias historias."
        ]
      },
      "lecture-working-with-data-types": {
        "title": "Trabajando con Tipos de Datos",
        "intro": [
          "En las siguientes lecciones, aprenderás a trabajar con tipos de datos en JavaScript. También aprenderás en qué difiere la tipificación dinámica de la tipificación estática, el operador <code>typeof</code> y el error <code>typeof null</code>."
        ]
      },
      "review-javascript-variables-and-data-types": {
        "title": "Revisión de Variables y Tipos de Datos en JavaScript",
        "intro": [
          "Antes de que se te evalúe sobre variables y tipos de datos en JavaScript, primero necesitas revisar los conceptos.",
          "Abre esta página para revisar variables, tipos de datos, registro y comentarios."
        ]
      },
      "quiz-javascript-variables-and-data-types": {
        "title": "Cuestionario sobre Variables y Tipos de Datos de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre variables y tipos de datos en JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-strings-in-javascript": {
        "title": "Trabajando con Cadenas en JavaScript",
        "intro": [
          "En estas lecciones, aprenderás a trabajar con cadenas en JavaScript. Aprenderás a acceder a los caracteres de una cadena, cómo usar literales de plantilla e interpolación, cómo crear una nueva línea en cadenas y mucho más."
        ]
      },
      "workshop-teacher-chatbot": {
        "title": "Construir un Chatbot de Profesor",
        "intro": [
          "En este taller, continuarás aprendiendo más acerca de las cadenas de JavaScript construyendo un chatbot.",
          "Aprenderás a trabajar con literales de plantilla y el método <code>indexOf</code>."
        ]
      },
      "lecture-working-with-string-character-methods": {
        "title": "Trabajando con Métodos de Caracteres en Cadenas",
        "intro": [
          "En esta lección aprenderás sobre la codificación de caracteres ASCII y cómo usar los métodos <code>charCodeAt()</code> y <code>fromCharCode()</code> en JavaScript para convertir entre caracteres y sus valores numéricos ASCII."
        ]
      },
      "lecture-working-with-string-search-and-slice-methods": {
        "title": "Trabajando con Métodos de Búsqueda y Corte en Cadenas",
        "intro": [
          "En esta lección aprenderás cómo buscar subcadenas usando el método <code>includes()</code> y cómo extraer porciones de cadenas usando el método <code>slice()</code>."
        ]
      },
      "workshop-string-inspector": {
        "title": "Construir un Inspector de Cadenas.",
        "intro": [
          "En este taller, practicarás trabajar con los métodos <code>includes()</code> y <code>slice()</code> construyendo un inspector de cadenas."
        ]
      },
      "lecture-working-with-string-formatting-methods": {
        "title": "Trabajando con Métodos de Formateo de Cadenas",
        "intro": [
          "En esta lección aprenderás cómo formatear cadenas cambiando su caso usando los métodos <code>toUpperCase()</code> y <code>toLowerCase()</code>, y cómo eliminar espacios en blanco usando los métodos <code>trim()</code>, <code>trimStart()</code> y <code>trimEnd()</code>."
        ]
      },
      "workshop-string-formatter": {
        "title": "Crear un Formateador de Cadenas.",
        "intro": [
          "En este taller, practicarás trabajando con varios métodos de cadenas, incluyendo <code>trim()</code>, <code>toUpperCase()</code> y <code>toLowerCase()</code>."
        ]
      },
      "lecture-working-with-string-modification-methods": {
        "title": "Trabajando con Métodos de Modificación de Cadenas",
        "intro": [
          "En esta lección aprenderás cómo modificar las cadenas reemplazando partes de ellas usando el método <code>replace()</code> y cómo repetir cadenas varias veces usando el método <code>repeat()</code>."
        ]
      },
      "workshop-string-transformer": {
        "title": "Construye un Transformador de Cadenas",
        "intro": [
          "En este taller, practicarás trabajar con los métodos <code>replace()</code>, <code>replaceAll()</code> y <code>repeat()</code>."
        ]
      },
      "review-javascript-strings": {
        "title": "Revisión de Cadenas de JavaScript",
        "intro": [
          "Antes de ser evaluado con respecto a trabajar con cadenas de JavaScript, primero necesitas repasar los conceptos.",
          "Abre esta página para revisar cómo trabajar con literales de plantilla, el método <code>slice</code>, el método <code>includes</code>, el método <code>trim</code> y más."
        ]
      },
      "quiz-javascript-strings": {
        "title": "Cuestionario de Cadenas de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre cadenas de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-numbers-and-arithmetic-operators": {
        "title": "Trabajando con Números y Operadores Aritméticos",
        "intro": [
          "En estas lecciones aprenderás sobre el tipo de datos numérico, operadores aritméticos, y su uso con números y cadenas."
        ]
      },
      "lab-debug-type-coercion-errors": {
        "title": "Depurar Errores de Conversión de Tipos en una Aplicación Defectuosa.",
        "intro": [
          "En este laboratorio, estarás trabajando con una aplicación defectuosa que contiene varios errores de conversión de tipos.",
          "Tu tarea es identificar y corregir estos errores para asegurar que la aplicación funcione correctamente."
        ]
      },
      "lecture-working-with-operator-behavior": {
        "title": "Trabajando con el Comportamiento del Operador",
        "intro": [
          "En estas lecciones, aprenderás sobre la precedencia de operadores, operadores de incremento y decremento, y operadores de asignación compuesta."
        ]
      },
      "lab-debug-increment-and-decrement-operator-errors": {
        "title": "Depurar Errores de Operadores de Incremento y Decremento en una Aplicación Errónea.",
        "intro": [
          "En este laboratorio, depurarás una aplicación que tiene varios errores relacionados con los operadores de incremento y decremento.",
          "Tu tarea es identificar y corregir los errores para que la aplicación funcione como se espera."
        ]
      },
      "lecture-working-with-comparison-and-boolean-operators": {
        "title": "Trabajando con Operadores de Comparación y Booleanos",
        "intro": [
          "En estas lecciones aprenderás sobre booleanos, operadores de igualdad y desigualdad, y otros operadores de comparación."
        ]
      },
      "workshop-logic-checker-app": {
        "title": "Construir una Aplicación Comprobadora de Lógica.",
        "intro": [
          "En este taller, practicarás el trabajo con declaraciones condicionales y operadores de comparación mediante la construcción de una aplicación comprobadora de lógica."
        ]
      },
      "lecture-working-with-unary-and-bitwise-operators": {
        "title": "Trabajando con Operadores Unarios y Bit a Bit",
        "intro": [
          "En estas lecciones, aprenderás sobre operadores unarios y bit a bit."
        ]
      },
      "lecture-working-with-conditional-logic-and-math-methods": {
        "title": "Trabajando con Lógica Condicional y Métodos Matemáticos",
        "intro": [
          "En estas lecciones, aprenderás sobre declaraciones condicionales, operadores lógicos binarios, y el objeto <code>Math</code>."
        ]
      },
      "workshop-mathbot": {
        "title": "Construir un Mathbot",
        "intro": [
          "En este taller, revisarás cómo trabajar con los distintos métodos del objeto Math construyendo un Mathbot."
        ]
      },
      "lab-fortune-teller": {
        "title": "Construir un Adivinador de Fortuna",
        "intro": [
          "En este laboratorio, construirás un adivinador de fortuna seleccionando al azar una fortuna entre las disponibles.",
          "Practicarás cómo trabajar con el método <code>Math.random()</code> y el método <code>Math.floor()</code> para generar números aleatorios."
        ]
      },
      "lecture-working-with-numbers-and-common-number-methods": {
        "title": "Trabajando con Números y Métodos Comunes de Números",
        "intro": [
          "En estas lecciones, aprenderás sobre números y métodos comunes de números. Estos incluyen <code>isNaN()</code>, <code>parseInt()</code>, <code>parseFloat()</code> y <code>toFixed()</code>."
        ]
      },
      "review-javascript-math": {
        "title": "Revisión de Matemáticas en JavaScript",
        "intro": [
          "Antes de que se te evalúe sobre cómo trabajar con el objeto <code>Math</code>, deberías repasar lo que has aprendido.",
          "Abre esta página para revisar cómo trabajar con el método <code>Math.random()</code>, el método <code>Math.floor()</code> y más."
        ]
      },
      "quiz-javascript-math": {
        "title": "Cuestionario de Matemáticas de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre el objeto <code>Math</code> de JavaScript con este cuestionario."
        ]
      },
      "lecture-understanding-comparisons-and-conditionals": {
        "title": "Comprensión de comparaciones y condicionales.",
        "intro": [
          "En estas lecciones, aprenderás sobre los operadores de comparación y los condicionales. Aprenderás cómo se diferencian los condicionales entre sí y cómo las comparaciones funcionan con <code>null</code> y <code>undefined</code>."
        ]
      },
      "review-javascript-comparisons-and-conditionals": {
        "title": "Revisión de Comparaciones y Condicionales de JavaScript.",
        "intro": [
          "Antes de que te pregunten sobre trabajar con condicionales, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar cómo trabajar con sentencias <code>switch</code>, otros tipos de condicionales y más."
        ]
      },
      "quiz-javascript-comparisons-and-conditionals": {
        "title": "Cuestionario sobre Comparaciones y Condicionales de JavaScript.",
        "intro": [
          "Pon a prueba tus conocimientos sobre Comparaciones y Condicionales de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-functions": {
        "title": "Trabajando con Funciones.",
        "intro": [
          "En estas lecciones, aprenderás cómo reutilizar un bloque de código con funciones. Aprenderás qué es una función y cómo funcionan, y cómo gestionar el ámbito en la programación."
        ]
      },
      "workshop-calculator": {
        "title": "Construir una Calculadora.",
        "intro": [
          "En este taller, revisarás tus conocimientos sobre funciones construyendo una calculadora."
        ]
      },
      "lab-boolean-check": {
        "title": "Construir una Función de Comprobación de Booleanos.",
        "intro": [
          "En este laboratorio, implementarás una función que verifica si un valor es booleano."
        ]
      },
      "lab-email-masker": {
        "title": "Construir un Enmascarador de Correos Electrónicos.",
        "intro": [
          "En este laboratorio, construirás un enmascarador de correos electrónicos que tomará una dirección de correo electrónico y la ocultará.",
          "Practicarás la segmentación de cadenas, la concatenación y el uso de funciones."
        ]
      },
      "workshop-loan-qualification-checker": {
        "title": "Construir un Verificador de Calificaciones de Préstamo.",
        "intro": [
          "En este taller, aprenderás cómo trabajar con condicionales construyendo una aplicación para verificar calificaciones de préstamos.",
          "Aprenderás más sobre las sentencias <code>if</code> y cómo utilizar operadores de comparación y múltiples condiciones en una sentencia <code>if</code>."
        ]
      },
      "lab-celsius-to-fahrenheit-converter": {
        "title": "Construir un Convertidor de Celsius a Fahrenheit.",
        "intro": [
          "En este laboratorio, implementarás una función que convierte la temperatura de Celsius a Fahrenheit."
        ]
      },
      "lab-counting-cards": {
        "title": "Construir un Asistente de Conteo de Cartas.",
        "intro": [
          "En este laboratorio, usarás JavaScript para contar cartas repartidas."
        ]
      },
      "lab-leap-year-calculator": {
        "title": "Construir una Calculadora de Años Bisiestos.",
        "intro": [
          "En este laboratorio, usarás declaraciones condicionales y bucles para determinar si un año es bisiesto."
        ]
      },
      "lab-truncate-string": {
        "title": "Implementar el Algoritmo de Truncamiento de Cadenas.",
        "intro": [
          "En este laboratorio, practicarás truncar una cadena a una cierta longitud."
        ]
      },
      "lab-string-ending-checker": {
        "title": "Construir una Herramienta para Confirmar el Final.",
        "intro": [
          "En este laboratorio, implementarás una función que verifica si una cadena dada termina con una cadena de destino especificada."
        ]
      },
      "review-javascript-functions": {
        "title": "Revisión de Funciones de JavaScript.",
        "intro": [
          "Antes de que te pregunten sobre funciones en JavaScript, debes repasar lo que has aprendido sobre ellas.",
          "Abre esta página para repasar funciones, funciones de flecha y ámbito."
        ]
      },
      "quiz-javascript-functions": {
        "title": "Cuestionario de Funciones de JavaScript.",
        "intro": [
          "Pon a prueba tus conocimientos de funciones de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-arrays": {
        "title": "Trabajar con Arreglos.",
        "intro": [
          "En estas lecciones, aprenderás a trabajar con arreglos en JavaScript. Aprenderás qué constituye un arreglo, arreglos unidimensionales y bidimensionales, cómo acceder y actualizar los elementos de un arreglo, y mucho más."
        ]
      },
      "workshop-shopping-list": {
        "title": "Crea una lista de compras.",
        "intro": [
          "En este taller, practicarás cómo trabajar con arreglos construyendo una lista de compras.",
          "Revisarás cómo agregar y eliminar elementos de un arreglo usando métodos como <code>push</code>, <code>pop</code>, <code>shift</code>, y <code>unshift</code>."
        ]
      },
      "lab-lunch-picker-program": {
        "title": "Construir un Programa Selector de Almuerzo.",
        "intro": [
          "En este laboratorio, revisarás trabajar con arreglos y números aleatorios construyendo un programa selector de almuerzos."
        ]
      },
      "lab-golf-score-translator": {
        "title": "Construir un Traductor de Puntuaciones de Golf.",
        "intro": [
          "Para este laboratorio, utilizarás métodos de arreglos para traducir puntuaciones de golf en sus apodos."
        ]
      },
      "lecture-working-with-common-array-methods": {
        "title": "Trabajar con Métodos Comunes de Arreglos.",
        "intro": [
          "En estas lecciones, aprenderás sobre los métodos de arreglos para realizar operaciones más avanzadas como obtener la posición de un elemento en un arreglo, verificar si un arreglo contiene un cierto elemento, copiar un arreglo y mucho más."
        ]
      },
      "review-javascript-arrays": {
        "title": "Revisión de Arreglos de JavaScript.",
        "intro": [
          "Antes de que te pregunten sobre arreglos en JavaScript, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos como desestructuración de arreglos, cómo agregar y eliminar elementos de un arreglo, y más."
        ]
      },
      "quiz-javascript-arrays": {
        "title": "Cuestionario de Arreglos de JavaScript.",
        "intro": [
          "Pon a prueba tus conocimientos de arreglos en JavaScript con este cuestionario."
        ]
      },
      "lecture-introduction-to-javascript-objects-and-their-properties": {
        "title": "Introducción a los Objetos de JavaScript y sus Propiedades.",
        "intro": [
          "En estas lecciones, aprenderás los fundamentos de los objetos en JavaScript, incluyendo cómo crearlos, acceder a sus propiedades y comprender la diferencia entre los tipos de datos primitivos y no primitivos."
        ]
      },
      "workshop-wildlife-tracker": {
        "title": "Build a Wildlife Tracker",
        "intro": [
          "In this workshop, you will build a simple Wildlife Tracker using JavaScript objects.",
          "You will practice creating objects, accessing and updating properties, removing properties, checking for property existence, and working with bracket notation."
        ]
      },
      "lab-cargo-manifest-validator": {
        "title": "Build a Cargo Manifest Validator",
        "intro": [
          "In this lab, you will use JavaScript to normalize and validate cargo manifests."
        ]
      },
      "lecture-working-with-json": {
        "title": "Trabajando con JSON.",
        "intro": [
          "En estas lecciones, aprenderás sobre la Notación de Objetos de JavaScript (JSON), incluyendo cómo acceder a los datos JSON y usar los métodos <code>JSON.parse()</code> y <code>JSON.stringify()</code>."
        ]
      },
      "lecture-working-with-optional-chaining-and-object-destructuring": {
        "title": "Trabajar con Encadenamiento Opcional y Desestructuración de Objetos.",
        "intro": [
          "En estas lecciones, aprenderás sobre técnicas avanzadas de manipulación de objetos en JavaScript, incluyendo el operador de encadenamiento opcional y la sintaxis de desestructuración de objetos."
        ]
      },
      "workshop-recipe-tracker": {
        "title": "Crea un rastreador de recetas.",
        "intro": [
          "En este taller, revisarás cómo trabajar con objetos en JavaScript construyendo un rastreador de recetas."
        ]
      },
      "lab-quiz-game": {
        "title": "Construir un Juego de Preguntas y Respuestas.",
        "intro": [
          "En este laboratorio, crearás un juego de preguntas y respuestas usando arreglos y objetos de JavaScript.",
          "También practicarás usando funciones para seleccionar aleatoriamente una pregunta y una respuesta de un arreglo y compararlas."
        ]
      },
      "lab-record-collection": {
        "title": "Construir una Colección de Discos.",
        "intro": [
          "En este laboratorio, construirás una función para gestionar una colección de discos."
        ]
      },
      "review-javascript-objects": {
        "title": "Revisión de Objetos de JavaScript.",
        "intro": [
          "Antes de que te pregunten sobre objetos en JavaScript, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos incluyendo cómo acceder a la información de los objetos, desestructuración de objetos, trabajar con JSON, y más."
        ]
      },
      "quiz-javascript-objects": {
        "title": "Cuestionario de Objetos de JavaScript.",
        "intro": [
          "Pon a prueba tus conocimientos de objetos en JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-loops": {
        "title": "Trabajar con Bucles.",
        "intro": [
          "Los bucles son una parte esencial de JavaScript. Por eso, se han preparado las siguientes lecciones para que aprendas sobre los diferentes tipos de bucles y cómo funcionan, así como cómo funciona la iteración."
        ]
      },
      "workshop-word-counter": {
        "title": "Build a Word Counter",
        "intro": [
          "In this workshop, you will practice using <code>for...of</code> loops by building a function that counts the occurrences of a string in an array of strings."
        ]
      },
      "workshop-sentence-analyzer": {
        "title": "Construir un Analizador de Oraciones.",
        "intro": [
          "En este taller, revisarás cómo trabajar con bucles de JavaScript construyendo una aplicación analizador de oraciones."
        ]
      },
      "workshop-space-mission-roster": {
        "title": "Build a Space Mission Roster",
        "intro": [
          "In this workshop, you'll leverage JavaScript loops to build a space mission roster."
        ]
      },
      "workshop-heritage-library-catalog": {
        "title": "Build a Heritage Library Catalog",
        "intro": [
          "In this workshop, you will digitize historical catalog cards for a heritage library.",
          "You will practice using loops, objects, and string methods to parse raw text data, search and group entries, render formatted output, and export to JSON and CSV."
        ]
      },
      "lab-longest-word-in-a-string": {
        "title": "Construir una Aplicación Buscadora de la Palabra Más Larga.",
        "intro": [
          "En este laboratorio, usarás bucles de JavaScript para encontrar la longitud de la palabra más larga en la oración dada."
        ]
      },
      "lab-factorial-calculator": {
        "title": "Construir una Calculadora de Factoriales.",
        "intro": [
          "En este laboratorio, construirás una calculadora de factoriales.",
          "Practicarás utilizando bucles y condicionales para calcular el factorial de un número."
        ]
      },
      "lab-mutations": {
        "title": "Implementar el Algoritmo de Mutaciones.",
        "intro": [
          "En este laboratorio, practicarás iterando sobre dos cadenas diferentes para comparar sus caracteres."
        ]
      },
      "lab-chunky-monkey": {
        "title": "Implementar el Algoritmo Chunky Monkey.",
        "intro": [
          "En este laboratorio, practicarás dividiendo un arreglo en arreglos más pequeños con la técnica de tu elección."
        ]
      },
      "lab-profile-lookup": {
        "title": "Construir una Búsqueda de Perfiles.",
        "intro": [
          "En este laboratorio, crearás una función que busca información de perfil."
        ]
      },
      "lab-repeat-a-string": {
        "title": "Construir una Función de Repetición de Cadenas.",
        "intro": [
          "En este laboratorio, implementarás bucles para repetir una cadena un número especificado de veces."
        ]
      },
      "workshop-festival-crowd-flow-simulator": {
        "title": "Build a Festival Crowd Flow Simulator",
        "intro": [
          "In this workshop, you will use JavaScript to simulate the flow of attendants at a music festival."
        ]
      },
      "lab-missing-letter-detector": {
        "title": "Construir un Detector de Letras Faltantes",
        "intro": [
          "En este laboratorio, crearás una función que encuentre la letra que falta en un rango dado de letras consecutivas y la devuelva."
        ]
      },
      "lab-smart-pantry-restocker": {
        "title": "Build a Smart Pantry Restocker",
        "intro": [
          "In this lab, you will build a small pantry management program using basic JavaScript concepts like arrays, objects, loops, and conditionals."
        ]
      },
      "lab-proofreading-tool": {
        "title": "Build a Proofreading Tool",
        "intro": [
          "In this lab, you will build a proofreading tool that analyzes arrays of words for palindromes and repeated phrases.",
          "You will practice for loops and nested loops to check palindromes and find repeated word sequences."
        ]
      },
      "review-javascript-loops": {
        "title": "Revisión de Bucles en JavaScript.",
        "intro": [
          "Antes de que te pregunten sobre los diferentes bucles de JavaScript, deberías revisarlos.",
          "Abre esta página para revisar el bucle <code>for...of</code>, el bucle <code>while</code>, las sentencias <code>break</code> y <code>continue</code> y más."
        ]
      },
      "quiz-javascript-loops": {
        "title": "Cuestionario de Bucles de JavaScript.",
        "intro": [
          "Pon a prueba tus conocimientos sobre los bucles de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-types-and-objects": {
        "title": "Trabajando con Tipos y Objetos.",
        "intro": [
          "En estas lecciones aprenderás sobre los objetos de cadena, el método <code>toString()</code>, el constructor <code>Number</code> y más."
        ]
      },
      "lecture-working-with-arrays-variables-and-naming-practices": {
        "title": "Trabajar con Arreglos, Variables y Prácticas de Nomenclatura.",
        "intro": [
          "En estas lecciones aprenderás sobre prácticas comunes para nombrar variables y funciones, y cómo trabajar con arreglos."
        ]
      },
      "lecture-working-with-code-quality-and-execution-concepts": {
        "title": "Trabajando con Calidad del Código y Conceptos de Ejecución.",
        "intro": [
          "En estas lecciones aprenderás qué son los linters y los formateadores, qué es la gestión de memoria y los cierres."
        ]
      },
      "lab-reverse-a-string": {
        "title": "Construir un Inversor de Cadenas.",
        "intro": [
          "En este laboratorio, crearás una función que invierte una cadena dada."
        ]
      },
      "lab-largest-number-finder": {
        "title": "Construir el Buscador de Números Más Grade.",
        "intro": [
          "En este laboratorio, utilizarás los fundamentos de JavaScript para crear una función que encuentre el número más grande en cada sub-arreglo de un arreglo dado."
        ]
      },
      "lab-first-element-finder": {
        "title": "Construir un Buscador del Primer Elemento.",
        "intro": [
          "En este laboratorio, crearás una función que mire a través de un arreglo y devuelva el primer elemento que pasa una \"prueba de verdad\"."
        ]
      },
      "lab-slice-and-splice": {
        "title": "Implementar el Algoritmo Slice and Splice.",
        "intro": [
          "En este laboratorio, practicarás fusionar un arreglo con otro."
        ]
      },
      "lab-pyramid-generator": {
        "title": "Construir un Generador de Pirámides.",
        "intro": [
          "En este laboratorio construirás un generador de pirámides.",
          "Tomarás un número como entrada y generarás una pirámide con esa cantidad de niveles usando un bucle."
        ]
      },
      "lab-gradebook-app": {
        "title": "Construir una Aplicación de Boleta de Calificaciones.",
        "intro": [
          "Para este laboratorio, crearás una aplicación de boleta de calificaciones.",
          "Practicarás condicionales para determinar la calificación del estudiante en función de su puntaje."
        ]
      },
      "lecture-the-var-keyword-and-hoisting": {
        "title": "La palabra clave var y la elevación.",
        "intro": [
          "En estas lecciones, aprenderás sobre la palabra clave <code>var</code> y por qué ya no se recomienda su uso. También aprenderás sobre la elevación en JavaScript para evitar errores sutiles en tu código."
        ]
      },
      "lab-title-case-converter": {
        "title": "Construir un Convertidor de Mayúsculas en Títulos",
        "intro": [
          "En este laboratorio, crearás una función que convierte una cadena a mayúsculas de título."
        ]
      },
      "lab-falsy-remover": {
        "title": "Implementar un Eliminador de Falsos.",
        "intro": [
          "En este laboratorio, crearás una función que elimina todos los valores falsos de un arreglo."
        ]
      },
      "lab-inventory-management-program": {
        "title": "Construir un Programa de Gestión de Inventario.",
        "intro": [
          "Para este laboratorio, construirás un programa de gestión de inventario usando JavaScript.",
          "Usarás arreglos de objetos de JavaScript para manejar el inventario."
        ]
      },
      "lecture-understanding-modules-imports-and-exports": {
        "title": "Comprensión de Módulos, Importaciones y Exportaciones.",
        "intro": [
          "En esta lección, aprenderás sobre módulos, importaciones y exportaciones en JavaScript."
        ]
      },
      "lecture-working-with-the-arguments-object-and-rest-parameters": {
        "title": "Trabajar con el Objeto de Argumentos y Parámetros Rest",
        "intro": [
          "En estas lecciones, aprenderá a trabajar con el objeto <code>arguments</code> y la sintaxis de parámetros Rest."
        ]
      },
      "lab-unique-sorted-union": {
        "title": "Implementar una Unión de Conjuntos Únicos Ordenados",
        "intro": [
          "En este laboratorio, crearás una función que tome dos o más arreglos y devuelva un nuevo arreglo de valores únicos en el orden de los arreglos proporcionados originales."
        ]
      },
      "lab-password-generator": {
        "title": "Construir una aplicación generadora de contraseñas.",
        "intro": [
          "En este laboratorio, construirás una aplicación generadora de contraseñas basada en la entrada del usuario."
        ]
      },
      "lab-sum-all-numbers-algorithm": {
        "title": "Diseñar un Algoritmo para Sumar Todos los Números.",
        "intro": [
          "En este laboratorio, diseñarás un algoritmo para sumar todos los números. Este algoritmo toma un arreglo de dos números y devuelve la suma de esos dos números más la suma de todos los números entre ellos."
        ]
      },
      "lab-dna-pair-generator": {
        "title": "Implementar un Generador de Pares de ADN",
        "intro": [
          "En este laboratorio, implementarás un algoritmo de emparejamiento de bases de ADN que convierte una sola hebra de ADN en pares de bases complementarias."
        ]
      },
      "lab-html-entitiy-converter": {
        "title": "Implementar un Convertidor de Entidades HTML.",
        "intro": [
          "En este laboratorio, convertirás caracteres especiales en una cadena a sus entidades HTML correspondientes."
        ]
      },
      "lab-odd-fibonacci-sum-calculator": {
        "title": "Construir una Calculadora de Sumas de Fibonacci Impares",
        "intro": [
          "En este laboratorio, crearás una calculadora de sumas de Fibonacci impares que tome un número y devuelva la suma de todos los números de Fibonacci impares que sean menores o iguales a ese número."
        ]
      },
      "lab-element-skipper": {
        "title": "Implementar un Ocriptor de Elementos",
        "intro": [
          "En este laboratorio crearás una función que omita elementos en un arreglo basado en un valor de paso especificado."
        ]
      },
      "lab-playlist-remix-engine": {
        "title": "Build a Playlist Remix Engine",
        "intro": [
          "In this lab, you will build a Playlist Remix Engine using JavaScript arrays.",
          "You will apply array methods and logic to transform data and generate a final remix schedule."
        ]
      },
      "review-javascript-fundamentals": {
        "title": "Revisión de Fundamentos de JavaScript.",
        "intro": [
          "Antes de que te cuestionen sobre los fundamentos de JavaScript, primero debes repasar los conceptos.",
          "Abre esta página para repasar conceptos como closures, gestión de memoria y más."
        ]
      },
      "quiz-javascript-fundamentals": {
        "title": "Cuestionario de Fundamentos de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre los fundamentos de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-higher-order-functions-and-callbacks": {
        "title": "Trabajando con funciones de orden superior y devoluciones de llamada",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con funciones de orden superior y devoluciones de llamada. Las funciones de orden superior que aprenderás incluyen <code>map()</code>, <code>filter()</code>, <code>reduce()</code>, <code>sort()</code>, <code>every()</code> y <code>some()</code>. También aprenderás a encadenar estos métodos para lograr los resultados deseados."
        ]
      },
      "workshop-library-manager": {
        "title": "Construir un Administrador de Biblioteca",
        "intro": [
          "En este taller, aprenderás métodos de arreglo de orden superior al construir un administrador de bibliotecas."
        ]
      },
      "lab-book-organizer": {
        "title": "Construir un Organizador de Libros",
        "intro": [
          "En este laboratorio, crearás un organizador de libros utilizando funciones de orden superior en JavaScript."
        ]
      },
      "lab-sorted-index-finder": {
        "title": "Implementar un Buscador de Índices Ordenado",
        "intro": [
          "En este laboratorio, crearás una función que encuentre el índice en el cual un número dado debería insertarse en un arreglo ordenado para mantener el orden de dicho arreglo."
        ]
      },
      "lab-symmetric-difference": {
        "title": "Construir una Función de Diferencia Simétrica",
        "intro": [
          "En este laboratorio, practicarás el uso de funciones de orden superior para encontrar la diferencia simétrica entre dos arreglos."
        ]
      },
      "lab-value-remover-function": {
        "title": "Implementar una Función de Eliminación de Valores",
        "intro": [
          "En este laboratorio, crearás una función que elimine todas las instancias de un valor especificado de un arreglo."
        ]
      },
      "lab-matching-object-filter": {
        "title": "Implementar un Filtro de Objetos Coincidentes",
        "intro": [
          "En este laboratorio, crearás una función que recorra un arreglo de objetos y devuelva un arreglo de todos los objetos que tienen pares de propiedad y valor coincidentes."
        ]
      },
      "lab-prime-number-sum-calculator": {
        "title": "Construir una Calculadora de Suma de Números Primos",
        "intro": [
          "En este laboratorio, crearás una calculadora de suma de números primos que tome un número y devuelva la suma de todos los números primos que sean menores o iguales a ese número."
        ]
      },
      "lab-range-based-lcm-calculator": {
        "title": "Implementar una Calculadora de MCM Basada en Rango",
        "intro": [
          "En este laboratorio, crearás una función que tome un arreglo de dos números y devuelva el mínimo común múltiplo (MCM) de esos dos números y todos los números entre ellos."
        ]
      },
      "lab-deep-flattening-tool": {
        "title": "Crea una Herramienta de Aplanamiento Profundo",
        "intro": [
          "En este laboratorio crearás una función que pueda aplanar arreglos profundamente anidados, manejando cualquier nivel de anidación sin usar métodos planos incorporados."
        ]
      },
      "lab-all-true-property-validator": {
        "title": "Construir un Validador de Propiedad Todo Verdadero",
        "intro": [
          "En este laboratorio crearás una función que verifica si todos los objetos en un arreglo tienen un valor verdadero para una propiedad específica."
        ]
      },
      "review-javascript-higher-order-functions": {
        "title": "Revisión de Funciones de Orden Superior de JavaScript",
        "intro": [
          "Antes de ser cuestionado sobre las funciones de orden superior de JavaScript, deberías repasar.",
          "Abre esta página para repasar conceptos que incluyen cómo trabajar con los métodos <code>map()</code>, <code>filter()</code> y <code>reduce()</code>."
        ]
      },
      "quiz-javascript-higher-order-functions": {
        "title": "Cuestionario de Funciones de Orden Superior de JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre funciones de orden superior en JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-the-dom-click-events-and-web-apis": {
        "title": "Trabajando con el DOM, Eventos de Clic y API Web",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con el Modelo de Objetos del Documento (DOM), el método <code>addEventListener()</code> y eventos, y las API web."
        ]
      },
      "workshop-storytelling-app": {
        "title": "Construir una Aplicación para Contar Historias",
        "intro": [
          "En este taller, crearás una aplicación de narración de historias que te permitirá enumerar diferentes historias según el género."
        ]
      },
      "workshop-emoji-reactor": {
        "title": "Construir Reactores de Emojis",
        "intro": [
          "En este taller, construirás un reactor de emoji para practicar <code>querySelector</code> y <code>querySelectorAll</code>."
        ]
      },
      "lab-favorite-icon-toggler": {
        "title": "Construir un Conmutador de Íconos Favoritos",
        "intro": [
          "En este laboratorio, crearás un conmutador de íconos favoritos utilizando eventos de clic de JavaScript."
        ]
      },
      "lecture-understanding-the-event-object-and-event-delegation": {
        "title": "Comprendiendo el Objeto de Evento y la Delegación de Eventos",
        "intro": [
          "En estas lecciones, aprenderás sobre el objeto de evento, el evento de cambio, la burbuja de eventos y la delegación de eventos."
        ]
      },
      "workshop-music-instrument-filter": {
        "title": "Construir un Filtro de Instrumentos Musicales",
        "intro": [
          "En este taller, construirás un filtro de instrumentos musicales utilizando JavaScript."
        ]
      },
      "lab-real-time-counter": {
        "title": "Construir un Contador en Tiempo Real",
        "intro": [
          "En este laboratorio, construirás un contador de caracteres en tiempo real.",
          "Practicarás cómo trabajar con el evento <code>input</code> cuando el usuario escribe en el campo de entrada."
        ]
      },
      "lab-lightbox-viewer": {
        "title": "Construir un Visor de Caja de Luz",
        "intro": [
          "En este laboratorio, construirás un visor de caja de luz para ver imágenes en un modo enfocado.",
          "Practicarás eventos de clic y alternancia de clases."
        ]
      },
      "workshop-rps-game": {
        "title": "Construir un Juego de Piedra, Papel y Tijera",
        "intro": [
          "En este taller, revisarás la manipulación del DOM y eventos construyendo un juego de Piedra, Papel y Tijera."
        ]
      },
      "lab-football-team-cards": {
        "title": "Construir un Conjunto de Tarjetas de Equipo de Fútbol",
        "intro": [
          "En este laboratorio, utilizarás manipulación del DOM, desestructuración de objetos, manejo de eventos y filtrado de datos para crear un conjunto de tarjetas de equipo de fútbol."
        ]
      },
      "review-dom-manipulation-and-click-events-with-javascript": {
        "title": "Revisión de Manipulación del DOM y Eventos de Clic con JavaScript",
        "intro": [
          "Antes de que te pregunten sobre el DOM, debes repasar lo que has aprendido sobre él.",
          "Abre esta página para repasar conceptos como cómo trabajar con el <code>DOM</code>, <code>Web APIs</code>, el método <code>addEventListener()</code>, eventos de cambio, burbuja de eventos y más."
        ]
      },
      "quiz-dom-manipulation-and-click-event-with-javascript": {
        "title": "Cuestionario de Manipulación del DOM y Eventos de Clic con JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre la manipulación del DOM y los eventos de clic en JavaScript con este cuestionario."
        ]
      },
      "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
        "title": "Comprendiendo aria-expanded, aria-live y Estados ARIA Comunes",
        "intro": [
          "En estas lecciones, aprenderás más sobre atributos ARIA como <code>aria-expanded</code>, <code>aria-live</code> y estados ARIA comunes."
        ]
      },
      "workshop-planets-tablist": {
        "title": "Construir una Lista de Pestañas de Planetas",
        "intro": [
          "En este taller, construirás una interfaz dinámica con pestañas que muestra datos sobre los planetas del sistema solar."
        ]
      },
      "workshop-note-taking-app": {
        "title": "Construir una Aplicación de Notas",
        "intro": [
          "En este taller, construirás una aplicación accesible para tomar notas.",
          "Esto te brindará la oportunidad de practicar el trabajo con el atributo <code>aria-live</code>."
        ]
      },
      "lab-theme-switcher": {
        "title": "Construir un Cambiador de Tema",
        "intro": [
          "En este laboratorio, construirás un cambiador de tema y practicarás el trabajo con los atributos <code>aria-haspopup</code>, <code>aria-expanded</code> y <code>aria-controls</code>."
        ]
      },
      "review-js-a11y": {
        "title": "Revisión de JavaScript y Accesibilidad",
        "intro": [
          "Antes de que te pregunten sobre JavaScript y accesibilidad, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos como cómo trabajar con los atributos <code>aria-expanded</code>, <code>aria-live</code> y <code>aria-controls</code>."
        ]
      },
      "quiz-js-a11y": {
        "title": "Cuestionario de JavaScript y Accesibilidad",
        "intro": [
          "Pon a prueba tus conocimientos de JavaScript y las mejores prácticas de accesibilidad con este cuestionario."
        ]
      },
      "lecture-debugging-techniques": {
        "title": "Técnicas de Depuración",
        "intro": [
          "En estas lecciones, aprenderás sobre los errores comunes en JavaScript y las técnicas que puedes usar para corregirlos: un proceso llamado depuración."
        ]
      },
      "lab-random-background-color-changer": {
        "title": "Depurar un Cambiador Aleatorio de Color de Fondo",
        "intro": [
          "En este laboratorio, depurarás un cambiador aleatorio de color de fondo y corregirás los errores para que funcione correctamente."
        ]
      },
      "review-debugging-javascript": {
        "title": "Revisión de Depuración de JavaScript",
        "intro": [
          "Antes de ser cuestionado sobre las técnicas de depuración comunes, deberías repasar lo que has aprendido.",
          "Abre esta página para repasar conceptos como cómo trabajar con la declaración <code>throw</code>, <code>try...catch...finally</code> y más."
        ]
      },
      "quiz-debugging-javascript": {
        "title": "Cuestionario de Depuración de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos de depuración de JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-regular-expressions": {
        "title": "Trabajando con Expresiones Regulares",
        "intro": [
          "En estas lecciones, aprenderás sobre expresiones regulares en JavaScript. Aprenderás sobre los métodos para trabajar con expresiones regulares, modificadores, clases de caracteres, anticipaciones, retroacciones, referencias inversas, cuantificadores y más."
        ]
      },
      "workshop-spam-filter": {
        "title": "Construir un Filtro Anti-Spam",
        "intro": [
          "Las expresiones regulares, a menudo abreviadas como \"regex\" o \"regexp\", son patrones que ayudan a los programadores a hacer coincidir, buscar y reemplazar texto. Las expresiones regulares son poderosas, pero pueden ser difíciles de entender porque utilizan muchos caracteres especiales.",
          "En este taller, utilizarás grupos de captura, anticipaciones positivas, anticipaciones negativas y otras técnicas para hacer coincidir cualquier texto que desees."
        ]
      },
      "lab-palindrome-checker": {
        "title": "Construir un Comprobador de Palíndromos",
        "intro": [
          "Para este laboratorio, crearás una aplicación que verifica si una palabra dada es un palíndromo."
        ]
      },
      "lab-regex-sandbox": {
        "title": "Construir un Sandbox de RegEx",
        "intro": ["En este laboratorio construirás un sandbox de regex."]
      },
      "lab-spinal-case-converter": {
        "title": "Implementar un Convertidor de Casos Espinales",
        "intro": [
          "En este laboratorio, crearás una función que convierte una cadena dada a un caso espinal, que es un estilo de escritura donde todas las letras están en minúsculas y separadas por guiones."
        ]
      },
      "lab-pig-latin": {
        "title": "Implementar un Traductor de Latín de Cerdo",
        "intro": [
          "En este laboratorio, implementarás un traductor de Pig Latin usando JavaScript.",
          "Practicarás la manipulación de cadenas, la lógica condicional y las expresiones regulares."
        ]
      },
      "lab-smart-word-replacement": {
        "title": "Construir una Función de Reemplazo de Palabras Inteligente",
        "intro": [
          "En este laboratorio, usarás expresiones regulares para crear una función que realice una operación de búsqueda y reemplazo en una cadena dada."
        ]
      },
      "review-javascript-regular-expressions": {
        "title": "Revisión de Expresiones Regulares de JavaScript",
        "intro": [
          "Antes de ser cuestionado sobre Expresiones Regulares, deberías repasar lo que has aprendido.",
          "Abre esta página para repasar conceptos como anticipaciones, retroacciones, modificadores de regex comunes y más."
        ]
      },
      "quiz-javascript-regular-expressions": {
        "title": "Cuestionario de Expresiones Regulares de JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos de Expresiones Regulares de JavaScript con este cuestionario."
        ]
      },
      "lab-markdown-to-html-converter": {
        "title": "Construir un Convertidor de Markdown a HTML",
        "intro": [
          "Para este laboratorio, crearás un convertidor de Markdown a HTML utilizando JavaScript.",
          "Practicarás expresiones regulares, manipulación de cadenas y más."
        ]
      },
      "lecture-understanding-form-validation": {
        "title": "Comprendiendo la Validación de Formularios",
        "intro": [
          "En estas lecciones, aprenderás sobre la validación de formularios en JavaScript. Aprenderás sobre las diversas formas de validar formularios, cómo funciona el método <code>preventDefault()</code> y cómo funciona el evento de envío."
        ]
      },
      "workshop-calorie-counter": {
        "title": "Construir un Contador de Calorías",
        "intro": [
          "A veces cuando estás codificando una aplicación web, necesitarás poder aceptar la entrada de un usuario. En este taller de contador de calorías, practicarás cómo validar la entrada del usuario, realizar cálculos basados en esa entrada y actualizar dinámicamente tu interfaz para mostrar los resultados.",
          "También practicarás expresiones regulares básicas, literales de plantilla y el método <code>addEventListener()</code>, y más."
        ]
      },
      "lab-customer-complaint-form": {
        "title": "Construir un Formulario de Quejas de Clientes",
        "intro": [
          "Para este laboratorio, utilizarás JavaScript para validar un formulario de queja de cliente.",
          "Practicarás cómo validar los inputs del formulario, mostrar mensajes de error y evitar que el formulario se envíe si hay errores."
        ]
      },
      "review-form-validation-with-javascript": {
        "title": "Revisión de Validación de Formularios con JavaScript",
        "intro": [
          "Antes de que te pregunten sobre la validación de formularios, debes repasar lo que has aprendido.",
          "Abre esta página para repasar conceptos como el método <code>preventDefault()</code>, el evento de envío y más."
        ]
      },
      "quiz-form-validation-with-javascript": {
        "title": "Cuestionario de Validación de Formularios con JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre validación de formularios con JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-dates": {
        "title": "Trabajando con Fechas",
        "intro": [
          "En estas lecciones, aprenderás sobre el objeto de fecha de JavaScript. Aprenderás sobre los métodos para trabajar con fechas y cómo formatearlas."
        ]
      },
      "lab-date-conversion": {
        "title": "Construir un Programa de Conversión de Fechas",
        "intro": [
          "En este laboratorio crearás un programa para convertir una fecha de un formato a otro."
        ]
      },
      "review-javascript-dates": {
        "title": "Revisión de Fechas en JavaScript",
        "intro": [
          "Antes de que te pregunten cómo trabajar con fechas, debes repasar lo que has aprendido.",
          "Abre esta página para revisar el objeto <code>Date()</code> y métodos comunes."
        ]
      },
      "quiz-javascript-dates": {
        "title": "Cuestionario de Fechas en JavaScript",
        "intro": [
          "Pon a prueba tus conocimientos sobre Fechas en JavaScript con este cuestionario."
        ]
      },
      "lecture-working-with-audio-and-video": {
        "title": "Trabajando con Audio y Video",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con archivos de audio y video utilizando JavaScript. Aprenderás sobre los constructores <code>Audio</code> y <code>Video</code>, sus métodos y propiedades, formatos de audio y video, códecs, la API <code>HTMLMediaElement</code> y mucho más."
        ]
      },
      "workshop-music-player": {
        "title": "Construir un Reproductor de Música",
        "intro": [
          "En este taller, codificarás un reproductor básico de MP3 usando HTML, CSS y JavaScript.",
          "El proyecto abarca conceptos fundamentales como el manejo de la reproducción de audio, la gestión de una lista de reproducción, la implementación de funcionalidades de reproducción, pausa, siguiente y anterior, y actualiza dinámicamente tu interfaz de usuario en función de la canción actual."
        ]
      },
      "review-javascript-audio-and-video": {
        "title": "Revisión de Audio y Video en JavaScript",
        "intro": [
          "Antes de que te pregunten sobre cómo trabajar con audio y video en JavaScript, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos como el constructor <code>Audio</code>, la API <code>HTMLMediaElement</code> y más."
        ]
      },
      "quiz-javascript-audio-and-video": {
        "title": "Cuestionario de Audio y Video en JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre audio y video en JavaScript con este cuestionario."
        ]
      },
      "lab-drum-machine": {
        "title": "Construir una Caja de Ritmos",
        "intro": [
          "Para este laboratorio, usarás el elemento <code>audio</code> para construir una caja de ritmos."
        ]
      },
      "lecture-working-with-maps-and-sets": {
        "title": "Trabajando con Mapas y Conjuntos",
        "intro": [
          "En estas lecciones, aprenderás sobre <code>Map</code> y <code>Set</code> en JavaScript. También aprenderás cómo ambos difieren de <code>WeakSets</code> y <code>WeakMaps</code>."
        ]
      },
      "workshop-plant-nursery-catalog": {
        "title": "Construir un Catálogo de Vivero de Plantas",
        "intro": [
          "En este taller, practicarás el uso de Mapas y Conjuntos al crear un catálogo de vivero de plantas."
        ]
      },
      "review-javascript-maps-and-sets": {
        "title": "Revisión de Mapas y Conjuntos en JavaScript",
        "intro": [
          "Antes de que te pregunten sobre Mapas y Conjuntos de JavaScript, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para revisar conceptos como los objetos <code>Map</code> y <code>Set</code>, así como WeakSet y WeakMap."
        ]
      },
      "quiz-javascript-maps-and-sets": {
        "title": "Cuestionario de Mapas y Conjuntos de JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre Mapas y Conjuntos de JavaScript con este cuestionario."
        ]
      },
      "lab-voting-system": {
        "title": "Construir un Sistema de Votación",
        "intro": [
          "En este laboratorio, crearás un sistema de votación usando Mapas y Conjuntos.",
          "Practicarás cómo usar el objeto <code>Map</code> para almacenar pares clave-valor y el objeto <code>Set</code> para almacenar valores únicos."
        ]
      },
      "lecture-working-with-client-side-storage-and-crud-operations": {
        "title": "Trabajando con Almacenamiento del Lado del Cliente y Operaciones CRUD",
        "intro": [
          "En estas conferencias, aprenderás sobre el almacenamiento del lado del cliente y las operaciones CRUD en JavaScript. Aprenderás sobre <code>localStorage</code> y <code>sessionStorage</code> junto con sus métodos y propiedades, cookies, la API de Caché, IndexDB y mucho más."
        ]
      },
      "workshop-todo-app": {
        "title": "Crear una App de Tareas usando Almacenamiento Local",
        "intro": [
          "El almacenamiento local es una función del navegador web que permite que las aplicaciones web almacenen pares clave-valor de forma persistente dentro del navegador de un usuario. Esto permite que las aplicaciones web guarden datos durante una sesión y luego los recuperen en una sesión de página posterior.",
          "En este taller, aprenderás cómo manejar las entradas de un formulario, gestionar el almacenamiento local, realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en tareas, implementar escuchas de eventos, y alternar elementos de la IU."
        ]
      },
      "lab-bookmark-manager-app": {
        "title": "Construir una App de Administrador de Marcadores",
        "intro": [
          "Para este laboratorio, construirás una aplicación de administrador de marcadores.",
          "Utilizarás el almacenamiento local para almacenar marcadores, y practicarás cómo agregar, eliminar y mostrar marcadores."
        ]
      },
      "review-local-storage-and-crud": {
        "title": "Revisión de Almacenamiento Local y CRUD",
        "intro": [
          "Antes de que te pregunten sobre cómo trabajar con <code>localStorage</code>, primero debes repasar los conceptos.",
          "Abre esta página para revisar la propiedad <code>localStorage</code>, la propiedad <code>sessionStorage</code> y más."
        ]
      },
      "quiz-local-storage-and-crud": {
        "title": "Cuestionario de Almacenamiento Local y CRUD",
        "intro": [
          "Pon a prueba lo que has aprendido sobre almacenamiento local y CRUD con este cuestionario."
        ]
      },
      "lecture-understanding-how-to-work-with-classes-in-javascript": {
        "title": "Entendiendo cómo Trabajar con Clases en JavaScript",
        "intro": [
          "En estas conferencias, aprenderás sobre clases en JavaScript. Aprenderás sobre herencia, la palabra clave <code>this</code>, propiedades y métodos estáticos, y más."
        ]
      },
      "workshop-shopping-cart": {
        "title": "Crear un Carrito de Compras",
        "intro": [
          "En este taller crearás un carrito de compras utilizando clases de JavaScript.",
          "Practicarás cómo usar la palabra clave this, crear instancias de clase, implementar métodos para la manipulación de datos y más."
        ]
      },
      "lab-project-idea-board": {
        "title": "Construir un Tablero de Ideas de Proyecto",
        "intro": [
          "En este laboratorio, construirás un tablero de ideas de proyecto usando OOP en JavaScript.",
          "Practicarás cómo crear clases, añadir métodos a clases, y crear instancias de clases."
        ]
      },
      "review-javascript-classes": {
        "title": "Revisión de Clases de JavaScript",
        "intro": [
          "Antes de que te pregunten cómo trabajar con clases, debes repasar lo que has aprendido sobre ellas.",
          "Abre esta página para revisar conceptos que incluyen la palabra clave <code>this</code>, herencia de clases y más."
        ]
      },
      "quiz-javascript-classes": {
        "title": "Cuestionario sobre clases de JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre las clases de JavaScript con este cuestionario."
        ]
      },
      "lab-bank-account-manager": {
        "title": "Desarrollar un Programa de Gestión de Cuentas Bancarias",
        "intro": [
          "En este laboratorio, construirás un sistema simple de gestión de transacciones para una cuenta bancaria."
        ]
      },
      "lecture-understanding-recursion-and-the-call-stack": {
        "title": "Comprender la Recursión y la Pila de Llamadas",
        "intro": [
          "En esta conferencia, aprenderás sobre la recursión y la pila de llamadas."
        ]
      },
      "workshop-countup": {
        "title": "Construye un contador ascendente.",
        "intro": [
          "En este taller construirás una función de conteo que devuelve un arreglo de números ascendentes desde 1 hasta un número dado."
        ]
      },
      "lab-countdown": {
        "title": "Construye una cuenta regresiva",
        "intro": [
          "Para este laboratorio, se construirá una función de cuenta regresiva que devuelve un array de números contando de un número dado hasta 1."
        ]
      },
      "lab-range-of-numbers": {
        "title": "Construye un generador de rangos de números.",
        "intro": [
          "En este laboratorio, usarás recursión para generar un arreglo de números dentro de un rango especificado.",
          "Practicarás llamadas recursivas a funciones, casos base y la construcción de arreglos mediante recursión."
        ]
      },
      "workshop-decimal-to-binary-converter": {
        "title": "Construir un Convertidor de Decimal a Binario",
        "intro": [
          "La recursión es un concepto de programación donde una función se llama a sí misma. Esto puede reducir un problema complejo a subproblemas más simples, hasta que se vuelven fáciles de resolver.",
          "En este taller, crearás un conversor de decimal a binario usando JavaScript. Practicarás los conceptos fundamentales de la recursión, explorarás la pila de llamadas y crearás una representación visual del proceso de recursión a través de una animación."
        ]
      },
      "lab-permutation-generator": {
        "title": "Construir un Generador de Permutaciones",
        "intro": [
          "Para este laboratorio, construirás un generador de permutaciones que produce todas las permutaciones posibles de una cadena dada."
        ]
      },
      "review-recursion": {
        "title": "Revisión de Recursión",
        "intro": [
          "Antes de que te pregunten sobre la recursión, debes repasar lo que has aprendido.",
          "Abre esta página para revisar qué es la recursión y para qué se utiliza."
        ]
      },
      "quiz-recursion": {
        "title": "Cuestionario de Recursión",
        "intro": [
          "Pon a prueba tus conocimientos de recursión con este cuestionario."
        ]
      },
      "lecture-working-with-common-data-structures-js": {
        "title": "Working with Common Data Structures",
        "intro": [
          "Learn about common data structures and how to work with them in JavaScript."
        ]
      },
      "workshop-linked-list-js": {
        "title": "Build a Linked List",
        "intro": [
          "In the previous lessons, you learned about some common data structures.",
          "In this workshop, you will build a linked list using JavaScript."
        ]
      },
      "lab-linked-list-operations": {
        "title": "Implement Linked List Operations",
        "intro": [
          "In this lab you will implement common linked list operations such as insertion, deletion, and traversal."
        ]
      },
      "lab-implement-a-stack": {
        "title": "Implement a Stack",
        "intro": [
          "In this lab, you will implement a stack data structure using functions."
        ]
      },
      "lab-implement-a-queue": {
        "title": "Implement a Queue",
        "intro": [
          "In this lab, you will implement a queue data structure using functions."
        ]
      },
      "review-data-structures-js": {
        "title": "Data Structures Review",
        "intro": [
          "Before you're quizzed on data structures, you should review what you've learned about them.",
          "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
        ]
      },
      "quiz-data-structures-js": {
        "title": "Data Structures Quiz",
        "intro": [
          "Test what you've learned about data structures in JavaScript with this quiz."
        ]
      },
      "lecture-introduction-to-common-searching-and-sorting-algorithms": {
        "title": "Introducción a los algoritmos comunes de búsqueda y ordenamiento.",
        "intro": [
          "Aprende sobre los algoritmos fundamentales de búsqueda y ordenamiento, incluyendo la búsqueda lineal, la búsqueda binaria y el ordenamiento por fusión.",
          "Estas lecciones cubren implementaciones de algoritmos, análisis de complejidad de tiempo y espacio, y el paradigma de programación de dividir y conquistar."
        ]
      },
      "workshop-binary-search-js": {
        "title": "Implement the Binary Search Algorithm",
        "intro": [
          "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
          "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
        ]
      },
      "workshop-merge-sort-js": {
        "title": "Implement the Merge Sort Algorithm",
        "intro": [
          "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
          "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
        ]
      },
      "lab-bubble-sort-algorithm": {
        "title": "Implementar el algoritmo de ordenamiento de burbuja.",
        "intro": [
          "En este laboratorio, implementarás el algoritmo de ordenamiento de burbuja para ordenar un arreglo de enteros en orden ascendente."
        ]
      },
      "lab-selection-sort-js": {
        "title": "Implement the Selection Sort Algorithm",
        "intro": [
          "In this lab you will implement the selection sort algorithm."
        ]
      },
      "lab-insertion-sort": {
        "title": "Implement the Insertion Sort Algorithm",
        "intro": [
          "In this lab, you will implement the insertion sort algorithm to sort an array of integers in ascending order."
        ]
      },
      "lab-quicksort-js": {
        "title": "Implement the Quicksort Algorithm",
        "intro": [
          "In this lab you will implement the quicksort algorithm to sort an array of integers."
        ]
      },
      "review-searching-and-sorting-algorithms-js": {
        "title": "Searching and Sorting Algorithms Review",
        "intro": [
          "Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
        ]
      },
      "quiz-searching-and-sorting-algorithms-js": {
        "title": "Searching and Sorting Algorithms Quiz",
        "intro": [
          "Test your knowledge of searching and sorting algorithms with this quiz."
        ]
      },
      "lecture-understanding-graphs-and-trees-js": {
        "title": "Comprender grafos y árboles.",
        "intro": [
          "En esta lección, aprenderás sobre estructuras de datos fundamentales como grafos, árboles y sus aplicaciones prácticas en ciencias de la computación."
        ]
      },
      "workshop-shortest-path-algorithm-js": {
        "title": "Implement the Shortest Path Algorithm",
        "intro": [
          "The shortest path algorithm finds the minimum distance between nodes in a weighted graph.",
          "In this workshop, you'll implement the shortest path algorithm in JavaScript and return both the shortest distances and the paths taken."
        ]
      },
      "lab-adjacency-list-to-matrix-converter-js": {
        "title": "Build an Adjacency List to Matrix Converter",
        "intro": [
          "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
        ]
      },
      "workshop-breadth-first-search-js": {
        "title": "Implement the Breadth-First Search Algorithm",
        "intro": [
          "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
        ]
      },
      "lab-depth-first-search-js": {
        "title": "Implement the Depth-First Search Algorithm",
        "intro": [
          "In this lab, you will implement a solution for the depth-first search algorithm."
        ]
      },
      "lab-n-queens-problem-js": {
        "title": "Implement the N-Queens Problem",
        "intro": [
          "In this lab, you will implement a solution for the N-Queens problem."
        ]
      },
      "review-graphs-and-trees-js": {
        "title": "Graphs and Trees Review",
        "intro": [
          "Graphs and Trees Review",
          "Before you are quizzed on graphs and trees, you should review what you've learned."
        ]
      },
      "quiz-graph-and-trees-js": {
        "title": "Graphs and Trees Quiz",
        "intro": [
          "Graphs and Trees Quiz",
          "Test what you've learned about graphs and trees with this quiz."
        ]
      },
      "lecture-understanding-dynamic-programming-js": {
        "title": "Understanding Dynamic Programming",
        "intro": [
          "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
        ]
      },
      "lab-nth-fibonacci-number-js": {
        "title": "Build an Nth Fibonacci Number Calculator",
        "intro": [
          "In this lab, you'll practice dynamic programming by implementing a Fibonacci sequence calculator in JavaScript."
        ]
      },
      "review-dynamic-programming-js": {
        "title": "Dynamic Programming Review",
        "intro": [
          "Before you're quizzed on dynamic programming, you should review what you've learned about it."
        ]
      },
      "quiz-dynamic-programming-js": {
        "title": "Dynamic Programming Quiz",
        "intro": [
          "Test what you've learned about dynamic programming in JavaScript with this quiz."
        ]
      },
      "lecture-understanding-functional-programming": {
        "title": "Entender la Programación Funcional",
        "intro": [
          "En estas conferencias, aprenderás sobre la programación funcional y cómo anidar funciones usando una técnica llamada currying."
        ]
      },
      "workshop-recipe-ingredient-converter": {
        "title": "Construir un Convertidor de Ingredientes de Recetas",
        "intro": [
          "En las conferencias anteriores, aprendiste los conceptos clave detrás de la programación funcional y el currying.",
          "Ahora podrás aplicar lo que has aprendido sobre currying y programación funcional construyendo una aplicación para convertir ingredientes de recetas."
        ]
      },
      "lab-optional-arguments-sum-function": {
        "title": "Construir una Función de Suma de Argumentos Opcionales.",
        "intro": [
          "En este laboratorio, construirás una función que acepte hasta dos argumentos, y los sume, pero si solo hay un argumento, devolverá una función que espere el segundo número para sumar."
        ]
      },
      "lab-sorting-visualizer": {
        "title": "Construir un Visualizador de Ordenamiento",
        "intro": [
          "Para este laboratorio, utilizarás JavaScript para visualizar los pasos que el algoritmo de ordenamiento burbuja toma para reordenar un arreglo de números enteros."
        ]
      },
      "review-javascript-functional-programming": {
        "title": "Revisión de Programación Funcional en JavaScript",
        "intro": [
          "Antes de que te pregunten sobre programación funcional, debes repasar lo que has aprendido.",
          "Abre esta página para revisar conceptos sobre programación funcional, currying y más."
        ]
      },
      "quiz-javascript-functional-programming": {
        "title": "Cuestionario de Programación Funcional de JavaScript",
        "intro": [
          "Pon a prueba lo que has aprendido sobre programación funcional de JavaScript con este cuestionario."
        ]
      },
      "lecture-understanding-asynchronous-programming": {
        "title": "Entendiendo la Programación Asíncrona",
        "intro": [
          "En estas conferencias, aprenderás sobre programación asíncrona en JavaScript. Aprenderás sobre las diferencias entre la programación síncrona y asíncrona, cómo funciona la palabra clave <code>async</code>, la API <code>Fetch</code>, promesas, <code>async/await</code>, la API de <code>Geolocation</code>, y mucho más."
        ]
      },
      "workshop-fcc-authors-page": {
        "title": "Crea una Página de Autores de fCC",
        "intro": [
          "Un aspecto común del desarrollo web es aprender a obtener datos de una API externa y luego trabajar con JavaScript asíncrono.",
          "En este taller, practicarás cómo usar el método fetch, actualizar dinámicamente el DOM para mostrar los datos obtenidos y paginar tus datos para poder cargar resultados en lotes."
        ]
      },
      "lab-fcc-forum-leaderboard": {
        "title": "Construir una Clasificación del Foro de fCC",
        "intro": [
          "Para este laboratorio, practicarás JavaScript asíncrono codificando tu propia tabla de clasificación del foro freeCodeCamp."
        ]
      },
      "review-asynchronous-javascript": {
        "title": "Revisión de JavaScript Asíncrono",
        "intro": [
          "Revise los conceptos de JavaScript asincrónico para prepararse para el próximo examen."
        ]
      },
      "quiz-asynchronous-javascript": {
        "title": "Cuestionario de JavaScript Asíncrono",
        "intro": [
          "Pon a prueba lo que has aprendido sobre JavaScript asíncrono con este cuestionario."
        ]
      },
      "lab-weather-app": {
        "title": "Desarrolla una aplicación del tiempo",
        "intro": [
          "En este laboratorio, crearás una aplicación meteorológica usando una API",
          "Practicarás cómo obtener datos de la API, almacenarlos y mostrarlos en tu aplicación."
        ]
      },
      "review-javascript": {
        "title": "Revisión de JavaScript",
        "intro": [
          "Antes de tomar el examen de preparación de JavaScript, debes repasar todo lo que has aprendido sobre JavaScript.",
          "Abre esta página para repasar todos los conceptos enseñados, incluidas variables, cadenas, valores booleanos, funciones, objetos, arreglos, depuración, trabajo con el DOM y más."
        ]
      },
      "exam-javascript-certification": {
        "title": "Examen de Certificación JavaScript",
        "intro": [
          "Aprueba este examen para obtener tu Certificación JavaScript."
        ]
      }
    }
  },
  "front-end-development-libraries-v9": {
    "title": "Front-End Development Libraries Certification",
    "intro": [
      "Este curso te enseña las bibliotecas que los desarrolladores usan para construir páginas web: React, TypeScript, y más.",
      "To earn your Front-End Development Libraries Certification:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Pass the Front-End Development Libraries Certification exam."
    ],
    "note": "",
    "chapters": {
      "front-end-development-libraries": "Front-End Development Libraries",
      "front-end-development-libraries-certification-exam": "Front-End Development Libraries Certification Exam"
    },
    "modules": {
      "react-fundamentals": "Fundamentos de React",
      "react-state-hooks-and-routing": "Estado, Hooks y Enrutamiento de React",
      "lab-currency-converter": "Construir un Convertidor de Monedas.",
      "lab-tic-tac-toe": "Construir un Juego de Tic-Tac-Toe.",
      "performance": "Rendimiento",
      "testing": "Pruebas",
      "css-libraries-and-frameworks": "Bibliotecas y Frameworks CSS",
      "lab-photography-exhibit": "Design a Photography Exhibit",
      "typescript-fundamentals": "Fundamentos de TypeScript ",
      "lab-flashcard-quiz-app": "Build a Flashcard Quiz App",
      "lab-digital-pet-game": "Build a Digital Pet Game",
      "data-visualization": "Visualización de Datos y D3",
      "review-front-end-libraries": "Front-End Libraries Review",
      "front-end-development-libraries-certification-exam": "Front-End Development Libraries Certification Exam"
    },
    "module-intros": {
      "typescript-fundamentals": {
        "intro": [
          "En este módulo, serás introducido a TypeScript, que es un superconjunto de JavaScript que te permite agregar tipado estático a tu código JavaScript. Construirás varios talleres y laboratorios que te darán práctica en trabajar con genéricos, estrechamiento de tipos, TSX, y más. Luego pondrás a prueba tus conocimientos de los fundamentos de TypeScript con un breve cuestionario."
        ]
      },
      "data-visualization": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, serás introducido a la visualización de datos y aprenderás a trabajar con la biblioteca D3."
        ]
      },
      "front-end-development-libraries-certification-exam": {
        "note": "Próximamente en 2026.",
        "intro": [
          "Pass this exam to earn your Front-End Development Libraries Certification."
        ]
      }
    },
    "blocks": {
      "lecture-introduction-to-javascript-libraries-and-frameworks": {
        "title": "Introducción a las Bibliotecas y Frameworks JavaScript",
        "intro": [
          "In these lessons, you will get an introduction to JavaScript libraries and frameworks. You will learn about the roles of JavaScript libraries and frameworks, single page applications (SPAs) and the issue surrounding them, and React, the most popular front-end JavaScript library."
        ]
      },
      "workshop-reusable-mega-navbar": {
        "title": "Construya una Mega Barra de Navegación Reutilizable",
        "intro": [
          "En las lecciones anteriores, aprendiste cómo trabajar con componentes en React.",
          "En este workshop, construirás un componente Navbar reutilizable usando React."
        ]
      },
      "lab-reusable-footer": {
        "title": "Construir un Pie de Página Reutilizable",
        "intro": [
          "En este laboratorio, usarás React para construir un pie de página reutilizable."
        ]
      },
      "lecture-working-with-data-in-react": {
        "title": "Trabajar con Datos en React",
        "intro": [
          "En estas lecciones, aprenderás a trabajar con datos en React. Aprenderás sobre <code>props</code> y cómo pasarlas, renderizado condicional, cómo renderizar listas y cómo usar estilos en línea."
        ]
      },
      "workshop-reusable-profile-card-component": {
        "title": "Construir un Componente de Tarjeta de Perfil Reutilizable",
        "intro": [
          "En este workshop, aprenderás cómo trabajar con accesorios construyendo un componente de tarjeta de perfil reutilizable."
        ]
      },
      "lab-mood-board": {
        "title": "Construir un Tablero de Estado de Ánimo",
        "intro": [
          "En este laboratorio, crearás un tablero de estado de ánimo usando React.",
          "Practicarás cómo pasar datos de un componente principal a un componente secundario usando propiedades."
        ]
      },
      "review-react-basics": {
        "title": "Revisión de Conceptos Básicos de React",
        "intro": [
          "Revise los conceptos básicos de React para prepararse para el próximo cuestionario."
        ]
      },
      "quiz-react-basics": {
        "title": "Cuestionario Básico de React",
        "intro": [
          "Pon a prueba tus conocimientos de conceptos básicos de React con este cuestionario."
        ]
      },
      "lecture-working-with-state-and-responding-to-events-in-react": {
        "title": "Trabajando con Estado y Respondiendo a Eventos en React",
        "intro": [
          "En estas lecciones, aprenderás sobre trabajar con estado y responder a eventos con React."
        ]
      },
      "workshop-toggle-text-app": {
        "title": "Aplicación de Texto Alternar",
        "intro": [
          "En este workshop, continuarás aprendiendo sobre el <code>useState()</code> hook construyendo una aplicación que oculta y muestra un fragmento de texto en la pantalla."
        ]
      },
      "lab-color-picker": {
        "title": "Construir una Aplicación de Selector de Colores",
        "intro": [
          "En este laboratorio construirás un Selector de Colores.",
          "Practicarás utilizando estado y hooks para gestionar las propiedades de un elemento."
        ]
      },
      "lecture-understanding-effects-and-referencing-values-in-react": {
        "title": "Comprender los Efectos y Referencias de Valores en React",
        "intro": [
          "En estas lecciones, aprenderás sobre efectos y referencias de valores con React."
        ]
      },
      "workshop-fruit-search-app": {
        "title": "Construir una Aplicación de Búsqueda de Frutas",
        "intro": [
          "En este workshop, continuarás aprendiendo sobre el <code>useEffect()</code> hook, construyendo una aplicación que obtiene datos de frutas de una API basada en la entrada del usuario y muestra los resultados dinámicamente."
        ]
      },
      "lab-one-time-password-generator": {
        "title": "Construir un Generador de Contraseña de Un Solo Uso",
        "intro": [
          "En este laboratorio construirás un generador de contraseñas de un solo uso.",
          "Practicarás usando los hooks de useEffect para crear un temporizador y generar un OTP aleatorio."
        ]
      },
      "review-react-state-and-hooks": {
        "title": "Revisión de Estado y Hooks de React",
        "intro": [
          "Antes de que te examinen sobre estado y hooks de React, debes repasar lo que has aprendido.",
          "Abra esta página para revisar cómo trabajar con estado, hooks personalizados y más."
        ]
      },
      "quiz-react-state-and-hooks": {
        "title": "Cuestionario sobre Estado y Hooks de React",
        "intro": [
          "Pon a prueba lo que has aprendido sobre los hooks <code>useState</code> y <code>useEffect</code> de React con este cuestionario."
        ]
      },
      "lecture-working-with-forms-in-react": {
        "title": "Trabajar con Formularios en React",
        "intro": [
          "En estas lecciones, aprenderás sobre el trabajo con formularios en React."
        ]
      },
      "workshop-superhero-application-form": {
        "title": "Construir un Formulario de Aplicación de Superhéroe",
        "intro": [
          "En este workshop, construirás un formulario de aplicación para superhéroes."
        ]
      },
      "lab-event-rsvp": {
        "title": "Construir una confirmación de asistencia para un evento",
        "intro": [
          "En este laboratorio, crearás un formulario de confirmación de asistencia para un evento usando React.",
          "Practicará el uso del hook useState para gestionar la entrada del formulario y mostrar las respuestas de los usuarios."
        ]
      },
      "lecture-working-with-data-fetching-and-memoization-in-react": {
        "title": "Trabajando con obtención de datos y memorización en React",
        "intro": [
          "En estas lecciones, aprenderá sobre la obtención de datos y la memorización en React."
        ]
      },
      "workshop-shopping-list-app": {
        "title": "Construir una aplicación de lista de compras",
        "intro": [
          "En este taller, utilizarás los hooks <code>useMemo()</code> y <code>useCallback()</code> en React para crear una sencilla aplicación de lista de compras. Aprenderás más sobre el estado y el ciclo de vida de los componentes de React, y cómo usar la memorización para reducir re-renderizados y hacer tus aplicaciones más eficientes."
        ]
      },
      "lecture-routing-react-frameworks-and-dependency-management-tools": {
        "title": "Ruteo, marcos de React y herramientas de gestión de dependencias",
        "intro": [
          "En estas lecciones, aprenderá sobre el ruteo en React, marcos de React y herramientas de gestión de dependencias."
        ]
      },
      "lecture-react-strategies-and-debugging": {
        "title": "Estrategias de React y depuración",
        "intro": [
          "En estas lecciones, aprenderá sobre diferentes estrategias y depuración en React."
        ]
      },
      "review-react-forms-data-fetching-and-routing": {
        "title": "Revisión de formularios, obtención de datos y ruteo en React",
        "intro": [
          "Antes de que realices el cuestionario de formularios, obtención de datos y ruteo en React, debes repasar todo lo que has aprendido hasta ahora.",
          "Abre esta página para repasar todos los conceptos enseñados, incluido el ruteo, formularios, gestión del estado, perforación de propiedades, obtención de datos y más."
        ]
      },
      "quiz-react-forms-data-fetching-and-routing": {
        "title": "Cuestionario de formularios, obtención de datos y ruteo en React",
        "intro": [
          "Pon a prueba lo que has aprendido sobre ruteo, formularios y obtención de datos con este cuestionario."
        ]
      },
      "lab-currency-converter": {
        "title": "Construir un Convertidor de Divisas",
        "intro": [
          "Para este laboratorio, crearás una aplicación de conversión de divisas.",
          "Usarás el estado de React, memorización y componentes controlados para convertir entre divisas."
        ]
      },
      "lab-tic-tac-toe": {
        "title": "Construir un Juego de Tres en Raya",
        "intro": [
          "En este laboratorio, crearás un juego de tres en raya usando React.",
          "Practicarás la gestión del estado, el manejo de las interacciones con el usuario y la actualización dinámica de la interfaz de usuario."
        ]
      },
      "lecture-understanding-performance-in-web-applications": {
        "title": "Comprensión del rendimiento en aplicaciones web",
        "intro": [
          "En estas lecciones, aprenderás sobre el rendimiento en aplicaciones web."
        ]
      },
      "review-web-performance": {
        "title": "Revisión del Rendimiento Web",
        "intro": [
          "Antes de que realices el cuestionario de rendimiento web, debes repasar todo lo que has aprendido hasta ahora.",
          "Abre esta página para repasar todos los conceptos enseñados, incluidos INP, métricas clave para medir rendimiento, APIs de rendimiento web y más."
        ]
      },
      "quiz-web-performance": {
        "title": "Cuestionario de rendimiento web",
        "intro": [
          "Pon a prueba lo que has aprendido sobre rendimiento web con este cuestionario."
        ]
      },
      "lecture-understanding-the-different-types-of-testing": {
        "title": "Comprender los diferentes tipos de pruebas",
        "intro": [
          "En estas lecciones, aprenderás sobre los diferentes tipos de pruebas."
        ]
      },
      "review-testing": {
        "title": "Revisión de pruebas",
        "intro": [
          "Antes de que realices el cuestionario de pruebas, debes repasar todo lo que has aprendido hasta ahora.",
          "Abre esta página para repasar todos los conceptos enseñados, incluidos las pruebas unitarias, pruebas de extremo a extremo, pruebas funcionales y más."
        ]
      },
      "quiz-testing": {
        "title": "Cuestionario de pruebas",
        "intro": [
          "Pon a prueba lo que has aprendido sobre pruebas con este cuestionario."
        ]
      },
      "lecture-working-with-css-libraries-and-frameworks": {
        "title": "Trabajando con librerías y marcos CSS",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con librerías y marcos CSS."
        ]
      },
      "workshop-error-message-component": {
        "title": "Crear un componente de mensaje de error",
        "intro": [
          "En este taller, aprenderás los conceptos básicos de Tailwind CSS al construir un componente de mensaje de error."
        ]
      },
      "workshop-tailwind-cta-component": {
        "title": "Construir un Componente CTA",
        "intro": [
          "En este taller, crearás un componente de llamada a la acción (CTA) usando Tailwind CSS."
        ]
      },
      "workshop-tailwind-pricing-component": {
        "title": "Crear un Componente de Precios",
        "intro": [
          "En este taller, construirás un componente de precios usando Tailwind CSS.",
          "Practicará el uso de clases de utilidad de cuadrícula de Tailwind CSS."
        ]
      },
      "lab-music-shopping-cart-page": {
        "title": "Crear una página de carrito de compras de música",
        "intro": [
          "En este laboratorio, crearás una página de carrito de compras de música con Tailwind CSS.",
          "Practicarás trabajando con clases de utilidad de Tailwind CSS para diseños de flexbox, colores, interrupciones y más."
        ]
      },
      "lab-photography-exhibit": {
        "title": "Diseñar una Exhibición Fotográfica",
        "intro": [
          "En este laboratorio, practicarás trabajando con Tailwind CSS al diseñar una página web de exposición fotográfica."
        ]
      },
      "review-css-libraries-and-frameworks": {
        "title": "Revisión de librerías y marcos CSS",
        "intro": [
          "Antes de que realices el cuestionario de librerías y marcos CSS, debes repasar todo lo que has aprendido hasta ahora.",
          "Abre esta página para repasar todos los conceptos enseñados, incluidos los marcos CSS, preprocesadores CSS, Sass y más."
        ]
      },
      "quiz-css-libraries-and-frameworks": {
        "title": "Cuestionario de librerías y marcos CSS",
        "intro": [
          "Pon a prueba lo que has aprendido sobre librerías y marcos CSS con este cuestionario."
        ]
      },
      "lecture-introduction-to-typescript": {
        "title": "Introducción a TypeScript",
        "intro": [
          "En estas lecciones, aprenderás qué es TypeScript y cómo usarlo."
        ]
      },
      "workshop-type-safe-user-profile": {
        "title": "Build a Type Safe User Profile",
        "intro": [
          "In this workshop, you will practice working with type annotations, array types, object types and more by building out a user profile."
        ]
      },
      "workshop-type-safe-math-toolkit": {
        "title": "Build a Type Safe Math Toolkit",
        "intro": [
          "In this workshop, you will practice typing functions by building a math toolkit project."
        ]
      },
      "lecture-understanding-type-composition": {
        "title": "Understanding Type Composition",
        "intro": [
          "In these lessons, you will learn how to work with union types, interfaces, void types and more."
        ]
      },
      "workshop-shape-manager": {
        "title": "Build a Shape Manager",
        "intro": [
          "In this workshop, you will practice basic TypeScript features like types and interfaces by building a shape manager program."
        ]
      },
      "lab-motorcycle-shop": {
        "title": "Build a Motorcycle Shop",
        "intro": [
          "For this lab, you will use TypeScript to build a Motorcycle Shop."
        ]
      },
      "lecture-working-with-generics-and-type-narrowing": {
        "title": "Trabajando con genéricos y estrechamiento de tipo",
        "intro": [
          "En estas lecciones, aprenderás sobre genéricos y estrechamiento de tipo en TypeScript."
        ]
      },
      "workshop-bug-emoji-picker": {
        "title": "Build a Bug Emoji Picker",
        "intro": [
          "In this workshop, you will learn about TypeScript abstract classes and generics by building a bug species selector that displays different bug emojis."
        ]
      },
      "lab-product-showcase": {
        "title": "Build a Product Showcase",
        "intro": [
          "In this lab, you will practice generics and type narrowing in TypeScript."
        ]
      },
      "lecture-working-with-typescript-configuration-files": {
        "title": "Trabajando con archivos de configuración de TypeScript",
        "intro": [
          "En esta lección, aprenderás sobre archivos de configuración de TypeScript y cómo usarlos."
        ]
      },
      "workshop-fortune-teller-app": {
        "title": "Build a Fortune Telling App",
        "intro": [
          "In this workshop, you will continue to practice working with TypeScript by building a fortune telling app."
        ]
      },
      "lab-flashcard-quiz-app": {
        "title": "Build a Flashcard Quiz App",
        "intro": [
          "In this lab, you will practice using TypeScript by building a flashcard quiz app."
        ]
      },
      "lab-digital-pet-game": {
        "title": "Build a Digital Pet Game",
        "intro": [
          "In this lab, you'll practice what you learned about TypeScript and React by building a digital pet game."
        ]
      },
      "workshop-build-a-football-player-card-builder": {
        "title": "Build a Football Player Card Builder",
        "intro": [
          "In this workshop, you'll learn how to work with React in TypeScript by building a football player card builder."
        ]
      },
      "review-typescript": {
        "title": "TypeScript Review",
        "intro": [
          "Antes de que realices el cuestionario de TypeScript, debes repasar todo lo que has aprendido hasta ahora.",
          "Abre esta página para repasar todos los conceptos enseñados, incluidos los tipos de datos en TypeScript, genéricos, estrechamiento de tipo y más."
        ]
      },
      "quiz-typescript": {
        "title": "Cuestionario de TypeScript",
        "intro": ["Test what you've learned on TypeScript with this quiz."]
      },
      "lecture-introduction-to-data-visualization": {
        "title": "Introducción a la visualización de datos",
        "intro": [
          "En estas lecciones, aprenderás sobre los conceptos básicos de visualización de datos."
        ]
      },
      "lab-bar-chart": {
        "title": "Build a Bar Chart",
        "intro": ["In this lab you will use d3 to build a bar chart."]
      },
      "lab-scatterplot-graph": {
        "title": "Build a Scatterplot Graph",
        "intro": [
          "In this lab you will create a d3 scatterplot graph using a provided dataset."
        ]
      },
      "review-front-end-libraries": {
        "title": "Front-End Libraries Review",
        "intro": [
          "Review the Front-End Libraries concepts to prepare for the upcoming quiz."
        ]
      },
      "exam-front-end-development-libraries-certification": {
        "title": "Front-End Development Libraries Certification Exam",
        "intro": [
          "Pass this exam to earn your Front-End Development Libraries Certification"
        ]
      }
    }
  },
  "python-v9": {
    "title": "Certificación de Python",
    "intro": [
      "Este curso te enseña los fundamentos de la programación en Python.",
      "Para obtener tu Certificación de Python:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Aprueba el examen de Certificación de Python."
    ],
    "chapters": {
      "python": "Python",
      "python-certification-exam": "Examen de certificación de Python"
    },
    "modules": {
      "python-basics": "Fundamentos de Python",
      "python-installation": "Install Python",
      "python-loops-and-sequences": "Bucles y Secuencias",
      "python-dictionaries-and-sets": "Diccionarios y Conjuntos",
      "lab-user-configuration-manager": "Construir un Gestor de Configuración de Usuarios.",
      "python-error-handling": "Manejo de Errores",
      "python-classes-and-objects": "Clases y Objetos",
      "lab-budget-app": "Construir una Aplicación de Presupuesto.",
      "python-object-oriented-programming": "Programación Orientada a Objetos (OOP)",
      "lab-polygon-area-calculator": "Construir un Calculador de Área de Polígono.",
      "python-linear-data-structures": "Estructuras de Datos Lineales",
      "lab-hash-table": "Construir una Tabla Hash.",
      "python-algorithms": "Algoritmos",
      "lab-tower-of-hanoi": "Implementar el Algoritmo de la Torre de Hanoi.",
      "python-graphs-and-trees": "Grafos y Árboles",
      "python-dynamic-programming": "Programación Dinámica",
      "review-python": "Revisión de Python",
      "python-certification-exam": "Examen de Certificación de Python"
    },
    "blocks": {
      "lecture-introduction-to-python": {
        "title": "Introducción a Python",
        "intro": [
          "In these lessons, you will learn what Python is and common uses in the industry."
        ]
      },
      "lecture-understanding-variables-and-data-types": {
        "title": "Entendiendo Variables y Tipos de Datos",
        "intro": [
          "En estas lecciones, aprenderás sobre variables y tipos de datos en Python."
        ]
      },
      "workshop-report-card-printer": {
        "title": "Construye una impresora de boletas de calificaciones.",
        "intro": [
          "En este taller, construirás una impresora de boletas de calificaciones para trabajar con tipos de datos primitivos en Python."
        ]
      },
      "lecture-introduction-to-python-strings": {
        "title": "Introducción a Cadenas",
        "intro": ["En estas lecciones, aprenderás sobre cadenas en Python."]
      },
      "workshop-employee-profile-generator": {
        "title": "Construye un generador de perfiles de empleados.",
        "intro": [
          "En este taller, practicarás los fundamentos de la manipulación de cadenas en Python construyendo una herramienta que genere credenciales de empleados formateadas y analice códigos de empleados."
        ]
      },
      "lecture-numbers-and-mathematical-operations": {
        "title": "Números y Operaciones Matemáticas",
        "intro": [
          "En estas lecciones, aprenderás sobre números y operaciones matemáticas en Python."
        ]
      },
      "workshop-bill-splitter": {
        "title": "Build a Bill Splitter",
        "intro": [
          "In this workshop you will build a bill splitter to practice working with numbers and mathematical operations in Python"
        ]
      },
      "lecture-booleans-and-conditionals": {
        "title": "Booleans y Condicionales",
        "intro": [
          "En estas lecciones, aprenderás sobre booleanos y condicionales en Python."
        ]
      },
      "workshop-movie-ticket-booking-calculator": {
        "title": "Construye un calculador para reservar entradas de cine.",
        "intro": [
          "En este taller, practicarás cómo usar booleanos y sentencias condicionales en Python construyendo un calculador para reservar entradas de cine."
        ]
      },
      "lab-travel-weather-planner": {
        "title": "Construye un planificador de clima para viajes.",
        "intro": [
          "En este laboratorio, construirás un planificador de clima para viajes mediante sentencias condicionales."
        ]
      },
      "lecture-understanding-functions-and-scope": {
        "title": "Entendiendo Funciones y Ámbito",
        "intro": [
          "En estas lecciones, aprenderás sobre funciones y ámbito en Python."
        ]
      },
      "lab-discount-calculator": {
        "title": "Build an Apply Discount Function",
        "intro": [
          "En este laboratorio, practicarás conceptos básicos de Python construyendo un calculador para aplicar un descuento a un precio."
        ]
      },
      "workshop-caesar-cipher": {
        "title": "Construir un Cifrado César",
        "intro": [
          "En este taller, crearás un cifrado César utilizando conceptos básicos de Python, como cadenas, condicionales, funciones y más."
        ]
      },
      "lab-rpg-character": {
        "title": "Construir un Personaje de RPG",
        "intro": [
          "En este laboratorio practicarás los conceptos básicos de Python construyendo un personaje de RPG."
        ]
      },
      "review-python-basics": {
        "title": "Revisión de Fundamentos de Python",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de Python, debes repasar lo que has aprendido sobre ellos.",
          "En esta página de revisión, revisarás cómo trabajar con cadenas, funciones, operadores de comparación y más."
        ]
      },
      "quiz-python-basics": {
        "title": "Cuestionario de Fundamentos de Python",
        "intro": [
          "Pon a prueba lo que has aprendido sobre fundamentos de Python con este cuestionario."
        ]
      },
      "lecture-python-installation": {
        "title": "Installing Python and Running Code Locally",
        "intro": [
          "In these lessons, you will learn how to install Python on your local device and run code locally."
        ]
      },
      "review-python-installation": {
        "title": "Python Installation Review",
        "intro": [
          "Before you are quizzed on working with Python locally, you should review the concepts covered in the lessons."
        ]
      },
      "quiz-python-installation": {
        "title": "Python Installation Quiz",
        "intro": [
          "Test what you've learned about installing Python locally with this quiz."
        ]
      },
      "lecture-working-with-loops-and-sequences": {
        "title": "Trabajar con Bucles y Secuencias",
        "intro": [
          "Learn about working with loops and sequences in these lessons."
        ]
      },
      "workshop-pin-extractor": {
        "title": "Construir un extractor de pines",
        "intro": [
          "En este taller construirás una función para extraer pines secretos ocultos en poemas."
        ]
      },
      "lab-number-pattern-generator": {
        "title": "Construir un Generador de Patrones Numéricos",
        "intro": [
          "En este laboratorio construirás un generador de patrones numéricos."
        ]
      },
      "review-loops-and-sequences": {
        "title": "Revisión de Bucles y Secuencias",
        "intro": [
          "Antes de que te pregunten sobre bucles y secuencias, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos alrededor de bucles, listas, tuplas y algunos de sus métodos comunes."
        ]
      },
      "quiz-loops-and-sequences": {
        "title": "Cuestionario de Bucles y Secuencias",
        "intro": [
          "Pon a prueba lo que has aprendido sobre bucles y secuencias en Python con este cuestionario."
        ]
      },
      "lecture-working-with-dictionaries-and-sets": {
        "title": "Trabajar con Diccionarios y Conjuntos",
        "intro": [
          "Aprende a trabajar con diccionarios y conjuntos en estas lecciones."
        ]
      },
      "lecture-working-with-modules": {
        "title": "Trabajando con Módulos",
        "intro": ["Aprende a trabajar con módulos en estas lecciones."]
      },
      "workshop-medical-data-validator": {
        "title": "Crear un Validador de Datos Médicos",
        "intro": [
          "En este taller, practicarás trabajando con diccionarios y conjuntos al validar una colección de datos médicos."
        ]
      },
      "review-dictionaries-and-sets": {
        "title": "Revisión de Diccionarios y Conjuntos",
        "intro": [
          "Antes de que te pregunten sobre diccionarios y conjuntos, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos sobre diccionarios, conjuntos y cómo importar módulos."
        ]
      },
      "quiz-dictionaries-and-sets": {
        "title": "Cuestionario sobre Diccionarios y Conjuntos",
        "intro": [
          "Pon a prueba lo que has aprendido sobre diccionarios y conjuntos en Python con este cuestionario."
        ]
      },
      "lab-user-configuration-manager": {
        "title": "Crear un Administrador de Configuración de Usuarios",
        "intro": [
          "En este laboratorio, practicarás trabajando con diccionarios en Python."
        ]
      },
      "lecture-understanding-error-handling": {
        "title": "Comprender el Manejo de Errores",
        "intro": [
          "En estas lecciones, aprenderás sobre el manejo de errores en Python. Aprenderás sobre los diferentes tipos de errores, algunas buenas prácticas de depuración, qué son las excepciones y cómo manejarlas."
        ]
      },
      "lab-isbn-validator": {
        "title": "Depurar un Validador de ISBN",
        "intro": [
          "En este laboratorio, comenzarás con una aplicación con errores y necesitarás depurar y corregir los errores hasta que funcione correctamente."
        ]
      },
      "review-error-handling": {
        "title": "Revisión de Manejo de Errores",
        "intro": [
          "Antes de que te pregunten sobre el manejo de errores, debes repasar lo que has aprendido al respecto."
        ]
      },
      "quiz-error-handling": {
        "title": "Cuestionario sobre Manejo de Errores",
        "intro": [
          "Pon a prueba lo que has aprendido sobre el Manejo de Errores en Python con este cuestionario."
        ]
      },
      "lecture-classes-and-objects": {
        "title": "Clases y Objetos",
        "intro": ["Learn about classes and objects in these lessons."]
      },
      "workshop-musical-instrument-inventory": {
        "title": "Construir un Inventario de Instrumentos Musicales",
        "intro": [
          "En este taller, aprenderás sobre clases, objetos y métodos en Python al construir un simple inventario de instrumentos musicales."
        ]
      },
      "lab-planet-class": {
        "title": "Construir una clase de planeta.",
        "intro": [
          "En este laboratorio, crearás una clase que representa un planeta."
        ]
      },
      "workshop-email-simulator": {
        "title": "Construir un Simulador de Correo Electrónico",
        "intro": [
          "En este taller implementarás clases y objetos construyendo un simulador de correo electrónico que simula enviar, recibir y gestionar correos entre diferentes usuarios."
        ]
      },
      "review-classes-and-objects": {
        "title": "Revisión de Clases y Objetos",
        "intro": [
          "Antes de que te pregunten sobre clases y objetos, deberías repasar lo que has aprendido sobre ellos.",
          "Abre esta página para repasar conceptos como cómo funcionan las clases, qué son los objetos, métodos, atributos, métodos especiales y más."
        ]
      },
      "quiz-classes-and-objects": {
        "title": "Cuestionario de Clases y Objetos",
        "intro": [
          "Pon a prueba lo que has aprendido sobre clases y objetos en Python con este cuestionario."
        ]
      },
      "lab-budget-app": {
        "title": "Construir una Aplicación de Presupuesto",
        "intro": [
          "En este laboratorio, construirás una aplicación de presupuesto y practicarás creando una clase y métodos para esa clase."
        ]
      },
      "lecture-understanding-object-oriented-programming-and-encapsulation": {
        "title": "Comprender la Programación Orientada a Objetos y la Encapsulación",
        "intro": [
          "Learn about understanding object oriented programming and encapsulation in these lessons."
        ]
      },
      "workshop-salary-tracker": {
        "title": "Construir un Rastreador de Salario",
        "intro": [
          "En este taller, practicarás la encapsulación, propiedades y otros conceptos de POO construyendo un sistema de rastreo de salarios para empleados."
        ]
      },
      "lab-game-character-stats": {
        "title": "Construir un Rastreador de Estadísticas de Personajes de Juego",
        "intro": [
          "En este laboratorio, construirás un personaje de juego con diferentes estadísticas utilizando programación orientada a objetos."
        ]
      },
      "lecture-understanding-inheritance-and-polymorphism": {
        "title": "Comprensión de la Herencia y el Polimorfismo",
        "intro": [
          "Learn about understanding inheritance and polymorphism in these lessons."
        ]
      },
      "workshop-media-catalogue": {
        "title": "Construir un Catálogo de Medios",
        "intro": [
          "En este taller, crearás una aplicación de catálogo de medios utilizando principios de programación orientada a objetos."
        ]
      },
      "lecture-understanding-abstraction": {
        "title": "Comprensión de la Abstracción",
        "intro": ["Learn about understanding abstraction in these lessons."]
      },
      "workshop-discount-calculator": {
        "title": "Construir un Calculador de Descuentos.",
        "intro": [
          "En este taller crearás un calculador de precios flexibles de descuento a través de clases base abstractas, lo que permite aplicar múltiples algoritmos de descuento de manera intercambiable sin modificar la lógica principal."
        ]
      },
      "lab-player-interface": {
        "title": "Construir una Interfaz de Jugador.",
        "intro": [
          "En este laboratorio, utilizarás el módulo <code>abc</code> para crear una interfaz de jugador."
        ]
      },
      "review-object-oriented-programming": {
        "title": "Revisión de Programación Orientada a Objetos",
        "intro": [
          "Antes de que te cuestionen sobre programación orientada a objetos, deberías repasar lo que has aprendido al respecto."
        ]
      },
      "quiz-object-oriented-programming": {
        "title": "Cuestionario de Programación Orientada a Objetos",
        "intro": [
          "Pon a prueba lo que has aprendido sobre programación orientada a objetos en Python con este cuestionario."
        ]
      },
      "lab-polygon-area-calculator": {
        "title": "Construir un Calculador de Área de Polígonos",
        "intro": [
          "En este laboratorio, utilizarás programación orientada a objetos para calcular las áreas de diferentes polígonos como los cuadrados y rectángulos."
        ]
      },
      "lecture-working-with-common-data-structures": {
        "title": "Trabajar con Estructuras de Datos Comunes",
        "intro": [
          "Learn about working with common data structures in these lessons."
        ]
      },
      "workshop-linked-list-class": {
        "title": "Construir una Lista Enlazada",
        "intro": [
          "En este taller, practicarás trabajando con estructuras de datos construyendo una lista enlazada."
        ]
      },
      "review-data-structures": {
        "title": "Revisión de Estructuras de Datos",
        "intro": [
          "Antes de que te pregunten sobre estructuras de datos, deberías repasar lo que has aprendido sobre ellas.",
          "Abre esta página para repasar conceptos como las diferentes estructuras de datos, algoritmos, complejidad de tiempo y espacio, y notación big O."
        ]
      },
      "quiz-data-structures": {
        "title": "Cuestionario de Estructuras de Datos",
        "intro": [
          "Pon a prueba lo que has aprendido sobre estructuras de datos en Python con este cuestionario."
        ]
      },
      "lab-hash-table": {
        "title": "Construir una Tabla Hash",
        "intro": [
          "Una tabla hash es una estructura de datos que se utiliza para almacenar pares clave-valor y está optimizada para búsquedas rápidas.",
          "En este laboratorio, utilizarás tus conocimientos sobre estructuras de datos para construir una tabla hash."
        ]
      },
      "lecture-searching-and-sorting-algorithms": {
        "title": "Algoritmos de Búsqueda y Ordenamiento",
        "intro": [
          "Aprende sobre los algoritmos fundamentales de búsqueda y ordenamiento, incluyendo la búsqueda lineal, la búsqueda binaria y el ordenamiento por fusión.",
          "Estas lecciones cubren implementaciones de algoritmos, análisis de complejidad de tiempo y espacio, y el paradigma de programación de dividir y conquistar."
        ]
      },
      "workshop-binary-search": {
        "title": "Implementar el Algoritmo de Búsqueda Binaria",
        "intro": [
          "El algoritmo de búsqueda binaria es un algoritmo de búsqueda utilizado para encontrar un elemento objetivo en una lista ordenada.",
          "En este taller, implementarás el algoritmo de búsqueda binaria y devolverás el camino que tomó para encontrar el objetivo o devolverás 'Valor no encontrado'."
        ]
      },
      "lab-bisection-method": {
        "title": "Implementar el Método de Bisección",
        "intro": [
          "En este laboratorio, implementarás el método de bisección para encontrar la raíz cuadrada de un número."
        ]
      },
      "workshop-merge-sort": {
        "title": "Implementar el Algoritmo de Orden por Fusión",
        "intro": [
          "El algoritmo de orden por fusión es un algoritmo de ordenación basado en el principio de dividir y conquistar.",
          "En este taller, implementarás el algoritmo de orden por fusión para ordenar una lista de números aleatorios."
        ]
      },
      "lab-quicksort": {
        "title": "Implementar el Algoritmo Quicksort",
        "intro": [
          "En este laboratorio, implementarás el algoritmo Quicksort para ordenar una lista de enteros."
        ]
      },
      "lab-selection-sort": {
        "title": "Implementar el Algoritmo de Ordenación por Selección",
        "intro": [
          "En este laboratorio, implementarás el algoritmo de ordenación por selección."
        ]
      },
      "lab-luhn-algorithm": {
        "title": "Implementar el Algoritmo de Luhn",
        "intro": [
          "En este laboratorio, implementarás el algoritmo de Luhn para validar números de identificación como números de tarjetas de crédito."
        ]
      },
      "review-searching-and-sorting-algorithms": {
        "title": "Revisión de Algoritmos de Búsqueda y Ordenamiento",
        "intro": [
          "Antes de que te pregunten sobre algoritmos de búsqueda y ordenamiento, deberías repasar lo que has aprendido sobre ellos."
        ]
      },
      "quiz-searching-and-sorting-algorithms": {
        "title": "Cuestionario de Algoritmos de Búsqueda y Ordenamiento",
        "intro": [
          "Pon a prueba lo que has aprendido sobre algoritmos de búsqueda y ordenamiento en Python con este cuestionario."
        ]
      },
      "lab-tower-of-hanoi": {
        "title": "Implementar el Algoritmo de la Torre de Hanói",
        "intro": [
          "En este laboratorio, implementarás un algoritmo para resolver el puzzle de la Torre de Hanói."
        ]
      },
      "lecture-understanding-graphs-and-trees": {
        "title": "Comprender Gráficos y Árboles",
        "intro": [
          "En esta lección, aprenderás sobre estructuras de datos fundamentales como gráficos, árboles y sus aplicaciones prácticas en ciencias de la computación."
        ]
      },
      "workshop-shortest-path-algorithm": {
        "title": "Implementar el Algoritmo de Ruta más Corta.",
        "intro": [
          "En este taller implementarás un algoritmo para encontrar la ruta más corta entre dos nodos en un grafo."
        ]
      },
      "lab-adjacency-list-to-matrix-converter": {
        "title": "Construir un Convertidor de Lista de Adyacencia a Matriz",
        "intro": [
          "En este laboratorio, implementarás una función que convierte una representación de lista de adyacencia de un gráfico en una representación de matriz de adyacencia."
        ]
      },
      "workshop-breadth-first-search": {
        "title": "Implementar el Algoritmo de Búsqueda en Amplitud",
        "intro": [
          "En este taller, utilizarás el algoritmo de búsqueda en amplitud para generar todas las combinaciones válidas de paréntesis."
        ]
      },
      "lab-depth-first-search": {
        "title": "Implementar el Algoritmo de Búsqueda en Profundidad",
        "intro": [
          "En este laboratorio, implementarás el Algoritmo de Búsqueda en Profundidad."
        ]
      },
      "lab-n-queens-problem": {
        "title": "Implementar el Problema de las N Reinas",
        "intro": [
          "En este laboratorio, implementarás una solución para el problema de las N Reinas."
        ]
      },
      "review-graphs-and-trees": {
        "title": "Revisión de Gráficos y Árboles",
        "intro": [
          "Antes de que te pregunten sobre gráficos y árboles, deberías repasar lo que has aprendido sobre ellos."
        ]
      },
      "quiz-graphs-and-trees": {
        "title": "Cuestionario de Gráficos y Árboles",
        "intro": [
          "Pon a prueba lo que has aprendido sobre gráficos y árboles en Python con este cuestionario."
        ]
      },
      "lecture-understanding-dynamic-programming": {
        "title": "Comprender la Programación Dinámica",
        "intro": [
          "En esta lección, aprenderás sobre la programación dinámica, una técnica algorítmica utilizada para resolver problemas complejos de manera eficiente dividiéndolos en subproblemas más simples."
        ]
      },
      "lab-nth-fibonacci-number": {
        "title": "Construir un Calculador del N-ésimo Número de Fibonacci",
        "intro": [
          "En este laboratorio, implementarás un calculador de secuencia de Fibonacci utilizando un enfoque de programación dinámica."
        ]
      },
      "review-dynamic-programming": {
        "title": "Revisión de Programación Dinámica",
        "intro": [
          "Antes de que te pregunten sobre programación dinámica, deberías repasar lo que has aprendido al respecto."
        ]
      },
      "quiz-dynamic-programming": {
        "title": "Cuestionario de Programación Dinámica",
        "intro": [
          "Pon a prueba lo que has aprendido sobre programación dinámica en python con este cuestionario."
        ]
      },
      "review-python": {
        "title": "Revisión de Python",
        "intro": [
          "Revisa los conceptos de Python para prepararte para el próximo examen."
        ]
      },
      "exam-python-certification": {
        "title": "Examen de Certificación de Python",
        "intro": ["Aprueba este examen para obtener tu Certificación de Python"]
      }
    }
  },
  "relational-databases-v9": {
    "title": "Certificación en Bases de Datos Relacionales",
    "intro": [
      "Este curso te enseña los fundamentos de las bases de datos relacionales.",
      "Para obtener tu Certificación en Bases de Datos Relacionales:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Aprueba el examen de Certificación en Bases de Datos Relacionales."
    ],
    "chapters": {
      "relational-databases": "Bases de Datos Relacionales",
      "relational-databases-certification-exam": "Examen de certificación en bases de datos relacionales."
    },
    "modules": {
      "code-editors": "Editores de Código",
      "bash-fundamentals": "Fundamentos de Bash",
      "sql-and-postgresql": "SQL y PostgreSQL",
      "lab-celestial-bodies-database": "Construir una Base de Datos de Cuerpos Celestes",
      "bash-scripting": "Scripting Bash",
      "sql-and-bash": "SQL y Bash",
      "lab-world-cup-database": "Construir una Base de Datos de la Copa del Mundo",
      "lab-salon-appointment-scheduler": "Construir un Programador de Citas para el Salón",
      "git": "Git",
      "lab-periodic-table-database": "Construir una Base de Datos de la Tabla Periódica",
      "lab-number-guessing-game": "Construir un Juego de Adivinanzas Numéricas",
      "review-relational-databases": "Revisión de Bases de Datos Relacionales",
      "relational-databases-certification-exam": "Examen de Certificación en Bases de Datos Relacionales"
    },
    "blocks": {
      "lecture-working-with-code-editors-and-ides": {
        "title": "Trabajar con Editores de Código e IDEs",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con editores de código e IDEs. Aprenderás varios conceptos sobre el editor de código más popular, VS Code, como su instalación, cómo crear un proyecto en él, atajos de teclado y extensiones."
        ]
      },
      "lecture-understanding-the-command-line-and-working-with-bash": {
        "title": "Comprender la Línea de Comandos y Trabajar con Bash",
        "intro": [
          "Aprende sobre la Línea de Comandos y Trabajar con Bash en estas lecciones."
        ]
      },
      "workshop-bash-boilerplate": {
        "title": "Construir un Boilerplate",
        "intro": [
          "La terminal te permite enviar comandos de texto a tu computadora que pueden manipular el sistema de archivos, ejecutar programas, automatizar tareas y mucho más.",
          "En este taller de 170 lecciones, aprenderás comandos de terminal creando un boilerplate de sitio web utilizando solo la línea de comandos."
        ]
      },
      "review-bash-commands": {
        "title": "Revisión de Comandos Bash",
        "intro": [
          "Revisa los conceptos de Comandos Bash para prepararte para el próximo cuestionario."
        ]
      },
      "quiz-bash-commands": {
        "title": "Cuestionario de Comandos Bash",
        "intro": [
          "Pon a prueba lo que has aprendido sobre los comandos Bash con este cuestionario."
        ]
      },
      "lecture-working-with-relational-databases": {
        "title": "Trabajando con Bases de Datos Relacionales",
        "intro": [
          "Aprende cómo trabajar con Bases de Datos Relacionales en estas lecciones."
        ]
      },
      "workshop-database-of-video-game-characters": {
        "title": "Construir una Base de Datos de Personajes de Videojuegos",
        "intro": [
          "Una base de datos relacional organiza datos en tablas que están vinculadas entre sí a través de relaciones.",
          "En este taller de 165 lecciones, aprenderás los fundamentos de una base de datos relacional creando una base de datos de PostgreSQL llenada con personajes de videojuegos."
        ]
      },
      "review-sql-and-postgresql": {
        "title": "Revisión de SQL y PostgreSQL",
        "intro": [
          "Revisar conceptos de SQL y PostgreSQL para prepararse para el próximo examen."
        ]
      },
      "quiz-sql-and-postgresql": {
        "title": "Prueba de SQL y PostgreSQL",
        "intro": [
          "Pon a prueba lo que has aprendido sobre SQL y PostgreSQL con esta prueba."
        ]
      },
      "lab-celestial-bodies-database": {
        "title": "Construir una Base de Datos de Cuerpos Celestes",
        "intro": [
          "Para este proyecto, construirás una base de datos de cuerpos celestes utilizando PostgreSQL."
        ]
      },
      "lecture-understanding-bash-scripting": {
        "title": "Comprender el Scripting Bash",
        "intro": ["Aprende sobre el scripting Bash en estas lecciones."]
      },
      "workshop-bash-five-programs": {
        "title": "Construir Cinco Programas",
        "intro": [
          "Los scripts Bash combinan comandos de terminal y lógica en programas que pueden ejecutar o automatizar tareas, y mucho más.",
          "En este taller de 220 lecciones, aprenderás más comandos del terminal y cómo usarlos dentro de scripts Bash creando cinco pequeños programas."
        ]
      },
      "review-bash-scripting": {
        "title": "Revisión de Scripting Bash",
        "intro": [
          "Revisa los conceptos de scripting Bash que has aprendido para prepararte para el próximo examen."
        ]
      },
      "quiz-bash-scripting": {
        "title": "Prueba de Scripting Bash",
        "intro": [
          "Pon a prueba lo que has aprendido sobre scripting Bash en esta prueba."
        ]
      },
      "lecture-working-with-sql": {
        "title": "Trabajando Con SQL",
        "intro": [
          "En estas lecciones, aprenderás sobre inyección SQL, normalización y el problema N+1."
        ]
      },
      "workshop-sql-student-database-part-1": {
        "title": "Construir una Base de Datos de Estudiantes: Parte 1",
        "intro": [
          "SQL, o Lenguaje de Consulta Estructurado, es el lenguaje para comunicarse con una base de datos relacional.",
          "En este taller de 140 lecciones, crearás un script Bash que usa SQL para ingresar información sobre tus estudiantes de ciencias de la computación en PostgreSQL."
        ]
      },
      "workshop-sql-student-database-part-2": {
        "title": "Construir una Base de Datos de Estudiantes: Parte 2",
        "intro": [
          "Los comandos de unión SQL se utilizan para combinar información de varias tablas en una base de datos relacional",
          "En este taller de 140 lecciones, completarás tu base de datos de estudiantes mientras profundizas en los comandos SQL."
        ]
      },
      "workshop-kitty-ipsum-translator": {
        "title": "Construir un Traductor de Kitty Ipsum",
        "intro": [
          "Hay más en los comandos Bash de lo que podrías pensar.",
          "En este taller de 140 lecciones, aprenderás algunos comandos más complejos y los detalles de cómo funcionan los comandos."
        ]
      },
      "workshop-bike-rental-shop": {
        "title": "Construir una Tienda de Alquiler de Bicicletas",
        "intro": [
          "En este taller de 210 lecciones, construirás un programa interactivo de Bash que almacena información de alquiler para tu tienda de alquiler de bicicletas usando PostgreSQL."
        ]
      },
      "review-bash-and-sql": {
        "title": "Revisión de Bash y SQL",
        "intro": [
          "Revisa los conceptos de Bash y SQL para prepararte para el próximo examen."
        ]
      },
      "quiz-bash-and-sql": {
        "title": "Prueba de Bash y SQL",
        "intro": [
          "Pon a prueba lo que has aprendido en esta prueba sobre Bash y SQL."
        ]
      },
      "lab-world-cup-database": {
        "title": "Construir una Base de Datos de la Copa del Mundo",
        "intro": [
          "Para este proyecto, crearás un script Bash que ingresa información de los juegos de la Copa del Mundo en PostgreSQL, y luego consultará la base de datos para obtener estadísticas útiles."
        ]
      },
      "lab-salon-appointment-scheduler": {
        "title": "Construir un Programador de Citas para Salones",
        "intro": [
          "Para este laboratorio, crearás un programa interactivo de Bash que utiliza PostgreSQL para rastrear a los clientes y citas de tu salón."
        ]
      },
      "lecture-working-with-nano": {
        "title": "Trabajando Con Nano",
        "intro": ["Aprende sobre Nano en esta lección."]
      },
      "workshop-castle": {
        "title": "Construir un Castillo",
        "intro": [
          "Nano es un programa que te permite editar archivos directamente en la terminal.",
          "En este taller de 40 lecciones, aprenderás a editar archivos en el terminal con Nano mientras construyes un castillo."
        ]
      },
      "lecture-introduction-to-git-and-github": {
        "title": "Introducción a Git y GitHub",
        "intro": ["Aprende cómo trabajar con Git y GitHub en estas lecciones."]
      },
      "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
        "title": "Trabajando Con Revisiones de Código, Ramas, Implementación y CI/CD",
        "intro": [
          "Aprende sobre revisiones de código, ramas, implementación y CI/CD en estas lecciones."
        ]
      },
      "workshop-sql-reference-object": {
        "title": "Construir un Objeto de Referencia SQL",
        "intro": [
          "Git es un sistema de control de versiones que realiza un seguimiento de todos los cambios que haces en tu base de código.",
          "En este taller de 240 lecciones, aprenderás cómo Git realiza el seguimiento de tu código creando un objeto que contiene comandos SQL comúnmente utilizados."
        ]
      },
      "review-git": {
        "title": "Revisión de Git",
        "intro": [
          "Revisa los conceptos de Git para prepararte para el próximo examen."
        ]
      },
      "quiz-git": {
        "title": "Prueba de Git",
        "intro": [
          "Pon a prueba lo que has aprendido sobre Git con esta prueba."
        ]
      },
      "lab-periodic-table-database": {
        "title": "Construir una Base de Datos de la Tabla Periódica",
        "intro": [
          "Para este laboratorio, crearás un script Bash para obtener información sobre elementos químicos de una base de datos de la tabla periódica."
        ]
      },
      "lab-number-guessing-game": {
        "title": "Construir un Juego de Adivinanzas de Números",
        "intro": [
          "Para este laboratorio, utilizarás scripting Bash, PostgreSQL y Git para crear un juego de adivinanzas de números que se ejecuta en el terminal y guarda información del usuario."
        ]
      },
      "review-relational-databases": {
        "title": "Revisión de Bases de Datos Relacionales",
        "intro": [
          "Revisa los conceptos de bases de datos relacionales para prepararte para el examen."
        ]
      },
      "exam-relational-databases-certification": {
        "title": "Examen de Certificación en Bases de Datos Relacionales",
        "intro": [
          "Aprueba este examen para obtener tu Certificación en Bases de Datos Relacionales"
        ]
      }
    }
  },
  "back-end-development-and-apis-v9": {
    "title": "Back-End Development and APIs Certification",
    "intro": [
      "This course teaches you the fundamentals of back-end development and APIs.",
      "To earn your Back-End Development and APIs Certification:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Pass the Back-End Development and APIs Certification exam."
    ],
    "note": "",
    "chapters": {
      "back-end-development-and-apis": "Back-End Development and APIs",
      "back-end-development-and-apis-certification-exam": "Back-End Development and APIs Certification Exam"
    },
    "modules": {
      "introduction-to-nodejs": "Introducción a Node.js",
      "nodejs-core-modules": "Módulos principales de Node.js",
      "node-package-manager": "Gestor de Paquetes de Node",
      "http-and-the-web-standards-model": "HTTP y el Modelo de Estándares Web",
      "rest-api-and-web-services": "API REST y Servicios Web",
      "introduction-to-express": "Introducción a Express",
      "express-middleware": "Middleware de Express",
      "error-handling-in-express": "Manejo de Errores en Express",
      "websockets": "WebSockets",
      "node-and-sql": "Node y SQL",
      "security-and-privacy": "Seguridad y Privacidad",
      "authentication": "Autenticación",
      "tooling-and-deployment": "Herramientas e Implementación",
      "back-end-development-and-apis-certification-exam": "Back-End Development and APIs Certification Exam"
    },
    "module-intros": {
      "introduction-to-nodejs": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderá lo básico del trabajo con Node.js."
        ]
      },
      "nodejs-core-modules": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre módulos principales y comunes de Node.js incluyendo fs, os, path y más. Luego podrás practicar lo que has aprendido a través de talleres y laboratorios y probar tus conocimientos a través de un breve cuestionario."
        ]
      },
      "node-package-manager": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, se te presentará el Gestor de Paquetes de Node, que los desarrolladores utilizan para gestionar dependencias de proyectos y scripts. Luego, practicarás lo que has aprendido a través de talleres y laboratorios y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "http-and-the-web-standards-model": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre HTTP (Protocolo de Transferencia de Hipertexto) y otros conceptos importantes incluyendo el modelo de solicitud-respuesta, códigos de respuesta comunes, DNS, TCP/IP y más. Luego, practicarás lo que has aprendido a través de un taller de construir tu propio servidor web y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "rest-api-and-web-services": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre la API REST (Interface de Programación de Aplicaciones de Transferencia de Estado Representacional) y cómo funcionan los microservicios. Luego, realizarás un breve cuestionario para poner a prueba tus conocimientos."
        ]
      },
      "introduction-to-express": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, se te presentará Express.js, que es un marco utilizado para construir APIs RESTful. Después practicarás tus habilidades a través de talleres y laboratorios y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "express-middleware": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre middleware en Express.js, que se usa para manejar solicitudes y respuestas entre el cliente y el servidor. Luego practicarás tus habilidades a través de un taller y laboratorio y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "error-handling-in-express": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre cómo funciona el manejo de errores, la depuración y las comprobaciones de salud en Express.js. Después practicarás lo que has aprendido en un laboratorio y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "websockets": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, se te presentará a WebSockets, que es un protocolo utilizado para la comunicación en tiempo real con el cliente y el servidor. Luego practicarás lo que has aprendido en laboratorios y talleres y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "node-and-sql": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, practicarás la construcción de aplicaciones con Node y SQL. Luego realizarás un breve cuestionario para poner a prueba tus conocimientos."
        ]
      },
      "security-and-privacy": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre las diferencias entre seguridad y privacidad, así como otros conceptos incluyendo CSPs, Políticas de Permisos, PII, trabajar con CORS y más. Luego realizarás un breve cuestionario para poner a prueba tus conocimientos."
        ]
      },
      "authentication": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "En este módulo, aprenderás sobre cómo funciona la autenticación en aplicaciones web junto con otros conceptos importantes incluyendo JWTs, CSRFs, Passport, Helmet, criptografía y cifrado, y más. Luego practicarás lo que has aprendido en laboratorios y talleres y pondrás a prueba tus conocimientos con un breve cuestionario."
        ]
      },
      "tooling-and-deployment": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "In this module, you will learn about common tools used in the industry for deploying your full-stack applications. Then you will take a short quiz to test your knowledge."
        ]
      },
      "back-end-development-and-apis-certification-exam": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "Pass this exam to earn your Back-End Development and APIs Certification."
        ]
      }
    },
    "blocks": {
      "lecture-working-with-nodejs-and-event-driven-architecture": {
        "title": "Trabajando con NodeJS y la arquitectura controlada por eventos",
        "intro": [
          "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the back-end."
        ]
      },
      "review-node-js-intro": {
        "title": "Revisión de introducción de NodeJS",
        "intro": [
          "Revise lo básico de NodeJS para prepararse para el próximo cuestionario."
        ]
      },
      "quiz-node-js-intro": {
        "title": "Cuestionario de introducción a NodeJS",
        "intro": [
          "Pon a prueba lo que has aprendido sobre NodeJS con este cuestionario."
        ]
      },
      "lecture-working-with-node-core-modules": {
        "title": "Trabajar con los módulos principales de Node.js.",
        "intro": [
          "Aprende sobre los módulos principales de Node.js, como fs, búfer, stream, path y más, para que entiendas qué te ofrece Node por defecto para construir aplicaciones eficientes sin depender de bibliotecas de terceros."
        ]
      },
      "review-node-js-core-modules": {
        "title": "Revisión de los módulos principales de Node JS",
        "intro": [
          "Revisa los conceptos de los módulos principales de Node JS para prepararte para el próximo cuestionario."
        ]
      },
      "quiz-node-js-core-modules": {
        "title": "NodeJS Core Modules Quiz",
        "intro": [
          "Test what you've learned about Node.js core modules with this quiz."
        ]
      },
      "lecture-introduction-to-npm": {
        "title": "Introducción a npm",
        "intro": [
          "En estas lecciones aprenderás sobre npm y cómo puede ayudarte a gestionar las dependencias de tu proyecto."
        ]
      },
      "lecture-working-with-npm-scripts": {
        "title": "Trabajando con npm Scripts",
        "intro": [
          "Aprende sobre scripts de npm, publicar paquetes en el registro de npm, y trabajar con CommonJS y módulos ES. Estas lecciones cubren herramientas esenciales de desarrollo de Node.js y sistemas de módulos."
        ]
      },
      "review-npm": {
        "title": "NPM Review",
        "intro": ["Review npm concepts to prepare for the upcoming quiz."]
      },
      "quiz-npm": {
        "title": "NPM Quiz",
        "intro": ["Test what you have learned about npm in this quiz."]
      },
      "lecture-understanding-how-http-dns-tcpip-work": {
        "title": "Comprender cómo funcionan HTTP, DNS y TCP/IP.",
        "intro": [
          "Aprende los conceptos fundamentales de cómo funciona Internet, enfocándote en HTTP, DNS y TCP/IP."
        ]
      },
      "lecture-understanding-the-http-request-response-model": {
        "title": "Entendiendo el Modelo de Solicitud-Respuesta HTTP",
        "intro": [
          "Aprende los fundamentos de cómo funciona la comunicación web a través del modelo de solicitud-respuesta HTTP, explora diferentes tipos de recursos web y respuestas, y comprende cómo los formularios manejan el envío de datos utilizando varios métodos HTTP."
        ]
      },
      "quiz-http-and-the-web-standards-model": {
        "title": "HTTP and the Web Standards Model Quiz",
        "intro": [
          "Test your knowledge of HTTP, DNS, TCP/IP, the request-response model, and web standards.",
          ""
        ]
      },
      "lecture-understanding-rest-api-and-web-services": {
        "title": "Understanding the REST API and Web Services",
        "intro": [
          "In these lessons, you will learn about REST APIs and web services, and how they allow different applications to communicate with each other over the internet."
        ]
      },
      "lecture-working-with-express": {
        "title": "Working with Express",
        "intro": [
          "In these lessons, you will learn what Express.js is, why developers use it for building web servers and APIs, and how to set up a basic Express application with routes and request handling."
        ]
      },
      "lecture-understanding-routing-in-express-js": {
        "title": "Understanding Routing in ExpressJS",
        "intro": [
          "Understanding Routing in ExpressJS",
          "In these lessons, you will learn about routing in ExpressJS, which is how you define the different endpoints of your web application and how they respond to client requests."
        ]
      },
      "lecture-understanding-error-handling-and-health-checks": {
        "title": "Understanding Error Handling and Health Checks",
        "intro": [
          "In these lessons, you'll learn about error handling and health checks in Express."
        ]
      },
      "quiz-error-handling-in-express": {
        "title": "Error Handling in Express Quiz",
        "intro": [
          "Test your knowledge of HTTP status codes, error handling, debugging, logging, health checks, and graceful shutdowns."
        ]
      },
      "exam-back-end-development-and-apis-certification": {
        "title": "Back-End Development and APIs Certification Exam",
        "intro": [
          "Pass this exam to earn your Back-End Development and APIs Certification"
        ]
      }
    }
  },
  "full-stack-developer-v9": {
    "title": "Certified Full-Stack Developer Curriculum",
    "intro": [
      "This certification represents the culmination of your full-stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.",
      "To qualify for the exam, you must earn the certifications below. Pass the exam to earn your Full-Stack Developer Certification."
    ],
    "note": "",
    "chapters": {
      "certified-full-stack-developer-exam": "Certified Full-Stack Developer Exam"
    },
    "modules": {
      "certified-full-stack-developer-exam": "Certified Full-Stack Developer Exam"
    },
    "module-intros": {
      "certified-full-stack-developer-exam": {
        "note": "Próximamente a finales de 2026",
        "intro": [
          "Este examen evaluará lo que has aprendido a lo largo de las seis certificaciones previas."
        ]
      }
    },
    "blocks": {
      "exam-certified-full-stack-developer": {
        "title": "Certified Full-Stack Developer Exam",
        "intro": ["Pass this exam to become a Certified Full-Stack Developer."]
      }
    }
  },
  "html-forms-and-tables": {
    "title": "Learn HTML Forms and Tables",
    "summary": [
      "Learn how to build accessible forms and data tables with semantic HTML."
    ],
    "intro": [
      "Learn how to build accessible forms and data tables with semantic HTML.",
      "Practice structuring inputs, labels, and tabular data so everyone can navigate and submit information confidently."
    ],
    "blocks": {
      "lecture-working-with-forms": {
        "title": "Working with Forms",
        "intro": [
          "In these lessons, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states."
        ]
      },
      "workshop-hotel-feedback-form": {
        "title": "Build a Hotel Feedback Form",
        "intro": [
          "In this workshop, you will build a Hotel Feedback Form.",
          "You will practice working with labels, inputs, fieldsets, legends, textareas and buttons."
        ]
      },
      "lecture-working-with-tables": {
        "title": "Working with Tables",
        "intro": [
          "In these lessons, you will learn about HTML tables, how to create them, and when to use them."
        ]
      },
      "workshop-final-exams-table": {
        "title": "Build a Final Exams Table",
        "intro": [
          "In this workshop, you will practice working with HTML tables by building a table of final exams."
        ]
      },
      "lab-book-catalog-table": {
        "title": "Build a Book Catalog Table",
        "intro": [
          "In this lab, you'll review HTML tables by building a book information table.",
          "You'll practice the different table components like the <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>tr</code>, and <code>td</code> elements."
        ]
      },
      "lecture-working-with-html-tools": {
        "title": "Working with HTML Tools",
        "intro": [
          "In these lectures, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools."
        ]
      },
      "lab-survey-form": {
        "title": "Build a Survey Form",
        "intro": [
          "In this lab, you'll review HTML forms by creating a survey form.",
          "You'll practice working with the <code>label</code> element, the different <code>input</code> elements, the <code>required</code> attribute, and more. "
        ]
      },
      "review-html-tables-and-forms": {
        "title": "HTML Tables and Forms Review",
        "intro": [
          "Before you are quizzed on HTML forms, tables and tools, you first need to review the concepts.",
          "Open up this page to review the <code>table</code>, <code>input</code>, and <code>button</code> elements as well as commonly used tools like the HTML validator and more."
        ]
      },
      "quiz-html-tables-and-forms": {
        "title": "HTML Tables and Forms Quiz",
        "intro": [
          "The following quiz will test your knowledge of HTML tables, forms and commonly used HTML tools.",
          "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
        ]
      }
    }
  },
  "a1-professional-spanish": {
    "title": "Certificación de Español Profesional A1 (Beta)",
    "note": "This certification is currently in active development. New content will be published as our instructional design team develops it. Once all content is available, we will release the certification exam.",
    "intro": [
      "Este curso te enseña los fundamentos de español en el nivel A1 del Marco Común Europeo de Referencia (MCER), con lecciones enfocadas en entornos profesionales. Cada módulo está dividido en secciones:",
      "- Una sección de calentamiento para una revisión rápida.",
      "- Secciones de aprendizaje con nuevo vocabulario y gramática.",
      "- Secciones de práctica para verificar tu comprensión y habilidades de escritura.",
      "- Una sección de repaso con clave de gramática y vocabulario."
    ],
    "chapters": {
      "es-a1-chapter-welcome-to-a1-professional-spanish": "Bienvenido a Español Profesional A1.",
      "es-a1-chapter-spanish-fundamentals": "Fundamentos del Español.",
      "es-a1-chapter-greetings-and-introductions": "Saludos e Introducciones.",
      "es-a1-chapter-basic-personal-details": "Detalles Personales Básicos.",
      "es-a1-chapter-describing-company-and-people": "Describir una empresa y su personal."
    },
    "modules": {
      "es-a1-module-introduction-and-certification-overview": "Introducción y Resumen de la Certificación.",
      "es-a1-module-letters-sounds-and-first-numbers": "Letras, Sonidos y Primeros Números.",
      "es-a1-module-greetings-and-farewells": "Saludos y Despedidas.",
      "es-a1-module-introducing-yourself": "Presentándote",
      "es-a1-module-first-questions": "Primeras Preguntas",
      "es-a1-module-numbers-10-to-29": "Números del 10 al 29.",
      "es-a1-module-sharing-your-personal-details": "Compartiendo Tus Detalles Personales.",
      "es-a1-module-numbers-30-to-100": "Números del 30 al 100.",
      "es-a1-module-describing-a-company": "Describir una empresa.",
      "es-a1-module-describing-people-at-work": "Describir personas en el trabajo."
    },
    "module-intros": {
      "es-a1-module-describing-a-company": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, aprenderás a identificar y describir información básica sobre una empresa, como nombre, sitio web, ubicación, número de empleados y departamentos."
        ]
      },
      "es-a1-module-describing-people-at-work": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, aprenderás descripciones en tercera persona y cómo identificar correcciones simples en conversaciones cortas."
        ]
      }
    },
    "blocks": {
      "es-a1-warm-up-greetings-and-farewells-basics": {
        "title": "Fundamentos de Saludos y Despedidas.",
        "intro": ["", ""]
      },
      "es-a1-learn-greetings-during-the-day": {
        "title": "Saludos Durante el Día.",
        "intro": ["", ""]
      },
      "es-a1-practice-greetings-and-farewells": {
        "title": "Práctica de Saludos y Despedidas.",
        "intro": ["", ""]
      },
      "es-a1-review-greetings-and-farewells": {
        "title": "Revisión de Saludos y Despedidas.",
        "intro": ["", ""]
      },
      "es-a1-quiz-greetings-and-farewells": {
        "title": "Cuestionario de Saludos y Despedidas.",
        "intro": ["", ""]
      },
      "es-a1-learn-certification-introduction": {
        "title": "Introducción a la Certificación.",
        "intro": ["", ""]
      },
      "es-a1-learn-alphabet-and-accents": {
        "title": "Alfabeto y Acentos.",
        "intro": ["", ""]
      },
      "es-a1-learn-punctuation": {
        "title": "Puntuación.",
        "intro": ["", ""]
      },
      "es-a1-quiz-spanish-fundamentals": {
        "title": "Cuestionario de Fundamentos del Español.",
        "intro": ["", ""]
      },
      "es-a1-warm-up-introducing-yourself-basics": {
        "title": "Conceptos Básicos de Presentación Personal",
        "intro": ["", ""]
      },
      "es-a1-learn-meet-luna": {
        "title": "Conoce a Luna",
        "intro": ["", ""]
      },
      "es-a1-learn-meet-mateo": {
        "title": "Conoce a Mateo",
        "intro": ["", ""]
      },
      "es-a1-learn-meet-julieta": {
        "title": "Conoce a Julieta",
        "intro": ["", ""]
      },
      "es-a1-practice-introducing-yourself": {
        "title": "Práctica de Presentación Personal",
        "intro": ["", ""]
      },
      "es-a1-review-introducing-yourself": {
        "title": "Revisión de Presentación Personal",
        "intro": ["", ""]
      },
      "es-a1-quiz-introducing-yourself": {
        "title": "Cuestionario de Presentación Personal",
        "intro": ["", ""]
      },
      "es-a1-warm-up-first-questions-basics": {
        "title": "Conceptos Básicos de Primeras Preguntas",
        "intro": ["", ""]
      },
      "es-a1-learn-meet-angela-and-basti": {
        "title": "Conoce a Angela y Basti",
        "intro": ["", ""]
      },
      "es-a1-practice-first-questions": {
        "title": "Práctica de Primeras Preguntas",
        "intro": ["", ""]
      },
      "es-a1-review-first-questions": {
        "title": "Revisión de Primeras Preguntas",
        "intro": ["", ""]
      },
      "es-a1-quiz-first-questions": {
        "title": "Cuestionario de Primeras Preguntas",
        "intro": ["", ""]
      },
      "es-a1-learn-vowels": {
        "title": "Vocales",
        "intro": ["", ""]
      },
      "es-a1-learn-consonants-and-special-characters": {
        "title": "Consonantes y caracteres especiales.",
        "intro": ["", ""]
      },
      "es-a1-review-spanish-fundamentals": {
        "title": "Revisión de Fundamentos del Español.",
        "intro": ["", ""]
      },
      "es-a1-practice-the-alphabet": {
        "title": "La práctica del alfabeto español.",
        "intro": ["", ""]
      },
      "es-a1-warm-up-remember-first-numbers": {
        "title": "Recordar los Primeros Números.",
        "intro": ["", ""]
      },
      "es-a1-learn-numbers-10-to-29": {
        "title": "Números del 10 al 29.",
        "intro": ["", ""]
      },
      "es-a1-practice-using-numbers-10-to-29": {
        "title": "Usando los Números del 10 al 29.",
        "intro": ["", ""]
      },
      "es-a1-review-numbers-10-to-29": {
        "title": "Revisión de Números del 10 al 29.",
        "intro": ["", ""]
      },
      "es-a1-quiz-numbers-10-to-29": {
        "title": "Cuestionario de Números del 10 al 29.",
        "intro": ["", ""]
      },
      "es-a1-warm-up-getting-ready-to-share-personal-details": {
        "title": "Preparándose para Compartir Detalles Personales.",
        "intro": ["", ""]
      },
      "es-a1-learn-basic-personal-information": {
        "title": "Información Personal Básica.",
        "intro": ["", ""]
      },
      "es-a1-learn-contact-information-and-spelling": {
        "title": "Información de Contacto y Ortografía.",
        "intro": ["", ""]
      },
      "es-a1-practice-personal-details-in-action": {
        "title": "Detalles Personales en Acción.",
        "intro": ["", ""]
      },
      "es-a1-review-sharing-your-personal-details": {
        "title": "Revisión de Compartir Tus Detalles Personales.",
        "intro": ["", ""]
      },
      "es-a1-quiz-sharing-your-personal-details": {
        "title": "Cuestionario de Compartir Tus Detalles Personales.",
        "intro": ["", ""]
      },
      "es-a1-learn-the-first-ten-numbers": {
        "title": "Los Primeros Diez Números.",
        "intro": ["", ""]
      },
      "es-a1-practice-the-first-ten-numbers": {
        "title": "Práctica de los Primeros Diez Números.",
        "intro": ["", ""]
      },
      "es-a1-learn-numbers-30-to-60": {
        "title": "Números del 30 al 60.",
        "intro": ["", ""]
      },
      "es-a1-warm-up-describing-a-company-basics": {
        "title": "Conceptos básicos para describir una empresa.",
        "intro": ["", ""]
      },
      "es-a1-learn-numbers-61-to-100": {
        "title": "Números del 61 al 100.",
        "intro": ["", ""]
      },
      "es-a1-practice-using-the-first-100-numbers": {
        "title": "Usando los primeros 100 números.",
        "intro": ["", ""]
      },
      "es-a1-review-first-100-numbers": {
        "title": "Repaso de los primeros 100 números.",
        "intro": ["", ""]
      },
      "es-a1-quiz-numbers-30-to-100": {
        "title": "Cuestionario de Números del 30 al 100.",
        "intro": ["", ""]
      },
      "es-a1-learn-what-the-company-does": {
        "title": "Qué hace la empresa.",
        "intro": ["", ""]
      },
      "es-a1-learn-asking-about-a-company": {
        "title": "Preguntar sobre una empresa.",
        "intro": ["", ""]
      },
      "es-a1-practice-company-profile": {
        "title": "Perfil de la empresa.",
        "intro": ["", ""]
      },
      "es-a1-review-talking-about-a-company": {
        "title": "Hablar sobre una empresa.",
        "intro": ["", ""]
      },
      "es-a1-quiz-describing-a-company": {
        "title": "Cuestionario sobre describir una empresa.",
        "intro": ["", ""]
      },
      "es-a1-warm-up-describing-people-at-work-basics": {
        "title": "Conceptos básicos para describir personas en el trabajo.",
        "intro": ["", ""]
      },
      "es-a1-learn-mini-biographies": {
        "title": "Mini biografías.",
        "intro": ["", ""]
      },
      "es-a1-practice-asking-about-mini-biographies": {
        "title": "Preguntar sobre mini biografías.",
        "intro": ["", ""]
      },
      "es-a1-learn-short-workplace-profile": {
        "title": "Perfil laboral breve.",
        "intro": ["", ""]
      },
      "es-a1-practice-asking-about-short-workplace-profiles": {
        "title": "Preguntar sobre perfiles laborales breves.",
        "intro": ["", ""]
      },
      "es-a1-review-describing-people-at-work": {
        "title": "Describir personas en el trabajo.",
        "intro": ["", ""]
      },
      "es-a1-quiz-describing-people-at-work": {
        "title": "Describir personas en el trabajo.",
        "intro": ["", ""]
      },
      "es-a1-learn-talking-about-colleagues": {
        "title": "Talking About Colleagues",
        "intro": ["", ""]
      },
      "es-a1-practice-what-departments-do": {
        "title": "What Departments Do",
        "intro": ["", ""]
      }
    }
  },
  "responsive-web-design-v9": {
    "title": "Certificación en Diseño Web Adaptativo",
    "intro": [
      "Este curso enseña los fundamentos del HTML and CSS, incluyendo diseño moderno, accesibilidad y desarrollo web responsivo. Construirás proyectos prácticos y adquirirás las habilidades para crear páginas web profesionales y fáciles de usar.",
      "Para obtener tu Certificación en Diseño Web Adaptativo:",
      "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.",
      "- Aprueba el examen de certificación en Diseño Web Adaptativo."
    ],
    "chapters": {
      "html": "HTML",
      "computers": "Computadoras.",
      "css": "CSS",
      "responsive-web-design-certification-exam": "Examen de Certificación en Diseño Web Adaptativo"
    },
    "modules": {
      "basic-html": "HTML Básico",
      "semantic-html": "HTML Semántico",
      "html-forms-and-tables": "Formularios y Tablas",
      "lab-survey-form": "Crea un Formulario de Encuesta",
      "html-and-accessibility": "Accesibilidad",
      "review-html": "Revisión de HTML",
      "computer-basics": "Conceptos Básicos de Computadora",
      "basic-css": "CSS Básico",
      "design-for-developers": "Diseño",
      "absolute-and-relative-units": "Unidades Absolutas y Relativas",
      "pseudo-classes-and-elements": "Pseudo Clases y Elementos",
      "css-colors": "Colores",
      "styling-forms": "Estilizar Formularios",
      "css-box-model": "El Modelo de Caja",
      "css-flexbox": "Flexbox",
      "lab-page-of-playing-cards": "Construye una Página de Baraja de Cartas",
      "css-typography": "Tipografía",
      "css-and-accessibility": "Accesibilidad",
      "css-positioning": "Posicionamiento",
      "attribute-selectors": "Selectores de Atributos",
      "lab-book-inventory-app": "Construir una Aplicación de Inventario de Libros",
      "responsive-design": "Diseño Responsivo",
      "lab-technical-documentation-page": "Construir una Página de Documentación Técnica",
      "css-variables": "Variables",
      "css-grid": "Cuadrícula",
      "lab-product-landing-page": "Cree una Página de Destino de Producto",
      "css-animations": "Animaciones",
      "review-css": "Revisión de CSS",
      "responsive-web-design-certification-exam": "Examen de Certificación en Diseño Web Adaptativo"
    },
    "blocks": {
      "workshop-curriculum-outline": {
        "title": "Construir un Esquema Curricular",
        "intro": [
          "¡Bienvenido a freeCodeCamp!",
          "Este taller servirá como tu introducción a HTML y la codificación en general. Aprenderás sobre los elementos de títulos y párrafos."
        ]
      },
      "lab-debug-camperbots-profile-page": {
        "title": "Depurar la Página de Perfil de Camperbot",
        "intro": [
          "Camperbot también está aprendiendo a programar y necesita ayuda con su HTML.",
          "En este laboratorio, ayudarás a Camperbot a encontrar y corregir los errores en su código."
        ]
      },
      "lecture-understanding-html-attributes": {
        "title": "Entendiendo los Atributos HTML",
        "intro": [
          "En estas conferencias, aprenderás más sobre HTML (HyperText Markup Language), un lenguaje de marcado para crear páginas web.",
          "Aprenderás sobre el papel de HTML en la web y qué son los atributos de HTML."
        ]
      },
      "lab-debug-pet-adoption-page": {
        "title": "Depurar una Página de Adopción de Mascotas",
        "intro": [
          "En este laboratorio, necesitarás encontrar y corregir los errores en esta página de adopción de mascotas."
        ]
      },
      "lecture-understanding-the-html-boilerplate": {
        "title": "Entendiendo el Código Básico de HTML",
        "intro": [
          "En estas conferencias, aprenderás sobre el código HTML básico que es una plantilla prefabricada para tus páginas web.",
          "Aprenderás cómo trabajar con el elemento <code>link</code>, el elemento <code>meta</code> y más."
        ]
      },
      "workshop-cat-photo-app": {
        "title": "Crear una Aplicación de Fotos de Gatos",
        "intro": [
          "HTML significa lenguaje de marcado de hipertexto y representa el contenido y la estructura de una página web.",
          "En este taller, aprenderás cómo trabajar con elementos básicos de HTML, tales como títulos, párrafos, imágenes, enlaces y listas."
        ]
      },
      "lab-recipe-page": {
        "title": "Construir una Página de Recetas",
        "intro": [
          "En este laboratorio, revisarás los conceptos básicos de HTML creando una página web de tu receta favorita. Crearás un código HTML estándar y trabajarás con títulos, listas, imágenes y más."
        ]
      },
      "lecture-html-fundamentals": {
        "title": "Fundamentos de HTML",
        "intro": [
          "En estas conferencias, aprenderás sobre los fundamentos de HTML como el elemento <code>div</code>, los atributos <code>id</code> y <code>class</code>, el código HTML, las entidades HTML y más."
        ]
      },
      "workshop-bookstore-page": {
        "title": "Construir una Página de Librería.",
        "intro": [
          "En este taller, practicarás trabajando con clases, identificadores y el elemento <code>div</code> mediante la construcción de una página de librería."
        ]
      },
      "lecture-understanding-how-html-affects-seo": {
        "title": "Entender cómo HTML Afecta a SEO",
        "intro": [
          "En estas conferencias, aprenderás cómo tu código HTML impacta en la optimización para motores de búsqueda."
        ]
      },
      "lab-travel-agency-page": {
        "title": "Crear una Página de Agencia de Viajes",
        "intro": [
          "En este laboratorio, revisarás trabajando con los fundamentos de HTML creando una página web para una agencia de viajes. Trabajarás con imágenes, el elemento <code>figure</code>, el elemento <code>figcaption</code>, el elemento <code>ancla</code>, y más."
        ]
      },
      "lecture-working-with-audio-and-video-elements": {
        "title": "Trabajar con Elementos de Audio y Video",
        "intro": [
          "En estas conferencias, aprenderás a trabajar con los elementos <code>audio</code> y <code>video</code>."
        ]
      },
      "workshop-html-music-player": {
        "title": "Build an HTML Music Player",
        "intro": [
          "In this workshop, you'll use HTML to create a basic music player.",
          "This project will cover the <code>audio</code> element, the audio player setup, and more."
        ]
      },
      "workshop-html-video-player": {
        "title": "Construye un Reproductor de Video HTML",
        "intro": [
          "En este taller, usarás HTML para crear un reproductor de vídeo básico.",
          "Este proyecto cubrirá el elemento <code>video</code>, la configuración del reproductor de vídeo y más."
        ]
      },
      "lab-html-audio-and-video-player": {
        "title": "Construir un Reproductor de Audio y Video HTML",
        "intro": [
          "En este laboratorio, construirás un reproductor de audio y video HTML usando los elementos <code>video</code> y <code>audio</code> con controles y atributos de origen."
        ]
      },
      "lecture-working-with-images-and-svgs": {
        "title": "Trabajando con Imágenes y SVGs",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con SVGs y sobre técnicas para optimizar tus imágenes."
        ]
      },
      "workshop-build-a-heart-icon": {
        "title": "Construir un Ícono de Corazón",
        "intro": [
          "En este taller, practicarás trabajando con SVGs construyendo un ícono de corazón."
        ]
      },
      "lecture-working-with-media": {
        "title": "Trabajando con el Elemento <code>iframe</code>",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con el elemento <code>iframe</code>, el cual se utiliza para incrustar un sitio externo en tu página web."
        ]
      },
      "workshop-build-a-video-display-using-iframe": {
        "title": "Construir una Pantalla de Video Usando iframe",
        "intro": [
          "En este taller, aprenderás a trabajar con el elemento <code>iframe</code> construyendo una pantalla de video."
        ]
      },
      "lab-video-compilation-page": {
        "title": "Construir una Página de Compilación de Video",
        "intro": [
          "En este laboratorio, crearás una página web de compilación de videos. Practicarás trabajando con el elemento <code>iframe</code>."
        ]
      },
      "lecture-working-with-links": {
        "title": "Trabajando con Enlaces",
        "intro": [
          "En estas lecciones, aprenderás sobre los enlaces, el atributo <code>target</code>, diferentes estados de enlace, rutas absolutas y relativas, y más."
        ]
      },
      "review-basic-html": {
        "title": "Revisión Básica de HTML",
        "intro": [
          "Antes de que te evaluen sobre el conocimiento de HTML que has adquirido hasta ahora, primero debes repasar los conceptos.",
          "Abre esta página para revisar el código básico de HTML, los elementos <code>audio</code> y <code>video</code>, los diferentes valores del atributo <code>target</code> y más."
        ]
      },
      "quiz-basic-html": {
        "title": "Cuestionario de HTML Básico",
        "intro": [
          "El siguiente cuestionario pondrá a prueba tus conocimientos de los conceptos básicos de HTML que has aprendido hasta ahora.",
          "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas."
        ]
      },
      "lecture-importance-of-semantic-html": {
        "title": "Importancia del HTML Semántico",
        "intro": [
          "En estas lecciones, aprenderás sobre el HTML semántico y por qué debería ser importante, sobre los elementos semánticos, en qué se diferencia del HTML de presentación, y más."
        ]
      },
      "lecture-understanding-nuanced-semantic-elements": {
        "title": "Comprender Elementos Semánticos Matizados",
        "intro": [
          "En estas lecciones, aprenderás cuándo deberías usar ciertos elementos semánticos como el elemento <code>em</code> sobre el elemento <code>i</code>, las listas de descripción, y más."
        ]
      },
      "workshop-major-browsers-list": {
        "title": "Construir una Lista de Navegadores Web Principales.",
        "intro": [
          "En este taller, construirás una lista de descripciones y trabajarás con los elementos <code>dl</code>, <code>dt</code> y <code>dd</code>."
        ]
      },
      "lecture-working-with-text-and-time-semantic-elements": {
        "title": "Trabajando con Elementos Semánticos de Texto y Tiempo",
        "intro": [
          "En esta lección, aprenderás sobre la importancia de la semántica en la transmisión de significado para contenido relacionado con texto y tiempo, incluyendo los elementos <code>time</code>, <code>blockquote</code> y más."
        ]
      },
      "workshop-quincys-job-tips": {
        "title": "Crea la página de consejos de empleo de Quincy.",
        "intro": [
          "En este taller, practicarás trabajando con HTML semántico utilizando los elementos <code>q</code>, <code>blockquote</code> y <code>cite</code>."
        ]
      },
      "lecture-working-with-specialized-semantic-elements": {
        "title": "Trabajando con Elementos Semánticos Especializados",
        "intro": [
          "En esta lección, aprenderás sobre elementos semánticos especializados como los elementos <code>u</code>, <code>s</code>, <code>code</code>, y más."
        ]
      },
      "workshop-blog-page": {
        "title": "Construir una Página de Blog de Gatos",
        "intro": [
          "En este taller, construirás una página de blog utilizando solo HTML con elementos semánticos como los elementos <code>main</code>, <code>nav</code>, <code>article</code> y <code>footer</code>."
        ]
      },
      "lab-event-hub": {
        "title": "Construir un Centro de Eventos",
        "intro": [
          "En este laboratorio, construirás un centro de eventos y revisarás elementos semánticos como <code>header</code>, <code>nav</code>, <code>article</code>, y más."
        ]
      },
      "review-semantic-html": {
        "title": "Revisión de HTML Semántico",
        "intro": [
          "Antes de que te evaluen sobre el HTML semántico, primero debes repasar los conceptos.",
          "Abre esta página para revisar el <code>em</code>, <code>strong</code>, <code>blockquote</code>, <code>address</code> y más elementos de HTML semántico."
        ]
      },
      "quiz-semantic-html": {
        "title": "Cuestionario de HTML Semántico",
        "intro": [
          "El siguiente cuestionario pondrá a prueba tu conocimiento sobre los conceptos de HTML semántico que has aprendido hasta ahora.",
          "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas."
        ]
      },
      "lecture-working-with-forms": {
        "title": "Trabajando con Formularios",
        "intro": [
          "En estas lecciones, aprenderás sobre formularios, el papel de las etiquetas, las entradas y los botones en la creación de formularios, la validación de formularios del lado del cliente, y los estados de los formularios."
        ]
      },
      "workshop-hotel-feedback-form": {
        "title": "Construir un Formulario de Retroalimentación Hotelera",
        "intro": [
          "En este taller, construirás un formulario de retroalimentación hotelera.",
          "Practicarás trabajando con etiquetas, entradas, grupos de campos, leyendas, áreas de texto y botones."
        ]
      },
      "lecture-working-with-tables": {
        "title": "Trabajando con Tablas",
        "intro": [
          "En estas lecciones, aprenderás sobre tablas HTML, cómo crearlas y cuándo usarlas."
        ]
      },
      "workshop-final-exams-table": {
        "title": "Construir una Mesa de Exámenes Finales",
        "intro": [
          "En este taller, practicarás trabajando con tablas HTML construyendo una tabla de exámenes finales."
        ]
      },
      "lab-book-catalog-table": {
        "title": "Construir una Tabla de Catálogo de Libros",
        "intro": [
          "En este laboratorio, revisarás tablas HTML construyendo una tabla de información de libros.",
          "Practicarás los diferentes componentes de la tabla, como los elementos <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>tr</code> y <code>td</code>."
        ]
      },
      "lecture-working-with-html-tools": {
        "title": "Trabajando con Herramientas HTML",
        "intro": [
          "En estas lecciones, aprenderás sobre herramientas HTML y cómo te permiten escribir mejor código. Estas herramientas incluyen validadores HTML, el Inspector del DOM y las herramientas para desarrolladores del navegador."
        ]
      },
      "review-html-tables-and-forms": {
        "title": "Revisión de Tablas y Formularios HTML",
        "intro": [
          "Antes de que te evaluen sobre formularios HTML, tablas y herramientas, primero debes repasar los conceptos.",
          "Abre esta página para revisar los elementos <code>table</code>, <code>input</code> y <code>button</code>, así como herramientas de uso común como el validador HTML y más."
        ]
      },
      "quiz-html-tables-and-forms": {
        "title": "Cuestionario de Tablas y Formularios HTML",
        "intro": [
          "El siguiente cuestionario pondrá a prueba tus conocimientos sobre tablas HTML, formularios y herramientas HTML de uso común.",
          "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas."
        ]
      },
      "lab-survey-form": {
        "title": "Construir un Formulario de Encuesta",
        "intro": [
          "En este laboratorio, revisarás formularios HTML al crear un formulario de encuesta.",
          "Practicarás trabajando con el elemento <code>label</code>, los diferentes elementos <code>input</code>, el atributo <code>required</code> y más."
        ]
      },
      "lecture-importance-of-accessibility-and-good-html-structure": {
        "title": "Importancia de la Accesibilidad y Buena Estructura HTML",
        "intro": [
          "En estas lecciones, aprenderás sobre la accesibilidad y su importancia, herramientas asistivas para personas con discapacidades, atributos HTML que te permiten crear sitios web inclusivos, mejores prácticas de accesibilidad y mucho más."
        ]
      },
      "workshop-debug-coding-journey-blog-page": {
        "title": "Depurar una Página del Blog de Viajes de Codificación",
        "intro": [
          "En este taller, depurarás y corregirás errores de accesibilidad en una página de blog de codificación."
        ]
      },
      "lecture-accessible-tables-forms": {
        "title": "Trabajando con Tablas y Formularios Accesibles",
        "intro": [
          "En estas lecciones, aprenderás cómo crear tablas y formularios accesibles."
        ]
      },
      "workshop-tech-conference-schedule": {
        "title": "Construir una Tabla de Horarios de Conferencias Tecnológicas",
        "intro": [
          "En este taller, construirás una tabla de horarios de conferencias tecnológicas accesible."
        ]
      },
      "lab-debug-donation-form": {
        "title": "Depura un formulario de donación",
        "intro": [
          "En este laboratorio depurarás un formulario de donación corrigiendo errores de sintaxis HTML y mejorando la accesibilidad."
        ]
      },
      "lecture-introduction-to-aria": {
        "title": "Introducción a ARIA",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con roles ARIA."
        ]
      },
      "workshop-accessible-audio-controller": {
        "title": "Cree un control de audio accesible.",
        "intro": [
          "En este taller, practicarás HTML accesible construyendo un control de audio que utilice el atributo <code>aria-labelledby</code>."
        ]
      },
      "lecture-accessible-media-elements": {
        "title": "Trabajando con Elementos de Medios Accesibles",
        "intro": [
          "En estas lecciones, aprenderás cómo crear enlaces accesibles, contenidos de audio y video."
        ]
      },
      "lab-checkout-page": {
        "title": "Construir una Página de Pago",
        "intro": [
          "En este laboratorio, crearás una página de pago accesible.",
          "Practicarás conceptos como atributos <code>alt</code> y roles ARIA."
        ]
      },
      "lab-movie-review-page": {
        "title": "Diseñar una Página de Reseña de Películas",
        "intro": [
          "En este laboratorio, crearás una página de reseña de películas.",
          "Practicarás conceptos como HTML semántico, atributos <code>alt</code>, listas accesibles, y ocultar contenido decorativo de los lectores de pantalla usando <code>aria-hidden</code>."
        ]
      },
      "lab-multimedia-player": {
        "title": "Construir un Reproductor Multimedia",
        "intro": [
          "En este laboratorio, construirás un reproductor multimedia.",
          "Practicarás trabajando con los elementos <code>audio</code> y <code>video</code>, el atributo <code>controls</code>, y el atributo <code>aria-label</code>."
        ]
      },
      "review-html-accessibility": {
        "title": "Revisión de Accesibilidad HTML",
        "intro": [
          "Antes de que te evaluen sobre HTML y accesibilidad, primero debes repasar los conceptos.",
          "Abre esta página para revisar conceptos incluidos <code>aria-hidden</code>, <code>aria-describedby</code>, <code>tabindex</code> y más."
        ]
      },
      "quiz-html-accessibility": {
        "title": "Cuestionario de Accesibilidad HTML",
        "intro": [
          "El siguiente cuestionario pondrá a prueba tu conocimiento sobre los conceptos de accesibilidad que has aprendido hasta ahora.",
          "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas."
        ]
      },
      "review-html": {
        "title": "Revisión de HTML",
        "intro": [
          "Antes de que tomes el examen de preparación de HTML, primero debes revisar los conceptos enseñados en los módulos previos.",
          "Abre esta página para revisar conceptos relacionados a los básicos de los elementos HTML, HTML semántico, tablas, formularios y accesibilidad."
        ]
      },
      "lecture-understanding-computer-internet-and-tooling-basics": {
        "title": "Comprendiendo los Conceptos Básicos de Computadoras, Internet y Herramientas",
        "intro": [
          "En estas lecciones, aprenderás sobre la computadora, sus diferentes partes, los proveedores de servicios de Internet (ISPs), y las herramientas que utilizan los desarrolladores profesionales."
        ]
      },
      "lecture-working-with-file-systems": {
        "title": "Trabajando con Sistemas de Archivos",
        "intro": [
          "En estas lecciones, aprenderás cómo trabajar con sistemas de archivos y carpetas en tus computadoras. Aprenderás a crear, mover y borrar archivos y carpetas, las mejores prácticas para nombrar y organizar archivos y carpetas, y más."
        ]
      },
      "lecture-browsing-the-web-effectively": {
        "title": "Navegar por la Web de Forma Efectiva",
        "intro": [
          "En estas lecciones, aprenderás qué son los sitios web, los motores de búsqueda, y los navegadores web, los diferentes navegadores disponibles, y cómo sacar el mejor provecho de un motor de búsqueda."
        ]
      },
      "review-computer-basics": {
        "title": "Revisión de Conceptos Básicos de Computadora",
        "intro": [
          "Antes de que te evaluen sobre conceptos básicos de computadoras e Internet, primero debes repasar.",
          "Abre esta página para revisar conceptos como RAM, proveedores de servicios de Internet, navegadores web comunes, motores de búsqueda y más."
        ]
      },
      "quiz-computer-basics": {
        "title": "Cuestionario de Conceptos Básicos de Computadora",
        "intro": [
          "Pon a prueba lo que has aprendido en este cuestionario de conocimientos básicos de computación."
        ]
      },
      "lecture-what-is-css": {
        "title": "¿Qué es CSS?",
        "intro": [
          "Las siguientes lecciones tratan sobre CSS. Aprenderás qué es CSS y cuál es su rol en la web, una regla de CSS y su anatomía, las tres maneras de escribir CSS y cuándo utilizar cada una, elementos en línea y en bloque, y mucho más."
        ]
      },
      "workshop-cafe-menu": {
        "title": "Diseñar un Menú de Cafetería",
        "intro": [
          "CSS le dice al navegador cómo mostrar tu página web. Puedes usar CSS para establecer el color, fuente, tamaño, y otros aspectos de los elementos HTML.",
          "En este taller, aprenderás CSS diseñando una página para un menú de cafetería."
        ]
      },
      "lab-business-card": {
        "title": "Diseñar una Tarjeta de Presentación",
        "intro": [
          "En este laboratorio, crearás una tarjeta de presentación y le darás estilo usando CSS.",
          "Practicarás propiedades de estilo como <code>color</code>, <code>font-size</code>, <code>text-align</code>, y más."
        ]
      },
      "lecture-css-specificity-the-cascade-algorithm-and-inheritance": {
        "title": "Especificidad de CSS, el Algoritmo en Cascada, y Herencia",
        "intro": [
          "En estas lecciones, aprenderás sobre la especificidad de CSS, los selectores comunes y sus especificidades, el algoritmo en cascada, la herencia, y más."
        ]
      },
      "review-basic-css": {
        "title": "Revisión de fundamentos de CSS",
        "intro": [
          "Antes de que te evaluen sobre conceptos básicos de CSS, primero debes repasar.",
          "Abre esta página para revisar conceptos incluidos <code>margin</code>, <code>padding</code>, combinadores CSS, especificidad CSS y más."
        ]
      },
      "quiz-basic-css": {
        "title": "Cuestionario sobre fundamentos de CSS",
        "intro": [
          "Pon a prueba lo que has aprendido en este cuestionario de conocimientos básicos de CSS."
        ]
      },
      "lecture-styling-lists-and-links": {
        "title": "Estilizando Listas y Enlaces",
        "intro": [
          "En estas lecciones, aprenderás las propiedades que necesitas saber para estilizar listas y enlaces de manera efectiva, incluyendo estados de enlace como <code>link</code>, <code>visited</code>, <code>hover</code>, y <code>active</code>."
        ]
      },
      "lab-stylized-to-do-list": {
        "title": "Construir una Lista de Tareas Estilizada",
        "intro": [
          "En este laboratorio, construirás una lista de tareas y aplicarás diferentes estilos a los enlaces.",
          "Practicarás propiedades de estilo como <code>text-decoration</code>, <code>list-style-type</code> y cómo cambiar estilos al pasar el mouse o hacer clic."
        ]
      },
      "lecture-working-with-backgrounds-and-borders": {
        "title": "Trabajando con Fondos y Bordes",
        "intro": [
          "En estas lecciones, aprenderás sobre las propiedades y los valores que necesitas saber para estilizar fondos y bordes de elementos, junto con las consideraciones de accesibilidad para los fondos."
        ]
      },
      "lab-blog-post-card": {
        "title": "Diseñar una Tarjeta de Publicación de Blog",
        "intro": [
          "En este laboratorio, diseñarás una tarjeta de publicación de blog utilizando HTML y CSS.",
          "Practicarás conceptos como <code>background-color</code>, <code>border-radius</code>, márgenes, rellenos y más."
        ]
      },
      "review-css-backgrounds-and-borders": {
        "title": "Revisión de Fondos de CSS, Enlaces y Bordes",
        "intro": [
          "Antes de que te pregunten sobre fondos y bordes de CSS, primero debes repasar.",
          "Abra esta página para revisar conceptos que incluyen la propiedad <code>background-image</code>, la propiedad <code>border</code> y más."
        ]
      },
      "quiz-css-backgrounds-and-borders": {
        "title": "Cuestionario de Fondos y Bordes de CSS",
        "intro": [
          "Pon a prueba lo que has aprendido en este cuestionario sobre fondos y bordes en CSS."
        ]
      },
      "lecture-user-interface-design-fundamentals": {
        "title": "Fundamentos del Diseño de Interfaces de Usuario",
        "intro": [
          "En estas lecciones, aprenderás sobre los fundamentos del diseño de interfaces de usuario (UI). Aprenderás los términos que necesitas conocer para comunicarte con los diseñadores, la jerarquía visual, el escalado, la alineación, los espacios en blanco y mucho más."
        ]
      },
      "lecture-user-centered-design": {
        "title": "Diseño Centrado en el Usuario",
        "intro": [
          "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar características orientadas al usuario como el modo oscuro, migas de pan, diálogos modales y mucho más. También aprenderás cómo realizar investigaciones de usuario, requisitos de usuario y pruebas."
        ]
      },
      "lecture-common-design-tools": {
        "title": "Herramientas de Diseño Comunes",
        "intro": [
          "En estas lecciones, aprenderás sobre las herramientas de diseño comunes que los desarrolladores deben conocer. También aprenderás sobre los briefings de diseño y cómo los desarrolladores trabajan con ellos."
        ]
      },
      "review-design-fundamentals": {
        "title": "Revisión de Fundamentos de Diseño",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de diseño que has aprendido hasta ahora, primero debes repasar.",
          "Abra esta página para revisar conceptos como el diseño centrado en el usuario, la escala, la alineación, una buena jerarquía visual y más."
        ]
      },
      "quiz-design-fundamentals": {
        "title": "Cuestionario de Fundamentos de Diseño",
        "intro": [
          "Pon a prueba lo que has aprendido en este cuestionario sobre los fundamentos del diseño de UI."
        ]
      },
      "lecture-working-with-relative-and-absolute-units": {
        "title": "Trabajar con Unidades Relativas y Absolutas",
        "intro": [
          "En estas lecciones, aprenderás sobre unidades relativas y absolutas, y cómo ambas impactan lo que ves en el navegador."
        ]
      },
      "lab-event-flyer-page": {
        "title": "Crear una Página de Volante de Evento",
        "intro": [
          "En este laboratorio, crearás una página de volante de evento.",
          "Practicarás la alineación de elementos utilizando CSS absoluto y relativo."
        ]
      },
      "review-css-relative-and-absolute-units": {
        "title": "Revisión de Unidades Relativas y Absolutas de CSS",
        "intro": [
          "Antes de que te pregunten sobre unidades relativas y absolutas, primero debes repasar.",
          "Abra esta página para revisar conceptos como porcentajes, <code>px</code>, <code>rem</code>, <code>em</code> y más."
        ]
      },
      "quiz-css-relative-and-absolute-units": {
        "title": "Cuestionario de Unidades Relativas y Absolutas de CSS",
        "intro": [
          "Pon a prueba lo que has aprendido en este cuestionario sobre unidades relativas y absolutas en CSS."
        ]
      },
      "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": {
        "title": "Trabajar con Pseudoclases y Pseudoelementos en CSS",
        "intro": [
          "En estas lecciones, aprenderás sobre pseudoclases y pseudoelementos, junto con sus ejemplos y cómo funcionan."
        ]
      },
      "workshop-greeting-card": {
        "title": "Diseña una Tarjeta de Felicitación",
        "intro": [
          "En las lecciones anteriores, aprendiste a trabajar con los diferentes tipos de pseudoclases.",
          "En este taller, tendrás la oportunidad de practicar lo que has aprendido diseñando una tarjeta de felicitación."
        ]
      },
      "workshop-parent-teacher-conference-form": {
        "title": "Diseñar un Formulario de Conferencia entre Padres y Profesores",
        "intro": [
          "En este taller, practicarás cómo estilizar los botones de radio con diferentes tipos de pseudo-selectores construyendo un formulario de conferencia entre padres y profesores.",
          "Practicarás conceptos que incluyen el selector de pseudo-elemento <code>::before</code>, la propiedad <code>transform</code>, y más."
        ]
      },
      "lab-job-application-form": {
        "title": "Construye un Formulario de Solicitud de Empleo",
        "intro": [
          "En este laboratorio, construirás un formulario de solicitud de empleo y le darás estilo utilizando pseudoclases.",
          "Practicarás conceptos como <code>:hover</code>, <code>:active</code>, <code>:focus</code> y más."
        ]
      },
      "review-css-pseudo-classes": {
        "title": "Revisión de Pseudoclases de CSS",
        "intro": [
          "Antes de que te pregunten sobre las pseudoclases y pseudoelementos de CSS, debes repasar lo que has aprendido sobre ellos.",
          "Abra esta página para revisar conceptos como los pseudoelementos <code>::before</code> y <code>::after</code>, así como las pseudoclases <code>:hover</code>, <code>:active</code> y más."
        ]
      },
      "quiz-css-pseudo-classes": {
        "title": "Cuestionario de Pseudoclases de CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre las pseudoclases CSS con este cuestionario."
        ]
      },
      "lecture-working-with-colors-in-css": {
        "title": "Trabajar con Colores en CSS",
        "intro": [
          "En estas lecciones, aprenderás sobre gradientes lineales y radiales, la teoría del color, diferentes tipos de colores como los nombrados, RGB, Hex y HSL. Aprenderás cómo funcionan estos colores y cuáles usar en casos específicos."
        ]
      },
      "workshop-colored-markers": {
        "title": "Construir un Conjunto de Marcadores de Colores",
        "intro": [
          "En este taller, crearás un conjunto de marcadores de colores. Practicarás diferentes formas de establecer valores de color y cómo emparejar colores entre sí."
        ]
      },
      "lab-colored-boxes": {
        "title": "Diseñar un Conjunto de Cajas de Colores",
        "intro": [
          "En este laboratorio, crearás una cuadrícula de color y practicarás agregando colores de fondo a los elementos de la cuadrícula usando códigos hexadecimales, RGB y nombres de colores predefinidos."
        ]
      },
      "review-css-colors": {
        "title": "Revisión de Colores CSS",
        "intro": [
          "Antes de que te pregunten sobre los colores CSS, debes repasar lo que has aprendido sobre ellos.",
          "Abra esta página para revisar conceptos como la función <code>rgb()</code>, la función <code>hsl()</code>, los <code>códigos hexadecimales</code> y más."
        ]
      },
      "quiz-css-colors": {
        "title": "Cuestionario de Colores CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre los colores CSS con este cuestionario."
        ]
      },
      "lecture-best-practices-for-styling-forms": {
        "title": "Mejores Prácticas para Aplicar Estilos a Formularios",
        "intro": [
          "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar formularios y los problemas que puedes encontrar al diseñar entradas especiales como <code>color</code> y <code>datetime-local</code>."
        ]
      },
      "workshop-registration-form": {
        "title": "Diseña un Formulario de Registro",
        "intro": [
          "En este taller, aprenderás a diseñar formularios HTML creando una página de registro. Aprenderás a controlar qué tipos de datos pueden ingresar las personas en tu formulario y algunas herramientas CSS nuevas para diseñar tu página."
        ]
      },
      "lab-contact-form": {
        "title": "Diseñar un Formulario de Contacto",
        "intro": [
          "En este laboratorio, diseñarás un formulario de contacto en HTML y le darás estilo usando CSS."
        ]
      },
      "workshop-game-settings-panel": {
        "title": "Construir un Panel de Configuración de Juego",
        "intro": [
          "En este taller, practicarás el estilo de las cajas de verificación mediante la construcción de un panel de configuración del juego."
        ]
      },
      "lab-feature-selection": {
        "title": "Diseñar una Página de Selección de Características",
        "intro": [
          "En este laboratorio, construirás una página de selección de características con casillas de verificación con estilo personalizado.",
          "Crearás tarjetas de características con etiquetas y casillas de verificación, luego darás estilo personalizado a las casillas de verificación."
        ]
      },
      "review-styling-forms": {
        "title": "Revisión de Estilos de Formularios",
        "intro": [
          "Antes de que te pregunten sobre cómo diseñar formularios, debes repasar lo que has aprendido.",
          "Abra esta página para revisar cómo diseñar entradas de formulario, trabajar con <code>appearance: none</code> y más."
        ]
      },
      "quiz-styling-forms": {
        "title": "Cuestionario de Estilo para Formularios",
        "intro": [
          "En este cuestionario, pondrás a prueba tu conocimiento de cómo estilizar formularios."
        ]
      },
      "lecture-working-with-css-transforms-overflow-and-filters": {
        "title": "Trabajando con Transformaciones CSS, Overflow, y Filtros",
        "intro": [
          "En estas lecciones, aprenderás a trabajar con transformaciones, desbordamientos y filtros CSS. También aprenderás sobre el modelo de caja y cómo funciona."
        ]
      },
      "workshop-rothko-painting": {
        "title": "Diseña un Cuadro de Rothko",
        "intro": [
          "Cada elemento HTML es su propio cuadro, con su propio espacio y borde. Esto se conoce como el modelo de cuadro.",
          "En este taller, utilizarás CSS y el modelo de caja para crear tus propias piezas de arte rectangulares estilo Rothko."
        ]
      },
      "lab-confidential-email-page": {
        "title": "Construye una Página de Correo Electrónico Confidencial",
        "intro": [
          "En este laboratorio, crearás una página web utilizando HTML y enmascararás el contenido mediante propiedades CSS."
        ]
      },
      "review-css-layout-and-effects": {
        "title": "Revisión de Diseños y Efectos CSS",
        "intro": [
          "Antes de que te examinen sobre diseños y efectos CSS, primero debes repasar.",
          "Abra esta página para revisar conceptos como la propiedad <code>transform</code>, el modelo de caja, la propiedad <code>overflow</code> y más."
        ]
      },
      "quiz-css-layout-and-effects": {
        "title": "Cuestionario sobre efectos y diseño CSS",
        "intro": [
          "En este cuestionario, pondrás a prueba tus conocimientos sobre el modelo de caja, las transformaciones, los filtros y el desbordamiento en CSS."
        ]
      },
      "lecture-working-with-css-flexbox": {
        "title": "Trabajar con CSS Flexbox",
        "intro": [
          "En estas lecciones, aprenderás cómo funciona CSS flexbox, sus propiedades y cuándo deberías usarlo."
        ]
      },
      "workshop-flexbox-photo-gallery": {
        "title": "Construir una Galería de Fotos Flexbox",
        "intro": [
          "En este taller, utilizarás Flexbox para crear una página web de galería de fotos responsiva."
        ]
      },
      "workshop-colorful-boxes": {
        "title": "Design a Set of Colorful Boxes",
        "intro": [
          "In this workshop, you will practice working with CSS flexbox by designing a set of colored boxes."
        ]
      },
      "lab-pricing-plans-layout": {
        "title": "Diseñar una Página de Diseño de Planes de Precios",
        "intro": [
          "En este laboratorio, utilizarás flexbox para crear un diseño de nivel común de tres tarjetas.",
          "Practicarás la alineación de elementos utilizando propiedades de flexbox como <code>flex</code>, <code>flex-grow</code>, <code>order</code> y más."
        ]
      },
      "review-css-flexbox": {
        "title": "Revisión de CSS Flexbox",
        "intro": [
          "Antes de que te examinen sobre CSS flexbox, debes repasar lo que has aprendido.",
          "Abra esta página para revisar conceptos como propiedades <code>flex-direction</code>, <code>justify-content</code>, <code>align-items</code>, <code>flex-wrap</code> y más."
        ]
      },
      "quiz-css-flexbox": {
        "title": "Cuestionario sobre CSS Flexbox",
        "intro": [
          "Pon a prueba lo que has aprendido sobre CSS flexbox con este cuestionario."
        ]
      },
      "lab-page-of-playing-cards": {
        "title": "Construir una Página de Naipes",
        "intro": [
          "En este laboratorio, utilizarás flexbox para crear una página web de naipes.",
          "Practicarás la alineación de elementos usando propiedades de flexbox como <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code> y más."
        ]
      },
      "lecture-working-with-css-fonts": {
        "title": "Trabajar con Fuentes CSS",
        "intro": [
          "En estas lecciones, aprenderás sobre la tipografía y sus mejores prácticas, fuentes y la propiedad <code>text-shadow</code>."
        ]
      },
      "workshop-nutritional-label": {
        "title": "Construir una Etiqueta Nutricional",
        "intro": [
          "La tipografía es el arte de diseñar un texto para que sea fácilmente legible y se adapte a su propósito.",
          "En este taller, utilizarás la tipografía para crear una página web con etiquetas nutricionales. Practicarás cómo aplicar estilo al texto, ajustar la altura de las líneas y posicionar el texto con CSS."
        ]
      },
      "lab-newspaper-article": {
        "title": "Construir un Artículo de Periódico",
        "intro": [
          "En este laboratorio, crearás una página de artículo de periódico utilizando HTML y CSS.",
          "Diseñarás las fuentes usando propiedades como <code>font-family</code>, <code>font-size</code>, <code>font-weight</code> y más."
        ]
      },
      "review-css-typography": {
        "title": "Revisión de Tipografía CSS",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de la tipografía, debes repasar lo que has aprendido.",
          "Abra esta página para revisar conceptos como fuentes web seguras, la propiedad <code>font-family</code> y más."
        ]
      },
      "quiz-css-typography": {
        "title": "Cuestionario de Tipografía CSS",
        "intro": [
          "Pon a prueba tus conocimientos de tipografía con este cuestionario."
        ]
      },
      "lecture-best-practices-for-accessibility-and-css": {
        "title": "Mejores Prácticas para la Accesibilidad y CSS",
        "intro": [
          "En estas lecciones, aprenderás sobre las mejores prácticas de accesibilidad en CSS y las herramientas para verificar un buen contraste de color en los sitios web."
        ]
      },
      "workshop-accessibility-quiz": {
        "title": "Crear una Página Web de Cuestionario",
        "intro": [
          "La accesibilidad es el proceso de hacer que tus páginas web sean utilizables para todos, incluidas las personas con discapacidades.",
          "En este taller, crearás una página web de cuestionario. Aprenderás herramientas de accesibilidad como atajos de teclado, los atributos ARIA y mejores prácticas de diseño."
        ]
      },
      "lab-tribute-page": {
        "title": "Construir una Página de Homenaje",
        "intro": [
          "En este laboratorio, crearás una página de homenaje a un tema de tu elección, ficticio o real."
        ]
      },
      "review-css-accessibility": {
        "title": "Revisión de Accesibilidad CSS",
        "intro": [
          "Antes de que te pregunte sobre CSS y accesibilidad, debes repasar lo que has aprendido.",
          "Abra esta página para revisar conceptos como herramientas de contraste de color y mejores prácticas de accesibilidad."
        ]
      },
      "quiz-css-accessibility": {
        "title": "Cuestionario de Accesibilidad CSS",
        "intro": [
          "En este cuestionario, probarás lo que has aprendido sobre cómo hacer que tus páginas web sean accesibles con CSS."
        ]
      },
      "lecture-understanding-how-to-work-with-floats-and-positioning-in-css": {
        "title": "Comprender Cómo Trabajar con Flotantes y Posicionamiento en CSS",
        "intro": [
          "En estas lecciones, aprenderás a usar el posicionamiento CSS y los flotantes. Aprenderás sobre el posicionamiento <code>absolute</code>, <code>relative</code>, <code>fixed</code> y <code>sticky</code>. También usarás la propiedad <code>z-index</code>."
        ]
      },
      "workshop-cat-painting": {
        "title": "Construye una Pintura de Gato",
        "intro": [
          "Dominar el posicionamiento CSS es esencial para crear diseños web visualmente atractivos y responsivos.",
          "En este taller, crearás una pintura de un gato. Aprenderás a trabajar con el posicionamiento absoluto, la propiedad <code>z-index</code> y la propiedad <code>transform</code>."
        ]
      },
      "lab-house-painting": {
        "title": "Construir una Pintura de Casa",
        "intro": [
          "En este laboratorio, construirás una pintura de casa usando CSS.",
          "Diseñarás elementos individuales de la casa y los posicionarás usando propiedades CSS como <code>position</code>, <code>top</code>, <code>left</code> y más."
        ]
      },
      "review-css-positioning": {
        "title": "Revisión del Posicionamiento en CSS",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos del posicionamiento CSS, debes repasar lo que has aprendido.",
          "Abre esta página para revisar conceptos como flotantes, posicionamiento relativo, posicionamiento absoluto y más."
        ]
      },
      "quiz-css-positioning": {
        "title": "Cuestionario de Posicionamiento CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre el posicionamiento CSS con este cuestionario."
        ]
      },
      "lecture-working-with-attribute-selectors": {
        "title": "Trabajar con los Selectores de Atributos",
        "intro": [
          "En estas conferencias, aprenderás sobre los selectores de atributos y cómo usarlos para dirigir elementos como enlaces y listas."
        ]
      },
      "workshop-balance-sheet": {
        "title": "Construir un Balance General",
        "intro": [
          "En este taller, construirás un balance general usando seudo selectores. Aprenderás cómo cambiar el estilo de un elemento cuando pasas el ratón sobre él y activar otros eventos en tu página web."
        ]
      },
      "review-css-attribute-selectors": {
        "title": "Revisión de los Selectores de Atributos CSS",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de los selectores de atributos CSS, debes repasar lo que has aprendido sobre ellos.",
          "Abre esta página para revisar conceptos como trabajar con diferentes selectores de atributos que apuntan a enlaces con los atributos <code>href</code> y <code>title</code>."
        ]
      },
      "quiz-css-attribute-selectors": {
        "title": "Cuestionario de Selectores de Atributos CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre los selectores de atributos CSS con este cuestionario."
        ]
      },
      "lab-book-inventory-app": {
        "title": "Construir una Aplicación de Inventario de Libros",
        "intro": [
          "En este laboratorio, crearás una aplicación de inventario de libros.",
          "Practicarás los selectores de atributos CSS como <code>[attribute]</code>, <code>[attribute=value]</code>, <code>[attribute~=value]</code> y más."
        ]
      },
      "lecture-best-practices-for-responsive-web-design": {
        "title": "Mejores Prácticas para el Diseño Web Responsivo",
        "intro": [
          "En estas conferencias, aprenderás sobre las mejores prácticas para el diseño web responsivo, el papel que juegan conceptos como cuadrícula, Flexbox, consultas de medios y puntos de ruptura de medios en el diseño responsivo, y más."
        ]
      },
      "workshop-piano": {
        "title": "Diseñar un Piano",
        "intro": [
          "El Diseño Responsivo le dice a tu página web cómo debe verse en pantallas de diferentes tamaños.",
          "En este taller, utilizarás CSS y diseño responsivo para codificar un piano. También practicarás consultas de medios y seudo selectores."
        ]
      },
      "review-responsive-web-design": {
        "title": "Revisión del Diseño Web Responsivo",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos del diseño responsivo, debes repasar lo que has aprendido.",
          "Abre esta página para revisar conceptos como consultas de medios, puntos de ruptura de medios y diseño con enfoque móvil primero."
        ]
      },
      "quiz-responsive-web-design": {
        "title": "Cuestionario sobre Diseño Web Responsivo",
        "intro": [
          "Pon a prueba lo que has aprendido sobre cómo hacer que tus páginas web sean responsivas con este cuestionario."
        ]
      },
      "lab-technical-documentation-page": {
        "title": "Construir una Página de Documentación Técnica",
        "intro": [
          "En este laboratorio, construirás una página de documentación técnica para servir como instrucción o referencia para un tema.",
          "También practicarás consultas de medios para crear un diseño responsivo."
        ]
      },
      "lecture-working-with-css-variables": {
        "title": "Trabajar con Variables CSS",
        "intro": [
          "En estas conferencias, aprenderás a definir y usar propiedades personalizadas (también conocidas como variables CSS). También aprenderás sobre la regla <code>@property</code> y cómo funciona."
        ]
      },
      "workshop-city-skyline": {
        "title": "Construir un Horizonte de Ciudad",
        "intro": [
          "Las variables CSS te ayudan a organizar tus estilos y reutilizarlos.",
          "En este taller, construirás un horizonte de ciudad. Practicarás cómo configurar variables CSS para poder reutilizarlas cuando quieras."
        ]
      },
      "lab-availability-table": {
        "title": "Construir una Tabla de Disponibilidad",
        "intro": [
          "Para este laboratorio, crearás una tabla de disponibilidad que muestre la disponibilidad de las personas para una reunión.",
          "Practicarás usando variables CSS para almacenar y reutilizar colores, fuentes y otros estilos."
        ]
      },
      "review-css-variables": {
        "title": "Revisión de Variables CSS",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de las variables CSS, debes repasar lo que has aprendido.",
          "Abre esta página para revisar cómo trabajar con propiedades personalizadas CSS (variables CSS) y la regla <code>@property</code>."
        ]
      },
      "quiz-css-variables": {
        "title": "Cuestionario sobre Variables CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre las variables CSS con este cuestionario."
        ]
      },
      "lecture-working-with-css-grid": {
        "title": "Trabajar con CSS Grid",
        "intro": [
          "En estas conferencias, aprenderás sobre CSS grid, sus diversas propiedades y cómo usarlas, y en qué se diferencia CSS grid de Flexbox."
        ]
      },
      "workshop-magazine": {
        "title": "Construir una Revista",
        "intro": [
          "CSS Grid le brinda control sobre las filas y columnas del diseño de su página web.",
          "En este taller, crearás un artículo para una revista. Practicarás cómo usar CSS Grid, incluidos conceptos como filas y columnas de cuadrícula."
        ]
      },
      "lab-newspaper-layout": {
        "title": "Diseñar el Esquema de un Periódico",
        "intro": [
          "En este laboratorio, diseñarás un esquema de periódico usando CSS Grid, incluyendo conceptos como filas y columnas de cuadrícula."
        ]
      },
      "lecture-debugging-css": {
        "title": "Depuración de CSS",
        "intro": [
          "En esta conferencia, aprenderás cómo depurar CSS utilizando las herramientas de desarrollo de tu navegador y los validadores de CSS."
        ]
      },
      "review-css-grid": {
        "title": "Revisión de CSS Grid",
        "intro": [
          "Antes de que te pregunten sobre los fundamentos de CSS Grid, debes repasar lo que has aprendido.",
          "Abre esta página para revisar cómo trabajar con las diferentes propiedades de CSS Grid como <code>grid-template-columns</code>, <code>grid-gap</code> y más."
        ]
      },
      "quiz-css-grid": {
        "title": "Cuestionario sobre Grid CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre CSS Grid con este cuestionario."
        ]
      },
      "lab-product-landing-page": {
        "title": "Construir una Página de Destino de Producto",
        "intro": [
          "En este proyecto, crearás una página de destino de producto para comercializar un producto de su elección."
        ]
      },
      "lecture-animations-and-accessibility": {
        "title": "Animaciones y Accesibilidad",
        "intro": [
          "En estas conferencias, aprenderás sobre las animaciones CSS y sus problemas de accesibilidad. También aprenderás cómo <code>prefers-reduced-motion</code> puede ayudar a abordar esos problemas de accesibilidad."
        ]
      },
      "workshop-ferris-wheel": {
        "title": "Construir una Noria Animada",
        "intro": [
          "Puedes utilizar la animación CSS para llamar la atención sobre secciones específicas de tu página web y hacerla más atractiva.",
          "En este taller, construirás una noria. Practicarás cómo usar CSS para animar elementos, transformarlos y ajustar su velocidad."
        ]
      },
      "lab-moon-orbit": {
        "title": "Construir una Órbita Lunar",
        "intro": [
          "En este laboratorio, crearás una animación de la luna orbitando la Tierra.",
          "Practicarás propiedades de animación como <code>animation-name</code>, <code>animation-duration</code>, <code>animation-timing-function</code> y más."
        ]
      },
      "workshop-flappy-penguin": {
        "title": "Construir un Pingüino Flappy",
        "intro": [
          "Puedes transformar elementos HTML para crear diseños atractivos que llamen la atención del lector. Puedes usar transformaciones para rotar elementos, escalarlos y más.",
          "En este taller, crearás un pingüino. Utilizarás transformaciones CSS para posicionar y cambiar el tamaño de las partes de tu pingüino, crear un fondo y animar tu trabajo."
        ]
      },
      "lab-personal-portfolio": {
        "title": "Construir un Portafolio Personal",
        "intro": [
          "En este proyecto, crearás tu propia página de portafolio personal."
        ]
      },
      "review-css-animations": {
        "title": "Revisión de Animaciones CSS",
        "intro": [
          "Antes de que te pregunten cómo trabajar con animaciones CSS, debes repasar lo que has aprendido sobre ellas.",
          "Abre esta página para revisar conceptos que incluyen <code>prefers-reduced-motion</code>, la regla <code>@keyframes</code> y más."
        ]
      },
      "quiz-css-animations": {
        "title": "Cuestionario de Animaciones CSS",
        "intro": [
          "Pon a prueba tus conocimientos sobre animaciones CSS con este cuestionario."
        ]
      },
      "review-css": {
        "title": "Revisión de CSS",
        "intro": [
          "Antes de tomar el examen de preparación de CSS, primero debes revisar los conceptos enseñados en los módulos anteriores.",
          "Abre esta página para revisar conceptos sobre los conceptos básicos de CSS, diseño web responsivo, animaciones, accesibilidad y más."
        ]
      },
      "exam-responsive-web-design-certification": {
        "title": "Examen de Certificación en Diseño Web Responsivo",
        "intro": [
          "Aproba este examen para obtener tu Certificación en Diseño Web Responsivo"
        ]
      }
    }
  },
  "a2-professional-spanish": {
    "title": "Certificación de Español Profesional A2 (Beta)",
    "note": "This certification is currently in active development. New content will be published as our instructional design team develops it. Once all content is available, we will release the certification exam.",
    "intro": ["Introducción con marcador de posición"],
    "blocks": {
      "talk-about-who-you-are-by-using-key-verbs": {
        "title": "Habla Sobre Quién Eres Usando Verbos Clave",
        "intro": [
          "Aprende a presentarte en español de una manera simple y profesional. En este módulo aprenderás a decir quién eres, de dónde eres, qué haces, cómo te sientes y qué te gusta o no te gusta."
        ]
      },
      "get-to-know-others-by-asking-simple-questions": {
        "title": "Conoce a Otros Haciendo Preguntas Sencillas",
        "intro": [
          "Aprende a hacer y responder preguntas en conversaciones simples. A través de cinco diálogos cortos, practica hablar sobre rutinas, sentimientos, preferencias, lugares de trabajo e información personal. También aprenderás a hacer preguntas de manera cortés, dar respuestas cortas y usar la negación de manera natural."
        ]
      }
    }
  },
  "a2-professional-chinese": {
    "title": "Certificación de Chino Profesional A2 (Beta)",
    "note": "This certification is currently in active development. New content will be published as our instructional design team develops it. Once all content is available, we will release the certification exam.",
    "intro": ["Introducción con marcador de posición"],
    "blocks": {
      "talk-about-what-you-do-by-using-key-verbs": {
        "title": "Habla Sobre Lo Que Haces Usando Verbos Clave",
        "intro": [
          "Aprende a presentarte en chino de una manera simple y profesional. En este módulo aprenderás a decir quién eres, de dónde eres, qué haces, cómo te sientes y qué te gusta o no te gusta."
        ]
      },
      "get-to-know-colleagues-by-asking-simple-questions": {
        "title": "Conoce a los Colegas Haciendo Preguntas Sencillas",
        "intro": [
          "Aprende a hacer y responder preguntas en conversaciones simples. A través de cinco diálogos cortos, practica hablar sobre rutinas, sentimientos, preferencias, lugares de trabajo e información personal. También aprenderás a hacer preguntas de manera cortés, dar respuestas cortas y usar la negación de manera natural."
        ]
      }
    }
  },
  "a1-professional-chinese": {
    "title": "Certificación Profesional de Chino A1 (Beta)",
    "note": "This certification is currently in active development. New content will be published as our instructional design team develops it. Once all content is available, we will release the certification exam.",
    "intro": [
      "En este currículo de chino profesional A1, aprenderás los fundamentos del idioma chino. Seguirás el nivel A1 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en el vocabulario que resulta especialmente útil para entornos profesionales.",
      "El currículo se divide en varios módulos que incluyen páginas de calentamiento, aprendizaje, práctica, revisión y cuestionarios para asegurarte de que entiendes realmente el material antes de pasar al siguiente módulo.",
      "Cada capítulo incluye cientos de tareas interactivas diseñadas para ayudarte a dar tus primeros pasos en el aprendizaje del chino con confianza."
    ],
    "chapters": {
      "zh-a1-chapter-welcome-to-a1-professional-chinese": "Bienvenido a A1 Chino Profesional",
      "zh-a1-chapter-pinyin": "Pinyin",
      "zh-a1-chapter-greetings-and-introductions": "Saludos e Introducciones",
      "zh-a1-chapter-numbers-and-personal-information": "Numbers and Personal Information",
      "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expresando Lo Que Puedes y No Puedes Hacer"
    },
    "modules": {
      "zh-a1-module-introduction-and-certification-overview": "Introducción y Descripción General de la Certificación",
      "zh-a1-module-initials-and-finals": "Consonantes y Vocales",
      "zh-a1-module-greetings-and-basic-introductions": "Saludos e Introducciones Básicas",
      "zh-a1-module-asking-and-giving-basic-information": "Preguntando y dando información básica.",
      "zh-a1-module-numbers-below-100": "Numbers Below 100",
      "zh-a1-module-communicating-personal-information": "Communicating Personal Information",
      "zh-a1-module-talking-about-personal-skills": "Hablando sobre habilidades personales.",
      "zh-a1-module-discussing-team-skills": "Hablando sobre habilidades del equipo."
    },
    "module-intros": {
      "zh-a1-module-introducing-others": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, practicarás la comprensión de monólogos cortos que presentan información sobre otras personas, como nombre, rol, nacionalidad y edad."
        ]
      },
      "zh-a1-module-getting-to-know-the-team": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, practicarás la comprensión de una conversación corta que hace y responde preguntas simples sobre colegas."
        ]
      },
      "zh-a1-module-communicating-personal-information": {
        "note": "Coming 2026",
        "intro": [
          "In this module, you will practice understanding conversations that communicate personal information, such as age and phone numbers."
        ]
      },
      "zh-a1-module-talking-about-personal-skills": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, practicarás la comprensión de monólogos cortos sobre lo que las personas pueden y no pueden hacer, como idiomas y habilidades laborales."
        ]
      },
      "zh-a1-module-discussing-team-skills": {
        "note": "Próximamente en 2026.",
        "intro": [
          "En este módulo, practicarás la comprensión de una conversación corta sobre quién puede realizar qué tareas en un equipo y cómo comienza un proyecto."
        ]
      }
    },
    "blocks": {
      "zh-a1-learn-certification-introduction": {
        "title": "Introducción a la certificación.",
        "intro": ["", ""]
      },
      "zh-a1-learn-simple-finals": {
        "title": "Finales simples",
        "intro": ["", ""]
      },
      "zh-a1-learn-initials": {
        "title": "Iniciales",
        "intro": ["", ""]
      },
      "zh-a1-learn-compound-finals": {
        "title": "Finales compuestas",
        "intro": ["", ""]
      },
      "zh-a1-learn-nasal-finals": {
        "title": "Finales nasales",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-greeting-new-colleagues": {
        "title": "Saludando a nuevos colegas",
        "intro": ["", ""]
      },
      "zh-a1-learn-understanding-greetings-and-introductions": {
        "title": "Entendiendo Saludos e Introducciones",
        "intro": ["", ""]
      },
      "zh-a1-practice-introducing-yourself": {
        "title": "Presentándote",
        "intro": ["", ""]
      },
      "zh-a1-review-greetings-and-introductions": {
        "title": "Revisión de saludos e introducciones.",
        "intro": ["", ""]
      },
      "zh-a1-quiz-greetings-and-introductions": {
        "title": "Cuestionario de saludos e introducciones.",
        "intro": ["", ""]
      },
      "zh-a1-learn-understanding-questions-and-answers": {
        "title": "Entendiendo Preguntas y Respuestas",
        "intro": ["", ""]
      },
      "zh-a1-practice-exchanging-basic-information": {
        "title": "Intercambio de información básica.",
        "intro": ["", ""]
      },
      "zh-a1-review-introduction-questions": {
        "title": "Revisión de preguntas de introducción.",
        "intro": ["", ""]
      },
      "zh-a1-quiz-introduction-questions": {
        "title": "Cuestionario de preguntas de introducción.",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-introducing-others-basics": {
        "title": "Presentación de otros conceptos básicos",
        "intro": ["", ""]
      },
      "zh-a1-learn-meeting-the-team": {
        "title": "Conociendo al Equipo",
        "intro": ["", ""]
      },
      "zh-a1-learn-a-new-colleague": {
        "title": "Un nuevo colega",
        "intro": ["", ""]
      },
      "zh-a1-learn-my-family": {
        "title": "Mi familia",
        "intro": ["", ""]
      },
      "zh-a1-practice-introducing-others": {
        "title": "Presentando la práctica de otros.",
        "intro": ["", ""]
      },
      "zh-a1-review-introducing-others": {
        "title": "Revisión de la presentación de otros.",
        "intro": ["", ""]
      },
      "zh-a1-quiz-check-your-introduction": {
        "title": "Verifica tu introducción.",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-knowing-the-team-basics": {
        "title": "Conociendo los conceptos básicos del equipo.",
        "intro": ["", ""]
      },
      "zh-a1-learn-asking-about-the-team": {
        "title": "Preguntando sobre el equipo.",
        "intro": ["", ""]
      },
      "zh-a1-practice-talking-about-others": {
        "title": "Hablando de otros",
        "intro": ["", ""]
      },
      "zh-a1-review-team-introduction": {
        "title": "Revisión de Introducción del equipo",
        "intro": ["", ""]
      },
      "zh-a1-quiz-team-introduction": {
        "title": "Cuestionario de Introducción del equipo",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-personal-skills-basics": {
        "title": "Conceptos básicos de habilidades personales",
        "intro": ["", ""]
      },
      "zh-a1-learn-can-or-cannot": {
        "title": "Puede o no puede",
        "intro": ["", ""]
      },
      "zh-a1-practice-personal-skills": {
        "title": "Práctica de habilidades personales",
        "intro": ["", ""]
      },
      "zh-a1-review-describing-skills": {
        "title": "Revisión de habilidades de descripción",
        "intro": ["", ""]
      },
      "zh-a1-quiz-describing-skills": {
        "title": "Cuestionario de habilidades de descripción",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-team-skills-basics": {
        "title": "Conceptos básicos de habilidades del equipo",
        "intro": ["", ""]
      },
      "zh-a1-learn-who-can-do-what-on-the-team": {
        "title": "Quién puede hacer qué en el equipo",
        "intro": [
          "Aprender a discutir capacidades de miembros del equipo y roles."
        ]
      },
      "zh-a1-practice-talking-about-skills": {
        "title": "Hablando de habilidades",
        "intro": [
          "Practica discutir varias habilidades en contextos de equipo."
        ]
      },
      "zh-a1-review-discussing-team-skills": {
        "title": "Revisión de habilidades de discusión del equipo",
        "intro": ["", ""]
      },
      "zh-a1-quiz-discussing-team-skills": {
        "title": "Cuestionario de habilidades de discusión del equipo",
        "intro": ["", ""]
      },
      "zh-a1-warm-up-meeting-new-teammates": {
        "title": "Conociendo a nuevos compañeros de equipo",
        "intro": ["", ""]
      },
      "zh-a1-learn-special-spelling-rules": {
        "title": "Reglas Especiales de Ortografía",
        "intro": ["", ""]
      },
      "zh-a1-practice-pinyin": {
        "title": "Práctica de Pinyin",
        "intro": ["", ""]
      },
      "zh-a1-learn-numbers-0-to-10": {
        "title": "Numbers 0 to 10",
        "intro": ["", ""]
      },
      "zh-a1-practice-numbers-0-to-10": {
        "title": "Numbers 0 to 10 Practice",
        "intro": ["", ""]
      },
      "zh-a1-learn-numbers-11-to-19": {
        "title": "Numbers 11 to 19",
        "intro": ["", ""]
      },
      "zh-a1-practice-numbers-11-to-19": {
        "title": "Numbers 11 to 19 Practice",
        "intro": ["", ""]
      },
      "zh-a1-learn-numbers-20-to-99": {
        "title": "Numbers 20 to 99",
        "intro": ["", ""]
      },
      "zh-a1-practice-numbers-20-to-99": {
        "title": "Numbers 20 to 99 Practice",
        "intro": ["", ""]
      },
      "zh-a1-review-numbers-below-100": {
        "title": "Numbers Below 100 Review",
        "intro": ["", ""]
      },
      "zh-a1-quiz-numbers-below-100": {
        "title": "Numbers Below 100 Quiz",
        "intro": ["", ""]
      }
    }
  },
  "basic-html": {
    "title": "Learn Basic HTML",
    "summary": [
      "Aprende a construir páginas web simples usando etiquetas HTML para agregar texto, imágenes y enlaces."
    ],
    "intro": [
      "HTML stands for HyperText Markup Language and represents the content and structure for a web page. In this course, you will learn the basics of writing HTML."
    ],
    "blocks": {
      "workshop-curriculum-outline": {
        "title": "Build a Curriculum Outline",
        "intro": [
          "Welcome to freeCodeCamp!",
          "This workshop will serve as your introduction to HTML and coding in general. You will learn about headings and paragraph elements."
        ]
      },
      "lab-debug-camperbots-profile-page": {
        "title": "Debug Camperbot's Profile Page",
        "intro": [
          "Camperbot is learning how to code too and needs some help with their HTML.",
          "In this lab, you will help Camperbot find and fix the errors in their code."
        ]
      },
      "lecture-understanding-html-attributes": {
        "title": "Understanding HTML Attributes",
        "intro": [
          "In these lectures, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.",
          "You will learn about HTML's role on the web, and what HTML attributes are."
        ]
      },
      "lab-debug-pet-adoption-page": {
        "title": "Debug a Pet Adoption Page",
        "intro": [
          "In this lab, you will need to find and fix the errors in this pet adoption page."
        ]
      },
      "lecture-understanding-the-html-boilerplate": {
        "title": "Understanding the HTML Boilerplate",
        "intro": [
          "In these lectures, you will learn about the HTML boilerplate which is a ready-made template for your webpages.",
          "You will learn how to work with the <code>link</code> element, <code>meta</code> element and more."
        ]
      },
      "workshop-cat-photo-app": {
        "title": "Build a Cat Photo App",
        "intro": [
          "HTML stands for HyperText Markup Language and it represents the content and structure of a web page.",
          "In this workshop, you will learn how to work with basic HTML elements such as headings, paragraphs, images, links, and lists."
        ]
      },
      "lab-recipe-page": {
        "title": "Build a Recipe Page",
        "intro": [
          "In this lab, you'll review HTML basics by creating a web page of your favorite recipe. You'll create an HTML boilerplate and work with headings, lists, images, and more."
        ]
      },
      "lecture-html-fundamentals": {
        "title": "HTML Fundamentals",
        "intro": [
          "In these lectures, you will learn about HTML fundamentals like the <code>div</code> element, the <code>id</code> and <code>class</code> attributes, the HTML boilerplate, HTML entities, and more."
        ]
      },
      "workshop-bookstore-page": {
        "title": "Build a Bookstore Page",
        "intro": [
          "In this workshop, you will practice working with classes, ids and the <code>div</code> element by building a bookstore page."
        ]
      },
      "lecture-understanding-how-html-affects-seo": {
        "title": "Understanding How HTML Affects SEO",
        "intro": [
          "In these lectures, you will learn how your HTML code impacts search engine optimization."
        ]
      },
      "lab-travel-agency-page": {
        "title": "Build a Travel Agency Page",
        "intro": [
          "In this lab, you'll review working with HTML fundamentals by creating a web page for a travel agency. You'll work with images, the <code>figure</code> element, the <code>figcaption</code> element, the <code>anchor</code> element, and more."
        ]
      },
      "lecture-working-with-audio-and-video-elements": {
        "title": "Working with Audio and Video Elements",
        "intro": [
          "In these lectures, you will learn how to work with the <code>audio</code> and <code>video</code> elements."
        ]
      },
      "workshop-html-video-player": {
        "title": "Build an HTML Video Player",
        "intro": [
          "In this workshop, you'll use HTML to create a basic video player.",
          "This project will cover the <code>video</code> element, the video player setup, and more."
        ]
      },
      "lab-html-audio-and-video-player": {
        "title": "Build an HTML Audio and Video Player",
        "intro": [
          "In this lab, you will build an HTML audio and video player using the <code>video</code> and <code>audio</code> elements with controls and source attributes."
        ]
      },
      "lecture-working-with-images-and-svgs": {
        "title": "Working with Images and SVGs",
        "intro": [
          "In these lectures, you will learn how to work with SVGs and learn about techniques for optimizing your images."
        ]
      },
      "workshop-build-a-heart-icon": {
        "title": "Build a Heart Icon",
        "intro": [
          "In this workshop, you will practice working with SVGs by building a heart icon"
        ]
      },
      "lecture-working-with-media": {
        "title": "Working with the iframe Element",
        "intro": [
          "In these lectures, you will learn how to work with the <code>iframe</code> element which is used to embed an external site on your web page."
        ]
      },
      "workshop-build-a-video-display-using-iframe": {
        "title": "Build a Video Display Using iframe",
        "intro": [
          "In this workshop, you'll learn how to work with the <code>iframe</code> element by building a video display."
        ]
      },
      "lab-video-compilation-page": {
        "title": "Build a Video Compilation Page",
        "intro": [
          "In this lab, you'll create a video compilation web page. You'll practice working with the <code>iframe</code> element."
        ]
      },
      "lecture-working-with-links": {
        "title": "Working with Links",
        "intro": [
          "In these lectures, you will learn about links, the <code>target</code> attribute, different link states, absolute, and relative paths, and more."
        ]
      },
      "review-basic-html": {
        "title": "Basic HTML Review",
        "intro": [
          "Before you are quizzed on the HTML knowledge you have gained so far, you first need to review the concepts.",
          "Open up this page to review the HTML boilerplate, <code>audio</code> and <code>video</code> elements, the different <code>target</code> attribute values and more."
        ]
      },
      "quiz-basic-html": {
        "title": "Basic HTML Quiz",
        "intro": [
          "The following quiz will test your knowledge of the basic HTML concepts you have learned so far.",
          "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
        ]
      }
    }
  },
  "semantic-html": {
    "title": "Learn Semantic HTML",
    "summary": [
      "Descubre cómo escribir HTML más limpio y significativo usando etiquetas semánticas que mejoran la estructura, la accesibilidad y el SEO."
    ],
    "intro": [
      "In this interactive course, you will practice writing semantic HTML."
    ],
    "blocks": {
      "lecture-importance-of-semantic-html": {
        "title": "Importance of Semantic HTML",
        "intro": [
          "In these lectures, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more."
        ]
      },
      "lecture-understanding-nuanced-semantic-elements": {
        "title": "Understanding Nuanced Semantic Elements",
        "intro": [
          "In these lectures, you will learn when you should use certain semantic elements like the <code>em</code> element over the <code>i</code> element, description lists, and more."
        ]
      },
      "workshop-major-browsers-list": {
        "title": "Build a List of Major Web Browsers",
        "intro": [
          "In this workshop, you will build a description list and work with the <code>dl</code>, <code>dt</code>, and <code>dd</code> elements."
        ]
      },
      "lecture-working-with-text-and-time-semantic-elements": {
        "title": "Working with Text and Time Semantic Elements ",
        "intro": [
          "In this lecture, you will learn about the importance of semantics in conveying meaning for text and time-related content including the <code>time</code>, <code>blockquote</code> elements and more."
        ]
      },
      "workshop-quincys-job-tips": {
        "title": "Build Quincy's Job Tips Page",
        "intro": [
          "In this workshop, you will practice working with semantic HTML by using the <code>q</code>, <code>blockquote</code> and <code>cite</code> elements."
        ]
      },
      "lecture-working-with-specialized-semantic-elements": {
        "title": "Working with Specialized Semantic Elements",
        "intro": [
          "In this lecture, you will learn about specialized semantic elements like <code>u</code>, <code>s</code>, <code>code</code> elements and more."
        ]
      },
      "workshop-blog-page": {
        "title": "Build a Cat Blog Page",
        "intro": [
          "In this workshop, you will build an HTML only blog page using semantic elements including the <code>main</code>, <code>nav</code>, <code>article</code> and <code>footer</code> elements."
        ]
      },
      "lab-event-hub": {
        "title": "Build an Event Hub",
        "intro": [
          "In this lab, you'll build an event hub and review semantic elements like <code>header</code>, <code>nav</code>, <code>article</code>, and more."
        ]
      },
      "review-semantic-html": {
        "title": "Semantic HTML Review",
        "intro": [
          "Before you are quizzed on semantic HTML, you first need to review the concepts.",
          "Open up this page to review the <code>em</code>, <code>strong</code>, <code>blockquote</code>, <code>address</code> and more semantic HTML elements."
        ]
      },
      "quiz-semantic-html": {
        "title": "Semantic HTML Quiz",
        "intro": [
          "The following quiz will test your knowledge on semantic HTML concepts you have learned so far.",
          "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
        ]
      }
    }
  },
  "html-and-accessibility": {
    "title": "Learn HTML and Accessibility",
    "summary": [
      "Learn how to write inclusive HTML using accessibility best practices and ARIA."
    ],
    "intro": [
      "Practice writing accessible HTML structures and form experiences."
    ],
    "blocks": {
      "lecture-importance-of-accessibility-and-good-html-structure": {
        "title": "Importance of Accessibility and Good HTML Structure",
        "intro": [
          "In these lessons, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more."
        ]
      },
      "workshop-debug-coding-journey-blog-page": {
        "title": "Debug a Coding Journey Blog Page",
        "intro": [
          "In this workshop, you will debug and fix accessibility errors in a coding blog page."
        ]
      },
      "lecture-accessible-tables-forms": {
        "title": "Working with Accessible Tables and Forms",
        "intro": [
          "In these lessons, you will learn about how to create accessible tables and forms."
        ]
      },
      "workshop-tech-conference-schedule": {
        "title": "Build a Tech Conference Schedule Table",
        "intro": [
          "In this workshop, you will build an accessible tech conference schedule table."
        ]
      },
      "lab-debug-donation-form": {
        "title": "Debug a Donation Form",
        "intro": [
          "In this lab you will debug a donation form by fixing HTML syntax errors and improving accessibility."
        ]
      },
      "lecture-introduction-to-aria": {
        "title": "Introduction to ARIA",
        "intro": [
          "In these lectures, you will learn about working with ARIA roles."
        ]
      },
      "workshop-accessible-audio-controller": {
        "title": "Build an Accessible Audio Controller",
        "intro": [
          "In this workshop, you will practice accessible HTML by building an audio controller that uses the <code>aria-labelledby</code> attribute."
        ]
      },
      "lecture-accessible-media-elements": {
        "title": "Working with Accessible Media Elements",
        "intro": [
          "In these lectures, you will learn about how to create accessible links, audio and video content."
        ]
      },
      "lab-checkout-page": {
        "title": "Build a Checkout Page",
        "intro": [
          "In this lab, you'll create an accessible checkout page.",
          "You'll practice concepts like <code>alt</code> attributes and ARIA roles."
        ]
      },
      "lab-movie-review-page": {
        "title": "Design a Movie Review Page",
        "intro": [
          "In this lab, you'll create a movie review page.",
          "You'll practice concepts like semantic HTML, <code>alt</code> attributes, accessible lists, and hiding decorative content from screen readers using <code>aria-hidden</code>."
        ]
      },
      "lab-multimedia-player": {
        "title": "Build a Multimedia Player",
        "intro": [
          "In this lab, you'll build a multimedia player.",
          "You will practice working with the <code>audio</code> and <code>video</code> elements, the <code>controls</code> attribute, and the <code>aria-label</code> attribute."
        ]
      },
      "review-html-accessibility": {
        "title": "HTML Accessibility Review",
        "intro": [
          "Before you are quizzed on HTML and accessibility, you first need to review the concepts.",
          "Open up this page to review concepts including the <code>aria-hidden</code>, <code>aria-describedby</code>, <code>tabindex</code> attributes and more."
        ]
      },
      "quiz-html-accessibility": {
        "title": "HTML Accessibility Quiz",
        "intro": [
          "The following quiz will test your knowledge on the accessibility concepts you have learned so far.",
          "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
        ]
      }
    }
  },
  "computer-basics": {
    "title": "Learn Computer Basics",
    "summary": [
      "Build a foundation in computer, internet, and tooling basics for web development."
    ],
    "intro": [
      "Get comfortable with the tools and concepts that power modern web development."
    ],
    "blocks": {
      "lecture-understanding-computer-internet-and-tooling-basics": {
        "title": "Understanding Computer, Internet, and Tooling Basics",
        "intro": [
          "In these lessons, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use."
        ]
      },
      "lecture-working-with-file-systems": {
        "title": "Working with File Systems",
        "intro": [
          "In these lessons, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more."
        ]
      },
      "lecture-browsing-the-web-effectively": {
        "title": "Browsing the Web Effectively",
        "intro": [
          "In these lessons, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine."
        ]
      },
      "review-computer-basics": {
        "title": "Computer Basics Review",
        "intro": [
          "Before you are quizzed on basic computer and internet concepts, you first need to review.",
          "Open up this page to review concepts like RAM, Internet service providers, common web browsers, search engines and more."
        ]
      },
      "quiz-computer-basics": {
        "title": "Computer Basics Quiz",
        "intro": [
          "Test what you've learned in this quiz of basic computer knowledge."
        ]
      }
    }
  },
  "basic-css": {
    "title": "Learn Basic CSS",
    "summary": [
      "Learn core CSS concepts and start styling real-world layouts."
    ],
    "intro": [
      "Learn the fundamentals of CSS and apply them to practical layouts."
    ],
    "blocks": {
      "lecture-what-is-css": {
        "title": "What Is CSS?",
        "intro": [
          "The following lessons are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more."
        ]
      },
      "workshop-cafe-menu": {
        "title": "Design a Cafe Menu",
        "intro": [
          "CSS tells the browser how to display your webpage. You can use CSS to set the color, font, size, and other aspects of HTML elements.",
          "In this workshop, you'll learn CSS by designing a menu page for a cafe webpage."
        ]
      },
      "lab-business-card": {
        "title": "Design a Business Card",
        "intro": [
          "In this lab, you'll create a business card and style it using CSS.",
          "You'll practice style properties like <code>color</code>, <code>font-size</code>, <code>text-align</code>, and more."
        ]
      },
      "lecture-css-specificity-the-cascade-algorithm-and-inheritance": {
        "title": "CSS Specificity, the Cascade Algorithm, and Inheritance",
        "intro": [
          "In these lessons, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more."
        ]
      },
      "review-basic-css": {
        "title": "CSS Fundamentals Review",
        "intro": [
          "Before you are quizzed on basic CSS concepts, you first need to review.",
          "Open up this page to review concepts including <code>margin</code>, <code>padding</code>, CSS combinators, CSS specificity and more."
        ]
      },
      "quiz-basic-css": {
        "title": "CSS Fundamentals Quiz",
        "intro": [
          "Test what you've learned in this quiz of basic CSS knowledge."
        ]
      },
      "lecture-styling-lists-and-links": {
        "title": "Styling Lists and Links",
        "intro": [
          "In these lessons, you will learn the properties you need to know to effectively style lists and links, including link states like <code>link</code>, <code>visited</code>, <code>hover</code>, and <code>active</code>."
        ]
      },
      "lab-stylized-to-do-list": {
        "title": "Build a Stylized To-Do List",
        "intro": [
          "In this lab, you'll build a To-Do list and apply different styles to the links",
          "You'll practice style properties like <code>text-decoration</code>, <code>list-style-type</code> and how to change styles on hover or click."
        ]
      },
      "lecture-working-with-backgrounds-and-borders": {
        "title": "Working with Backgrounds and Borders",
        "intro": [
          "In these lessons, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds."
        ]
      },
      "lab-blog-post-card": {
        "title": "Design a Blog Post Card",
        "intro": [
          "In this lab, you'll design a blog post card using HTML and CSS",
          "You'll practice concepts like <code>background-color</code>, <code>border-radius</code>, margins, paddings, and more."
        ]
      },
      "review-css-backgrounds-and-borders": {
        "title": "Lists, Links, CSS Background and Borders Review",
        "intro": [
          "Before you are quizzed on CSS backgrounds and borders, you first need to review.",
          "Open up this page to review concepts including the <code>background-image</code> property, <code>border</code> property and more."
        ]
      },
      "quiz-css-backgrounds-and-borders": {
        "title": "CSS Backgrounds and Borders Quiz",
        "intro": [
          "Test what you've learned in this quiz of backgrounds and borders in CSS."
        ]
      }
    }
  },
  "design-for-developers": {
    "title": "Introduction to UI/UX Design",
    "summary": [
      "Explore UI design fundamentals and user-centered design principles for developers."
    ],
    "intro": [
      "Learn the design principles that help developers build better interfaces."
    ],
    "blocks": {
      "lecture-user-interface-design-fundamentals": {
        "title": "User Interface Design Fundamentals",
        "intro": [
          "In these lessons, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more."
        ]
      },
      "lecture-user-centered-design": {
        "title": "User-Centered Design",
        "intro": [
          "In these lessons, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing."
        ]
      },
      "lecture-common-design-tools": {
        "title": "Common Design Tools",
        "intro": [
          "In these lessons, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them."
        ]
      },
      "review-design-fundamentals": {
        "title": "Design Fundamentals Review",
        "intro": [
          "Before you are quizzed on the design fundamentals you have learned so far, you first need to review.",
          "Open up this page to review concepts like user-centered design, scale, alignment, good visual hierarchy and more."
        ]
      },
      "quiz-design-fundamentals": {
        "title": "Design Fundamentals Quiz",
        "intro": [
          "Test what you've learned in this quiz of UI design fundamentals."
        ]
      }
    }
  },
  "absolute-and-relative-units": {
    "title": "Learn Absolute and Relative Units in CSS",
    "summary": [
      "Understand when to use absolute and relative CSS units to build flexible layouts."
    ],
    "intro": ["Learn to size elements responsively with CSS units."],
    "blocks": {
      "lecture-working-with-relative-and-absolute-units": {
        "title": "Working with Relative and Absolute Units",
        "intro": [
          "In these lessons, you will learn about relative and absolute units, and how they both impact what you see in the browser."
        ]
      },
      "lab-event-flyer-page": {
        "title": "Build an Event Flyer Page",
        "intro": [
          "In this lab, you'll create an event flyer page.",
          "You will practice aligning elements using absolute and relative CSS."
        ]
      },
      "review-css-relative-and-absolute-units": {
        "title": "CSS Relative and Absolute Units Review",
        "intro": [
          "Before you are quizzed on relative and absolute units, you first need to review.",
          "Open up this page to review concepts like percentages, <code>px</code>, <code>rem</code>, <code>em</code>, and more."
        ]
      },
      "quiz-css-relative-and-absolute-units": {
        "title": "CSS Relative and Absolute Units Quiz",
        "intro": [
          "Test what you've learned in this quiz of relative and absolute units in CSS."
        ]
      }
    }
  },
  "pseudo-classes-and-elements": {
    "title": "Learn CSS Pseudo Classes and Elements",
    "summary": [
      "Use pseudo-classes and pseudo-elements to create richer, more interactive styles."
    ],
    "intro": [
      "Add interaction and detail with CSS pseudo-classes and pseudo-elements."
    ],
    "blocks": {
      "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": {
        "title": "Working with Pseudo-Classes and Pseudo-Elements in CSS",
        "intro": [
          "In these lessons, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work."
        ]
      },
      "workshop-greeting-card": {
        "title": "Design a Greeting Card",
        "intro": [
          "In the previous lessons, you learned how to work with the different types of pseudo-classes.",
          "In this workshop, you will have a chance to practice what you have learned by designing a greeting card."
        ]
      },
      "workshop-parent-teacher-conference-form": {
        "title": "Design a Parent Teacher Conference Form",
        "intro": [
          "In this workshop, you will practice how to style radio buttons with different types of pseudo-selectors by building a parent-teacher conference form.",
          "You'll practice concepts including the <code>::before</code> pseudo-element selector, the <code>transform</code> property, and more."
        ]
      },
      "lab-job-application-form": {
        "title": "Build a Job Application Form",
        "intro": [
          "In this lab you'll build a job application form and style it using pseudo-classes.",
          "You'll practice concepts like <code>:hover</code>, <code>:active</code>, <code>:focus</code>, and more."
        ]
      },
      "review-css-pseudo-classes": {
        "title": "CSS Pseudo-classes Review",
        "intro": [
          "Before you're quizzed on CSS pseudo-classes and pseudo-elements, you should review what you've learned about them.",
          "Open up this page to review concepts like the <code>::before</code> and <code>::after</code> pseudo-elements as well as the <code>:hover</code>, <code>:active</code> pseudo-classes and more."
        ]
      },
      "quiz-css-pseudo-classes": {
        "title": "CSS Pseudo-classes Quiz",
        "intro": ["Test your knowledge of CSS pseudo-classes with this quiz."]
      }
    }
  },
  "css-colors": {
    "title": "Learn CSS Colors",
    "summary": [
      "Work with CSS color formats and build cohesive color palettes."
    ],
    "intro": ["Learn to apply color with CSS to create polished visuals."],
    "blocks": {
      "lecture-working-with-colors-in-css": {
        "title": "Working with Colors in CSS",
        "intro": [
          "In these lessons, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases."
        ]
      },
      "workshop-colored-markers": {
        "title": "Build a Set of Colored Markers",
        "intro": [
          "In this workshop, you'll build a set of colored markers. You'll practice different ways to set color values and how to pair colors with each other."
        ]
      },
      "lab-colored-boxes": {
        "title": "Design a Set of Colored Boxes",
        "intro": [
          "In this lab, you'll create a color grid and practice adding background colors to the grid items using hex codes, RGB, and predefined color names."
        ]
      },
      "review-css-colors": {
        "title": "CSS Colors Review",
        "intro": [
          "Before you're quizzed on CSS colors, you should review what you've learned about them.",
          "Open up this page to review concepts like the <code>rgb()</code> function, <code>hsl()</code> function, <code>hex codes</code>, and more."
        ]
      },
      "quiz-css-colors": {
        "title": "CSS Colors Quiz",
        "intro": ["Test your knowledge of CSS colors with this quiz."]
      }
    }
  },
  "styling-forms": {
    "title": "Learn How to Style Forms Using CSS",
    "summary": ["Apply CSS techniques to create clean, usable form layouts."],
    "intro": ["Style form elements to improve usability and visual clarity."],
    "blocks": {
      "lecture-best-practices-for-styling-forms": {
        "title": "Best Practices for Styling Forms",
        "intro": [
          "In these lessons, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like <code>color</code> and <code>datetime-local</code>."
        ]
      },
      "workshop-registration-form": {
        "title": "Design a Registration Form",
        "intro": [
          "In this workshop, you'll learn how to design HTML forms by designing a signup page. You'll learn how to control what types of data people can type into your form, and some new CSS tools for styling your page."
        ]
      },
      "lab-contact-form": {
        "title": "Design a Contact Form",
        "intro": [
          "In this lab, you'll design a contact form in HTML and style it using CSS."
        ]
      },
      "workshop-game-settings-panel": {
        "title": "Build a Game Settings Panel",
        "intro": [
          "In this workshop, you will practice styling checkboxes by building a game settings panel."
        ]
      },
      "lab-feature-selection": {
        "title": "Design a Feature Selection Page",
        "intro": [
          "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
          "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
        ]
      },
      "review-styling-forms": {
        "title": "Styling Forms Review",
        "intro": [
          "Before you're quizzed on styling forms, you should review what you've learned.",
          "Open up this page to review how to style form inputs, working with <code>appearance: none</code> and more."
        ]
      },
      "quiz-styling-forms": {
        "title": "Styling Forms Quiz",
        "intro": [
          "In this quiz, you will test your knowledge of how to style forms."
        ]
      }
    }
  },
  "css-box-model": {
    "title": "Learn the CSS Box Model",
    "summary": [
      "Master the CSS box model, spacing, and layout effects for precise designs."
    ],
    "intro": ["Learn how spacing, borders, and layout effects work together."],
    "blocks": {
      "lecture-working-with-css-transforms-overflow-and-filters": {
        "title": "Working with CSS Transforms, Overflow, and Filters",
        "intro": [
          "In these lessons, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works."
        ]
      },
      "workshop-rothko-painting": {
        "title": "Design a Rothko Painting",
        "intro": [
          "Every HTML element is its own box – with its own spacing and a border. This is called the Box Model.",
          "In this workshop, you'll use CSS and the Box Model to create your own Rothko-style rectangular art pieces."
        ]
      },
      "lab-confidential-email-page": {
        "title": "Build a Confidential Email Page",
        "intro": [
          "In this lab, you'll create a web page using HTML and mask the content using CSS properties."
        ]
      },
      "review-css-layout-and-effects": {
        "title": "CSS Layouts and Effects Review",
        "intro": [
          "Before you are quizzed on CSS Layouts and Effects, you first need to review.",
          "Open up this page to review concepts like the <code>transform</code> property, the box model, the <code>overflow</code> property and more."
        ]
      },
      "quiz-css-layout-and-effects": {
        "title": "CSS Layout and Effects Quiz",
        "intro": [
          "In this quiz, you will test your knowledge of the box model, transforms, filters, and overflow in CSS."
        ]
      }
    }
  },
  "css-flexbox": {
    "title": "Learn CSS Flexbox",
    "summary": [
      "Build responsive layouts using the Flexbox model and alignment tools."
    ],
    "intro": ["Use Flexbox to build responsive, aligned layouts."],
    "blocks": {
      "lecture-working-with-css-flexbox": {
        "title": "Working with CSS Flexbox",
        "intro": [
          "In these lessons, you will learn how CSS flexbox works, its properties, and when you should use it."
        ]
      },
      "workshop-flexbox-photo-gallery": {
        "title": "Build a Flexbox Photo Gallery",
        "intro": [
          "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage."
        ]
      },
      "lab-pricing-plans-layout": {
        "title": "Build a Pricing Plans Layout",
        "intro": [
          "In this lab, you'll create a pricing plans layout.",
          "You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
        ]
      },
      "lab-page-of-playing-cards": {
        "title": "Build a Page of Playing Cards",
        "intro": [
          "In this lab, you'll use flexbox to create a webpage of playing cards.",
          "You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
        ]
      },
      "review-css-flexbox": {
        "title": "CSS Flexbox Review",
        "intro": [
          "Before you're quizzed on CSS flexbox, you should review what you've learned.",
          "Open up this page to review concepts like the <code>flex-direction</code>, <code>justify-content</code>, <code>align-items</code>, <code>flex-wrap</code> properties, and more."
        ]
      },
      "quiz-css-flexbox": {
        "title": "CSS Flexbox Quiz",
        "intro": ["Test what you've learned on CSS flexbox with this quiz."]
      }
    }
  },
  "css-typography": {
    "title": "Learn CSS Typography",
    "summary": [
      "Learn how to style text for readability, hierarchy, and visual balance."
    ],
    "intro": ["Use typography to improve readability and visual hierarchy."],
    "blocks": {
      "lecture-working-with-css-fonts": {
        "title": "Working with CSS Fonts",
        "intro": [
          "In these lessons, you will learn about typography and its best practices, fonts, and the <code>text-shadow</code> property."
        ]
      },
      "workshop-nutritional-label": {
        "title": "Build a Nutritional Label",
        "intro": [
          "Typography is the art of styling your text to be easily readable and suit its purpose.",
          "In this workshop, you'll use typography to build a nutrition label webpage. You'll practice how to style text, adjust line height, and position your text using CSS."
        ]
      },
      "lab-newspaper-article": {
        "title": "Build a Newspaper Article",
        "intro": [
          "In this lab, you'll build a newspaper article page using HTML and CSS.",
          "You'll style the fonts using properties like <code>font-family</code>, <code>font-size</code>, <code>font-weight</code>, and more."
        ]
      },
      "review-css-typography": {
        "title": "CSS Typography Review",
        "intro": [
          "Before you're quizzed on the fundamentals of typography, you should review what you've learned.",
          "Open up this page to review concepts like web safe fonts, the <code>font-family</code> property and more."
        ]
      },
      "quiz-css-typography": {
        "title": "CSS Typography Quiz",
        "intro": ["Test your knowledge of typography with this quiz."]
      }
    }
  },
  "css-and-accessibility": {
    "title": "Learn CSS and Accessibility",
    "summary": [
      "Apply CSS techniques that support accessible and inclusive interfaces."
    ],
    "intro": ["Design with accessibility in mind while styling UI elements."],
    "blocks": {
      "lecture-best-practices-for-accessibility-and-css": {
        "title": "Best Practices for Accessibility and CSS",
        "intro": [
          "In these lessons, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites."
        ]
      },
      "workshop-accessibility-quiz": {
        "title": "Build a Quiz Webpage",
        "intro": [
          "Accessibility is the process of making your webpages usable for everyone, including people with disabilities.",
          "In this workshop, you'll build a quiz webpage. You'll learn accessibility tools such as keyboard shortcuts, ARIA attributes, and design best practices."
        ]
      },
      "lab-tribute-page": {
        "title": "Build a Tribute Page",
        "intro": [
          "In this lab, you'll build a tribute page for a subject of your choosing, fictional or real."
        ]
      },
      "review-css-accessibility": {
        "title": "CSS Accessibility Review",
        "intro": [
          "Before you're quizzed on CSS and accessibility, you should review what you've learned.",
          "Open up this page to review concepts like color contrast tools and accessibility best practices."
        ]
      },
      "quiz-css-accessibility": {
        "title": "CSS Accessibility Quiz",
        "intro": [
          "In this quiz, you'll test what you've learned about making your webpages accessible with CSS."
        ]
      }
    }
  },
  "css-positioning": {
    "title": "Learn CSS Positioning",
    "summary": [
      "Use positioning and floats to control layout and element flow."
    ],
    "intro": ["Control layout with floats and CSS positioning tools."],
    "blocks": {
      "lecture-understanding-how-to-work-with-floats-and-positioning-in-css": {
        "title": "Understanding How to Work with Floats and Positioning in CSS",
        "intro": [
          "In these lessons, you will learn how to use CSS positioning and floats. You will learn about <code>absolute</code>, <code>relative</code>, <code>fixed</code>, and <code>sticky</code> positioning. You will also use the <code>z-index</code> property."
        ]
      },
      "workshop-cat-painting": {
        "title": "Build a Cat Painting",
        "intro": [
          "Mastering CSS positioning is essential for creating visually appealing and responsive web layouts.",
          "In this workshop, you will build a cat painting. You'll learn about how to work with absolute positioning, the <code>z-index</code> property, and the <code>transform</code> property."
        ]
      },
      "lab-house-painting": {
        "title": "Build a House Painting",
        "intro": [
          "In this lab, you'll build a house painting using CSS.",
          "You'll design individual elements of the house and position them using CSS properties like <code>position</code>, <code>top</code>, <code>left</code>, and more."
        ]
      },
      "review-css-positioning": {
        "title": "CSS Positioning Review",
        "intro": [
          "Before you're quizzed on the fundamentals of CSS positioning, you should review what you've learned.",
          "Open up this page to review concepts like floats, relative positioning, absolute positioning and more."
        ]
      },
      "quiz-css-positioning": {
        "title": "CSS Positioning Quiz",
        "intro": ["Test your knowledge of CSS positioning with this quiz."]
      }
    }
  },
  "attribute-selectors": {
    "title": "Learn CSS Attribute Selectors",
    "summary": ["Target elements precisely with CSS attribute selectors."],
    "intro": ["Select elements with precision using attribute selectors."],
    "blocks": {
      "lecture-working-with-attribute-selectors": {
        "title": "Working with Attribute Selectors",
        "intro": [
          "In these lessons, you will learn about attribute selectors and how to use them to target elements like links and lists."
        ]
      },
      "workshop-balance-sheet": {
        "title": "Build a Balance Sheet",
        "intro": [
          "In this workshop, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage."
        ]
      },
      "lab-book-inventory-app": {
        "title": "Build a Book Inventory App",
        "intro": [
          "In this lab, you'll create a book inventory app.",
          "You'll practice CSS attribute selectors like <code>[attribute]</code>, <code>[attribute=value]</code>, <code>[attribute~=value]</code>, and more."
        ]
      },
      "review-css-attribute-selectors": {
        "title": "CSS Attribute Selectors Review",
        "intro": [
          "Before you're quizzed on the fundamentals of CSS attribute selectors, you should review what you've learned about them.",
          "Open up this page to review concepts like how to work with different attribute selectors that target links with the <code>href</code> and <code>title</code> attributes."
        ]
      },
      "quiz-css-attribute-selectors": {
        "title": "CSS Attribute Selectors Quiz",
        "intro": [
          "Test your knowledge of CSS attribute selectors with this quiz."
        ]
      }
    }
  },
  "responsive-design": {
    "title": "Learn Responsive Design",
    "summary": [
      "Learn responsive design principles and build layouts that adapt to any screen."
    ],
    "intro": ["Make layouts adapt to different screen sizes and devices."],
    "blocks": {
      "lecture-best-practices-for-responsive-web-design": {
        "title": "Best Practices for Responsive Web Design",
        "intro": [
          "In these lessons, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more."
        ]
      },
      "workshop-piano": {
        "title": "Design a Piano",
        "intro": [
          "Responsive Design tells your webpage how it should look on different-sized screens.",
          "In this workshop, you'll use CSS and responsive design to code a piano. You'll also practice media queries and pseudo selectors."
        ]
      },
      "lab-technical-documentation-page": {
        "title": "Build a Technical Documentation Page",
        "intro": [
          "In this lab, you'll build a technical documentation page to serve as instruction or reference for a topic.",
          "You'll also practice media queries to create a responsive design."
        ]
      },
      "review-responsive-web-design": {
        "title": "Responsive Web Design Review",
        "intro": [
          "Before you're quizzed on the fundamentals of responsive design, you should review what you've learned.",
          "Open up this page to review concepts like media queries, media breakpoints and mobile first approach design."
        ]
      },
      "quiz-responsive-web-design": {
        "title": "Responsive Web Design Quiz",
        "intro": [
          "Test what you've learned about making your webpages responsive with this quiz."
        ]
      }
    }
  },
  "css-variables": {
    "title": "Learn CSS Variables",
    "summary": ["Use CSS variables to build reusable, theme-friendly styles."],
    "intro": ["Create maintainable styles using CSS custom properties."],
    "blocks": {
      "lecture-working-with-css-variables": {
        "title": "Working with CSS Variables",
        "intro": [
          "In these lessons, you will learn how to define and use custom properties (also known as CSS variables). You will also learn about the <code>@property</code> rule and how it works."
        ]
      },
      "workshop-city-skyline": {
        "title": "Build a City Skyline",
        "intro": [
          "CSS variables help you organize your styles and reuse them.",
          "In this workshop, you'll build a city skyline. You'll practice how to configure CSS variables so you can reuse them whenever you want."
        ]
      },
      "lab-availability-table": {
        "title": "Build an Availability Table",
        "intro": [
          "For this lab, you'll create an availability table that shows the availability of people for a meeting.",
          "You'll practice using CSS variables to store and reuse colors, fonts, and other styles."
        ]
      },
      "review-css-variables": {
        "title": "CSS Variables Review",
        "intro": [
          "Before you're quizzed on the fundamentals of CSS variables, you should review what you've learned.",
          "Open up this page to review how to work with CSS custom properties (CSS variables) and the <code>@property</code> rule."
        ]
      },
      "quiz-css-variables": {
        "title": "CSS Variables Quiz",
        "intro": ["Test your knowledge of CSS variables with this quiz."]
      }
    }
  },
  "css-grid": {
    "title": "Learn CSS Grid",
    "summary": ["Design complex layouts using the CSS Grid system."],
    "intro": ["Build multi-dimensional layouts with CSS Grid."],
    "blocks": {
      "lecture-working-with-css-grid": {
        "title": "Working with CSS Grid",
        "intro": [
          "In these lessons, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox."
        ]
      },
      "workshop-magazine": {
        "title": "Build a Magazine",
        "intro": [
          "CSS Grid gives you control over the rows and columns of your webpage design.",
          "In this workshop, you'll build a magazine article. You'll practice how to use CSS Grid, including concepts like grid rows and grid columns."
        ]
      },
      "lab-newspaper-layout": {
        "title": "Design a Newspaper Layout",
        "intro": [
          "In this lab, you will design a newspaper layout using CSS Grid, including concepts like grid rows and grid columns."
        ]
      },
      "lecture-debugging-css": {
        "title": "Debugging CSS",
        "intro": [
          "In this lesson, you'll learn how to debug CSS using your browser's developer tools and CSS validators."
        ]
      },
      "lab-product-landing-page": {
        "title": "Build a Product Landing Page",
        "intro": [
          "In this project, you'll build a product landing page to market a product of your choice."
        ]
      },
      "review-css-grid": {
        "title": "CSS Grid Review",
        "intro": [
          "Before you're quizzed on the fundamentals of CSS Grid, you should review what you've learned.",
          "Open up this page to review how to work with the different CSS Grid properties like <code>grid-template-columns</code>, <code>grid-gap</code> and more."
        ]
      },
      "quiz-css-grid": {
        "title": "CSS Grid Quiz",
        "intro": ["Test your knowledge of CSS Grid with this quiz."]
      }
    }
  },
  "css-animations": {
    "title": "Learn CSS Animations",
    "summary": ["Create engaging UI motion with accessible CSS animations."],
    "intro": [
      "Add motion with CSS animations while keeping usability in mind."
    ],
    "blocks": {
      "lecture-animations-and-accessibility": {
        "title": "Animations and Accessibility",
        "intro": [
          "In these lessons, you will learn about CSS animations and their accessibility concerns. You will also learn how <code>prefers-reduced-motion</code> can help address those accessibility concerns."
        ]
      },
      "workshop-ferris-wheel": {
        "title": "Build an Animated Ferris Wheel",
        "intro": [
          "You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.",
          "In this workshop, you'll build a Ferris wheel. You'll practice how to use CSS to animate elements, transform them, and adjust their speed."
        ]
      },
      "lab-moon-orbit": {
        "title": "Build a Moon Orbit",
        "intro": [
          "In this lab, you'll create an animation of the moon orbiting the earth.",
          "You'll practice animation properties like <code>animation-name</code>, <code>animation-duration</code>, <code>animation-timing-function</code>, and more."
        ]
      },
      "workshop-flappy-penguin": {
        "title": "Build a Flappy Penguin",
        "intro": [
          "You can transform HTML elements to create appealing designs that draw your reader's eye. You can use transforms to rotate elements, scale them, and more.",
          "In this workshop, you'll build a penguin. You'll use CSS transforms to position and resize the parts of your penguin, create a background, and animate your work."
        ]
      },
      "lab-personal-portfolio": {
        "title": "Build a Personal Portfolio",
        "intro": [
          "In this project, you'll build your own personal portfolio page."
        ]
      },
      "review-css-animations": {
        "title": "CSS Animations Review",
        "intro": [
          "Before you're quizzed on working with CSS animations, you should review what you've learned about them.",
          "Open up this page to review concepts including <code>prefers-reduced-motion</code>, the <code>@keyframes</code> rule and more."
        ]
      },
      "quiz-css-animations": {
        "title": "CSS Animations Quiz",
        "intro": ["Test your knowledge of CSS animations with this quiz."]
      }
    }
  },
  "dev-playground": {
    "title": "Parque de Desarrollo",
    "intro": ["Espacio para crear y probar desafíos."],
    "blocks": {
      "daily-coding-challenges-javascript": {
        "title": "Desafíos Diarios de Programación JavaScript",
        "intro": [
          "Lugar para crear desafíos diarios de programación en JavaScript."
        ]
      },
      "daily-coding-challenges-python": {
        "title": "Desafíos Diarios de Programación en Python",
        "intro": [
          "Lugar para crear desafíos diarios de programación en Python."
        ]
      }
    }
  },
  "full-stack-open": {
    "title": "Full-Stack Open",
    "intro": ["Una buena introducción se agregará aquí."],
    "blocks": {
      "workshop-blog-page": {
        "title": "Build a Cat Blog Page",
        "intro": [
          "In this workshop, you will build an HTML only blog page using semantic elements including the <code>main</code>, <code>nav</code>, <code>article</code> and <code>footer</code> elements."
        ]
      }
    },
    "chapters": {
      "part-0": "Fundamentos de Aplicaciones Web",
      "part-1": "Introducción a React",
      "part-2": "Comunicándose con Servidores",
      "part-3": "Programación de un Servidor con NodeJS y Express",
      "part-4": "Pruebas de Servidores Express, Administración de Usuarios.",
      "part-5": "Pruebas de Aplicaciones React.",
      "part-6": "Gestión Avanzada del Estado.",
      "part-7": "Enrutador de React, hooks personalizados, aplicación de estilos con CSS y webpack.",
      "part-8": "GraphQL",
      "part-9": "TypeScript",
      "part-10": "React Native",
      "part-11": "CI/CD",
      "part-12": "Contenedores",
      "part-13": "Utilizando bases de datos relacionales"
    },
    "modules": {
      "basic-html": "HTML básico"
    },
    "module-intros": {
      "basic-html": {
        "title": "HTML básico",
        "intro": [
          "Aprende cómo construir páginas web simples usando etiquetas HTML para agregar texto, imágenes y enlaces."
        ]
      }
    }
  },
  "daily-coding-challenge": {
    "title": "Desafío de codificación diario",
    "blocks": {
      "daily-coding-challenge": {
        "title": "Desafío de codificación diario"
      }
    }
  },
  "misc-text": {
    "browse-other": "Explora nuestras otras certificaciones gratuitas",
    "courses": "Cursos",
    "requirements": "Requisitos",
    "steps": "Pasos",
    "expand": "Expandir cursos",
    "collapse": "Contraer curso",
    "legacy-header": "Cursos Antiguos",
    "legacy-desc": "Estos cursos ya no forman parte de la ruta de certificación, pero todavía están disponibles para tu aprendizaje.",
    "legacy-go-back": "Ve a la versión actual del plan de estudios.",
    "course-maintenance": "Estos cursos están en mantenimiento. Si no funcionan, puede aprender a ejecutarlos localmente en <0>https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>.",
    "course-disabling-soon": "La versión del navegador de estos cursos se desactivará temporalmente y sus máquinas virtuales se eliminarán. Cualquier progreso en tus máquinas virtuales se perderá. Si tienes cualquier archivo que quieras de ellos, deberías guardarlo en tu ordenador.Disculpamos cualquier inconveniente. Esperamos disponer de una versión mejorada de estos cursos en las próximas semanas.",
    "course-disabled": "Estos cursos no están disponibles temporalmente para ejecutarse en el navegador. Disculpa por cualquier inconveniente. Puedes aprender a ejecutarlos localmente<0> https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>. Esperamos tener una versión mejorada del navegador pronto.",
    "run-locally": "Por ahora, recomendamos ejecutar los cursos localmente en tu ordenador. Puedes aprender cómo en <0>https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databasases-curriculum-using-docker-vscode-and-coderoad</0>.",
    "progress-wont-save": "Su progreso no se guardará en su cuenta de FreeCodeCamp cuando los ejecute localmente.",
    "go-back-to-learn": "Volver a la versión estable del currículum.",
    "read-database-cert-article": "Por favor, lea este post del foro antes de continuar.",
    "enable-cookies": "Debes habilitar las cookies de terceros antes de comenzar.",
    "english-only": "Los cursos de esta sección solo están disponibles en inglés. Solo podemos traducir los títulos y las introducciones en este momento, no las lecciones en sí mismas.",
    "exam-english-only": "Por favor, tenga en cuenta que actualmente el examen de certificación sólo está disponible en Inglés. El resto de los cursos están disponibles en algunos idiomas."
  }
}
