Informática
Linguagens formais
O que são uma linguagem formal, um alfabeto e uma palavra. Conceitos básicos da teoria das linguagens formais, explicados por comparação com a língua do dia a dia e com exemplos.
Autômatos finitos
O autômato finito como modelo de computação com estados e transições. Definição, diagrama de estados, formalização da computação e exemplos de palavras aceitas.
Minimização de autômatos
Estados inacessíveis de um autômato finito, aos quais não se pode chegar a partir do estado inicial. Definição e como removê-los do autômato com segurança.
Propriedades de fecho das linguagens regulares
As linguagens regulares são fechadas sob união, interseção, concatenação e fecho. O que significa o fechamento sob uma operação e por que ele vale para as linguagens regulares.
Expressões regulares
O que é uma expressão regular e como ela descreve um conjunto de palavras. Definição, comparação com expressões aritméticas e relação com os autômatos finitos.
Estimativa do número de valores distintos
Linear counting: como estimar o número de valores distintos em dados enormes. Funções hash, mapas de bits e por que o método ingênuo não basta.
Bloom filter: um elemento está no conjunto?
O Bloom filter é uma estrutura de dados probabilística que responde rapidamente se um elemento está no conjunto. Princípio, funções hash e uso prático.
Cifra de César
Como funciona a cifra de César, um dos métodos mais antigos de cifrar um texto. O princípio do deslocamento das letras, a generalização da cifra e uma ferramenta online.
Cifra de Vigenère
A cifra de Vigenère usa vários alfabetos e, por isso, resiste à análise de frequência. Princípio da cifragem, quadrado de Vigenère, escolha da chave e uma ferramenta.