Capstone Project

The Capstone course gives students the opportunity to work on real-world projects with tech companies in the Bay Area and Silicon Valley, or with an academic organization on a research project. The course is similar to an internship, but with the added bonus of academic guidance and access to the department’s resources. It’s a great way for students to apply classroom knowledge in a practical setting, and to make contacts in the industry as graduation nears.

Capstone projects begin in August and January. At the beginning of the semester, potential sponsors pitch projects. Students form teams and begin the software development process. Guided by both faculty and the industry sponsors, students work on their capstone project 12-20 hours a week for 15 weeks. Students often express how much they learn in this intense course, and many obtain jobs with the company they work with or from contacts they make. For example, many of our students have been hired as engineers following their capstone projects with SnapLogic.

Our Projects


Students have worked on several projects with the Integration Platform Service company SnapLogic. For one project, students developed an improved monitoring system for the company to collect server and application metric data and use it for real-time batch analytics. On another project, students developed an Internet of Things (IoT) prototype based on Raspberry Pi computers and applied machine learning algorithms to activity data.

Interactive Visualization of Large Time-Series Data

Students researched the use of a sunburst-style representation for visualizing large time series data as well as the benefits of user-directed exploration for visualizing large data. The team worked primarily with rainfall data from collaborators in Ecuador and  power data from the Lawrence Berkeley National Labs.

Kinetech Arts

Students developed a mobile app and website to track users’ positions inside a building using Bluetooth-based Estimote beacons.

UCSF Medical Center

Students developed game-like Kinect software that allows patients suffering from stroke, back pain, sports injuries, and other conditions to do physical therapy at home.

Langwich: Design and Implementation of a Functional Style Language

Students developed multiple clear and simple implementations of a single functional-style language to help future students understand programming language techniques.

MIT App Inventor

Students developed extensions to MIT App Inventor, a visual blocks language that allows beginners to learn coding by programming phones and tablets. They created a community gallery for sharing apps and  an extension to allow other students to transition to Java coding from App Inventor.

Home Energy Applications

To promote more efficient home energy usage, students implemented an end-to-end infrastructure that collects appliance-specific energy usage data; iPhone and Android applications to view home energy data; an automated lighting control infrastructure; and an iPhone application to correlate activities with energy usage.