Get in Touch

Course Outline

Introduction to Julia

  • Identifying the niche Julia fills
  • Leveraging Julia for data analysis
  • Key takeaways from this course
  • Getting started with Julia's REPL
  • Alternative development environments: Juno, IJulia, and Sublime-IJulia
  • Exploring the Julia ecosystem: documentation and package search
  • Seeking additional support via Julia forums and community

Strings: Hello World

  • Introduction to the Julia REPL and batch execution through "Hello World"
  • Understanding Julia String Types

Scalar Types

  • Understanding variables: why names and types matter
  • Integers
  • Floating-point numbers
  • Complex numbers
  • Rational numbers

Arrays

  • Vectors
  • Matrices
  • Multi-dimensional arrays
  • Heterogeneous arrays (cell arrays)
  • Comprehensions

Other Elementary Types

  • Tuples
  • Ranges
  • Dictionaries
  • Symbols

Building Your Own Types

  • Abstract types
  • Composite types
  • Parametric composite types

Functions

  • Defining functions in Julia
  • Julia functions as methods operating on types
  • Multiple dispatch
  • Differences between multiple dispatch and traditional object-oriented programming
  • Parametric functions
  • Functions that modify their inputs
  • Anonymous functions
  • Optional function arguments
  • Required function arguments

Constructors

  • Inner constructors
  • Outer constructors

Control Flow

  • Compound expressions and scoping
  • Conditional evaluation
  • Loops
  • Exception handling
  • Tasks

Code Organization

  • Modules
  • Packages

Metaprogramming

  • Symbols
  • Expressions
  • Quoting
  • Internal representation
  • Parsing
  • Evaluation
  • Interpolation

Reading and Writing Data

  • Filesystem operations
  • Data I/O
  • Low-level Data I/O
  • DataFrames

Distributions and Statistics

  • Defining distributions
  • Interface for evaluating and sampling from distributions
  • Mean, variance, and covariance
  • Hypothesis testing
  • Generalized linear models: a linear regression example

Plotting

  • Plotting packages: Gadfly, Winston, Gaston, PyPlot, Plotly, Vega
  • Introduction to Gadfly
  • Integrating Interact with Gadfly

Parallel Computing

  • Introduction to Julia's message passing implementation
  • Remote calling and fetching
  • Parallel map (pmap)
  • Parallel for loops
  • Scheduling via tasks
  • Distributed arrays

Requirements

While some prior programming familiarity is beneficial, it is not strictly required. The primary goal of this course is to teach the fundamentals of the Julia programming language in a comprehensive and self-contained manner.

 14 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories