Three of the six courses required for the concentration focus on general issues of computing: 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, using at least two to connect their computational work with their major . Finally, the student must also complete a project-based experience, possibly during the completion of one of the courses.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)