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.