Simone Campanoni

Associate professor
Department of Computer Science at Northwestern University

Simone Campanoni

Computer Science
Northwestern University

ARCANA logo

For Ph.D. students

Advice for Ph.D. students in Computer Science
Advice for Ph.D. students in Computer Science at Northwestern
  • CS 496: Fabian Bustamante teaches an amazing class all incoming Ph.D. students should take.
  • CSPAC: self-organized group to represent Ph.D. students of Northwestern.
  • Graduate study manual: additional and specific requirements for Ph.D. students in system are described in Section 10.2
  • Northwestern CS class catalog: classes you should consider taking to have a peek on other areas of Computer Science.
  • Student resources: find here opportunities you can take advantage of while you are a Ph.D. student
  • Orientation: here you can find information about being a Ph.D. student at Northwestern, deadlines, and an F.A.Q..
Advice for Ph.D. students in Computer Science in compilers at Northwestern
  • CS 322: Take this introductory class to learn (and build) modern back-end and front-end compilers.
    Warning: this is a challenging and demanding class.
  • CS 323: Take this introductory class to learn (and build) modern middle-end compilers.
    Warning: this is a challenging and demanding class.
  • CS 397/497: Take this class to learn the latest research in compilers.
Advice for Ph.D. students in systems at Northwestern
Next are my personal advice to anyone that wants to pursue a Ph.D. in systems.
  • Never forget Edison: Genius is 1% inspiration, 99% perspiration.
  • Practice your organizational skills and time management.
  • Never forget the worst feedback you can get is your work is great! . Corollary: learn how to take criticisms.
  • Tools are your friends: become an expert in using state-of-the-art tools to develop, debug, profile, test, and integrate your solutions.
  • Listen to your advisor: we have more experience in common pitfalls (especially true for system research).
    Also, do not forget we are here to help you succeed. Your success is our success.
  • Do not be blind: do not accept what others (including your advisor) suggest without convincing yourself about their validity.
    If you are not sure about the reasons behind a certain suggestion, ask!
  • This is your Ph.D.: always listen to your advisor while embracing the fact this is your Ph.D.; put yourself inside the ideas/designs you will follow through the program.
    The work behind your Ph.D. thesis should reflect you, your mind, your skills, and your values.
  • Do not wait to do research: start doing research the first day you arrive at Northwestern. Take classes while you do research to help you do better research.
  • Classes do not matter: break away from your undergraduate mindset where classes were your target. Research matters now, so research is your target now. Classes are now a vehicle to help you improving your own research agenda.
  • Be prepared to work hard: a Ph.D. is not a regular job, it is more like a vocation to expand the human knowledge in a specific field. You will have a lot of flexibility, but very likely you won’t do 9 to 5 like in most jobs.
  • Expect to fail, but fail fast, so you will have the time to succeed.
  • Stay confident: a Ph.D. is hard (it is the highest level of education for a reason), which will lead you to have a roller coaster of emotions throughout the program. Sometimes you might feel it is too much and that you cannot do it.
    Stay confident: you have been selected by a committee to join our Ph.D. program for a reason.
    We see great potential in you and we think you will succeed.
    Stay confident and believe in yourself.

For master and undergraduate students

Doing research with a group is a great way for:
  • Going in more depth into concepts you have learned in classes (or learned by yourself)
  • Learning alternative solutions/concepts compared to the conventional ones
  • Evaluating concepts you have already learned from a different point of view (e.g., the hardware, the OS) and/or in a different scenario
  • Understanding if you enjoy doing research (and therefore whether a Ph.D. should be your next step)
The benefits of joining a research group while you take classes are important enough that you should at least consider doing it.
If you are interested in doing compiler research with me and my group, then you should first take my classes. The more compiler classes you take, the more aspects of compilers you can do research on. However, you can start doing research as soon as you successfully complete one class. For example, you can do compiler research in the middle-end of compilers (e.g., a new code optimization and/or analysis) when you complete the CAT class.

For all students (and beyond)

Sexual misconduct of any kind is unacceptable. If you have experienced sexual misconduct, please seek help and support from your community.
For Northwestern students, please do not hesitate to use the following links to seek help:
  • To report sexual misconduct: link
  • Reporting obligations postcard: link
  • Resource guide for those who have experienced sexual misconduct: link
  • Confidential support for survivors: link
External links:
LinkedIn profile LinkedIn Follow SimoneCampanoni on Twitter Twitter GitHub profile GitHub

Share this page with: