Apply
Graduate Programs

MSc in Computer Science (Thesis)

Program Requirements

A fully qualified student may complete a MSc thesis route by undertaking 15 credits of coursework as well as 15 credits of thesis research together with the thesis defense. Two non-credit CS seminar presentations are also required.

Courses

15 credit hours

Thesis Research (CS 901)

15 credit hours

Two CS seminar presentations (CS 900)

0 credit hours

Total:

30 credit hours

The five classes (3 credit hours each) must meet the following requirements;

  •  CS 800-level *
  •  CS 800-level *
  •  CS **
  •  CS/non-CS **
  •  CS/non-CS **
  • may not be a directed study or selected topics reading class
    ** maximum of two 700-level courses may be taken (others must be 800-level)

See the list of pre-approved non-CS classes

Note: If a student has completed 15 credit hours of CS 901, but must continue to register to remain in the MSc program, the student should register in GRST 995. See FGSR website for details.

Co-op Designation Requirements
  • Be registered full-time in the Computer Science (MSc) program
  • Have completed at least two (2) University of Regina CS 800-level courses
  • Obtained a minimum grade of 80% in the above courses
  • Have the permission of your thesis supervisor

 

Thesis

 How to write a MSc Thesis

The following guide to writing an M.Sc. thesis was prepared by Howard Hamilton and Brien Maguire, based on previous guides by Alan Mackworth (University of British Columbia) and Nick Cercone (Simon Fraser University), with their permission.

Quick Guide to the M.Sc. Thesis

An acceptable M.Sc. thesis in Computer Science should attempt to satisfy one or more of the following criteria:

  • Original research results are explained clearly and concisely.
  • The thesis explains a novel exploratory implementation or a novel empirical study whose results will be of interest to the Computer Science community in general and to a portion of the Computer Science community in particular, e.g., Artificial Intelligence, Computational Complexity, etc.
  • Novel implementation techniques are outlined, generalized, and explained.
  • Theoretical results are obtained, explained, proven, and (worst, best, average) case analysis is performed where applicable.
  • The implementation of a practical piece of nontrivial software whose availability could have some impact on the Computer Science community. Examples are a distributed file system for a mobile computing environment and a program featuring the application of artificial intelligence knowledge representation and planning techniques to intelligent computer assisted learning software.

Writing an acceptable thesis can be a painful and arduous task, especially if you have not written much before. A good methodology to follow, immediately upon completion of the required courses, is to keep a paper or electronic research notebook and commit to writing research oriented notes in it every day. From time to time, organize or reorganize your notes under headings that capture important categories of your thoughts. This journal of your research activities can serve as a very rough draft of your thesis by the time you complete your research. From these notes to a first M.Sc. thesis draft is a much less painful experience than to start a draft from scratch many months after your initial investigations. To help structure an M.Sc. thesis, the following guide may help.

One Formula for an M.Sc. Thesis for 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 endeavour 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 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.

Download example LaTeX-formatted thesis: with urthesis.sty or without