Computational Science and Engineering
Computation is now a crucial tool for discovery in the sciences, engineering, and increasingly 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 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 open to currently enrolled Princeton University graduate students. 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 will appear on the student’s official transcript after all requirements for the certificate have been fulfilled, and a graduate degree has been awarded. Students who earn the certificate are also entitled to list the credential on their curriculum vitae.
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).
Students must take two core 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.
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.
List of Approved Courses
APC 524: Software Engineering for Scientific Computing
APC 523: Numerical Algorithms for Scientific Computing
Examples of suitable elective courses include but are not limited to:
AOS 575: Numerical Prediction of the Atmosphere and Ocean
AST 560: Computational Methods in Plasma Physics
CBE 508: Numerical Methods for Engineers
CBE 535: Computational Biology of Cell Signaling Networks
CBE 554/APC 544: Topics in Computational Nonlinear Dynamics
CEE 513: Introduction to Finite-Element Methods
CEE 525: Applied Numerical Methods
CEE 532: Advanced Finite-Element Methods
CEE 535/CBE 525: Statistical Mechanics II: Methods
COS 522/MAT 578: Computational Complexity
COS 551/MOL 551: Introduction to Genomics and Computational Molecular Biology
COS 557/MOL 557: Analysis and Visualization of Large-Scale Genomics Data Sets
ELE 585: Parallel Computation
GEO 422: Data, Models & Uncertainty in the Natural Sciences
GEO 441/APC 441: Computational Geophysics
MAE 557: Simulation and Modeling of Fluid Flows
MAT 586/APC 511/MOL 511/QCB 513: Computational Methods in Cryo-Electron Microscopy
MSE 504/CHM 560/PHY 512/CBE 520: Monte Carlo and Molecular Dynamics Simulation in Statistical Physics and Materials Science
MSE 512/CHM 511: Phase Transformation in Materials: Theory and Simulation
NEU 537/MOL 537/PSY 517: Computational Neuroscience and Computing Networks
ORF 522: Linear and Nonlinear Optimization
ORF 523: Convex and Conic Optimization
ORF 531/FIN 531: Computational Finance in C++
ORF 538: PDE Methods for Financial Mathematics
ORF 544: Stochastic Optimization
SOC 596: Computational Social Science
For additional information on acceptable elective courses, students should visit the PICSciE website.
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 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.
The ability to communicate research to a broad audience, as well as interaction 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.
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.
- Jeroen Tromp
- Annabella Selloni, Chemistry
- Jaswinder P. Singh, Computer Science
- William M. Tang, PPPL ITER and Tokamaks
- Jeroen Tromp, Geosciences
- Mohamed S. Abou Donia, Molecular Biology
- David I. August, Computer Science
- Ian C. Bourg, Civil and Environmental Eng
- Adam S. Burrows, Astrophysical Sciences
- Roberto Car, Chemistry
- Jonathan D. Cohen, Psychology
- Peter Constantin, Mathematics
- Pablo G. Debenedetti, Dean for Research, Office of
- Barbara E Engelhardt, Computer Science
- Stephan A. Fueglistaler, Geosciences
- Matthew W. Kunz, Astrophysical Sciences
- Kai Li, Computer Science
- Sharad Malik, Electrical Engineering
- Meredith A. Martin, English
- Luigi Martinelli, Mechanical & Aerospace Eng
- Michael E. Mueller, Mechanical & Aerospace Eng
- Eve C. Ostriker, Astrophysical Sciences
- Athanassios Z. Panagiotopoulos, Chemical and Biological Eng
- Jonathan W. Pillow, Psychology
- Frans Pretorius, Physics
- Peter J. Ramadge, Electrical Engineering
- Laure Resplandy, Geosciences
- Jennifer L. Rexford, Computer Science
- Clarence W. Rowley, Mechanical & Aerospace Eng
- Matthew J. Salganik, Sociology
- H. Sebastian Seung, Computer Science
- Anatoly Spitkovsky, Astrophysical Sciences
- Brandon M. Stewart, Sociology
- John D. Storey, Integrative Genomics
- Olga G. Troyanskaya, Computer Science
- Gabriel A. Vecchi, Geosciences
- David Wentzlaff, Electrical Engineering
- Claire E. White, Civil and Environmental Eng
- Bridgett M. vonHoldt, Ecology & Evolutionary Biology
Sits with Committee
- V. Balaji
- Choongseok Chang
- William Dorland
- G. J. Peter Elmer