CSE Core Courses

CSE Core Courses is classified into six groups: Introduction to CSE, Computational Mathematics, High Performance Computing, Intelligent Computing, Scientific Visualization, and Computational Optimization.

*Two Core Courses MUST BE selected from a different group. If two Core Courses are taken from the same group, only one of them will be counted.

Introduction to CSE

CS 50100 - Computing for Science and Engineering
An the introductory course of the Computational Science and Engineering Program. Computational concepts, tools, and skills for computational science and engineering: scripting for numerical computing, scripting for file processing, high performance computing, and software development. Project may be required.

Computational Mathematics

AAE 55800 - Finite Element Methods in Aerospace Structures
The goal of this course is to introduce the theory behind finite element calculations of stress, strain, and deformation in structures and materials and describe the role of a commercial finite element package in structural analysis and design.

CE 59500 - Finite Elements in Elasticity
Fundamentals of theory of elasticity; variational principles; one-, two-, and three-dimensional elasticity finite elements; interpolation methods; numerical integration; convergence criteria; stress interpretation.

CE 59700 - Computational Methods in Civil Engineering
The objective of the course is to introduce students to numerical methods for solving problems in civil engineering (both for modeling and experimental work). The course provides students with the necessary background to enable them to use basic computational tools and gain a fundamental understanding of numerical methods. It also introduces them to basic computer programming and inculcates a systematic logical thought process towards problem solving.

CS 51400/MA 51400 - Numerical Analysis
Iterative methods for solving nonlinear equations; linear difference equations, applications to solution of polynomial equations; differentiation and integration formulas; numerical solution of ordinary differential equations; roundoff error bounds.

CS 51500 - Numerical Linear Algebra
Computational aspects of linear algebra; linear equations and matrices, direct and iterative methods; eigenvalues and eigenvectors of matrices; error analysis.

ECE 64500 - Estimation Theory
This course presents the basics of estimation and detection theory that are commonly applied in communications and signal processing systems. Applications in communications and signal processing will be considered throughout.

MA 69200 - Spectral Element Method
Topics in applied math.

MA 69200 - Topics Applied Math
This course will constitute an introduction to the kinetic theory with the focus on the Boltzmann equation and related kinetic models. Will discuss basic mathematical theory, numerical methods, and various applications.

ME 58100 - Numerical Methods
This course is designed to introduce the student to the classical numerical methods available for engineering problem solving. At the same time it hopes to familiarize the student with the computer as an engineering tool and to improve programming skills. The emphasis on this course is on fundamental understanding of the methods and the importance of errors that are inevitably associated with scientific computing.

ME 68100 - Finite and Boundary Element Methods
The aim of the course is to provide a fundamental treatment of the mechanics principles, element formulation techniques, and numerical solution methods to enable advanced understanding of linear and nonlinear finite element analyses. The course will also provide a brief introduction to boundary element method. The course will enable application experience through homework assignments and projects.

High Performance Computing

CS 52500 - Parallel Computing
Parallel computing for science and engineering applications: parallel programming and performance evaluation, parallel libraries and problem-solving environments, models of parallel computing and run-time support systems, and selected applications.

CS 51501 - Parallelism in Numerical Linear Algebra
This course examines both theoretical and practical aspects of numerical algorithm design and implementation on parallel computing platforms. In particular, it provides an understanding of the tradeoff between arithmetic complexity and management of hierarchical memory structures, roundoff characteristics if different from the sequential schemes, and performance evaluation and enhancement. Applications are derived from a variety of computational science and engineering areas.

ECE 56300 - Programing Parallel Machines
This course presents methods and techniques for programming parallel computers. Various parallel algorithms are presented to demonstrate different techniques for identifying parallel tasks and mapping them onto parallel machines. Realistic science/engineering applications and their characteristics will be discussed. Parallel architectures to be considered are shared-memory and distributed-memory multiprocessor systems. Programming paradigms for these machines will be compared, including directive-based (such as OpenMP), message passing (such as MPI) and thread-based (such as Posix threads) methods. Methodologies for analyzing and improving the performance of parallel programs will be discussed. There will be a class project in which each student will parallelize and improve the performance of a computational application. Each student will also prepare one lecture on a selected topic.

STAT 69500 - Divide Recomb RHadoop Big Data
In this course, which is hands-on, participants will learn (1) basic concepts of D&R; (2) use of the Tessera software system; (3) basics of distributed parallel computational environments, and the Hadoop environment; (4) a rigorous, scientific framework for computational performance measurement and analysis of distributed parallel computational environments.

Intelligent Computing

BME 64600 - Deep Learning
This course teaches the foundation of Deep Learning and advanced neural networks for a more experienced audience.

CS 57800 - Statistical Machine LearningDuring the course, students will learn about different supervised and unsupervised problems, and their related algorithms, implement some of those algorithms, learn the theory behind some algorithms, e.g., geometrical aspects and generalization, and learn algorithm-independent principles, e.g., cross-validation, bias-variance tradeoff.

ECE 57000 - Artificial Intelligence
Introduction to the basic concepts and various approaches of artificial intelligence. The first part of the course deals with heuristic search and shows how problems involving search can be solved more efficiently by the use of heuristics and how, in some cases, it is possible to discover heuristics automatically. The next part of the course presents ways to represent knowledge about the world and how to reason logically with that knowledge. The third part of the course introduces the student to advanced topics of AI drawn from machine learning, natural language understanding, computer vision, and reasoning under uncertainty. The emphasis of this part is to illustrate that representation and search are fundamental issues in all aspects of artificial intelligence.

Scientific Visualization

CGT 58100 - Medical Image Processing and Visualization
This   course   provides   an   introduction   to   various   medical   imaging   modalities, including  xray,  ultrasound,  CT  and  MRI,  and  an  overview  of  the  processing  and visualization techniques applied to the resulting datasets. Topics will include image denoising,  image  segmentation,  and  image  registration.  Problems  will  be  solved using Matlab.

CS 53000 - Introduction To Scientific Visualization
Teaches the fundamentals of scientific visualization and computer graphics, and prepares the student for applications of these techniques in his or her field of specialization, including such fields as astronomy, biology, chemistry, engineering, physics, etc.. Emphasis shall be on the representation of scalar, vector and tensor fields, data sampling and resampling, and reconstruction using multivariate finite elements (surfaces, volumes and surfaces on surfaces).

ECE 66100 - Computer Vision
This course deals with how an autonomous or a semi-autonomous system can be endowed with visual perception. The issues discussed include: sampling from a topological standpoint; grouping processes; data structures, especially hierarchical types such as pyramids, quadtrees, octrees, etc.; graphic theoretic methods for structural description and consistent labeling; issues in 3-D vision such as object representation by Gaussian spheres, generalized cylinders, etc.

Computational Optimization

AAE 55000 - Multidisciplinary Design Optimization
Basics of numerical optimization: problem formulation, conditions of optimality, search direction, and step length. Calculus-based techniques for univariate and multivariate optimization. Constrained and unconstrained optimization methods. Global optimization methods. Multi-objective optimization: Pareto optimality and approaches. Recent multidisciplinary design optimization techniques: approximations, response surface methodology, and collaborative optimization. Applications of various methods and techniques to representative engineering problems, culminating in a final project. Ability to solve mathematical problems with MATLAB and IMSL and similar software helpful.

AGEC 55200 - Introduction to Mathematical Programing
Introduction to constrained and optimization problems and their solution using mathematical programming techniques. Theory and implementation of linear, quadratic, and integer programming methods are examined. Applications to farm management, diet and feed rations, spatial market equilibrium, agricultural sector analysis, and other problems from agricultural economics. Use of computer software packages for practical problems.

CS 52000 - Computational Methods in Optimization
A treatment of numerical algorithms and software for optimization problems with a secondary emphasis on linear and nonlinear systems of equations: unconstrained and constrained optimization; line search methods; trust region methods; Quasi-Newton methods; linear programming; calculating derivatives; quadratic programming; global optimization, including simulated annealing.

ECE 58000 - Optimization Methods for Systems and Control
Introduction to optimization theory and methods, with applications in systems and control. Nonlinear unconstrained optimization, linear programming, nonlinear constrained optimization, various algorithms and search methods for optimization, and their analysis. Examples from various engineering applications are given. Elements of linear algebra and calculus of several variables and some experience with MATLAB  helpful.

IE 53500 - Linear Programming
Optimization of linear objective functions subject to linear constraints. Development of theory and algorithmic strategies for solving linear programming problems.

IE 54100 - Nature-Inspired Computing
This course is about algorithms that are inspired by naturally occurring phenomena and applying them to optimization, design and learning problems. The focus is on the process of abstracting algorithms from the observed phenomenon, their outcome analysis and comparison as well as their "science".

Ernest C. Young Hall, Room 170 | 155  S. Grant Street, West Lafayette, IN 47907-2114 | 765-494-2600