Introduction to Julia
Overview
Instructor: Jian Tao
Time: Friday, October 29, 2021 1:30PM-4:00PM CT
Location: Blocker 220 and online using Zoom
Prerequisites: None
Julia is a high-level general-purpose dynamic programming language that was originally designed to address the needs of high-performance numerical analysis and computational science, without the typical need of separate compilation to be fast, also usable for client and server web use, low-level systems programming or as a specification language. (Wikipedia.org)
Julia features optional typing, multiple dispatch, and good performance, achieved using type inference and just-in-time (JIT) compilation, implemented using LLVM. It is multi-paradigm, combining features of imperative, functional, and object-oriented programming. Julia provides ease and expressiveness for high-level numerical computing, in the same way as languages such as R, MATLAB, and Python, but also supports general programming. To achieve this, Julia builds upon the lineage of mathematical programming languages, but also borrows much from popular dynamic languages, including Lisp, Perl, Python, Lua, and Ruby. (julialang.org)
This class will provide an introduction to the Julia programming language.
Course Materials
Slides
- Introduction to Julia (Fall 2021): PDF
Previous Material
- Introduction to Julia (Fall 2018): PDF
Resources
Many Julia tutorials can be found at the Julia web site.
Agenda
This course focuses, among others, on the following topics:
- Introduction to Julia
- Run Julia programs on Linux systems
- Program structure
- Variable Type and Scope
- Functions
- Control Flow
- Methods and Constructors
- Streaming
- Parallel Computing
- Modules
- Meta Programming
- Julia resources on the Web
- Hands-on session