Julia is a high-level, high-performance dynamic programming language for numerical computing. Even though Julia is still not very well known by the community, it will reach an important milestone when it hits in a couple of months the stable version 1.0. Said that, it is impressive how a yet not stable language has attracted so much attention. Perhaps, Julia is one of the few languages that without been yet in v1.0 has been embraced by many scientists and engineers around the world so actively.
In this INTRODUCTORY lecture about Julia, we are going to follow the basics of the language and show some of the reasons why it is so powerful for simulating quantum systems. It is recommended to come with the laptop in order to follow the examples and to get the feeling of programming in Julia. We will touch all mayor aspects of the language: the command line, control flow, types, functions, modules and metaprogramming. The basic type we are going to extend to obtain the desired functionality when defining the quantum objects is AbstractMatrix, a type in Julia for which lots of linear algebra functions are already implemented. The material we will follow is not intended to be used for production. To make the setup of the Julia environment painless for the audience, we will use a web-based interface to connect with juliabox.com. Therefore, one needs to have an account either in Google, LinkedIn or GitHub. If that's not the case, feel free to ask for help before the lecture.