Guidelines for Theses and Thesis Proposals

From:Computer and Information Sciences University of California at Santa Cruz - adapted for use at CSU Chico (particularly, for me)

Thesis Proposals

A thesis proposal is a very important step toward completing a thesis. Properly done, it provides the student and the supervisor with a ``contract'' specifying the research that is to be performed and the results that are expected from that research. It also serves to ``start the juices flowing'' by forcing the student to direct efforts toward the goal of finishing a thesis and thus a degree.

The comments below apply equally well to senior theses, masters theses, or PhD theses. They have been summarized from the article ``On Ph.D. Thesis Proposals in Computing Science'', written by H.C. Lauer in the Computer Journal circa 1975. Lauer's article suggests these topics for the proposal outline:

Thesis Topics

As a general guide, a senior thesis is primarily an exercise in writing a research document. Usually it is based on reading that the student has done on a particular topic or area of interest with some work by the student. In this case it takes the form of a recapitulation of existing research results explained by the student at a level appropriate for a person knowledgeable in the field. Less often it will report on original work by the student. Exceptional senior theses may be submitted for presentation at conferences or for one of various awards established for undergraduate research papers (such as the Forsythe Student Paper Award conducted annually by the ACM).

A masters thesis requires more actual research effort on the part of the student, but does not necessarily require that the research be a major breakthrough. Often masters research involves a reformulation of existing work (a new implementation of an existing algorithm or system, a better proof of an important theorem or result, a performance study of an algorithm or system, or an experiment to confirm or analyze results reported in the literature). Any good masters thesis should be suitable for submission to a major conference or research journal (although not all will be accepted).

A PhD thesis is, by definition, an original contribution of new and important research results in a recognized field of study. The results reported in a PhD thesis should be primarily those of the author and should advance the state of knowledge. Almost all PhD theses are eventually submitted for journal publication as one or more articles summarizing the new results.


An important first step in thesis research is review of literature on your thesis topic. This means a student should read very widely as much as he or she can find about background information, previous and current work by other researchers, and any work in other areas that may relate to your own topic.

Sources of work studied in the literature review can include technical journal articles, textbooks, technical reports (from universities or industrial research centers), Masters and PhD theses, popular or `layperson' journal or magazine articles, and `word of mouth' through private communications. It is often necessary to spend much time in a library just finding references as well as actually locating the article, book, etc. for reading it. Typically, one reference article leads to one or more other ones (from the `references' section of the article or book), which in turn leads to others, etc., etc. This, of course, only extends your bibliography search backwards in time. Finding recent literature on your topic will usually involve using indices of recent publications such as the printed or electronic abstracts, annual indices of technical journals, or just plain asking fellow students, professors, or researchers in the field.

Once you have accumulated and read all the literature you need for your thesis you will want to have a way of printing it. You will definitely need to print your references in your thesis document. The best way to do this is to maintain your bibliography entries in a computer file using a standard bibliography database system.

On Unix there is a very convenient and relatively easy to use system called `refer'. The `refer' command and other related commands (`addbib', `lookbib', `indxbib', `sortbib', and `roffbib') are well described in Unix `man' pages. In summary, what these commands provide are:

To create your bibliography file, you must use `addbib'. It is quite easy to use and reasonably well documented (for Unix). It prompts you with simple help instructions when you start it up. However, you should read the `man' page first. There is also a longer, printed manual available from the Computer Center. `addbib' produces ASCII text files with entries such as:

%A	M. E. Lesk
%T	Some Applications of Inverted Indexes on the \s-1UNIX\s0 System
%B	\s-1UNIX\s0 Programmer's Manual
%V	2b
%I	Bell Laboratories
%C	Murray Hill, NJ
%D	1978
`addbib' prompts you for standard entries, but you can always edit the file afterwards to modify or add your own entries. You can also set your own default entry prompts (see the `man' page). NOTE WELL: BE SURE TO USE THE `-a' OPTION WITH ADDBIB (NO ABSTRACT). OTHERWISE, IT WILL GO INTO AN INFINITE LOOP (A BSD 4.2 UNIX "FEATURE").

Another handy feature of the `refer' system is `lookbib' which can be used to interactively search and retrieve citations from your bibliographic database. `lookbib' will find all references that match whatever keywords you give it. Keywords can be author names, dates, words from the title, or words in the special `keyword' field of the database. If more than one keyword is given, `lookbib' returns only those references that match all keywords. If more than one reference matches your keyword or keywords, `lookbib' returns all matches. In order to use `lookbib', you must have run your refer database through the `indxbib' filter first.

You may produce "pretty" (formatted) output of bibliography lists by using the `roffbib' utility. This is usually combined with piped output from `sortbib' such as:

sortbib my_bib_database  |  roffbib
To get formatted bibliography output on a printer, you can use (CIS/CE Unix ditroff commands):
sortbib my_bib_database  |  refer -B  |  mtroff -mbib -P\fIprinter\fP
You can even extract bibliography entries from an indexed refer database and then pipe that output into the sort and print utilities:
lookbib my_bib_database  >  my_bib;  sortbib  my_bib  |  refer -B  |  mtroff -ms -P\fIprinter\fP
`lookbib' will prompt you and you must respond with the keywords you want it to search for. However, the `lookbib' output will go to stdout which is redirected to a file. that file can then be piped through the sort and print command sequence (piping directly from `lookbib' to `sortbib' won't work because `sortbib' does not take it's input from stdin). You ought to run lookbib with output to your terminal (i.e., no redirection of the output) before you use the piped commands listed above.

Once you have created one or more bibliography files and discovered how you can search through them or print out pretty, sorted, printed listings, you will want to use them for automatically extracting and citing references in your thesis document. This is what the `refer' command does. It is used as an input filter to the standard `nroff' or `troff' (or `ditroff') with the `ms' macro package. To use `refer' you must do the following: