Course Outline

Introduction to Julia

  • The role of Julia in specialized computational niches
  • Enhancing data analysis capabilities with Julia
  • Objectives and outcomes of this course for government professionals
  • Initial steps with Julia's Read-Eval-Print Loop (REPL)
  • Alternative development environments: Juno, IJulia, and Sublime-IJulia
  • The Julia ecosystem: accessing documentation and package search tools
  • Seeking additional support: Julia forums and community resources for government users

Strings: Hello World

  • An introduction to the Julia REPL and batch execution through a "Hello World" example
  • Exploring different string types in Julia

Scalar Types

  • Understanding variables: the significance of names and types in programming for government applications
  • Integer data types
  • Floating-point numbers
  • Complex numbers
  • Rational numbers

Arrays

  • Vectors for one-dimensional data storage
  • Matrices for two-dimensional data representation
  • Multi-dimensional arrays for complex data structures
  • Heterogeneous arrays (cell arrays) for mixed data types
  • Comprehensions for concise array creation and manipulation

Other Elementary Types

  • Tuples for fixed-size, immutable collections
  • Ranges for sequence generation
  • Dictionaries for key-value data storage
  • Symbols for unique identifiers in code

Building Your Own Types

  • Abstract types for defining hierarchical type structures
  • Composite types for creating structured data objects
  • Parametric composite types for flexible and generic data definitions

Functions

  • Defining functions in Julia to perform specific tasks
  • Julia functions as methods operating on different data types
  • Multipledispatch: a key feature of Julia's function design
  • Comparison of multiple dispatch with traditional object-oriented programming for government applications
  • Parametric functions for generic operations
  • Functions that modify their input parameters
  • Anonymous functions for temporary or inline operations
  • Optional and required function arguments for flexible function usage

Constructors

  • Inner constructors for initializing type instances within the type definition
  • Outer constructors for creating type instances outside the type definition

Control Flow

  • Compound expressions and variable scoping in Julia
  • Conditional evaluation for decision-making in code
  • Loops for iterative operations
  • Exception handling for robust error management
  • Tasks for concurrent execution of code segments

Code Organization

  • Modules for organizing and encapsulating related code components
  • Packages for distributing reusable code libraries in the government sector

Metaprogramming

  • Symbols for representing code elements as data
  • Expressions for building and manipulating code structures
  • Quoting for creating unevaluated expressions
  • Internal representation of Julia code for low-level manipulation
  • Parsing for converting text into executable code
  • Evaluation for executing code dynamically
  • Interpolation for embedding values directly into strings and expressions

Reading and Writing Data

  • File system operations in Julia
  • Data input/output (I/O) for handling files and streams
  • Lower-level data I/O for precise control over file access
  • Dataframes for managing tabular data efficiently

Distributions and Statistics

  • Defining probability distributions in Julia
  • Methods for evaluating and sampling from distributions
  • Statistical measures such as mean, variance, and covariance
  • Hypothesis testing for statistical inference
  • Generalized linear models: an example using linear regression for government data analysis

Plotting

  • An overview of plotting packages in Julia: Gadfly, Winston, Gaston, PyPlot, Plotly, and Vega
  • Introduction to the Gadfly package for creating high-quality visualizations
  • Combining Interact and Gadfly for interactive data exploration

Parallel Computing

  • An introduction to Julia's message passing implementation for parallel computing
  • Remote calling and fetching for distributed execution
  • Parallel map (pmap) for applying functions across multiple processors
  • Parallel for loops for concurrent iteration
  • Scheduling tasks for efficient resource management
  • Distributed arrays for large-scale data processing in government applications

Requirements

Familiarity with programming is beneficial but not required. This course is designed to instruct participants in the fundamentals of the Julia programming language in a comprehensive and self-contained manner, tailored for government professionals.
 14 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories