Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 2.6 KB

README.md

File metadata and controls

57 lines (44 loc) · 2.6 KB

Julia course

This course is intended to be an introduction to the use of Julia programming language.

The course contains several examples, where the main objective is to show how writing programs in Julia can be much less tedious than programming at lower level. We begin by exploring the syntax for storing vectors and matrices, and for performing some basic linear algebra operations with them. The solution of linear systems and linear programs are at the center of the examples given thereafter.

We can remark that some of Julia functionalities discussed in this initial part of our course are very similar (they actually influenced Julia's syntax) to those provided by Matlab, Scilab, and other software tools. In some occasions, a syntax comparison with C programming language is given during the lectures. In C in fact, there are specific implementations for linear algebra, mainly the BLAS library, which provides some basic matrix operations, and LAPACK for more advanced operations, such as the solution to linear systems. The good news is that these implementations are integrated into Julia, which is therefore capable to exhibit performances in terms of computational time and quality of the solutions that are very close to those given by C implementations. We also remark that there exist other software tools for modeling in linear programming, such as the AMPL modeling language. One main advantage of Julia is the capability of integrating various functionalities in one unique language, which also supports other paradigms.

Table of contents

  1. Basics and linear algebra;
  2. Linear systems;
  3. Linear programs;
  4. Adaptive maps;
  5. Integer linear programs.

What more?

There are several more things that one can consider to say about Julia programming language:

  1. encapsulation and abstraction in Julia's style;
  2. memory management in Julia's style;
  3. operator and method overloading via multiple dispatch (Julia is not object-oriented!);
  4. compilation to llvm;
  5. compilation to assembly code.

These are some of the topics covered in the next lessons.

Links