This talk will introduce the basic constructs and methods of parallel programming, high performance computing clusters, and their application to scientific computing. Message passing and threaded programming models will be discussed through a series of examples that develop parallel design concepts. Only knowledge of C++ programming is assumed.