Melding Academia and Corporate
You are invited to participate in CS210: Project-Based Computer Science Innovation & Development. In this two-quarter, upper level depth sequence, you'll work with Stanford faculty, students, staff and their extraordinary network. The course emphasizes the spirit of innovation and excellence that combine so powerfully at Stanford and the larger Silicon Valley to produce many of today's foremost computer science driven technologies. In this course, Stanford students are introduced to the tools, methods and strategies needed to form and successfully manage software design and development projects to the standards of corporate partners. Our students are highly skilled at navigating the entire software design and development process, from conceptual brainstorming to comprehensive documentation and development. In one two-quarter project, student teams typically put in well over a person-year (3-5 students, 35% effort level) in addition to significant contributions from faculty and other aspects of the Stanford network.
Jay Borenstein (CS) instructs the course and is aided by Masters and PhD graduate students as teaching assistants. Before joining Stanford, Jay was the founder and CEO of Integration Appliance (www.intapp.com). The course also leverages Jay's and Stanford's extensive network to bring in industry leaders and visionaries as guest lecturers. Additionally, when practical, teams are assigned an industry coach - volunteers who typically have graduated from the Stanford CS department and have between five and thirty years of professional experience with vast networks in the Bay Area and the global technical community. In short, you will be working with an extraordinary team.
Successful Project Features
Projects for 210 are suggested by industry partners and refined through consultation with the teaching team. Successful projects commonly focus on new-product-related innovation challenges driven by real-world issues that are of vital interest to the company. They provide students considerable freedom of action and decision-making authority while challenging their creative and intellectual abilities. Projects should be conceptually and technically demanding while manageable in size. The best projects are the result of close and open collaboration between the student team, company liaison, and the teaching team.
Real Software, Real KnowledgeStudent teams drive the project forward implementing an agile development philosophy that emphasizes advancing products through an aggressive design-development-release cycle. In every step of the process, the work product becomes more refined and more real. At the end of the project, student teams present their fully functional final prototype at the Stanford Software Faire in June. Concurrently, actions and ideas are continuously documented and summarized at the end of each quarter in a comprehensive document. The first report (delivered in March) defines client-customer objectives as well as specific functionality or performance targets. It is also used to capture benchmarking from the quarter and to highlight proposed solutions. The second report (delivered in June) documents project realization, outcome characterization, and includes testing metrics. To quote Donald Knuth (CS), the goal is to "capture the intelligence of the design, not just the outcome of the design."
The academic and corporate success of a project in CS210 depends greatly on the existence of an effective company liaison. It is important that the liaison is willing and able to meet with the student team regularly, serve as the point-of-contact for corporate expertise, and has project background information to assist in developing design requirements and concepts. Liaisons should plan on a face-to-face meeting with the student team during the initial stages of the project in January/February and at least two other meetings on campus or at company sites over the course of the project. We also recommend weekly communication via email, telephone and/or videoconference.