The Computer Science Department encourages all students who have done well in the major to consider doing an honors thesis. While the experience of doing independent research in computer science would be valuable to all majors, it is especially important to those planning to pursue graduate school in computer science or seeking employment in the computing field. Doing an honors thesis gives one the opportunity to get the “feel” of doing research, and provides important experience for graduate school or future employment. Both graduate schools and employers seek out students who have worked independently, since it provides students both the opportunity to learn one area in more depth than would normally be possible, and evidence that a student can successfully accomplish a major project.
Students are advised to consult individual faculty about the projects that they might work on well in advance of their senior year, since specific research projects may require prior election of relevant courses. Williams has computer science faculty with interests in a broad array of subdisciplines of computer science so any student should be able to find a faculty member with compatible interests with whom to work. Most honors projects involve work on problems closely related to their faculty advisor’s own research projects, so students are strongly advised to talk to various members of the department about their own research, and see what projects might be available. More details on the requirements for honors can be found both here and in the college catalog.
Of course research experience is also possible without electing to write an honors thesis. Independent study courses are an attractive alternative for many students. As a rule, independent study courses are not offered on material covered in existing courses, but independent study may be pursued in more advanced topics in areas covered in existing courses or in fields not currently in our curriculum. Again, individual faculty should be consulted as to the possibilities.
In recent years, students have pursued honors theses or independent study in such areas as algorithm design, automatic theorem proving, program verification, the semantics of programming languages, the design of visual and object-oriented programming languages, parallel computation, computational geometry, machine learning, graph drawing, compiler optimization, and three-dimensional image rendering. This list provides just a sampling of the possibilities.
Williams has recently been able to provide a number of summer positions for students wishing to assist faculty in their research. In recent summers 50 to 100 students have been employed as research assistants in the sciences. Student research assistants are provided with a stipend, and are able to obtain reduced rates for room and board at the college for the summer. These research assistant positions make it possible for many students to get a head start on an honors thesis. Others use this as an opportunity to get a more intense introduction to their intended major.
For more specific information about research opportunities in the department, please see our research application forms.