Core Courses

Departments across campus teach a very wide variety of courses in computational science and engineering. In addition, PICSciE supports courses in core topics with PACM, such as software engineering and numerical analysis which are required to complete the requirements for the graduate certificate program in computational science and engineering.

APC 524 / MAE 506 / AST 506: Software Engineering for Scientific Computing 

Instructors: Henry Schreiner and Romain Teyssier

The goal of this course is to teach basic tools and principles of writing good code, in the context of scientific computing. Specific topics include an overview of relevant compiled and interpreted languages, build tools and source managers, design patterns, design of interfaces, debugging and testing, profiling and improving performance, portability, and an introduction to parallel computing in both shared memory and distributed memory environments. The focus is on writing code that is easy to maintain and share with others. Students will develop these skills through a series of programming assignments and a group project.

APC 523 / AST 523: Numerical Algorithms for Scientific Computing

Instructor: Romain Teyssier

A broad introduction to numerical algorithms used in scientific computing. The course will begin with a review of the basic principles of numerical analysis, including sources of error, stability and convergence of algorithms. The theory and implementation of techniques for linear and nonlinear systems of equations, and ordinary and partial differential equations will be covered in detail. Examples of the application of these methods to problems in physics, astrophysics and other disciplines will be given. Issues related to the implementation of efficient algorithms on modern high-performance computing systems will be discussed.