The Department of Computer Science at the University of Colorado Boulder works with corporate sponsors as well as non-profit organizations and university researchers to offer a real-world project experience as a capstone opportunity for senior Computer Science students. The competitive proposal solicitation process begins in February and continues until the beginning of the following fall semester. This document describes how the course functions, sponsor expectations, and the solicitation process.
Students in the two-semester Software Engineering Project course sequence work on teams of 5-7 students to complete sponsored projects across the two semesters, as well as study software project management during the fall. Projects are expected to provide a design experience that reinforces what students have learned through their academic work and 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, document, and deploy 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 half of students’ time will be spent on coursework where they study requirements elicitation and analysis, software process models, systems engineering, software configuration management, risk management, team work, software documentation, IP law, and ethics.
In return for a sponsor’s investment, CS facilities, students, staff, and faculty all become resources for the sponsored team. The sponsor has the opportunity to directly observe and mentor their team “in action,” solving software-based problems while learning software engineering at the same time. Sponsoring a project may be seen as an “on-the-job-training” activity and a “nine-month interview” for potential future employees.
Additionally, all CS capstone design students become familiar with the sponsoring organization as the assigned team learns about the company’s needs and goals to successfully complete the project, and share 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.
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 six-person team of CS seniors working on average 6 to 7 hours each for 13 weeks in the fall and 12-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 purpose is educational; as such, exploratory or proof-of-concept projects can be quite successful. 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 the goal is to make every project a success, the University of Colorado cannot take any responsibility for results deemed by the customer as “insufficient.”
Over the course of two semesters, a team of students are required to spend approximately ~1,500 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.
Each team is assigned one instructional staff, who spends approximately 65 person-hours advising a particular project. In addition, course 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. A list of faculty and their expertise areas is available upon request. 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.
Unless a project agreement is created based on a contract managed by the University’s Office of Contracts and Grants, all 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 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 project’s website.
All sponsors are expected to be active participants in their sponsored project. Sponsors should name a Technical Lead for the project who will be 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 software 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 most sponsors. Available support models are as follows:
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.
Project sponsor deadlines and important dates include:
Project Proposal: Prospective sponsors must submit a Notice of Intent (NOI) to propose a project before June 1 for projects starting in the fall of that year. Before Aug. 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.
Project Selection and Team Assignment: 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 project preferences, and sponsors will have an opportunity to submit a list of students 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 November 1, the signed Project Sponsor Acknowledgement, signed Student Participation Agreement, and the sponsor’s donation/contract fee are due.
Project Kickoff: The first task for all teams is to refine their understanding of the project, and the goals of their sponsor, 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. The sponsor and team shall also produce a written agreement as to the form of documents and other work products to be finished in order to satisfactorily complete the project.
Culminating Poster Session: 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.
Project Grading: 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.
Judith Stafford, Director of Senior Project
University of Colorado Boulder Department of Computer Science
1111 Engineering Drive, 430 UCB, Boulder, Colorado 80309
Dept. Phone: (303) 492-1970