JULIA COURSE - 2ND EDITION

a NEW language FOR AI AND ML

What is julia and why julia?

Julia is an open source, compiled, high level, high performance programming language. It is designed specifically for scientific computing, machine learning, data mining, large-scale linear algebra, distributed and parallel computing. Julia aims to overcome the low execution speed of Python (without compromising its accessibility!), in order to be as fast as C. It's a pretty young language becoming dominant in research fields especially for AI and ML.

It is interactive, with straightforward math friendly syntax and automatic memory management, and it natively supports concurrent and distributed programming.

A big advantage of Julia is that it is effectively interoperable with many languages (the majority of the top 20 in popular use). Moreover C and Fortran libraries can be called directly without glue code nor wrappers or APIs and there are libraries to interact with Python, R and Java as well.

GENERAL INFO

πŸ“” Date and Time

  • First lecture:
    πŸ—“ Wednesday, December 14th 2022
    πŸ•š 1
    7:00 - 19:00

  • Second lecture:
    πŸ—“
    Friday, December 16th 2022
    πŸ•“ 17:00 - 19:00

πŸ“ Location
Aula Ciamician, Building B
UniTS central campus

πŸ“Ή Live Stream

πŸ“ Registration form (for in-person attendance only!)

Info

▢️ The lectures will be held in English.
▢️ Registration through Eventbrite is suggested for attending in person.
▢️ Live streams (and subsequent recordings) will be posted on YouTube. Link for first lecture.
▢️ In-person attendance is to be preferred for better interaction with the lecturer. Comments on YouTube will be filtered and only a portion of them will be delivered to the teacher.

Schedule

FIRST LECTURE

πŸ—“ Wednesday, December 14th 2022
πŸ•š 17:00 - 19:00
πŸ“ Aula Ciamician, Building B - UniTS central campus

The first lecture will introduce the Julia language, its story, strengths, and current state of the ecosystem.

SECOND LECTURE

πŸ—“ Friday, December 16th 2022
πŸ•š 17:00 - 19:00
πŸ“ Aula Ciamician, Building B - UniTS central campus

The second lecture will introduce some more advanced Julia features, including the notion of macros, provide a high-level overview of some of the best packages available for machine learning and data science in the Julia ecosystem, and of the developer tools and support libraries available.

Prerequisites

Knowledge of another programming language (e.g., Python, C, R) is extremely useful, since the introductory part will mostly focus on the different syntax of Julia and the new features that are available.

TEACHER:

Prof. Luca MANZONI

Associate Professor at the Department of Mathematics and Geosciences at the University of Trieste

Some Julia snippets

Linear Algebra

Julia maintains the simplicity of Python even though it is a compiled, high performant language. Check for examples the following lines with some basic Linear Algebra.

CartPole

A typical example of Reinforcement Learning task is the Cartpole problem. It is an inverted pendulum with a center of gravity above its pivot point. It’s unstable, but can be controlled by moving the cart to the right or to the left. The goal is to keep the cartpole balanced. The algorithm learns from its mistakes and improves its performance, since it is incentivized with punishments for bad actions and rewards for good ones.

Julia code:

Python code:

The code is take from here, while the gif is taken from here.

The main difference with respect to Python resides in the performance that Julia is able to provide.

Julia is orders of magnitudes faster than Python/Matlab on benchmark applications, which is crucial in HPC, scientific computing everyday tasks. You can find more information regarding the benchmarks here.

Questions?

For any question concerning the course, please contact us at events@ai2s.it