This document provides an introduction and agenda for a course on parallelism and code optimization in C/C++ and Fortran for large data analysis using MPI. The course covers topics like processor architectures, vectorization, OpenMP programming, and data exchange rules and principles. Parallel programming approaches covered include shared memory, distributed memory, and hybrid memory models. Shared memory is the most common parallelization approach, where multiple processors can access and exchange data through a common memory. Distributed memory uses message passing between processors with separate memory. The course aims to help with the growing use of HPC, big data, and deep learning by exploring how to leverage HPC technologies to improve bottlenecks in big data processing and deep learning middleware.