Jason and Andy's How to Do a Computer Science Thesis

(version August 30, 2005)

"Always two there are; a Master and an Apprentice" -- Yoda

It's a lot like what Luke went through on Dagobah ... except he didn't have to turn in a properly formatted thesis document. You did see Star Wars didn't you!!! If not go rent the Empire Strikes Back.

This is what should resonate in your mind when you think of the relationship between you and your advisor. Your success is as important to you as it is to him/her if he/she is a good advisor.

Although these instructions mainly talk about doing an MS thesis, most of the things are the same for a PhD thesis.

0. Whats the difference between a MS 'thesis' and a 'project'?
There are two different ways to get an CS master's degree here: by doing a thesis and a project. With a thesis it is your ideas that are central to the degree, while in a project it is what you create (software or hardware) that is central. In both cases you must make a contribution to the existing body of knowledge / experience. For the project you take more courses, in the thesis you do more research and have a more formal presentation at the end. Basically a thesis subsumes a project. A thesis uses a project as a proof of concept, but also describes what is conceptually novel and how this work fits into the context of existing work in the field.

If you ever intend to do a PhD you must do an MS thesis first.

The official CS requirements are posted here:


Why do a thesis? A master's degree makes more of a contribution to the field than a project. If you want to do more than spend your life writing code for other people, a thesis can be a good way to demonstrate that you are capable of collecting and organizing the material to survey an area, define a novel contribution, and then make that contribution.

As a Research Assistant at EVL, we expect you to do a thesis.

1. Decide if you want to do a thesis to get through your Masters as quickly as possible or to do a thesis in an area that you are truly passionate about.

If you are choosing something that you just want to get through as quickly as possible, ask your advisor for a well defined thesis with specific requirements.

If you are choosing something that you are truly passionate about then fantastic! This is as it should be. If you are stopping with a MS degree this will be your last chance to do anything that you truly enjoy. After that when you get out in the "real" world you will be assigned projects and deadlines that you may not care about. So value this time because it will be the most enjoyable time of your life where you can really make the most impact in the world.

2. Area review: begin by looking through conference proceedings, journals, online, books, etc. Xerox relevant papers AND any papers that interest you. Sometimes what you are looking for may lead you to find something that you had not intended but may be more interesting. Papers are fuel for your ideas. This is your chance to discover what the rest of the world is doing. This is an important step because it gives you a broad view of your discipline.

Read all the papers you've found (or as many as you can) and after reading each one enter it into an ANNOTATED BIBLIOGRAPHY.
This is a bibliography that contains a full reference of the paper and a 2 paragraph summary of the paper. Pay special attention to write personal notes like "this is a good paper", "I liked it because..."

This will also be valuable because it will form your bibliography when you get to writing the thesis.

Furthermore this summary is important because it will make up the "Background Research" part of your thesis as well as any papers you'd like to publish.

Talk to your advisor about what you are reading. He/She should be able to point you towards other resources. Use the WWW. If you find an interesting paper then look at the author's web site and see what links are there. What new projects is he/she working on? What new papers may have been published?

EVL has accounts on the ACM and IEEE digital libraries. www.acm.org and www.computer.org.

After your first term here you should have a rough idea what you are interested in. During the second term you should do the area review, so that at the end of your first year here you are ready for #3 and #4 below.

3. Choosing the Thesis Area: Choose one that hopefully interests you and ideally one that you are also funded to do. This will let you devote more time to your thesis.

Once you've chosen an area you need to think carefully about what its contribution is. In general a thesis is a new contribution to the field you are studying. You cannot simply duplicate work that has already been done. You need to make an improvement. Sometimes it is useful to draw a table with authors on one axis and what they do in the other axis. This will allow you to see what areas are still new and have not been addressed yet.

Another way to find new thesis areas is to look at the Future Work sections of papers. Many times the future work sections include work that the author will never get to because there are simply too many things to work on.

4. Discuss your thesis idea with your advisor: This will allow you to stake a claim on an area so that some other student can't pick your area. Also tell your friends what you're thinking as a thesis area. That's so they don't waste time choosing the exact same area. At the same time while they were doing their literature search they may have read a paper or seen something in a related area that might be useful to you.

Any CS faculty member can be your advisor but here at EVL the more likely faculty members are: Luc, Jason, Andy, Tom DeFanti, Tom Moher, and Bob Kenyon.

Your advisor will also suggest possible members of your thesis committee who can also give you suggestions. For MS you need a total of 3 people in your committee. For PhD you need a total of 5. You can also have non-CS faculty members on these committees so Dan is a good addition. If there is someone from another department, or from Argonne, or NCSA that you would like to have on your committe then talk to your advisor about it.

There is no official policy for choosing an advisor. When you register for credit for CS 598, you should take those credits with your chosen advisor. Every term that you take thesis credit you will need to hand in a 1-page description of the work you have been doing during that term. You can register for at least 8 and up to 12 credits of CS 598, and you will probably do this during the last year of your degree.

5. Articulating your Thesis.

Try to be as specific as possible about what you want to achieve in your thesis. This is for your benefit as well as your advisor because coming up with a 'contract' of what is expected of you will avoid any nasty surprises in the future.

Your thesis commitee will basically see if you are able to answer the following questions in your thesis. You need to find a good and convincing answer for this in order to pass:

6. Perform a Feasibility Study: Try and implement a few ideas on the computer to "concretize" your thesis ideas. Once you are confident that you can implement your thesis, confirm this with your committee members. Ie make sure they agree that this is a good and viable thesis to pursue. Of course you should already have been talking to your committee members during this feasibility study process.

7. The PhD Preliminary Exam: Once your feasibility study is complete, write thesis proposal document (use the following template) and submit it to your advisors. Then schedule some time to hold your exam. You need to do this at least 2 months before you take the preliminary exam since it is often difficult to coordinate the schedule of your commitee. At your preliminary exam you will give a 30 minute presentation of your thesis. After the presentation you and your advisors will discuss how to shape your thesis into your final PhD thesis.Once you have passed your preliminary exam you can implement you thesis. Before you begin the full implementation of your thesis, you should write a conference paper about your thesis and your feasibility study. This will help ensure that no one else in the research community have the same ideas as you and beat you to the idea.

8. Implement the thesis: If it is a program or algorithm use the techniques you learned in software engineering to design, build and document your system. Remember the purpose of a thesis is a product that generations after you can use and improve on. In fact you may consider at this point to write a paper for a conference. The process of writing a technical paper always forces you to think rationally about your thesis; to find its good points and its weaknesses. Feedback from conference reviewers can sometimes be useful too.

9. Demostrating that your system works and is GOOD: The way to do this depends on your thesis. Here are some suggestions:

10. Writing your thesis.

Start writing at least 2 months before you plan to defend your thesis. You should already have much of information you need from the information you have been previously gathering. Here is an example of a thesis outline:

Executive Summary:

A 1 page summary that articulates the following:


a summary of the problem you are trying to solve and your approach.

Problem Statement:

describe in detail the problem you are trying to solve.

Background Research:

describe the field in general and how others have tried to solve this problem.

The Approach:

describe your approach to solving the problem. Describe any potential weaknesses of your approach.

The Implementation:

describe how you implemented your approach. If it is a software system give diagrams, relevant algorithms etc.


describe how you evaluated to show that your approach was successful. You may need a methods section, a results section and a conclusion section.


summarize your thesis again as in the introduction. Describe how your evaluation revealed that your system is successful. Describe future work in this area.

EVL maintains a collection of past Master's Thesis in Maxine's office. Take a look at several of them. They cover a wide range of projects and will give you the best idea of what is expected in the writeup.

11. Schedule a time to do your defence. Do this at least 2 months in advance. Your thesis committee members travel a lot and it is often very difficult to schedule a time that they can all meet. 1 month before your defence give all of your committee members a copy of your thesis to read.

This written draft allows your committee to bring up any major criticisms / additions that they feel are necessary now, before you get to the defense. You do not want to have to deal with them during step #11 below.

Make sure you have a handle on all of the departmental paperwork you need to fill out.

12. Defending your thesis: Use the guide on how to give good EVL presentations to prepare for your defence (www.evl.uic.edu/cavern/seminars/evlpresent.ppt - this is a Powerpoint file). Your defence will usually last at most an hour in which you must do a talk and a demonstration. Rehearse this well because failing this presentation will usually mean failing your thesis.

Talk to your advisor about the presentation. Show him/her your slides. He/She has done many presentations and can point out any obvious problems.

If you haven't done many presentations, you should probably gather a group of your friends together a couple days before your actual presentaion and go through your entire presentation and demonstration with them in the actual room with the actual slides and the actual time constraints. Tell your friends to be brutal in their criticism. Its better to find all of the problems now with your friends.

While you are working on steps #1-10 above, go to ALL of the Masters or PhD defenses associated with the lab. See how other people present their work. Listen to the questions that are asked. Watch for what works and what doesn't work.

Your defense is a public event open to anyone who wants to come. These are usually held in the AccessGrid room and will be attended by your committee and many students from the lab. Once you have presented there is a time for public questions by the audienced or your committee. After that, you and the audience will be excused and your committee will discuss your work in private for about 15 minutes. At that point they will decide if you have satisfactorally completed your degree and will tell you so. You may need to make some modifications to the thesis or do some additional work before the committee will sign off.

14. Here is a schedule that you should go by for an MS thesis.

For PhD thesis it is something like:

REMEMBER: D = DEFENCE date; this is NOT the date in which UIC expects you to submit all your paperwork in time for graduation. Find out what this date is because it is usually early in a semester. If you miss this deadline you will have to wait till the following semester to graduate.

Now go grab a calendar and map your schedule out. Seriously, go try this out on a calendar.

Please do not ask us to compress the schedule or sign off on your forms before you have completed all of the requirements. We will simply ignore you and you will get very very angry at us. We predict that you will ask us to do this during D-1 month. During that time we will simply tell to go back to this document and read this paragraph again just so you know that we are not just being mean and holding you longer than necessary. So if you are reading this paragraph for the 2nd time, all we can say is, "sorry, we told you so..."

Also, don't ask us if it is ok for you to take a job before you finish your thesis, the answer is simply NO. Before you get mad, understand why:

So far every student that has left early has either taken several more years to finish their thesis or, if they are MS students, asked if they can downgrade their thesis to a project after realizing a year later that they don't have the time to finish their thesis. The fact of the matter is, once you start on a job there is no time to do anything but your job. Also when you agree to do an MS thesis with us we take you under our wing- that means we have to take time out to train you and we spend in excess of $60,000 on you. Lastly, and certainly not the least, your downgrading from thesis to project creates a poor reflection of the lab. It means you left before being sufficiently trained. It also means we have misrepresented your abilities to your employers when they call us for a reference. That makes it difficult for employers to trust our reviews of future EVL students.

Final Remarks

The thing to remember is that you must learn to find a path and follow a path by yourself. Your advisor can only help you find the path and help you learn to find a path. Then it is entirely up to you to walk the path.You are only ready to graduate when you can do all of this by yourself. If you need your advisor to tell you every next step then you are NOT ready to graduate.

That's pretty much it! This is a journey you will not forget and you will be a different person afterwards. The way you think and solve problems in the future will change because of this.

"May The Force Be With You"