Topics in CS&E

CU Boulder: CSCI 4830-008/7000-014 (Fall 2015)

Time: MW 4:30-5:45pm in ECST 1B21

Instructor: Jed Brown,, ECOT 626


Computational Science and Engineering (CS&E) is concerned with modeling, simulating, and analyzing physical systems of scientific and engineering interest. This will be primarily a seminar and project course that will acquaint students with the key tools in CS&E as well as characteristic features and challenges arising in field such as geosciences, aerospace, and biophysics. The project will provide an opportunity to work individually or in groups on a research-level topic.

Students will learn how to evaluate physical models, stochastic models, discretizations, solution algorithms, and how to choose and use appropriate computational resources. What are the principal challenges in different application areas? What computational resources would be needed to answer a given grand challenge problem? Where are the opportunities for transformational algorithmic advances and where are we already up against algorithmic barriers? How can real-time models better inform data collection?

The course material will be adapted to student preparation and interest, but will cover the following areas.

Modeling physical systems

  • continuum mechanics
  • discretization techniques
  • multiscale models
  • fast solvers
  • techniques for coupling models
  • non-continuum complications

Practical computing

  • evaluating performance and scalability
  • discovering algorithmic bottlenecks
  • choosing an appropriate computing architecture
  • HPC and cloud computing environments
  • software libraries and composition

Data assimilation and uncertainty quantification

  • a statistical approach
  • ill posedness
  • role of nonlinearity
  • dimensionality
  • choosing a stochastic discretization
  • acceleration techniques
  • risk and decision problems

Target audience

Advanced undergraduate and graduate students in computer science or simulation-based science or engineering. We assume familiarity with a compiled language (e.g., C or Fortran) and Unix/Linux development environment, but prior experience with parallel computing is not essential. Suggested prereq: at least one of

  • CSCI-3656 Numerical Computation
  • CSCI-4576 High-Performance Scientific Computing
  • CSCI-4753 Computer Performance Modeling


50% class participation and contribution to homework, 50% project

Resources (updated periodically)