A project or thesis prospectus is a good way (a) to clarify your own thinking and (b) to put down in writing your agreement with your advisor about what you both expect from your work.
Your MS project or thesis is your work. It is not your advisor's work, and it is not simply the product of your carrying out your advisor's directions. It is your responsibility to define it and to explain why it is worthy of an MS project or thesis. It is perhaps the distinguishing characteristic of an MS project or thesis that it demonstrates your ability to do significant, advanced work on your own. You will be working with an advisor, and your advisor will be guiding you in your work. But in the end, your project or thesis is your work, and it should illustrate your individual competencies.
Your prospectus need not be wordy or flowery. If you are writing a software application, there is no need to say, for example, that because it will be possible to use your application in useful, important, or significant ways, that it's worth spending time to write it. Just explain what the application will do. On the other hand, if you are concerned that a reader may wonder why anyone would bother to write such an application at all, then it may make sense to provide some motivation for it. In most cases, that shouldn't be necessary.
Be clear and concise. Look at the points described below and respond to each of them simply and directly. An easy way to proceed is to treat the following as a form and to provide the information requested. See the discussion below for what each section is asking of you.
Prospectus page format
You should be able to cut and paste the following to your prospectus page. Insert your title. Select the project or thesis sections as appropriate, and remove the (Project) or (Thesis) annotations. If you (or your advisor) feels uncomfortable making your project or thesis plans publicly visible before your work is complete, you may write your prospectus as a document and submit it via CSNS. In that case, put a generic summary on your wiki prospectus page.
<p style = "font-size: 18pt; text-align: center;">Project or Thesis: Insert your title</p>
==What I am planning to accomplish==
===(Project) Brief Project specification===
===(Project) High level architecture===
===(Thesis) Issues to be investigated===
===(Thesis) Annotated table of contents===
==Why this is academically interesting==
===Why this is MS-level work===
===(Project) Platforms to be used and what I will add to each===
===(Project) Available platforms I am not using and why===
===(Project which re-implements an open source system) Why I am re-implementing an existing system===
===Anticipated approach to each challenge===
==What I bring to this work==
===My relevant background and experience ([[/CS 590/]])===
===What I find interesting about this work===
===How this work goes beyond my experience and course work===
Project or thesis prospectus
What you are planning to accomplish
Describe what you intend to produce. A useful way to distinguish between a project and a thesis is that with a project, the system you build is the primary product; the project report is secondary. With a thesis, the thesis itself is the primary product. Code you write serves as a proof-of-concept or as examples that supplement or illustrate the thesis.
Whether you are planning to do a project or a thesis, use this section to describe what you will have produced when you are finished. This is the most important section of the prospectus. Someone should be able to read this section alone and understand what you plan to do.
- (Project) Provide
- a brief but meaningful specification of the system you plan to build and
- a feasibility-level description of your operational architecture. The description should be at the level of a UML 2.0 component diagram (or see here, here, here, here, here, or here) and should include brief descriptions of
- the major components of the system (both the ones you will write and the platforms, frameworks, and pre-existing components you are planning to use),
- what their functions will be, and
- how they are expected to interact.
- (Thesis) Provide
- a concise statement of the issue(s) you will be examining and the question(s) you will be attempting to answer.
- an annotated (if tentative) table of contents which shows how you plan to explore those issues. The annotations should say what you expect each section to contribute toward the overall work.
Why this is academically interesting and challenging work
- Describe the audience for your product. Whom (besides your mother) do you hope will look up your work in the library or on the net, and what do you want them to get from it?
- (Project) You may have two audiences: people who will be using your work and people who are interested in your project's design. Please indicate in which way(s) the audience(s) you cite will be interested in your work. If you say that at least a portion of your audience is interested in your work for its design qualities, you are claiming that your design has some value on its own, and you are committing yourself to providing a full and clear explanation of your design as part of your final report.
- (Thesis) Describe the audience who you expect will be interested in the questions you are exploring.
- Explain how the proposed work demonstrates MS-level competence. What intellectual challenges does this work pose?
- (Project) Explain how the proposed work goes beyond a class project. Distinguish between the intellectual content of your work and the "plumbing" you will build to make it run. Do not write something like, "This is MS-level work because it involves a lot of difficult algorithms." If you expect to be spending a significant portion of your time developing algorithms, explain the issues you will be facing and why they are difficult.
- Intellectual content typically results from new algorithms or new levels of abstraction, e.g., in which mechanisms that are typically implicit and hard-wired have been factored out and made explicit and more declarative. For example, many systems use forms. Most include some validation checks. Both the forms and the validation checks are typically hard-wired into the system. It would be intellectually interesting if your project allowed users to define their own forms and to specify validation and consistency checks without having to write code.
- Plumbing is the use of generic frameworks like Spring — unless you are using them in an innovative way or your specific use of them is the primary focus of your project. It may be that your project is intended purely to provide a service, e.g., for the department, that it is nothing but plumbing, and that it does not involve any new abstractions. In that case, say so and explain how your use of the plumbing itself is at a level of sophistication that it demonstrates MS-level work.
- Whether or not your use of specific technologies is considered MS level may depend on when you do your work. For example, a project that makes extensive use of AJAX may qualify as MS level in 2005 and 2006 but probably not in 2010.
- (Thesis) Explain what your work will add to the world's body of knowledge.
Previous work in this area
- Provide an overview of the literature to the extent that you are familiar with it and a list of further readings you intend to examine.
- (Project) Discuss the framework(s) or other platform(s) that are relevant to this work, the platforms you will be using, and what you expect to add to these platforms to implement your project. An overview of this information should be presented in your feasibility architecture.
- If there are platforms that are relevant to your project and you are not using them, explain why not.
- If you are planning to implement a system that has been implemented elsewhere, discuss how your version will be different or why it is academically interesting to reproduce work that has already been done.
What you anticipate to be the most difficult challenge(s) you will face
- Describe what you expect to be the most challenging aspect/s of this work?
- Explain how do you plan to overcome this/these challenge/s?
Your relationship to this work
- Discuss how your experience (e.g., courses taken, projects done, work experience) prepares you to do this work. Include a pointer to your CS 590 page.
- Discuss why given your background this work is interesting to you and why you have chosen to do it. This is a purely personal matter. Feel free to include as much or as little about your own interests and motivations as you feel comfortable sharing.
- Explain why this is not just more of the same sort of work you have already done or material that is covered in courses.
- If you are doing a project, describe what you expect to know and what you will be able to do after completing this work that you don't know and can't do now. (Don't forget that CS 491ab already required you to do a significant project on your own.)
- If you are doing a thesis, discuss how you expect to grow intellectually by doing this work.