CS 461 / 462 / 463: CS Capstone Experience

Career Preparation and Software Engineering Capstone Project

Fall-Winter-Spring Quarters 2010-2011

"Given the uncertain and changing character of the world in which 2020 engineers will work, engineers will need something that cannot be described in a single word. It involves dynamism, agility, resilience, and flexibility. Not only will technology change quickly, the social-political-economic world in which engineers work will change continuously. In this context it will not be this or that particular knowledge that engineers will need but rather the ability to learn new things quickly and the ability to apply knowledge to new problems and new contexts."  
  -- National Academy of Engineering's "The Engineer of 2020" report


This page was last updated: June 11, 2010


What is this course all about?

Oregon State University's CS Capstone class is all about career preparation. Part of the class is learning project management skills, communication skills, presentation skills, and hearing guest speakers. The other part of this class is doing a major project -- this is where you come in.

The project will last roughly from mid-November to mid-May. We use the time from the start of the school year until November for project selection and developing a Requirements Document. We use the time from mid-May until the end of the academic year for project documentation and deployment.

What is the project sponsor's role in this process?

Above all, this is meant to be an excellent educational experience for our students. As part of proposing a project, we expect you to be willing to really work with the student team. They "report" to me as their "supervisor", but you are their "client", just as if they were in a real work environment. In the same way that you would interact, mentor, coach, and evaluate a contractor doing a job for you, you are expected to interact, mentor, and coach your team, and assist me with assigning grades.

You are expected to meet with them regularly, no less often than every two weeks.

What is expected of the project that I propose?

Above all, this is meant to be an excellent educational experience for our students. A project for this class is expected to be enough of a project that 2-4 students can stay busy for ~6 months of working on it parttime. It is also expected that it will actually be doable in that time frame.

Above all, this is meant to be an excellent educational experience for our students. I am hoping that each project "stretches" the students some. Please don't propose something that exactly matches an assignment they might have already done for a class. I want each team to have to go do some research and learn some new information or skillsets in order to accomplish the tasks. This is the environment of uncertainty that they will face after graduation. It might as well start here.

But, you should think of this project as a prototype. This is a senior project for which our students are not being paid, and against which they have conflicting time constraints. While our students generally do a very good job with these projects, there may be some aspects of the project that do not get completed. They might not finish all requirements. They might not know all the latest security features that needed to be included. If you chose to deploy it as-is, that is your call, but know that you are deploying a prototype.

What a project is not

Above all, this is meant to be an excellent educational experience for our students. These projects are not meant to be "grunt work", that is, please don't propose something that is so repetitive, dull, and odious that you can't get anyone else to do it. The projects are meant to be creative and interesting.

Similarly, the best educational experience for our students comes when they get to help design the project requirements with you. Presenting them with an already-defined set of requirements prevents them from experiencing the requirements-gathering part of software engineering.

Do remember, too, that these are college seniors. They are smart, they are bright, and they have taken the core CS classes so far. But, most have not taken the electives that would be especially useful in some projects, such as graphics, AI, etc.

Also, be careful about proposing a project that has some critical time constraints. Students, being what we want them to be, manage conflicting schedules. Besides your project, they also have other classes, midterms, finals, required trips to visit parents, dating, extracurricular activities, hobbies, sports, etc. If the entire U.S. banking system will collapse if certain deadlines are not met, this is perhaps not a good project for this course.

Intellectual Property

Oregon State University does not retain any IP rights for undergraduate student projects, because, well, we are not paying them. However, you are not paying them either. So, the IP is a little nebulous.

Even so, we have never had a problem with this. If you think IP is an issue for you, be sure it gets negotiated (up front!) between you and your team. In the past, most projects have agreed on a joint-sharing of the IP rights between the students on the team and the client. This seems to work well, and leaves everyone with something they can use.

What is the rest of the process?

Using the web links below, you can propose a new project or edit a proposal you have already started. You can edit and re-edit as much as you'd like. This list will be given to the students after the class starts in September. They will have the opportunity to "bid" on one or more projects. In that process, they will tell me what their top three project choices are, and why.

I make the final selections, but I try to take into account their preferences. I find I get better results this way. There will likely be more projects proposed than student teams to do them. Thus, some projects will not get staffed. So, it is a good idea to not underplay the cool-ness of your project.

Scenes from previous years' Engineering Expos:

Questions? Comments?

If you have any questions or comments on the process, don't hesitate to contact me:

Prof. Mike Bailey
Computer Science, Oregon State University
541-737-2542
mjb@cs.oregonstate.edu
http://cs.oregonstate.edu/~mjb