This article is published in the January 2024 issue.

Undergrad Uses Recursive Data Structures to Enhance Analysis of Parallel Programming


By Yasra Chandio (CRA-E Fellow, University of Massachusetts Amherst) and Alejandro Velasco Dimate (CRA-E Fellow, College of William & Mary)

Francis Rinaldi, B.S. in Computer Science, Illinois Institute of Technology (IIT)

This Q&A highlight features Francis Rinaldi, an Honorable Mention in the 2022 CRA Outstanding Undergraduate Researchers award program. Francis earned their bachelor’s and master’s degrees from the Illinois Institute of Technology (IIT), and they continued working on this research after graduation. 

What led you to computing research?

The initial appeal of computer science research was largely due to extrinsic factors. Serving as a research assistant offered financial support, enriched my knowledge, and significantly advanced my career. In Fall 2021, I enrolled in a graduate-level elective course titled “Topics in Programming Languages.” This course delved deep into programming language theory, an intriguing fusion of mathematics and formal logic to address computer science issues. Prof. Stefan Muller, who taught the course, was in search of research assistants. Grasping this opportunity, I joined his team, and soon, our combined efforts bore fruit. We developed a mechanism to integrate recursive data structures into representations of program execution order, which culminated in my submission to the CRA Outstanding Undergraduate Research competition.

Could you share some initial challenges you faced in research?

Even with my coursework with Prof. Muller, understanding the core tenets of my research topic proved challenging. As a newcomer to both research and the programming languages field, I felt overwhelmed. Understanding the foundational paper that underpinned my research took considerable time. Additionally, explaining my work to peers proved to be a significant challenge. Thankfully, Prof. Muller’s patience and guidance were instrumental during this phase.

Can you tell us about your project? 

Broadly, my research extended a project aimed at predicting the possible orders of code execution, particularly in programs that use parallelism, to improve the analysis of source code across different tasks. Example applications include program optimization and deadlock detection. While it is impossible to predict the exact order of code execution due to parallelism, the goal was to approximate this order and provide a representation of all the different ways a program could execute. One limitation of this prior project was its inability to use several conventional programming features, such as lists and trees. By integrating recursive data structures, we extended the project’s scope to include these features, which enhanced its usability. We demonstrated the soundness of the expanded project and developed a program that allows a notable subset of OCaml to utilize this research.  I presented our contribution at ICFP 2022. 

What challenges did you encounter in research? 

Research progress was often slower than anticipated. Much of my time went into ideation, which did not always directly contribute to immediate research outcomes. It takes a lot of work to correctly identify problems and their potential solutions before addressing them, and there were instances when prolonged efforts hit dead ends. On top of this, some of these problems and solutions completely invalidated previous work and further impeded the sense of achieving substantial progress.  I have accepted this as part of the research experience, validated by Prof. Muller’s assurance that such slow-paced progress is typical in research. Over time, I have come to realize that quality research demands patience.

How was your team and work environment structured?

My team included Prof. Muller, Prof. Arthur Azevedo de Amorim from the Rochester Institute of Technology, and June Wunder, a Ph.D. candidate at Boston University. I had two weekly meetings – one in-person meeting with Prof. Muller and a virtual meeting with the entire team. My research schedule was flexible, allowing me to work from various locations like parks, trains, and beaches. Fragmenting my work both in location and time proved to be beneficial. Home breaks often involved making tea, enjoying a hobby, or cleaning, which enhanced my focus and satisfaction with my research. This method generally ensures I approach research with a fresh mind, aiding in problem identification and avoiding pitfalls.

How has research changed your perspective in life?

My research in logic has deeply shaped my perspective on life. It highlights the stark differences between logical frameworks and the unpredictability of human experiences. Additionally, research teaches the art of questioning, a skill applicable to many facets of life.

What diverse experiences have molded your research journey?

I have been a dedicated musician, co-founding an alt-rock band named Back Alley Miracle while simultaneously delving into research. Balancing both was challenging at times but manageable. My music knowledge influenced a programming project where I created a language to verify music’s adherence to part-writing rules. Apart from music, my passion for games, especially video games, steered me towards computer science. I even minored in game design and developed a board game that won an award at my university.

 

Do you have any advice for budding student researchers?

Transitioning from structured classroom learning to hands-on research can be daunting. However, experienced colleagues often provide support during this adjustment. While reaching out to professors might seem intimidating, many are receptive to discussions and open to taking on new research assistants.