20 miniprojetos, um por capítulo da especialização. Cada um é um tutorial autoguiado no hub de projetos: você parte de um esqueleto que já compila, avança em passos com checkpoints verificáveis (comando + saída esperada) e só no fim abre o gabarito comentado.
✅ Código testado: o esqueleto e o gabarito de cada miniprojeto são arquivos
.creais, compilados comgcc -std=c17 -Wall -Wextra -Wpedantic -Werrore executados no CI a cada publicação. As saídas mostradas nos checkpoints são as que o programa realmente produz.
| Ambiente | Projetos |
|---|---|
gcc 8+ (Windows com MinGW, Linux ou macOS) |
01 a 19 |
make (Linux, macOS, WSL ou MSYS2) |
17 |
| POSIX: Linux, macOS ou WSL2 | 20 (threads e sockets) |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 01 | Conversor de Bases e Auditor de Arquitetura | Sequência pura com printf: von Neumann, pipeline de compilação e conversão de bases à mão |
| 02 | Auditor de Tipos e Limites de Memória | Tipos primitivos, stdint.h, sizeof, const e casting na divisão inteira |
| 03 | Terminal de Check-in e Sanitização de Buffers | fgets, scanf, getchar/putchar e o bug do newline residual no stdin |
| 04 | Calculadora Bitwise e Cifra XOR | Cifra XOR e máscara de permissões com & | « » ~, sem if |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 05 | Motor de Decisão e Máquina de Estados | if/else, switch-case com fall-through e operador ternário num sensor de temperatura |
| 06 | Caixa Eletrônico com Laço Indeterminado | do-while com sentinela, acumulador de saldo e validação de saque |
| 07 | Analisador de Primos com Laços Aninhados | for aninhado, break e continue na busca de primos; noção de Big-O |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 08 | Utilitário CLI Modular com argc/argv | Funções com protótipo, passagem por valor, static e argumentos argc/argv |
| 09 | Torres de Hanói Recursivas | Recursão com caso base, contador static e conferência pela fórmula 2^n - 1 |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 10 | Busca Binária e Benchmark de Ordenação | Arrays como parâmetro, Bubble Sort e busca binária com contagem de comparações |
| 11 | Matrizes 2D e Filtro de Convolução | Matrizes 2D, row-major e filtro de convolução 3x3 (blur) com borda replicada |
| 12 | Analisador Léxico de Strings Seguro | Strings seguras (CERT C STR31-C): fgets, string.h, ctype.h e strncpy com terminador |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 13 | Passagem por Referência com Ponteiros | Ponteiros, & e *: troca por referência e múltiplos resultados via parâmetros de saída |
| 14 | Tabela de Despacho com Ponteiros de Função | Tabela de despacho com ponteiros de função, qsort com comparador e aritmética de ponteiros |
| 15 | Vetor Dinâmico Auto-expansível no Heap | malloc, realloc seguro com ponteiro temporário, crescimento geométrico e free |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 16 | Decodificador de Pacotes com Structs, Unions e Bit-Fields | struct, enum, union, bit-fields, padding e endianness num cabeçalho binário |
| 17 | Biblioteca Modular com Makefile | Módulos .h/.c com include guards, macros seguras, stringizing e Makefile com dependências |
| 18 | Mini SGBD Binário com Acesso Direto | Registros de tamanho fixo em arquivo binário: fwrite, fseek O(1), fread e atualização no lugar |
| # | Miniprojeto | O que pratica |
|---|---|---|
| 19 | Fila de Prioridades com Árvore Binária de Busca | Árvore binária de busca no heap: inserção recursiva, in-order, busca e liberação pós-ordem |
| 20 | Servidor de Telemetria TCP com Threads e Mutex | Capstone POSIX: pthreads com mutex, servidor TCP (socket/bind/listen/accept) e persistência binária |
| # | Projeto | O que pratica |
|---|---|---|
| 21 | Mini-SGBD Binário com Alocação Dinâmica em C Puro | Evolução do Miniprojeto 18: C11/C17, Ponteiros, Structs, Arquivos Binários e Valgrind |