Senior Projects is the capstone course in the Computer Sciences curriculum at the University of Colorado Boulder. Undergraduates intending to graduate with a Bachelor of Science in Computer Sciences (CS) from the University of Colorado Boulder are required to take a capstone course. While a capstone experience is required by all accredited engineering programs, the CS Department offers a rigorous two-semester course where students move through a requirements-based software engineering process from concept to system development, test, and validation of a real-world project, which is sponsored by industry, research lab, or University faculty/staff meember. Additionally, students study Software Project Management during the first semester of Senior Project. This course sequence includes:
This document provides guidelines for the scope of a typical Computer Sciences (CS) senior software engineering project along with sponsor benefits and expectations. Examples of projects from previous years can be viewed at the Senior Design Projects website.
2. Senior Projects Course Purpose
Projects are expected to provide a design experience that allows for creative latitude in arriving at a final design and implementation. The projects begin with an initial project scoping phase that will involve initial requirements gathering sufficient to allow the team to identify the best software process model to apply to the problem. Students will make use of the technical and design skills developed throughout the undergraduate Computer Science curriculum to satisfy the sponsor’s objectives. Project teams will design, develop, test, and document the system to meet the sponsor’s requirements.
Proposed sponsored projects should embody the objectives of the course, which are:
All projects are expected to require students to:
Sponsors must be aware that during the first semester approximately ½ of students’ time will be spent on course work where they will study requirements elicitation and analysis, software process models, systems engineering, software configuration management, risk management, team work, software documentation, and ethics.
3. What is Expected from Project Sponsors
Corporations, small businesses, national laboratories, R&D organizations, non-profit organizations and faculty and staff members of the University of Colorado may become project sponsors. When defining a project, sponsors should understand that the purpose of the CS senior projects curriculum is to provide undergraduate students with a first-hand software development experience carried out by largely self-directed teams, employing fundamental software engineering principles to make design choices, apply state of the art programming languages and technologies, and to understand the software development process they follow. All project concepts should have a clear purpose with a recognized value to industry or society with specific functional objectives, yet provide significant design challenges that allow students to explore various design solutions and make design choices based on sound engineering reasoning. At the same time, projects must have a level of complexity that is compatible with a five-person team of CS seniors working on average 8 hours each for 13 weeks in the fall and 14 hours each for 15 weeks in the spring.
Within the framework of the course, all projects are conducted on a best effort basis by students, guided by staff and in close collaboration with the sponsor. The sponsor should understand that our primary goal is the education of computer science students, and as such exploratory or proof-of-concept projects can be quite successful as an undergraduate capstone senior project. Projects that are in the customer’s critical path cannot be accepted as Senior Design projects unless customer takes full responsibility for the outcome. “Good-to-have” results and “test-of-concept” studies are more likely to be suitable. Although faculty and students goal is make every project a success, the University of Colorado cannot take any responsibility for results deemed by the customer as “insufficient.”
According to the Project Sponsor Agreement, any Intellectual Property (IP) rights resulting from the supported senior design project remains with the inventor(s), i.e. the students. All materials, software packages, etc. purchased to support the project will remain the property of the CS Department for possible future use in another project or in class. Projects must be conceived and scoped so that minimum success does not depend on receipt of software or other materials that may or may not be available. Project descriptions and results are posted openly on the projects website.
4. What is Expected from Project Sponsors
All sponsors are expected to become active participants in their sponsored project. Sponsors should name a Technical Lead for the project who is able to dedicate at least one hour per week to the project. Close contact with the team during the early project definition phase is critical for project success. Frequency of sponsor-team interactions will vary according to the process model being used, and is jointly scheduled by the sponsor and team. The course instructors are to be cc’d on all team contact. In addition, the participation in the course requires the following financial commitment from all sponsors who would like to participate in a two-semester senior design project:
1) Industrial Sponsors: A $7,000 philanthropic donation made payable to the University of Colorado Foundation, to provide support to the University of Colorado Boulder Department of Computer Science Senior Projects. This donation supports the Senior Projects class infrastructure and associated costs (staff salary, software, computer labs, materials, supplies, disposables, posters, etc.).
2) University of Colorado Community and Non-Profit Organizations: Members of these groups may apply to the Director of Senior Projects for a donation reduction or exemption.
5. Sponsor Benefits- University Resources
In return for a sponsors investment, CS facilities, students, staff, and faculty all become resources for the sponsor. The sponsor has the opportunity to directly observe and mentor their team of five students “in action”, solving software-based problems while learning software engineering at the same time. Sponsoring a project may be seen as a “on-the-job-training” activity and a “9 month interview” for potential future employees. Additionally, all CS capstone design students become familiar with the sponsoring organization as they the assigned team learns about the companies’ needs and goals to successfully complete the project, and share’s this information to the entire class. Class presentations are made at the beginning, middle, and end of each semester to give the students an opportunity to practice their oral presentation skills and to gain feedback from other members of the class who may have ideas for how to approach the problem. This is great exposure for companies for future hiring of students, and interactions with faculty.
Over the course of two semesters, a team of five students are required to spend at least 1570 person-hours working on their senior project. Teams are required to have a team Organization Chart, which details the responsibilities of individual students. Each student must assume at least one type of leadership position. Since the teams are small, individual students must assume multiple technical functions. All senior design teams have access to the Computer Science equipment and software packages.
Each team is assigned one instructional staff, who spends about 65 person-hours advising a particular project. In addition, faculty and staff members each spend an additional 15-20 hours during review and evaluations of all projects. Computer Science Department faculty support senior design teams on project-related questions, providing expertise and experience for the student and sponsor to draw upon. Students are also encouraged to seek out other sources of expertise, information, and advice from industry and the computer science literature to support their project development. Teams work with their sponsors to identify the documentation and other materials needed to satisfy the project goals. The form and degree of detail of various documents including requirements statements, architectural and detailed design, test plans will vary depending on the project and the process model being used.
6. Sponsor Participation Timeline and Overview
Prospective sponsors must submit a Notice of Intent (NOI) to submit a project before June 1 for all projects starting in the fall of that year. Before August 15, the sponsor should also provide a one to two page written project definition, as well as an optional video project overview, to the CS Senior Projects Director for posting on an internal website for student review. More detailed requirements will be developed with the students after team assignments are finalized. During the two-semester course, the sponsor has many opportunities to mentor and train their project team.
During the first week of the fall semester (beginning in late August) students will familiarize themselves with proposed sponsor project ideas. A Project Fair is held, usually the first Tuesday evening in September. Students will come to the Project Fair with their resume, and ready to meet project sponsors to ask questions and find out more details about the projects of interest to them. After the Project Fair, students will submit a list of five top project preferences, and sponsors will have an opportunity to submit a list of students that they are interested in. The Senior Project instructional staff will use this student and sponsor input to create teams and assign projects. Once the teams have been formed, the student team will meet with the corresponding project sponsor in order to gain a deeper understanding of the project, sponsor goals, and confirm that the project, sponsor, and team are a good match. By October 1, the signed Project Sponsor Agreement, signed Student Participation Agreement, and the sponsor’s donation are due.
The first task for all teams is to refine their understanding of the project, and the goals of their sponsor so to perform an initial risk evaluation, and identify the best software process model to use as a frame for developing the software. With these in place, teams will proceed to identify tools and technologies appropriate for the project and work with the sponsor to identify materials that constitute a complete project as appropriate for that specific project and according to process model being used. By the end of the fall semester, the sponsor and team shall produce a written agreement on the scope of the project. Early in the spring semester, the sponsor and team shall produce a written agreement as to the form of documents and other work to be finished in order to satisfactorily complete the project..
Teams present their project to the public in the form of a poster/demo presentation during the Computer Science Expo at the end of April. Sponsors should attend the Expo. Teams give six presentations to the class at various points throughout the year and are subject to three reviews by the Project Review Board. Sponsors are welcome to attend any, or all, of these meetings. In addition to these sponsor-team interactions, sponsors are required to complete a team evaluation at the end of both fall and spring semesters, and are asked to provide mid-semester feedback in the fall. The mid-semester feedback is for the team’s informational purposes only. The end of semester evaluation forms will be used as the basis for the students’ course grades, and will be adjusted by the instructors according to peer evaluations and instructor observations to produce individual project grades.
In summary, project sponsors are expected to:
Judith Stafford, Director of Senior Project
University of Colorado Boulder
Department of Computer Science
1111 Engineering Drive
Boulder, Colorado 80309
Phone: (303) 492-1970