CS 521 - Introduction to Computational Sciences

 

Credits: 3

 

Course Description

 

Study of computer science techniques and tools that support computational sciences and engineering. Emphasis will be on visualization, performance evaluation, parallel computing, and distributed computing.

 

Prerequisites: CS-115, CS/EE-380, and engineering standing.

 

Needed Skills:

 

Students need to be familiar with computer architectures, a programming language like C or Fortran, and mathematics like numerical linear algebra and differential equations.

 

Learning Outcomes

 

Students will develop a knowledge of a variety of computational science basics, applications, and why computational science a multidisciplinary field.

 

Specifically, students will learn:

1. Computer science aspects common to typical scientific applications.

2. Basic algorithms used in computational science applications.

3. Simple modeling techniques.

4. Simple to quite complex implementation techniques.

5. How to research and present computational science application methods.

 

Measures

 

These five specific outcomes will be evaluated on the basis of student work (homeworks, presentations, projects, and possibly exams) that will contain assignments specifically addressing these outcomes. They will be evaluated at the end of the semester.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

10

5

Data Structures

8

0

Algorithms & Software Design

10

0

Computer Organization and Architecture

5

0

Concepts of Programming Languages

5

0

Social and ethical issues

2

0

Total

40

5

 

Math Fundamentals (15): Core (10): numerical linear algebra (5), numerical solution methods for solving ordinary differential equations (5)

Advanced (5): numerical methods for solving partial differential equations (5)

 

Data structures (8): Core (8): Fundamental data structures for distributing data on parallel computers (8)

 

Algorithms and Software Design (10): Core (10): Parallel algorithms to solve linear algebra (3), differential equations (3), and physical problems (4)

 

Computer Organization and Architecture (5): Core (5): Computer designs for serial, parallel, and distributed/GRID computing.

 

Concepts of Programming Languages (5): Core (5): What languages are used to perform what computational science functions, why, and how the choice affects projects.

 

Social and Ethical Issues (2): Many computational science applications have fundamental social issues that will be discussed.

 

Oral Communication (presentations)

 

Three to four per semester

 

Written Communication

 

Homeworks and projects

 

Coverage

 

Theoretical Content: 33%

DDDAS, Computer Architecture and Networks, Numerical Linear Algebra, High Performance Computing Issues in PDEs, Cache Designs and Tricks, MPI and OpenMP, Scientific Visualization in High Performance Computing, Random Number Generators and Monte Carlo Methods

 

Problem Analysis: 33%

Bioinformatics, Wildfires, Sports Lighting, Ocean Modeling, Nanomaterials, Flame Simulation, Dust Particle Movement, Semiconductor Modeling, Contaminant Tracking, Direct and Inverse Bioelectric Fields Problems

 

Solution Design: 34%

Bioinformatics, Wildfires, Sports Lighting, Ocean Modeling, Nanomaterials, Flame Simulation, Dust Particle Movement, Semiconductor Modeling, Contaminant Tracking, Direct and Inverse Bioelectric Fields Problems

 

Student Evaluation and Feedback

 

Students are evaluated on their work and their class participation. Students receive back all of their work. Any papers are marked to indicate problems and they point out correct or better solutions. All work is discussed in detail in class.

 

NOTE: 100% lecture unless a project is requested by the class (which occurs most years).

 

Course Evaluation Questions

 

The course has helped me to:

37. Learn how complicated applications are modeled and simulated.

38. Learn how to research problems.

39. See how multiple disciplines work together to solve complicated problems that individuals cannot solve alone.

40. Learn how to work in small groups on complex problems.

41. Create presentations suitable for seminar series or conferences.

 

Possible Textbooks

 

No formal textbook is required at this time. Possible study materials include:

 

University of Colorado High Performance Scientific Computing Course Materials
EPCC training and education course materials available on line through the internet.