Numerical methods for Babies

In this course the programming language of choice is Julia. (As interactive as Python, but as fast as C.) No previous experience with Julia is assumed and we will pick up the syntaxes along the way. Of course, some familiarity with at least one programming language (Python, C, C++, Fortran, etc.) would be a big plus.

Topics

Introduction

Gentle introduction to Julia language

  • REPL, Pluto / Jupyter NoteBooks, and Scripts
  • program flow, style guide
  • basic data types, struct, etc.
  • mutables and immutables: arrays, tuples
  • iterators and generators
  • scope and typeof
  • type instability
  • tips on writing efficient code

Basic skills of applied computational physics

  • integration: Gaussian quadrature
  • differentiation: finite difference, complex-step, ect.
  • linear algebra
  • differential equations
  • minimization

Introduction to Monte Carlo Methods

Ising model

Simulating a Pure Gauge System

Basic Machine learning