Ementa do Curso
- Módulo 01 | Começando a programar em Python
- Instalação do Python 3
- Sintaxe básica do Python - Parte 1
- Exercícios sobre a sintaxe da linguagem
- Sintaxe básica do Python - Parte 2
- Exercícios sobre a sintaxe da linguagem
- Sintaxe básica do Python - Parte 3
- Exercícios sobre a sintaxe da linguagem
- Programação Funcional com Python
- Exercícios sobre programação funcional
- Recursividade
- Exercícios sobre recursividade
- Manipulando listas
- Exercícios sobre listas
- Desempacotamento de sequências
- Gerando números pseudo-aleatórios
- Exercícios sobre o módulo random
- Módulo math (funções matemáticas)
- Criando módulos
- Criando testes com unittest
- Exercícios sobre o módulo unittest
- Criando testes com pytest
- Herança
- Exercícios sobre herança
- Encapsulamento de dados
- Threads
- Exercícios sobre threads
- Interface gráfica com tkinter
- Exercícios sobre o módulo tkinter
- Introdução à construção de aplicações web com Bottle
- Exercícios sobre o framework Bottle
- Criando games com CodeSkulptor
- Módulo 02 | Algoritmos e Estruturas de Dados
- Pilha
- Exercícios sobre pilha
- Otimizando a pilha
- Matrizes
- Exercícios sobre matrizes
- Exercícios sobre fila
- Deque - Parte 1
- Deque - Parte 2
- Deque com o módulo collections.deque
- Lista Ligada - Parte 1
- Lista Ligada - Parte 2
- Lista Ligada - Parte 3
- Exercícios sobre lista ligada
- Árvore Binária de Busca - Parte 1
- Árvore Binária de Busca - Parte 2
- Árvore Binária de Busca - Parte 3
- Árvore Binária de Busca - Parte 4
- Árvore Binária de Busca - Parte 5
- Árvore Binária de Busca - Parte 6
- Exercícios sobre árvore binária de busca
- Fila de prioridades - Parte 1
- Fila de prioridades - Parte 2
- Heap Binária - Definição
- Fila de prioridades com o módulo heapq
- Exercícios sobre fila de prioridades
- Tabela Hash - Definição
- Tabela Hash com encadeamento externo
- Dicionários
- Exercícios sobre tabelas hash
- Exercícios sobre conjuntos
- Listas, tuplas, conjuntos e dicionários
- Exercícios sobre listas, tuplas, conjuntos e dicionários
- Análise assintótica
- Exercícios sobre análise assintótica
- Grafos - Definição
- Exercícios sobre grafos
- Grafos - Matriz de adjacência
- Grafos - Lista de adjacência
- Grafos - Busca em profundidade
- Grafos - Busca em largura - Definição
- Grafos - Busca em largura - Implementação
- Exercícios sobre busca em grafos
- Grafos com o módulo defaultdict
- Programação dinâmica
- Exercícios sobre programação dinâmica
- Algoritmos gulosos
- Algoritmo de Dijkstra - Definição
- Algoritmo de Dijkstra - Implementação
- Exercícios sobre o algoritmo de Dijkstra
- Detectando ciclos em grafos
- Backtracking - Definição
- Backtracking - Implementação
- Algoritmo de ordenação Bubble sort - Definição
- Algoritmo de ordenação Bubble sort - Implementação
- Algoritmo de ordenação Selection Sort - Definição
- Algoritmo de ordenação Selection Sort - Implementação
- Algoritmo de ordenação Insertion Sort - Definição
- Algoritmo de ordenação Insertion Sort - Implementação
- Algoritmo de ordenação Quick sort - Definição
- Algoritmo de ordenação Quick sort - Implementação
- Exercícios sobre algoritmos de ordenação
- Função sort
- Metaheurísticas: Simulated Annealing - Definição
- Metaheurísticas: Simulated Annealing - Implementação
- Problema do Caixeiro Viajante - Definição
- Exercícios sobre o problema do caixeiro viajante
- Gerador de grafos completos
- Gerador de grafos completos incrementado
- Caixeiro Viajante aleatório - Parte 1
- Caixeiro Viajante aleatório - Parte 2
- Algoritmos Genéticos - Definição - Parte 1
- Algoritmos Genéticos - Definição - Parte 2
- Algoritmos Genéticos - Definição - Parte 3
- Exercícios sobre algoritmos genéticos
- 1 pergunta
- Algoritmos Genéticos para o PCV - Parte 1
- Algoritmos Genéticos para o PCV - Parte 2
- Algoritmos Genéticos para o PCV - Parte 3
- Algoritmos Genéticos para o PCV - Parte 4
- Redes Neurais Artificiais - Definição - Parte 1
- Redes Neurais Artificiais - Definição - Parte 2
- Redes Neurais Artificiais - Definição - Parte 3
- Redes Neurais Artificiais - Definição - Parte 4
- Exercícios sobre redes neurais
- Rede Neural Perceptron - Implementação - Parte 1
- Rede Neural Perceptron - Implementação - Parte 2
- Rede Neural Perceptron - Implementação - Parte 3
- Redes Neurais Artificiais com PyBrain
- Busca Tabu - Definição - Parte 1
- Busca Tabu - Definição - Parte 2
- Busca Tabu - Definição - Parte 3
- Exercícios sobre Busca Tabu
- Busca Tabu - Implementação - Parte 1
- Busca Tabu - Implementação - Parte 2
- Busca Tabu - Implementação - Parte 3
- Busca Binária
- Exercícios sobre Busca Binária
- Distância Hamming
- Exercícios sobre distância Hamming
- Distância de edição (Edit distance)
- Pattern-Matching - Brute-force
- Algoritmo de Needleman-Wunsch - Definição
- Algoritmo de Needleman-Wunsch - Implementação - Parte 1
- Algoritmo de Needleman-Wunsch - Implementação - Parte 2
- Agrupamento - Algoritmo K-Means - Definição
- Algoritmo K-Means - Implementação - Parte 1
- Algoritmo K-Means - Implementação - Parte 2
- Algoritmo K-Means - Implementação - Parte 3
- Algoritmo K-Means - Implementação - Parte 4
- Algoritmo K-Means - Implementação - Parte 5
- Algoritmo K-Means - Implementação - Parte 6
- Criptografia - Cifra de César - Definição
- Criptografia - Cifra de César - Implementação
- Módulo 03 | Python for fun
- Começando a programar jogos com PyGame
- Rocket Game - Parte 1
- Rocket Game - Parte 2
- Facebook profile photo
- Armazenando os dados com SQLite3
- YouTube Downloader
- Programando tarefas (schedule)
- Manipulando arquivos
- Tradução online com google-translate
- Adivinhe o número
- Gerando todas as permutações
- Decorators
- Space Invaders - Parte 1
- Space Invaders - Parte 2
- Space Invaders - Parte 3
- Space Invaders - Parte 4
- Space Invaders - Parte 5
- Space Invaders - Parte 6
- Space Invaders - Parte 7
- Expressões regulares
- Módulo urllib
- Bioinformática com Python
- Bioinformática com Biopython
- Strings imutáveis
- Similaridade entre strings com o módulo difflib
- Gerando QR Code com Python
- Conhecendo o módulo NumPy
- Plotando gráficos com matplotlib
- Estendendo código Python com C - Parte 1
- Estendendo código Python com C - Parte 2
- Manipulando arquivos no formato PDF
- Escopos e Namespaces
- Construindo um editor de texto
- Visão Computacional com OpenCV
- Interface gráfica com PySide
- Módulo 04 | Considerações finais
- Dicas de livros
- Obrigado!
Mais informações
A escolha de uma determinada estrutura de dados influencia bastante na eficiência de um software, ou seja, a organização dos dados durante o processamento tem um efeito crucial na velocidade do software.
Esse curso tem como objetivo apresentar as mais variadas estruturas de dados de modo que elas possam ser utilizadas eficientemente. Os estudantes irão aprender a implementar várias estruturas de dados através do estudo de algoritmos para a criação e manipulação dessas estruturas.
Será utilizada a linguagem Python 3 para facilitar a compreensão e implementação das estruturas. A linguagem Python é uma linguagem fácil de aprender que permite um desenvolvimento ágil mesmo para quem não tem tanta intimidade com a linguagem.
Carga horária:
- 23 horas
O que aprenderei?
- Conhecer as mais variadas estruturas de dados.
- Criar suas próprias estruturas de dados.
- Ter uma boa noção de armazenamento e organização de dados.
- Entendimento e implementação de vários algoritmos importantes.
- Devem fazer esse curso todas as pessoas que queiram aprender mais sobre algoritmos e estruturas de dados utilizando a linguagem Python.
Qual a sua avaliação para este hangout?
AVALIAÇÕES
Ninguém avaliou este curso ainda. Seja o primeiro...