CSE 609 Scientific Programming (3 credits)

Catalog description:

This course addresses programming skills at an intermediate level and focuses specifically on scientific and engineering computing skills.  This course will emphasize topics commonly encountered in scientific computing/computational science.  It primarily addresses non-parallel (serial) computing competencies and is a prerequisite to the high performance computing area.  The course will focus on an appropriate programming language currently used in research.

Prerequisites:

A programming course in any language.

Learning Outcomes:

At the end of this course, students will be able to:

  1. Implement programming solutions to scientific problems with an appropriate programming language currently used in the research domain.
    • Use basic debugging techniques to identify logic errors
    • Apply non-parallel (serial) optimization concepts and techniques
    • Use at least one widely used numerical library (e.g. GNU Octave)
    • Demonstrate understanding number representation
    • Write programs that are robust with respect to numerical errors
    • Write programs that read and write external files using various file formats
  2. Apply software engineering best practices in designing, testing and writing computer programs.
  3. Describe the concepts of algorithm complexity.
  4. Apply Monte Carlo algorithms to appropriate problems.