Roteiro de habilidades para alinhar o catálogo WOKDEX com as disciplinas acadêmicas segundo o referencial ACM CS1–CS3. Cada skill é classificada em três tiers de domínio: Básicas, Desejadas e Avançadas.
skill_nature = concept)
para tópicos "ensináveis" e instrumentos (instrument) para algoritmos concretos
ou padrões de exercício. Temas de enunciado ficam em context (temático). Os slug
em inglês refletem a padronização recomendada no courses.json (acm_level).
Visão clássica por nível de progressão curricular; útil para comparar com bibliografia
internacional e com o campo acm_level do corpus.json.
Variáveis, fluxo, estruturas básicas, vetores/strings, funções introdutórias, matrizes.
basic-programmingvariables, input-output, selection / condicionaiswhile-loop, for-looparrays — acesso e percurso simplesexpressoes-precedencia-operadores (ou equivalente de expressões)do-while, nested-loopsstrings, charactersfunctions — definição, function-parameters, scope-lifetimevetor-varredura-busca-linearmatricesrecursion — introdução leve, sem exigir provasforeach / iteradores (se a linguagem do curso usar)file-handling / E/S em arquivo (opcional por ementa)Complexidade, recursão, ordenação, busca, estruturas lineares e hash.
complexityrecursion — exemplos clássicossorting — bubble-sort, selection-sort, insertion-sortbinary-searchstacks, queues, dynamic-arraymergesort, quicksortlista — listas encadeadas simples / duplashashing — mapa / conjunto, colisões (conceito)counting-sort, radix-sort, bucket-sortdeque / filas especiaistwo-pointers-array em vetor ordenadoÁrvores de busca, heaps, strings avançadas, grafos e fluxo.
nonlinear-structures — trees, binary-tree-traversals, bst-operationsgrafos — representação, BFS, DFStopological-sort (intro)minimum-spanning-tree + union-find-dsutree-rotations-avl / balanceamento (conforme ementa)priority-queue-heapford-fulkerson ou equivalente)paradigms — greedy-algorithms, dynamic-programming introdutóriostrie-suffix, huffman-coding, lzw-compressionsegment-tree, fenwick-tree, lazy / persistentecentroid-decomposition, emparelhamento / coloraçãodigit-dp como extensão de dynamic-programmingVisão consolidada de quais tópicos são núcleo (●), reforço/transição (○) ou fora do escopo (—) em cada nível.
Skill / slug |
CS1 | CS2 | CS3 |
|---|---|---|---|
| 🟢 Programação Básica (raiz CS1) | |||
basic-programming — raiz do domínio CS1 |
● | ○ | — |
variables — declaração e tipos primitivos |
● | ○ | — |
input-output — leitura e escrita padrão |
● | ○ | — |
selection — if / else / switch |
● | ○ | — |
while-loop |
● | ○ | — |
for-loop |
● | ○ | — |
arrays — acesso e percurso simples |
● | ○ | — |
expressoes-precedencia-operadores |
○ | — | — |
do-while |
○ | — | — |
nested-loops |
○ | — | — |
strings |
○ | — | — |
characters |
○ | — | — |
functions + function-parameters + scope-lifetime |
○ | — | — |
vetor-varredura-busca-linear |
○ | — | — |
matrices |
○ | — | — |
recursion — introdução leve (extra em CS1) |
○ extra | ● | ○ |
foreach / iteradores |
○ extra | — | — |
file-handling — E/S em arquivo |
○ extra | — | — |
| 🔵 Estruturas e Algoritmos (raiz CS2) | |||
complexity — notação assintótica O(n) |
— | ● | ○ |
sorting — raiz de algoritmos de ordenação |
— | ● | ○ linear |
bubble-sort |
— | ● | — |
selection-sort |
— | ● | — |
insertion-sort |
— | ● | — |
binary-search |
— | ● | ○ |
stacks |
— | ● | ○ |
queues |
— | ● | ○ |
dynamic-array |
— | ● | ○ |
mergesort |
— | ○ | — |
quicksort |
— | ○ | — |
lista — listas encadeadas simples/duplas |
— | ○ | ○ |
hashing — mapa / conjunto, colisões |
— | ○ | ● |
counting-sort |
— | ○ extra | ○ |
radix-sort |
— | ○ extra | ○ |
bucket-sort |
— | ○ extra | ○ |
deque |
— | ○ extra | — |
two-pointers-array |
— | ○ extra | ○ |
| 🟠 Estruturas Avançadas e Grafos (raiz CS3) | |||
nonlinear-structures — raiz do domínio CS3 |
— | — | ● |
trees |
— | — | ● |
binary-tree-traversals |
— | — | ● |
bst-operations |
— | — | ● |
grafos — representação, BFS, DFS |
— | — | ● |
topological-sort |
— | — | ● |
minimum-spanning-tree |
— | — | ● |
union-find-dsu |
— | — | ● |
tree-rotations-avl |
— | — | ○ |
priority-queue-heap |
— | — | ○ |
dijkstra |
— | — | ○ |
bellman-ford |
— | — | ○ |
floyd-warshall |
— | — | ○ |
ford-fulkerson — fluxo em redes |
— | — | ○ |
| 🟣 Paradigmas | |||
greedy-algorithms |
— | ○ | ● |
dynamic-programming |
— | ○ | ● |
divide-and-conquer |
— | ○ | ○ |
simulation-ad-hoc |
— | ○ | ○ |
| 🟡 Avançadas (Extra — CS3) | |||
trie-suffix |
— | — | ○ extra |
huffman-coding |
— | — | ○ extra |
segment-tree |
— | — | ○ extra |
fenwick-tree |
— | — | ○ extra |
centroid-decomposition |
— | — | ○ extra |
digit-dp |
— | — | ○ extra |
dp-bitmask |
— | — | ○ extra |
lzw-compression |
— | — | ○ extra |
● = núcleo do nível | ○ = reforço ou transição | — = fora do escopo principal.
O detalhe por slug (Básicas / Desejadas / Avançadas) está nos cartões acima.
Lista completa de slug para uso nos campos skills[] dos exercícios WOKDEX.
basic-programming
variables
input-output
selection
while-loop
for-loop
arrays
expressoes-precedencia-operadores
do-while
nested-loops
strings
characters
functions
function-parameters
scope-lifetime
vetor-varredura-busca-linear
matrices
recursion
foreach
file-handling
complexity
recursion
sorting
bubble-sort
selection-sort
insertion-sort
binary-search
stacks
queues
dynamic-array
mergesort
quicksort
lista
hashing
counting-sort
radix-sort
bucket-sort
deque
two-pointers-array
nonlinear-structures
trees
binary-tree-traversals
bst-operations
grafos
topological-sort
minimum-spanning-tree
union-find-dsu
tree-rotations-avl
priority-queue-heap
dijkstra
bellman-ford
floyd-warshall
ford-fulkerson
greedy-algorithms
dynamic-programming
trie-suffix
huffman-coding
lzw-compression
segment-tree
fenwick-tree
centroid-decomposition
digit-dp
dp-bitmask