*Result*: Teaching an introductory course on parallel and distributed computing: A case study using OpenMP and MPI APIs in Jordan.
*Further Information*
*High Performance Computing (HPC) education has become fundamental due to several factors. Parallel programming based on foundational knowledge has become a necessity to fully exploit modern HPC systems computational power. Moreover, providing students with parallel and distributed computing background has become critical for developing their academic and professional skills required by the industry. This paper presents our experiences of introducing an undergraduate HPC course with a focus on utilizing OpenMP and Message Passing Interface (MPI) APIs. The course syllabus emphasizes the theoretical concepts of parallel and distributed computing and architecture while giving practical tasks on writing parallel codes and performance improvement strategies. The paper analyzes the course structure as well as the learning outcomes observed throughout the course based on direct and indirect assessment strategies according to the American Board of Engineering and Technology. A specific programming project was designed to enhance students' understanding of the concepts of parallelism and performance depending on different Laplace Equation solution methods. The assessment of students' solutions indicate that students gain a strong foundation in essential parallel programming concepts, and build the basic skills required to handle more advanced parallelism challenges. Additionally, this paper highlights the main challenges encountered while conducting the course and offers suggestions for improvement. [ABSTRACT FROM AUTHOR]*