Jennifer Rexford, chair of computer science and the Gordon Y.S. Wu Professor in Engineering, speaks about growth, research and innovative education in computer science.
This is the first in a monthly series of updates from chairs and center directors on news and innovations in their departments.
Q. What’s new in the culture of computer science, and what makes Princeton distinctive?
A. The computer science department has grown dramatically in response to unprecedented student interest and exciting opportunities for interdisciplinary data science research across campus. Our department has hired 18 new faculty in the past few years, building our strength in four main facets of data science: (i) machine learning methods, including theoretical machine learning, natural language processing and computer vision; (ii) using these methods to accelerate scientific discovery in areas such as genomics, neuroscience and cognitive science; (iii) information technology policy to shape the security, privacy, fairness and ethical implications of our data-driven world; and (iv) the underlying computer and networked systems that collect, store and analyze increasingly large and diverse data sets.
Princeton’s computer science department is distinctive in having strengths across all four of these areas, and, importantly, at the boundaries between them. Interdisciplinary research works unusually well at Princeton because of our small, intimate campus – truly an intellectual village – and our stellar sister departments all over campus.
In computer science, seven of our faculty have joint appointments with another part of the university — two in the Lewis-Sigler Institute for Integrative Genomics, one in the Princeton Neuroscience Institute, one in Psychology, two in the Woodrow Wilson School, and one in Mathematics. Plus, our faculty have strong connections with the Center for Statistics and Machine Learning, the Center for Information Technology Policy and the nearby Institute for Advanced Study. Working within and across departments, our faculty perform research and teaching at the highest level, making fundamental progress on many of the important challenges facing humanity.
Q. Is there a particular research area you would highlight – an example of collaboration between computer scientists and colleagues in other departments?
A. The research that accelerates discovery in science is a great example of Princeton’s contributions to data science. For example, computer science professor Kai Li has an exciting collaboration with the Princeton Neuroscience Institute and Intel Corporation to enable real-time analysis of human brains using functional magnetic resonance imaging (fMRI) data.
In this project, research experiments can, in real time, change the stimulus given to a human subject based on full-brain analysis. These advances enable interactive experiments that were just a pipe dream a few years ago. For example, an experiment could change the tasks given to human subjects based on the brain scans’ indications of how well they are concentrating on the task at hand. The techniques enable fundamental discoveries in neuroscience, as well as new ways to diagnose and treat medical conditions. A key innovation was to bring down the time required to analyze the fMRI images by five orders of magnitude (100,000-fold) through advances in computer algorithms (to reduce the amount of computation needed) and computer systems (to complete the computations more quickly on modern computing hardware).
This is just one of many examples of Princeton computer science faculty pushing the envelope on scientific discovery by combining a deep understanding of the underlying science with innovation in algorithms and computer systems. Better yet, this is only the beginning, with the opportunity to transform scholarship in a wide range of disciplines across campus.
Q. How has teaching changed for computer science? What opportunities does the department offer for computer scientists, scientists and engineers, and non-science majors?
A. The most obvious change is the sheer number of students taking computer science courses. COS 126, our interdisciplinary introduction to computer science, is taken by more than half of all undergraduate students on campus. Even our upper-level courses routinely have more than 100 students. Computer Science is the most popular major at Princeton, with more than 10 percent of undergraduates graduating with a computer science degree.
As our faculty has grown substantially in the past few years, we are creating new courses, particularly in data science, and offering existing courses more often to help meet student demand and decrease course size. Students of every stripe are fascinated by the power of computer science to affect so many areas of scholarship and so many professions. Yet, Princeton is rightfully known for the intimate educational experience it offers its students. So, increasingly, the department’s challenge is to offer boutique education at scale. We address this challenge in several ways:
To make education more interactive, large courses include many small sections for discussions and hands-on work, introductory courses experiment with video lectures that students can watch on their own time (freeing up classroom time for additional discussions), and independent work seminars allow juniors and seniors to choose from a wide range of timely topics.
To support incoming students with diverse backgrounds, our introductory course (COS 126) has precept sections for students with less prior programming experience. Plus, we run a Summer Programming Experiences program that enables undergraduates to stay on campus over the summer to pursue programming projects with faculty and graduate students. We also support dozens of undergraduate students in attending the Grace Hopper Celebration of Women in Computing each year. In addition, our department offers both a B.S.E. and B.A. degree in computer science, as well as an Applications of Computing Certificate, to reach students with a range of interests.
To increase opportunities for faculty to interact one-on-one with students, we create software that automates the more routine aspects of managing large courses. We have a dozen lecturers who help support large courses and create new educational software and programming assignments over the summer, and we hire more than 100 undergraduate students who assist their peers by staffing computer clusters on evenings and weekends and by helping with the grading of programming assignments and problem sets.
We have further growth and innovation coming, and we welcome students from all backgrounds to join us in harnessing computer science to learn, create and serve.