Computer Science Foundations for Computational Modeling and Data Analytics

CS/CMDA 3634

I.  Catalog Description

Survey of computer science concepts and tools that enable computational science and data analytics. Data structure design and implementation. Analysis of data structure and algorithm performance. Introduction to high-performance computer architectures and parallel computation. Basic operating systems concepts that influence the performance of large-scale computational modeling and data analytics. Software development and software tools for computational modeling. Not for CS major credit. Pre: CS 2114 (3H, 3C)

Course Number: 3634 (CMDA 3634)

ADP TITLE: Comp Sci Foundations for CMDA

II.  Learning Objectives

Having successfully completed this course, students will be able to:

·  Apply algorithm analysis techniques to evaluate the performance of an algorithm and to compare data structures.

·  Describe the implications for computational science applications of basic operating systems concepts such as scheduling, synchronization and memory hierarchy.

·  Explain the basic concepts of parallel computation and compare alternative approaches used in high performance architectures.

·  Solve computational modeling or data-intensive problems on parallel computing platforms.

·  Measure and evaluate the performance of parallel applications.

·  Apply software tools and libraries to computational modeling and data-intensive science and engineering problems.

III.  Justification

The increasing reliance in science and engineering on approaches that are fundamentally computational or data-driven is widely recognized. Students preparing for careers in computational science and engineering need a solid foundation in computer science concepts and tools in order to use today’s computational resources effectively, and in order to be leaders in identifying new ways to apply the power of computing to their own science or engineering discipline.

This course is designed for students who are not majoring in CS, but who are interested in computational modeling, computational science and engineering, and data analytics. It provides students with a survey of core computer science topics such as data structures and algorithms, operating systems, computer architecture, parallel computing, and programming languages, tools and environments.

The course will be taught at the 3000 level because it requires students to have sufficient background in software design and implementation, and in data structures, as is taught in the prerequisite course (CS 2114) and its prerequisites.

IV.  Prerequisites and Corequisites

Pre: 2114

CS 2114 (Software Design and Data Structures) provides necessary background in software design and implementation, as well as basic data structures.

V.  Texts and Special Teaching Aids

Required:

Hager, G., Wellein, G. (2011). Introduction to High Performance Computing for Scientists and Engineers. Boca Raton, FL: CRC Press, 334 pp.

VI.  Syllabus

Percent of Course

1.  Data structure implementation & analysis 20

2.  Algorithm analysis 20

3.  High performance computing 20

·  Computer architecture

·  Operating systems concepts

4.  Parallel computation 25

·  Parallel programming paradigms and systems

·  Performance of parallel algorithms and applications

5.  Software tools for computational science 15

TOTAL 100

VII.  Old (Current) Syllabus

N/A

VIII.  Core Curriculum Guidelines

N/A