For information about Web accessibility, please contact the Webmaster at

Haverford College

Computer Science

header image

Academic Programs : Concentration in Scientific Computing

CoordinatorsConcentration RequirementsLearning GoalsSenior Thesis Goals

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 become 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.

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).

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).

Coordinators for 2013-2014:

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 (2) of the courses in (B) or (C) may count towards both the SC 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, CS H105 and CS B110, cannot be taken for credit.)

  1. Year long introduction to Computer Science and programming, that may consist of (CS H105 and CS H106) or (CS B110 and CS B206) or (CS H107)
  2. One course involving regular programming assignments and becoming familiar with discipline-specific programming idioms, chosen from the following list:
    • Astronomy H341: Advanced Topics in Astrophysics: Observational Astronomy
    • Astronomy H342: Advanced Topics in Astrophysics: Modern Galactic Astronomy
    • Astronomy H344: Advanced Topics in Astrophysics: Computational Astrophysics
    • Computer Science H187: Scientific Computing-Discrete Problems
    • Computer Science H207: Data Science and Visualization
    • Computer Science B250: Computational Models in the Sciences
    • Computer Science H287: High Performance Scientific Computing
    • Chemistry H304: Statistical Thermodynamics and Kinetics
    • Chemistry H305: Quantum Chemistry
    • Math H222: Scientific Computing-Continuous Problems
    • Physics H304: Computational Physics
  3. 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
    • Biology H300: Superlab
    • Biology H301: Advanced Genetic Analysis (1/2 credit)
    • Biology H354: Computational Genomics (1/2 credit)
    • Biology H357: Protein Design (1/2 credit)
    • Chemistry B322: Advanced Physical Chemistry: Mathematical Modeling & Natural Processes
    • CS B120: Visualizing Information
    • CS H225: Fundamentals of Databases
    • CS H235: Information and Coding Theory
    • CS B250: Computational Models in the Sciences
    • Economics S032: Operations Research
    • Math H204/B210: Differential Equations, in years in which it includes significant computer lab exercises involving modeling and/or simulation
    • Math H210: Linear Optimization and Game Theory
    • Math H286: Applied Multivariate Statistical Analysis
    • Math H394: Advanced Topics in Computer Science and Discrete Math
    • Math H397: Advanced Topics in Applied Math
    • Math S056: Modeling
    • Physics B306: Mathematical Methods in the Physical Sciences
    • Physics H316: Electronic Instrumentation and Computers
    • Physics S026: Chaos, Fractals, Complexity, Self-Organization, and Emergence
    • Up to 1 credit of senior research (e.g., Astronomy H404, Bio H40x, Chemistry H361, CS H480, Math H399, Physics H41x), if the project has a significant focus on scientific computing
  4. 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).

Student 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)

Senior Thesis Goals and Assessment:

Research Goals: Students in the Scientific Computing Concentration are required to complete a project-based experience in which computation is applied to investigate a real-world phenomenon. The aspirational goal is a senior thesis/experience with a significant scientific computing component. However, the requirement can also be fulfilled by a summer research experience or a multi-week project for a course.

Assessment: The Scientific Computing Coordinator and Representatives may consult but do not assess senior theses (or projects performed during a summer or a course). The specific outputs required and the evaluation of those outputs are delegated to the student’s major discipline department (or summer research advisor or course instructor). Students must summarize their project at a level that the coordinator of the concentration can affirm that the project involves significant computational content, and verify with the project advisor that the final product meets this goal.