The Capstone course (ICS 496) provides seniors with an opportunity to propose, plan, execute, and present a software development project. In this course, students will put into practice the skills they have learned during their educational journey in the ICS department.

Capstone is optional for ICS students who entered the major before Fall 2020. Students entering the BS CS (General) major in Fall 2020 and after are required to complete a capstone project in their senior year. Students in the Security Science track or Data Science track are not required to take the capstone course.

Capstone projects are preferably team projects, but at this time (due to COVID) individual projects may also be pursued. Projects can be self-generated or chosen from opportunities provided by faculty mentors. Students may also receive credit for a capstone project if they are engaged in a software development effort as part of an internship or other engagement with a company.

Students engaged in the capstone project are expected to develop and present a project plan with tasks, dates and milestones; provide periodic progress reports; prepare a summary video and poster; and ultimately participate in a presentation day that is open to the ICS community and interested community members. The capstone is largely student-driven. You must demonstrate that you can plan and guide a project to completion.

How to get Started for Spring 2021

The CRN for the Capstone course (ICS 496) does not appear on the registration system. Upon approval of your project, you will receive a CRN so that you can register. You should work with a faculty member to develop your project. (The Capstone Administrators, Scott Robertson and Guylaine Poisson, can help you find a faculty mentor if necessary.)

You should line up a faculty mentor and register for the course before the beginning of the Spring semester.

  • If you already have a project idea: Contact a faculty member to discuss your idea. Choose a faculty member who has similar interests. It would be best to have a small group (2-4 people), but individuals are welcome to pitch their ideas as well. You may propose a project that you are already working on, or plan to work on, with a faculty mentor.
  • If you don’t have a project idea yet: Look at the ideas below and contact the faculty member directly about doing a Capstone Project.

Capstone ideas from faculty members:

  1.  ML as a Service: implementing a back-end to facilitate access to a wide-array of pre-trained deep learning models. This project consists of implementing a serverless architecture to provide deep learning models as-a-service (FaaS) in an academic setting. This project, which is similar in scope to Amazon’s and Google’s Machine Learning services, will use free academic computational resources such as the FuncX and Tapis NSF funded projects. The set of Machine Learning models provisioned through this platform will range from object detection and tracking to document analysis, anomaly detection, and time-series modeling.  Ideal participants should know the Python programming language. While ML expertise is not required, students interested in this project should have taken at least one machine learning course (preferably ICS 435).  The framework developed in this project will be integrated into the NSF-funded SAGE3 platform and will be potentially used by thousands of researchers, professionals, and students internationally. Faculty sponsor: Mahdi Belcaid
  2. Jupyter Notebook Widgets in Education: Developing a JavaScript (React) collection of widgets to gather user learning insight. This project consists of building a suite of JavaScript widgets that can be embedded in online notebooks to instrument student learning. This project is divided into two components, student-facing functionality, which will provide valuable mechanisms of immediate feedback to students, and instructor-facing functionality, which will provide the instructor with a comprehensive snapshot of both learnings progress and the pedagogical value of the material. The widgets will be developed as React web-components and the interaction data will be aggregated in a NoSQL database and visualized using popular JavaScript viz. libraries. This is a good project for students interested in user analytics and web technologies. Faculty sponsor: Mahdi Belcaid
  3. Identify Coral Species from Photomosaics of Coral Reefs: We study the mechanisms of coral reef resilience to climate change, particularly coral bleaching, focusing on Kāneʻohe Bay. During the summer of 2019, water temperatures were warm enough to cause bleaching, and we documented this event with a time-series of 31 sites from August to December, a subset of which are available for this project. Problem: Develop a software system to identify coral species (and other bottom types) from photomosaics of coral reefs. For conservation and restoration of coral reef communities, questions about the performance of individual species and individual colonies are important. We hope to automate some of our analysis to overcome the bottlenecks of annotation in photographic data. Kāneʻohe Bay is uniquely suited for this question because it has a) few coral species that make up b) most of the substrate (i.e. fill most of the images) compared to other reefs. This is an opportunity to tailor a computer vision/machine learning solution to this particular ecosystem, which is among the best studied coral reefs in the world. Prerequisite Requirement: Knowledge and experience on image processing and/or computer vision. Knowledge of machine learning is not required but would be helpful. Faculty sponsors: Kyungim Baek (contact), Guylaine Poisson, and Crawford Drury (HIMB)
  4. RadGrad: Developing Awesome Computer Scientists, One Graduate at a Time:  RadGrad is an NSF-funded project involving the development and evaluation of technology to re-envision the goals of the undergraduate STEM degree experience, with the hope of increasing engagement and diversity. We are currently reimplementing the RadGrad platform using Meteor and Typescript to improve its efficiency, robustness, tailorability, and maintainability. This project requires completion of ICS 314, and an interest in developing your software engineering skills on a moderate scale codebase (~60,000 LOC). Faculty sponsor: Philip Johnson.
  5. InternAloha: Helping local computer science students find internships, island style:  A summer internship doing real-world software development is increasingly necessary for successful job (or graduate school) placement upon graduation. However, it’s hard to find a good internship: there are too many online sites to check, the offerings are posted at unpredictable times, and it’s difficult to match the internship to your current skills and future goals. InternAloha is a site custom-designed for local Hawaii computer science undergraduates which scrapes dozens of online sites for listings appropriate to computer science, combines this with private information about local internships, and then provides recommendations to UH computer science students based on the current skills, future interests, and feedback from past students on internship programs. InternAloha will not only help you get an internship, but also help you understand which courses and local opportunities will best prepare you for an internship in future years.” Faculty sponsor: Philip Johnson.
  6. Distributed computing simulation for education: Implementing a simulator of a complex distributed computing scenario and a Web front-end for invoking this simulator in the browser, as part of the EduWRENCH ( project.   This NSF-funded project aims at developing innovative pedagogic material for teaching parallel and distributed computing topics to university students, from freshmen to graduate students. The key innovative aspect is that the material includes simulations that students can invoke in the browser to learn concepts in a more interactive and hands-on manner. Many pedagogic activities already exist on the EduWRENCH Web site. This particular project would consist in developing a simulator (C++), using the WRENCH framework (, and a user-friendly, interactive, visual Web front end (JavaScript/React) for a relatively complex distributed computing scenario. The goal is for the simulation and the Web front end to be used for an advanced pedagogic module that will be available on the EduWRENCH Web site.  Ideal participants would have experience in C++ development (but this project could also be a good way to acquire C++ development skills) and Web app development. Some interest in fields such as parallel computing, distributed computing, and high performance computing is desirable as well.  It is expected that, in the course of this project, participants will also contribute to the WRENCH and EduWRENCH project, which have active development communities that involve students and researchers in many different institutions, by providing feedback, bug reports, and feature requests.  Faculty Sponsor: Henri Casanova.