PLANO DE ESTUDO (4 SEMANAS) — TAXONOMIA DE BLOOM APLICADA**
SEMANA 1 — Fundamentos (Listas, Arrays e Big O) 1) MEMORIZAR * Memorizar termos básicos: “algoritmo”, “complexidade”, “array”, “lista”, “função”. * Flashcards: Crie cartões no Anki com: * Notações Big O mais comuns (O(1), O(n), O(log n), O(n²)) * Operações básicas de listas (insert, delete, search) 2) COMPREENDER * Assistir aulas iniciais (Gustavo Guanabara ou Khan Academy). * Ler capítulo de “Arrays” e “Big O” no Grokking Algorithms. * Explicar para si mesma (em voz alta) a diferença entre lista e array. 3) APLICAR * Resolver 10 exercícios fáceis no HackerRank usando listas. Implementar: * Busca linear * Busca binária * Inserção e remoção em listas 4) ANALISAR * Comparar eficiência da busca linear x busca binária. * Dado um código simples, identificar o Big O. * Analisar vantagens/desvantagens de arrays estáticos vs listas dinâmicas.5) AVALIAR * Simular uma mini–entrevista consigo mesma: “Qual o melhor tipo de estrutura para armazenar X?” * Justificar por que escolheria determinada solução em um problema.6) CRIAR (PROJETO DA SEMANA) Analisador de Lista de Compras * Processa uma lista, remove duplicadas, organiza, mostra dados. * Descrever a lógica e justificar a complexidade de cada função. SEMANA 2 — Estruturas Lineares (Pilhas, Filas, Hash Maps e Strings) Objetivos gerais * Dominar estruturas usadas em 90% das entrevistas iniciais. 1) MEMORIZAR * Criar flashcards com: * Principais operações de pilha: push, pop, peek * Filas: enqueue, dequeue * Hash Tables: chave → valor 2) COMPREENDER * Assistir vídeos explicativos (pilhas e filas com exemplos visuais). * Ler capítulo sobre Hash Maps no Grokking Algorithms. * Explicar com suas palavras: “Por que Hash Tables são rápidas?” 3) APLICAR * Implementar: * Pilha e fila do zero (lista como base) * Função de verificação de parênteses válidos * Contagem de frequência de caracteres com hash map 4) ANALISAR * Comparar pilha x fila: quando usar cada uma? * Comparar hashing vs busca linear. * Dado um problema de string, identificar qual estrutura otimiza. 5) AVALIAR * Resolver exercícios do LeetCode (Valid Parentheses, First Unique Character). * Analisar sua solução: * O que faria diferente? * Dá pra reduzir complexidade? 6) CRIAR (PROJETO DA SEMANA) Validador de Expressões Matemáticas * Usa pilha para verificar estrutura. * Usa hash map para contagens. * Gera feedback ao usuário. SEMANA 3 — Árvores, Grafos, Ordenação e Busca Objetivos gerais * Avançar para estruturas hierárquicas e algoritmos clássicos. 1) MEMORIZAR * Flashcards com termos: * Nó, raiz, folha, BFS, DFS * Tipos simples de ordenação 2) COMPREENDER * Assistir aulas USP/Coursera sobre árvores e grafos. * Explicar a diferença entre BFS e DFS usando exemplos visuais * Entender por que algoritmos de ordenação são essenciais. 3) APLICAR * Implementar: * Árvore binária simples (inserir e percorrer) * BFS e DFS em grafo representado por dicionário* Bubble Sort, Selection Sort e Insertion Sort 4) ANALISAR * Comparar Big O dos algoritmos de ordenação. * Identificar quando BFS é melhor que DFS e vice-versa. * Revisar limites de árvores não balanceadas (análise teórica). 5) AVALIAR * Resolver 3 exercícios fáceis/médios no LeetCode usando grafos/árvores. * Avaliar vantagens e desvantagens das suas soluções. 6) CRIAR (PROJETO DA SEMANA) Mapa de Amizades * Implementação de grafo (lista de adjacência). * BFS calcula nível de proximidade entre pessoas. * Documentar raciocínio e complexidade. SEMANA 4 — Entrevistas Técnicas + Projeto Final Objetivos gerais * Consolidar conteúdo. * Praticar lógica de entrevistas. * Produzir projeto forte para currículo. 1) MEMORIZAR * Relembrar: pilha, fila, hash map, árvore, grafo.* Flashcards com padrões de problemas de entrevista: * Two Sum, Merge Sorted Array, Missing Number etc. 2) COMPREENDER* Assistir vídeos de simulações de entrevistas.* Identificar padrões que se repetem.* Explicar as etapas de raciocínio exigidas.3) APLICAR * Resolver 15 exercícios (LeetCode Easy).* Praticar resolução cronometrada (20 min por problema).* Implementar novamente: pilha, fila, hash map — do zero.4) ANALISAR * Revisar suas próprias soluções e identificar gargalos. * Comparar abordagens distintas para o mesmo problema. * Analisar trade-offs de memória vs tempo.5) AVALIAR * Fazer simulação de entrevista consigo mesma (ou via plataformas). * Avaliar clareza, eficiência, justificativa das escolhas. * Revisar erros mais frequentes e corrigi-los.6) CRIAR (PROJETO FINAL) ** Estrutura: * Lista → tarefas * Hash map → categorias/tags * Ordenação → prioridades * Fila → tarefas agendadas* Entregar: * README explicando cada função * Análise de complexidade * Prints ou vídeo curto de funcionamento* Subir no GitHub* Adicionar no currículo como “Projeto técnico 2026”