Voltar aos Cursos
AI015 Professional

Introdução à Programação em Julia

Um guia abrangente sobre a linguagem de programação Julia, uma linguagem dinâmica de alto desempenho e geral, muito adequada para computação científica e numérica. O curso aborda tudo, desde a sintaxe básica e tipos de dados até tópicos avançados como metaprogramação, estruturas de dados, redes e interface com bancos de dados.

4.9
30.0h
913 estudantes
0 curtidas
Inteligência Artificial
Começar a Aprender

Visão Geral do Curso

📚 Resumo do Conteúdo

Um guia abrangente sobre a linguagem de programação Julia, uma linguagem dinâmica de alto desempenho e propósito geral, muito adequada para computação científica e numérica. O curso abrange tudo, desde sintaxe básica e tipos de dados até tópicos avançados como metaprogramação, quadros de dados, redes e interface com bancos de dados.

Domine a computação científica de alto desempenho com a velocidade do C e a facilidade do Python.

Autor: Tutorials Point (I) Pvt. Ltd.

Agradecimentos: Copyright 2020 por Tutorials Point (I) Pvt. Ltd. Todo o conteúdo e gráficos são propriedade da Tutorials Point.

🎯 Objetivos de Aprendizagem

  1. Definir a linguagem de programação Julia e identificar seus recursos centrais e contexto histórico.
  2. Diferenciar Julia de outras linguagens de computação técnica em termos de desempenho e sintaxe.
  3. Instalar e configurar com sucesso o ambiente Julia e o REPL no Linux, Windows e macOS.
  4. Aplicar as convenções estilísticas do Julia para nomeação de variáveis e utilizar comentários simples e multilinha para documentação de código.
  5. Criar arrays de diversos tipos e dimensões usando objetos de intervalo, geradores, compreensões e funções internas como zeros() e ones().
  6. Executar tarefas avançadas de indexação e mutação de arrays usando lógica booleana, a palavra-chave end e funções com sinal de exclamação (por exemplo, push!, splice!).
  7. Construir e manipular Tuplas e Tuplas Nomeadas, incluindo seu uso como argumentos de função com palavras-chave.
  8. Identificar e gerenciar comportamentos de estouro de inteiros e erros de divisão usando tipos padrão e de precisão arbitrária.
  9. Analisar representações de ponto flutuante, incluindo zeros com sinal, valores especiais (NaN, Inf) e epsilon da máquina.
  10. Executar e combinar operadores aritméticos, bitwise e atualização para manipular tipos de dados.

🔹 Aula 1: Introdução ao Julia e Configuração do Ambiente

Visão Geral: Esta aula apresenta o Julia, uma linguagem dinâmica de alto nível e alto desempenho projetada especificamente para computação científica e ciência de dados. Os alunos explorarão sua história, características e como se compara a linguagens estabelecidas como Python, R e MATLAB. A aula fornece um guia completo para configurar o ambiente Julia em diferentes sistemas operacionais e gerenciar seu poderoso ecossistema de pacotes.

Resultados de Aprendizagem:

  • Definir a linguagem de programação Julia e identificar seus recursos centrais e contexto histórico.
  • Diferenciar Julia de outras linguagens de computação técnica em termos de desempenho e sintaxe.
  • Instalar e configurar com sucesso o ambiente Julia e o REPL no Linux, Windows e macOS.

🔹 Aula 2: Sintaxe Básica e Manipulação de Arrays

Visão Geral: Esta aula introduz a sintaxe fundamental do Julia, focando em convenções de nomeação de variáveis, comentários e manipulação robusta de estruturas de Array. Os alunos irão progredir desde atribuições simples de variáveis até manipulações complexas de arrays, incluindo criação de arrays multidimensionais, compreensões e operações mutáveis essenciais para computação científica de alto desempenho.

Resultados de Aprendizagem:

  • Aplicar as convenções estilísticas do Julia para nomeação de variáveis e utilizar comentários simples e multilinha para documentação de código.
  • Criar arrays de vários tipos e dimensões usando objetos de intervalo, geradores, compreensões e funções internas como zeros() e ones().
  • Executar tarefas avançadas de indexação e mutação de arrays usando lógica booleana, a palavra-chave end e funções com sinal de exclamação (por exemplo, push!, splice!).

🔹 Aula 3: Tuplas e Tipos Numéricos

Visão Geral: Esta aula fornece uma visão técnica abrangente das estruturas de dados fundamentais e tipos numéricos do Julia, focando especificamente em tuplas imutáveis e nuances da aritmética computacional. Os alunos explorarão a construção e manipulação de tuplas nomeadas, o comportamento de inteiros de precisão fixa (incluindo estouro), e as características relacionadas à precisão de números de ponto flutuante, racionais e complexos. Esta base é crítica para aplicações de computação científica de alto desempenho e ciência de dados.

Resultados de Aprendizagem:

  • Construir e manipular Tuplas e Tuplas Nomeadas, incluindo seu uso como argumentos de função com palavras-chave.
  • Identificar e gerenciar comportamentos de estouro de inteiros e erros de divisão usando tipos padrão e de precisão arbitrária.
  • Analisar representações de ponto flutuante, incluindo zeros com sinal, valores especiais (NaN, Inf) e epsilon da máquina.

🔹 Aula 4: Operadores e Funções Matemáticas

Visão Geral: Esta aula oferece uma exploração abrangente do sistema de operadores do Julia e sua extensa biblioteca de funções matemáticas. Os alunos irão progredir desde operações aritméticas básicas e manipulações bitwise até operações vetoriais "dot" avançadas e comparações encadeadas complexas. O conteúdo detalha ferramentas numéricas essenciais para computação científica, incluindo arredondamento, divisão especializada, funções logarítmicas e trigonométricas.

Resultados de Aprendizagem:

  • Executar e combinar operadores aritméticos, bitwise e de atualização para manipular tipos de dados.
  • Aplicar a sintaxe vetorial "dot" para realizar operações elementares em arrays.
  • Analisar o comportamento de avaliação e regras de precedência em comparações encadeadas e expressões matemáticas complexas.

🔹 Aula 5: Strings e Programação Funcional

Visão Geral: Esta aula aborda os dois pilares do manuseio de dados no Julia: manipulação de strings e Programação Funcional. Os alunos explorarão o suporte robusto do Julia para strings Unicode/UTF-8, indexação avançada e literais não padrão, além do poder definidor do paradigma funcional do Julia, incluindo múltipla dispatch, funções anônimas e funções de ordem superior como map e filter.

Resultados de Aprendizagem:

  • Manipular e pesquisar strings usando indexação por faixa, interpolação e expressões regulares.
  • Criar funções versáteis utilizando argumentos opcionais, argumentos com palavras-chave e recursão.
  • Aplicar padrões de programação funcional (Map/Filtro) e aproveitar a Múltipla Dispatch para seleção de métodos especializados.

🔹 Aula 6: Controle de Fluxo e Coleções de Chave-Valor

Visão Geral: Esta aula aborda as estruturas essenciais para controlar a execução do programa e gerenciar coleções de dados complexas no Julia. Os alunos aprenderão a implementar lógica condicional via expressões ternárias, trocas booleanas e blocos if-else padrão, bem como técnicas de iteração usando loops for e while. Além disso, a aula explora estruturas de dados de alto nível, incluindo Dicionários para mapeamento chave-valor e Conjuntos para armazenamento de elementos únicos, focando na sua criação, manipulação e operações teóricas de conjuntos.

Resultados de Aprendizagem:

  • Implementar lógica condicional concisa usando operadores ternários e expressões booleanas de curto-circuito.
  • Criar ciclos de iteração robustos e lidar com erros em tempo de execução usando exceções e blocos do.
  • Gerenciar dados associativos com Dicionários, incluindo busca, mesclagem e análise de frequência.

🔹 Aula 7: Datas, I/O e Metaprogramação

Visão Geral: Esta aula explora três pilares avançados da linguagem Julia: gerenciamento de dados temporais usando o módulo Dates, operações robustas de entrada/saída (I/O) de arquivos e o poder da metaprogramação. Os alunos aprenderão a manipular datas e horários, navegar e interagir com o sistema de arquivos, e entender como o código Julia é analisado, representado como uma Árvore Sintática Abstrata (AST) e manipulado por meio de macros.

Resultados de Aprendizagem:

  • Realizar cálculos complexos com datas, formatação e arredondamento, compreendendo a hierarquia de tipos subjacente dos objetos temporais.
  • Implementar técnicas eficientes de manipulação de arquivos, incluindo leitura baseada em fluxo, extração de metadados e padrões seguros de fechamento de arquivos.
  • Analisar a estrutura de expressões do Julia e criar macros para automatizar a geração e avaliação de código.

🔹 Aula 8: Visualização de Dados e DataFrames

Visão Geral: Esta aula explora a necessidade dual de análise visual e estatística no Julia, começando com plotagens funcionais e visualizações baseadas em texto (UnicodePlots). Em seguida, transita para a gestão de conjuntos de dados complexos usando o ecossistema DataFrames.jl, enfatizando o papel crítico da limpeza de dados, modelagem de regressão e modificações estruturais para preparar dados para pesquisas científicas.

Resultados de Aprendizagem:

  • Gerar gráficos funcionais e baseados em texto usando Plots.jl, UnicodePlots e VegaLite.
  • Analisar a relação entre estatísticas descritivas e visualização de dados usando o Quarteto de Anscombe e modelos de regressão linear.
  • Realizar manipulações avançadas em DataFrames, incluindo tratamento de valores ausentes, modificações estruturais (adicionar/remover linhas e colunas) e filtragem condicional.

🔹 Aula 9: Computação Científica: Conjuntos de Dados, Módulos e Gráficos

Visão Geral: Esta aula aborda o ecossistema essencial do Julia para computação científica, focando em três pilares: manipulação de dados (CSV, HDF5, XML e RDatasets), análise estatística (estatísticas descritivas e amostragem) e a estrutura modular de programas Julia. Por fim, explora motores de visualização de dados diversificados, desde plotagens de texto de baixo nível até implementações avançadas do "Gramática de Gráficos".

Resultados de Aprendizagem:

  • Realizar Entrada/Saída e Manipulação de Dados: Importar/exportar arquivos CSV e HDF5, analisar XML e realizar subconjuntos e ordenação em DataFrames.
  • Executar Análise Estatística: Calcular estatísticas descritivas simples e ponderadas (média, variância, desvio padrão) e realizar diversas técnicas de amostragem.
  • Gerenciar Estrutura de Código: Instalar e usar módulos/pacotes com eficiência, entendendo a estrutura interna de diretórios de um pacote Julia.

🔹 Aula 10: Redes e Interface com Bancos de Dados

Visão Geral: Esta aula explora as capacidades da linguagem Julia em estabelecer comunicações de rede e interagir com diversos sistemas de bancos de dados. Cobrirá redes de baixo nível via TCP e Pipes Nomeados, serviços web de alto nível (Email, Twitter, WebSockets) e integração com nuvem usando AWS e Google Cloud. Além disso, detalhará conectividade robusta com bancos de dados usando MySQL, JDBC, ODBC, SQLite e PostgreSQL, enfatizando execução de consultas e gerenciamento de metadados.

Resultados de Aprendizagem:

  • Configurar e implantar serviços de rede usando TCP, Pipes Nomeados e WebSockets.
  • Integrar aplicações Julia com ambientes em nuvem (AWS/Google Cloud) e APIs sociais/mensageria (Twitter/Email).
  • Implementar soluções de banco de dados usando APIs diretas (MySQL, SQLite) e abstrações de middleware (JDBC, ODBC, DBI).