ENADE Ciência da Computação cheat sheet
ENADE Ciência da Computação · Keep the key ideas within reach.
Conteúdos programáticos das diretrizes curriculares
A formação em Ciência da Computação articula três eixos: formação básica (matemática, física, lógica), formação tecnológica (algoritmos, arquitetura, engenharia de software, redes, banco de dados) e formação complementar (humanidades, gestão, ética).
Complexidade assintótica: O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2^n) < O(n!); busca binária é O(log n) e requer vetor ordenado.
Estruturas lineares (pilha LIFO, fila FIFO, lista) diferem de não lineares (árvore, grafo); árvore binária de busca tem busca média O(log n) e pior caso O(n).
Modelo relacional: chave primária identifica a tupla, chave estrangeira referencia outra tabela; normalização 1FN (atributos atômicos), 2FN (sem dependência parcial) e 3FN (sem dependência transitiva).
Arquitetura de computadores: hierarquia de memória (registradores, cache, RAM, disco) equilibra custo, capacidade e latência; pipeline aumenta vazão e sofre hazards de dados, controle e estruturais.
Redes: modelo TCP/IP tem camadas aplicação, transporte, rede e enlace; TCP é orientado a conexão e confiável, UDP é não orientado a conexão e sem garantia de entrega.
Engenharia de software: ciclo de vida em cascata é sequencial e rígido; métodos ágeis (Scrum, XP) usam iterações curtas, entregas incrementais e feedback contínuo.
Sistemas operacionais: escalonamento de processos, gerência de memória (paginação, segmentação), concorrência (exclusão mútua, semáforos) e deadlock (exclusão mútua, posse e espera, não preempção, espera circular).
Lógica e matemática discreta sustentam prova de correção: indução matemática, invariantes de laço, relações de equivalência e ordem, grafos e contagem.
Habilidades e competências da área de formação
Interpretar um problema, abstrair o modelo computacional adequado, especificar a solução e justificar as escolhas técnicas com argumentos formais.
Analisar algoritmos quanto a corretude (pré-condição, pós-condição, invariante) e eficiência (tempo e espaço no pior caso e caso médio).
Projetar e implementar software com modularidade, coesão alta e acoplamento baixo, aplicando testes e refatoração.
Modelar dados e escrever consultas relacionais, avaliando integridade, redundância e desempenho de índices.
Diagnosticar falhas em sistemas computacionais integrando conhecimentos de hardware, sistema operacional e rede.
Avaliar impactos éticos, legais, sociais e ambientais da computação, incluindo privacidade, segurança e acessibilidade.
Trabalhar em equipe e comunicar resultados técnicos de forma clara em relatórios e apresentações.
Aprender de forma autônoma e acompanhar a evolução tecnológica, relacionando teoria e prática em projetos.