COURSE IN COMPUTATIONAL SCIENCE – OVERVIEW, OUTLINE, RELEVANCY, AND BENEFITS

Despite the tremendous advancements in computing – computer hardware, algorithm techniques, and software, there exist numerous real-world problems in a variety of areas which are overwhelmingly difficult to understand and develop optimal solutions using the conventional CS/IT techniques and traditional software methods. A new multidisciplinary area termed Computational Science which draws upon and integrates techniques from mathematics, numerical methods, computer science, simulation, statistical methods, data science, data visualization, etc. is emerging that facilitates the understanding of complex problems, and provides tools and frameworks to solve complex real–world problems. Recognizing the need to satisfy the demand for workforce trained in elements of computational science, a several higher education institutions are offering courses, certifications, and programs related to Computational Science or Computational Science and Engineering. This paper presents an overview of computational science as a discipline, an overview of a course in computational science that we have developed, and highlights of the relevancy and benefits of computational science course(s) and program(s).


Introduction
The computing and information (CS/IT) technologies, together with the Internet and mobile technologies have matured to a point where they have penetrated virtually all of the areas of human endeavor, and have been crucial enablers and driving forces behind the processes and operations across different verticals. This is captured in Fig. 1 below. ISSN

Overview of Computational Science
It integrates several of the techniques and facilitates understanding of complex problems, obtain both qualitative and quantitative insights into the complex system behavior, and provides a framework to solve complex real-world problems in several areas such as the ones mentioned above. Computational Science is now indispensable to the solution of complex problems across domains [1].
In the next few sections, we present an overview of computational science and its significance, the need for a course (or program) in Computational Science, the outline of a course in Computational Science that we have developed, the relevancy and benefits of courses and programs in Computational Science, followed by conclusions.
The importance of the discipline of Computational Science for the advancement and sustenance of national competitiveness is given in [1,2]. It identifies Computational Science as the third pillar of the scientific endeavors, alongside theory and physical experiment. It presents examples of the profound effects of developments that computational science has had in areas such as industrial and pharmaceutical design and production; epidemiology; weather and climate prediction; global financial markets and systems.
One of the statements from the President's Information Technology Advisory Committee (PITAC) highlighting the importance and urgency of computational science curriculum is: "Moreover, today we are neither training enough computational scientists nor appropriately preparing students for the disciplinary and multidisciplinary use of leading-edge computational science techniques". The report further recommends: "Universities and the Federal government's R&D agencies must make coordinated, fundamental, structural changes that affirm the integral role of computational science in addressing the 21st century's most important problems, ..……" The importance of Computational Science and several recommendations to give impetus to the discipline have been compiled by the Mathematical and Physical Sciences (MPS) Directorate at NSF [11]. The recommendations (briefly) are, (a) recognition of computational science as a discipline in its own right; (b) long term support of the computational science community, permanent programs that provide long-term funding and appropriate reward metrics; (c) support for software development and stewardship; (d) facilitate interdisciplinary interactions between domain specialists on topics of uncertainty quantification, verification, validation, and risk assessment; (e) workforce development at all levels in computational science; (f) support unconventional and high-risk activities in computational science.
An overview of computational science and its future prospects is given in [3]. An overview of computational science and its significance is presented in [10], which also presents the major modeling techniques commonly used.

Needs for Computational Science
In today's world there are far too many problems which are complex which cannot be solved by traditional computing methods. Several of these problems, the current scale of the problems, and their (adverse) effects were not existent a few years ago. A few examples are, greenhouse gas effects and global warming, pollution of air and water, use of chemicals in many processes, changing global weather patterns, newer diseases and their spread, public transportation management in mega cities, congestion in roads and highways, public safety issues, public health issues with growing population and movement of people across wide distances, pollution of various kinds due to industrialization and personal vehicles, etc.
The conventional methods of CS/IT are not able to cope up the complexities nor are able to develop effective solutions to the above (and other) problems. This is due to various reasons, such as, huge problem sizes for which traditional solutions will not scale up, highly complex interactions of numerous factors in the newer problems, extreme difficulty in determining cause-effect relationships in many situations, etc.Computational Science methods are expected to aid in the understanding of thesecomplex problems and develop effective solutions requires. In this regard, it is important to develop a workforce which is adept in Computational Science methods and techniques.
With the pervasive uses of computers in numerous domains and areas, it is important for computer scientists to understand the problems and needs in the domain(s) in order to develop the software systems for solving the domain problems. A survey of prevalent programming practices within this scientific community, the importance of computational power in different fields, use of tools to enhance performance and software productivity, computational resources leveraged, and prevalence of parallel computation are presented in [5].
The study therein and the results reveal several patterns which suggest ways to bridge the gap between scientific researchers and programming tools developers.
According to [2] there is a need for approximately one million people in information and computational technology, a need that cannot be met solely by all computer science departments working at full capacity.
The key to filling the need should start at institutes of higher education by developing courses and programs in Computational Science.

Computational Science Course / Program
One of the earliest studies to come up with the components and elements of computational science and engineering education is [6]. It also contains a survey of computational science education. Scientific Computing is another popular name for the course(s) having the same theme/emphasis as Computational Science. A few challenges and opportunities in computational science and engineering study are presented in [7].
A survey of various aspects of programs in Computational Science is given in [4]. It compiles results of a survey of 66 participants regarding graduate program, and 14 participants regarding undergraduate programs. The various parameters considered are types of graduate programs, core curriculum, program inception dates, average time to establish programs, student enrollment and graduation, etc.
The multidisciplinary nature of computational science and engineering (CSE), its relation to other disciplines, and the stages through which CSE education is evolving is described in [8]. It discusses the challenges and benefits of different approaches to CSE education and also the emergence of a set of core elements common to different approaches. It also presents a review of the content of courses, curricula, and degrees offered in CSE.
We have developed a course covering the major aspects of Computational Science. This is a 40-hour course which has been designed to be interactive and hands-on.
Real-world problems drawn from different domains, such as Physical Sciences, Biological Sciences, Social sciences, Healthcare, etc. are studied, modeled, and solved. The participants will be actively engaged (individually and/or in groups) in problem formulation, developing a mathematical model for the problem, development of solution, implementation of solution, and interpretation of the results.
The problems studied and solved in the course include both theoretical (paper-pencil solutions) as well as one requiring programming and simulations. Some of the programming problems have been designed to be implemented using Excel, while several others require the use of MATLAB and/or high-level programming languages (ex. C++, Java, Python).
The prerequisite courses would include Calculus I and II, Linear Algebra and Matrix Methods, Applied Statistics, Fundamentals of Computing, and Introduction to Programming.

Course objectives
The overall objectives of the course are to expose the students to numerous principles and concepts underlying a variety of real-world problems across multitude of disciplines, and to teach methods and techniques of (a) problem analysis, (b) model formulation, (c) making appropriate (simplifying) assumptions, (d) establishing relationships among variables and submodels, (e) determining equations and functions, (f) model solving, (g) implementing the model, and (h) verifying and interpreting the model's solution.

Course learning outcomes
The course learning outcomes are, (a) ability to understand problems across several domains, (b) problem formulation, (c) Problem modeling using mathematical techniques, (d) development of solution, and (e) interpretation of results

Course audience
The computational science course content that we have developed is inter-disciplinary and can be suitably modified (in terms of areas covered, problems selected, and the depths of coverage) to suit students from a variety of disciplines.
The course could be tuned with respect to depths of mathematical and programming and the emphasis on topics, and offered at three different levels: 1.
As a general education (GenEd) course.

2.
As an upper-level undergraduate course in CS, CSE, IT, and/or ECE programs.

3.
As a first-year graduate level course in Science and/or Engineering programs.

Typical course outline
In this section, we present the outline of an introductory course in Computational Science that we have developed. The major topics include: Introduction to Computational Science; Overview of several real-world problems; Modeling process; Various kinds of models -(i) data driven models; (ii) cellular automata; (iii) agent-based models; (iv) matrix models; (v) Markov-chain models; (vi) graph models; Unconstrained growth and decay; Newton's law of heating and cooling; carbon dating; constrained growth models -carrying capacity; competition; predator-prey models; drug dosage determination; spread of diseases; projectile motion; aircraft tracking; enzyme kinetics; heat diffusion in a metal plate; spread of forest fires; movement of ants; etc. This course draws upon major content from [9], which has a well compiled list of projects in computational science, drawn from a variety of topics in physical science, engineering, and social science. It is also a popular and widely used resource for undergraduate and first year graduate course in computational science.
Several of the problems in our course are also used from [12].

Sample Problems
In the following subsections, sample problems and their solution methods are given. These problems are selected from [12].

Sample Problem 1: Projectile motion
A projectile is an object that rises and falls under the influence of gravity, and projectile motion is the height of that object as a function of time. Projectile motion involves objects that are dropped, thrown straight up, or thrown straight down. Factors that influence the height of the projectile include the height from which the object is dropped or thrown, whether upward/downward velocity is involved, and the pull of gravity downward on the object. On Earth, the acceleration due to gravity is 2 approximately 32 feet/sec.2 (or 9.81 meters/sec. ).
The MATLAB program is given in Fig. 3 below. The same projectile problem can be solved using Excel (by having the suitable formulas in the cells). This is shown in Fig. 5. The corresponding plots obtained in Excel are shown in Fig. 6. Note that these are the same as those obtained using the MATLAB solution. The idea being that for several problems, familiarity with MATLAB is not necessary, and Excel which is comparatively easy to use can be employed. The plots for the projectile problem using Excel is given in Fig. 6 below. Note that these are exactly the same as the ones obtained using MATLAB, as it should be.

Sample Problem 2: Best viewing angle of a target from aircraft
An airplane is flying at a height of h = 900 ft while watching a target that is 70 ft tall (H = 70 ft) as shown in Fig. 7. The best view of the target is when θ is maximum. We need to determine the distance x at which θ is maximum. The plots of the viewing angle as a function of the distance of the aircraft from the object is given in Fig. 9 below.

Sample Problem 3: Aircraft tracking
The airplane shown is flying at a constant speed of v = 400 mi/h along a straight path as shown in Fig. 10  Several questions can be asked such as, (a) What is the direct distance of the airplane from the radar after 5 minutes? (b) After how many minutes would the plane be 2500 ft directly above the ground? (c) How many miles would the airplane have traversed horizontally after 3 minutes? (d) What will be the angle θ after 2 minutes? Etc.
Distance covered by aircraft in its direction of motion in 5 minutes: D = 400 * 5 / 60 = 33.33 miles.

Relevancy and Benefits
Despite the tremendous advancements in computing and related technologies, there are numerous pressing problems in today's world, which are complex and of enormous scale, and are not efficiently solved by traditional methods. Computational Science, drawing upon synergies from various (related) disciplines, provides tools and framework for efficient and effective solutions to such problems. The rationale for (a) is that software and hardware (both commodity as well as specialized/customized) is being designed and developed for such diversity of areas at break neck speed that for the systems to be developed in a timely and cost effective manner, and for them work correctly, efficiently, and reliably, a knowledge of the principles underlying the workings of the other areas is crucial. The rationale for (b) is that technicians, scientists, engineers, healthcare workers, etc., would also be increasingly involved in software development and increasingly interacting with hardware/software systems to accomplish their tasks, and the essentials of computing and IT would make them better equipped to carry out their work efficiently and effectively.
Courses and programs in computational science would fill the needs of a new breed of workforce adept at understanding complex real-world problems in different domains and develop efficient and effective solutions in a cost-effective manner.

Conclusions
Computational science is an emerging discipline which combines several techniques drawn from a variety of areas (Mathematics, Computer Science, Numerical Methods, Statistical Methods, Simulation, Visualization, etc.) to understand, model, and solve complex real-world