Answers to Ph.D Advisor Guide - dynaroars/dynaroars.github.io GitHub Wiki

Answers to Ph.D. Advisor Guide

Specific answers to questions about my 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 guideline.

Advisor Style & Expectations

  1. Does the professor have tenure yet? [engagement level, PhD might get interrupted]

    Not officially yet, but I should have tenure in August'24.

    Note that when I moved to GMU in 2021 from UNL, 2 of my Ph.D. students moved with me and one stayed at UNL to graduate the next semester. So no interruptions occurred during the move.

  2. 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.

  3. 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'24. I also graduated an MS student, who now works at Oracle, and an undergrad, who works at Jump Trading.

  4. 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 if there is a match. On average, you will likely work on one primary project (that you lead). You can also collaborate with other lab members. In weekly lab meetings, you will also hear about the progress of other projects.

    As examples, Didier works on Complex 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.

  5. Does the advisor consider themselves a "hands-on" or "hands-off" advisor?

    Usually I am more hands-on for junior students and help iron out many low-level details to the best extent possible. 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.

  6. 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 and by the time the students can write the paper completely by themselves without much revision and editing from me. Typically this happens by the 4th paper or 5th paper. When this happens, you know you're about to graduate!

  7. Are there lab meetings? What are other meetings you will see your advisor in a group with other people?

    Dynaroars 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.

    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 of Dynaroars and your field.

  8. 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 hr for this but usually it goes beyond an hr. I usually have to go pick up my kids at that time, but the students want to continue and so 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.

  9. 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!

  10. How many students are in the group? [Number of undergrad/masters/phd/post doc]

    Check out the Dynaroars People section. Right now we have 5 PhD students (official + unofficial) and also undergrads! We have yet to have a postdoc, but I would be interested in hosting one if there is a good match.

  11. 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.

  12. 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.

    You will have freedom to choose what you want. It should be something 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 argue with me. 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 think Y is better, then you should do both X and Y (but don't tell) and show me both results. It doesn't matter if X or Y is better, but that you believe in your idea and can get results.

    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.

  13. When have you given a letter of concern? Why?

    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.

  14. 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.

Research Fit & Projects

  1. 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.

  2. 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.

  3. 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.

  4. In general, do you tend to give your students projects or have them select their own?

    It depends. I prefer students to develop and pursue their ideas. 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.

  5. 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.

  6. 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. For example, if you select a project that is outside my interest or expertise, then we can discuss several options, such as switching to a different advisor or finding another faculty with the relevant expertise for co-advising.

  7. 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.

  8. Would they have their own line of work or contribute to a bigger project/someone else's project?

    It's up to you. Leading a project yourself is the best way to get you started for learning how to do research. Usually a, student has their line of work and 1-2 projects where they work with others.

Funding / Obligations

  1. 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.

  2. 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.

  3. 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.

  4. 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 main responsibility of a professor is finding funding to support their students, and I have been quite lucky to have sufficient funding to support all of 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.

  5. 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.

  6. 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 your GRA during the Spring/Fall semesters would allow me to support you during the Summer.

Student-Advisor Fit / Placement

  1. 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.

  2. What factors will affect whether or not you take a student?

    Research interests, background, and motivation.

  3. 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.

  4. Do you think our research interests are a good match?

    Depends, take a look at my research lab and let me know.

  5. 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. We can start on a small project and see if it fits you.

  6. 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.

Co-advising

  1. [If you are interested] Would the advisor be interested in co-advising?

    Yes. Co-advising can help you do research better (I was co-advised, btw). Let me know if you find another faculty at GMU that can help with your work. Even faculty/researchers outside GMU works too. We can reach out and see if there are opportunities for collaboration.

  2. How much overlap would they have in research?

    Depends. Ask me if you're interested in having co-advising.

  3. Have these advisors co-advised in the past? Or worked together in the past?

    I do co-advise with other faculty. Typically we share the same interest area (e.g., software analysis).

Lab Culture

  1. What equipment are provided to students?

    Depends on what you need. But I purchase computers and electronics for my students (e.g., computers, laptops, monitors, headsets, keyboards, etc). Our lab has several powerful servers that are shared among the students.

  2. Do students mostly work with senior students or directly with professor?

    Mostly they work directly with me, but are also encouraged to work with senior students with similar interests.

  3. 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 CA.

  4. 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). Essentially I expect you get some results to present after a full year of research.

  5. 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 times a day 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).

    Department outings/events: there are many fun events throughout the semester in both the SWE group and the department. I highly encourage my students to attend these.

  6. 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 to do internships at cool companies)

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.