El mapa de conceptos es uno de los principales métodos para ilustrar la progresión que sigue un estudiante a lo largo de los ejercicios de concepto.
Objetivos de diseño
- Ofrecer un mapa de conceptos significativo, que vaya de las ideas simples a las complejas.
- Ofrecer un camino hacia la fluidez en un lenguaje.
- Ilustrar la progresión a lo largo del contenido del curso.
Estructura
- Nodos
- Cada concepto se representa con un nodo en el mapa de conceptos.
- Proporcionan una referencia rápida con su estilo para indicar el grado de progresión.
- Dominado: conceptos cuyo ejercicio de aprendizaje y todos los ejercicios de práctica asociados están completados.
- Completado: conceptos cuyo ejercicio de aprendizaje está completado, pero uno o varios ejercicios de práctica no lo están.
- Disponible: conceptos cuyo ejercicio de aprendizaje aún no se ha completado.
- Bloqueado: conceptos cuyo ejercicio de aprendizaje requiere que se complete uno o varios ejercicios prerrequisito.
- Caminos
- Establecen una relación de un concepto con el siguiente.
- Establecen una relación que indica los bloques que componen un concepto hasta la raíz.
Configuración
La configuración del mapa de conceptos viene determinada por los detalles del config.json asociado a un track.
En concreto, la especificación de los ejercicios de concepto determina la forma y la disposición del mapa de conceptos.
Puedes ver el código que se usa para calcular la especificación del mapa de conceptos en GitHub: Exercism/website: determine_concept_map_layout.rb
Un ejercicio de concepto especifica sus prerrequisitos y también el concepto que enseña al completarse.
Si lo expresamos en los términos de un grafo:
- Un concepto representa un vértice (también conocido como nodo).
- Un ejercicio de concepto determina una o varias aristas dirigidas entre dos vértices (nodos).
Es importante tener en cuenta que no todas las aristas que podrían especificarse desde el config.json aparecen en el resultado: solo se seleccionan las aristas del nivel anterior.
flowchart TD
Basics --> Integers
Integers --> Strings
Basics --Edge Removed--> Strings
linkStyle 2 stroke-width:2px,fill:none,stroke:red;