We will start with the basics of distributed memory parallel computing using MPI, covering topics including environment management, point-to-point communication, and collective communication routines. Then we will cover shared memory parallel computing using OpenMP, introducing basic constructs for specifying parallel regions, work sharing, synchronization, and environment management. Hands on programming exercises will allow participants to practice writing and running simple MPI and OpenMP programs.