CSCE 564: COMPUTATIONAL SCIENCE

 

Catalog Course Description:

564—Computational Science. (3) (Prereq: Math 526 and CSCE 145 or 207 or 500) Introduction to computational science.  Vector, parallel, distributed and massively parallel architectures.  Parallel algorithms, scientific visualization, and techniques for solving scientific problems.

 

Prerequisite(s) By Topic:

Introductory programming and data structures

Linear algebra

 

Textbook(s) and Other Required Material:

Foster, Designing and Building Parallel Programs, Addison Wesley, 1995.

Gropp, Lusk, Skjellum, Using MPI, MIT Press, 1994.

 

Computing Platform: Various parallel machines as availability permits.

 

Course Objectives: {Assessment Methods Shown in Braces}

1.    Describe the architecture of parallel computers {tests}

2.    Describe several scientific problems for which parallel computation is required for their effective solution {tests}

3.    Describe the nature of computations suitable for programming on a parallel computer {tests}

4.    Demonstrate the ability to program a parallel computer in a high level language with parallel features {programming assignments, tests}

 

Topics Covered:

1.    Parallel computer architecture: processors, memory hierarchies, interconnect (9 hours)

2.    Parallel computing languages and paradigms (9 hours)

3.    Commonly parallelized algorithms and kernels (15 hours)

4.    Case studies (6 hours)

5.    Reviews and tests (3 hours)

 

Syllabus Flexibility: High.  Parallel computing and scientific computation are very broad, and the textbook, syllabus, and choice of topics to be emphasized can vary substantially.

 


Relationship of Course to Program Outcomes:

The contribution of each course objective to meeting the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor.  Blank if not related.










Course Objectives

Program Outcomes

1. Logic & Math

2. Computing Fundamentals

3. Apply Computing Principles

4. Work on teams

5. Communicate Effectively

6. Liberal arts & Soc. Sciences

7. Basic Science and Lab Procedures

8. Learn New Tools & Processes

9. Employed upon Graduation

10. Application Area

11. Electronics and Digital Sys Design

1. Describe the architecture of parallel computers

 

3

3

 

 

 

 

 

 

 

 

2. Describe several scientific problems for which parallel computation is required for their effective solution

 

3

3

 

 

 

 

 

 

 

 

3. Describe the nature of computations suitable for programming on a parallel computer

 

 

3

 

 

 

 

 

 

 

 

4. Demonstrate the ability to program a parallel computer in a high level language with parallel features

 

3

3

 

 

 

 

3

2

 

 

 

Estimated CSAB Category Content:

Algorithms:                                                         1 hr

Data Structures:                                                  0

Software Design:                                                 0

Concepts of Programming Languages                   0

Organization and Architecture                              2 hr

 

Oral and Written Communication: none

 

Social and Ethical Issues: none

 

Theoretical Content:

Parallelization of algorithms

 

Analysis and Design:

Implementation of parallel algorithms

 

Class/Laboratory Schedule:

Lecture: 3 periods of 50 minutes or 2 periods of 75 minutes per week

 

Difference between Undergraduate and Graduate Work:

Students enrolled for graduate credit will have to do additional and/or more difficult assignments to justify the receipt of graduate credit for this course.

 

Course Coordinator: Duncan Buell

 

Modification and Approval History

Initial description, prior to February 2001

Revised, February 2001

Revised July 2002 to include statement on graduate work