State University of New York at Oswego

  1. COURSE NUMBER AND CREDIT

    CSC 314 - 3 Semester Hours

  2. COURSE TITLE

    Elements of Computational Science

  3. COURSE DESCRIPTION

    An introduction to programming techniques used in the solution of problems in the physical sciences. The foci are the theoretical and practical techniques of translating some of the typical problems encountered in the natural sciences to computer algorithms. Emphasis is on the creation of new software and the use of existing software packages to implement these algorithms.

  4. PREREQUISITES

    CSC 212 and MAT 210

  5. COURSE JUSTIFICATION

    Almost all students can benefit from experience in the use of computer applications. Students of the natural sciences, however, may want more than just a cursory introduction. Problems encountered in these areas often rely heavily on computers to produce detailed solutions or provide insight into the structure of the problems themselves. These students should have an understanding not only of the problems pertinent to their areas of concentration, but also the concepts of algorithm design and software engineering which allow the resolution of these problems.

    This course will provide students who are not computer science majors with the opportunity to develop a further understanding of the principles introduced in their first programming course. At the same time students will see how these principles can be applied in areas related to their majors.

  6. COURSE OBJECTIVES

    Upon successful completion of this course, students will be able to:

    1. Extend the algorithm development and coding techniques acquired in previous programming courses to the level where they may be used in the resolution of significant problems.
    2. Understand the problem solving techniques employed in several of the natural sciences.
    3. Manage and use software libraries- reusable tools-which can be applied to a range of problems in the natural sciences.

  7. COURSE OUTLINE

    1. Overview of computational science
      1. Mathematical nature of science problems
      2. Computer solutions of problems
      3. Pragmatics of computer resolution of mathematically posed questions
    2. Specification of programming language syntax and semantics
      1. Fundamental language constructs
      2. Sub-program utilization
      3. Separate compilation
    3. Algorithm design
      1. Top-down development of problem solutions
      2. Translation to a high level programming language
      3. Bottom-up solution of sub-problems
    4. Sub-program packages
      1. Designing a set of sub-programs
      2. Using an existing package
      3. Commercially available sub-program packages
    5. Numerical algorithms
      1. Linear equations
      2. Interpolation
      3. Sorting
    6. Graphical techniques
      1. Pragmatics
        1. Raster devices
        2. Vector devices
      2. Two dimensional plotting
        1. Points
        2. Lines
        3. Areas
    7. Deterministic simulations of classical physical systems
      1. Differential equations
      2. Thermal flow
      3. Planetary motion
      4. Oscillatory motion
      5. Electricity and magnetism
    8. Probabilistic simulations
      1. Random numbers
      2. Monte Carlo techniques
      3. Numerical integration
    9. Geometrical models
      1. Fractals
      2. Cellular automata
    10. Chaotic behavior of dynamic systems

  8. METHODS OF INSTRUCTION

    1. Lectures and demonstrations
    2. Readings
    3. Student participation

  9. COURSE REQUIREMENTS

    1. Readings
    2. Programming assignments
    3. Examinations

  10. MEANS OF EVALUATION

    1. Programming assignments
    2. Participation
    3. Examinations

  11. RESOURCES

    Only readily available computer and software systems will be needed.

  12. BIBLIOGRAPHY

    J. Banks (ed). Handbook of Simulation: Principles, Methodology, Advances, Applications, and Practice. John Wiley, New York, 1998.

    J. Banks, J.S. Carson, II, B.L. Nelson and D.M. Nicol. Discrete-Event System Simulation. Prentice Hall, New Jersey, 2000.

    R. Hamming. Numerical Methods for Scientists and Engineers , 2nd Edition. Dover Publications, Mineola, New York, 1987.

    D.E. Knuth. The Art of Computer Programming, Volume 1 Fundamental Algorithms, Third Edition. Addison-Wesley, Reading, MA, 1997.

    D.E. Knuth. The Art of Computer Programming, Volume 2 Seminumerical Algorithms, Third Edition. Addison-Wesley, Reading, MA, 1997.

    D.E. Knuth. The Art of Computer Programming, Volume 3 Sorting and Searching , Second Edition. Addison-Wesley, Reading, MA, 1998.

    A.M. Law and W.D. Kelton. Simulation Modeling and Analysis, (3rd ed). McGraw Hill, Boston, 2000.

    W. Press, B. Flannery, S. Teukolsky, W. Vetterling. Numerical Recipes in C: The Art of Scientific Computing , 2nd Edition. Cambridge University Press, New York, 1993.

    W. Press, B. Flannery, S. Teukolsky, W. Vetterling. Numerical Recipes in C++: The Art of Scientific Computing , 2nd Edition. Cambridge University Press, New York, 2002.

    W. Press, B. Flannery, S. Teukolsky, W. Vetterling. Numerical Recipes in Fortran 90 , 2nd Edition. Cambridge University Press, New York, 1996.

    R. Sedgewick. Algorithms, Second Edition. Addison-Wesley, Reading, MA, 1988.

    R. Sedgewick. Algorithms in C, Third Edition. Addison-Wesley, Reading, MA, 2001.

    R. Sedgewick. Algorithms in Java. Addison-Wesley, Reading, MA, 1988.

    J.R. Thompson. Simulation: A Modeler's Approach. John Wiley and Sons, New York, 1999.

    D. Yang. C++ and Object-oriented Numeric Computing for Scientists and Engineers . Springer Verlag, New York, 2000.


Document:
URL:
Last Update: