O mapa de conceitos é um dos principais métodos para ilustrar a progressão que um estudante percorre pelos exercícios de conceito.
Objetivos de design
- Fornecer um mapa de conceitos significativo, das ideias simples às complexas.
- Oferecer um caminho rumo à fluência em uma linguagem.
- Ilustrar a progressão pelo conteúdo do curso.
Estrutura
- Nós
- Cada conceito é representado por um nó no mapa de conceitos.
- Ofereça uma referência rápida com o estilo de cada um para indicar o grau de progressão.
- Dominado: conceitos cujo exercício de conceito e todos os exercícios de prática associados estão concluídos.
- Concluído: conceitos cujo exercício de conceito está concluído, mas um ou mais exercícios de prática não estão concluídos.
- Disponível: conceitos cujo exercício de conceito ainda não foi concluído.
- Bloqueado: conceitos cujo exercício de conceito exige que um ou mais exercícios pré-requisitos sejam concluídos.
- Caminhos
- Estabeleça uma relação de um conceito com o próximo.
- Mostre uma relação que indique os blocos de construção de um conceito, remontando até a raiz.
Configuração
A configuração do mapa de conceitos é determinada pelos detalhes do config.json associado a uma trilha.
Mais especificamente, a especificação dos exercícios de conceito determina o formato e o layout do mapa de conceitos.
Você pode ver o código usado para calcular a especificação do mapa de conceitos no GitHub: Exercism/website: determine_concept_map_layout.rb
Um exercício de conceito especifica seus pré-requisitos e também o conceito que ensina quando é concluído.
Se traduzirmos isso para os termos de um grafo:
- Um conceito representa um vértice (também conhecido como nó)
- Um exercício de conceito determina uma ou mais arestas direcionadas entre dois vértices (nós)
É importante notar que nem todas as arestas que poderiam ser especificadas no config.json aparecem no resultado: apenas as arestas do nível anterior são selecionadas.
flowchart TD
Basics --> Integers
Integers --> Strings
Basics --Edge Removed--> Strings
linkStyle 2 stroke-width:2px,fill:none,stroke:red;