# Computational science

### From CS2001 Wiki

Computational Science (CN)

From the earliest days of the discipline, the techniques of computational science have constituted a major area of computer science research. As computers increase in their problem-solving power, this area—like much of the discipline—has grown in both breadth and importance. At the present time, scientific computational science stands as an intellectual discipline in its own right, closely related to but nonetheless distinct from computer science.

Although courses in computational science are extremely valuable components of an undergraduate program in computer science, the CS2001 Task Forces believe that none of the topics in this area represent core knowledge. From our surveys of curricula and interaction with the computer science education community, we are convinced no consensus exists that this material is essential for all CS undergraduates. It remains a vital part of the discipline, but need not be a part of every program.

For those who choose to pursue it, this area offers exposure to many valuable ideas and techniques, including precision of numerical representation, error analysis, numerical techniques, parallel architectures and algorithms, modelling and simulation, and scientific visualization. At the same time, students who take courses in this area have an opportunity to apply these techniques in a wide range of application areas, such as the following:

- Molecular dynamics
- Fluid dynamics
- Celestial mechanics
- Economic forecasting
- Optimization problems
- Structural analysis of materials
- Bioinformatics
- Computational biology
- Geologic modelling
- Computerized tomography

Each of the units in this area corresponds to a full-semester course at most institutions. The level of specification of the topic descriptions and the learning objectives is therefore different from that used in other areas in which the individual units typically require smaller blocks of time.

## CN/Modeling And Simulation [elective]

*Topics:*

- Definition of simulation and modelling; relationship between simulation and modelling
- Purpose including benefits and limitations: role – addressing performance, optimisation; supporting decision making, forecasting, safety considerations; for training and education
- Important application areas: healthcare (including assisting with diagnostics); economics and finance; classroom of the future; training and education; city and urban simulations; simulation in science and in engineering; games; military simulation
- Different kinds of simulations – physical, human in the loop, interaction, computer, virtual reality
- The simulation process – sound basis, identification of key characteristics or behaviours, simplifying assumptions; validation of outcomes. Model building: use of mathematical formula or equation, graphs, constraints. Methodologies and techniques. Use of time stepping for dynamic systems
- Theoretical considerations; Monte Carlo methods, stochastic processes,

queuing theory

- Technologies in support of simulation and modelling: graphics processors; Haptic feedback devices. Human computer interaction considerations.
- Assessing and evaluating simulations in a variety of contexts.
- Software in support of simulation and modelling; packages, languages

*Learning objectives:*

- Explain the benefits of simulation and modelling in a range of important application areas.
- Demonstrate the ability to apply the techniques of modelling and simulation to a range of problem areas.
- Evaluate a simulation, highlighting the benefits and the drawbacks.

## CN/Operations Research [elective]

*Topics:*

- Linear programming
- Integer programming
- The Simplex method

- Probabilistic modelling
- Queuing theory
- Petri nets
- Markov models and chains

- Optimization
- Network analysis and routing algorithms
- Prediction and estimation
- Decision analysis
- Forecasting
- Risk management
- Econometrics, microeconomics
- Sensitivity analysis

- Dynamic programming
- Sample applications
- Software tools

*Learning objectives:*

- Apply the fundamental techniques of operations research.
- Describe several established techniques for prediction and estimation.
- Design, code, test, and debug application programs to solve problems in the domain of operations research.

## CN/Parallel Computation [elective]

*Topics:*

- Overview of topics
- Models of computation
- Kinds of computation
- Task parallelism
- Data parallelism
- Event parallelism
- Properties of computation
- Bandwidth
- Latency
- Scalability
- Granularity
- Parallel architectures
- Processor architectures including multi-core
- Memory systems for high performance
- Caching and coherence
- Clusters
- Parallel programming paradigms
- Threading
- Message passing
- Event driven techniques
- Parallel software architectures
- MapReduce

- Grid computing
- Open community distributed computing (BOINC, SETI, …)

Learning objectives:

- Compare and contrast architectures for parallel computing, recognising the strengths and weaknesses of each
- Compare and contrast parallel programming paradigms recognising the strengths and weaknesses of each
- Identify the basic properties of bandwidth, latency, scalability and granularity
- Design, code, test and debug programs for parallel computation

To give feedback on security section of this area of revision, go to hereand use your ACM user name and login. |

Copyright © 2008, ACM, Inc. and IEEE, Inc.