Ciência da Computação
TL;DR
A camada do porquê — a ciência atemporal que sustenta qualquer prática de desenvolvimento: o conhecimento que sobrevive à troca de linguagem, framework ou paradigma. Algoritmos, estruturas de dados, teoria da computação, matemática, a máquina física, linguagens, banco de dados e redes.
Esta camada reúne os fundamentos científicos da computação — o terreno comum que conecta todas as outras estantes técnicas. Onde a Engenharia pergunta como construir e operar bem e a Tecnologia pergunta como fazer em X, a Ciência da Computação pergunta por que funciona. É o andar mais estável do grimório: o que se aprende aqui não envelhece com a próxima versão do framework.
Algoritmos e Estruturas de Dados
- Algoritmos — galho: análise de complexidade (Big-O, recorrências, Teorema Mestre) e algoritmos clássicos (ordenação, busca, two pointers, divisão e conquista, DP, greedy, backtracking)
- Estruturas de Dados — galho: arrays, listas, hash, árvores, heaps, tries, grafos e especializadas, com comparação de implementação Java/TS/Python/Go
Teoria e Matemática
- Teoria da Computação — galho: o que pode ser computado e a que custo — a torre de poder (autômatos finitos, de pilha, máquina de Turing), linguagens formais e hierarquia de Chomsky, computabilidade (problema da parada, reduções, teorema de Rice) e complexidade formal (P, NP, NP-completude, P vs NP). Dono do tratamento formal de P/NP que Algoritmos defere
- Matemática para Computação — galho: matemática discreta como ferramenta (lógica proposicional e de predicados, técnicas de prova e indução matemática/estrutural, somatórios/logaritmos/crescimento, conjuntos/funções/relações, combinatória, cardinalidade e diagonalização, teoria dos números e aritmética modular, grafos e árvores como objeto matemático, probabilidade e estruturas aleatorizadas). Dona das ferramentas que Algoritmos e Teoria da Computação usam
A máquina por baixo
- Organização de Computadores — galho: a máquina física por baixo do SO — representação binária/IEEE 754/endianness, lógica digital, von Neumann e o ciclo de instrução, ISA/assembly, pipeline, hierarquia de memória e cache, execução fora de ordem/especulação, multicore/coerência (MESI), SIMD/GPU, I/O/DMA e a equação de performance (CPI/Amdahl). Mechanical sympathy: por que
intestoura, por que floats enganam, por que cache manda na performance - Sistemas Operacionais — galho: a teoria do SO (kernel × user, system calls, processos e threads, escalonamento, memória virtual e paginação, thrashing, IPC, I/O, sistemas de arquivos, journaling, virtualização e containers) — conceitual, linka Infraestrutura para o uso
- Concorrência e Paralelismo — galho: os perigos universais (race conditions, deadlock, atomicidade/visibilidade/ordenação), primitivas (locks, semáforos, atômicos, STM) e os cinco modelos de concorrência (memória compartilhada, CSP, atores, event loop, dados), com leis de escala e padrões — stack-agnóstico
Linguagens
- Paradigmas de Programação — galho: os modelos mentais de programar (imperativo, OO, funcional, declarativo, lógico, reativo), imutabilidade e efeitos, sistemas de tipos e linguagens multi-paradigma
- Compiladores e Linguagens — galho: a engenharia de traduzir código em algo que roda — o pipeline (front/middle/back-end), análise léxica (scanner, tokens), parsing (gramáticas, AST, recursive descent/Pratt, LL e LR), análise semântica e checagem de tipos (inferência Hindley-Milner), IR e SSA, otimização (dataflow, constant folding/DCE/inlining), geração de código e alocação de registradores, runtime (stack frames, garbage collection), JIT (tiered compilation, deoptimization), linking/loading e bootstrapping/Trusting Trust. A teoria (autômatos/gramáticas) vira a construção do tradutor — não tutorial de toolchain
Dados e Redes
- Banco de Dados — galho: modelo relacional, SQL, normalização, transações (ACID), índices/EXPLAIN, performance, concorrência, distribuídos e NoSQL
- Redes e Protocolos — galho: modelo de camadas, TCP/UDP/DNS/TLS, HTTP (métodos, caching, CORS, HTTP/2-3), REST/GraphQL/gRPC, WebSocket/SSE, latência, load balancing/CDN e resiliência
Referência
- Dicionário de Ciência da Computação — glossário de termos fundamentais
Veja também
- Domínios — índice das quatro camadas
- Engenharia — onde a teoria daqui vira prática de construção: Orientação a Objetos e SOLID (aplicam Paradigmas), Testes, Segurança Conceitual e Complexidade de Software
- Sendas — trilhas que cruzam a ciência com as outras camadas