There are five core courses: Scientific Computing I & II, Computer Organization and Programming for Scientific Computing, and Advanced Scientific Computing I & II. Numerical Analysis I & II (AMSC 666 & 667) may be taken in place of Scientific Computing I & II.

Scientific Computing I & Scientific Computing II (AMSC 660 & 661) will cover fundamental topics in computational methods for discrete systems, linear and nonlinear systems, optimization, ODEs, Fourier and wavelet transforms, and elliptic and time-dependent PDEs. (These courses replace MAPL 660 & 661 with the same name.)

Computer Organization and Programming for Scientific Computing (AMSC 662) will cover fundamental issues of computer hardware and software, parallel computing and data managment relevant for programming for scientific computing.

Advanced Scientific Computing I & Advanced Scientific Computing II (AMSC 663 & 664) applies the topics covered in AMSC 660 & 661 and 662 in the context of a year-long personal project to develop software designed to carry out a computational scientific task in a high performance computing environment. The project will provide each student with hands-on experience on all aspects of modern computing, including the formulation of the problem (with a faculty mentor), discretization and programming of the resulting system of equations, visualization of data, and oral and written presentation of the results.

The two sequences will be taught in parallel each year. AMSC 662 will be taught in the Fall. A student can take AMSC 662 either in the first semester (at the same time as AMSC 660 and the first Core Science course), or in the third semester (at the same time as AMSC 663).