Curso gratuito
Curso de Lógica de Programação Avançado
O topo da trilha: estruturas de dados, algoritmos clássicos e pensamento de projeto. A parte final do Curso de Lógica de Programação do ValorFinal, para quem já domina dados, funções e os algoritmos de busca e ordenação e quer pensar como um projetista de software. Aqui você aprende as estruturas de dados que sustentam os programas de verdade: a pilha (o botão desfazer e a pilha de chamadas), a fila (atendimento e prioridade), a lista ligada (nós e ligações), a árvore (hierarquias e busca binária) e o grafo (redes, mapas e conexões). Depois vêm os algoritmos que as movem: busca em largura e em profundidade, o menor caminho, dividir para conquistar, backtracking, merge sort e quick sort, e a ideia de memoização e programação dinâmica para não recalcular à toa. Ainda descobre a tabela hash por dentro (por que o dicionário é quase instantâneo), as máquinas de estado que modelam semáforos e jogos, e os princípios de engenharia que separam código descartável de código que dura: tipo abstrato de dados, modularidade, acoplamento e coesão, invariantes, imutabilidade e funções puras. Cada aula tem um jogo educativo inédito e diagramas 2D próprios. No Laboratório de Estruturas você vê a pilha, a fila e a busca em largura acontecerem passo a passo; no capstone você monta um Mapa de Rotas que encontra o caminho mais curto. Sem promessa de emprego ou fórmula mágica: o raciocínio de estruturas e algoritmos que serve para qualquer linguagem e para o resto da sua vida de programador.
Por Cesar Gargiulo, especialista em segurança da informação. Revisado pela equipe ValorFinal e GuardiaSec.
Comece do jeito certo
Por onde você quer começar?
Escolha o seu ponto de partida. Você pode mudar quando quiser: todo o conteúdo fica liberado.
O que você leva neste curso
O conteúdo é todo gratuito. Veja o que cada plano libera antes de começar.
Conta grátis
R$ 0
- ✓ Ler todas as aulas, sem login
- ✓ Salvar o progresso só neste aparelho
- ✓ Fazer as mini-provas de cada módulo
- ✓ Conquistar e ver todas as medalhas
- ✓ Compartilhar as conquistas no LinkedIn
♛ ValorFinal VIP
Certificado + extras
- ✦ Tudo do plano grátis
- ✦ Certificado de conclusão verificável em PDF com o seu nome
- ✦ Open Badge do certificado (credencial aberta, padrão 1EdTech, para o LinkedIn e carteiras de medalhas)
- ✦ Certificado ancorado no Bitcoin (OpenTimestamps), com comprovante verificável de forma independente
- ✦ Anotações nas aulas, com grifar para anotar e sincronizadas entre aparelhos
- ✦ Valim, o tutor de IA, dentro das aulas
- ✦ Comunidade de dúvidas por aula, com a 1a resposta do Valim
- ✦ Liga semanal de XP e Hall da Fama do curso
- ✦ Progresso salvo na sua conta e sincronizado entre aparelhos (no mesmo computador, cada conta vê só o seu avanço)
- ✦ Portal inteiro sem anúncios
Conteúdo do curso
Módulo 1: Boas-vindas ao avançado
3 aulasNos dois primeiros cursos da trilha você aprendeu a resolver problemas: montar a lógica, escrever o laço, tratar a lista. Agora a régua sobe. O avançado é sobre PROJETAR a solução: escolher a estrutura de dados que guarda a informação do jeito certo e o algoritmo que age sobre ela com eficiência. Este módulo de abertura explica essa virada, apresenta o tipo abstrato de dados (o contrato entre o que uma estrutura faz e como ela faz) e desenha o mapa das estruturas e algoritmos que você vai dominar.
Módulo 2: Pilhas: a estrutura em que o último entra e sai primeiro
4 aulasA pilha é a primeira estrutura abstrata deste curso, e uma das mais úteis. A regra dela cabe numa frase: o último a entrar é o primeiro a sair. É a lógica de uma pilha de pratos, do botão desfazer, do voltar do navegador e da própria forma como o computador organiza as chamadas de funções. Neste módulo você aprende a pensar em pilha, a empilhar e desempilhar só pelo topo, e a usar essa estrutura para resolver um problema clássico: checar se os parênteses de uma expressão estão balanceados.
Módulo 3: Filas: o primeiro a chegar é o primeiro a sair
4 aulasA pilha atende sempre o último que chegou. A fila faz o contrário e o mais justo: o primeiro a entrar é o primeiro a sair, exatamente como a fila do banco ou do caixa do mercado. Este módulo ensina o comportamento FIFO, as duas pontas da fila (a frente de onde se sai e o fim onde se entra), as operações de enfileirar e desenfileirar, a fila de prioridade que fura a ordem por bons motivos, e como decidir entre pilha e fila em cada problema.
Módulo 4: Listas ligadas: a corrente de nós
4 aulasO vetor guarda os valores encostados um no outro, numerados por índice. A lista ligada faz diferente: espalha os valores pela memória e amarra cada um ao próximo por uma ligação, como os vagões de um trem. Você não chega a um valor pelo índice, chega seguindo a corrente. Em troca, inserir e remover no meio fica barato: basta religar duas ligações, sem empurrar ninguém. Este módulo ensina o nó, a inserção barata, a escolha entre lista e vetor e as variações dupla e circular.
Módulo 5: Árvores: hierarquia, busca e percursos
4 aulasPilha, fila e lista guardam dados em fila indiana, um atrás do outro. A árvore quebra essa linha: cada nó pode apontar para vários outros abaixo de si, formando ramos que descem de uma raiz até as folhas. É a estrutura por trás das pastas do computador, do organograma da empresa e dos menus que se abrem em submenus. Este módulo ensina a anatomia da árvore, a árvore binária, a árvore de busca binária (que acha um valor cortando o problema pela metade) e as três formas de percorrer uma árvore.
Módulo 6: Grafos: vértices, arestas e o mundo em rede
4 aulasA árvore organiza uma hierarquia, mas boa parte das relações do mundo não tem chefe nem raiz: amigos que se conhecem, cidades ligadas por estradas, páginas que apontam umas para as outras. Essas redes pedem uma estrutura mais livre, o grafo, feito de vértices (os pontos) e arestas (as ligações). Este módulo apresenta a anatomia do grafo, seus tipos (dirigido ou não, com peso ou sem), as duas formas clássicas de guardá-lo na memória e como enxergar grafos escondidos em problemas do dia a dia.
Módulo 7: Percursos em grafos: largura, profundidade e caminho
4 aulasTer um grafo desenhado não adianta se você não sabe andar por ele. Este módulo ensina as duas maneiras clássicas de visitar os vértices: a busca em largura, que explora por camadas usando uma fila, e a busca em profundidade, que vai fundo primeiro usando pilha ou recursão. Com a busca em largura você acha o caminho mais curto em número de passos, e com o conjunto de visitados você evita andar em círculos para sempre.
Módulo 8: Recursão avançada: dividir, voltar e escolher
4 aulasVocê já sabe que uma função pode chamar a si mesma e parar num caso base. Agora vem o que a recursão faz de verdade quando é bem usada: quebrar um problema grande em metades (dividir para conquistar), enxergar o trabalho total numa árvore de chamadas, tentar caminhos e voltar quando dão errado (backtracking) e decidir com clareza quando a recursão vale mais que um laço. São as técnicas por trás do merge sort, da busca binária e da solução de labirintos.
Módulo 9: Ordenação eficiente: merge sort e quick sort
4 aulasNo intermediário você ordenou com bolha, seleção e inserção. Funcionam, mas ficam lentos quando a lista cresce, porque comparam quase tudo com quase tudo. Este módulo mostra a virada de chave: aplicar dividir para conquistar à ordenação. O merge sort divide a lista pela metade e intercala as metades ordenadas. O quick sort escolhe um pivô e particiona. Os dois chegam a O(n log n), a faixa que dá conta de milhões de itens, e no fim você aprende a escolher qual usar.
Módulo 10: Memoização e a ideia da programação dinâmica
4 aulasA recursão é elegante, mas ingênua ela pode ser um desperdício assustador: o Fibonacci recursivo refaz o mesmo cálculo milhões de vezes. Este módulo mostra o problema, a cura e a filosofia por trás dela. A memoização guarda cada resultado numa tabela e reusa em vez de recalcular. A marca que pede essa técnica são os subproblemas sobrepostos, o mesmo pedacinho aparecendo de novo e de novo. E a programação dinâmica vira o jogo de cabeça para baixo: em vez de descer quebrando o problema, sobe montando a resposta a partir dos casos pequenos, como quem conta os degraus de uma escada.
Módulo 11: Tabelas hash: o dicionário por dentro
4 aulasNo intermediário você usou o dicionário como uma caixa mágica: dá a chave, recebe o valor, quase na hora. Este módulo abre a caixa. Por dentro há um vetor comum e uma função hash que transforma a chave num número de posição, mandando a busca direto ao lugar certo em vez de olhar item por item. Você vai entender a função de dispersão, o problema das colisões e as duas saídas clássicas (encadeamento e sondagem), e por fim por que tudo isso resulta num custo O(1) em média, e quando esse quase instantâneo começa a falhar.
Módulo 12: Máquinas de estado: estados, transições e eventos
4 aulasNem todo programa é só cálculo. Uma catraca, um semáforo, o campo de senha e a tela de um jogo têm uma coisa em comum: guardam uma situação atual e mudam de situação segundo regras fixas quando algo acontece. Essa ideia tem nome, máquina de estado, e é uma das ferramentas mais úteis para domar a lógica confusa dos if aninhados. Este módulo ensina a enxergar estados e transições, a modelar um semáforo, a validar entradas como um autômato e a organizar as telas de um jogo.
Módulo 13: Abstração e modularidade: código que dura
4 aulasUm programa que funciona resolve o problema de hoje; um programa bem organizado aguenta a mudança de amanhã. Este módulo ensina a projetar: dividir o código em módulos com uma responsabilidade cada, esconder o COMO atrás de uma interface simples, medir acoplamento e coesão para saber quando uma peça está saudável, e definir invariantes, as promessas que uma estrutura mantém sempre. É a diferença entre empilhar código e construir algo que você consegue mudar sem medo.
Módulo 14: Imutabilidade e efeitos: código previsível
4 aulasUm dado pode ser mudado no lugar ou copiado com a alteração, deixando o original intacto. Uma função pode só devolver um resultado ou também mexer no mundo lá fora, salvando um arquivo ou mandando um e-mail. Escolher bem entre essas opções é o que separa código confuso de código que se testa em segundos e roda em paralelo sem susto. Este módulo destrincha mutável x imutável, a função pura a fundo, o efeito colateral isolado na borda e a previsibilidade que abre caminho para a concorrência.
Módulo 15: Projeto final: Mapa de Rotas
4 aulasChegou a hora de juntar as peças. Neste projeto você constrói um Mapa de Rotas: um programa que acha o caminho entre dois pontos de uma rede. Primeiro modela a rede como um grafo, depois acha o menor caminho com busca em largura usando uma fila e um conjunto de visitados, monta o programa inteiro e, por fim, traduz o pseudocódigo para uma linguagem de verdade. É o encerramento da Trilha Lógica, e a ponte para escrever código em uma linguagem.
Perguntas frequentes
O curso é gratuito?
Sim. Todo o conteúdo é gratuito; o certificado é para quem assina.
Preciso ter feito os cursos anteriores de lógica?
É o ideal. Este é a parte 3 e final da Trilha Lógica; ele assume que você já organiza dados (matrizes, dicionários, conjuntos), escreve funções e conhece busca e ordenação.
O que eu vou aprender?
As estruturas de dados que os programas de verdade usam (pilha, fila, lista ligada, árvore, grafo e tabela hash), os algoritmos que as movem (busca em largura e profundidade, merge sort, quick sort, backtracking, memoização) e o pensamento de projeto, com um jogo e diagramas por aula.
Preciso escolher uma linguagem?
Não. O curso continua em pseudocódigo, focado no raciocínio de estruturas e algoritmos. Depois dele, o caminho natural é uma linguagem como o Python.
Quanto tempo leva?
São cerca de 14 horas em 15 módulos, fechando com o projeto do Mapa de Rotas, que acha o menor caminho com busca em largura.
Quem fez este curso
Cesar Gargiulo
Especialista em Cloud Security e Segurança da Informação
Cesar tem 19 anos de carreira em tecnologia e segurança da informação. Trabalha com AWS, atua nos times de defesa (Blue Team) e de ataque (Red Team) e lidera projetos de arquitetura segura, resposta a incidentes e testes de invasão. É pós-graduado em Offensive Cyber Security pela FIAP, tem MBA em Governança de TI e certificações em pentest e redes.
O avançado é onde você para de só usar estruturas prontas e passa a entender como elas funcionam por dentro: a pilha, a fila, a árvore, o grafo, a tabela hash. Quem projeta software de verdade sabe qual estrutura casa com cada problema e qual algoritmo a move, da busca em largura ao merge sort. Cada aula traz um jogo e um diagrama para fixar o raciocínio, sem matemática pesada e sem decoreba. É a base de estruturas de dados e algoritmos que serve para qualquer linguagem e para o resto da sua vida de programador.