Course Outline


About Julia Language

Pre-requisites

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

Duration

  • 2-5 Days

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 16.04 Desktop Edition (sudo/root access required)
    • Firefox and Chrome Browsers

Course Outline for Julia

Introduction to Julia
  • Installating 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

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.