Computer science CLINIC

OVERVIEW

The primary goals of the Computer Science Clinic at Harvey Mudd College (HMC) are

  • to give advanced students the opportunity to solve real-world problems in computer science, and

  • to provide value to the sponsoring corporation or research organization in return for funding the project.

Working as a team, five to six advanced students, overseen by a qualified faculty advisor, investigate a problem or set of related problems posed by the client. The work is done over the span of one academic year, with formal presentations and reporting procedures for disseminating the results. A company-designated liaison acts on behalf of the client to provide regular feedback and to monitor the work effort. The liaison also often functions as a source of domain expertise on the specific problem addressed.

The success rate of our program has been very high and while, as with many difficult and open-ended problems, a complete solution cannot always be guaranteed, the Clinic team invariably brings fresh insight.

The HMC Computer Science Clinic is jointly directed by Professor Zach Dodds and Professor Katherine Breeden.

Several other academic departments at Harvey Mudd also offer Clinic programs. For more information see the college’s clinic site.

PROJECT PROCEDURE

The duration of Clinic projects is one academic year, from September through May.

The process begins over the summer during a period in which the sponsor and the Clinic director finalize the organization’s commitment to sponsoring the project, and the actual details of the problem to be addressed. This generally begins with the sponsor providing a short problem statement. This is followed by one or two cycles of revision, with input from the Clinic director on the suitability of the project based on issues of student background and time allocation. It is generally during this phase that the sponsor designates a person from within the organization to operate as the liaison for the project. The Clinic director makes an initial designation of faculty supervisor for the project at the same time.

At the beginning of the fall term, the projects for that year are presented to the students taking Clinic and they express their preferences for which project they wish to work on. The faculty then meet to finalize the assignment of supervisors, form the actual teams (based on the students’ expressed preferences), and designate project managers for each team.

Clinic Orientation, to which all the liaisons are invited, is held in the first few weeks of the term. It provides an opportunity for the liaison to meet with the team and provide additional information and background on the project. After this initial meeting, the Clinic team constructs a proposal which specifies, as precisely as possible, the work to be done and the schedule on which it is to be accomplished. Once the details have been agreed upon by the sponsor and the team, problem-solving work begins. The faculty advisor assists in getting the project to a quick start, with an early aim toward increasing the student leader’s coordinating role.

We have found that it is helpful to have the team visit the sponsor’s site for a day early in the term. The students inevitably return from the visit with a better sense of the goals and purpose of the project. It is clear that they return more solidly invested in those goals. After that, ideally, the liaison meets with the team on a weekly basis, although variations of this model are possible. In the case of distant sponsors, it is typical to have a weekly conference call or video teleconference instead.

The team presents its ideas and progress to the Clinic community three times during the year, and presents its final results at the campus-wide Projects Day in the spring. Formal mid-year and final progress reports are required.

CLINIC FEE AND OWNERSHIP OF INTELLECTUAL PROPERTY

Funding of projects is based on a fixed fee set by the college. The same fee is used for projects regardless of discipline (Computer Science, Engineering, Mathematics, or Physics).

The client has exclusive ownership of the results and can control the dissemination of the final report for the first year following the project. Project-related work may be submitted for publication within a year after delivery of the final report only with the client’s approval. Following that year, the client is given an opportunity to review and comment on any proposed publication. The year delay allows the client to initiate patent defense of any innovation arising in the work. The Clinic team and the college agree to assign patent rights to the client. Under extraordinary circumstances, confidentiality periods longer than a year may be negotiated.

Although every effort is made to protect any proprietary information the sponsor shares with the Clinic team, strict confidentiality of all discussions is not feasible within the college environment where the learning process involves free, and open interchange of ideas and criticisms. Accordingly, it is the Clinic policy to decline any classified government projects.

STUDENT BACKGROUNDS

All HMC Computer Science students become familiar with Python, Java, and C/C++ in their early “CS Core” courses. They also use a wide variety of other languages, develop nuanced algorithmic insights, and exercise several software and software-engineering paradigms. Details vary from major to major: students from all majors with the prerequisite background have joined CS Clinic. What is uniform is the unusual breadth of academic experience — and breadth of shared experience — Harvey Mudd College and Claremont Colleges’ students bring to their Clinic projects.

More information concerning the Harvey Mudd Computer Science Major can be found here and the latest course offerings and sample course syllabi are available here.

POSSIBLE PROJECT AREAS

exploratory and
emerging technology

Machine Learning of many varieties and/or comparative ML

Neural networks of many architectures, including Deep Learning techniques

Genetic programming and algorithms

interface designs

Mobile applications

Software with unusual, ad-hoc deployment, e.g., on next-generation networking hardware

Multi-media systems, including VR and AR piloting/prototyping

software design

Compilers, programming languages, and operating systems components

Specification tools, such as for real-time systems

Databases and expert systems

Object-oriented and/or event-driven software architectures

COMPUTER NETWORKING

Client-server systems

Performance monitoring

Distributed information bases

Protocol analysis

parallel computation

Parallel algorithms and applications

Performance assessment

Software tool development