Introduction to Julia Programming

Overview

Julia (https://julialang.org/) is fast becoming a popular language of choice for scientific computing and machine learning. It boasts high performance, ease of use and easy to learn syntax.

This course introduces Julia language, tools and programming.

What You Will Learn

  • Julia vs other languages
  • Julia language features
  • Julia development environment
  • Data Types / Variables / Functions
  • Reading and processing data files
  • Data visualization
  • Meta programming
  • Profiling and performance evaluation
  • Machine learning introduction

Audience

Developers, Architects

Skill Level

Introductory

Duration

Three days

Format

Lectures and hands-on labs. (50% 50%)

Prerequisites

  • Programming experience with Python or Java

Students will need the following

  • A reasonably modern laptop with unrestricted connection to the Internet. Laptops with overly restrictive VPNs or firewalls may not work properly
  • Julia development environment (instructions will be provided)

Detailed outline

Introduction to Julia Language

  • Scientific computing ecosystem
  • Julia vs. other languages
  • Features of Julia
  • Julia development environment
  • Lab: Up and running with Julia

Julia Language Basics

  • REPL environment
  • Variables and types
  • Logical and arithmetic expressions
  • Variable scope
  • Lab:

Julia Language

  • Arrays
  • Loops
  • Control flow
  • Lab:

Functions

  • Function syntax
  • Using built-in functions
  • Writing User-Defined-Functions (UDF)
  • Lab

Dataframes

  • Dataframes introduction
  • Packages to use
  • Loading data into data frames

Visualization

  • Plots available in Julia
  • Creating basic plots
  • Plot packages
  • Lab

Data Analytics

  • Loading data files
  • Analyzing and summarizing data
  • Statistics
  • Dealing with missing values
  • Lab:

Modules

  • Constructors
  • Interfaces
  • Modules
  • Lab:

Meta-Programming

  • Metaprogramming concepts
  • Macros
  • Code generation
  • Lab:

Performance

  • Profiling code
  • Running benchmarks
  • Best practices for performance
  • Lab

Getting Started with Machine Learning with Julia

  • Packages for ML
  • Linear regression intro
  • Lab: Linear regression in Julia