Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python Brasil[12] - Matemágica Discreta com Python

Python Brasil[12] - Matemágica Discreta com Python

Matemática Discreta é um dos campos de estudo mais importantes para Ciência da Computação, provendo um conjunto de técnicas para modelar problemas e projetar sistemas de computação (hardware e software). A Matemática Discreta contribui com ferramentas básicas para o projeto e análise de algoritmos, permitindo que programadoras(es) desenvolvam um conjunto primordial de habilidades: saber contar, modelar e estimar bem.

Os conceitos da Matemática Discreta também estão presente em Banco de Dados, Circuitos Integrados, Inteligência Artificial, Redes de Computadores, Sistemas Distribuídos, Otimização, Compiladores, Criptografia, Sistemas Críticos, entre outros.

Apesar desses fatores, nos cursos de graduação a Matemática Discreta é uma das disciplinas mais temidas e odiadas, apresentando um alto índice de reprovação. Os estudantes têm contato com o conteúdo já no início do curso, porém tanto a didática dos professores como a pouca informação sobre a importância e a aplicação da disciplina são fatores que geram desinteresse e, consequentemente, um aproveitamento deficiente dos poderes da Matemática Discreta ao longo da carreira, seja acadêmica ou em suas funções no mercado.

Nesta palestra veremos como Python pode tornar interessante e fazer mágicas com Matemática Discreta. Podendo ser utilizada tanto para o ensino de conteúdos matemáticos como técnicas de programação com Python. Também irei compartilhar como tem sido minha experiência como Monitora da disciplina de Matemática Discreta no Curso de Licenciatura em Computação da UFRPE.

Lidy Monteiro

October 17, 2016
Tweet

More Decks by Lidy Monteiro

Other Decks in Programming

Transcript

  1. 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.
  2. 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
  3. CONTEÚDO PROGRAMÁTICO ▸ Lógica Proposicional ▸ Equivalência ▸ Predicados ▸

    Provas Matemática ▸ Conjuntos ▸ Funções ▸ Indução ▸ Análise Combinatória ▸ Teoria dos Números ▸ Relações ▸ Ordenações Parciais ▸ Grafos
  4. DIFICULDADES NA APRENDIZAGEM ▸ Encontrar a solução dos exercícios ▸

    Encontrar erros na própria solução ▸ Compreender os conteúdos da disciplina
  5. 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
  6. MATERIAIS QUE AJUDA NO ESTUDO ▸ Listas de Exercícios ▸

    Questões Exemplos ▸ Notas de aula do professor ▸ Vídeo aula e Livros
  7. 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
  8. 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
  9. PODERIA MELHORAR NA APRENDIZAGEM ▸ Aprender a aprender ▸ Autonomia

    dos estudantes ▸ Fontes de estudo adequadas ▸ Estudo e prática
  10. 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
  11. 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
  12. 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
  13. 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}
  14. 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}
  15. 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
  16. 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}
  17. GRAFOS APLICAÇÃO ▸ Problemas de Otimização ▸ Redes sociais ▸

    GPS ▸ Placa de circuito integrado ▸ Processos metabólicos
  18. GRAFOS DEFINIÇÃO ▸ Um conjunto de pontos (vértices) conectados por

    linhas (arestas) ▸ Abstração que permite codificar relacionamentos entre pares de objetos
  19. GRAFOS EXEMPLO G = (V, E) V = {1, 2,

    3, 4} E = {(1,2), (1,3), (2,3), (3,4)}
  20. ALGORITMO DE EUCLIDES APLICAÇÃO ▸ Geração de números pseudo-aleatórios ▸

    Alocações de memória computacional ▸ Criptografia
  21. 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
  22. 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….
  23. 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 - …..