-
Notifications
You must be signed in to change notification settings - Fork 6
Answers to Ph.D Advisor Guide
Specific answers to questions about Roars Lab. Adapted from https://www.cs.columbia.edu/wp-content/uploads/2019/03/Get-Advisor.pdf, inspired by Jia-Bin Huang's answers
More general PhD admission advice can be found in this book.
- Advisor Style & Expectations
- Research Fit & Projects
- Funding / Obligations
- Student-Advisor Fit / Placement
- Co-Advising
- Lab Culture
-
Does the professor have tenure yet? [engagement level, PhD might get interrupted]
Yes, in 2024. If you are wondering if I will be around for a while, the answer is yes. I am not going anywhere. Northern Virginia is a great place to live and work. And Mason is on a great trajectory. See more about GMU CS.
Anyway, having tenure allows me to try more risky research and more open to new ideas. It also means that I am not under pressure to publish papers and care more about the quality of the research.
-
What is the professor’s formal training / background / PhD? [helps contextualize problems/approaches]
I did my Ph.D. in CS in the University of New Mexico-Albuquerque and then a postdoc at the University of Maryland (in PLUM lab). I started wanting to work on evolutionary computing, and then gradually changed to software engineering, programming languages, and formal methods. You can see my bio and CV on my homepage.
-
What have previous lab members done after getting their PhD? [Gone to industry?/Post-doc?/Professor?]
So far I have only graduated one Ph.D. student: Guolong Zheng (2022, joined A10Networks). Didier plans to graduate in Dec'25. I also graduated an MS student, who now works at Oracle, and an undergrad, who works at Jump Trading.
-
What is the lab structure? [how collaborative/disjointed are lab members' projects?]
Each Ph.D. student has projects that they lead. Lab members are encouraged to collaborate on similar topics. In weekly lab meetings, you will hear about the progress of other projects and can contribute ideas or help with problems. We also have a lab server on Discord where we chat about research and other random things.
As examples, Didier works on Complexity analysis. KimHao on analyzing build systems. Hai works on DNN verification. Linhan works on DNN testing. Hai and Linhan collaborate as their projects involve neural networks.
-
Does the advisor consider themselves a "hands-on" or "hands-off" advisor?
I am a "hands-off" advisor. I want my students to be independent and take initiative in their work. While I can help suggest ideas and directions, I want my students to be able to work independently and take ownership of their projects. I do not provide a lot of guidance on what to do or how to do it.
However, I can be a "hands-on" advisor when needed, especially for new and junior students (e.g., with writing). As students become more senior/mature, I would gradually transition to a hands-off advisor. However, if newly joined members are highly capable and independent, then I become a hands-off advisor.
-
How does the advisor give feedback on papers/what is their feedback style?
For the students' first papers, I would ask for drafts and revise the draft iteratively with the students (e.g., through Overleaf). In many cases I would rewrite most of the students' drafts, especially the Intro and Evaluation, for their first papers. This helps the students see how papers are written. Same thing with paper rebuttals, I will work with the students and revise the writing directly.
As the students have more experiences, I will let go more and more. By the time the students can write the paper completely by themselves without much revision and editing from me (e.g., the 3rd or 4th paper), then I know they are ready to graduate.
-
Are there lab meetings? What are other meetings you will see your advisor in a group with other people?
Roars Group meetings: Yes, weekly, in person in the CS dept. Everyone talks about what they have been doing in the past week and what they will do next week. Often after status updates a student will present their work in depth.
GMU Software Engineering Group meetings/seminars: The SWE@GMU meetings is a place for presenting/discussing exciting papers in the field. We often invite faculty and speakers from various fields to talk about their work. This is an excellent opportunity to meet people outside Roars and your field.
-
What does a group/lab meeting look like? [Or other relevant meetings]
We start talking about our status, e.g., each person talks about their work for about 2-4 mins. This is inspired by the SCRUM method used in the PLUM Lab at UMD.
Then we go in depth in some topic, e.g., a student might talk about some problem they are working on, show their computation on the board or present results. Sometimes we read papers or look at some existing tools/techniques. We plan to use about an hour for this but usually it goes beyond that. I usually have to go pick up my kids at that time, but the students want to continue and they keep going.
Sometimes we just relax and watch a movie (e.g., the PhD Movie). We also have a lab server on Discord where we chat about research and random things.
-
How often does the advisor meet with their students? [1:1 or all together? Daily guidance by PI or post-doc?]
In addition to weekly lab meeting described above, students often talk to me about their projects for longer sessions whenever they need (and during paper deadlines, we often meet several times a day).
Many of my students work late and night and so do I (after kids gone to bed!). So I've been making myself available to work with my students at night whenever they need (often 10:00 PM - 11:30). Not only with my grad students, but also with my undergrads. We are all becoming night owls!
-
How many students are in the group? [Number of undergrad/masters/phd/post doc]
Check out the Dynaroars People section. Currently we have 6 PhD students and also undergrads! We have yet to have a postdoc, but I would be interested in hosting one if there is a good match.
-
What progress does the advisor generally expect from a student in the course of a semester? [Submission/Publication pace]
I expect the student complete and submit a paper to one of the top conferences each year. It does not have to be accepted because the reviewing could be noisy, but it is crucial to complete a paper and submit it.
-
What other expectations does the advisor have for their students: time/vacation/paper/project/experiment wise etc.
I want you to work hard but also have FUN with your research.
I want you to be independent and take initiative in your work. Don't just wait for me to tell you what to do. If you have an idea, try it out and let's see if it works.
You will have freedom to choose what you want. It needs to be related to my interest, but I am open to your ideas (but of course if you can't find anything, I have many ideas to try).
I want you to ask questions and open to learn new things from others (e.g., your lab mates, whom are probably better resources to learn from than me).
I want you to listen to me, but also be independent and challenge me. I am not always right and I want you to tell me when I am wrong. I want you to be able to defend your ideas and work when being challenged by me or others. I want you to be able to convince me that your idea is better than mine. As an example, if I tell you to try
X
, but you thinkY
is better, then you should do bothX
andY
and show me both results. It doesn't matter ifX
orY
is better, but that you believe in your idea and can get results to support it. -
When have you given a letter of concern? Why?
I haven't given a letter of concern yet, and I hope I never have to.
However, I would give such a letter when a student does not meet the expectation (not completing and submitting work in a year) and needs to be on track. Here is the expected progress for a CS Ph.D. student. By the end of the second year, you should publish at least a second-author paper. You are doing well if you publish a first-author paper at that time. By the end of the third year, you are considered behind if you do not publish a first-author paper and are seriously behind if no good submissions were made. A typical student in SE/PL will have 4-5 publications.
-
What do you do when students are struggling?
First, identify the problems, e.g., motivation, external obligations, implementation/technical skills, and communication issues. Then, talk with the student to develop strategies to address the problems.
-
How do you handle it when a student outgrows your expertise---they know more than you?
I expect this to happen---at some point you will know more than me in your area of research. Depending on your projects, I often introduce students to researchers or faculty who are experts in that area and collaborate with them so they can help you in your project. For example, KimHao works with Quoc Sang at Facebook on build systems, and Hai works with Matt Dwyer at UVA on DNN verification. In short, if you become better than me in your area, then I've done my job!
Note that if you want to change or try research direction that I don't have much expertise or interest in, then I can't help you much there. I can try to find another faculty member who can help you, but if you want to work on something completely different, then we may need to discuss switching advisors. This is common in academia (almost happened to me during my PhD) and I have no issue with you doing that.
-
How directly applicable will your future technical skills be to the roles you want after graduating. (If set on industry)
Most of the future technical skills in software engineering and programming languages will apply to many (either research or engineering) roles in the industry.
Actually this question is kind of dumb (it's on the original list).
-
What research methods does the lab use? (What 'types' of papers / contributions / conferences targeted)
Our work is often on developing new techniques/algorithms and building tools. We target top-tier conferences in the field (e.g., ICSE, FSE, ASE, ISSTA, OOPSLA, PLDI). For work we wish to extend, we also publish in journals such as IEEE TSE.
Ok, that was a boring answer. More interesting one is that we develop tools that actually work and we don't just publish papers, we also win competitions and awards. Our competitors are the best in the world and we enjoy beating them. For example, NeuralSAT is often considered the best at DNN verification competition and outperforms the state-of-the-art tools.
-
What are some of the projects that you and your students are currently working on?
We are working on various software analysis projects, including formalizing and proving mathematical theorems, neural network verification and inference, analysis on highly-configurable software, and program testing, analysis, and repair.
Ok, cross out
program repair-- I no longer work on it. I am more interested in DNN verification and reasoning and also using LLM-based proof assistant to formalize and prove mathematics. -
In general, do you tend to give your students projects or have them select their own?
I prefer students to develop and pursue their ideas that are related to my research. However, this could be challenging for junior students. For junior students, I give them smaller projects or have them work with with a more experienced student to learn research skills.
-
Do you have particular projects that you see me working on?
It depends on your background and interests, but I do have many ideas to try. However, in recent years, I hae been focusing more on DNN reasoning and verification, so something related to that.
-
How much freedom do you think I'd have in selecting my own projects?
We need to find projects or research directions that we are both interested in. If you want to do something that I am not interested in, then I would rather you find another faculty---I think this is better for both of us.
-
Are there other students you are interested in working with? If so, what would they be working on project-wise?
May be, I will have to look at their profiles.
-
Would they have their own line of work or contribute to a bigger project/someone else's project?
All of my students have their own line of work. Sometimes they collaborate with other students and in the beginning they may work on smaller projects with other students. But eventually they will "own" their projects.
-
Where does their funding primarily come from? [If military / industry-focused funding bothers you, figure this out]
Most of my funding sources are from NSF and some are from the industry (e.g., gifts from Amazon and Facebook). All of my funded projects are on basic/fundamental scientific research.
-
What are their constraints from their funding source? [Some restrict research topic and change final deliverables. Some add work — writing progress reports, traveling, preparing presentations for the funding source or engineering overhead for integration]
Since my funding source are mainly from NSF or unrestricted from industry, our work has few constraints. Occasionally, I may need your assistance on progress reports and presentations if you are funded through specific grants.
-
If your advisor made you work on a project in their area that you are least interested in (e.g. for a grant) would you still be excited doing work? [Useful for choosing between advisors]
It is extremely unlikely that you have to work on something you're not interested in.
-
If you run out of your primary funding for a student how do you expect the student to handle that? [advisor’s responsibility / you’ll have to write a grant with me / dept will cover the student / you have to find their own funding]
One of my responsibilities is finding funding to support my students, and I have been quite lucky to have sufficient funding to support my students (including summer). However, as a fallback, the department can also cover the student with TA-ship. CS@GMU is very good at providing Ph.D. students TA-ships.
-
What does the quals process look like?
The department has a very specific guideline that students need to follow for the comprehensive exam. In short, it's quite straightforward and the student needs to write a paper describing the research area and problem they want to work on and present that paper.
-
Is there a TA requirement? / How often would I be expected to TA?
There is no TA requirement from the university or the department. Nevertheless, I strongly recommend doing a TA at least once or twice during your PhD. TA is a great way to get introduced to teaching, and can really help if you're interested in an academic career. More practically, in some cases not having to support you as a GRA during the normal Spring/Fall semesters would allow me to support you during the Summer.
-
Are you taking a student? Do you have funding to take students in this year (or, for which projects)
While I am not recruiting new students at this moment, I am always interested in strong students and can make exceptions.
-
What factors will affect whether or not you take a student?
Research interests, background, and motivation.
-
How do you anticipate your funding to change during my time as a student?
Your study will be fully funded either by a research (RA) or a teaching assistantship (TA). I have been quite successful in securing funding for my students, so I do not anticipate any changes in funding during your time as a student.
-
Do you think our research interests are a good match?
You tell me! Take a look at my research lab and let me know if you're interested in my work.
-
I'm interested in working with you. Do you think I'd have a good chance of working with you if I come to your university?
If you come to GMU and want to work with me, let's chat. If there's a good match, I'll be happy to work with you.
-
Are there other faculty you think I'd be a good match for?
Check out the list of faculty members. Areas that overlap with mine include AI/ML/Security.
-
What kind of student would not enjoy working with you, and why?
Hard to tell. I have worked with all kinds of students and they seem to work out well. However, as my advising style is very hands-off, I think students who need a lot of guidance and support may not enjoy working with me. I expect my student to be quite independent, self-motivated, and receive very little guidance from me.
-
Would the advisor be interested in co-advising?
I was co-advised during my PhD and it worked out, but I prefer to be your main or sole advisor. I think it is better for the student to have one main advisor, and then have other faculty members as collaborators (not co-advisor). This way, you can get more attention from me while still being mentored by other experts. For example, Hai is advised by me but also mentored by Matt Dwyer at UVA through our NeuralSAT project. It's also easier for me as I don't have to deal the faculty member, e.g., if they want you to do something that I don't want you to do (and vice versa).
If you are interested in something that I am not too interested then I would not want to be your main advisor. I would rather you find another faculty member who is more interested in your work and can help you with it. I think this is a better fit for both of us.
-
What equipment are provided to students?
I purchase computers and electronics for my students (e.g., computers, laptops, monitors, hardrive, memory, headsets, keyboards, etc). Our lab has several powerful servers that are shared among the students.
Let me put it this way: our lab machines are much better than most other labs and our experiments get done much faster than other groups.
-
Do students mostly work with senior students or directly with professor?
They work directly with me, but I also encouraged new lab members to work with senior students with similar interests.
-
How often do grad students get to attend conferences? [Pace + What constraints]
If you have a full paper at a conference, even not as first author, I will support your travel to the conference to present it. I also encourage you and other lab members to go to local conferences or workshops (e.g., PL meetings at school in the Northeast region such as Stevens, Princeton, UPenn). I often send my students to the annual Formal Techniques Summer School in San Francisco (CA).
For full disclosure, I am not a big fan of attending conferences. I think they are useful but I am just not into traveling. I rather stay at home and play with my kids and work on my research. But this is just me and I wholeheartedly support my students to attend conferences, and I introduce them to other researchers through emails and collaboration.
-
How many conferences are students expected to target a year? [remember pubs
$\neq$ submissions]One first author paper submission for a major conference each year (e.g., ICSE, FSE, ASE, ISSTA, PLDI, OOPSLA, CAV). Essentially I expect you get some results to present after a full year of research.
-
How often do students take time off? Are there lab / department outings / events?
Time off: Whenever they need it (seriously!). I expect my students to be in the lab at least 3 days a week but if they need to take time off (e.g., health appointments, personal/family events), they can always tell me and take sometime off.
Lab dinner/gathering: Usually twice a semester (e.g., party at my house at the beginning and the end of a semester and during Thanksgiving). We also go out to lunch (typically after paper submission deadlines). Once a year we also hang out with other labs in the depts at Round One (bowling and arcade).
Department outings/events: there are fun events throughout the semester in both the SWE group and the department. I highly encourage my students to attend these.
-
Is the professor in an 80/20 with a company? Are student’s research projects tied to industry funding?
No, but I collaborate with researchers from the industry (e.g., Facebook) and have industrial grants/awards (e.g., Amazon). Some students’ projects are to solve industrial problems (and they get opportunities to do internships at cool companies)
-
Will it be acceptable/encouraged to intern at a company during the summer? [Does this change with seniority?]
Definitely, in fact I encourage you to do that. E.g., KimHao works at Facebook (twice) during the summer.
-
Do students work together in common space? Do students often get meals together?
Sort of. Due to office space limitations, my students are sharing space with other SWE PhD students. There are advantages of that as you get to interact with more people outside our lab.
-
Do students often work late? [Often / only before conference deadlines.]
Mostly before the conference deadline, but many students like to work late. I also stay up quite late to chat with students if they need.
-
How often are students expected to be contactable by their advisor.
Unless I know you're completely off (e.g., vacation) or you're busy with finals or other obligations, I expect that you will be contactable in a day via Discord or email.
-
Are there snacks in the lab?
Not sure, sometimes I see some snacks. When I was a grad student, I often steal pizza and food from other labs. I often email my students when I see free food announcements.
More generally, we work hard but also have lots of fun, many of which involve eating and gathering.
-
If one of your students is being treated unfairly---by a collaborator, committee member, or even within the department---how do you handle it?
I tend to be very protective of my students. I can be hard on them---especially in research, but outside of the lab, I will protect them and stand up for them. Not only obvious cases like unfairness treatment but also when I feel they need support, e.g., I would shield them from being overworked or being taken advantage of by others.