Programação para aplicações científicas baseadas em linguagens dinâmicas de alto desempenho. Introdução a conceitos como programação por arrays, programação dinâmica, paralelismo, aleatoriedade, simulações estocásticas, resolução numérica de equações diferenciais e otimização. Aplicações.
O curso busca apresentar um ambiente moderno de computação científica resolvendo problemas reais para motivar os alunos. As aulas devem ser ministradas em ambiente de laboratório, para que os alunos possam testar os exemplos de código e fazer modificações ao longo da discussão.<br><br>Tópicos<br><br><br> Introdução a uma linguagem dinâmica para computação de alto desempenho. Conceitos de estruturação de código em tornos de tipos e programação polimórfica.<br> Funções matemáticas em linguagens de programação, diferenciação automática.<br> Programação por arrays e operações em múltiplos objetos com exemplos em aplicações científicas.<br> Noções de programação dinâmica com exemplos em aplicações científicas.<br> Noções de programação paralela com exemplos em aplicações científicas.<br> Aleatoriedade e simulação estocástica com exemplos em aplicações científicas.<br> Resolução numérica de equações deferenciais através de pacotes computacionais com exemplos em aplicações científicas.<br> Exemplos do uso de otimização no controle de equações diferenciais com exemplos em aplicações científicas.<br>
[1] Alan Edelman, David P. Sanders, e Fons van der Plas. Introduction to computational thinking for real-world problems. Disponı́vel em https://github.com/mitmath/18S191 (consultado em 07/01/2021).<br><br>[2] Ivo Balbaert. Julia 1.0 Programming: Dynamic and high-performance programming to build fast scientific applications. Packt Publishing, 2 ª ed., 2018.<br><br>[3] Claus Führer, Jan Erik Solem, e Olivier Verdier. Scientific Computing with Python: High-performance scientific computing with NumPy, SciPy, and pandas. Packt Publishing, 2 ª ed., 2021.<br><br>[4] Jeff Bezanson, Alan Edelman, Stefan Karpinski, e Viral B. Shah. Julia: A fresh approach to numerical computing. SIAM Review, 59(1):65–98, 2017.<br><br>[5] Avik Sengupta. Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond.<br>Packt Publishing, 2 ª ed., 2019.<br><br>[6] Robert Johansson. Numerical Python: Scientific Computing and Data Science Applications with Numpy, Scipy and Matplotlib. Apress, 2 ª ed., 2018.
Por nota e frequência