A critical part of the senior experience is a choice of an appropriate topic. A thesis topic should provide opportunities for a student to explore material beyond that offered in regular courses, without requiring a multi-year effort. A variety of references must be available, including some accessible at the senior undergraduate level (such as a textbook or article in journal meant for the computer science audience). Most importantly, the topic should be interesting to the student and (to allow adequate advising) familiar to the faculty member. The search for a topic will often produce other valuable information about topics beyond the scope of an undergraduate thesis. It may be useful to collect a list of possible graduate schools and graduate school topics while identifying an undergraduate thesis topic.
Topics will be discussed during the initial meeting(s) of senior seminar, but students are encouraged to think about possible topics in prior years, and may wish to start by looking at the thesis advising topics documents posted by faculty [ Dougherty/ Friedler/ Lindell/ Wonnacott ]. Students with a strong interest in a topic not on those lists should start a discussion with any Haverford CS faculty member; it is possible to have a thesis advisor from another department or school, but this must be approved and overseen by a Haverford CS faculty member.
Once the general topic or topics have been identified, the topic can be refined, and the reading list chosen, through a combination of discussions with faculty and science library staff as well as browsing in the science library and online libraries of the ACM and IEEE. Identification and refinement of a topic may take several weeks.
These should be the result of detailed discussions between you and your advisor.
The proposal should identify the topic to be explored and set forth the way in which the thesis will address this topic (i.e., for a classic system/algorithm thesis, the proposal should clearly state the problem(s) being solved, including the domain, definition of correctness, and qualities such as performance that are used to evaluate/compare solutions; and the proposal would also identify which solution(s) will be discussed). The proposal should not get into great techincal detail, especially when it comes to specific algorithms/systems.
The bibliography should indicate the major sources upon which your paper will be based. At least one should be easily accessible at the senior undergraduate level (e.g. a textbook or survey article), though it is also fine to list one or two detailed research papers on which you'll need faculty help. This list can be supplemented later, of course, but enough should be listed in this list to demonstrate the viability of your project.
The chapter outline should be a detailed elaboration of the project description submitted earlier. Ideally it should list chapters, sections, subsections, etc., and you can gradually fill these with text as the paper develops. A good outline provides an important basis for evaluating your progress and deciding whether adjustments need to be made.
These first written chapters should provide your advisor with an example of your writing ability. During the writing of these chapters, you should also expect to master any new word-processing or other tools you will need for the full paper, including tools you will use for automatic bibliography generation.
Your advisor will provide detailed feedback on these documents, and also clearly state whether these documents by themselves meet the standard for a 2.0 for the written component of your senior thesis.
The rough draft represents a major effort to put a substantial amount on paper. It probably will not include everything you will put in the final draft, but it should include all sections in enough detail for your advisor to give you good feedback.
Your advisor will provide comments on your paper's scope and detail in the following days, with full feedback possibly completed by email by the Tuesday of break (unless you have agreed on another arrangement).
The next few weeks should be devoted to extensive textual revision, in consultation with your advisor. The semi-final draft should be the first of several iterations during this period; you and your advisor should exchange as many drafts as possible. Remember that it may take your advisor up to a week to read your draft carefully.
It will be read by your advisor and at least one other department member, and returned with comments.
Your presentation should provide an overview of the main topics in your paper, giving detail on perhaps one of the very most interesting points. Do not try to communicate everything in your paper, but think of this talk as an advertisement to raise interest in reading your paper, making clear the breadth and depth of the paper itself. It is often good to focus on the key examples from your paper, as these will be the easiest things for the audience to follow.
After your talk, students and faculty will be invited to ask friendly questions about your work and the general topic thereof.