Ciência de Dados e Computação Científica com Julia

Bem-vindo à Disciplina de Ciência de Dados e Computação Científica com Julia do Mestrado e Doutorado em Informática e Gestão do Conhecimento (PPGI) da UNINOVE

Esta disciplina foi inspirada na disciplina do MIT "Computational Thinking, a live online Julia/Pluto textbook, https://computationalthinking.mit.edu".

Julia

Julia é uma linguagem rápida de tipagem dinâmica que compila just-in-time (JIT) em código nativo binário usando LLVM. Ela "roda como C mas escreve como Python", isto quer dizer que é extremamente rápida, de fácil prototipagem e leitura/escrita de código. Além disso, ela é multi-paradigma combinando as características de programação imperativa, funcional, e orientada a objetos.

Pré-requisito(s): lógica de programação e simples conceitos teóricos sobre dados tabulares, grafos e redes, otimização matemática, machine learning, estatística Bayesiana e redes neurais.

Sobre Julia:

Objetivos da Disciplina:

Ao completar essa disciplina, alunos estarão aptos à:

  1. programar em Julia

  2. programar algoritmos em Julia

  3. fazer benchmark correto de código Julia com BenchmarkTools.jl

  4. utilizar estrutura de dados de Julia

  5. executar operações em paralelo na CPU usando Threads.jl, ThreadsX.jl e SIMD com LoopVectorization.jl

  6. manipular dados tabulares com DataFrames.jl

  7. plotar dados com Plots.jl, StatsPlots.jl e AlgebraOfGraphics.jl

  8. criar, manipular e analisar grafos e redes com Graphs.jl

  9. especificar, modelar e otimizar matematicamente problemas complexos com JuMP.jl

  10. treinar algoritmos de machine learning com MLJ.jl

  11. especificar modelos probabilísticos Bayesianos e executar amostradores Markov Chain Monte Carlo (MCMC) com Turing.jl

  12. criar e treinar redes neurais usando Flux.jl

Tópicos

  1. Linguagem Julia e Estrutura de Dados Nativas (Bezanson et al., 2017; Perkel, 2019)

  2. Algoritmos e Benchmarks com BenchmarkTools.jl (Chen & Revels, 2016)

  3. Performance e Operações Paralelas

  4. Dados Tabulares com DataFrames.jl (White et al., 2020; Storopoli, Huijzer & Alonso, 2021)

  5. Séries Temporais DataFrames.jl(White et al., 2020; Storopoli Storopoli, Huijzer & Alonso, 2021)

  6. Visualização de Dados com Plots.jl, StatsPlots.jl e AlgebraOfGraphics.jl (Breloff et al., 2021; Storopoli, Huijzer & Alonso, 2021)

  7. Grafos e Análise Redes com Graphs.jl (Bromberger & Contributors, 2017)

  8. Modelagem e Otimizações Matemáticas com JuMP.jl (Dunning et al., 2017)

  9. Modelos Probabilísticos Bayesianos com Turing.jl (Ge et al., 2018; Xu et al., 2020; Storopoli, 2021)

  10. Machine Learning com MLJ.jl (Blaom et al., 2020)

  11. Deep Learning com Flux.jl (Innes et al., 2018; Innes, 2018)

Autor

Jose Storopoli, PhD - Lattes CV - ORCID - https://storopoli.io

Como usar esse conteúdo?

Este conteúdo possui licença livre para uso (CC BY-SA). Você é mais do que bem-vindo para contribuir com issues e pull requests.

Para citar este conteúdo, use:

Storopoli (2021). Ciência de Dados e Computação Científica com Julia. https://storopoli.github.io/Computacao-Cientifica.

Ou em formato BibTeX para LaTeX\LaTeX:

@misc{storopoli2021programacaojulia,
  author = {Storopoli, Jose},
  title = {Ciência de Dados e Computação Científica com Julia},
  url = {https://storopoli.github.io/Computacao-Cientifica},
  year = {2021}
}