O mapa de conceitos é um dos principais métodos para ilustrar a progressão de um estudante ao longo dos exercícios de conceito.
Objetivos de design
- Proporcionar um mapa de conceitos significativo, de ideias simples a ideias complexas.
- Proporcionar um caminho rumo à fluência numa linguagem.
- Ilustrar a progressão pelos conteúdos do curso.
Estrutura
- Nós
- Cada conceito é representado por um nó no mapa de conceitos.
- Fornecer uma referência rápida com os respetivos estilos para indicar o grau de progressão.
- Dominado: conceitos cujo exercício de aprendizagem e todos os exercícios de prática associados estão concluídos.
- Concluído: conceitos cujo exercício de aprendizagem está concluído, mas um ou mais exercícios de prática não estão.
- Disponível: conceitos cujo exercício de aprendizagem ainda não foi concluído.
- Bloqueado: conceitos cujo exercício de aprendizagem requer a conclusão de um ou mais exercícios pré-requisitos.
- Caminhos
- Estabelecer uma relação de um conceito com o seguinte.
- Estabelecer uma relação que remete os blocos constituintes de um conceito até à raiz.
Configuração
A configuração do mapa de conceitos é determinada pelos detalhes do config.json associado a um percurso.
Mais concretamente, é a especificação dos exercícios de conceito que determina a forma e a disposição do mapa de conceitos.
Podes 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 os seus pré-requisitos e também o conceito que ensina no final.
Se traduzirmos isto 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 dirigidas entre dois vértices (nós)
É importante notar que nem todas as arestas que poderiam ser especificadas a partir do config.json aparecem no resultado. Só são selecionadas as arestas do nível anterior.
flowchart TD
Basics --> Integers
Integers --> Strings
Basics --Edge Removed--> Strings
linkStyle 2 stroke-width:2px,fill:none,stroke:red;