Call for examples for an introductory course to Julia for mathematics students

Hello community,

I’m looking to run a short introduction to Julia course at Oxford aimed at maths/stats students. The idea came about because everyone I speak to has heard of Julia but never used it. I am not aware of many research or teaching fellows* that use the language in their research beyond my supervisor Rafael Bailo so I fear that few are introduced to it formally, unlike my previous institution Warwick where some postgraduate courses are taught with Julia.

The idea for the course is twofold:

  • To introduce the language to an audience that does not know or care about software engineering.
  • To demonstrate why someone would want to use Julia in specific mathematical domains or related subjects.

I emphasise the first point because many of the reasons people recommend to switch from MATLAB or Python to Julia are rooted in SWE best practices and theory that may be difficult to grasp for someone who uses software as a scientific tool. The majority of students here have used both MATLAB and Python in their undergraduate years but have a narrow view of programming as a whole and don’t understand why one would choose one language over another. I would like to give people the opportunity to try Julia on real problems, possibly even their own, while smoothing the initial learning/transition curve for someone who is not so familiar with programming.

I would like to gather examples of code that do simple yet difficult things in Julia. I have personal experience using certain packages like DifferentialEquations, Turing, and Agents, but since Julia has been my primary language of choice for a while now, I never got the opportunity to use the Python/R/MATLAB equivalents and so I don’t know what the “pain points” of the equivalent packages would be.

It would be nice if people could submit code with some description of the following things:

  • The code (nicely annotated for someone who understand the domain at an undergraduate level)
  • An explanation of the problem the code solves and any particularities of Julia that make it easier such as JIT compilation or multiple dispatch.
  • Bonus points for equivalent code in MATLAB or Python!

I will start compiling my own examples for topics in numerical computing and agent-based modelling, but I would highly appreciate any submissions on mathematical topics! If you’d like an idea of what is taught here at a graduate level to know what students would be interested in, a full list of courses can be found here. Once I’ve got a few things set up I’ll make a GitHub repository for the course, it won’t be so professional, just a casual endeavour to foster a Julia community at the university.

Thank you :slight_smile:

*I have only been here since October of last year, so I could be mislead.

1 Like

Hello! :slight_smile:

People are generally speaking really happy with the material of my workshop: Zero2Hero intensive Julia workshop - YouTube .

But I need to warn you in advance: it is for people already familiar with programming, just not with Julia.

Our Agents.jl paper highlights how an ABM in Julia needs significantly (and provably so) less code complexity to be created: [2101.10072] Agents.jl: A performant and feature-full agent based modelling software of minimal code complexity

2 Likes

Many of the cool stuff you can do with Julia in my domain (particle simulations) I wrote in this notebook; ⚡ Pluto.jl ⚡ . Maybe it inspires some example. There are small examples of simulations, error propagation, etc.

2 Likes

See also my slides here: https://github.com/mitmath/julia-mit

3 Likes

Thank you! These in particular are fantastic at addressing my audience.

Thank you also to everyone for the contributions so far, I will scan them and give credit if any are used.