Home - PerimeterInstitute/Julia-Course-Fall-2015 GitHub Wiki

Welcome to the Julia-Course-Fall-2015 wiki!

Julia logo

This course will give a basic introduction to the computer language Julia and related software packages for scientific computing.

When and Where:

The course will be recorded for PIRSA.

Background and Requirements:

  • Some experience in programming, e.g. in Python or C++
  • Laptop (or partner with a laptop) for some in-class exercises

Installing Julia and/or accessing Julia on our servers will be described in the first lecture, essentially following the instructions here. We will be using Julia 0.4.

Format, Homework, Projects

The course will consist of two halves. In the first few weeks, I will describe various aspects of Julia via lectures. In the second half, you will use Julia in projects that should be related to your research, and we will discuss topics as they arise. It is okay to drop out of the course if your interests change. It is not okay to just "sit in" without participating.

Given the nature of the course, homework "assignments" will be informal. I expect participants to give presentations on certain topics according to their interests, substituting for some of the lectures. Contact me if you want to take this course for official university credit.

Homework:

See here for the homework assignments.

Markus' solutions to the first three.

Past Lectures:

  • 2015-10-08: Introduction to Julia (some slides)
  • 2015-10-15: Julia's type system (parameterized types, dispatch); connection to C++ (Julia notebook)
  • 2015-10-22: Linear Algebra (Andreas Noack's notebook)
  • 2015-10-29: Software Engineering (modules, packages, Github, Travis, Coveralls) (8)
  • 2015-11-12: Performance: type stability, profiling, disassembling (1/2)
  • Concurrent and Distributed Programming (all)
  • Solving a PDE in Julia (1/2)

No lecture November 26

  • Consider attending PI Day instead.

Next Lecture (December 3, TIME ROOM):

  • Solving a PDE in Julia (1/2) [continued]
  • Handling graphs

Possible Future Lectures:

  • Macros, generated functions; connection to Lisp (3)
  • Graphics, Plotting (3/4)
  • Persistence, HDF5, JLD (2)
  • Interfacing with Python, C, Fortran (all)
  • Introduce various external Julia packages
  • Watch various JuliaCon movies