Course outline for Julia
About 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