The senior capstone course provides computer science majors the opportunity to integrate the knowledge that they have gained from across the curriculum. Students are encouraged to work in teams, and can pursue either an applied or theory project. Students choosing applied projects participate in the identification of a problem, develop a project proposal outlining an approach to the problem's solution, implement the proposed solution, and test or evaluate the result. Students choosing a theory project conduct original research (e.g., develop a new algorithm) and evaluate its strengths and limitations. Regardless of the choice of project, students document their work in the form of written reports and oral presentations.