The Best Class Ever

The Teaching Team

Jay Borenstein
Jay Borenstein

Jay Borenstein instructs the course 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.

Melding Academia and Corporate

Gates Building
Gates Building – CS Department

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.

Successful Project Features

Code Snippet
Code Snippet – Written in Ruby

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 Knowledge

Student 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 Fair 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."

Liaison Guidelines

Code Snippet
Liaison Meeting – Discussing project direction

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.

Company Financial Commitment

For one two-quarter project, the financial commitment is $75,000 which supports Stanford University. The support covers all costs and includes university infrastructure charges, teaching team time, laboratory services, travel, telecommunication services and any prototype fabrication requirements. The exact terms and routing of payments are negotiated on a flexible case-by-case basis.

Project Proposal Timing

In order to ensure a project slot in the course, it's requested that you confirm participation in CS210 for the upcoming academic year during the summer. Teams are reserved on a first-come, first-served basis after we have received a letter of intent. You will then receive a 1-page gift letter form for making a gift in support of the course. Your support confirms a project in CS210. After confirmation of the project, please submit a 1-4 page project abstract as soon as possible and no later than the end of December.

If you would like to begin the project development process, please contact the 210 instructor, Jay Borenstein, at borenstein@cs.stanford.edu or +1 (650) 736-8242