Curso gratuito

Curso de Lógica de Programação Avançado

Trilha Lógica: parte 3 de 3 Parte 1Parte 2Parte 3

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.

Valim, o professor do Curso de Lógica de Programação Avançado
15 módulos, 59 aulas14 horas de conteúdo Certificado para assinantes Atualizado em 12/07/2026
Velocidade

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
♛ Conhecer o VIP

Conteúdo do curso

Capa do módulo 1: Boas-vindas ao avançado

Módulo 1: Boas-vindas ao avançado

3 aulas

Nos 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.

Capa do módulo 2: Pilhas: a estrutura em que o último entra e sai primeiro

Módulo 2: Pilhas: a estrutura em que o último entra e sai primeiro

4 aulas

A 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.

Capa do módulo 3: Filas: o primeiro a chegar é o primeiro a sair

Módulo 3: Filas: o primeiro a chegar é o primeiro a sair

4 aulas

A 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.

Capa do módulo 4: Listas ligadas: a corrente de nós

Módulo 4: Listas ligadas: a corrente de nós

4 aulas

O 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.

Capa do módulo 5: Árvores: hierarquia, busca e percursos

Módulo 5: Árvores: hierarquia, busca e percursos

4 aulas

Pilha, 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.

Capa do módulo 6: Grafos: vértices, arestas e o mundo em rede

Módulo 6: Grafos: vértices, arestas e o mundo em rede

4 aulas

A á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.

Capa do módulo 7: Percursos em grafos: largura, profundidade e caminho

Módulo 7: Percursos em grafos: largura, profundidade e caminho

4 aulas

Ter 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.

Capa do módulo 8: Recursão avançada: dividir, voltar e escolher

Módulo 8: Recursão avançada: dividir, voltar e escolher

4 aulas

Você 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.

Capa do módulo 9: Ordenação eficiente: merge sort e quick sort

Módulo 9: Ordenação eficiente: merge sort e quick sort

4 aulas

No 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.

Capa do módulo 10: Memoização e a ideia da programação dinâmica

Módulo 10: Memoização e a ideia da programação dinâmica

4 aulas

A 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.

Capa do módulo 11: Tabelas hash: o dicionário por dentro

Módulo 11: Tabelas hash: o dicionário por dentro

4 aulas

No 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.

Capa do módulo 12: Máquinas de estado: estados, transições e eventos

Módulo 12: Máquinas de estado: estados, transições e eventos

4 aulas

Nem 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.

Capa do módulo 13: Abstração e modularidade: código que dura

Módulo 13: Abstração e modularidade: código que dura

4 aulas

Um 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.

Capa do módulo 14: Imutabilidade e efeitos: código previsível

Módulo 14: Imutabilidade e efeitos: código previsível

4 aulas

Um 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.

Capa do módulo 15: Projeto final: Mapa de Rotas

Módulo 15: Projeto final: Mapa de Rotas

4 aulas

Chegou 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.

CG

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.

Conteúdo revisado pela equipe ValorFinal e GuardiaSec Ver o perfil no LinkedIn