• No se han encontrado resultados

QUE ES UN SISTEMA INTEGRAL DE TRANSPORTE PÚBLICO

45

COMPUTER SCIENCE

COMPUTER SCIENCE

(See also Joint Major in Computer Science and Mathematics)

Professors Erlinger (Chair), Alvarado, Dodds, Keller, Kuenning, Libeskind-Hadas, O’Neill,

Stone and Sweedyk.

Computer science is an exciting and rapidly-evolving discipline with components of design, logic, mathematics, engineering and philosophy. The role of computer science can be charac- terized as providing the logical infrastructure for the modern, information-based society.

The Harvey Mudd College Computer Science major, established in 1992, provides a strong foundation in the fundamental principles and concepts of computer science through a blend of experimentation, theory and design. Our students are well-prepared to make contributions to the field of computing, to science within a computational framework, and to society in general through the development of tools and technologies that can have a significant, positive, societal impact.

Each computer science major participates in a year-long Computer Science Clinic project, addressing real-world problems provided by sponsors from industry and research laboratories. A Clinic project typically comprises three to five students, supervised by a faculty member and a liaison from the sponsor, working on a project from “concept to product.”

Computer science students may also engage in research with our faculty during both the academic year and the summer. Examples of recent student involvement in research include the design, analysis, and simulation of next generation optical networks; the design of a system that recognizes and correctly interprets human sketches of digital logic circuits on tablet com- puters; the design and implementation of new programming languages; research into issues of applying and deploying network security; and the design of vision algorithms for autonomous robots.

Graduates of the Computer Science program have gone on to work for a diverse set of em- ployers and, in some cases, have started their own companies. Some employers that have hired our graduates in recent years include Apple Computer, FICO, Google, Green Hills Software, Hewlett-Packard, IBM, Jet Propulsion Laboratory, Lawrence Livermore National Laboratory, Lockheed-Martin, Microsoft, QUALCOMM, Rockwell, Stanford Linear Accelerator, Sun Microsystems and The Aerospace Corporation.

A significant fraction of our majors have gone on to graduate study. Some of the gradu- ate programs where our students have enrolled include Caltech, Carnegie Mellon University, Cornell, Georgia Institute of Technology, Stanford, UC Berkeley, UC Davis, UCLA, UC San Diego, University of North Carolina, University of Illinois at Urbana-Champaign, University of Texas, University of Washington and University of Wisconsin. Our graduates 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, human-computer interfaces and telecommunications. Most of these areas are introduced in courses at HMC.

All students at Harvey Mudd College are required to fulfill Computer Science 5 (Introduction to Computer Science) or its equivalent which provides an exposure to some major concepts in the discipline including functional programming, object-oriented programming, digital logic and computer organization, computability theory and societal issues. The computer science major continues with the foundation courses, starting with Computer Science 60 (Principles of Computer Science) which provide a broad exposure to many areas of computer science and further develop fundamental competence in programming, logic, algorithm analysis and computer structure. Mathematics 55 is taken to develop skills in discrete mathematics that are needed for advanced computer science areas. Computer Science 70 (Data Structures

and Program Development) improves the students’ 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 applications of the aforementioned areas to prob- lems 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 relation- ship 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 systems. Computer Science 131 (Programming Languages) investigates concepts underlying a wide variety of modern pro- gramming languages. Computer Science 140 (Algorithms) develops fundamental skills needed to perform comparative analysis of algorithms and to enable the synthesis of new algorithms. The broad array of computer science electives (over 20 elective and seminar courses) allows students to achieve more specialization in areas of personal interest.

The Computer Science Clinic provides a way of putting many of the acquired skills into practice. Examples of recent Computer Science Clinic projects are:

• 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;

Sponsors of Computer Science Clinic projects have included Boeing, FICO (Fair Isaac), Google, GTE, IBM, Jet Propulsion Laboratory, Los Alamos National Laboratories, LinkedIn, Microsoft, MySpace, QUALCOMM, Sandia National Laboratories, Teradyne, and The Aerospace Corporation.

The final element of the major is the Computer Science Colloquium, which features speak- ers drawn from both industry and academia who present results of their current research. Recent colloquium speakers have come from a variety of companies, research labs and universities. DEGREE REQUIREMENTS. A computer science major must complete the following courses:

Computer Science Foundation

Computer Science 60. PRINCIPLES OF COMPUTER SCIENCE, or

Computer Science 42. PRINCIPLES AND PRACTICE OF COMPUTER SCIENCE

Mathematics 55. DISCRETE MATHEMATICS

Computer Science 70. DATA STRUCTURES AND PROGRAM DEVELOPMENT

Computer Science 81. COMPUTABILITY AND LOGIC

Computer Science Kernel

Computer Science 105. COMPUTER SYSTEMS

Computer Science 121. SOFTWARE DEVELOPMENT

Computer Science 131. PROGRAMMING LANGUAGES

Computer Science 140. ALGORITHMS

Computer Science Clinic:

47

COMPUTER SCIENCE

Computer Science Colloquium

Four semesters of Computer Science 195: COLLOQUIUM are required only when students are in residence at HMC. Study abroad students are excused from the colloquium requirement during their time away from the HMC campus.

Three Computer Science Electives

Computer Science 124A. BASICS OF USER INTERFACE DESIGN

Computer Science 124B. NON-TRADITIONAL USER INTERFACE DESIGN

Computer Science 125. COMPUTER NETWORKS

Computer Science 132. COMPILER DESIGN

Computer Science 133. DATABASES

Computer Science 134. OPERATING SYSTEMS: DESIGN AND IMPLEMENTATION

Computer Science 135. FILE SYSTEMS

Computer Science 136. ADVANCED COMPUTER ARCHITECTURE

Computer Science 141. ADVANCED TOPICS IN ALGORITHMS

Computer Science 142. COMPLEXITY THEORY

Computer Science 143: APPLIED ALGORITHMS

Computer Science 144. SCIENTIFIC COMPUTING

Computer Science 147. COMPUTER SYSTEMS PERFORMANCE ANALYSIS

Computer Science 151. ARTIFICIAL INTELLIGENCE

Computer Science 152. NEURAL NETWORKS

Computer Science 153. COMPUTER VISION

Computer Science 154. ROBOTICS

Computer Science 155. COMPUTER GRAPHICS

Computer Science 156. PARALLEL AND REAL-TIME COMPUTING

Computer Science 157. COMPUTER ANIMATION

Computer Science 158. MACHINE LEARNING

Computer Science 159. NATURAL LANGUAGE PROCESSING

Computer Science 160. INFORMATION RETRIEVAL

Students may substitute electives in one or more computer science-related areas, such as in engineering or mathematics, with the consent of their faculty advisor. Computer Science 186 (Computer Science Research II) can be counted as an elective for the major and requires Computer Science 185 (Computer Science Research I) as a prerequisite. Other research or project courses cannot normally be counted as electives for the major.