Home > Course Descriptions

## Finding Eligible Scientific Computing Courses

On YES, to select all courses approved for credit in the Scientific Computing minor, select the “Advanced” link next to the search box, select the “Class Attributes” drop-down box on the bottom right of the advanced search page, and then select “Eligible for Scientific Computing” to find all courses.

## Core Programming Courses

**CS 1101 [Formerly CS 101] Programming and Problem Solving.** An intensive introduction to algorithm development and problem solving on the computer. Structured problem definition, top down and modular algorithm design. Running, debugging, and testing programs. Program documentation. [3]

- or -

**CS 1103 [Formerly CS 103] Introductory Programming for Engineers and Scientists. **An introduction to problem solving on the computer. Intended for students other than computer science and computer engineering majors. Methods for designing programs to solve engineering and science problems. Generic programming concepts. [3]

**CS 2201 [Formerly CS 201] Program Design and Data Structures.
**The study of elementary data structures, their associated algorithms and their application in problems; rigorous development of programming techniques and style; design and implementation of programs with multiple modules, using good data structures and good programming style. Prerequisite: CS 1101. [3]

**Program Design and Data Structures for Scientific Computing. Data structures and their associated algorithms in application to computational problems in science and engineering. Time and memory complexity; dynamic memory structures; sorting and searching; advanced programming and problem-solving strategies; efficient software library use. Prerequisite: CS 1101 or 1103. [3]**

- or -

- or -

**CS 2204****[Formerly CS 204]**## Scientific Computing Courses

**SC 3250
[Formerly SC 250] Scientific Computing Toolbox.
**Team taught course with topics illustrating use of computational tools in multiple science and engineering domains. Topics may include simulations of complex physical, biological, social, and engineering systems, optimization and evaluation of simulation models, Monte Carlo methods, scientific visualization, high performance computing, or data mining. Prerequisite: CS 1101 or 1103; Math 1200. [3]

**SC 3260
[Formerly SC 260] High Performance Computing.
** Introduction to concepts and practice of high performance computing. Parallel computing, grid computing, GPU computing, data communication, high performance security issues, performance tuning on shared-memory-architectures. Prerequisite: CS 2201 or CS 2204. SPRING. [3]

**SC 3841
[Formerly SC 293A] Directed Study in Scientific Computing.
**Participation in ongoing research projects under direction of a faculty sponsor. Project must combine scientific computing tools and techniques with a substantive scientific or engineering problem. Consent of both the faculty sponsor and one Director of the SC minor is required. Prerequisite: SC 3250. [1-3 each semester]

**SC 3842
[Formerly SC 293B] Directed Study in Scientific Computing.
**Continuation of SC 3841 under the direction of the same or different faculty sponsor. Same requirements as for SC3841 [1-3 each semester]

**SC 3843
[Formerly SC 293C] Directed Study in Scientific Computing.
**Continuation of SC 3842 under the direction of the same or different faculty sponsor. Same requirements as for SC3841. [1-3 each semester]

**SC 3851
[Formerly SC 295A] Independent Study in Scientific Computing.
**Development of a research project by the individual student under direction of a faculty sponsor. Project must combine scientific computing tools and techniques with a substantive scientific or engineering problem. Consent of both the faculty sponsor and one Director of the SC minor is required. Prerequisite: SC 3250. [1-3 each semester]

**SC 3852
[Formerly SC 295B] Independent Study in Scientific Computing.
**Continuation of SC 3851 under the direction of the same or different faculty sponsor. Same requirements as for SC3851. [1-3 each semester]

**SC 3853
[Formerly SC 295C] Independent Study in Scientific Computing.
**Continuation of SC 3852 under the direction of the same or different faculty sponsor. Same requirements as for SC3851. [1-3 each semester]

**SC 3890
[Formerly SC 290] Special Topics in Scientific Computing: Advanced High Performance Computing.
**
This course is offered in online partnership with the University of Illinois. High performance computing algorithms and software technology, with an emphasis on using distributed memory systems for scientific computing. Theoretical and practically achievable performance for processors, memory systems, and networks, for large-scale scientific applications. The state-of-the-art and promise of predictive computational science and engineering. Algorithmic kernels common to linear and nonlinear algebraic systems, partial differential equations, integral equations, particle methods, optimization, and statistics. Computer architecture and the stresses put on scientific applications and their underlying mathematical algorithms by emerging architecture. State-of-the-art discretization techniques, solver libraries, and execution frameworks. Students are expected to have familiarity with C or C++ in a Unix environment, some basic numerical algorithms, and basic computer architecture.
Prerequisite: SC 3260 or CS 2231
[3]

**SC 3890
[Formerly SC 290] Special Topics in Scientific Computing.
**Special topics course. [3]

**SC 5250
Scientific Computing Toolbox.
**Team taught course with topics illustrating use of computational tools in multiple science and engineering domains. Topics may include simulations of complex physical, biological, social, and engineering systems, optimization and evaluation of simulation models, Monte Carlo methods, scientific visualization, high performance computing, or data mining. Prerequisites: Some computer programming experience and some knowledge of basic calculus. [3]

**SC 5260
High Performance Computing.
**Introduction to concepts and practice of high performance computing. Parallel computing, grid computing, GPU computing, data communication, high performance security issues, performance tuning on shared-memory-architectures. Prerequisites: Some computer programming experience. [3]

**SC 5890
Special Topics in Scientific Computing: Advanced High Performance Computing.
**This course is offered in online partnership with the University of Illinois. High performance computing algorithms and software technology, with an emphasis on using distributed memory systems for scientific computing. Theoretical and practically achievable performance for processors, memory systems, and networks, for large-scale scientific applications. The state-of-the-art and promise of predictive computational science and engineering. Algorithmic kernels common to linear and nonlinear algebraic systems, partial differential equations, integral equations, particle methods, optimization, and statistics. Computer architecture and the stresses put on scientific applications and their underlying mathematical algorithms by emerging architecture. State-of-the-art discretization techniques, solver libraries, and execution frameworks. Students are expected to have familiarity with C or C++ in a Unix environment, some basic numerical algorithms, and basic computer architecture. Prerequisite: SC 5260 or CS 2231 [3]

**SC 5890
[Formerly SC 290] Special Topics in Scientific Computing.
**
Special topics course.[3]

## Disciplinary Courses in Scientific Computing

Approved courses by subject area are listed below. These courses either provide a detailed treatment of a core scientific computing tool and technique or combine scientific computing tools and techniques with a substantive area of science of engineering. New courses can be approved by the Directors of the minor.

#### ANTHROPOLOGY

**ANTH 3261
[Formerly ANTH 280] Introduction to Geographic Information Systems and Remote Sensing.
**Computerized graphics and statistical procedures to recognize and analyze spatial patterning. Spatial data-collection, storage and retrieval; spatial analysis and graphic output of map features. Integration of satellite imagery with data from other sources through hands-on experience. Assumes basic knowledge of computer hardware and software. [3] (MNS)

#### ASTRONOMY

**ASTR 3600
[Formerly ASTR 252] Stellar Astrophysics.
**Absorption and emission of radiation by the sun and stars. Principles of stellar structure and stellar evolution from formation to death. Prerequisite: Mathematics 2420, Physics 3200 and either 2250 or 2250W. [3] (MNS)

**ASTR 3700
[Formerly ASTR 253] Galactic Astrophysics.
**Interstellar matter and gaseous nebulae, the structure and evolution of normal galaxies, active galactic nuclei and quasars, and observational cosmology. Prerequisite: Mathematics 2420 and either Physics 2250 or 2250W. [3] (MNS)

**ASTR 3800
[Formerly ASTR 354] Structure Formation in the Universe.
**Observational and theoretical aspects of extragalactic astronomy. Measurements of galaxies and of the large scale structure of the universe from galaxy surveys. The expansion history of the universe and the roles of dark matter and dark energy. The growth of density fluctuations in the universe due to gravity. Cosmological N-body simulations and the formation of dark matter halos. The physics of galaxy formation. Experimental probes of dark matter and dark energy. Graduate-level course that requires permission of the instructor. Prerequisites: Mathematics 2420 or 2610, Physics 1601 or 1901, Physics 1602 or 1902, Computer Science 1101 or 1103. [3]

#### BIOLOGICAL SCIENCES

**BSCI 3272
[Formerly BSCI 272] Genome Science.
**Aims and importance of the science. Retrieval of genome data from public databases; experimental and computational methods used in analysis of genome data and their annotation. Functional aspects of genomics, transcriptomics, and proteomics; use of phylogenetics and population genomics to infer evolutionary relationships and mechanisms of genome evolution. Prerequisites: 1510 and 1511. [3] (MNS)

#### BIOMEDICAL ENGINEERING

**BME 4310
[Formerly BME 279] Modeling Living Systems for Therapeutic Bioengineering.
**Introduction to computer modeling and simulation in therapeutic bioengineering processes. Building computer models and using modern modeling software tools. Introduction to numerical techniques to solve differential equations and origin of mathematical models for biotransport, biomechanics, tumor/virus growth dynamics, and model-based medical imaging techniques. Prerequisite: Math2400 or Math 2420, CS 1103 or equivalent, BME 2100 or equivalent mechanics course. SPRING. [3]

#### CHEMICAL AND BIOMOLECULAR ENGINEERING

**CHBE 4830
[Formerly CHBE 285] Molecular Simulation.
**Introduction to the modern tools of statistical mechanics, such as Monte Carlo and molecular dynamics simulation, and variations. Understanding the methods, capabilities, and limitations of molecular simulation and applications to simple and complex fluids relevant to the chemical and related processing industries. Prerequisite: ChBE 2200, ChBE 2250, ChBE 3200, or equivalents. [3]

#### CHEMISTRY

**CHEM 5410
[Formerly CHEM 333] Molecular Modeling Methods.
**This course will present a variety of molecular modeling and computational chemistry techniques, including background theory, implementation details, capabilities and limitations of various methods, and applications examples. Most applications examples will focus on biomacromolecules, although small molecule calculations and liquid simulations will also be presented. A reasonable working knowledge of physical chemistry and biochemistry will be assumed, and any good biochemistry and physical chemistry textbooks will serve as useful references for those who may need some review. Graduate-level course requiring permission of instructor as well as CHEM 3300, CHEM 3310, BSCI 2520 [4]

**CHEM 5420
[Formerly CHEM 337] Computational Structural Biochemistry.
**Theoretical and practical aspects of protein sequence alignments, secondary structure prediction, comparative modeling, protein-protein and protein-ligand docking. Structure-based drug design, virtual screening, quantitative structure activity relations, cheminformatics, and pharmacophore mapping in therapeutic development. Prerequisite: 3310. Serves as repeat credit for students who completed 238 prior to fall 2010. [4]

#### COMPUTER SCIENCE

**CS 3274
[Formerly CS 274] Modeling and Simulation.
**General theory of modeling and simulation of a variety of systems: physical processes, computer systems, biological systems, and manufacturing processes. Principles of discrete-event, continuous, and hybrid system modeling, simulation algorithms for the different modeling paradigms, methodologies for constructing models of a number of realistic systems, and analysis of system behavior. Computational issues in modeling and analysis of systems. Stochastic simulations. Prerequisite: CS 2201, Math 2410 or Math 2420, Math 2810 or Math 2820. SPRING. [3]

#### EARTH AND ENVIRONMENTAL SCIENCE

**EES 4760/5760 Agent and Individual Based Computational Modeling. **Applications in natural, social, and behavioral sciences and engineering. Designing, programming, and documenting models. Using models for experiments. Examples from environmental science, ecology, economics, urban planning, and medicine. Familiarity with basic statistics and proficiency in algebra are expected. [3] (MNS)

#### ECONOMICS

**ECON 3050 [Formerly ECON 253] Introduction to Econometrics. **Quantitative methods of economic analysis. Measurement, specification, estimation, and interpretation of economic models. Econometric computation using microcomputers. No credit for graduate students in economics. Prerequisite: 3010 and either 1500, 1510, or both MATH 2820L and either MATH 2810 or 2820. [3] (SBS)

#### ELECTRICAL & COMPUTER ENGINEERING

**EECE 6258 Quantitative Medical Image Analysis. ** Image processing and statistical methods for quantitative analysis and interpretation of medical imaging data. Focus on neuroimaging approaches related to brain structure, function, and connectivity. Specific topics include massively univariate analysis (parametric mapping), multiple comparison issues, random fields, independent components, non-parametric approaches, and Monte Carlo methods. Prerequisites: MATH 2810, image / signal processing, programming experience. [3]

#### MATHEMATICS

**MATH 3620
[Formerly MATH 226] Introduction to Numerical Mathematics.
**Numerical solution of linear and nonlinear equations, interpolation and polynomial approximation, non-numerical differentiation and integration, least-squares curve fitting and approximation theory, numerical solution of differential equations, errors and floating point arithmetic. Application of the theory to problems in science, engineering, and economics. Student use of the computer is emphasized. Prerequisite: computer programming and linear algebra, differential equations. [3] (MNS)

**MATH 3630
[Formerly MATH 262]. Mathematical Modeling in Biology.
** Mathematical modeling with applications in biology and medicine. Basic mathematical modeling tools such as linear regression, differential equations, matrix and statistical analysis, probability theory, and computer simulation. Mathematical models in population dynamics, epidemiology, immunology, diffusion phenomena, pharmacokinetics, neurophysiology, and biochemistry of cells. Prerequisite: linear algebra and ordinary differential equations. [3] (MNS)

**MATH 3660
[Formerly MATH 256] Mathematical Modeling in Economics.
**Modeling microeconomic problems of supply and demand, profit maximization, and Nash equilibrium pricing. Auctions and bargaining models. Statistical models and data analysis. Computational experiments. Prerequisite: 3200 or 2501. [3] (MNS)

**MATH 4600
[Formerly MATH 286] Numerical Analysis.
**Finite difference and variational methods for elliptic boundary value problems, finite difference methods for parabolic and hyperbolic partial differential equations, and the matrix eigenvalue problem. Student use of the computer is emphasized. Prerequisite: 3620 or consent of instructor. [3] (MNS)

**MATH 4620
[Formerly MATH 288] Linear Optimization.
**An introduction to linear programming and its applications. Formulation of linear programs. The simplex method, duality, complementary slackness, dual simplex method and sensitivity analysis. The ellipsoid method. Interior point methods. Possible additional topics include the primal-dual algorithm, cutting planes, or branch-andbound. Applications to networks, management, engineering, and physical sciences. Prerequisite: linear algebra and computer programming (CS 1101 or 1103). [3] (MNS)

**MATH 4630
[Formerly MATH 287] Nonlinear Optimization.
**An introduction to modeling, theory and methods for nonlinear optimization problems. Modeling of application problems in science and engineering. Methods of unconstrained optimization with one and several variables. Theory of constrained optimization, including Karush-Kuhn-Tucker conditions. Penalty functions and other methods of constrained optimization. Computer tools such as a subroutine library or symbolic algebra system. Prerequisite: multivariable calculus, linear algebra, and computer programming (CS 1101 or 1103). [3] (MNS)

**MATH 9600
[Formerly MATH 394A] Computing with Splines.
**Spline functions are an important computational tool with many applications in numerical analysis, including data fitting and approximation, numerical quadrature, curve and surface design and representation, and the numerical solution of PDE's (the FEM method). The purpose of this seminar is to investigate best available algorithms for solving these problems based on splines. No background in splines will be required since any needed concepts and results will be covered as needed. The only prerequisites are undergraduate math and ability to program (preferably in Matlab). It should be of special interest to engineers and scientists, as well as anyone else who needs to solve problems numerically. Undergraduates with some computational experience are encouraged to enroll in the course, especially if they have taken a numerical analysis course such as MATH 3620. [3]

#### MECHANICAL ENGINEERING

**ME 3890 [Formerly ME 210] Special Topics: Microscale Energy Transport. **Theoretical examination of energy transport by electrons and phonons and modeling of transport phenomena in crystalline solids at reduced length scales. Particle transport models and solution methods for energy carriers in the context of semiconductor electronics, direct energy conversion devices and nanostructures. Prerequisite: consent of instructor.[3]

**ME 4263 [Formerly ME 263] Computational Fluid Dynamics and Multiphysics Modeling. **Computational modeling of viscous fluid flows and thermal-fluid-structure interaction. Computational techniques including finite-difference, finite-volume, and finite-element methods; accuracy, convergence, and stability of numerical methods; turbulence modeling; rotating machinery; multiphase flows; and multiphysics modeling. Prerequisite: ME 3224. [3]

#### PHYSICS

**PHYS 2237
[Formerly PHYS 257] Computational Physics.
**Topics in modern physics analyzed exclusively with computer programs. Three-body solar system orbits, random walk diffusion and entropy growth, magnetism in the second order using model, non-equilibrium molecular dynamics, and solutions to the Schrödinger equation with numerical methods. Prerequisites: Prerequisite: One year of calculus-based physics and one year of calculus and either CS 1101, CS 1103, or familiarity with commercial mathematical applications (Mathematica, Mathcad, or even EXCEL). [3] (MNS)

**PHYS 3207
[Formerly PHYS 223C] Computational Thermal and Statistical Physics.
**Temperature, work, heat, and the first law of thermodynamics. Entropy and the second law of thermodynamics. Kinetic theory of gases with applications to ideal gases and electromagnetic radiation. Prerequisite: CS 1101 or 1103, One year of calculus-based physics and one year of calculus. Serves as repeat credit for students who have completed PHYS 3200. [3] (MNS)

#### PSYCHOLOGY

**PSY 3891
Special Topics in Cognitive Psychology : Bayesian Cognitive Modeling.
**Bayesian Cognitive Modeling is a practical course that will provide hands-on experience with an easy to use computer program (JAGS) that will allow you to implement a variety of Bayesian models. We will cover models from a wide range of areas including memory, psychophysics, risk taking, categorization, and development. For each of these topics we will illustrate how Bayesian modeling can be useful for problems that people in cognitive science care about. At the end of the course you will have gained the technical skills to implement cognitive models. The goal is for you to be able to build your own Bayesian models, apply them to your own data, and draw your own conclusions. Prerequisite: PSY 3120 or consent of the instructor.

**PSY 8218
[Formerly PSY 318] Computational Modeling.
**The how-tos and whys of computational modeling in psychology and neuroscience. Not intended a general survey of computational models of human cognition. Instead, we will talk about what models are, why we use models, how to recognize good modeling versus bad modeling, how to implement a model, how to fit a model to data, how to evaluate the fit of a model, how to compare and contrast competing models, how to evaluate special cases of a model, and how to develop and test new models. Graduate-level course that requires permission of the instructor. Prerequisites: One semester of calculus, CS1101 or CS1103 or familiarity with Matlab.

**PSY 8219
[Formerly PSY 319] Scientific Computing for Psychological and Brain Sciences.
** Computer programming, numerical and computational methods, and high performance computing applied to psychological and brain sciences, such as experimental control, automated data analysis, and model simulation. Matlab and Psychophysics Toolbox, Python, and other programming languages may be introduced. Graduate-level course that requires permission of the instructor. Prerequisites: One semester of calculus, CS1101 or CS1103 or familiarity with Matlab or Python.

**PSY 8503
[Formerly PSY 303] Models of Human Memory.
**Graduate-level course covering the scientific study of human memory, including experiment and theory. Focus on attempts to create computational and mathematical models of human memory. Some level of comfort with elementary probability and statistics is assumed. Assignments involve programming in order to explore different models of human memory. Graduate-level course that requires permission of the instructor. Prerequisites: CS1101 or CS1103.