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

BART: Analyzing Station Sign Information

Students built data processing and analysis tools to help the Bay Area Rapid Transit (BART) staff and engineers determine whether or not BART’s DSS signage system displays accurate data for passengers waiting for delayed trains. The program takes data from logs of DSS signage system displays, feeds it into a database, and allows BART analysts to take a closer look at cases where inaccurate delay data occur and what specific trains and platforms are susceptible to these issues.

Showcase: Automated Portfolios For Coders

Students worked on overall application design, user interfaces, and feature enhancements for Showcase, a social network for the tech community. Showcase provides coders, data scientists, and product designers with a platform to share their top projects in a portfolio with potential employers.

Fly-By Street-View ResearchTool

Students developed Fly-By, a network application that facilitates the time-consuming and labor-intensive process of collecting and identifying visual information on a street. Leveraging Google maps, Fly-By lets map developers automatically collect all the picture information on a street and then, through its connection with the One Hundred Feet Deep Learning model, predict the specified objects in the picture.


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.

FaceX: Facial Recognition System

Students designed FaceX, an application that performs facial recognition of pictures taken by a camera module connected to a Raspberry Pi, implementing a keyless entry system that can be used for a home, shelter, facility, or other restricted-access environment.

EmCard+: Increasing Allergy Awareness

Students developed EmCard+, a mobile application that can be used to let others know about allergy issues a child may have. Parents/guardians create an emergency card for a child in their care and then share the card with others. EmCard data include emergency contacts, allergies, and aversions, along with fun things the child likes to do. This application can reduce the possibility of unexpected allergic reactions for a child in someone else’s care by putting vital information at the caregiver’s fingertips.

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.

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.

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.