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 é 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.
Documentação de Julia: A documentação de Julia é um recurso muito amigável e bem escrito que explica o design básico e a funcionalidade da linguagem.
Thinking Julia (Lauwens e Downey, 2019): livro introdutório para iniciantes que explica os principais conceitos e funcionalidades por trás da linguagem Julia . Disponível gratuitamente online.
Julia High Performance (Sengupta e Edelman, 2019): livro de dois dos criadores da linguagem Julia (Avik Sengupta e Alan Edelman), aborda como tornar Julia ainda mais rápida com alguns princípios e truques computacionais.
A programming language to heal the planet together: Julia (TEDx Talks, 2020): um vídeo no YouTube do Alan Edelman sobre as lacunas que Julia pretende preencher no mundo da computação científica.
The Unreasonable Effectiveness of Multiple Dispatch. (The Julia Programming Language, 2019): um vídeo no YouTube de um dos criadores da linguagem Julia, Stefan Karpinski, sobre um dos principais diferenciais da linguagem, Despacho Múltiplo (Multiple Dispatch).
Notebooks Pluto: o conteúdo da disciplina é todo feito com Notebooks Pluto que são ambientes reativos e dinâmicos de fácil demonstração e exploração de código Julia.
Julia Programming for Nervous Beginners (Laurie, 2021): um curso de 4 semanas da JuliaAcademy que ensina desde o zero de computação até o básico da linguagem Julia.
Julia Data Science (Storopoli, Huijzer & Alonso, 2021): livro opensource e gratuito sobre Julia
. Possui tradução para Português e Chinês.
Numerical Methods for Scientific Computing (Novak, 2022): livro gratuito com muitas aplicações em métodos numéricos e computação científica. Código todo em Julia
.
Statistics with Julia (Nazarathy & Klok, 2021): livro de estatística e machine learning com Julia.
Ao completar essa disciplina, alunos estarão aptos à:
programar em Julia
programar algoritmos em Julia
fazer benchmark correto de código Julia com BenchmarkTools.jl
utilizar estrutura de dados de Julia
executar operações em paralelo na CPU usando Threads.jl
, ThreadsX.jl
e SIMD
com LoopVectorization.jl
manipular dados tabulares com DataFrames.jl
plotar dados com Plots.jl
, StatsPlots.jl
e AlgebraOfGraphics.jl
criar, manipular e analisar grafos e redes com Graphs.jl
especificar, modelar e otimizar matematicamente problemas complexos com JuMP.jl
treinar algoritmos de machine learning com MLJ.jl
especificar modelos probabilísticos Bayesianos e executar amostradores Markov Chain Monte Carlo (MCMC) com Turing.jl
criar e treinar redes neurais usando Flux.jl
Linguagem Julia e Estrutura de Dados Nativas (Bezanson et al., 2017; Perkel, 2019)
Algoritmos e Benchmarks com BenchmarkTools.jl
(Chen & Revels, 2016)
Dados Tabulares com DataFrames.jl
(White et al., 2020; Storopoli, Huijzer & Alonso, 2021)
Séries Temporais DataFrames.jl
(White et al., 2020; Storopoli Storopoli, Huijzer & Alonso, 2021)
Visualização de Dados com Plots.jl
, StatsPlots.jl
e AlgebraOfGraphics.jl
(Breloff et al., 2021; Storopoli, Huijzer & Alonso, 2021)
Grafos e Análise Redes com Graphs.jl
(Bromberger & Contributors, 2017)
Modelagem e Otimizações Matemáticas com JuMP.jl
(Dunning et al., 2017)
Modelos Probabilísticos Bayesianos com Turing.jl
(Ge et al., 2018; Xu et al., 2020; Storopoli, 2021)
Machine Learning com MLJ.jl
(Blaom et al., 2020)
Deep Learning com Flux.jl
(Innes et al., 2018; Innes, 2018)
Jose Storopoli, PhD - Lattes CV - ORCID - https://storopoli.io
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 :
@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}
}