Summer Projects for 2012

Note: The deadline for applications is 11:59pm, Sunday, January 29, 2012. You may still apply after that point, but other applicants may be considered ahead of you.

HMC Projects

CS5, from a Different Perspective

(Funded, 4+ students)

Liked CS 5? Interested in simply creating and testing more awesome CS5 assignments? Would you like to learn/develop Javascript, AJAX, web-framework skills, etc. by making our CS 5 submission system even better? If any of these apply, join us for an NSF-funded project to adapt CS 5 for many different audiences. (If middle- and high-school audiences are your particular interest, see the MyCS project, below.)

Directed by one or more of the CPATH team of Profs. Dodds, Kuenning, and Libeskind-Hadas.

MyCS — Middle Years Computer Science

(Funded, 2-4 students)

This project seeks to increase computational awareness in students at an age when they are open to new ideas -- in particular, at the middle-school level. If you'd like to develop a middle-school CS curriculum and present a week-long summer workshop to 16-20 middle- and high-school teachers, join us!

Directed by Profs. Erlinger and Dodds

Trace Repository

(Funded, 2 students)

The SNIA Trace Repository contains several terabytes of data collected by observing the behavior of real file systems. Harvey Mudd is responsible for the management and enhancement of this repository. Students will develop tools related to traces, help write standards, locate, convert, and post new traces, and integrate tools contributed by researchers.

Directed by Prof. Kuenning.

Storage Modeling and Analysis

(Funded, 2 students)

This project, which is in cooperation with Professor Erez Zadok of Stonybrook University, is developing ways to analyze, model, and reproduce the behavior of storage systems. At the moment we are working on modeling of traces and on "deduplication," which involves finding duplicate data on a disk drive and getting rid of it. This work will take place at Stonybrook University under the supervision of both professors. A travel and housing allowance will be provided.

Directed by Prof. Zadok and Prof. Kuenning.

Games Network

(Funded, 4 students)

Students in CS 121 design and develop educational games for social studies middle school students. Given the semester time limits, these games are not always completed. Summer research students on this project will work with middle school student 'customers' to evaluate the games, propose modifications/enhancements of the games to make them classroom-ready, and implement the changes so the games are ready to be deployed.

Directed by Profs. Erlinger and Sweedyk.

Jane: Computational Biology Software

(Funded, 3-5 students)

Jane is a tool developed at Harvey Mudd for biologists to explore and study the coevolution of pairs of species. Jane uses algorithms that were designed by Harvey Mudd students and was completely implemented by students. Several hundred biologists have downloaded this tool and have used it in their research. See the Jane website for more details on the Jane tool.

The project this summer will involve some algorithm design and analysis and some implementation of new features. Therefore, some of the positions will require CS 140 (Algorithms) as background while others will be accessible to first-year students who have completed CS 60 (or CS 42) by the end of spring semester.

Directed by Prof. Libeskind-Hadas.

Programming Languages Research

(Funded, 1 student)

This summer project will explore two themes:

  1. Program analysis -- how can we examine programs to determine whether they secure, efficient, correct, etc.?
  2. Program language design -- how can we design a language so that programs are secure, efficient, correct, etc., by construction?

We will undertake one of the following projects, based on your interest and experience and on the availability of collaborators:

  1. Batches for databases. We will improve and implement a runtime mechanism for a new style of programming called batches. Batches enable programmers to write software that accesses a database with a proven upper-bound on performance. This project requires familiarity with Java programming and with writing programs that access a relational database. This project may be in collaboration with Prof. William Cook at UT Austin.
  2. Program analysis for JavaScript. JavaScript is becoming more ubiquitous, and JavaScript programs are performing more sophisticated computations. However, JavaScript is a notoriously difficult language to analyze. This project will explore JavaScript analysis for either security (in which case we may collaborate with Prof. Ben Hardekopf at UCSB) or efficiency (in which case we may collaborate with Prof. Barbara Ryder at Virginia Tech). Depending on your experience and interest, we will be implementing and evaluating JavaScript programs or implementing program analyses for JavaScript, using Java.
  3. Better errors for internal domain-specific languages (DSLs). A DSL is a programming language that describes a limited set of computations (e.g., LaTeX describes document layout, make describes a dependence network). An internal DSL is a DSL that is actually a subset of a general-purpose language (e.g., Java or Python). As such, things like syntax errors in the DSL are communicated to the programmer as syntax errors in the general-purpose language, which may be confusing and unhelpful to the DSL programmer. This project would attempt to improve this state of affairs. It requires reasonable sophistication in at least one general-purpose programming language (experience with Scala would also be beneficial).
  4. Efficient program analyses from high-level specifications. In program analysis, it's often easy to say what we want to compute, but hard to say how we want to compute it -- especially when we want to guarantee that we compute an efficient and correct analysis. This project bridges the gap by generating efficient program analysis implementations from high-level specifications. You will implement small languages and analyses in Scala, and (depending on your interest and experience) you might help design languages and analyses. We would also collaborate with Prof. Ben Hardekopf, as we work on a paper for submission to POPL (a premier venue for programming languages research). This project requires that you've taken Programming Languages.
  5. Baseball as language design and implementation. This is less research and more of a project. We would attempt to write an application similar to MLB Gameday by designing, implementing, and composing a few small programming languages. This project requires good programming skills and a desire to learn about programming languages in general; knowledge of baseball is a bonus, but not required. As part of the project, we will study program semantics, efficient forms of querying, and possibly reactive programming.

Directed by Prof. Wiedermann.

HMC REU Projects

The REU program takes ten students in total, with up to five coming from HMC. The exact distribution of students among the three projects will be determined after students apply. See the REU website for project details (but use the HMC application process, not the form for external REU applicants).

Restrictions: Due to funding restrictions, you must be a US citizen or permanent resident to work on REU projects.

Garbage Collection

(Funded, 1-2 students)

If you've enjoyed classes in operating systems or programming languages, there is a very good chance you'll be interested in garbage collection.

Directed by Prof. O'Neill.

Robotics -- Aerial Autonomy

(Funded, 2+ students)

Want to work with flying robots? In this project, we will continue our lab's foray into autonomous flight: our goal will be to collect movies of HMC's Libra-complex by conducting fly throughs and build 3D models capable of supporting virtual fly-throughs. We plan to use Andrew Davison's Monocular SLAM work as an inspiration and/or starting point. Check out our project page for details.

Directed by Prof. Dodds.

Intelligent Music Software

(Funded, 2+ students)

If you have an interests in both computer science and music (particularly jazz, but not limited to jazz), our intelligent music software project will also interest you.

Directed by Prof. Keller.

Algorithms for Computational Biology

(Funded, 2+ students)

If your interest in computer science is matched by an interest in modeling biological systems, our algorithms for computational biology project will be of interest to you.

Vice-chancellor of Fun (Add-On Role)

(Funded, 1-2 students)

If you are applying to an REU position and would enjoy working as the social coordinator for the program (and for all of HMC CS summer research), then this vice-chancellor of fun position will be of interest. You need to be a rising junior or senior, have a driver's license, a willingness to drive the large HMC van, and enthusiasm for organizing activities. Also, this position extends both ends of the REU calendar by one day.