Departments across campus teach a very wide variety of courses in computational science and engineering. In addition, PICSciE supports courses in core topics, such as software engineering and numerical analysis. A graduate certificate program in computational and information science is now available.
The goal of this course is to teach basic tools and principles of writing good code, in the context of scientific computing. Specific topics include an overview of relevant compiled and interpreted languages, build tools and source managers, design patterns, design of interfaces, debugging and testing, profiling and improving performance, portability, and an introduction to parallel computing in both shared memory and distributed memory environments. The focus is on writing code that is easy to maintain and share with others. Students will develop these skills through a series of programming assignments and a group project.
A broad introduction to numerical algorithms used in scientific computing. The course will begin with a review of the basic principles of numerical analysis, including sources of error, stability and convergence of algorithms. The theory and implementation of techniques for linear and nonlinear systems of equations, and ordinary and partial differential equations will be covered in detail. Examples of the application of these methods to problems in physics, astrophysics and other disciplines will be given. Issues related to the implementation of efficient algorithms on modern high-performance computing systems will be discussed.
Computers have made it possible, even easy, to collect vast amounts of data from a wide variety of sources. It is not always clear, however, how to use that data, and how to extract useful information from it. This problem is faced in a tremendous range of business and scientific applications. This course will focus on some of the most useful approaches to this broad problem, exploring both theoretical foundations and practical applications. Students will gain experience analyzing several kinds of data, including text, images and biological data. Topics will include classification, clustering, prediction, and dimensionality reduction.