Senior Project Report

You should probably get a hard-back composition book that will be dedicated to your senior project or thesis in which you can keep your writeup notes, as well as ideas and notes from your weekly meetings with your advisor.

I recommend the following outline as a general starting point for your writeup:

1) Problem Description and Motivation. Describe the problem in great detail; make it clear to the readers what you're trying to solve. You must also give the readers the sense that the problem is worth solving, otherwise they will stop reading.

2) Previous Work. What other solutions have been proposed or implemented for this problem? Why are they not good enough? You must prepare the readers to believe that your solution (which you have not yet said anything about) is better than these other attempts. This is also the section where you describe any work that your solution is built on top of.

3) Requirements.  Describe the process you used to gather requirements for the system.  Explain how you decided on the form the requirements take, how you gathered them, verified them, etc.  Put the finished Requirements document in the appendix.  Any prototyping should be included in this section.

4) Design. Describe the process you used to design the system.   Give an analysis of the design tradeoffs you made.  Explain your finished design in high level terms.  Put the finished Design document in the appendix.

5) Implementation. Describe the process you used to implement the system.   

6) Testing. Describe the process you used to verify that the system meets the requirements.  Explain how you decided what testing tools to use, etc.
4) Problems Encountered. Explain the problems you encountered during development. What alternatives did you consider?  How did you resolve the issue?   (As an alternate to writing a separate "problems" section, you can describe problems in each of the stages of development above).

5) Results. Describe your results. Did the project accomplish its goals? Why or why not? Which requirements are complete and which are not? Explain what obstacles prevented you from reaching the goal. As much as possible, give quantitative measures of success.

6) Future Work. What is the next stage? What didn't you get done that you should have? Now that you're done, what should the next person do to carry on the project? Frequently senior projects are a portion of a larger project, and you have to make sure that your work is understandable by the next person to work on the project.

7) Lessons Learned. Summarize any important insights you've gained from the experience of completing your senior project. In what ways are you a better computer scientist or software engineer as a result of this project? What aspects were successful and what aspects would you do differently next time?

8) Appendices. If your project involves writing some code that other people will use, you must write a user's manual. The appendix also contains your development artifacts: Requirements, Design, Implementation, Tests.  Also list the development environment and tools you used.  Include any custom scripts or tools you created.

Writeup Milestones

  1. Notebook / Brain dump
  2. Outline
  3. Complete paper
  4. Final draft
  5. Publication Version

CSc Dept Senior Project Guidelines [pdf]
How to write an abstract
Title Page Template
Library guidelines
CSc Dept Senior Project Submission Checklist
MLA Style Guide