Julia is a high-level programming language like Python with a focus on numerical and scientific computation. It is just-in-time (JIT) compiled and consequently extremely fast. In this module, we will explore basics of programming with Julia. Of course the skills are easily transferrable to many other programming languages.
Julia already comes equipped with several modules useful for scientific programming in its standard library. There are many more open-source libraries addressing a variety of problems.
Standard Library Modules
- LinearAlgebra for matrix decompositions. This library interfaces into highly efficient LAPACK and BLAS libraries.
- Test for unit testing.
- Logging
- TOML for parsing TOML formatted input files.
Other packages of importance for the course
Beyond this course
- DifferentialEquations.jl for built-in solutions to differential equations using advanced algorithms.
- DFTK.jl for plane-wave DFT calculations.
- Molly.jl for molecular dynamics simulations.
- Lux.jl, Flux.jl, or KNet.jl for neural networks.
Extra Resources
We will cover the basics in class lectures and through assignments and homeworks. However, programming is a skill that requires time and practice to master. Full programming courses can themselves be a semester or a year long affair especially when dealing with data structures and algorithms. Because we do not have this luxury, consider reading up using several resources and tutorials online or watching youtube videos. Julia has an official youtube channel, where people post teaching material. In addition the online Julia manual is extremely thorough and detailed. Below are some extra resources that might help you get started.