Completing a Computer Science Thesis with Scott King as your Faculty Advisor/Committe Chair.

This is a description of the process for completing a thesis under my supervision.


Should I do a thesis

The first question you may want to ask is, should I do a Thesis? And what are the advantages of doing a thesis? You might even know what are the disadvantages. Here are some resonson.

  • Advantages
    • If you want to do a PhD at some point, you really need to have some research at the MS level.
    • You want to stand out to employers
    • You want to do research as a career
    • Save you time and money. If you do the the thesis you will do 2 less courses (30 SCH vs 36 SCH). Alos you will take 5393, which if you start early, will help you with writing your thesis proposal. So you will have 7 regular courses (the 4 common core) + 3 electives. Plus the 3 courses for you thesis. If you do the couses only option, you will have 5 required courses + 7 electives. This means that you have much more control over the knowledge that you gain under your MS degree.
    • You can finish your degree in one fewer semesters.
    • You will gain really good expertise in one area of CS giving you more control over what you will work on during your career. If you pick an area that is hot, it will allow you to go for a much higher paying job.
  • Disadvantages
    • There is a little more risk in delay. However, since you are taking less courses, if you are delaying, you should still graduate in the same number of semesters as those that don't do a thesis.
    • Since you are in more control, you atually will have to make more decisions, so not doing a theisis is "easier".
    • You will have to write your thesis, and writing is scary.
    • If you end up not liking your topic, you could get stuck with it, or have to spend an extra semester.

Thesis I

The Thesis I course is where you determine what you thesis will be about and propose the scope of your thesis.

The very first draft, in overleaf, within the first quarter of the semester should have:

  1. Background
    1. Problem description - What is the bigger problem you are working on with some details on why this is an important problem in general. Probably should list some goals or objectives that should be met by the solution or system. I.e. Sprockets are important for building better widgets. A better sprocket will have 1) more variety, 2) faster, 3) more acurate.
    2. Contributions - Within the bigger problem, you will be making some contributions to the state of the art, that is, what are you doing that is novel. What are these? Some possible contributions (faster, more efficient (time, space, hardware, etc.), more accurate, easier to use, less finicky, more stable, etc.) i.e. Contributiosn of this work are a better sprockets that is faster to build widegts, and ... Generally will line up with your objectives.
    3. Current state of the art (optional, needed later, good to have as soon as possible). This is the top 3-10 systems that solve the same problem as you. If you are proposing a new solution/algorithm that works on many types of problems, then you would compare to similar types of solutions.
  2. System Design
    1. A figure that gives an overview of the system design, such as the flow of data and the major pieces/modules/parts of the system. Good to show from input data to output answer. Good to have some description of each box in the figure. You can have two, one that shows how your sprocket fits within a widget, or can just be how your sprocckt solution works. The figure can include any hardware your are using or developing. But mostly you will ahve software modules. Think about a top-down desig, and list those big pieces here.
  3. Analysis
    1. This section will describe how will will analyize how your solution meets your goals or objectives. So the experiments should be designed to test those objectives/goals. i.e. To test how accutate the sprocket is, you will have expeiment A. You will describe experiment A, in a sepearate section. Just like you did in science class. Purpose, proedure, maerials neededs (datasets), etc.
    2. What metrics are you going to use to analyze your system (most likely the same or similar metrics used by the top 3-10 in 1c above).
  4. Timeline - This is a rough timeline of what you are going to do, include each box in the system design, each experiment in analysis, each draft of the write-up and each presentation. Look at the deadlines on graduate school. Defend at least 4 weeks prior to graduation. Final draft of thesis two weeks before defense. Rough final draft 4 weeks before defense.

Should determine between halfway through semester and before final draft submitted. Need to have at least two CS graduate faculty. Third member can be anyone with graduate faculty status (on campus or off). The committee should be determined before you oral propsal so that they can hear your presentation. Once the committee is determined you can fill out Form A. Form A must be filled out before you can register for Thesis II.

The final draft, in overleaf, within two weeks of the end of the semester should have:

  1. Background
    1. Problem description - What is the bigger problem you are working on with some details on why this is an important problem in general
    2. Contributions - Within the bigger problem, you will be making some contributions to the state of the art, that is, what are you doing that is novel. What are these? Some possible contributions (faster, more efficient (time, space, hardware, etc.), more accurate, easier to use, less finicky, more stable, etc.)
    3. Current state of the art (optional, needed later, good to have as soon as possible). This is the top 3-10 systems that solve the same problem as you. If you are proposing a new solution/algorithm that works on many types of problems, then you would compare to similar types of solutions.
  2. System Design
    1. A figure that gives an overview of the system design, such as the flow of data and the major pieces/modules/parts of the system. Good to show from input data to output answer.
    2. A basic overview of the system.
    3. A full description of each part/module/component of the system.
    4. A description of the platform (language, hardware, OS, etc.)
  3. Analysis
    1. What experiments are you going to run
    2. What metrics are you going to use to analyze your system (most likely the same or similar metrics used by the top 3-10 in 1c above)
    3. How are you going to
  4. Results
    1. Results from the system and any experiments already run.
  5. Conclusions
    1. If you already have some results, if not, just list your contributions. i.e. "The proposed system will make the following contributions:"
  6. Can include the updated timeline
    1. The timeline is a rough timeline of what you are going to do, include each box in the system design, each experiment in analysis, each draft of the write-up and each presentation. Look at the deadlines on graduate school website. Defend at least 4 weeks prior to graduation. Final draft of thesis two weeks before defense. Rough final draft 4 weeks before defense. These should be considered in your timeline.

(10 Minutes) Will be announced by MS program coordinator. Usually on or near Reading Day. About 1 minute per slide, so around 10 slides plus title slide. An outline similar to:

  • Title
  • Opening 1 min
    • Problem Description
    • Contribution - could be with previous
  • Background and Prior 2-3 min
    • Background - anything needed to understand problem or solutions (may not need)
    • Prior Work - others solving the same problem or using the same technique on a different problem.
  • Design 2-3 min
    • System Design
  • Analysis 2-3 min
    • Experiments/Analysis
    • Results - if have some
  • Closing 1 min
    • Conclusion if have any
    • Timeline - Note things already completed

Thesis II

The Thesis II course is where you complete your thesis work.

Typically when one talks about a thesis, they are talking about the thesis writeup. This is where you take your thesis research and put it down in written form. This is a written description of your work. The purpose of the writeup is to inform others of your work so that they can duplicate it and or learn from it. In the terms of the Thesis II class, the writeup shows the committee that your work is strong enough to award you a masters degree. The committee will use this to determine if the work is in fact publishable.

There are many ways to present the research work that you have done. You are telling a story of your work. You need a beginning, a middle and an ending. The story should make sense and flow well, and should be complete. You need to motivate why you did the work as well as explain how you did the work, and why the work is good.

When writing your thesis, you should understand how someone will read your thesis. The will probably look at your abstract, your opening, the problem statement, and your contributions, then possibly the conclusions, the results, the section titles, and then finally read portions of it. At any point they may decide they don't want to spend any more time on this work. So the things at the beginning of this list, need to get a lot of attention when you write, if you want anyone to read your work.

I typically recommend you tell the story similar to the following:

Abstract

This is one of the most important parts of your thesis. This is the hook that will draw in readers. If you don't spend much time on this, few people will read your work.

Introduction

The introduction motivates why you are doing the work. You will describe the problem you are working on, possibly the motivation for it, why it is an important problem to work on, the objectives of the work etc. The thesis of the work. That is what you will describe, demonstrate, or prove in your work. You also need to descirbe the novel contributions you make. These can be a proof, a system, an algorithm, an implementation, etc. You will often also describe what it to come in the following chapters. It is possible that you would tease out some results here (i.e. show and image with cool results).

Background and Prior work

Background contains anything needed to understand the problem or your solutions (may not need) which will include any major theory. Anything a typical CS graduate student would not be expected to be familiar with, needs to be explained.

Prior Work describes the important work by other solving the same problem or using the same technique on a different problem. Here you should describe the top 3-5 competitors to your solution and draw distinctions between the solutions. If you used method X on a new domain and no one has solved this problem before, then you would describe other uses of method X. But method X would be described as part of the background. Another possibility is that you have strung together the work of many prior works, each relating to a piece of your solution or to the theory and you would describe several. This is effectively your literature survey and you will show the audience that you are familiar with the current literature.

It could be you do this in two chapters. It might make sense to do the background theory later in the chapter where you describe your solution. Think about the story you are telling and what will make it the easiest for someone to follow what you have done.

System/Solution Design

Here you describe your solution or system or algorithm or methodology or whatever makes sense. Start with an overview that describes the parts/modules/subparts then describes each in detail possibly in their own section. Again, what makes sense for your story. The audience should have a good understanding just how you solved the problem. You would describe any math in detail, and any algorithms in detail. It is often useful in your diagram to show how data flows through the system and how it is changed/processed as this makes it easier to get a high-level view of the system. You would present algorithms in psuedocode. If you needed to put code, you might put it in an appendix. Places where you have choices (parameter values, algorhtms/methods to emply, filters, etc.) you would defend why you made those choices and describe how they affect the system. Don't keep things secret.
Analysis

Here you describe the results and analyze them. Often you will have conducted some experiments to show the effectiveness of your solution, so describe them. This is not the same as debugging the code, but you are verifying that your method/algorithm/solution actually solves your problem/meets your requirements. You will also describe the metrics that you are using, this can be done here or while you present results. Typically metrics will be quantitative as that makes it much more easy to compare with other results.

Present the results of your analysis of the data from your experiments. Typically, you would be comparing your system to prior solutions to show why yours is better. Something could be better because it takes less resources or it is more accurate. It could be simpler, more stable, etc. How your solution compares will be mention in your contributions.

It is possible that results and analsysis and experiments are in separate chapters. Again, whatever tells the best story.

Conclusions and Future Work

Typically you would give any conclusions from your results, i.e. "we have created a system that produces wonderful results that are 10% more efficient than the best system out there ...". Typically the conclusion will mirror your contributiosn but will be worded differently. You also would summarize the results or contributions or the work in general here. You will also iterate future work (potential improvements to your work). These are some good next steps that could be taken by your or someone to follow. Things that you wish you had time to complete. Things that may go in a journal version that makes the work more complete. These may be somewhat simple, or equivalent of another thesis or more.

It may be that you have these in separate chapters. Again, whatever makes sense. The conclusions shouldn't be very short, and the future work shouldn't be too short. Give some thought to things.

Here's a similiar guide from Ryerson you can look at.

Here is yet another way to look at a thesis in Computer Science.

Chapter 1 Introduction:

This chapter contains a discussion of the general area of research which you plan to explore in the thesis. It should contain a summary of the work you propose to carry out and the motivations you can cite for performing this work. Describe the general problem that you are working towards solving and the specific problem that you attempt to solve in the thesis. For example, the general problem may be finding an algorithm to help an artificial agent discover a path in a novel environment, and the specific problem may be evaluating the relative effectiveness and efficiency of five particular named approaches to finding the shortest path in a graph where each node is connected to at most four neighbours, with no knowledge of the graph except that obtained by exploration. This chapter should also explain the motivations for solving each of the general problem and your specific problem. The chapter should end with a guide to the reader on the composition and contents of the rest of the thesis, chapter by chapter. If there are various paths through the thesis, these should also be explained in Chapter 1.

Chapter 2 Limited Overview of the Field:

This chapter contains a specialized overview of that part of a particular field in which you are doing M.Sc. thesis research, for example, paramodulation techniques for automated theorem proving or bubble figure modelling strategies for animation systems. The survey should not be an exhaustive survey but rather should impose some structure on your field of research endevour and carve out your niche within the structure you impose. You should make generous use of illustrative examples and citations to current research.

Chapter 3 My Theory/Solution/Algorithm/Program:

This chapter outlines your proposed solution to the specific problem described in Chapter 1. The solution may be an extension to, an improvement of, or even a disproof of someone else's theory / solution / method / ...).

Chapter 4 Description of Implementation or Formalism:

This chapter describes your implementation or formalism. Depending on its length, it may be combined with Chapter 3. Not every thesis requires an implementation. Prototypical implementations are common and quite often acceptable although the guiding criterion is that the research problem must be clearer when you've completed your task than it was when you started!

Chapter 5 Results and Evaluation:

This chapter should present the results of your thesis. You should choose criteria by which to judge your results, for example, the adequacy, coverage, efficiency, productiveness, effectiveness, elegance, user friendliness, etc., and then clearly, honestly and fairly adjudicate your results according to fair measures and report those results. You should repeat, whenever possible, these tests against competing or previous approaches (if you are clever you will win hands down in such comparisons or such comparisons will be obviated by system differences). The competing or previous approaches you compare against must have been introduced in Chapter 2 (in fact that may be the only reason they actively appear in Chapter 2) and you should include pointers back to Chapter 2. Be honest in your evaluations. If you give other approaches the benefit of the doubt every time, and develop a superior technique, your results will be all the more impressive.

Chapter 6 Conclusions:

This chapter should summarize the achievements of your thesis and discuss their impact on the research questions you raised in Chapter 1. Use the distinctive phrasing "An original contribution of this thesis is" to identify your original contributions to research. If you solved the specific problem described in Chapter 1, you should explicitly say so here. If you did not, you should also make this clear. You should indicate open issues and directions for further or future work in this area with your estimates of relevance to the field, importance and amount of work required.

References

Complete references for all cited works. This should not be a bibliography of everything you have read in your area.

Appendices

Appendices include technical material (program listings, output, graphical plots of data, detailed tables of experimental results, detailed proofs, etc.) which would disrupt the flow of the thesis but should be made available to help explain or provide details to the curious reader.

Your oral defense needs to be scheduled for 90 minutes. It will consist of a 45 minute presentation followed by about 15 minutes of questions all open to the public. The 45 minutes includes any demos. After that, there will be a closed meeting that may include more questioning of the student. The purpose of the oral presentation is for you to 1) convince the committee that you did the work and you understand it, 2) justify choices made 3) tell the story of your contribution to the audience.

There is no one way to present your work, but the following is a good overall description of an oral presentation.

Title Slide

Your full name, your committee, and the date

Opening
25%

Discuss your problem desciption, motivation, objectives, etc., whatever makes sense for your thesis.

It is possible that you would tease out some results here (i.e. show and image or animation).
Background and Prior work
25%

Background contains anything needed to understand the problem or your solutions (may not need) which will include any major theory. Anything a typical CS graduate student would not be expected to be familiar with, needs to be explained.

Prior Work describes the important work by other solving the same problem or using the same technique on a different problem. Here you should describe the top 3-5 competitors to your solution and draw distinctions between the solutions. If you used method X on a new domain and no one has solved this problem before, then you would describe other uses of method X. But method X would be described as part of the background. Another possibility is that you have strung together the work of many prior works, each relating to a piece of your solution or to the theory and you would describe several. This is effectively your literature survey and you will show the audience that you are familiar with the current literature.

System/Solution Design
20%

Here you describe your solution. Start with an overview that describes the parts/modules/subparts then describes more detail. The audience should have a good understanding just how you solved the problem. You would describe any math in detail, and any algorithms in detail. It is often useful in your diagram to show how data flows through the system and how it is changed/processed as this makes it easier to get a high-level view of the system. Then describe each major part in detail based on how complex/important that piece is. Places where you have choices (parameter values, algorhtms/methods to emply, filters, etc.) you would defend why you made those choices. If you ran any experiments to choose paramters you would describe. An effective method is to start with some input data, say an image, and show how that image is changed/processed in each section as you describe it.
Analysis
25%

Here you describe the results and analyze them. Often you will have conducted some experiments to show the effectiveness of your solution, so describe them. This is not the same as debugging the code, but you are verifying that your method/algorithm/solution actually solves your problem/meets your requirements. You will also describe the metrics that you are using, this can be done here or while you present results. Typically metrics will be quantitative as that makes it much more easy to compare with other results.

Present the results of your analysis of the data from your experiments. Typically, you would be comparing your system to prior solutions to show why yours is better. Something could be better because it takes less resources or it is more accurate. It could be simpler, more stable, etc. How your solution compares will be mention in your contributions.

Could show a demo here.
Closing
10%

Typically you would give any conclusions from your results, i.e. "we have created a system that produces wonderful results that are 10% more efficient than the best system out there ...". Typically the conclusion will mirror your contributiosn but will be worded differently. You will also iterate future work (potential improvements to your work). This is also a good place to mention any publications resulting from this work, or potential venues to show your work is publishable.
Do your research
During Thesis I and during Thesis II. Implementation should be finished generally by halfway through the semester of Thesis II and the remainder of the time will be for experiments/results and analysis of those results
Write your thesis
Complete a writeup of your work using the guidelines. Should be finished drafts of the early chapters as soon as possible. A complete draft should be given to the committee members about two weeks before your defense, which is about four weeks prior to commencement. Generally need a draft to your chair 2 weeks before that.
Schedule defense
Set up a time and date with your committee. Do this as soon as you can, as the committee will be busy near this time of the semester. Defense must be completed four weeks month prior to graduation. You will submit Form B when the date and time has been determined. Doodle polls are a great way to do this. The defense must be completed four weeks prior to commencement.
Form B
Once the date and time are set, fill out form B and get signed. The form can be signed by hand or electronically routed by the graduate college. If you deliver it to Ronnie Emanuel, she will keep an eye on the routing.
Get a room.
If you don't have a lab to do it in, schedule a room with the CS administrative assistant as soon as you determine the date and time.
Announce defense
Send your name, the title, abstract, date, time, and location to the CS administrative assistant (Margo.Carrasco at tamucc.edu) about 7-10 days prior to the defense so notice of the defense can be sent out to faculty and students of the program.
Defend
Sucessfully defend your work. Must be completed four weeks prior to commencement. This is done as a 45 minute public oral presentation followed by up to 45 minutes of questions (both public and private).
Final draft
Complete all changes to your thesis writeup your committee requests. Two weeks prior to commencement.
Form C
This should be entirely filled out before the defense. The form will not be signed until the final version of your thesis and journal writeup are submitted. The form can be signed by hand or electronically routed by the graduate college.
Electronic Submission
Complete all formatting changes required by the graduate college and submit final complete thesis to the online system.
Journal version
Submit a journal version of your work by the last day of classes, the article should be completed in overleaf.com. You will take your Thesis and mostly just reformat by changing the style file and adjusting formatting. May need to shorten some sections.
Commencement
Go to graduation and celebrate.

Thesis Checklist/Timeline

Completing a thesis is done over the course of two semesters taking COSC 5389 in the first and COSC 5399 in the second. If you fail to complete the work required on one of those course, you will have to repeat that course.

Discuss a potential project
Meet with me to see if there is intersest with both of us for you to do a thesis under my supervision, the semester before you will take thesis I, two semesters before you will graduate.
Register for COSC 5398 Thesis I
Fill out the form to register for COSC 5398 Thesis I. It will have your name and a# and my name as your faculty advisor/committee chair. The form can be found in the CS office and you will give it to the admin. They will either permit you into a COSC 5398 section that I am the instructor of, or one will be created for you with me as the instructor and you will be given permission to register for it. Once permissions are set register for the course
Schedule weekly meetings
We will be having weekly meetings for supervision and to discuss progress and problems. This should be done either before the semester starts or in the first week.
First draft of Propsoal
Turn in your first draft of your proposal. Should be doen by about 1 month prior to reading day.
Determine Committee
We will work together to determine who will be on your committee. You will ask them if they are intersted.
Final Draft of Propsoal
This is the final draft of the proposal due at the end of Thesis I
Oral Propsoal Defense
This is a ten minute oral public presentaiton on your proposal, scheduled by the MS program coordinator. Generally on reading day.
Register for Thesis II
Fill out Form A and the Thesis II form (in main CS office) and turn them in to the department admin. A COSC 5399 section will be created and you will be permitted in to the course. Form A will then be taken to the academic advisor (Ronnie Emanuel for routing to the Graduate College). You can then register for COSC 5399.
Do your research
During Thesis I and during Thesis II. Implementation should be finished generally by halfway through the semester of Thesis II and the remainder of the time will be for experiments/results and analysis of those results
Write your thesis
Complete a writeup of your work using the guidelines. Should be finished drafts of the early chapters as soon as possible. A complete draft should be given to the committee members about two weeks before your defense, which is about four weeks prior to commencement. Generally need a draft to your chair 2 weeks before that, which is 8 weeks befroe graduation!.
Schedule defense
Set up a time and date with your committee. Do this as soon as you can, as the committee will be busy near this time of the semester. You will submit Form B when the date and time has been determined. When2meet.com or Doodle.com polls are a great way to do this, generally starting with your and my shedules. The defense must be completed four weeks prior to commencement.
Form B
Once the date and time are set, fill out form B and get signed. The form can be signed by hand or electronically routed by the graduate college. If you deliver it to Ronnie Emanuel, she will keep an eye on the routing.
Get a room.
If you don't have a lab to do it in, schedule a room with the CS administrative assistant as soon as you determine the date and time.
Announce defense
Send your name, the title, abstract, date, time, and location to the CS administrative assistant (Margo.Carrasco at tamucc.edu) about 7-10 days prior to the defense so notice of the defense can be sent out to faculty and students of the program.
Defend
Sucessfully defend your work. Must be completed four weeks prior to commencement. This is done as a 45 minute public oral presentation followed by up to 45 minutes of questions (both public and private).
Final draft
Complete all changes to your thesis writeup your committee requests. Two weeks prior to commencement.
Form C
This should be entirely filled out before the defense. The form will not be signed until the final version of your thesis and journal writeup are submitted. The form can be signed by hand or electronically routed by the graduate college.
Electronic Submission
Complete all formatting changes required by the graduate college and submit final complete thesis to the online system.
Journal version

Submit a journal version of your work by the last day of classes, the article should be completed in overleaf.com. You will take your Thesis and mostly just reformat by changing the style file and adjusting formatting. May need to shorten some sections.

Commencement
Go to graduation and celebrate.