Julia2925

Logo

Specialist course Doctoral schools of Ghent University

View the Project on GitHub Beramos/DS-Julia2925

Julia2925: learn a fast and intuitive programming language in two (or three) workdays

Introduction

The Julia language has taken the scientific computing community by storm. In Julia, the user can write high-level code that is easy to write but also blazingly fast. Its type-based dispatch system allows creating versatile code in a few lines of elegant code. It has gained enormous popularity in numerical computing, statistics, machine learning, etc.

This three-day course gives an in-depth introduction to the Julia programming language. The first day will introduce the essential elements (variables, printing, plotting, looping, collections, etc.) of Julia programming along with a peek behind the curtains of the type system. On the second day, we will cover the type system comprehensively and discuss its relation to multiple dispatch and illustrate how this translates into extensible and user-friendly programs. We cover the subject matter interactively in notebooks. In the afternoon sessions, we guide you through larger synthesis projects to solidify your knowledge. On day three, we apply existing packages in the Julia ecosystem to tackle challenging scientific projects, including data science, robotics, simulation and web scraping.

Participants can follow the full three-day course, day 1 & 2 or day 2 & 3. Day 1 might be skipped if one already uses Julia regularly (but it can be a good refresher), and we recommend only following day 3 if one is already quite comfortable in scientific programming.

Course content

Day 1

  1. The basics of Julia
  2. The basics of Julia (extra)
  3. Collections
  4. Exercises

Day 2

  1. Introduction to the type system
  2. Composite types
  3. Synthesis exercise
  4. Metaprogramming

Day 3

A tailored selection of scientific projects including data science, robotics, simulation and web scraping. These notebooks are still in development.

Who is this for?

This course aims to provide an extensive introduction to Julia to kickstart those PhD researchers who want to incorporate it in their research and to create a solid foundation for Julia novices. We mainly cater to PhD students in sciences and engineering, especially those who have a computing aspect in their research (large or small). The course is relevant to researchers who need to write complex high-level code that has to be performant. Importantly, this course is not meant as a first introduction to programming. Participants are expected to have basic experience in at least one high-level programming language such as Python, R, Matlab, or Perl. We aim to start gentle enough so that novice programmers can get acquainted with the language while following a learning curve that will keep serious hackers interested. At the end of day 2, you will have learned the tools to write fairly sophisticated Julia programs. On the final day we will apply our Julia skills to tackle a selection of real world scientific projects.

Date and venue

The course will take place on the 5th, 6th and 7th of February 2024. It will take place in a PC-room at Campus Coupure. If we can not meet on-site, the course will be taught online with maximal interactivity.

Registration and fees

Registration can be done via the following link here. For external members and master students, please contact the organisers to enrol.

Admission prices are:

We also provide a limited number of free slots for master students. Please contact the organisers if you want to join.

Julia computing logo

Organizer information

This course is organized by Michiel Stock (UGent), Daan Van Hauwermeiren (elegent), and Bram De Jaegher (Fluves), a professor in Applied Dynamic Systems and two postdocs originating from the Department of Mathematical Modelling and Data Analysis of the Faculty of Bioscience Engineering. They have ample experience using Julia for both research and education and are (co-)authors of several Julia software packages.

Contact

More information? Unsure if this course is relevant to you? Reach out to the organisers!