Julia2925: learn a fast and intuitive programming language in two workdays

Level - Target audience

Scientists and (bioscience) engineers who use programming to smaller or larger extend in their research. Attendees should be reasonably proficient in at least one high-level programming language (novices are ok, but this is not a course to learn the basics of programming).

Organising & Scientific Committee

    Contact person: Michiel Stock
    Faculty: Bioscience Engineering
    E-mail: michiel.stock@ugent.be
    More information

    Daan Van Hauwermeiren (UGent - BW26)
    Bram De Jaegher (UGent - BW26)

    Abstract

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

    Topic

    This two-day course gives an in-depth introduction to the Julia programming language. The first day will introduce the basic elements of Julia programming (variables, printing, plotting, looping, collections, etc.) and a first introduction to the type system. On the second day, we will comprehensively cover the type system, its relation to multiple dispatch and illustrate how this translates into extensible and user-friendly programs. We cover the subject matter interactively in interactive notebooks. Each day, we make a larger synthesis project in the afternoon.

    Objectives and learning outcomes

    Attendees depart from a basic programming experience in a high-level language (R, Matlab, Python, etc.). We expect them to have followed at least one programming course in their previous studies (e.g., Wetenschappelijk Programmeren). At the end of the course, the student has a grasp on Julia's programming aspects and is capable of developing an extensive, performant codebase in Julia according to the language best practices, with an emphasis on scientific problems.

    Dates and Program

    (Mon-Tue) 20-21 september 2021

    • Day 1:
      - Morning theory:
      - Basic concepts
      - Collections
      - Introduction to type systems
      - Afternoon projects:
      - cellular automata
    • Day 2:
      - Morning theory:
      - Types + multiple dispatch (advanced)
      - Metaprogramming
      - Interesting packages (illustration)
      - Colors.jl
      - Zygote.jl
      - overloading plot functions
      - Smaller exercises (self exploration)
      - Afternoon projects
      - Uncertainty bands
      - Make you own matrix-type

    Venue

    FBW (Faculteit Bio-ingenieurswetenschappen), Coupure links 653, PC-lokaal E-1.2

    Lecturers

    • Dr. ir. Michiel Stock is a postdoctoral researcher at the KERMIT research group at the University of Ghent’s department of Data Analysis and Mathematical Modelling. His research activities revolve around using convex methods to model complex biological systems with an emphasis on ecology and synthetic biology.
    • Dr. ir. Daan Van Hauwermeiren obtained his master degree in Bioscience Engineering, Environmental Technology, in 2014. After some wandering around research of fluid dynamics and enzyme kinetics in micro-reactors, his research topic moulted into predictive models for continuous pharmaceutical productions systems for oral solid dosages.
    • Ir. Bram De Jaegher is currently doing a PhD on the modelling of electrodialysis at the Department of Mathematical modelling.

    Registration fee

    Free of charge for members of Doctoral Schools of Ghent University.

    Registration

    Please follow this link: https://webappsx.ugent.be/eventManager/events/juliaprogramminglanguage

    Teaching materials

    All course material (notebooks and slides) will be made available through Github.

    Number of participants

    Maximum 40 participants

    Evaluation criteria (doctoral training programme)

    Attendance + submitting completed notebooks.