Research Projects for Summer 2017

This link is to a page of opportunities outside the CS department... .

Please apply by Feb. 11, 2017    via the Apply link at left...

Project titles/advisors

A title/advisor overview of the projects described on this page and in our application:

Project Descriptions

HEATlab projects

Temporal plans exist to guide robots to accomplish their goals, while also coordinating when these activities should occur. In general, we want temporal plans that are adaptable to events that are beyond the direct control of agents; e.g., a robot may experience slippage or sensor failures. To do this, we must answer questions such as how and when do new or unexpected events arise in practice? And how "good" is a temporal plan at adapting to these unexpected events?

Further, Trust and cooperation are fundamental to human interactions. How much we trust other people directly influences the decisions we make and our willingness to cooperate. It thus seems natural that trust be equally important in successful human-robot interaction, since how much a human trusts a robot affects how they might interact with it.

In previous summers, we explored the usefulness of a new metric called robustness, which assesses the likelihood that a multi-robot plan succeeds. We showed that robustness is a better measure of multi-robot plan quality and that we can generate plans that optimize for robustness. We also explored whether humans behave differently in terms of their levels of trust and cooperation depending on if they are interacting with a robot or another human.

This summer, we will take on three projects:

Robot Brunch

How do we best disentangle interacting robots' schedules? In this project, we will:

  • Construct new representations that better capture the uncertainty that interactions with others imposes on a robot's plans;
  • Design new algorithms for optimally decoupling multiple robots' schedules; and
  • Evaluate our approaches using mutli-robot navigation tasks on the mock factory floor in our lab.

Human-robot teamwork

How do we schedule reliable interactions with human teammates? In this project, we will:

  • Create and implement new human-robot teamwork tasks that utilize our lab's NAO and possibly other, new robots;
  • Evaluate our approaches for measuring and generating robust multi-robot temporal plans on tasks requiring human-robot coordination; and
  • Design new representations and techniques for capturing the types of uncertainty that humans introduce to team activities.


How many scheduling possibilities actually exist?

When robots team up with humans, we want to give human teammates as many possibilities as we can for completing their activities. However, counting how many possibilities exist, is actually very difficult! In this project, we will:

  • Develop new approximate techniques for computing the number of schedules afforded by a temporal plan;
  • Explore the connections between temporal plans and the geometrical construct called a (n-dimensional) polytope to leverage existing methods for computing the volume of n-dimensional polytopes;
  • Design new tools for visualizing and measuring temporal plans.

Skills: artificial intelligence, algorithm design, interaction design, ROS development, python, behavioral economics, social psychology, probability, information visualization, geometry

Please visit the HEATlab website for more information:

(Directed by Prof. Boerkoel.)

Scripting beyond CS?

Creating small programs is one way for a person to investigate - and internalize - a technical idea. These "personal-use" programs are typically scripts: Python, R, Matlab, Wolfram, etc. Outside CS, scripting is less often used to deepen understanding (HMC's Bio 52 is a notable exception). This project will (a) investigate where beyond CS scripting might be useful, and will (b) design, test, and refine materials/exercises in collaboration with instructors who are thinking about including some scripting in their courses.

An open-ended (and challenging) part of this project arises from language-juggling. Although all the scripting languages considered are equivalent in power, they are not equivalent in convenience or identity. Languages and IDEs are badges that signal ease-of-contribution and community-acceptance. We will (work to) create materials that make switching languages as natural as possible. Rising sophomores and rising juniors (of any major) are especially welcome to apply to this team of ~4 students.

(Directed by Prof. Dodds.)

Interactive Learning for Improvisation

Our Impro-Visor software now includes various learning models, including grammar learning and deep learning. It also includes interaction capabilities, such as having human player trade melodies with the computer in real-time. The focus of this REU will attempt to combine interaction and learning, so that Impro-Visor becomes more of a musical companion, listening to the user and learning from him or her. Some possible variations on this theme are the user as instructor with the program as student, or the program as instructor and the user as student.

The ideal participant will have experience with machine learning, and human-computer interfaces, as well as software development using Java. Knowledge of how improvisation works is useful, but not totally essential. Experience with AI programming in Lisp, Prolog, or Python is a plus.


(Directed by Prof. Keller.)

Computational Biology: From Darwin to Dynamic Programming

Darwin posited in the "Origin of Species" that two species - such as flowers and the bees that pollinate them - might evolve in tandem for the mutual benefit of both species. Darwin's speculations on "coevolution" of species have been validated by recent advances in computational biology. In particular, our group and others have developed algorithmic methods - many of them using dynamic programming - for understanding the most likely scenarios by which a pair of species coevolved.

These same methods can be used for the related problem of understanding the relationships between species and their genes. In some cases, species acquire genes by "transfers" from other species. And, genes can duplicate and then one copy can independently evolve new function. In short, genes and species have relationships that look - in many ways - like the relations between pairs of species like flowers and bees.

This research seeks to develop new techniques and software tools to help biologists better understand the relationships between groups, such as in the coevolution of species or the evolution of genes and species. The work involves several different activities including the design and analysis of algorithms, implementing new software tools, visualization of large datasets, among others. Students will work on the activities that best match their interests and background.

There are at least five positions available this summer. A few positions will be available to first-year students who have taken CS 60. Other positions will be available to students who have taken "Algorithms" (CS 140/Math 168).

(Directed by Prof. Libeskind-Hadas and Prof. Wu).

Summer Startup

Want to work in a group of 3-4 students to create a start-up? You'll come up with an idea, develop a prototype, develop a pitch, and present your start-up to the HMC Entrepreneurial Network. You need to be totally committed to working in a group and learning new skills (e.g. new programming environments, business research, communications, etc). This project plans to support 2-3 teams. All Claremont students are welcome to apply, with rising sophomores and juniors especially encouraged; CMC's CIE program also has funding for interested CMCers to join. In your essay, please indicate whether you'd be interested in working 10 weeks (~ May 22 - July 28) or 8 weeks (after summer math ~ June 5 - July 28). If you have other scheduling constraints this summer please mention this in your essay, as well.

(Directed by Prof. Lewis and Prof. Dodds.)

Automatic Image Classification and Processing with Computer Vision

Computer Vision aims to create systems that allow computers to take images as input, analyze image data, and generate representations of our visual world to solve a problem. This summer, we will use computer vision and machine learning techniques to address the following tasks:

  • process videos in which a presenter uses electronic slides (more information on the SLIC project website:
  • develop techniques and software tools for vegetation mapping / flower classification / ant tracking (collaboration with the Biology department)

Tasks will range from developing, implementing, and testing algorithms and software systems to running experiments and analyzing results. Students will work on the activities that best match their interests and background.

While not required, previous knowledge of linear algebra, image processing, computer vision/graphics, AI, and/or machine learning is helpful. Rising sophomores and rising juniors are encouraged to apply.

(Directed by Prof. Kate.)

Project IMMERSION: Web Development For Mathematical Modeling Education

Note: This project is directed by Prof. Levy in the mathematics department. If you'd like to apply to this project please do so via the mathematics department.

This summer, IMMERSION will have a team of 4 about students (no citizenship restrictions) working on all three of the following components:

  1. (definite) The team will help build a national mathematical modeling online hub (repository+community) based on the hubzero platform. We will be working with technical staff from QubesHub, which is a math/bio hub. This is where the CS background is necessary.
  2. (definite) The team will help facilitate logistics for a week-long mathematical modeling workshop for K-6 teachers from the Pomona Unified School District.
  3. (very likely) The team will participate in a short mathematical modeling course in Korea. Students will need to provide funds for transportation, but housing and food in Korea will be covered. You will be paid as usual during this time, rather than receiving credit.

Please apply through the mathematics department. You don't have to have all of these skills, but let me know in your app if you have experience with any or all of the following:

  • Creating web pages and user interfaces, with HTML, CSS, and JavaScript.
  • Designing web apps, interacting with user information, etc. with PHP. Familiarity with version control systems (specifically "git", mostly through GitHub or GitLab).
  • Tutoring or instructional design
  • Video editing

This is basically full-stack web development including front-end (UI - user interface, i.e. building interactive web pages) as well as back-end (PHP, server-side - effectively developing for the HubZero Content Management System (CMS)). If you are interested in working with cohort of undergraduates to build these skills before the summer through FreeCodeCamp and Code Academy, you can join the QUBES group.

Computer Science Teaching Tips is a NSF-sponsored project for disseminating effective computer science teaching practices. Summer research activities will include some subset of the following tasks: (1) interviewing CS educators about their CS teaching (2) writing tips for, (3) transferring our body of tips from to other resource libraries for CS educators, (4) reading CS education research papers, (5) improving the appearance and infrastructure of the existing website, (6) developing interactive visualizations for standardized test data, (7) integrating tips from into an existing CS curriculum, (8) thinking about the teaching and learning of CS, (9) working with CS teachers, (10) developing the social media presence of, and (11) some other stuff.

As you can see, there isn't a finalized set of tasks we'll do. Summer researchers will help steer the project to achieve the greatest impact for the international CS education community! We might not know exactly what we'll do - but we'll have a LOT of fun!!! Only CS5 (or equivalent) experience is required.

In your essay, please indicate whether you'd be interested in working 10 weeks (~May 22 - July 28) or 8 weeks (after summer math ~ June 5 - July 28). If you have other scheduling constraints this summer please mention this in your essay, as well. Also please indicate if you're more interested in programming or contributing to the educational content of the project.

(Directed by Prof. Lewis.)

Kinetic Typography

Kinetic typography puts text in motion, resulting in new and creative storytelling (see for a fun example!) In this project, we'll create a web-based tool for creating kinetic typography animations. We'll learn about html5-based animation, choosing fonts, and some NLP topics like sentiment analysis and syntactic parsing. Our end result will be a live tool that you can use to create your own animations -- and to impress your family and friends! Rising sophomores are encouraged to apply.

(Directed by Prof. Medero.)

Algorithms for Active Transportation

Public health researchers know that changes in infrastructure (like adding bike lanes, widening sidewalks, and retiming lights) sometimes increase the number of people who choose to walk and bike, but often do not. Previous studies of transportation behavior changes have relied on retrospective surveys, which are known to be unreliable. The Computing for Active Transportation project is working with public health researchers at UCLA to develop tools and algorithms to bring more objective data analysis into these important public health discussions.

Student Activities: Students on this project will develop tools and algorithms for analyzing transportation activity logs. GPS data loggers and smartphone apps can generate massive quantities of real-time time-location data. Students on the Computing for Active Transportation project will develop algorithms to automatically classify each trip recorded by these sensors into categories. For example, we will separate work trips, school trips, childcare trips, and grocery trips from other types of trips, and we will also categorize trips by their total distance. This categorization will enable finer grained analysis of behavior changes by type of trip, rather than just by overall rate of use of each transportation type. To complete this categorization task, we will explore unsupervised (clustering-based) machine learning algorithms and, when needed, supervised (classification-based) algorithms.

(Directed by Prof. Medero.)

Adaptive Query Processing with the Crowd

We want to be able to issue a query to a data processing system asking it to filter a set of items, such as restaurants, such that we retain only those items that satisfy a set of conditions (e.g., has fresh-made guacamole). These conditions are called "predicates" in the database systems community. Evaluating a predicate takes time/resources because the relevant information about each item is not available in the database. We hope to leverage the crowd to help find and interpret the relevant information to determine which items belong in the final query result.

In our scenario, it is not necessarily true that predicates are equally difficult to evaluate. Several factors could influence differing processing costs, where "cost" may involve time and money spent on a crowd platform. These factors include possible subjectivity and/or ambiguity of the predicate. Furthermore, it might be the case that evaluating a particular predicate has different cost for different items. With ad-hoc queries, these costs will be unknown at the time the query executes.

Given that we can eliminate an item from the query result once it fails one of the predicates, the lowest overall cost to evaluate the query is achieved by determining the cheapest and most restrictive (i.e., highly "selective") predicates to evaluate first. Since we do not know the predicates' cost or selectivity a priori, we need to learn and adapt to observations of these metrics as the query is running by iteratively deciding which (item, predicate) pair should be processed next.

The goal of this project is to devise an adaptive algorithm to evaluate such a query!

I'm looking for about four students. CS 70 strongly preferred.

(Directed by Prof. Trushkowsky.)

CS Summer Staff (early summer)

CS summer staff is a small (~3-person) group of students who help improve the CS department's computational infrastructure, processes, and outreach. In 2016, this involved repurposing CS clinic machines and drives, setting up the new "pair programming" lab, learning web technologies and developing curriculum, sites, and other projects around those skills (there was also the creation of a ball-pit in the team's area in 2nd floor Sprague). No previous systems-administration or -building experience is required: you will learn everything needed -- and more -- as you go. Scheduling is quite flexible: this can be 8 or 10 weeks (as works for you) with one exception: this early-summer team needs to be available for the two weeks immediately after graduation (May 15-26).

(Directed by CS Summer staff advisor [TBD].)

CS Summer Staff (late summer)

The late-summer CS summer staff team is another (~3-person) group of students who are part of the same group as in the "early summer" description. Again, scheduling is quite flexible except that this late-summer team needs to be available for the two weeks immediately before the fall semester starts (Aug. 14-25).

(Directed by Summer of CS advisor [TBD].)

Vice-chancellors of fun

If you are applying to an HMC summer position and would enjoy working as the social coordinator across all of HMC CS summer research, then this vice-chancellor of fun position will be of interest. It supports half of your on-campus housing for the summer, it adds a $1000 stipend to your existing summer stipend, and it puts you in charge of procuring summer foodstuff and organizing activities (or encouraging others to do so!) You need to have a driver's license, a willingness and ability to drive the large HMC van, and enthusiasm for making things happen! (2 spots available)


(Directed by VC of Fun advisor [TBD].)