TKO
Distribuição de tarefas de programação com Git, desenvolvimento na IDE do aluno e análise contínua do processo de aprendizagem.
O TKO é um ecossistema de ensino de programação centrado em prática, versionamento e evidências de aprendizagem. Ele distribui atividades via Git, permite desenvolvimento na IDE local e acompanha progresso de turmas com dados reais de evolução.
Visão Geral
O TKO resolve o problema de acoplar ensino de programação a ambientes artificiais de navegador. Em vez disso, o aluno trabalha no próprio fluxo profissional: editor, terminal, compilador e controle de versão.
Para o professor, o sistema viabiliza distribuição de tarefas personalizadas e acompanhamento de execução com sinais de desenvolvimento, como tempo de resolução, histórico de versões e progresso por atividade.
Fluxo rápido:
- Professor cria ou publica repositórios de questões.
- Aluno baixa a atividade e desenvolve na própria IDE.
- Aluno executa os testes localmente e itera com feedback imediato.
- Aluno envia para o professor via Git, normalmente por um repositório compartilhado no GitHub.
- Professor acompanha evolução, métricas de aprendizado, tentativas e progresso da turma.
Quick Start
Ubuntu / WSL / Codespaces
curl -fsSL https://raw.githubusercontent.com/senapk/tko/main/install.sh | bash
tko --version
tko --help
Saída esperada:
- O comando
tko --versiondeve mostrar a versão instalada. - O comando
tko --helpdeve listar os comandos principais (task,index,collect,config, ...).
Se tko não for encontrado, adicione ~/.local/bin ao PATH e abra um novo terminal:
export PATH="$HOME/.local/bin:$PATH"
Instalações existentes via pipx continuam suportadas:
pipx install tko
Windows
Use o guia recomendado para setup com VS Code, WSL e Ubuntu:
Comandos principais
tko
├── init, open, run
├── task build, show, open, list, tests, download
├── index build, download, update
├── config
│ ├── set, list, reset, self-update, uninstall, clear-cache
│ ├── profile link, status, update, unlink
│ └── source list, add, remove, set
├── collect repo, tasks, skills
├── audit on, off, start, preview, unpack
└── tool mdpp, convert-tests, older, diff, rebase, filter, html, migrate, pull
# No repositório do aluno
tko task download course@labs/fila
tko task show course/labs/fila
tko task open course/labs/fila
# Dentro da pasta da atividade, o caminho é implícito
tko task tests
tko run --language py --diff-mode side --failures first
# Escolher outra atividade explicitamente
tko task open --fzf
# Diretório efetivo para qualquer comando
tko -C caminho/do/repositorio tool migrate --dry-run
tko -C caminho/do/repositorio tool migrate
task show, task open e task tests aceitam caminhos existentes. Sem caminho,
usam a atividade da pasta atual ou abrem um seletor quando não há atividade atual.
task download recebe uma chave, pois a atividade ainda não foi baixada.
--fzf/-f abre o seletor; --filter/-F filtra código antes da execução.
O idioma da interface usa --ui-language pt|en antes do comando; a linguagem de
programação usa --language/-l em init, run e collect skills.
Veja a referência da CLI para parâmetros e exemplos completos.
Casos de Uso
- Distribuição de listas e atividades de programação via Git.
- Desenvolvimento local na IDE do aluno, sem dependência de browser.
- Correção automática com testes e iteração rápida.
- Acompanhamento docente com indicadores de progresso e histórico.
Documentação por Perfil
- Conceitos e arquitetura: TKO: conceitos e organização
- Professor da disciplina (distribui conteúdo e coleta repositórios dos alunos via Git/GitHub): Uso pelos professores, Guia para criar repositórios de tarefas
- Aluno da disciplina: Uso do TKO pelos alunos, Fazendo as atividades
- Aluno em estudo autônomo (fora de disciplina): Testando sem estar em uma disciplina, Repositórios de referência
- Instalação e ambiente: Instalação
- Desenvolvedores: Uso pelos desenvolvedores
- Ferramentas auxiliares: Ferramentas
Repositórios de referência:
Instalação
- Guia recomendado: Windows com WSL e Ubuntu
- Ubuntu / WSL: Git, Python e TKO
- GitHub Codespaces
- VS Code no Ubuntu / WSL
- Linguagens - Java, C, C++, Python, TypeScript, Go
- Outros sistemas operacionais
- Windows sem WSL - legado
Uso do TKO pelos alunos
- Testando sem estar em uma disciplina
- Como organizar seus repositórios da disciplina
- Fazendo as atividades
Uso pelos professores
- Conceitos e organização do TKO
- Gestão de repositórios de turma
- Guia para criar repositórios de tarefas
- Marcadores e tipos de atividades
- Criando testes e conversões
- Gamificação e progressão
- Relizando provas com modo auditoria
- Analisando a timeline de execução de uma tarefa
Uso pelos desenvolvedores
Ferramentas
- Filtragem e Rascunhos
- Markdown Preprocessor
- Rebase de links markdown
- Build task: pipeline de mdpp, filter e drafts
- Build index: manter e atualizar índices
Referência e suporte
- Índice da documentação
- Guia de contribuição
- Arquitetura técnica
- FAQ
- Referência rápida da CLI
- Especificação de formatos
- Exemplos end-to-end
- Ciclo de vida de tarefas
- Suporte a linguagens
- Guia de testes e QA
Atualizando o TKO
Para a instalação recomendada, use:
tko config self-update
Para instalações existentes via pipx, use:
pipx upgrade tko
Contribuição
Contribuições são bem-vindas via pull request.
Fluxo mínimo para validar mudanças localmente:
uv run pytest -q
Se possível, mantenha mudanças pequenas, com descrição clara do problema e da solução no PR.
Licença
Este projeto está sob a licença MIT. Veja LICENSE.
Release files for tko 12.0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tko-12.0.12.tar.gz | 263.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tko-12.0.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 601.5 kB
Release files / tko-12.0.12.tar.gz
| Download URL | tko-12.0.12.tar.gz |
|---|---|
| Size | 263.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b30c39274e23a17f9f9b020c16450a682880462edcc26d50cd1e9b827434c4c
|
|
BLAKE2b-256 checksum How to use checksums |
809a54c357c8d4fc86d336027fc557988fc4d6963da622b108a3aeb3fa486ce8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / tko-12.0.12-py3-none-any.whl
| Download URL | tko-12.0.12-py3-none-any.whl |
|---|---|
| Size | 338.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
317432e0b1f23d9c42803a0deb9210e57049fb7d79f44a148db710edbafa6a84
|
|
BLAKE2b-256 checksum How to use checksums |
3f61c82ce9376a2e4c285c403d1dc406ba77d12ecff7c74613df6b4dfe20381c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|