1. How many courses should I enroll per semester as a PhD student?

You should familiarize yourself with the coursework requirements for PhD students at: https://www.cs.uiowa.edu/graduate-programs/doctor-philosophy-phd 

The PhD program in computer science requires a minimum of 72 s.h. of graduate credit, three examinations (qualifying, comprehensive, and final), and a written dissertation. You have to take at least 27 s.h. to fulfil PhD coursework requirements. In addition, you have to accumulate at least 4 s.h. of CS:6000, the Computer Science Department Colloquium Series. The remaining 41 s.h. should be filled With CS:6990 Readings for Research before comprehensive exam and CS:7990 (22C:299) Research for Dissertation after comprehensive exam. You need to finish these credits before doing your thesis defense - there is no other time constraint.

The preferred courses in the syllabus are highlighted in red. If you plan take on any course which is not highlighted in red, please consult me in advance.

Core Requirement

All of these:

CS:4330 (22C:135) Theory of Computation

3 s.h.

CS:5350 (22C:231) Design and Analysis of Algorithms

3 s.h.


Ph.D. students must complete at least three of the following courses, with at least one course selected from each area (9 s.h.).

Systems and Software

One of these:

CS:4640 (22C:169) Computer Security

3 s.h.

CS:4980 (22C:196) Topics in Computer Science II (section approved by advisor)

3 s.h.

CS:5610 (22C:160) High Performance Computer Architecture

3 s.h.

Networks and Distributed Systems

One of these:

CS:4980 (22C:196) Topics in Computer Science II (section approved by advisor)

3 s.h.

CS:5620 (22C:166) Distributed Systems and Algorithms

3 s.h.

Programming Languages and Compilers

One of these:

CS:5810 (22C:181) Formal Methods in Software Engineering

3 s.h.

CS:5850 (22C:185) Programming Language Foundations

3 s.h.

CS:4980 (22C:196) Topics in Computer Science II (section approved by advisor)

3 s.h.


Ph.D. students must complete at least one course (3 s.h.) with significant practical or implementation-oriented content. Each semester the department designates courses that satisfy this requirement. The following are typical selections.

CS:4400 (22C:144) Database Systems

3 s.h.

CS:4420 (22C:145) Artificial Intelligence

3 s.h.

CS:4440 (22C:149)  Web Mining

3 s.h.

CS:4520 (22C:151) Computer Graphics

3 s.h.

CS:4700 (22C:177) High Performance and Parallel Computing

3 s.h.

CS:4720 (22C:174) Optimization Techniques

3 s.h.

CS:5520 (22C:251) Advanced Computer Graphics

3 s.h.

CS:5800 (22C:180) Fundamentals of Software Engineering

3 s.h.

CS:5990 (22C:199)  Individualized Research or Programming Project

3 s.h.

Cognate Area

Ph.D. students are required to select, in consultation with their advisor, a total of 9 s.h. in courses that constitute coherent coverage of an external cognate area. Choices include, but are not limited to, mathematics, statistics, genetics, biology, and engineering disciplines. Some courses that other students have found useful to fulfill external cognate requirements are:

STAT:4100:0001 MATHEMATICAL STATISTICS I                                                        

STAT:4143:0BBB INTRODUCTION TO STATISTICAL METHODS                                                

STAT:4200:0001 STATISTICAL METHODS AND COMPUTING                                                

STAT:4510:0001 REGRESSION, TIME SERIES, AND FORECASTING                                        

I strongly recommend PhD students to not enroll in more than 2 courses (6 s.h.) per semester. For new PhD students, I suggest to enroll in only one course during the first semester. You should enroll in the special topics course that I usually teach during the fall semester. This course should satisfy your Networks and Distributed Systems or Systems and Software breadth requirements.

The purpose of the low initial course load is to leave you with enough time to plan your research agenda and to get you familiar with the research environment in the lab. If you plan on enrolling in more courses, please consult with me in advance.


2. How much should I focus on coursework and GPA as a PhD student?

PhD students are only judged by their publication record. Coursework and grades don’t matter. If you are getting more than a B+, then you are spending too much of your precious time on the coursework. In graduate courses, it is rare to get a grade below B. Yet, you need to spend a lot of time to get more than B+, and this additional time and effort is better spent focusing on your research and writing papers.

Note: Students having less than a 3.25 GPA will be placed on departmental probation.

3. How much time am I expected to work as a PhD student?

There is a rule of thumb, which I believe is true to some extent. It’s called “The 10,000 Hour Rule”. The idea is that you need to work 10,000 hours to master a skill. As a PhD student - say you plan to finish in 5 years - roughly speaking, you need to work 10,000/365/5 = 5.5 hours each day for 5 years to reach 10,000 hours goal. Of course, you won’t be working on weekends and holidays.

If you work a minimum of 6 quality hours (i.e., no/little distractions) on weekdays, I believe that’s more than enough. What many PhD students don’t realize is that you need to spend most of your time mentally thinking about research problems rather than actually writing code/papers. The thinking process doesn’t require you to sit in front of a computer.

While it is technically possible to work from home, doing so is counterproductive, as it makes it difficult to have the extemporaneous meetings and interactions that are so important when working in a research group. For this reason, you have been assigned a desk and a computer for your exclusive use. Make sure that you are in the lab during a subset of the regular 9-5 hours. This also helps in case I have a question or want to discuss something else with you.

Another important thing - all nighters. I strongly recommend against pulling all-nighters. You may have to work late hours to catch a paper submission deadline, but such events should be rare. If you end up doing this far too often, there is likely an issue with your work planning. You need to start work on your projects early and not leave everything to the last day.

Also, please avoid working on weekends. Take the time off to relax.

4. How should I contact you (i.e., advisor) in case of a research question or administrative query?

If you are my current PhD student, you should add me on Google Hangouts (zubair.iowa). Send me a message there and I’ll get back to you as soon as possible. Sometimes, I may take time to get back to you because I’m in a meeting or busy with some other personal issue. In your communication, do not use salutations like Hello Professor, there?, are you around? etc. It’s a waste of time. Be direct and convey what you require from me in 1-2 sentences.

Other than Hangouts, the best way to get a response from me is email. I respond very quickly to emails. Finally, you are always welcome to walk into my office to discuss in-person.

5. What should I prepare for weekly research  meetings?

I set weekly time slots to meet with each of my students. I also have weekly group meetings (sometimes jointly with other research groups) to discuss papers or research directions for our projects. Please be punctual at these meetings, and bring with you a pen (or favorite writing instrument), a notepad (or paper, or notebook), and your calendar (in whatever form you keep it, this is useful to schedule additional meetings, if needed).

Do not prepare slides or handouts for your one-to-one weekly meeting. They are a complete waste of time and effort. Instead, put all results in a regular ACM/IEEE paper format. For instance, if you want to discuss some plots, make sure that you include a brief textual description of the plots. Try sending me the document before our meeting, so I can take a look at it before we meet.

6. I’m trying to submit to conference X, when should I have the first draft ready?

Remember that you will get feedback from me on working drafts of the paper during our weekly one-to-one meetings. My rule of thumb is that you should have the first draft (i.e., paper with all results and text description including a draft of introduction and abstract) ready at least a week before the submission deadline. I don’t work on last minute papers because of the mental and physical strain caused by working frantically at the last minute.

7. What software should I use to write papers, draw plots, maintain references?

I always use LaTeX to write papers. It’s simple to use and you should familiarize yourself with LaTeX. On Windows, I prefer to use MiKTex + WinEdt for paper writing and JabRef for managing references. On MAC, I prefer TeXShop.

Use MATLAB, R, or matplotlib in python to plot figures. Always generate figures in .eps or .pdf format for best quality. Use at least 300 dpi when exporting figures.

8. How to install the lab/department printer?

For Windows, open file explorer and navigate to \\iowaprint01.iowa.uiowa.edu and log-in with your hawk-id and password. Be sure to change the domain to IOWA when entering username (use \IOWA\hawkid). If you can’t find the printer you are looking for on iowaprint01, try iowaprint02 and so on. Different printers are hosted different servers. See more details at: http://www.divms.uiowa.edu/clas_linux/help/printing/printtab.html. Contact request@divms.uiowa.edu if you can’t resolve an issue. If you need to print large documents (e.g., books, long papers), please use the printer in MLH 14.

9. How to do reference management?

Create one .bib file and name it with your last name. You should continue to add all references for your work in 1 bib file. For Windows, Jabref is a free bib management tool for Windows. For conferences, use “Inproceedings”. For journals, use “Article”. For blogs and other web references, use “Misc”.

10. ***IMPORTANT*** Plagiarism and Zero Text Reuse Policy

Without quotation or SIGNIFICANT paraphrasing, the use of ANY sentence from other people's work (e.g., paper, article, Internet document, etc), even with citation, in your paper constitutes plagiarism. No exception. Paraphrasing needs to be significant. Trivial paraphrasing other people's sentence still constitutes plagiarism.

Without quotation or paraphrasing or modification, any sentence/example/figure from our own prior papers either published or intended for future publication, no matter what section the the sentence is from and no matter the prior paper has been published or not, is strictly prohibited from being used in any submission of a different paper. Zero tolerance, period, no exceptions.

Paraphrasing includes the use of different words/notations. Any sentence that is copied from our own different paper and that you find no solution to paraphrase must be reported to me for resolution. This rule MUST be strictly enforced by each of you in preparing your draft.

Read the following article for frequently asked questions and examples: Avoiding plagiarism, self-plagiarism, and other questionable writing practices: A guide to ethical writing. If you have any ambiguity, ask me.