Graduate School Bulletin

Spring 2025

DCS: Data and Computational Science

DCS 501: Quantum Computing and Applications

This course is an introduction to and survey of the Quantum Computing, an emerging interdisciplinary field of science which has the potential to revolutionize computation over the next ten years, to transform chemistry, medicine, engineering and communications, as well as to change our understanding of physical world. The course will build intuitive approach to quantum computation and algorithms, but also will advance relevant vocabulary and skills for faculties and graduate students in engineering, computing, applied mathematics, chemistry, physics and related sciences. The key questions of the quantum computing will be introduced. How to describe quantum systems and quantum operations? What is a quantum computer and what are the limits of quantum power? What is the difference between classical and quantum computation? Quantum teleportation? Quantum entanglement and superposition? How to mitigate errors and decoherence and transmit information through noisy channels? What are business applications and engineering challenges of the quantum computers? What are the gains in running quantum vs. classical algorithms? What are the physical principles of the current quantum computers hardware and what are technology requirements for realistic quantum computers?

3 credits, Letter graded (A, A-, B+, etc.)

DCS 504: Compiler Design

This course covers advanced topics in compilation, including memory management, dataflow analysis, code optimization, just-in-time compilation, and selected topics from compilation of object-oriented and declarative languages. Prerequisites: CSE 304 and CSE 307

3 credits, Letter graded (A, A-, B+, etc.)

DCS 521: Introduction to Computational and Data Science

This course provides a foundation of knowledge and basic skills for the successful application in graduate research of modern techniques in computational and data science relevant to engineering, the humanities, and the physical, life and social sciences. It is consciously crafted to provide a rich, project-oriented, multidisciplinary experience that establishes a common vocabulary and skill set. Centered around the popular programming language Python, the course will serve as an introduction to programming including data structures, algorithms, numerical methods, basic concepts in computer architecture, and elements of object-oriented design. Also introduced will be important concepts and tools associated with the analysis and management of data, both big and small, including basic statistical modeling in R, aspects of machine learning and data mining, data management, and visualization. No previous computing experience is assumed. Students are assumed to have taken some introductory courses in two of these three math subjects: linear algebra, calculus, and probability.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 522: Introduction to Scientific Programming in C++

This course provides students with foundational skills and knowledge in practical scientific programming relevant for scientists and engineers. The primary language is C + + since it is a widely - used, object-oriented language, includes C as a subset, and is a powerful tool for writing robust, complex, high-performance software. Elements of Python, Bash, and other languages will be introduced to complement the capabilities of C++, and essential tools for software development and engineering will be employed throughout the course (e.g. makefiles, version control, online code repositories, debugging, etc.).

3 credits, Letter graded (A, A-, B+, etc.)

DCS 525: Fundamentals of Computing

Introduction to several modern approaches for developing computer programs and their use to solve mathematical problems. It will cover the fundamentals of programming in MATLAB, Python, and C/C++, including scripting, basic data structures, algorithms, scientific computing, performance optimization, software engineering and program development tools. No previous programming experience is required. This is a project-based, 3-credit course. Homework projects will focus on using computation to solve mathematical problems (e.g. linear algebra and differential equations), data management, data analysis, etc.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 544: Computational Methods in Physics and Astrophysics

An introduction to procedural and object-oriented programming in a high-level language such as C++ or modern Fortran with examples and assignments consisting of rudimentary algorithms for problems in physics and astronomy. Students will use the UNIX/Linux operating system to write programs and manage data, and the course will include an introduction to parallel computing and good programming practices such as version control and verification. The course will prepare students for courses in algorithms and methods that assume a knowledge of programming.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 569: Bayesian Data Analysis and Computation

An applied course in Bayesian data analysis and hierarchical modeling for advanced graduate students in Ecology& Evolution or related sciences. Topics will include probability theory, Bayesian analysis, and MCMC methods such as Gibbs sampling and Metropolis-Hastings sampling, as well as applied issues regarding the choice of prior distributions, posterior convergence, censored and missing data, and model checking and comparison. The course will be taught using WinBUGS and JAGS as accessed via the R packages R2WinBUGS and R2jags, respectively.

4 credits, Letter graded (A, A-, B+, etc.)

DCS 572: Geophysical Simulation

Basic equations and boundary conditions. Linear and nonlinear instabilities. Finite difference and time integration techniques for problems in geophysical fluid dynamics. Numerical design of global atmospheric and ocean models.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 581: Phase Transformations

Thermodynamics and kinetics of solid state phase transformations. Mathematical formulation of equilibrium conditions and application to multicomponent homogenous/heterogeneous systems using chemical potential surfaces and free energy diagrams. Common tangent construction involving multiphase equilibria and miscibility gaps. Kinetics of phase transformations including classical nucleation theory followed by diffusion and diffusionless growth mechanisms.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 590: Introduction to Advanced Computational Social Science

A multidisciplinary introduction to computational social science (CSS), emphasizing how social scientists develop and utilize computational-related social theory and methods to understand and analyze social behavior in the digital era. Topics include the CSS history and its latest development as well as how to use computational methods to collect, process, analyze, and visualize large-scale data from the real-world for social problems. This course also introduces state-of-the-art tools such as Python, R, and its scientific libraries for web-scraping, national language processing, topic modeling, network analysis, and machine learning for text, image, and video data.

3 credits, Letter graded (A, A-, B+, etc.)

DCS 697: Computational Linguistics 2

An introduction to the theoretical foundation of computational linguistics. The course emphasizes the importance of algorithms, algebra, logic, and formal language theory in the development of new tools and software applications. Empirical phenomena in phonology and syntax are sampled from a variety of languages to motivate and illustrate the use of concepts such as strictly local string languages, tree transducers, and semirings. Students will develop familiarity with the literature and tools of the field.

3 credits, Letter graded (A, A-, B+, etc.)