What this workshop is about

Hello and welcome to our Julia workshop!

Together, we'll be exploring the amazing world of Julia, a powerful programming language that's taking the world of scientific computing, data science, and research by storm.

Julia is not only known for its ease of use, but also its incredible speed and flexibility. These qualities make it an excellent choice for developers, data scientists, and researchers alike. Let's dive into some of the key reasons why Julia is so awesome:

  1. Superior performance: Julia is fast – very fast. It eliminates the need to use C/C++, Fortran, or other "slow-productivity" or "slow-prototyping" languages, effectively solving the "two-language problem." This means you can focus on one language for both development and performance optimization.
  2. User-friendly syntax: Julia boasts a simple and intuitive syntax that makes it easy for beginners to pick up and for experts to master.
  3. Advanced support for Unicode and $\LaTeX$ characters: Julia makes it simple to incorporate Unicode and $\LaTeX$ characters into your code. Say goodbye to "alpha" and "beta" and embrace the elegance of α and β.
  4. Rapid prototyping: With Julia, it's easy to add and prototype new algorithms right from the start, allowing you to quickly create efficient, high-performance solutions.

How to get started

As this is an asynchronous workshop, you might be reading this before, during, or after the workshop. Regardless of when you're engaging with the material, we hope you'll find this workshop useful and informative.

To ensure a smooth learning experience, we have divided the workshop into three main stages: pre-workshop preparation, hands-on activities during the workshop, and post-workshop exploration.

Pre-workshop preparation

It is important that you install Julia and Visual Studio Code following the steps outlined in Chapter 0.

During the workshop

We will focus on what sets Julia apart from other programming languages working hands-on with Julia in Visual Studio Code (VSCode). Through hands-on activities, you'll gain practical experience to reinforce your understanding of the concepts.

The core of this workshop consists of 5 chapters (Chapter 0 - Chapter 4) that you can see in the sidebar on the left. They are meant to be completed in your own pace but in this order (0-4).

Chapter 0 should aready be completed before the workshop begins, unless you are doing it on your own. There we guide you through the installation of the Julia and Visual Studio Code.

Chapter 1 is the first chapter that we tackle together (unless you are on your own). Before diving into the intricacies of Julia, we will first discuss the workflow and tools you'll need to get started with the language. This will help you familiarize yourself with the environment, become proficient in using Julia, and empower you to troubleshoot any issues you may encounter.

Chapter 2 is meant to make the Julia syntax more familiar to you. This is meant to help you translate concepts that you already know from other programming languages like, e.g., assignment, control flow, functions, etc.

Chapter 3 is about things that exist in Julia. Everything that exists in Julia has a type. Without understanding types, you can not understand Julia. What better way to understand than to create your own type?

Chapter 4 is about things that happen in Julia. Everything that happens in Julia is because of functions. What functions do is deeply integrated with Julia's type system trough a prosses called mutliple dispatch. This chapter shows you how to leverage this system to do amazing things, hardly possible somewhere else.

Post workshop exploration

After the workshop, we encourage you to continue experimenting with Julia, apply the skills you've learned to real-world projects, and leverage the resources and community support available to further your knowledge. To start you on this journey we have prepared the Additional Materials section. By thoughtfully engaging with the workshop content and activities, you'll be well-prepared to harness the full potential of Julia and excel in your projects.