{"id":16705613,"url":"https://github.com/storopoli/computacao-cientifica","last_synced_at":"2025-04-10T05:15:02.864Z","repository":{"id":38400848,"uuid":"375091279","full_name":"storopoli/Computacao-Cientifica","owner":"storopoli","description":"Disciplina de Computação Científica com Julia","archived":true,"fork":false,"pushed_at":"2023-10-01T09:51:57.000Z","size":30110,"stargazers_count":18,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T05:14:59.059Z","etag":null,"topics":["julia","scientific"],"latest_commit_sha":null,"homepage":"https://storopoli.github.io/Computacao-Cientifica","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storopoli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-06-08T17:25:48.000Z","updated_at":"2025-01-04T23:13:22.000Z","dependencies_parsed_at":"2022-09-16T08:21:21.960Z","dependency_job_id":"b8611112-c577-439f-9210-4a61b8f11de7","html_url":"https://github.com/storopoli/Computacao-Cientifica","commit_stats":{"total_commits":192,"total_committers":4,"mean_commits":48.0,"dds":"0.14583333333333337","last_synced_commit":"64f7bc3642d2175766603d20673177805e097181"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2FComputacao-Cientifica","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2FComputacao-Cientifica/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2FComputacao-Cientifica/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storopoli%2FComputacao-Cientifica/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storopoli","download_url":"https://codeload.github.com/storopoli/Computacao-Cientifica/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161278,"owners_count":21057555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["julia","scientific"],"created_at":"2024-10-12T19:31:14.794Z","updated_at":"2025-04-10T05:15:02.838Z","avatar_url":"https://github.com/storopoli.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ciência de Dados e Computação Científica com [Julia](https://julialang.org/)\n================\n\n[![CC BY-SA\n4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-sa/4.0/)\n\nBem-vindo à Disciplina de **Computação Científica com [Julia](https://julialang.org/)** do Mestrado e Doutorado em Informática e Gestão do Conhecimento (PPGI) da [UNINOVE](https://uninove.br)\n\nA disciplina toda foi gravada e disponibilizada no YouTube na playlist\nabaixo:\n\n[![Julia Computação Científica](https://img.youtube.com/vi/Oyvr32MhrwQ/maxresdefault.jpg)](https://youtube.com/playlist?list=PLpTXaEnTpmwPE4amQWlikU8Zt6mwmgyny)\n\nEsta disciplina foi inspirada na disciplina do MIT \"Computational Thinking, a live online Julia/Pluto textbook, https://computationalthinking.mit.edu\".\n\n## Julia\n\n[**Julia**](https://www.julialang.org) é 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\"](https://www.nature.com/articles/d41586-019-02310-3), 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.\n\n**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.\n\n### Sobre Julia:\n\n* [**Documentação de Julia**](https://docs.julialang.org): A documentação de [Julia](https://www.julialang.org) é um recurso muito amigável e bem escrito que explica o design básico e a funcionalidade da linguagem.\n* [**Thinking Julia**](https://benlauwens.github.io/ThinkJulia.jl/latest/book.html) (Lauwens e Downey, 2019): livro introdutório para iniciantes que explica os principais conceitos e funcionalidades por trás da linguagem [Julia](https://www.julialang.org) . Disponível gratuitamente online.\n* **Julia High Performance** (Sengupta e Edelman, 2019): livro de dois dos criadores da linguagem [Julia](https://www.julialang.org) ([Avik Sengupta](https://www.linkedin.com/in/aviks) e [Alan Edelman](http://www-math.mit.edu/~edelman/)), aborda como tornar [Julia](https://www.julialang.org) ainda mais rápida com alguns princípios e truques computacionais.\n* [**A programming language to heal the planet together**](https://youtu.be/qGW0GT1rCvs): Julia (TEDx Talks, 2020): um vídeo no YouTube do [Alan Edelman](http://www-math.mit.edu/~edelman/) sobre as lacunas que [Julia](https://www.julialang.org) pretende preencher no mundo da computação científica.\n* [**The Unreasonable Effectiveness of Multiple Dispatch**](https://youtu.be/kc9HwsxE1OY). (The Julia Programming Language, 2019): um vídeo no YouTube de um dos criadores da linguagem [Julia](https://www.julialang.org), [Stefan Karpinski](https://karpinski.org/), sobre um dos principais diferenciais da linguagem, [**Despacho Múltiplo**](https://en.wikipedia.org/wiki/Multiple_dispatch) (*Multiple Dispatch*).\n* **Notebooks [Pluto](https://plutojl.org/)**: o conteúdo da disciplina é todo feito com Notebooks [Pluto](https://plutojl.org/) que são ambientes reativos e dinâmicos de fácil demonstração e exploração de código [Julia](https://www.julialang.org).\n* [**Julia Programming for Nervous Beginners**](https://juliaacademy.com/p/julia-programming-for-nervous-beginners) (Laurie, 2021): um curso de 4 semanas da [JuliaAcademy](https://juliaacademy.com/) que ensina desde o zero de computação até o básico da linguagem [Julia](https://www.julialang.org).\n* [**Julia Data Science**](https://juliadatascience.io) (Storopoli, Huijzer \u0026 Alonso, 2021): livro opensource e gratuito sobre `Julia`. Ainda em elaboração, será um conteúdo bilíngue Português-Inglês.\n\n## Objetivos da Disciplina:\n\nAo completar essa disciplina, alunos estarão aptos à:\n\n1. programar em [Julia](https://julialang.org/)\n2. programar algoritmos em [Julia](https://julialang.org/)\n3. fazer *benchmark* correto de código [Julia](https://julialang.org/) com [`BenchmarkTools.jl`](https://juliaci.github.io/BenchmarkTools.jl/dev/)\n4. utilizar estrutura de dados de [Julia](https://julialang.org/)\n5. executar operações em paralelo na CPU usando [`Threads.jl`](https://docs.julialang.org/en/v1/base/multi-threading/), [`ThreadsX.jl`](https://tkf.github.io/ThreadsX.jl/dev/) e `SIMD` com [`LoopVectorization.jl`](https://juliasimd.github.io/LoopVectorization.jl/stable/)\n6. manipular dados tabulares com [`DataFrames.jl`](https://dataframes.juliadata.org/stable/)\n7. plotar dados com [`Plots.jl`](http://docs.juliaplots.org/latest/), [`StatsPlots.jl`](https://github.com/JuliaPlots/StatsPlots.jl) e [`AlgebraOfGraphics.jl`](http://juliaplots.org/AlgebraOfGraphics.jl/stable/)\n8. criar, manipular e analisar grafos e redes com [`Graphs.jl`](https://juliagraphs.org/Graphs.jl/dev/)\n9.  especificar, modelar e otimizar matematicamente problemas complexos com [`JuMP.jl`](https://jump.dev/)\n10. treinar algoritmos de machine learning com [`MLJ.jl`](https://alan-turing-institute.github.io/MLJ.jl/dev/)\n11. especificar modelos probabilísticos Bayesianos e executar amostradores *Markov Chain Monte Carlo* (MCMC) com [`Turing.jl`](https://turing.ml)\n12. criar e treinar redes neurais usando [`Flux.jl`](https://fluxml.ai/)\n\n## Tópicos\n\n1. [**Linguagem Julia e Estrutura de Dados Nativas**](https://storopoli.github.io/Computacao-Cientifica/01_Julia/) (Bezanson et al., 2017; Perkel, 2019)\n2. [**Algoritmos e *Benchmarks* com `BenchmarkTools.jl`**](https://storopoli.github.io/Computacao-Cientifica/02_BenchmarkTools/) (Chen \u0026 Revels, 2016)\n3. [**_Performance_ e Operações Paralelas**](https://storopoli.github.io/Computacao-Cientifica/03_Parallel/)\n4. [**Dados Tabulares com `DataFrames.jl`**](https://storopoli.github.io/Computacao-Cientifica/04_DataFrames/) (White et al., 2020; Storopoli, Huijzer \u0026 Alonso, 2021)\n5. [**Séries Temporais `DataFrames.jl`**](https://storopoli.github.io/Computacao-Cientifica/05_TimeSeries/)(White et al., 2020; Storopoli, Huijzer \u0026 Alonso, 2021)\n6. [**Visualização de Dados com `Plots.jl`, `StatsPlots.jl` e `AlgebraOfGraphics.jl`**](https://storopoli.github.io/Computacao-Cientifica/06_Plots/) (Breloff et al., 2021; Storopoli, Huijzer \u0026 Alonso, 2021)\n7. [**Grafos e Análise Redes com `Graphs.jl`**](https://storopoli.github.io/Computacao-Cientifica/07_Graphs/) (Bromberger \u0026 Contributors, 2017)\n8.  [**Modelagem e Otimizações Matemáticas com `JuMP.jl`**](https://storopoli.github.io/Computacao-Cientifica/08_JuMP/) (Dunning et al., 2017)\n9.  [**Modelos Probabilísticos Bayesianos com `Turing.jl`**](https://storopoli.github.io/Computacao-Cientifica/09_Turing/) (Ge et al., 2018; Xu et al., 2020; Storopoli, 2021)\n10. [**_Machine Learning_ com `MLJ.jl`**](https://storopoli.github.io/Computacao-Cientifica/10_MLJ/) (Blaom et al., 2020)\n11. [**_Deep Learning_ com `Flux.jl`**](https://storopoli.github.io/Computacao-Cientifica/11_Flux/) (Innes et al., 2018; Innes, 2018)\n\n## Autor\n\nJose Storopoli, PhD - [*Lattes* CV](http://lattes.cnpq.br/2281909649311607) - [ORCID](https://orcid.org/0000-0002-0559-5176) - \u003chttps://storopoli.io\u003e\n\n## Como usar esse conteúdo?\n\nEste conteúdo possui *licença livre para uso* (CC BY-SA). Você é mais do que bem-vindo para contribuir com [issues](https://www.github.com/storopoli/Computacao-Cientifica/issues) e [pull requests](https://github.com/storopoli/Computacao-Cientifica/pulls).\n\nPara configurar um ambiente local:\n\n1. Baixe e instale [Julia](https://www.julialang.org/downloads/)\n2.  Clone o repositório do GitHub:\n    `git clone https://github.com/storopoli/Computacao-Cientifica.git`\n3.  Acesse o diretório: `Computacao-Cientifica`\n4.  Abra os Notebooks Pluto no terminal de Julia:\n    ```julia\n    using Pkg\n    Pkg.add(\"Pluto\")\n    using Pluto\n    Pluto.run()\n    ```\n\n## Como citar esse conteúdo\n\nPara citar o conteúdo use:\n\n    Storopoli (2021). Ciência de Dados e Computação Científica com Julia. https://storopoli.github.io/Computacao-Cientifica.\n\nOu em formato BibTeX (LaTeX):\n\n    @misc{storopoli2021computacaocientificajulia,\n      author = {Storopoli, Jose},\n      title = {Ciência de Dados e Computação Científica com Julia},\n      url = {https://storopoli.github.io/Computacao-Cientifica},\n      year = {2021}\n    }\n\n## Referências\n\n* Bezanson, J., Edelman, A., Karpinski, S. \u0026 Shah, V. B. (2017). Julia: A Fresh Approach to Numerical Computing. *SIAM review, 59*(1), 65–98.\n\n* Blaom, A. D., Kiraly, F., Lienart, T., Simillides, Y., Arenas, D. \u0026 Vollmer, S. J. (2020). MLJ: A Julia Package for Composable Machine Learning. *Journal of Open Source Software, 5*(55), 2704. https://doi.org/10.21105/joss.02704\n\n* Breloff, T., Schwabeneder, D., Borregaard, M. K., Christ, S., Heinen, J., Yuval, Palugniok, A.,Simon, Vertechi, P., Zhanibek, Chamberlin, T., ma-laforge, Rackauckas, C., Schulz,O., Pfitzner, S., Arakaki, T., Yahyaabadi, A., Devine, J., Pech, S., ... Watson, S. S.(2021). JuliaPlots/Plots.Jl: V1.13.2. https://doi.org/10.5281/zenodo.4725318\n\n* Bromberger, S. \u0026 Contributors, O. (2017). Juliagraphs/Lightgraphs.Jl: An Optimized Graphs Package for the Julia Programming Language. https://doi.org/10.5281/ZENODO.889971\n\n* Chen, J. \u0026 Revels, J. (2016). Robust Benchmarking in Noisy Environments. *arXiv:1608.04295[cs]*.\n\n* Dunning, I., Huchette, J. \u0026 Lubin, M. (2017). JuMP: A Modeling Language for Mathematical Optimization. *SIAM Review, 59*(2), 295–320. https://doi.org/10.1137/15M1020575\n\n* Gao, K., Mei, G., Piccialli, F., Cuomo, S., Tu, J. \u0026 Huo, Z. (2020). Julia Language in Machine Learning: Algorithms, Applications, and Open Issues. *Computer Science Review, 37*,100254. https://doi.org/10.1016/j.cosrev.2020.100254\n\n* Ge, H., Xu, K. \u0026 Ghahramani, Z. (2018). Turing: A Language for Flexible Probabilistic Inference. *International Conference on Artificial Intelligence and Statistics*, 1682–1690.\n\n* Innes, M., Saba, E., Fischer, K., Gandhi, D., Rudilosso, M. C., Joy, N. M., Karmali, T.,Pal, A. \u0026 Shah, V. (2018). Fashionable Modelling with Flux. *CoRR,abs/1811.01457*. https://arxiv.org/abs/1811.01457\n\n* Laurie, H. (2021). Julia Programming for Nervous Beginners. https://juliaacademy.com/p/julia-programming-for-nervous-beginner\n\n* Innes, M. (2018). Flux: Elegant Machine Learning with Julia. *Journal of Open Source Software*. https://doi.org/10.21105/joss.00602\n\n* Lauwens, B. \u0026 Downey, A. B. (2019). *Think Julia: How to Think Like a Computer Scientist* (1st edition). O’Reilly Media.\n\n* Nazarathy, Y., \u0026 Klok, H. (2021). *Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence*. Springer Nature.\n\n* Novak, K. (2021). *Numerical Methods for Scientific Computing*. 2nd Edition. Equal Share Press.\n\n* Perkel, J. M. (2019). Julia: Come for the Syntax, Stay for the Speed. *Nature, 572(7767)*, 141–142. https://doi.org/10.1038/d41586-019-02310-3\n\n* Sengupta, A. \u0026 Edelman, A. (2019). *Julia High Performance: Optimizations, Distributed Computing, Multithreading, and GPU Programming with Julia 1.0 and beyond*, 2nd Edition. Packt Publishing.\n\n* Storopoli, J. (2021). Bayesian Statistics with Julia and Turing. https://storopoli.github.io/Bayesian-Julia\n\n* Storopoli, J., Huijzer, R. \u0026 Alonso, L. (2021). Julia Data Science. https://juliadatascience.io\n\n* TEDx Talks. (2020). A Programming Language to Heal the Planet Together: Julia | AlanEdelman | TEDxMIT.\n\n* The Julia Programming Language. (2019). JuliaCon 2019 | The Unreasonable Effectivenessof Multiple Dispatch | Stefan Karpinski.\n\n* White, J. M., Kamiński, B., powerdistribution, Milan Bouchet-Valat, Garborg, S., Quinn,J., Kornblith, S., cjprybol, Stukalov, A., Bates, D., Short, T., DuBois, C., Harris,H., Squire, K., Arslan, A., pdeffebach, Anthoff, D., Kleinschmidt, D., Noack, A.,... White, L. (2020). JuliaData/DataFrames.Jl: V0.22.1. https://doi.org/10.5281/zenodo.4282946\n\n* Xu, K., Ge, H., Tebbutt, W., Tarek, M., Trapp, M. \u0026 Ghahramani, Z. (2020). AdvancedHMC.Jl: A Robust, Modular and Efficient Implementation of Advanced HMC Algorithms. *Symposium on Advances in Approximate Bayesian Inference*, 1–10.\n\n## Licença\n\nEsta obra está licenciada com uma Licença [Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional](http://creativecommons.org/licenses/by-sa/4.0/).\n\n[![CC BY-SA 4.0](https://licensebuttons.net/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoropoli%2Fcomputacao-cientifica","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstoropoli%2Fcomputacao-cientifica","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoropoli%2Fcomputacao-cientifica/lists"}