Enviar um café pro programador

Python para Programação Científica e Computação Numérica

 Por que usar Python para programação científica? Qual a vantagem? O que o Python oferece para cientistas e engenheiros?

Este texto faz parte de nosso curso de Programação Científica em Python.

História da Programação Científica

Geralmente quando se fala em programação, ou computação de uma maneira geral, as pessoas se referem a PC's, softwares como o Office, Sistemas Operacionais como Windows, jogos, editores de imagem e vídeo, navegadores, sites, celulares, aplicativos etc.

Ou seja, informática.

Mas, na verdade, computação vem de computar, que significa simplesmente contar. É comum esquecermos mas, computação/programação é matemática pura, é lógica, raciocínio. É ciência.

Com o tempo, a programação foi sendo usada fora do ambiente científico, e está muitíssimo presente na vida das pessoas.

Então, não deve ser surpresa para você saber que grande parte da computação foi desenvolvida com o propósito científico.

MUITA coisa que usamos no dia a dia teve sua criação e início de uso em meios acadêmicos e em setores de pesquisa e desenvolvimento (P & D) de grandes empresas, com a AT & T.

Em décadas passadas (antes dos anos 2000), era praticamente o Fortran e o C que dominavam o meio acadêmico, como linguagens de propósito científico.

Era fácil, bem fácil, um livro de C++ ter mais de 1500 páginas, com a documentação das funções, bibliotecas e pacotes que estavam a disposição dos pesquisadores.

Ou seja, era difícil. Não importava se você era Matemático, Físico, Químico, Engenheiro ou de qualquer outra área, você tinha que estudar e dominar tão bem a programação como os programadores 'puros'.

Então, era algo bem 'nichado'. Poucas pessoas já vão para o meio científico. E dessas, as que usavam programação como ferramenta, eram bem menos ainda.

Computação Científica

Porém, mesmo sendo algo bem específico, ela foi evoluindo muito durante as décadas, com novas linguagens voltadas para programação numérica, novas ferramentas, programas, frameworks etc.

E dentre essas ferramentas, hoje em dia, o Python é a que mais se destaca.


O Python e a Programação Científica

E graças ao nosso querido e amado Python, essa barreira da dificuldade e escassez de ferramentas, vem sendo mudada radicalmente.

Com seu propósito de ser uma linguagem de fácil aprendizado e rápida codificação, a programação científica já é ensinada e usada desde o primeiro semestre de grande parte dos cursos de exatas, no Brasil e no mundo.

Por ser um projeto gratuito e livre, um batalhão de programadores, engenheiros, físicos, matemáticos, químicos e profissionais de outras graduações (Oceanografia, Geologia, Estatística, Biologia, Economia, Contabilidade etc etc etc) se uniram e passaram a criar ferramentas próprias, para cada propósito, e disponibilizaram elas publicamente para quem desejar usar em seus projetos.

Deseja simular ondas do mar e marés? Tem pacotes pra isso, feito por profissionais da área, que programaram em Python.

Realizou diversos experimentos e deseja plotar gráficos (de qualquer tipo), de maneira bem fácil e rápida? Só importar alguma biblioteca, já tem tudo isso pronto.

Quer simular interação de átomos? Galáxias se expandindo? Colisão de um meteoro? Tem de tudo e mais um pouco, pronto em Python, feito por físicos, astrofísicos, químicos e amantes da área.

Está projetando um prédio, uma ponte, uma montanha-russa? Acredite, muitas outras pessoas já precisaram fazer isso, e criaram diversas funções em Python, de modo que hoje é bem fácil fazer isso com essa linguagem.

Certamente já ouviu falar em Data Science (Ciência de dados), Deep Learning e Machine Learning, não é? A linguagem Python é pioneira nesses ramos.

Inteligência Artificial? Respira com Python.

Quer criar gráficos lindos e maravilhosos? Em 2D e 3D? Girar as figuras, 'entrar', 'sair' delas, puxar pra cima e pra baixo, pra um lado e outro, estilo futurista? Tem bibliotecas prontas pra isso, basta fornecer seus dados, informando o que deseja fazer, que o Python faz.

Simulação 3D com Python


Está com uma equação complicadíssima em mãos, de seu curso de Matemática ou de Física (seja graduação, mestrado, doutorado ou pós-doc) ? Deixa o Python fazer as contas por você, pois existem pacotes com funções de cálculo numérico prontinhas.

Acredite, praticamente tudo que você precisa, outras pessoas já precisaram e desenvolveram ferramentas, de modo que hoje em dia é, basicamente, aprender a usar elas.

E aprendendo a programar, aqui no Python Progressivo, caso você venha a estudar, pesquisar e desenvolver coisas novas no mundo científico, você vai ter bagagem em computação o suficiente para criar suas ferramentas e disponibilizar para o mundo.

Imagina cientistas, universidades e empresas usando código criado por você? Dá pra contar nos dedos quem pode se dar ao luxo de colocar isso em um currículo. Se você fizer, se prepare para a enxurrada de convites para palestras, bolsas e simpósios ao redor do mundo.

Não importa o que você esteja estudando ou no que esteja trabalhando, tem alguém na China, na Rússia, na Índia, Estados Unidos e Europa fazendo o mesmo. E a linguagem que vamos nos comunicar é o Python.

Seja você um Bioquímico, Agrônomo ou doutor em Cristalografia, sempre que precisar fazer contas ou simular algo, você vai aprender a programar usando o Python, para que sua máquina faça todo o trabalho pesado por você.

Para isso, basta estudar pelo curso Python Progressivo.


Programaçao Científica no Python Progressivo

Estudaremos os seguintes assuntos científicos (da Matemática, Física, Computação, Engenharia etc), usando o Python:

  • Vetores, Matrizes e Arrays multidimensionais
  • Cálculo (limites, derivadas, integrais e séries)
  • Equações
  • Equações diferenciais ordinárias
  • Equações diferenciais parciais
  • Álgebra Linear (equações lineares, equações não-lineares, autovalor etc)
  • Plottagem (como criar e visualizar gráficos)
  • Otimização
  • Interpolação (polinômios)
  • Análise e Processamento de dados
  • Estatística
  • Modelagem estatística (Regressão Linear, Regressão Discreta, Modelo de Poisson, Times Series)
  • Estatística Bayesiana
  • Processamento de SInais (Fourier, Filtro de sinais, Convolução, Análise Espectral)
  • Machine Learning (Regressão, Classificação, Clustering)
  • Python com Latex
  • Animações
  • Conjuntos de Mandelbrot


Usaremos diversas ferramentas prontas para usar com o Python, como as bibliotecas e pacotes:

  • NumPy
  • SciPy
  • SymPy
  • Pandas (Series, DataFrame, TimeSeries)
  • Seaborn
  • h5py
  • PyTables
  • Cython, Numba
  • Miniconda e Conda
Contamos com sua contribuição nos comentários. Deixe suas dúvidas, sua sugestão, erratas e não esqueça de dizer de onde você, o que estuda e o que está fazendo usando o Python.

Nenhum comentário:

Postar um comentário