1. Introduction
  2. Introduction to UNIX
    1. Unix and Linux operating systems
    2. Kernel and system calls
    3. Bash (CHECK THIS VERSION and below)
    4. Bash (big bucket: to be split)
    5. Bash Multitasking
  3. Practical UNIX
    1. vi (basic)
    2. vi (advanced)
    3. compilers, gcc (examples)
  4. The C programming language: basics
    1. First example code: functions, if, for, printf
    2. Arrays
    3. Pointers
      1. Pointers, arrays and strings a bit more in depth
      2. Arrays and pointers
      3. Call by reference and by value
  5. The Fortran programming language: basics
    1. First example code: functions, if, for, printf
    2. Arrays
    3. Allocatable
  6. Exercises basics
    1. BASIC
    2. Arrays and pointers
  7. The C programming language: libraries, strucutres, I/O
    1. structs I lost track with this, check the example below (MS)
    2. structs, FILE and buffered I/O, an example
  8. The Fortran programming language: types, I/O
  9. Gaussian quadrature
    1. Exercise
  10. Anatomy of a CPU
    1. Short history of x86 CPUs
    2. x86 assembly language basics
  11. Debuggers and typical problems that require them
    1. gdb
  12. LU decomposition
    1. Example: back substitution
    2. Example: forward substitution
    3. Example: LU decomposition
    4. Extraction of spectral densities from lattice correlators
  13. LAPACK
  14. Performances in basic linear algebra
    1. effect of optimisation
  15. Fast Fourier Tansform (FFT)
  16. Message Passing Interface (MPI)
    1. Introduction to MPI
    2. MPI send and receive
    3. MPI: other functions
    4. MPI: Cartesian topology
    5. Introduction to OpenMP
    6. Performances in parallel computing
  17. CUDA
    1. Example
    2. Query device properties
    3. Performance analysis
  18. Best Programming Practices
  19. Round-off errors and Machine precision
  20. Git and version control system
    1. Basic commands
    2. Branching
    3. Remote and Collaboration