George Mason University

Skip Navigation

CSI 701:
Foundations of Computational Sciences

General Information

Instructor

Juan R. Cebral
Email: jcebral@gmu.edu
Phone: 703-993-4078

Prerequisites

  • Fluency with at least one of the following computer languages: FORTRAN, FORTRAN90, C, or C++ (CSI 603, 604 or equivalent)
  • Fluency with the Unix operating system (CSI 601,602 or equivalent).
  • Numerical Methods (CSI 700 or equivalent).
  • OR Permission of Instructor.

Description

The goal of Computational Sciences is to advance our knowledge of scientific disciplines (e.g. physics, astronomy, biology, medicine, etc.) through the use of computational methods and tools. Computational Sciences complement and support the traditional approaches to sciences represented by theoretical and experimental sciences. Themes of Computational Sciences include modeling and simulation, numerical methods, data analysis, scientific databases, scientific visualization and high performance computing.

This course is on scientific computation. It emphasizes the role of computation as a fundamental tool of discovery in the development of science, and will cover some of the methods, techniques, and tools used in this field. This course is NOT just a theoretical exploration of the issues in computational science nor an introduction to computational tools. Students are expected to have extensive experience with Unix and with programming before they begin this class.

Topics

  • Fundamentals of Computing - machine architecture, computer languages, machine representations of data, efficient algorithms, data structures, programming paradigms, recursion, iteration, divide and conquer methods
  • Simulation and Numerical Algorithms - simulation techniques: numerical solution to differential equations, numerical linear algebra, Monte Carlo techniques, quantitative vs qualitative simulations, connections to databases
  • Software Engineering for Scientists - complex code development, standards, specifications, validation, verification, optimization
  • High Performance Computing - Concurrent and Parallel Computing - optimization, architecture of parallel computers, simulation strategies, communications, heterogeneous systems, client-server systems
  • Applications of Computational Science - uses of computational science

Bibliography

The course is based on class notes. There are no required books. The class notes were created using the following books. These books are a good references for anyone interested in more details.

  • Code Complete: A Practical Handbook of Software Construction by Steve McConnell
  • Scientific Computing - An Introductory Survey by Michael Heath
  • High Performance Computing by Kevin Dowd and Charles Severance
  • Numerical Recipes by W. Press, S. Teukolsky, W. Vetterling and B.P. Flannery
  • Algorithms by R. Sedgewick
  • Numerical computation of internal and external flows. Vol 1. by C. Hirsch
  • Computer simulations using particles. by R. Hockney and J. Eastwood
  • Iterative methods for sparse linear systems by Y. Saad

Class Notes

The class notes change from semester to semester and are posted as they become available.

  1. Note 00
  2. Note 01
  3. Note 02
  4. Note 03
  5. Note 04
  6. Note 05
  7. Note 06
  8. Note 07
  9. Note 08
  10. Note 09
  11. Note 10
  12. Note 11
  13. Note 12

Grading

The final grades will be assigned from a series of computational projects or assignments and a final written exam.

Honor Code

As in any class, you are allowed to study with other students. However, tests and homework assignments (unless otherwise specified) must be completed on your own. SPECIFICALLY - YOU MAY NOT COPY ANY TEXT OR MATERIAL AND REPRESENT IT AS YOUR OWN WORK. For both papers and for code, you may reference or link to other peoples work (if it is consistent with the assignment), but you MUST cite the source it came from. Failure to follow these guidelines will be considered a violation of GMU's academic honor code and will be treated as such.

Assignments

Download the description, data, etc. for the assignments:

To submit your assignemnts, go to UPLOAD. Make sure you upload a single tar/gziped file for each assignment, and name four file: name_assignN.tar.gz

For visualization of the results you can use any software, including my own visualizer (zfem). This code can be run on the COS Lab (Room 249) (workstations cds01.gmu.edu to cds10.gmu.edu) from my home directory: /Users/jcebral/bin/zfem. Documentation (although not fully updated) for zfem is available HERE.

Calendar

The calendar for Fall 2009 is available HERE.

Office Hours

Before the class on Thursdays 6pm - 7pm.

Quick Links
Information
Class Notes
Assignments
Computing
Calendar

last update: 2/1/2008