Tópicos avançados em matemática aplicada

  • Área: Matemática Geral
  • Código: MAT005
  • Carga horária: 45 horas
  • Créditos: 3

Docente(s)

A serem definidos, de acordo com a temática específica.

Ementa

Neste curso A linguagem de programação Python é introduzida como uma plataforma opensource para o desenvolvimento e implementação de métodos computacionais associados à matemática aplicada, em suas diversas facetas. A linguagem Python, por sua clareza sintática, natureza dinâmica e ampla penetração e adoção em diversas disciplinas científicas, apresenta-se como plataforma ideal para o desenvolvimento de aplicações científicas de alto nível. Durante o curso, os alunos são apresentados não somente à linguagem como também a:

  • Ferramentas de controle de versões que deverão utilizar durante a execução das tarefas.
  • Metodologias ágeis de desenvolvimento, em especial o desenvolvimento orientado a testes ou TDD.

No início de cada bloco temático da disciplina, Os alunos receberão um problema para resolver. E o link para um respositório de código contendo funções de teste que o programa deve passar antes de ser considerado completo. Todo o processo de desenvolvimento será registrado por meio de um sistema de controle de versões.

Programa da disciplina

  • Introdução à Linguagem Python.
    • Introdução ao interpretador. Introdução ao Ipython. Visão geral da Linguagem. Sintaxe básica, Estruturas de dados (tipos básicos), Programação (Condicionais, Laços, blocos), Funções. Introdução ao desenvolvimento baseado em testes. introdução ao controle de versões.
  • Computação Numérica.
    • Neste tópico serão introduzidos Pacotes como o Numpy e Scipy que permitem que o Python seja utilizado com um substituto adequado ao Matlab: matrizes , Rotinas para integração numérica, FFT, otimização, estatística, etc.
  • Gráficos e visualização.
    • Apresentação do pacote Matplotlib e outros para domínios mais específicos de visualização. Introdução ao Matplotlib. Uso interativo do Matplotlib no ambiente Ipython. Processamento de imagens com PIL. Animações 2D e 3D usando Python e OpenGL: Pyprocessing e Pyglet.
  • Introdução à programação orientada a objetos.
    • Introdução a este importante paradigma de programação, central à linguagem Python. Introdução ao conceito de Objeto. Classes. métodos e atributos. Herança.
  • Interação com bancos de dados.
    • Interação com bancos de dados relacionais e introdução a bancos de dados NoSQL. Introdução ao Bancos relacionais: SQLIte3. Introdução ao mapeamento objeto-relacional. Introdução ao SQLAlchemy. Introdução a bancos NoSQL: ZODB, MongoDB, CouchDB.
  • Processamento paralelo.
    • Como explorar o paralelismo disponível nas CPUs modernas com múltiplos núcleos, sem abrir mão da simplicidade e elegância do Python.
  • Codigo Python de alta performance: Introdução ao Cython.
    • Medindo a performance de um programa: Profilers. Aproximando-nos da performance do C: Introdução ao Cython.
  • Matemática Simbólica.
    • Adicionando capacidades de Matemática simbólica ao seu programa: Introdução ao Sympy. Um ambiente integrado para metemática: Introdução ao Sage.
  • Integração com o R.
    • Neste tópico vamos aprender a chamar o R de dentro de um programa ou console Python.

Bibliografia

Não possui.

Grade de disciplinas

Confira as disciplinas oferecidas no mestrado. saiba mais