Computational Science and Engineering

Academic Year 2023 – 2024

Overview

Computation is now a crucial tool for discovery in the sciences, engineering, and increasingly so in the humanities. Scientific computation is also a diverse field. It requires a working knowledge of numerical analysis (to develop new and more accurate algorithms), best practices/learn/cse-graduate-certificate/colloquium in software engineering (to implement and maintain ever-growing scientific software systems), computer science (to exploit emerging trends in hardware and programming practices), and domain-specific expertise.

The graduate certificate in computational science and engineering is only open to Princeton University graduate students who are currently enrolled. It is designed to recognize the achievements of students who have undertaken comprehensive training in these topics, both through formal course work and through research in their subject area.

The certificate program was originally proposed and designed to be part of the Program in Integrative Information, Computer and Application Sciences (PICASso) by Professor J.P. Singh, with the resources required to administer the program now provided by the Princeton Institute for Computational Science and Engineering (PICSciE).

In February 2021, the graduate certificate has been approved by the Graduate School as a formal credential and will appear in the students' records starting with degrees being conferred in June 2021. 

With the certificate now officially credentialed, the only significant change to the existing certificate program requirements will be a more formal colloquium each spring at which the program participants will present their research. Each certificate student will be required to present one 20-minute presentation during their program, ostensibly during their final non-DCE year. 

 

Program Offerings

Program Offering: Certificate

Program description

To earn the certificate, students must complete four requirements: (1) take for credit and earn a grade of B or better in two core courses; (2) take for credit and earn a grade of B or better in one approved elective course, usually specific to the student’s research area; (3) give a research seminar as part of a colloquium with other program participants at the conclusion of the program; and (4) write a dissertation with a significant computational component, as judged by the dissertation advisor who must write a short letter to certify this requirement. See the FAQ page for additional information.

Important: Only one credentialed certificate is allowed per graduate student.

Courses

Students must take two courses. This requirement is designed to ensure that all students who earn the certificate have a solid foundation in the basic principles of scientific computing including numerical analysis, software engineering, and computer science. A grade of B or better is required in both core courses. 
 
APC 524: Software Engineering for Scientific Computing (Fall). The course covers the tools and techniques that are crucial for effective use of computation in any discipline. Topics include programming in compiled and scripting languages, software management tools and software design, debugging and testing, profiling and optimization, and parallel programming for both shared and distributed memory systems. 
 
APC 523: Numerical Algorithms for Scientific Computing (Spring). The course covers a broad introduction to numerical algorithms used in scientific computing beginning with a review of the basic principles of numerical analysis including sources of error, stability, and convergence. The theory and implementation of technical for linear and nonlinear systems of equations and ordinary and partial differential equations are covered in detail. Issues related to the implementation of efficient algorithms on modern high-performance computing systems are discussed. 


Elective Course

Students are also required to take one elective course. This requirement is designed to give students expert training in their respective subject areas. Elective courses can be selected from any graduate-level course on campus as long as the course contains a significant computational component. Each elective course must be approved by the Director, through information submitted in the certificate program enrollment application, and the elective course will generally be offered by the student’s home department. Courses dealing exclusively with statistics and/or machine learning cannot be used to satisfy the elective course requirement. A grade of B or better is required in the elective course. 

Examples of suitable elective courses include but are not limited to: 

This is not an exhaustive list.

Post-Generals requirements

The ability to communicate research to a broad audience, as well as interact with researchers across disciplines on shared tools and challenges, is an important skill for all students to develop. To encourage the development of these skills, students are required to give a research seminar on their dissertation research before graduation, typically in the last year once significant results can be reported. This research seminar occurs as part of a colloquium with other program participants and is organized by PICSciE. The colloquium will occur once per year, typically toward the end of the spring semester. The frequency of the colloquium may be increased to once per semester if needed in a given year if the number of students intending to graduate is large. Students are required to coordinate with the Program Administrator to ensure participation before graduation, and, to help facilitate planning, students are asked to communicate to the Program Administrator any changes to the timeline for completion of degree requirements after submission of the initial online application. Each research seminar is approximately 20 minutes in length with additional time for questions from the audience; the research seminar must be accessible to the broader University community with an interest in computational science and engineering.

The University community is invited to participate as audience members in the colloquium. Students enrolled in the program are highly encouraged but not explicitly required to attend the annual (or biannual) colloquium in years when not participating as a presenter.

Dissertation and FPO

The final requirement for the certificate is that the student’s dissertation research must include a significant computational component. Since the role of computation differs across disciplines, the program will rely on the judgment of experts in the specific discipline to certify whether the “significant computational component” requirement has been satisfied.

Therefore, the student’s dissertation advisor is asked to write a short letter outlining the role of computation in the dissertation and to certify that the dissertation research has included a “significant computational component” as judged relative to the discipline. In cases where the student’s dissertation advisor does not feel that they can certify the computational component of the dissertation, the advisor can request that a member of the PICSciE Executive Committee or Associated Faculty review the dissertation and submit a letter certifying the computational component of the dissertation. In all cases, the Director will review the certification letter and confirm that this requirement has been met. 

Seminar

The ability to communicate research to a broad audience, as well as interact with researchers across disciplines on shared tools and challenges, is an important skill for all students to develop. To encourage the development of these skills, students are required to give a research seminar on their dissertation research before graduation, typically in the last year once significant results can be reported. This research seminar occurs as part of a colloquium with other program participants and is organized by PICSciE.

The colloquium will occur once per year, typically toward the end of the spring semester. The frequency of the colloquium may be increased to once per semester if needed in a given year if the number of students intending to graduate is large. Students are required to coordinate with the Program Administrator to ensure participation before graduation, and, to help facilitate planning, students are asked to communicate to the Program Administrator any changes to the timeline for completion of degree requirements after submission of the initial online application. Each research seminar is approximately 20 minutes in length with additional time for questions from the audience; the research seminar must be accessible to the broader University community with an interest in computational science and engineering. 

The University community is invited to participate as audience members in the colloquium. Students enrolled in the program are highly encouraged but not explicitly required to attend the annual (or biannual) colloquium in years when not participating as a presenter. 

See the Colloquium page for more information. 

Additional requirements

Note on Overlapping Course Requirements in Home Department

If the student’s home department has a required set of core courses (either specific courses or courses distributed across specifically designated areas), none of these courses may be used to fulfill the certificate elective course requirement. If the student’s home department requires a certain number of courses (either in total or in addition to core course requirements), then no more than two courses used to fulfill the requirements in the home department may be used to fulfill the course requirements of the certificate. In other words, in all cases, students must take at least one additional course beyond the student’s home department requirements. 

Faculty

  • Director

    • Jeroen Tromp
  • Executive Committee

    • Annabella Selloni, Chemistry
    • Jaswinder P. Singh, Computer Science
    • Jeroen Tromp, Geosciences
    • Christopher G. Tully, Physics
  • Associated Faculty

    • Mohamed S. Abou Donia, Molecular Biology
    • Ryan P. Adams, Computer Science
    • David I. August, Computer Science
    • Ian C. Bourg, Civil and Environmental Eng
    • Adam S. Burrows, Astrophysical Sciences
    • Roberto Car, Chemistry
    • René A. Carmona, Oper Res and Financial Eng
    • Danqi Chen, Computer Science
    • Jonathan D. Cohen, Psychology
    • Peter Constantin, Mathematics
    • Pablo G. Debenedetti, Dean for Research, Office of
    • Jo Dunkley, Physics
    • Stephan A. Fueglistaler, Geosciences
    • Egemen Kolemen, Mechanical & Aerospace Eng
    • Emmanuel H. Kreike, History
    • Matthew W. Kunz, Astrophysical Sciences
    • Sarah-Jane Leslie, Philosophy
    • Kai Li, Computer Science
    • John B. Londregan, Schl of Public & Int'l Affairs
    • Meredith A. Martin, English
    • Luigi Martinelli, Mechanical & Aerospace Eng
    • Reed M. Maxwell, Civil and Environmental Eng
    • Nolan McCarty, Schl of Public & Int'l Affairs
    • Michael E. Mueller, Mechanical & Aerospace Eng
    • Isobel R. Ojalvo, Physics
    • Eve C. Ostriker, Astrophysical Sciences
    • Athanassios Z. Panagiotopoulos, Chemical and Biological Eng
    • Felix I. Parra Diaz, Astrophysical Sciences
    • Jonathan W. Pillow, Psychology
    • Frans Pretorius, Physics
    • Peter J. Ramadge, Electrical & Comp Engineering
    • Laure Resplandy, Geosciences
    • Jennifer Rexford, Computer Science
    • Clarence W. Rowley, Mechanical & Aerospace Eng
    • Olga Russakovsky, Computer Science
    • Marina Rustow, Near Eastern Studies
    • Matthew J. Salganik, Sociology
    • H. Sebastian Seung, Computer Science
    • Amit Singer, Mathematics
    • Ronnie Sircar, Oper Res and Financial Eng
    • Anatoly Spitkovsky, Astrophysical Sciences
    • Brandon M. Stewart, Sociology
    • John D. Storey, Integrative Genomics
    • William M. Tang, PPPL Tokamak Expermntl Science
    • Olga G. Troyanskaya, Computer Science
    • Gabriel A. Vecchi, Geosciences
    • Naveen Verma, Electrical & Comp Engineering
    • Michael A. Webb, Chemical and Biological Eng
    • David Wentzlaff, Electrical & Comp Engineering
    • Claire E. White, Civil and Environmental Eng
    • Ned S. Wingreen, Molecular Biology
    • Bridgett M. vonHoldt, Ecology & Evolutionary Biology
  • Sits with Committee

    • Choongseok Chang
    • Jay Dominick
    • William Dorland
    • G. J. Peter Elmer
    • Curtis W. Hillegas

For a full list of faculty members and fellows please visit the department or program website.

Permanent Courses

Courses listed below are graduate-level courses that have been approved by the program’s faculty as well as the Curriculum Subcommittee of the Faculty Committee on the Graduate School as permanent course offerings. Permanent courses may be offered by the department or program on an ongoing basis, depending on curricular needs, scheduling requirements, and student interest. Not listed below are undergraduate courses and one-time-only graduate courses, which may be found for a specific term through the Registrar’s website. Also not listed are graduate-level independent reading and research courses, which may be approved by the Graduate School for individual students.

APC 523 - Numerical Algorithms for Scientific Computing (also AST 523/CSE 523/MAE 507)

A broad introduction to scientific computation using examples drawn from astrophysics. From computer science, practical topics including processor architecture, parallel systems, structured programming, and scientific visualization will be presented in tutorial style. 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, ordinary and partial differential equations will be demonstrated with problems in stellar structure and evolution, stellar and galactic dynamics, and cosmology.

APC 524 - Software Engineering for Scientific Computing (also AST 506/CSE 524/MAE 506)

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.

MAE 557 - Simulation and Modeling of Fluid Flows (also CSE 557)

Numerical methods are applied to solve the equations that govern fluid motion. Fluid flow problems involve convection, diffusion, and source terms. The governing equations are non-linear and coupled. Finite-difference and finite volume methods are considered, together with concepts of accuracy, consistency, stability, convergence, conservation, and shock capturing. A range of current methods is reviewed with emphasis on multidimensional steady and unsteady compressible flows. Homework topics include writing codes to solve the conservation equation for a scalar, boundary layer flow, shock tube flow, application to curvilinear coordinates.