🏗️ Miniprojetos Práticos: Engenharia de Sistemas em C (C17/C23)

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 .c reais, compilados com gcc -std=c17 -Wall -Wextra -Wpedantic -Werror e 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)

🗺️ Os 20 miniprojetos

🏛️ Bloco I: Fundamentos da Computação, Arquitetura e Compilação

# 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

🔀 Bloco II: Estruturas de Controle de Fluxo e Laços de Repetição

# 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

🧩 Bloco III: Modularização, Funções e Recursã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

📦 Bloco IV: Agrupamentos de Dados Homogêneos e Segurança de Strings

# 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

🎯 Bloco V: Ponteiros, Aritmética de Endereços e Gestão de Memória no Heap

# 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

🏗️ Bloco VI: Tipos Estruturados, Pré-processador e Persistência de Dados

# 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

⚡ Bloco VII: Estruturas de Dados Dinâmicas e Engenharia de Sistemas

# 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

🏁 Desafio integrador

# 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

⬅️ Voltar à Home da Especialização