Scientific Computing

Department Website:
https://www.haverford.edu/scientific-computing

Many disciplines in the natural and social sciences include a significant sub-discipline that is explicitly computational. Examples include astronomy, biology, chemistry, economics, and physics. In some fields, such as biology, the use of computation has become so widespread that basic literacy in computation is increasingly important and may soon be required.

The Concentration in Scientific Computing gives students an opportunity to develop a basic facility with the tools and concepts involved in applying computation to a scientific problem, and to explore the specific computational aspects of their own major disciplines.

Learning Goals

As students progress through the curriculum, they will:

  • learn to read, write, and debug code in at least one programming language, using idioms appropriate to the major field of study.
  • apply computational reasoning to a broad set of problems.
  • learn tools and concepts required to computationally approach scientific problems within the discipline of their major.
  • appreciate trade-offs and limitations of computational approaches to problem solving (e.g., accuracy vs. computation time, approximations needed to make real-world problems calculable, numerical errors inherent to computations themselves).

Haverford’s Institutional Learning Goals are available on the President’s website, at http://hav.to/learninggoals.

Curriculum

Three of the six courses required for the concentration focus on general issues of computing (see Requirements A and B below): two of these serve as an introduction to computer science and programming, and the third focuses on the use of computation within a specific scientific discipline. Students then choose the remaining three courses from a list of electives (see Requirement C), using at least two to connect their computational work with their major (recall that 2-3 courses for a concentration must also count toward the student’s major). Finally, the student must also complete a project-based experience, possibly during the completion of one of the courses (Requirement D).

Students majoring in astronomy, biology, chemistry, economics, mathematics, and physics should consult the relevant sections of the Catalog for information about the relationship of this concentration to their courses of study.

Given the abundance of math, physics, chemistry, and computer science courses listed under Requirements B and C, students with these majors should have no problem choosing courses (though one of the coordinators of the concentration should be consulted during this selection). Example “Requirement C” tracks for majors in astronomy, biology, chemistry, and economics are available, but a student may of course choose other courses (in consultation with one of the coordinators).

Concentration Requirements

The concentration consists of six credits that fall into four categories of requirements, denoted (A), (B), (C), (D). These are merely categorical labels, and we have no intention of expressing a time-ordered sequence. In fact, we anticipate that many students in fields other than computer science will take at least one course in the (B) and/or (C) requirements before discovering an interest in the concentration, and then take courses to satisfy the other requirements afterward.

The six courses should be selected from the following list and approved by the student’s concentration advisor. Of the six credits required for the concentration, no more than two of the courses in (B) or (C) may count towards both the concentration and the student’s major. (Also, per College rules, students may not count among the 32 course credits required for graduation any course that substantially repeats the content of another course already completed, even though the course numbers may suggest an advancing sequence. For example, both introductory computer science courses, CMSC H105 and CMSC B110, cannot be taken for credit.)

Categories of Requirements

Category A

Year-long introduction to computer science and programming, that may consist of (CMSC H105 and CMSC H106) or (CMSC B110 and CMSC B206) or (CMSC H107). CMSC H107 can be taken upon successful completion of either: CMSC H104 or CMSC B115 or the CS placement exam."

Category B

One course involving regular programming assignments and becoming familiar with discipline-specific programming idioms, chosen from the following list:

ASTR H341Advanced Topics: Observational Astronomy1.0
ASTR H344Advanced Topics in Astrophysics: Gravity Waves1.0
CMSC H207Data Science and Visualization1.0
BIOL H311Advanced Genetic Analysis0.5
BIOL H327Computational Genomics0.5
CMSC H287High Performance Scientific Computing1.0
CMSC H208Speech Synthesis and Recognition1.0
CMSC/LING H325Computational Linguistics1.0
CHEM H304Statistical Thermodynamics and Kinetics1.0
CHEM H305Quantum Chemistry1.0
MATH H222Scientific Computing: Continuous Systems1.0
MATH S066Stochastic and Numerical Methods1.0
PHYS/ASTR H304Computational Physics1.0
CHEM H352Topics in Biophysical Chemistry0.50

Category C

Three credits worth of electives in which real-world phenomena are investigated using computation, at a significant level as determined by the standards of that discipline. At least one of these three credits must come from a 300-level course or courses (not senior research). A normative route in the sciences would be for a student to take two taught courses on this list and apply one credit of senior research to this requirement. Alternatively, students whose senior work is not computational but who still wish to pursue the concentration can complete three taught courses from this list. These courses should be drawn from the following list:

Any of the courses on the (B) list above
BIOL H354Computational Genomics0.5
BIOL H357Advanced Topics in Protein Science0.5
CHEM H322Advanced Physical Chemistry: Mathematical Modeling & Natural Processes1.0
CMSC H235Information and Coding Theory1.0
CMSC/LING H325Computational Linguistics1.0
ECON H324Advanced Econometrics1.0
MATH H204/B210Differential Equations1.0
MATH H210Linear Optimization1.0
MATH H286Applied Multivariate Statistical Analysis1.0
MATH H394Advanced Topics in Computer Science and Discrete Math1.0
MATH H397/B308Advanced Topics in Applied Mathematics: Mathematical Modeling1.0
MATH S056Modeling1.0
Up to 1 credit of senior research if the project has a significant focus on scientific computing 11.0
MATH H396Advanced Topics: Probability and Statistics1.00
STAT H203Statistical Methods and their Applications1.00

Category D:

Some part of completion of the concentration must include a project-based experience in which computation is applied to investigate a real-world phenomenon, e.g.,

  • A senior thesis/experience with significant scientific computing component, or
  • A summer research experience, or
  • A multi-week project for a course that may (or may not) be one of the three electives that fulfill requirement (C)

Concentration Coordinators and Departmental Representatives

Jane Chandlee
Assistant Professor of Linguistics
Chase 103C

Daniel Grin
Assistant Professor of Physics and Astronomy; Coordinator of Scientific Computing
KINSC L107

Andrea Lommen
Professor and Chair of Physics and Astronomy
KINSC Link 108

Casey Londergan
Professor and Chair of Chemistry
KINSC E304B

Robert Manning
The William H. and Johanna A. Harris Professor of Computational Science; Professor of Mathematics and Statistics; Associate Provost for Faculty Development and Support
KINSC H207C

Eric Miller
Assistant Professor of Biology

Researching microbiology, evolution, ecology, bioinformatics, while interested in the visual communication of scientific research.

Sharpless 214