Computer science is the art and science of developing automated, information-based processes, including modeling, algorithms, communication techniques, languages, implementation, performance measurement and prediction, and applications of such processes. As an academic discipline it has strong components of design, logic, mathematics, engineering and philosophy. The role of computer science could be characterized as providing the logical infrastructure for the modern information-based society.
The Harvey Mudd College Computer Science major, established in 1992, provides a solid education in the fundamental principles and concepts of computer science through a blend of experiment, theory and design. A student completing the major is well-prepared for both immediate employment in computer science and related fields and for graduate study in computer science. The program exposes students to a wide variety of application areas within their studies. Computer science graduates are thus able to make new contributions to science within a computational framework, as well as to the field of computing itself. Each computer science major participates in a year-long Computer Science Clinic project, addressing real-world problems of interest to industry and research laboratories, and may also engage in research with faculty members.
Examples of recent student involvement in research include the design, analysis and simulation of routing algorithms for parallel computers and networks of workstations; the design and implementation of new programming languages; research into issues of applying and deploying network security; and building and deploying robots.
Careers in computer science include positions with titles of computer scientist, computer engineer, computer architect, programmer (application, systems, business, scientific, game, graphics, database), software developer, software engineer, hardware engineer, systems analyst, system designer, systems integrator, system administrator, network engineer, technical writer, as well as educator (professor, teacher, trainer), consultant, and technical manager (project manager, product manager, program manager, chief scientist, chief technical officer, chief information officer).
Graduates of the Computer Science Department have gone on to work in many of the top companies in the field including Apple Computer, Argonne National Laboratory, Ernst and Young, Fair Isaac, Google, Green Hills Software, Hewlett-Packard, IBM, JPL, Lawrence Livermore National Laboratory, Lockheed-Martin, Microsoft, Qualcomm, Rockwell, Silicon Graphics, Stanford Linear Accelerator, Sun Microsystems, The Aerospace Corporation and WebTV.
A significant fraction of our majors have gone on to graduate study at schools such as Caltech, Carnegie-Mellon University, Cornell, The Georgia Institute of Technology, Stanford, UC Berkeley, UCLA, UC Davis, UC San Diego, University of North Carolina, the University of Illinois at Champaign-Urbana, the University of Texas, the University of Washington and the University of Wisconsin. They have done advanced study in areas such as algorithm design and analysis, logical foundations of computer science, software engineering, computer graphics, networking, distributed systems, mobile computing, performance analysis, programming languages, computer architecture, computer operating systems, parallel computing, artificial intelligence, computer vision, robotics, speech understanding, virtual reality, artificial life, neural networks, fuzzy logic, human-computer interfaces and telecommunications. Most of these areas are introduced in courses at HMC.
All students at Harvey Mudd College take Computer Science 5, Introduction to Computer Science. The computer science major continues with the foundation courses, starting with Computer Science 60 (Principles of Computer Science), which provides a broad exposure to many areas of computer science and further develops fundamental competence in programming, logic, algorithm analysis and computer structure. Mathematics 55 is taken to develop skills in discrete mathematics that are needed for greater depth in more advanced areas. Computer Science 70 (Data Structures and Program Development) improves the depth of programming competence, and diversifies the set of data structures and corresponding analysis techniques to which the computer science student is exposed. Computer Science 81 (Computability and Logic) introduces the mathematical foundations of computer science, particularly logic, automata and computability theory, and demonstrates the applications of the aforementioned areas to problems of practical significance.
Building on the foundation courses are the kernel courses. Computer Science 105 (Computer Systems) develops a deep understanding of computer structure and its relationship to correct and efficient program implementation. Computer Science 121 (Software Development) focuses on requirements analysis and specification techniques for large software systems, and the project management skills needed to develop such a system. Computer Science 131 (Programming Languages) investigates concepts underlying a wide variety of modern programming languages. Computer Science 140 (Algorithms) develops fundamental skills needed to perform comparative analysis of algorithms and enable the synthesis of new algorithms. The computer science electives allow students to achieve more specialization in areas of personal interest. We believe that most of the areas of computer science that are of central importance are covered in the combination of courses mentioned thus far.
The Computer Science Clinic provides a way of putting many of the acquired skills into practice. In the Clinic Program, students work on problems that have no textbook answers. Instead, they are real-world problems of great interest to real people, companies and research organizations. A Clinic project lasts one year, and is completed by a team of three to five students working with a faculty advisor and a liaison. Examples of recent Computer Science Clinic projects that have been completed by teams of Harvey Mudd students are:
Sponsors of Computer Science Clinic projects have included Boeing, Fair Isaac, Google, GTE, IBM, Jet Propulsion Laboratory, Microsoft, Octel Communications, Optivus Technology, Sandia National Laboratories, Teradyne and The Aerospace Corporation. The final element of the major is the Computer Science Colloquium, which features speakers drawn from both industry and academia who present results of their current research. Recent colloquium speakers have come from a variety of research labs and universities such as Caltech, Carnegie Mellon University, Harvard University, IBM Research, MIT, Microsoft Research, Motorola, The Salk Institute, Stanford University, The Aerospace Corporation, UC Berkeley, UC San Diego, USC, University of Illinois, University of Iowa, University of Washington and the University of Wisconsin.
- A new system for the management of rocket launch countdown clocks;
- An extensible interface for current and future insulin pumps, glucose sensors and related diabetes technology;
- A computer security tool based on the biological immune system paradigm;
- An extensible software architecture that enables satellite anomalies to be detected and displayed in visual form;
- A simulation model of the GPS ground network and verification of that model through available data;
- An implementation of the MESQUITE mesh smoothing toolkit on a distributed cluster;
- An implementation of the VAIL waveform analysis tool on the "grid" highly-parallel computing environment;