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