Lidiane Monteiro
Cursando Licenciatura em
Computação na UFRPE
Fundadora do Blog
InspirAda na Computação
PyLadies Recife
Slide 3
Slide 3 text
MOTIVAÇÃO
DA PALESTRA
Slide 4
Slide 4 text
O QUE É
MATEMÁTICA
DISCRETA?
Slide 5
Slide 5 text
O QUE É
MATEMÁTICA DISCRETA
▸ Estudo das estruturas matemáticas que são
fundamentalmente discretas, no sentido de não
suportarem ou requererem a noção de
continuidade.
▸ Grande parte (não todos), dos objetos estudados
na matemática discreta são conjuntos contáveis,
como os inteiros
Exemplo: conjuntos são, em geral, finitos e podem
ser enumerados.
Slide 6
Slide 6 text
MATEMÁTICA DISCRETA
APLICAÇÃO
Conjunto de técnicas para modelar problemas em
Ciência da Computação:
▸ Teoria das filas
▸ Teoria dos grafos
▸ Criptografia
▸ Teoria da computação, algoritmos e
recursividade
DIFICULDADES NA
APRENDIZAGEM
▸ Encontrar a solução dos exercícios
▸ Encontrar erros na própria solução
▸ Compreender os conteúdos da disciplina
Slide 11
Slide 11 text
CONTEÚDOS QUE GERAM
MAIS DIFICULDADES
▸ Prova Matemática
▸ Indução
▸ Teoria dos Números
Slide 12
Slide 12 text
QUANDO PERCEBE
QUE APRENDEU
▸ Resolve exercícios sozinho(a)
▸ Explica ou esclarece dúvidas de outros colegas
▸ Resolve exercícios proposto pelo professor na
sala de aula
Slide 13
Slide 13 text
MATERIAIS QUE AJUDA
NO ESTUDO
▸ Listas de Exercícios
▸ Questões Exemplos
▸ Notas de aula do professor
▸ Vídeo aula e Livros
Slide 14
Slide 14 text
O QUE PODERIA
MELHORAR
NO ENSINO DE
MATEMÁTICA DISCRETA?
Slide 15
Slide 15 text
PODERIA MELHOR NO
ENSINO
▸ Didática e preparação das aulas
▸ Evidenciar aplicações na área da computação
▸ Resolução de exemplos/exercícios pelo professor
Slide 16
Slide 16 text
PODERIA MELHOR NO
ENSINO
▸ Orientação aos estudantes
▸ Monitoria
▸ Revisão da ementa e divisão dos conteúdos
▸ Relacionar disciplina com outras da graduação
Slide 17
Slide 17 text
O QUE PODERIA
MELHORAR
NA APRENDIZAGEM?
Slide 18
Slide 18 text
PODERIA MELHORAR
NA APRENDIZAGEM
▸ Aprender a aprender
▸ Autonomia dos estudantes
▸ Fontes de estudo adequadas
▸ Estudo e prática
Slide 19
Slide 19 text
POR ONDE
ESTUDAR?
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
POR ONDE ESTUDAR
▸ MIT Edu: Mathematics for Computer Science
https://goo.gl/iFyPmG
▸ edX: Effective Thinking Through Mathematics
https://goo.gl/bKeRCf
▸ Coursera: Aprendendo a aprender
https://goo.gl/b39tTa
Slide 23
Slide 23 text
PROGRAMAÇÃO
PODERIA AJUDAR
NA COMPREENSÃO?
Slide 24
Slide 24 text
90,2% SIM
9,8% NÃO
Pesquisa: 82 estudantes entrevistados
Slide 25
Slide 25 text
POR QUE
PYTHON?
Slide 26
Slide 26 text
POR QUE PYTHON?
▸ Linguagem intuitiva e multi paradigma
▸ Foco na solução do problema
▸ Utilizar funcionalidades da própria linguagem
▸ Desenvolver próprio algoritmo com fins didáticos
Slide 27
Slide 27 text
TEORIA DOS
CONJUNTOS
Slide 28
Slide 28 text
TEORIA DOS CONJUNTOS
APLICAÇÃO
▸ Banco de dados Relacional
▸ Estrutura de Dados
▸ Linguagem Formais
▸ Semântica de Linguagem de Programação
▸ Sistema de recomendação simples
Slide 29
Slide 29 text
TEORIA DOS CONJUNTOS
DEFINIÇÃO
▸ Coleções desordenadas de elementos únicos
▸ Exemplo: Números pares maiores que zero e
menores que quinze.
▸ Representação: A = {x | x é par e 0 < x < 15}
Slide 30
Slide 30 text
TEORIA DOS CONJUNTOS
APLICAÇÃO: JUNÇÕES E SQL
Union
União
A U B = {x / x Є A ou x Є B}
Slide 31
Slide 31 text
TEORIA DOS CONJUNTOS
APLICAÇÃO: JUNÇÕES E SQL
Diferença
A – B = {x | x Є A e x Є/ B}
Slide 32
Slide 32 text
TEORIA DOS CONJUNTOS
APLICAÇÃO: JUNÇÕES E SQL
Diferença Simétrica
A ⊿ B = {x | x Є A - B ou x Є B-A}
Slide 33
Slide 33 text
TEORIA DOS CONJUNTOS
APLICAÇÃO: JUNÇÕES E SQL
Intersect
Intersecção
A ∩ B = {x / x Є A e x Є B}
Slide 34
Slide 34 text
TEORIA DOS CONJUNTOS
IMPLEMENTAÇÃO
▸ Criar algoritmo próprio
>>> a = [ 4, 6, 2, 10]
>>> b = [11, 2, 5, 99, 4]
>>> print(intersecao(a, b))
>>> {2, 4}
Slide 35
Slide 35 text
TEORIA DOS CONJUNTOS
IMPLEMENTAÇÃO
Builtins Python: set
▸ x in s → True se o elemento x pertence a s
▸ s.add(x) → Inclui o elemento x em s
▸ s.copy() → Retorna uma cópia de s
▸ s.union(r) → Retorna a união entre s e r
▸ s.intersection(r) → Retorna a interseção entre s e r
▸ s.difference(r) → Retorna a diferença entre s e r
▸ list(s) → Retorna os elementos de s numa lista
▸ tuple(s) → Retorna os elementos de s numa tupla
Slide 36
Slide 36 text
TEORIA DOS CONJUNTOS
IMPLEMENTAÇÃO
▸ Builtins Python: set
>>> a = [ 4, 6, 2, 10]
>>> b = [11, 2, 5, 99, 4]
>>> set(a).intersection(b)
>>> {2,4}
Slide 37
Slide 37 text
GRAFOS
Slide 38
Slide 38 text
GRAFOS
APLICAÇÃO
▸ Problemas de Otimização
▸ Redes sociais
▸ GPS
▸ Placa de circuito integrado
▸ Processos metabólicos
Slide 39
Slide 39 text
GRAFOS
DEFINIÇÃO
▸ Um conjunto de pontos (vértices) conectados por
linhas (arestas)
▸ Abstração que permite codificar relacionamentos
entre pares de objetos
Slide 40
Slide 40 text
GRAFOS
EXEMPLO
Slide 41
Slide 41 text
GRAFOS
EXEMPLO
G = (V, E)
V = {1, 2, 3, 4}
E = {(1,2), (1,3), (2,3), (3,4)}
Slide 42
Slide 42 text
GRAFOS
EXEMPLO
Slide 43
Slide 43 text
GRAFOS
EXEMPLO
Slide 44
Slide 44 text
GRAFOS
IMPLEMENTAÇÃO
Slide 45
Slide 45 text
GRAFOS
IMPLEMENTAÇÃO
Slide 46
Slide 46 text
GRAFOS
IMPLEMENTAÇÃO
Implementação com algoritmo Busca em Profundidade
(Depth-first search)
ALGORITMO DE EUCLIDES
APLICAÇÃO
▸ Geração de números pseudo-aleatórios
▸ Alocações de memória computacional
▸ Criptografia
Slide 50
Slide 50 text
ALGORITMO DE EUCLIDES
DEFINIÇÃO
▸ Método simples e eficiente de encontrar o
máximo divisor comum (MDC) entre dois
números inteiros diferentes de zero.
▸ Calcula recursivamente usando o resto da
divisão
▸ MDC (a,b) = MDC (b,r)
▸ r = a - bq
Slide 51
Slide 51 text
MDC(348,156) = MDC(156, R)
Slide 52
Slide 52 text
ALGORITMO DE EUCLIDES
Slide 53
Slide 53 text
MDC
IMPLEMENTAÇÃO
Slide 54
Slide 54 text
ALGORITMO DE EUCLIDES
IMPLEMENTAÇÃO
Slide 55
Slide 55 text
NÚMEROS PRIMOS
DEFINIÇÃO
▸ Números naturais que têm apenas dois
divisores diferentes: o 1 e ele mesmo.
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
47, 53, 59, 61, 67, 71, 73, 77, 79, 83….
Slide 56
Slide 56 text
NÚMEROS PRIMOS
IMPLEMENTAÇÃO
Biblioteca Python para matemática simbólica,
contém implementações para:
- Lógica
- Teoria dos Números
- Combinatória
- Cálculo
- Criptografia
- …..