Course outline for Julia

Pre-requisites for learning Julia

  • The participants must be comfortable with programming constructs in any one language

Lab Setup

  • Hardware Configuration - Participants must have access to a system with the following hardware configuration
    • 2GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 20.04/22.04 Desktop Edition (sudo/root access required)
    • Firefox and Chrome Browsers

Duration

  • 2-5 Days

Training Mode

Online training for Julia

We provide:

  • Instructor led live training
  • Self-paced learning with access to expert coaches
  • 24x7 access to cloud labs with end to end working examples

All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.

Classroom training for Julia

Classroom sessions are conducted in client locations in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR

Note: Classroom training is for corporate clients only

Detailed Course Outline for Julia

Introduction to Julia

  • Installation of Julia
  • Julia - “Hello World”

Julia Fundamentals

  • Types
  • Variables
  • Strings
  • Integers, Floating-Point, Complex and Rational numbers
  • Mathematical operations and Elementary functions
  • Control flow

Methods and Constructors

  • Defining and Redefining methods
  • Empty generic functions
  • Outer and Inner constructor methods
  • Types of constructors

Type Conversion and Promotion

  • Defining conversion
  • Promotion – understanding conversion from mixed to single common type
  • Promotion rules
  • Case studies on Conversion and Promotion

Interfaces and Modules

  • Iteration
  • Indexing
  • Abstract arrays
  • Making use of modules

Understanding Metaprogramming

  • Representation of program
  • Expressions and evaluation
  • Macros
  • Code generation and generated functions

Linear Algebra in Julia

  • Special matrices
  • Matrix factorization

Parallel Programming in Julia

  • Parallel map and loops
  • Synchronization
  • Scheduling
  • References and Channels
  • Shared arrays and Garbage collection
  • Cluster managers
  • Network topology
  • Multi-Threading and @threadcall

Networking and Streams

  • Stream and Text I/O
  • Contexual properties of I/O output
  • File operations

Julia REPL

  • Prompt modes
  • Key bindings
  • REPL properties

Configuring Julia with Environment Variables

  • File locations
  • Parallelization
  • REPL formatting
  • Debugging and Profiling
  • External applications

Using C Code in Julia

  • C - Compatible Julia function pointers
  • Mapping C types and functions to Julia
  • Garbage collection safety
  • Non-constant function specifications
  • Indirect calls and calling convention
  • Accessing global variables and data through a pointer
  • Thread-safety

Julia in C/C++ Projects – Embedding Julia

  • High-level embedding
  • Calling Julia functions
  • Type conversion
  • Memory management and arrays
  • Exception handling

Julia Package Manager

  • Package status
  • Adding and removing packages
  • Package updates
  • Package development

Misc

  • Running external programs - interpolation, quoting and pipelines
  • Multi-dimensional arrays
  • Date and DateTime
  • Documentation in Julia