Computer science student Darya Verzhbinsky and her research partner Daniel Wang were awarded first place at the Symposium on Principles of Programming Languages' Student Research Competition. Verzhbinsky shares a bit about this research, how she got interested in computer science, and advice for students, in this Q&A.
Could you summarize the high level takeaways from your paper?
PETSY is a program synthesis tool that lets users synthesize a Haskell code snippet from a given type. This is a really heavy search problem that searches through quite a large program space, so our biggest contribution is making our algorithm scale with a way to cache queries even if they have complex types.
Why did you decide to study computer science, and how did you wind up working with Prof. Polikarpova?
I first got into computer science in middle school, where I took a class that taught us the basics of robotics. I thought it was really interesting, but because I was in an after school chorus that was very time consuming, I decided against pursuing it more. I left the chorus after my sophomore year of high school and was looking for something else to do, and discovered the Girls Who Code club at my school and thought I'd give it a try since I had liked robotics so much in middle school. GWC is a non-profit that provides support for clubs during the year and runs a summer program as well. Their goal is to inspire as many girls as possible to start coding. I heard about their Summer Immersion Program through my high school's club and spent 7 weeks between my junior and senior year learning how to program. This led me to take AP Computer Science my senior year, which gave me the confidence to apply to university as a computer science major.
I didn't know I wanted to do research when I first joined college. I did an industry internship the summer before my junior year of college and didn't enjoy it as much as I'd thought. In my sophomore year, I had participated in the Early Research Scholars Program at UC San Diego, run by Prof. Alvarado, and was reminded how cool research could be. I decided I wanted to give research another shot, but didn't know what area to research in. That fall, I took CSE 130 Programming Languages with Prof. Polikarpova. Even after the first week I knew this was an area I wanted to work in. I went to her office hours and asked how to participate in research, and we decided that I should reach out to her again when I finish the class and go from there. When I finished the class, she told me about her CSE 291 Program Synthesis graduate course, which I took the following quarter. The class was very project heavy, so I started working on a project that quarter that eventually became PETSY. I worked on it with another undergraduate, Daniel Wang. We continued the work into the summer of 2020 and have been doing it since.
What do you enjoy about computer science and CS research?
I love computer science because it's really fun and makes me think about things that are interesting and tough to work through. It also is the future, as everything around us nowadays is in some way related to CS, and I wanted to be part of that future. I really like research because it lets me work on something that I want to work on, instead of being restricted by what a company finds valuable. I have much more say in where my research goes, and I like having the control to take it where I want. I also did research over the summer when the COVID-19 pandemic was raging throughout the country, and research gave me purpose and structure to get through one of the toughest years of my life.
Are you involved in any groups/clubs/other activities on campus?
I am part of the Women in Computing club at UCSD. This is the first club I joined as a freshman, and I wouldn't be where I am today without it. I met some of my closest friends through the club, and it gave me the community of women CS majors that I was craving. As women, we still represent a small percentage of CS graduates, and WIC aims to build a community around these women to inspire us to stay in the major and give support. We also reach out to local high schools for outreach and try to get younger generations involved as well. I would recommend that any computer science or related majors join WIC as soon as they can. It is the best decision I made since coming to UCSD.
I also have been tutoring through the CSE department since my fall quarter sophomore year. I love tutoring, as it challenges me to think about the material in a different way, gives me the skills to talk about technical material in a simple way, and most importantly allows me to help the next generation of programmers at UCSD. In particular, I have tutored CSE 8A, which is our introductory programming course, a total of 3 times and am tutoring it this quarter for my 4th. I love teaching new CS majors how to code and aim to make them less scared of the field.
Any advice for future CS students?
In terms of finding a community, which I think is one of the most important things you can do, I highly highly recommend joining one of the engineering diversity orgs. As mentioned in my previous question, I am part of Women in Computing. There is also the National Society for Black Engineers, Out in Stem, Society of Women Engineers, Society of Hispanic Professional Engineers, and Society of Asian Scientists and Engineers. These groups are made to provide different underrepresented groups in engineering with resources and communities to succeed in engineering majors.
In terms of finding a research topic, I recommend taking your upper-division classes as soon as you can and in as many different areas as possible. For instance, take something from CSE 120 series, CSE 130 series, CSE 140 series, and CSE 150 series first before specializing in a track if you don't know what area you like. This way, you can early on find out which series most excites you so you can take more classes in that series. After finding a subject that you're interested in, the best way to enter research is to talk to the professor who teaches the class you liked. While they might not have the capacity to mentor an undergraduate student, they can introduce you to other professors in the field at UCSD who might have a project for you to work on.
Any plans/goals for your future?
This past fall, I applied to Programming Language Ph.D. programs. So for the short term, I plan to get a Ph.D. After that, I'm still unsure what I want to do. I might want to become a professor or do research full time. I will see! This pandemic has taught me to not plan too far ahead haha.