Ravi Chugh Promoted to Associate Professor at UChicago Computer Science

January 06, 2021

Ravi Chugh, who studies, teaches, and builds new programming languages and systems that draw upon software engineering and human-computer interaction, has been promoted to associate professor at UChicago CS.

Since joining the University of Chicago in 2014, Chugh has explored direct manipulation programming systems — software that uses graphics-based approaches to take programming out of command line and text editor, making it more accessible for beginners and broadly applicable to other fields.

“My group has been built around a unified idea of what we think the future of programming environments might look like,” Chugh said. “We’re tightly aligned around a single goal of building more interactive programming systems that bridge the expressive power of programming with the kind of direct manipulation and graphical user interfaces that people know and love from basically every domain of computer use except programming.”

Chugh arrived at the University of Chicago in 2014 after completing his PhD at University of California, San Diego. Joining Professor John Reppy in the Programming Languages group, Chugh saw the growing department as an opportunity to expand his research into new areas beyond the traditional programming languages subfield. An early sign that he was entering uncharted territory was when he submitted a proposal for human subjects research to the institutional review board — not a typical procedure for a programming languages researcher.

“It was clear that the department was growing in a number of directions, and I thought it would be an exciting place to start my career and that there would be an opportunity to help shape that growth,” Chugh said.

A CAREER grant in 2017 added momentum to his early research in this space, and Chugh discovered an eager pool of undergraduate, graduate, and postdoctoral students to join his projects. Together, the group built Sketch-n-Sketch, a direct manipulation, mouse-based interface for designing HTML and SVG documents, and Hazel, a programming environment that helps users edit and run incomplete programs with “holes.” 

Chugh has also brought his vision for the future of programming to multiple UChicago courses, joining Professor Stuart Kurtz’s Honors Intro to Computer Science course to teach the language Haskell and designing his own Functional Programming course around the Elm language used for web applications. This spring, he’s launching a new course: Creative Coding, which will use the p5 Javascript library — and, in the future, incorporate some of the interactive programming tools and techniques developed in his research —  to open up the power of programming to students from a variety of backgrounds and interests. He will also teach a version of Creative Coding in this summer’s Pre-College program for high school students, as well as in the Collegiate Scholars Program in the future.

“I'm hoping that students from humanities and arts and history — any department at the university that is not necessarily quantitatively-focused — might find an excuse and a reason to get excited about how programming can help them in their day-to-day work and their lives,” Chugh said. “I'm really looking forward to this class, because I've long thought that the kind of research that we're pursuing to make programming more interactive could hopefully be a useful tool in which to teach programming, not just to folks that might be aiming for software engineering careers, but anything that they're interested in pursuing.”

As Chugh has realized his personal career vision through research, teaching, and mentorship, he’s been excited to watch UChicago CS grow around him (“I’m easily in the older half of the faculty, and I feel like it.”), bringing in new colleagues and collaborators in the programming languages and HCI domains his work straddles. 

“I'm hoping to take a bunch of these techniques that we have been working on and try to scale them up and build more practical, usable systems for the ultimate goal of making programming more accessible and more interactive,” Chugh said. “So I’m really excited about all the work our department is doing in human computer interaction, computer science education, and accessible computing, because our broader goal is to contribute to the role of computation in society and in the world.”