Por que aprender aqui?
Desde 1992 no mercado de C++, somos a primeira empresa no Brasil a investir fortemente no avanço da linguagem no país.
Nossas aulas são ministradas por nossos desenvolvedores de sistemas para tornar nosso método de ensino o mais real e esclarecedor possível. Nosso maior interesse é que todos possam realmente aprender com nossos cursos e aumentar ainda mais a comunidade C/C++ no Brasil.
Nosso curso é indicado para
Se você deseja se capacitar para aplicação de algoritmos e estrutura de dados fundamentais, bem como, construí-los de forma efetiva na linguagem de programação C++ e adequados ao estilo da Standard Template Library (STL). Ao realizar este curso, o aluno estará apto a aplicar ou transferir os conceitos adquiridos sobre programação genérica, estrutura de dados fundamentais, algoritmos de busca, algoritmos de ordenação e análise de algoritmos independentemente da linguagem de programação.
Pré-requisito: Para esse curso é fundamental que o participante programe em C++ ou tenha conhecimento equivalente ao nosso curso de linguagem C++.
Você receberá: Apostila produzida pelo instrutor (PDF) e alguns e-book's que serão entregues como referência abordando algoritmos e estruturas de dados com C++.
Carga horária: Total de 7 aulas (4 aulas de 3h e 3 aulas de 4h) e atividades extra classe para o aluno resolver os exercícios offline.
Conteúdo programático
Utilizando Algoritmos com C++ você terá contato com as diversas técnicas de programação e uma visão ampla do que é programação de computadores e resolução de problemas através de algoritmos e estrutura de dados.
O que é um algoritmo
O que é uma estrutura de dados
Qual a relação entre algoritmos, estruturas de dados, C++ e STL
O que é programação genérica
Revisão da STL
- Containers;
- Algoritmos;
- Iteradores: Input, Output, Forward, Bidirectional e RandomAccess;
- Como utilizar containers e algoritmos;
- Como implementar containers e algoritmos.
Entender alguns algoritmos da STL por dentro
- Usabilidade;
- Implementação.
Estrutura de dados fundamentais
- Array: Tamanho fixo, Circular (Ring Buffer) e Dinâmico;
- Lista ligada: Simples e Duplamente ligada;
- Symbol table/Associative array;
- Pilha (Queue);
- Fila (Stack);
- Deque;
- Conjunto (Set);
- Hash table;
- Priority queue;
- Heap;
- Binary heap;
- Binary search tree (BST);
- Balanced search tree;
- Red-black tree.
Algoritmos de ordenação
Algoritmos de busca
Estratégias para construção de algoritmos
- Força bruta;
- Dividir e consquistar;
- Busca e enumeração;
- Programação dinâmica.
Análise de algoritmos
- Formal;
- Empírica.
Algoritmos da STL (#include <algorithm>)
- Entendendo e usando cada um deles relacionados no padrão ISO-C++;
- Non-modifying sequence operations (padrão seção 25.2);
- Mutating sequence operations (padrão seção 25.3);
- Sorting and related operations (padrão seção 25.4);
- General C algorithms (padrão seção 25.5);
- General numeric operations (padrão seção 26.7).
Containers (ou estrutura de dados) da STL
- Visão geral sobre os containers relacionados no padrão ISO-C++, entre eles;
- std::array;
- std::vector;
- std::list;
- std:forward_list;
- std::deque;
- std::queue;
- std::stack;
- std::map;
- std::multi_map;
- std::unordered_map;
- std::unordered_multimap;
- std::set;
- std::multiset;
- std::unordered_set;
- std::unordered_multiset;
- std::bitset e std::vector <bool>.
Nosso instrutor
Fabio Galuppo é Engenheiro de Software (Programador) e Cientista da Computação. Atua em Arquitetura e Desenvolvimento de Software, Programação e Construção de Algoritmos e Estrutura de Dados.
Mestre em Inteligência Artificial pela Universidade Presbiteriana Mackenzie. Premiado com o título Microsoft Most Valuable Professional (MVP) em Visual C++ entre 2002 a 2018.