Computer Science Master's Thesis/Project Guidelines
As you know, the master's degree requirements include either a
3-credit (1 semester) project or a 6-credit (2 semester) thesis.
This page outlines some guidelines for these.
The important question to start with is which option to pick. The
fundamental difference is that a thesis involves research while a
project does not. Since a thesis involves 2 semesters of work, the
level of effort will be twice as long.
A general guideline is that the project is a better option if your
goal is to go on to an industrial job, while a thesis is the right
choice if you are planning on going on to a PhD program (note that
research jobs generally require PhD's, whether in industry or
academia). If you are unsure of whether research is in your future,
the thesis might be a good option to decide if research is for you
since a master's thesis shares similarities to a PhD thesis, though
its much smaller in scope. In the best case, your master's thesis
will lay a foundation for your PhD thesis! As a side benefit, this
may also save you some time in your PhD program, though you
obviously don't want to do that if you decide you prefer a different
area.
Whichever option you pick, if you are graduating this semester you
should follow directions in the faq
to apply for graduation (early in the semester).
Project
The goal of a project is to develop some application of interest
to you. Most projects will involve the development of a large
piece of software, though you are not restricted to purely
software projects (e.g., embedded systems are fine). Most projects
will have many of the following characteristics:
- A level of effort comparable to what is required in a 3 credit
course. Thus, it will be substantially larger than any single
project you have written in any course.
- Regular meetings with your mentor, as decided by you and your
mentor
- Interfaces with a front end GUI
- Interfaces with a back end package (e.g., databases, domain
specific solvers)
- Documentation for the user, and if applicable developers
- Adherence to standard software engineering (SWE) guidelines
and usage of SWE tools
Although the goal of a project is not to do research, some
project tasks might involve reading research papers and
implementing ideas based on these papers.
Picking a topic/mentor:
There is no single way to pick a topic, and it
ultimately comes down to something that you and your mentor agree
on. Some models are:
- I took class X, and would like to do further work on topic T
that we learned in class: This is the best (and most common)
model. Talk to the professor and discuss your interests. Do it
soon after the semester when everything is still fresh!
- I would like to write this cool app to do Y: talk to a
professor who is likely to have an interest in the area and
discuss. You might refine your basic idea at this point. If
you're not sure who would be an appropriate mentor for that
area, ask the masters program director for suggestions.
- I am interested in learning Y: Talk to the masters program
director for suggestions on who might be an appropriate mentor.
You and your mentor should decide upon the 'rules' for the
project. While it is ultimately decided between you and your
mentor, we recommend that you write a short proposal with the
following:
- Statement of problem, including brief overview/comparison of
related work
- Your approach to implementing it, including the following:
- Platforms: Which languages/compilers, operating systems,
hardware will your project work on?
- Input format and content
- Software components that you will be writing, and
algorithms for these if applicable
- External components that you will be interfacing to
- Output format and content
- Risk plan: what are the risks in your approach that might make
your project fail, and how will you address each of these risks
(e.g., alternate approaches). The risks could be both
engineering (e.g., issues integrating external systems) and
science (e.g., scalability)
- List of deliverables: this includes software, documentation,
reports
- Management plan: when/how will you meet with your mentor? If
working with others, how will you interface with them?
- Anything else appropriate to your topic!
Timeline:
The project is a 1 semester 3-credit course, and we strongly
recommend that you have the proposal alluded to above before the
start of the semester. A sample timeline for a 15 week semester (14
+ finals week) might be (weeks in brackets, negative numbers done
before semester):
- [-1]: final version of proposal alluded to above completed and
agreed to by you and your mentor (form to
register).
- [0-12]: work with mentor to perform project
- [13-14]: submit final project to mentor, make final revisions
as needed
- [15] Administrative: Submit project to mentor and director,
mentor submits grade, mentor confirms approval to director
The deadline for everything is the end of semester. If you are
taking the project in your semester of graduation, the
administrative deadline is particularly tight.
Thesis
The goal of a thesis is to do independent research in some
[possibly interdisciplinary] subarea of computer science. It
should be in the area of your mentor, though some great theses
might integrate your background with your mentor's area; for
example solving problem X that you have experience in, using
techniques that your mentor does research on.
The final deliverable for the thesis is a document following guidelines
by the School of Arts & Sciences; in computer science,
resulting code/experiments is also often placed in a public
repository. These theses are stored in the Hunter library and
accessible around the world, so you may wish to see some other
theses.
Picking a topic/mentor:
Some common models are:
- If you already know which professors do work in the area,
talk to them and identify a topic. Most research faculty teach
courses in their research areas, and they may ask you to take
their course to gain the needed background. This means you
should take any elective courses when offered, as they might not
be offered again in time. For some topics, you may also need to
do some preliminary reading and/or work prior to proposing a
topic.
- If you have an area of interest but don't know who is an
appropriate mentor, talk to the masters program director for
suggestion.
- As with the project, thesis topics often arise from elective
courses. Take elective courses that you can see as potential
topics, and talk to the professors if you have an interest.
As the thesis is a 2 semester effort, you want to pick as soon as
possible.
You and your mentor should decide upon the goals of your thesis, and
we recommend that you write a proposal. A good proposal will save
you time in the end, as it may form a part of your final thesis.
Although proposal contents vary widely by area, one common outline
is:
- Statement of problem
- Literature review: other approaches (including their
shortcomings and benefits)
- Proposed approach: how do you solve the problem, how is it
different from what has been done, why is it likely to benefit
- Risks: What can go wrong with your approach, and how do you
propose to address it it happens?
- Evaluation: How will you evaluate the success of your
approach?
- Anything else appropriate to your topic!
You also want to come to agreement with your mentor on how/when
you will interact (possibly in the context of a larger group).
These interactions typically take the forms of individual
meetings, progress reports, research group meetings, meetings to
present/discuss research papers, etc. (all done on a regular
schedule).
Thesis Process and Timeline:
Although your mentor is the primary overseer of the thesis, you
will need to form a committee composed of:
- Mentor: Primary overseer of the thesis
- Reader: As the title suggests, this person will be a secondary
reader of your thesis. If your thesis spans two research areas,
you should make sure to pick the mentor and reader from the two
different areas. You may also choose to have >1 reader.
- Director: General overseer. If the program director is a
mentor or reader, an alternate acting director will be selected.
The administrative process is:
- Write proposal
- Perform research
- Write thesis; get preliminary approval by mentor
- Submit thesis to committee, schedule defense at least 2 weeks
later.
- Defense: present thesis to audience (committee + anybody
interested in attending). The committee decision will be either
accept, accept with minor revisions (most common if you have
been working closely with mentor), accept with major revisions,
or reject.
- Revise thesis as per above and get approval by
committee.
- Submit thesis to Hunter with committee approval
It takes time to go through all these stages! The deadline for
submitting final theses is set each year by the school of Arts
& Sciences (see guidelines).
A sample timeline for a September-May thesis might be:
- [Aug 20] perform preliminary work, write proposal under
guidance of mentor (form to register)
- [Oct 30] Finish version 1 of research, identify problems
- [Feb 15] Repeat (multiple iterations): fix problems by trying
other approaches, reading research papers solving similar
problems, etc; implement fixes and identify new problems
- [Feb 25] Generate final experimental data to show results of
evaluation (which you have been doing all along above)
- [Mar 20] Finish writing thesis, making sure to keep regular
contact with mentor. You have of course been writing little
parts all along, and your excellent proposal can be adapted to
be the first part of your thesis.
- [Apr 01] Submit thesis to committee and schedule defense
- [Apr 15] Defend thesis
- [Apr 25] Submit revised thesis to Hunter
- [Apr 26] Well-earned celebration
The above dates are just a general guideline and will of course
be decided by you/mentor (and also vary widely by area); however,
the final tasks have strict date constraints.
Unlike PhD theses, masters theses don't require published papers;
however, you should strive to publish a paper especially if you
plan on entering a PhD program. This imposes additional scheduling
constraints, as most good CS conferences have a 2 month gap
between submission and notification of acceptance - you can do the
math.