Exploring the Academic Research Process

Northwestern Computer Science Research Track program students presented their projects in early April

Eager to pursue a doctorate after she graduates from Northwestern next year with a double major in computer science and mathematics, Penelope Orwant wanted to gain research experience.

So, Orwant joined the fall 2025/winter 2026 cohort of Northwestern Computer Science’s Research Track program to learn the fundamentals of academic research through structured, mentored, and collaborative projects.

“And I immediately felt like, yes, this is definitely for me,” Orwant said. “I had a fantastic experience.”

A deep dive into research

In the COMP_SCI 298: Introduction to Research Track course, program leader and CS 298 instructor Sruti Bhagavatula assigns students either to teams or to work independently on projects based on their research interests and experience from prior coursework. Students start by conducting literature reviews, gathering data or resources, and gaining project-specific skills. Bhagavatula, CS faculty members, and graduate students provide guidance and project mentorship throughout the process. Students continue progress in the winter COMP_SCI 398: Research Track Practicum.

Rebecca LiuStudents Rebecca Liu (CS) and Maggie Harrison (CS and English literature) appreciated the opportunity to explore the research process through a self-driven, yet supportive, scaffolded approach.

“It was definitely a very unique learning experience, and I liked doing my own experiments and being very independent,” Liu said. “The first quarter prepares you entirely for leading your own research, helping you plan every step for the next quarter. I defined exactly what I wanted to do and then fulfilled my own goals.”

Research showcase unveils student achievement

During an April 2 showcase event, Research Track students presented the work they developed over the two quarters. The 12 teams investigated topics including attention mechanisms, blame-shifting, electro-mechanical systems, microclimate sensors, and scheduling algorithms.

Sruti Bhagavatula“Through the research track, our goal is to expose students to the various stages of the research process, not just by showing them, but by making them an active participant in this process,” said Bhagavatula, assistant professor of instruction at Northwestern Engineering. “The students in this year's cohort showed great dedication and progress, as evident in the impressive work displayed during the showcase. Several students are continuing on their research after the program and I'm excited to see what they do next."

Blame-shifting in gradually typed programming languages

For her project, Orwant investigated mathematical proofs for blame-shifting in gradually typed programming languages such as TypeScript, a debugging strategy that progressively narrows down a coding mistake through type annotations. And, while an empirical study demonstrated the utility of blame shifting, Orwant explained, the strategy lacks a formal model.

“I'm very interested in seeing what we can prove,” she said. “In programming languages theory, there is some truth and many different ways you can get there to find it. I like the idea of being able to have guarantees about things.”

Orwant enjoyed the back-and-forth process of idea sharing with her mentor Christos Dimoulas, associate professor of computer science at the McCormick School of Engineering. Dimoulas described the Research Track as a glimpse into PhD life: mining the literature, framing a research question and breaking it into iterative goals, and presenting outcomes at varying levels of technical depth.

Christos Dimoulas“Helping our students cultivate their research interests and take their first steps towards becoming independent researchers is at the center of what it means to be a faculty at a research university like Northwestern,” Dimoulas said.

At the showcase event, Orwant described the project as “successful progress.”

“I've started looking into the proof technique, and I would say it definitely looks promising.
But also, if the proof doesn't work, it's almost even more interesting, because this is what I think that blame is, but maybe it's something else,” Orwant said.

Penelope Orwant investigated mathematical proofs for blame-shifting in gradually typed programming languages such as TypeScript.

AI-powered intelligent tutoring systems

What started as a Research Track collaboration between Paula Eyituoyo Fregene and her adviser, assistant professor of instruction Yiji Zhang, has now spun into an expanded independent study project.

Fregene, a third-year student in computer science pursuing a minor in machine learning and data science, posed the question: how can large language models be effectively integrated into intelligent tutoring systems (ITS) to enhance student learning outcomes in foundational programming courses? Her solution: “My Tutor Bot,” a trustworthy, instructor-controlled ITS model for COMP_SCI 211: Fundamentals of Computer Programming II trained exclusively on curated course content and restricted from accessing external information on the web. It was deployed in week eight of CS211 this winter. Through the analytics of anonymous student interactions, one-on-one interviews, and user experience surveys, Fregene plans to refine My Tutor Bot ahead of a full launch and use in additional classes in the future.

Yiji Zhang“The Research Track program is so unique and valuable in providing students a low-risk environment to experience what research is like,” Zhang said. “There is no pressure to publish, no worry about funding. The sky’s the limit.”

Fregene explained that she drew heavily on prior coursework to build My Tutor Bot, using skills she gained in COMP_SCI 208: Data Structures and Algorithms, CS 211, COMP_SCI 310: Scalable Software Architectures, CS 380, and COMP_SCI 387: Responsible Software Engineering.

“As I was learning from current CS classes, I was changing and optimizing my implementation,” Fregene said. “I started to see how all of these CS classes are actually used in the real world.”

Paula Eyituoyo Fregene developed “My Tutor Bot,” a trustworthy, instructor-controlled ITS model for CS 211 trained exclusively on curated course content.

Replicating emotion in text-to-speech models

Before joining the Research Track program, third-year computer science student Jay Yegon had little experience reading research papers. An aspiring AI/machine learning engineer, Yegon was excited for a deep dive.

Guided by assistant professor of instruction Zach Wood-Doughty, Yegon and team members Grace He (CS and economics), Ishan Mukherjee (CS), and Joshua Lee (CS and mathematics) aimed to find more efficient and less resource-intensive ways to replicate expressive human emotion in text-to-speech models used for applications including gaming, audiobooks, and virtual assistants. They experimented with two methods: linear probing using a speech synthesis transformer and sparse autoencoders, a neural network which translates a model’s internal representations into interpretable features.

“I had taken machine learning classes before, but we studied more of a surface level of concepts,” Yegon said. “This project really helped me lock in.”

By training a simple classifier, the team produced steering vectors on neutral audio that matched or exceeded CosyVoice2's ability to reproduce emotion through prompts. The team’s approach also demonstrated tangible audio differences correlated with energy and pitch. The results surprised Lee, who had initially assumed that meaningful machine learning research would require thousands of dollars of hardware upfront.

“We were able to beat a benchmark that we set,” Lee said. “We thought the hard part would be training the models and learning about the architecture. That was actually relatively smooth compared to dealing with messy data.”

(From left): Jay Yegon, Grace He, Joshua Lee, and Ishan Mukherjee (not pictured) aimed to find more efficient and less resource-intensive ways to replicate expressive human emotion in text-to-speech models.

Applying database optimization to probabilistic programming languages

Computer science students Bhuvan Madala and Kevin Yang researched probabilistic programming languages, which enable predictive modeling by extending standard programming languages with tools for representing uncertainty—such as random variables and probability distributions. In collaboration with assistant professor of computer science Andrew Crotty, the team applied generative database optimization analogs to improve the processing speed and efficiency of probabilistic programming.

Given the complexity of their research problem, Madala and Yang emphasized the importance of scoping the project with specific goals while keeping an open mind and discarding ideas that don’t work.

“I'd never dealt with an original research problem that was this complicated, and dealing with this type of complexity and uncertainty is a skill that I hadn't really built through structured coursework,” Madala said. “We’ve been willing to go back to the drawing board and explore when things haven't worked out, which has been super valuable.”

Currently in the implementation stage, Madala and Yang plan to continue working on the project following the Research Track sequence. Both students are strongly considering research roles in industry.

Bhuvan Madala (left) and Kevin Yang researched probabilistic programming languages, which enable predictive modeling by extending standard programming languages with tools for representing uncertainty.

McCormick News Article