Welcome to CSI 701

Foundations of Computational Science

Reading Course, Fall, 2015

To enroll, you must complete an Individualized Section form.

Instructor: James Gentle

Instructor's email: jgentle@gmu.edu

This Web page will evolve as the semester progresses.


This course is about scientific computation. It emphasizes the role of computation as a fundamental tool of discovery in the development of science. The topics include numerical methods for applications in science, scientific software development and use, and methods for simulation.

Prerequsites for this course include CSI 690, or a similar course in numerical methods, familiarity with the Unix/Linux operating system, ability to program in either Fortran or C, and a background in the mathematical or natural sciences.


Student work in the course (and the relative weighting of this work in the overall grade) will consist of
  • individual homework assignments (30)
  • a semester project(30)
  • a final exam consisting of an in-class component and possibly a take-home component (40)
  • The individual homework assignments will generally be due weekly, and credit will be assigned based on their timely completion. Students are expected to submit the assignments when the assignments are due, whether the student is able to be present at the class or not.

    The primary text for the course is Elements of Computational and Data Science.
    Supplementary references are Numerical Recipes (either for Fortran or for C), by Press et al., and Code Complete , by McConnell, and notes by the instructor.


    Schedule

    (subject to adjustment)

    Week of August 31

    The computational sciences: Overview
    Machine representations and numerical computations
    Numerical algorithms
    Assignment: Exercises 1.1, 1.3, 1.4 (numbered assignments refer to Elements of Computational and Data Science)

    Week of September 7

    More on numerical algorithms
    Software engineering
    Computer architecture and its relation to software
    High-performance computing
    Assignment: Exercises 1.14, 1.16, 1.21, 1.22, 1.24

    Week of September 14

    Parallel processing
    Software documentation
    Design, data structures
    Random number generation
    Assignment: Exercises A.1, 2.2, use of MPI, documentation development

    Week of September 21

    Random number generation and Monte Carlo methods
    Assignment: Exercises 2.7, 2.10, 2.18, 2.25, 2.26, 2.31

    Week of September 28

    Numerical linear algebra; solving linear systems
    Fitting linear equations to data
    Vectorization of code
    Assignment: Exercises 3.18, 3.19, 3.20, 3.25, 3.34, 3.37

    Week of October 5

    Nonlinear systems
    Optimization
    Assignment: Exercises 4.2, 4.3, 4.7, 4.10, 4.11, 4.13

    Week of October 12


    Week of October 19


    Week of October 26

    Estimating functions
    Fitting models to data
    Assignment: Exercises 5.1, 5.2, 5.3

    Week of November 2


    Week of November 9

    Smoothing data and more on fitting models to data
    Assignment: Exercises 5.7, 5.8, 5.9, 5.11

    Week of November 16

    Numerical methods for ODEs
    Assignment: Exercises 6.1, 6.3, 6.5, 6.6, 6.7, 6.9, 6.10

    Week of November 30

    Numerical methods for PDEs
    Fitting differential equation models to data
    Assignment: Exercises 6.11 (get data), 6.12 (get data)

    Week of December 7

    Parallel computing
    Complex code management

    Week of December 14

    *** In-class portion of final exam ***



    Computational Resources

    General Reference Materials

    Links to other sites.

  • GAMS, general (Guide to Available Software, NIST)
  • LaTeX
  • S (R) Cheatsheet (courtesy of Barry Brown, University of Texas at Houston)

    There is a variety of material available over the net.

    The most important WWW repository of statistical stuff (datasets, programs, general information, connection to other sites, etc.) is StatLib Index at Carnegie Mellon.