Escolha seu idioma
Curso de Algoritmos e Estrutura de Dados em Python
+ de 400 mil profissionais na plataforma
Exclusivo para empresas

Curso de Algoritmos e Estrutura de Dados em Python

4,5

Domine Python e Estruturas de Dados e Algoritmos desde o básico — sem atalhos, sem rodeios. Este curso leva você desde a escrita do seu primeiro script em Python até a resolução de problemas complexos de grafos e programação dinâmica. Seja mirando nas melhores empresas de tecnologia ou aprimorando suas habilidades de engenharia, esta é a base técnica completa que você precisa.

Dedika para alunos

O que seu time vai dominar:

Você vai construir uma base sólida em Python, abordando sintaxe, coleções e design orientado a objetos antes de mergulhar nos tópicos principais de Estruturas de Dados e Algoritmos. Você vai implementar arrays, listas encadeadas, pilhas, filas, árvores e grafos totalmente do zero. Você vai analisar a complexidade de tempo e espaço usando a notação Big-O para cada algoritmo principal. Você vai dominar ordenação, busca, recursão e programação dinâmica com código real. Você também vai praticar padrões de programação competitiva e técnicas de simulação de entrevistas projetadas para prepará-lo para processos seletivos técnicos nas principais empresas de tecnologia.

Como seu time estuda de forma prática Curso de Algoritmos e Estrutura de Dados em Python

Como seu time pratica Curso de Algoritmos e Estrutura de Dados em Python

Profissionais dessas empresas estudam na Dedika

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Conteúdo do curso

8 Capítulos • 40 AulasDuração entre 4 e 360 horas (você decide)

Capítulo 1Ver detalhes

Python Programming Foundations

  • Aula 1 • Funções e Escopo

    Define funções reutilizáveis com parâmetros, valores de retorno e regras de escopo. Prepara os alunos para encapsular a lógica de DSA em unidades limpas e testáveis.

  • Aula 2 • Fluxo de Controle e Iteração

    Ensina ramificações if/elif/else, loops for e while e instruções de controle de loop. Permite que os alunos expressem lógica algorítmica em Python.

  • Aula 3 • Tratamento de Erros e Depuração

    Apresenta exceções, blocos try/except e ferramentas de depuração. Equipa os alunos para escrever código robusto e diagnosticar falhas em programas complexos.

  • Aula 4 • Tipos de Dados Principais e Variáveis

    Aborda inteiros, floats, strings, booleanos e conversão de tipos. Fornece os primitivos de dados usados em toda implementação de algoritmo adiante.

  • Aula 5 • Configurando o Ambiente Python

    Instale o Python, configure um ambiente virtual e escolha uma IDE. Estabelece a cadeia de ferramentas da qual todos os capítulos subsequentes dependem.

Capítulo 2Ver detalhes

Coleções e Comprehensions em Python

  • Aula 1 • Iteradores, Geradores e Avaliação Preguiçosa

    Explica o protocolo do iterador, funções geradoras e yield. Permite a travessia com eficiência de memória de grandes conjuntos de dados em problemas de DSA.

  • Aula 2 • Listas e Tuplas em Profundidade

    Explora indexação, fatiamento, mutação e imutabilidade de tuplas. Esses tipos de sequência sustentam estruturas de dados baseadas em arrays abordadas posteriormente.

  • Aula 3 • Dicionários e Conjuntos

    Aborda armazenamento baseado em hash, operações de chave-valor e álgebra de conjuntos. Dá suporte direto a implementações de tabelas hash e adjacências de grafos.

  • Aula 4 • Comprehensions de Lista e Dicionário

    Ensina a sintaxe concisa de comprehensions para filtrar e transformar coleções. Reduz código repetitivo em implementações de algoritmos ao longo do curso.

  • Aula 5 • Ordenação, Busca e Algoritmos Embutidos

    Usa sorted(), min(), max() e funções chave para processar coleções. Faz a ponte entre os embutidos do Python e os algoritmos de ordenação personalizados estudados em seguida.

Capítulo 3Ver detalhes

Análise de Algoritmos e Complexidade

  • Aula 1 • Introdução à Análise de Algoritmos

    Define corretude, eficiência e a necessidade de análise formal de algoritmos. Estabelece a mentalidade analítica aplicada a toda estrutura de dados e algoritmo adiante.

  • Aula 2 • Big-O, Big-Omega e Big-Theta

    Formaliza a notação assintótica e classes de complexidade comuns. Fornece o vocabulário usado para descrever todo algoritmo nos capítulos subsequentes.

  • Aula 3 • Analisando Loops e Chamadas Recursivas

    Ensina a contagem de passos para loops e relações de recorrência para recursão. Prepara diretamente os alunos para analisar algoritmos de ordenação e árvores.

  • Aula 4 • Perfilando Código Python

    Usa timeit, cProfile e memory_profiler para medir o desempenho real. Conecta a complexidade teórica ao comportamento de execução mensurável do Python.

  • Aula 5 • Complexidade de Espaço e Compensações

    Diferencia espaço auxiliar de espaço total e explora as compensações entre tempo e espaço. Orienta decisões de projeto quando restrições de memória são importantes.

Capítulo 4Ver detalhes

Estruturas de Dados Lineares

  • Aula 1 • Comparação de Complexidade de Estruturas Lineares

    Compara a complexidade de tempo e espaço entre todas as estruturas lineares estudadas. Permite a seleção informada de estruturas para problemas de projeto de algoritmos.

  • Aula 2 • Listas Ligadas Simples e Duplamente Ligadas

    Constrói classes Node e operações de lista incluindo inserção, remoção e travessia. Apresenta o pensamento baseado em ponteiros essencial para árvores e grafos.

  • Aula 3 • Pilhas: Implementação e Aplicações

    Implementa pilhas usando listas e listas ligadas, e as aplica a problemas reais. Demonstra a semântica LIFO usada em recursão, análise sintática e backtracking.

  • Aula 4 • Filas, Deques e Filas de Prioridade

    Aborda filas FIFO, deques de duas pontas e filas de prioridade baseadas em heap. Prepara os alunos para problemas de BFS, escalonamento e algoritmos gananciosos.

  • Aula 5 • Arrays e Arrays Dinâmicos

    Aborda arrays estáticos, listas Python como arrays dinâmicos e realocação amortizada. Estabelece a estrutura base da qual todos os outros tipos lineares derivam.

Capítulo 5Ver detalhes

Recursão e Algoritmos de Ordenação

  • Aula 1 • Algoritmos de Ordenação Quadráticos

    Implementa bubble sort, selection sort e insertion sort com análise passo a passo. Fornece a base O(n²) contra a qual ordenações mais rápidas são medidas.

  • Aula 2 • Algoritmos de Busca

    Implementa busca linear e busca binária com provas de complexidade. Conecta a busca aos requisitos de dados ordenados e problemas reais de entrevista.

  • Aula 3 • Fundamentos de Recursão

    Define casos base, casos recursivos e a pilha de chamadas. Constrói o modelo mental necessário para travessia de árvores e algoritmos de dividir e conquistar.

  • Aula 4 • Ordenação em Tempo Linear e Híbrida

    Aborda counting sort, radix sort e Timsort usado na ordenação embutida do Python. Expande o kit de ferramentas dos alunos além da ordenação baseada em comparação.

  • Aula 5 • Ordenação por Divisão e Conquista

    Implementa merge sort e quicksort, derivando sua complexidade O(n log n). Demonstra como a recursão permite a ordenação eficiente em grande escala.

Capítulo 6Ver detalhes

Árvores e Estruturas de Dados Hierárquicas

  • Aula 1 • Árvores Binárias de Busca

    Implementa inserção, busca e remoção em BST com análise O(log n) média. Demonstra armazenamento e recuperação de dados ordenados usando estrutura de árvore.

  • Aula 2 • Tries e Árvores de Prefixo

    Constrói um trie para inserção, busca e correspondência de prefixos de strings. Permite soluções eficientes de autocomplete e consulta em dicionário.

  • Aula 3 • Árvores Binárias e Travessias

    Define a terminologia de árvores e implementa travessias em-ordem, pré-ordem e pós-ordem. Estabelece o padrão de travessia recursiva usado em todos os algoritmos de árvore.

  • Aula 4 • Heaps e Operações com Heap

    Constrói um max-heap e um min-heap, implementa heapify e heap sort. Dá suporte direto a implementações de fila de prioridade e algoritmos gananciosos.

  • Aula 5 • Árvores Balanceadas: AVL e Rubro-Negra

    Explica o balanceamento baseado em rotação em árvores AVL e regras de cor em árvores rubro-negras. Garante desempenho O(log n) no pior caso para conjuntos de dados dinâmicos.

Capítulo 7Ver detalhes

Grafos e Algoritmos em Grafos

  • Aula 1 • Problemas Avançados em Grafos

    Aborda componentes fortemente conectados, verificação de bipartição e conceitos básicos de fluxo em rede. Estende as habilidades em grafos para categorias complexas de problemas do mundo real.

  • Aula 2 • Representações e Terminologia de Grafos

    Define grafos direcionados, não direcionados, ponderados e cíclicos com representações em lista e matriz de adjacência. Estabelece a base para todas as implementações de algoritmos em grafos.

  • Aula 3 • Algoritmos de Caminho Mínimo

    Implementa os algoritmos de Dijkstra e Bellman-Ford para grafos ponderados. Equipa os alunos para resolver problemas de roteamento e minimização de custo.

  • Aula 4 • Árvores Geradoras Mínimas

    Implementa os algoritmos de Kruskal e Prim usando union-find e filas de prioridade. Resolve problemas de projeto de rede que exigem conectividade de custo mínimo.

  • Aula 5 • Busca em Largura e Busca em Profundidade

    Implementa BFS com uma fila e DFS com recursão e uma pilha. Aborda componentes conectados, detecção de ciclos e ordenação topológica.

Capítulo 8Ver detalhes

Programação Dinâmica e Técnicas Avançadas

  • Aula 1 • Algoritmos Gananciosos e Backtracking

    Implementa estratégias gananciosas para escalonamento de intervalos e codificação de Huffman, além de backtracking para N-Rainhas e subconjuntos. Completa o kit de ferramentas principal de projeto de algoritmos.

  • Aula 2 • Tabulação e DP Bottom-Up

    Constrói tabelas DP iterativamente para troco de moedas, subida de escadas e caminhos em grade. Elimina a sobrecarga da recursão e esclarece a lógica de transição de estados.

  • Aula 3 • Introdução à Programação Dinâmica

    Define subproblemas sobrepostos e subestrutura ótima como pré-requisitos da DP. Contrasta DP com dividir e conquistar para esclarecer quando cada uma se aplica.

  • Aula 4 • Memoização e DP Top-Down

    Converte recursão ingênua em soluções memoizadas usando dicionários e functools.lru_cache. Demonstra redução drástica de complexidade em Fibonacci e problemas similares.

  • Aula 5 • Padrões Clássicos de DP

    Resolve problemas de mochila, subsequência comum mais longa e distância de edição. Ensina templates de DP reutilizáveis aplicáveis a uma ampla gama de questões de entrevista.

Certificação

Seu certificado válido de conclusão

Este curso é para você:

  • Mudança de carreira: você quer uma base técnica estruturada para ingressar em funções de engenharia de software.

  • Estudante de ciência da computação: precisa de prática de codificação prática além do que as aulas fornecem.

  • Desenvolvedor autodidata: consegue criar aplicativos, mas tem dificuldade com resolução de problemas algorítmicos sob pressão.

  • Analista de dados: pronto para aprofundar habilidades de programação em direção a responsabilidades de nível de engenharia.

  • Recém-formado: se preparando para entrevistas técnicas em empresas de tecnologia competitivas em breve.

  • Programador amador: curioso sobre como sistemas de software de nível profissional são realmente projetados internamente.

Cursos relacionados

FAQ

Quem é a Dedika?

O certificado é válido no Brasil?

Os cursos são gratuitos?

Qual a carga horária dos cursos?

Como são os cursos?

Como funcionam os cursos?

Qual é o tempo dos cursos?

Qual o valor ou preço dos cursos?

O que é um curso EAD ou online e como ele funciona?

Os cursos possuem PDF?