https://docs.google.com/spreadsheets/d/1QvxVngrPeBXGgfG0FHwsuEb3s8rHeKUN9nx8nq08Wcw/edit#gid=0 Coloque seu nome na FrontPage caso for utilizar
- Configurando o ambiente
- Output no console
- Variáveis e tipos primitivos + string
- Input do console
- If else
- Extra: ifs nestados
- Comentários
- Exercícios
- While
- For
- Break, continue
- Extra: loops nestados
- Exercícios
- Declaração de arrays
- Arrays de tamanho definido em runtime
- Declaração de matrizes
- Iterando sobre arrays
- Iterando sobre matrizes
- Analogias para visualizar N dimensões
- Exercícios
- Motivação
- Análise assintótica
- Considerações sobre hardware
- Exercícios
- Definição
- Utilizando valores de retorno
- Recursividade
- Exercícios
- Definição
- Passando structs como parâmetros
- Exercícios
- Entendendo a disposição da memória
- Stack vs Heap
- Ponteiros
- malloc e new
- Segurança de memória e Garbage Collector
- Smart pointers
- Exercícios
- Motivação
- pair
- vector
- list e forward_list
- stack
- queue
- deque
- set e unordered_set
- map e unordered_map
- Exercícios
- Motivação
- Lista de algoritmos comumente utilizados
- Insertion Sort
- Merge Sort
- Counting Sort
- Contagem de inversões
- Heap Sort
- Quick Sort
- Quick Select
- Exercícios
- Motivação
- Conceitos
- Matriz de adjacência
- Lista de adjacência
- Conjunto de adjacência
- Busca por profundidade
- Busca por largura
- Encontrando componentes conexas
- Caminho mínimo (Dijkstra)
- Caixeiro Viajante
- Ordenação topológica
- Árvores geradoras mínimas (minimum spanning tree)
- Exercícios
- Revisão do básico
- Teorema de Pitágoras
- Distância Euclidiana
- Distância de Manhattan
- Vetores
- Números primos
- Crivo de Erastótenes
- Números Complexos
- Realizando N trocas de estado com objetos comutativos
- Convex Hull
- Sweep Line
- Aritmética modular simples
- Exercícios
- Busca Binária
- Soma de Prefixos
- Árvore de Segmentos
- Lazy Propagation
- BIT (Árvore de Fenwick)
- Retornando às estruturas de dados
- Union-find
- Compressão de Coordenadas
- Bitmasks para representação de conjuntos e combinações
- Exercícios
- Introdução
- Problema das Palestras
- Problema da Moeda
- Problema da Mochila
- Longest Common Subsequence
- Exercícios
- Motivação
- Conceitos
- Composição
- Herança
- Polimorfismo
- Encapsulamento
- Interfaces
- Custo Benefício
- Motivação
- Estilos
- Implementação
- Cuidados
- Exercícios
- Motivação
- Indentação
- Convenções de nomes
- Conceitos
- Tags importantes
- Semântica
- Material
- Conceitos
- Propriedades importantes
- Material
- Conceitos
- Sintaxe
- Paralelo ao C++
- Objetos e Arrays no JavaScript
- Manipulações na DOM
- fetch API
- Exercícios
- Conceitos
- Protocolos (TCP, UDP, HTTP, FTP, WebSockets, SMTP)
- Tecnologias Frontend
- Tecnologias Backend
- SGBDs
- Estrutura de um Request
- Estrutura de uma Response
- Material
- Motivação
- Conectando dois computadores
- Realizando um request e obtendo uma resposta
- Exercícios
- Conceitos
- Tipos de Bancos de Dados
- SQL
- NoSQL
- Modelagem
- Caching com Redis
- Exercícios
- Conceitos
- Configurando o ambiente
- Criando rotas API
- Comunicação com o Banco de Dados
- Utilizando uma ORM
- Utilizando WebSockets
- HTMX
- Exercícios
- Conceitos
- Configurando o ambiente
- Hello World
- useState e useEffect
- Outros hooks
- Componentes
- 'use server' e 'use client'
- Integrando com Tailwind CSS
- Integrando com zod
- Introdução ao Nextjs
- Exercícios
- Conceitos
- Sintaxe
- Paralelo ao Nodejs
- Exercícios
- Conceitos
- Demonstração
- Exercícios
- Conceitos
- Gerais
- Factory
- Singleton
- Object Pool
- Builder
- Adapter/Wrapper
- Proxy
- Memento
- Observer
- Motivação
- Conceitos
- Demonstração
- TODO
- TODO