This course introduces the fundamentals of high-performance and parallel computing. It is targeted to scientists, engineers, scholars, really everyone seeking to develop the software skills necessary for work in parallel software environments. These skills include big-data analysis, machine learning, parallel programming, and optimization. We will cover the basics of Linux environments and bash scripting all the way to high throughput computing and parallelizing code. After completing this course, you will be able to. *Describe the components of a high-performance distributed computing system *Describe the following types of parallel programming models and the situations in which they might be used *High-throughput computing *Shared memory parallelism *Distributed memory parallelism *Navigate a typical Linux-based HPC environment *Assess and analyze application scalability including weak and strong scaling *Quantify the processing, data, and cost requirements for a computational project or workflow This course can be taken for academic credit as part of CU Boulder's Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder's departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at colorado.edu/data-science.