## 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.

*NOTE: The following list only includes the course names, numbers, and descriptions. Check YES for current prerequisites, credit hours, and (for A&S) AXLE categories.*

## Core Programming Courses

**CS 1101 Programming and Problem Solving.** An intensive introduction to algorithm development and problem solving on the computer (using Java). Structured problem definition, top down and modular algorithm design. Running, debugging, and testing programs. Program documentation. *Note: CS 1104 is recommended over CS 1101 for the Scientific Computing minor.*

- or -

**CS 1104 Programming and Problem Solving with Python. **An intensive introduction to algorithm development and problem solving using the Python programming language. Structured problem definition, top down and modular algorithm design. Running, debugging, and testing programs. Program documentation.

**CS 2201 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. *Note: CS 2204 is recommended over CS 2201 for the Scientific Computing minor.*

- or -

**CS 2204 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. Students who have earned credit for CS 2201 may not take CS 2204.

## Scientific Computing Courses

**SC 3250 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.

**SC 3260 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.

**SC 3850 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.

**SC 3851 Independent Study in Scientific Computing.** Continuation of SC 3850 under the direction of the same or different faculty sponsor.

**SC 3890 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.

**SC 3890 Special Topics in Scientific Computing.** Special topics course.

**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.

**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.

**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.

**SC 5890 Special Topics in Scientific Computing: Introduction to Computer Programming for the Sciences, Social Sciences, and Humanities.** Introduction to Computer Programming for the Sciences, Social Sciences, and Humanities The course is intended for non-engineering graduate students who want to become proficient in computer programming. The MATLAB environment is used to illustrate general computer programming techniques. No prior experience is required.

**SC 5890 Special Topics in Scientific Computing.** Special topics course.

## 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 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.

#### ASTRONOMY

**ASTR 3600 Stellar Astrophysics.** Absorption and emission of radiation by the sun and stars. Principles of stellar structure and stellar evolution from formation to death.

**ASTR 3700 Galactic Astrophysics.** Interstellar matter and gaseous nebulae, the structure and evolution of normal galaxies, active galactic nuclei and quasars, and observational cosmology.

**ASTR 3800 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.

#### BIOINFORMATICS

**BMIF 6310 Foundations Of Bioinformatics.** This survey course introduces students to the experimental context and implementation of key algorithms in bioinformatics. The class begins with a review of basic biochemistry and molecular biology. The group will then focus on algorithms for matching and aligning biological sequences, given the context of molecular evolution. The emphasis will move from comparing sequences to the systems developed to enable high-throughput DNA sequencing, genome assembly, and gene annotation. Gene products will be the next focus as students consider the algorithms supporting proteomic mass spectrometry and protein structure inference and prediction. The informatics associated with transcriptional microarrays for genome-wide association studies will follow. Finally, the class will examine biological networks, including genetic regulatory networks, gene ontologies, and data integration. Formal training in software development is helpful but not required. Students will write and present individual projects. Undergraduates need the permission of the instructor to enroll.

**BMIF 7380 Data Privacy in Biomedicine.** This course introduces students to concepts for evaluating and constructing technologies that protect personal privacy in data collected for primary care and biomedical research. Material in this course touches on topics in biomedical knowledge modeling, data mining, policy design, and law. Prerequisites: Students are expected to be proficient in writing basic software programs, although no specific language is required. Undergraduates need the permission of the instructor to enroll.

#### BIOLOGICAL SCIENCES

**BSCI 3272 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.

#### BIOMEDICAL ENGINEERING

**BME 2400 Quantitative Methods I: Statistical Analysis. **Application of modern computing methods to the parametric and nonparametric statistical analysis of biomedical data. Probability, sampling, estimation, analysis of variance, single and multivariable regression, and the principles of hypothesis testing, experimental design and clinical trials are emphasized. No credit for students who have earned credit for BME 3200.

**BME 3200 Analysis of Biomedical Data. **Application of modern computing methods to the statistical analysis of biomedical data. Sampling, estimation, analysis of variance, and the principles of experimental design and clinical trials are emphasized.

**BME 3890 Computational Genomics. **The course covers computational algorithms for processing and analyzing genomic data including genome assembly, alignment, haplotype phasing, single cell RNA-Seq analysis, and multi-omics. Both algorithms and biological background necessary for engineering students to appreciate their application will be covered. Students will also get familiar with current software tools for the analysis of real sequencing data.

**BME 4310 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.

**BME 7310 Advanced Computational Modeling and Analysis in Biomedical Engineering.** Survey of current topics within biomedical modeling: biotransport, biomechanics, tumor and virus growth dynamics, model-based medical imaging techniques, etc. Mathematical development and analysis of biomedical simulations using advanced numerical techniques for the solution of ordinary and partial differential equations. Emphasis will be on graduate research related topics. Permission of the instructor required for undergraduates.

**BME 7410 Quantitative Methods in Biomedical Engineering.** Mathematics, quantitative analysis, and computational methods for biomedical engineering applications. Topics include applied probability and statistics, signal analysis and experiment design, linear systems, Fourier transforms, and numerical modeling and analysis. Permission of the instructor required for undergraduates.

#### CHEMICAL AND BIOMOLECULAR ENGINEERING

**CHBE 4830 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.

#### CHEMISTRY

**CHEM 5410 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.

**CHEM 5420 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.

#### CIVIL ENGINEERING

**CE 4320 Data Analytics for Engineers.** Programming, analysis, and visualization of real data for the purposes of informing decision making in engineering problems. Statistical modeling in a practical and applied perspective; application of data analytics to bridge the gap between data and decisions; fundamentals of design of experiments.

#### COMPUTER SCIENCE

**CS 3274 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.

#### 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.

#### ECONOMICS

**ECON 3032 Applied Econometrics.** Quantitative economic analysis with emphasis on multivariate regression. Measurement, specification, estimation, inference, prediction, and interpretation of econometric models. Experience with data and computer applications. NOTE: To count as an elective for Scientific Computing, students should enroll in a section that uses Python or R (not Stata).

**ECON 3035 Econometric Methods.** Properties and problems in estimating economic relationships with multiple regression. Statistical and econometric theory to address empirical questions. Hands-on experience with economic data analysis with programming in statistical software. NOTE: To count as an elective for Scientific Computing, students should enroll in a section that uses Python or R (not Stata).

**ECON 3750 Econometrics for Big Data.** Econometric methods for analyzing large datasets. Model selection, regularization, classification, resampling, tree-based methods, and support vector machines. Forecasting stock prices, prediction of housing prices, and determination of wages.

#### ELECTRICAL & COMPUTER ENGINEERING

**EECE 6358 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.

#### HUMAN AND ORGANIZATIONAL DEVELOPMENT

**HOD 3200 Introduction to Data Science.** Provides students with both theoretical and practical knowledge of data science, including accessing data, analyzing data, and presenting data analysis. Data access topics include web scraping, using application programming interfaces and database queries. Data analysis topics include linear regression, logistic regression, and basics of unsupervised machine learning. Data analysis will also cover cross validation. Data presentation topics include univariate and bivariate graphs, lattice graphing, mapping and interactive graphics. Emphasizes literate programming as basis for access, analysis and presentation.

#### MATHEMATICS

**MATH 3620 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.

**MATH 3630 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.

**MATH 3660 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.

**MATH 3670 Mathematical Data Science.** Linear methods for regression and classification, bias-variance tradeoff, and basis expansions and regularization. Kernel methods, support vector machines, dimension reduction, and clustering algorithms.

**MATH 3890 Computing with Splines.** This course deals with a powerful and relatively new class of approximating functions called Spline Functions which have many applications in Mathematics and Science and Engineering. These include data fitting and approximation, numerical quadrature, curve and surface design and representation, and the numerical solution of both ODE’s and PDE’s, including very recent developtments in isogeometric analysis (IGA). This course is a natural extension and complement to any introductory numerical analysis course such as Math 3620.

**MATH 4600 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.

**MATH 4620 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.

**MATH 4630 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.

#### MECHANICAL ENGINEERING

**ME 3890 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.

**ME 4263 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.

**ME 4275 Introduction to Finite Element Analysis.** Development and solution of finite element equations for solid mechanics and heat transfer problems. Introduction to commercial finite element and pre- and post-processing software. Two lectures and one three-hour laboratory each week.

#### NEUROSCIENCE

**NSC 3270 Computational Neuroscience.** Theoretical, mathematical, and simulation models of neurons, neural networks, or brain systems. Computational approaches to analyzing and understanding data such as neurophysiological, electrophysiological, or brain imaging. Demonstrations simulating neural models.

#### PHYSICS

**PHYS 3200. 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.

**PHYS 3790. Computational Physics.** Topics in modern physics analyzed exclusively with computer programs. Finite difference approaches to the Schrödinger and Maxwell equations. Solutions of nonlinear equations. Molecular dynamics. Monte Carlo simulations. Growth models and random walks.

#### PSYCHOLOGY

**PSY 4218 Computational Cognitive 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.

**PSY 4219 Scientific Computing for Psychological and Brain Sciences.** Computer programming, scientific computing methods, and high performance computing applied to psychological and brain sciences problems, such as experimental control, data analysis and visualization, image and signal processing, optimization, and simulation. Some prior coursework in psychology or neuroscience recommended.

**PSY 4220 Bayesian Modeling with Python. **Statistical and cognitive modeling. Models of memory, psychophysics, categorization, and decision-making. Probabilistic programming in Python. Bayesian parameter estimation and model comparison.

**PSY 4775 Models of Human Memory.** Mezzanine-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.