Introduction to Julia Programming: Machine-Learning Models and AI

June 23-25, 2025
8:00am - 4:00pm
CHL Computer Lab, SSC Building 1103, Room 1005

Cost: $1,200 per person

As machine learning and artificial intelligence algorithms grow more sophisticated, the need for a high-performance development environment grows greater and greater. Julia is a programming language designed to feel like a comfortable scripting environment, like Python, but able to deliver the high performance of fully compiled languages like C and Fortran. In this course we introduce the fundamentals of coding in Julia, always with an eye towards programming techniques currently finding application in cutting-edge machine learning and artificial intelligence.

  • Attendees must have programming experience.

  • Training Benefits:

  • Craft efficient code in the high-performance programming language, Julia

  • Create machine-learning models in Julia

  • Understand the vector and matrix methods common to all neural network models

  • Interact with other AI platforms, like PyTorch and TensorFlow

Course Outline:

  • Chapter 1 – Introduction and Overview

    • What is Julia?

    • LLVM

    • Installing and Using Julia

    • The Julia REPL

      • semicolon works as in MATLAB

    • Julia IDEs

      • Installing the Julia kernel for Jupyter notebooks

      • VS Code

    • Hands-On Exercise 1.1

  • Chapter 2 – Fundamentals of the Julia Language

    • Variables and Types in Julia

      • Integers

        • No overflow checking

      • Floats

      • Strings

        • Characters versus strings

        • Strings are assumed to be UTF-8

        • print

        • println

        • formatted printing

      • Dates

    • Using Latex Symbols

    • Best Practices for Datatypes

    • Best practice:

      • Ensure compiler can correctly deduce type

    • Hands-On Exercise 2.1

      • Julia DataFrames

      • Interoperating with Pandas DataFrames

    • Julia Operators and Functions

    • Functions and operators

      • pipe operator

      • Function composition

      • Tuple arguments are immutable

      • Array arguments are mutable

      • Variable number of arguments

      • Broadcasting a function

      • Anonymous functions

    • Contents - Multiple Dispatch

    • Multiple Dispatch

      • Function Signatures

    • Hands-On Exercise 2.2

      • Julia Macros

    • Hands-On Exercise 2.3

  • Chapter 3 – Julia Arrays

    • Arrays

      • Julia matrices are in column-major order

      • Linear and Cartesian indexes

      • EachIndex operator

      • Arrays with custom indices

    • Hands-On Exercise 3.1

      • Applications of Matrices

      • Special Array and Matrix types

      • Introduction to Matrices in Artificial Intelligence

    • Hands-On Exercise 3.2

      • Introductory numerical analysis

      • Matrices – Norms and Conditioning

      • Differential Equations

    • Hands-On Exercise 3.3

  • Chapter 4 – Input and Output

    • FileIO Package

    • Standard File Types

    • Implementing Loaders and Saves

    • Hands-On Exercise 4.1

      • Graphics Output

      • Plotting from the Julia REPL

      • Plotting in Julia Notebooks

    • Hands-On Exercise 4.2

  • Chapter 5 – Putting machine learning theory into practice

    • Statistical modeling

    • Machine Learning

    • Hands-On Exercise 5.1

  • Chapter 6 – Neural Networks with Julia

    • Neural Network Basics in Julia

    • Hands-On Exercise 6.1

    • Advanced Neural Network Libraries in Julia

    • Performance Tuning for Neural Networks

    • Quantization of Neural Networks

    • Hands-On Exercise 6.2

  • Chapter 7 – Debugging, Profiling, and High-Performance Julia

    • The Julia Debugger

    • High Performance Julia

    • Principles of high-performance programming

    • Profiling Julia code

    • Hands-On Exercise 7.1

      • Parallel Processing

      • Multithreading

      • Multiprocessing

      • Distributed processing

    • Hands-On Exercise 7.2

  • Chapter 8 – Interoperating with other Artificial Intelligence Platforms

    • Julia with TensorFlow and PyTorch

    • ONNX

    • Creating a computer vision system

    • Picking a model from the “zoo”

    • ResNet

    • Hands-On Exercise 8.1

  • Chapter 9 – Course Summary

Registration:

Seating is limited! To register, contact Ashley McGinty at Ashley.N.West@usm.edu or 228-688-3170. The deadline for registration is June 6, 2025.

Payment:

CHL accepts checks, credit cards, training forms and purchase orders.

Flyer:

For a printable PDF flyer click here