Since 2013, students completing the graduate certificate program administered by the Princeton Institute for Computational Science and Engineering earned foundational skills in scientific computing. Starting in June, a notation on their transcripts will attest to their efforts.
In June 2021, Princeton's Graduate School conferred the first formally credentialed Graduate Certificates in Computational Science and Engineering (CSE). The new credential spotlights Princeton's leading role in helping computation take center stage across a widening variety of research disciplines.
"The formal credential is formal recognition of the great coursework and research that the graduate students are doing," said Michael Mueller, an associate professor of mechanical and aerospace engineering and the certificate program's director. "'Upgrading'" the CSE certificate to the formal transcripted credential was a no-brainer."
To complete the certificate, students must earn a B or higher in two core courses and one elective course, deliver a presentation at a spring colloquium, and write a dissertation with a significant computational component, as determined by their advisers.
One core course, "APC 524: Software Engineering for Scientific Computing," aims to foster habits for building clean, streamlined code. Among other skills, students learn versioning to manage changes, profiling to spot bottlenecks, and refactoring to improve efficiency.
The course emphasizes practices for making code shareable and easy for others to maintain. "I learned the importance of scheduling progress points within a software project," said Daniel Kozuch, a Ph.D. student in Chemical and Biological Engineering. "Modularizing the code so that many people can simultaneously work on it is an interesting and challenging problem in itself."
"That class definitely was a transformative moment for me," said Chris Tokita, who completed the program and will receive his doctorate in Ecology and Evolutionary Biology this month. "I thought I was a good coder, but I realized I was sort of an ad-hoc coder."
Tokita said this training helped him land a cybersecurity job."The kind of code I was doing before and the kind I was doing after were like night and day."
Another participant, Shuwen Yue, also noticed an improvement. "Learning about the best programming practices in the courses made a big difference in my workflow," said Yue, a chemical engineering Ph.D. student who developed machine-learning simulations of water at the atomic level.
The other core course, "APC 523: Numerical Algorithms for Scientific Computing," introduces students to various algorithms and performance analysis techniques, particularly for common numerical problems like differential equations, matrix equations, and optimization.
Steven Li said the course opened his eyes to the difference between a solution that works on a single PC and one that works on a supercomputer running dozens of nodes.
"I never cared too much about the efficiency of the algorithms I produced," said Li, a doctoral candidate in a joint-degree program in physics and mechanical and aerospace engineering. "There are just some problems that are fundamentally unscalable."
Christina Kreisch, an astrophysics Ph.D. candidate, agrees that the course trains participants in a unique way."I don't think people are quite aware of how high-performance computing is a completely different skill set."
Students in the program must also complete an elective course from a wide range of disciplines, including engineering, plasma physics, neuroscience, finance, politics, and many others.
"A common misconception about the certificate program is that it is open to graduate students only in the natural sciences and engineering," said Mueller. "Computation is an increasingly prevalent mode of inquiry across all disciplines, with increasing activity in computational social sciences and digital humanities."
Having social scientists collaborate with physicists on programming challenges allows participants from both fields to gain fresh perspectives on their work.
"I was really able to see how people from different fields can tackle problems," said Kreisch, who researches how cosmic voids, the largest known structures in the universe, can inform scientists' understanding of neutrinos, one of the smallest particles. "It helps you develop a nose for the challenges that come up in your own coding."
"We had to work as a team," said Tokita, whose work reveals how the social dynamics that promote division of labor among ants can drive political polarization among humans. "It forces you to learn to communicate outside your discipline."
Fostering cross-disciplinary communication, said Mueller, is one of the program's key strengths. "In many cases, rapid progress in one discipline can be made by adapting ideas and approaches from another discipline," he said.
Compiling the program
The CSE certificate program now culminates with a formal colloquium where participants present their research.
"I really appreciated having lots of people looking at my presentation, said Li, who presented his work on optical systems for balloon-borne telescopes. "They gave some really good feedback."
Participants say that they also benefited from seeing others' presentations. "It was interesting to see how people in somewhat different fields present their work," says Kozuch, whose research examines molecular simulations of antifreeze proteins that help some organisms survive cold temperatures. "I think I learned some interesting strategies on how to present technical information to those who are not in your specific field."
Ever since Alan Turing Ph.D. *38, Alonzo Church A.B.'24 Ph.D *27, and John von Neumann laid the foundations of the digital age, Princeton has stood at the forefront of computer science. Mueller hopes this program will advance their legacy by fueling Princeton's world-class research engine with the University's high-octane computing resources and skilled programmers.
"The colloquium and the certificate program more broadly will help to make the entire University community aware of the breadth of computational research being conducted and the impact of computation on many disciplines," said Mueller.
Sidebar: A new plasma display
Two students enrolled in Princeton's Graduate Certificate in Computational Science and Engineering program have helped advance scientists' knowledge of the least-understood of the four fundamental states of matter: plasma.
In the course "APC 523: Numerical Algorithms for Scientific Computing," Ian Ochs and Elijah Kolmes, graduate students in the Program in Plasma Physics, collaborated on a computational project to develop a code called MITNS (Multi-Ion Transport Numerical Solver), which models the behavior of magnetized plasma.
Working with their adviser, Astrophysical Sciences professor Nathaniel Fisch, the two students published a paper describing the MITNS code in Computer Physics Communications in January of this year.
"This computational tool proved to be enormously useful, not only in advancing their own thesis research, but the research of others as well," said Fisch.
Fisch, the director of Princeton's Plasma Physics Program, said that the MITNS code enabled scientists in his lab to describe a number of "curious and new effects" in plasmas. Ochs and Kolmes also used the code to validate a heat pump effect, which resulted in a paper published last year in the journal Physical Review E last year.
Both students say that scientific computing is essential to their research.
"It is an important tool in bridging the gap between pen-and-paper theory and laboratory experiments," said Ochs, who developed a library that can be used to simulate particle trajectories in confined plasmas. "Understanding how to produce, use, and evaluate the limitations of scientific codes is thus an important skill for a modern physicist to possess."
"Most plasma physicists use computational tools in one way or another," said Kolmes, who developed a fork of the MITNS code to better understand a neutral-gas phenomenon called the piezothermal effect. "It has been very helpful to get some more formal training in software development as well as numerical methods."
Fisch admires the rigor that the certificate program instills in its participants. "What I appreciated about the graduate certificate program was that it inspired students working with me to think systematically in approaching scientific computation," he said.