Virginia Tech® home

Course Descriptions

CS 5014 - Research Methods in Computer Science
Preparation for research in computer science. Technical communication skills. Design and evaluation of experiments. The research process. (3H,3C)

CS 5020 - Software Design and Data Structures
A programming-intensive exploration of software design concepts and implementation techniques. Builds on knowledge of fundamental object-oriented programming. Advanced object-oriented software design, algorithm development and analysis, and classic data structures. Includes a team-based software project. Not for graduate credit for those in CSA.

CS 5024 - Ethics and Professionalism in Computer Science
Ethical implications and consequences of computing technology applied to algorithmic decision making, security, privacy, autonomous systems. Ethical frameworks. Application of such frameworks to relevant current topics. Formulating, reasoning about, and communicating positions on ethical topics related to computing technology. Diversity and bias as it relates to information technology. Ethical conduct of research and development of intellectual property. Pre: Graduate standing. (3H,3C)

CS 5040 - Intermediate Data Structures and Algorithm Analysis
Data structures and analysis of data structure and algorithm performance.  Sorting, searching, hashing, and advanced tree structures and algorithms.  File system organization and access methods.  Course projects develop advanced problem-solving, design, and implementation skills. Pre: Graduate standing in Computer Science and an undergraduate second semester programming course. You may not receive credit for CS5040 if you already have credit for CS3114. (3H,3C) Not for CS-MS or CS-PhD credit. You may not receive credit for CS5040 if you already have credit for CS3114.

CS 5044 - Object-Oriented Programming with Java
Object-oriented programming concepts and the Java programming language. The application of design strategies, notations, and patterns related to object-oriented systems. Techniques and libraries for developing applications related to the World Wide Web. Credit will not be given for both 2704 and 5044. Not for Computer Science major or minor credit; not for graduate credit for CSA or INFS programs. Pre: Proficiency in a high-level programming language (e.g., FORTRAN, C, C++, or Java) equivalent to 1044 and prior course work, practical training, or work experience related to developing computer software and systems. (3H,3C) Not for CS graduate credit

CS 5045-6 - Computation for the Life Sciences
Fundamentals of computer science, including specific programming languages; programming language syntax and semantics; abstraction and object-oriented programming; data structures; algorithms and algorithm analysis; databases; software engineering; data preprocessing; and machine learning. Background in data sciences needed by STEM graduate students but not having a computer science background. Not for CS major or minor credit; not for graduate credit in CSA program. Pre: Graduate standing for 5045. Pre: 5045 for 5046. (3H,3C) Not for CS graduate credit

CS 5104 - Computability and Formal Languages
Formal theory of computability, the halting problem, models of computation, and Church's thesis, and formal languages. (3H,3C)

CS 5114 - Theory of Algorithms
Methods for constructing and analyzing algorithms. Measures of computational complexity, determination of efficient algorithms for a variety of problems such as searching, sorting and pattern matching. Geometric algorithms, mathematical algorithms, and theory of NP-completeness. (3H,3C) Pre: CS3114

CS 5124 - Algorithms in Bioinformatics
Algorithms to solve problems found in biology, especially molecular biology. A variety of current problems in computational molecular biology will be introduced, investigated, analyzed for computational complexity, and solved with efficient algorithms, when feasible. A number of such problems will be shown to be intractable or other evidence of their difficulty will be presented. (3H,3C) Pre: Graduate standing in CSA; CS 4104 OR CS 5046, PPWS 5314

CS 5204 - Operating Systems
Issues in the design and functioning of operating systems. Emphasis on synchronization of concurrent activity in both centralized and distributed systems. Deadlock, scheduling, performance analysis, operating system design, and memory systems including distributed file systems. (3H,3C) Pre: Graduate standing.

CS 5214 - Modeling and Evaluation of Computer Systems
An overview of modeling, simulation, and performance evaluation of computer systems, i.e., operating systems, database management systems, office automation systems, etc. Fundamentals of modeling, the life cycle of a simulation study, workload characterization, random number and variate generation, procurement, measurement principles, software and hardware monitors, capacity planning, system and program tuning, and analytic modeling. Duplication of subject matter of 4214 and 4224. Maximum of 6 hours credit may be obtained from 4214, 4224, 5214. (3H,3C) Pre: (CS 5024, STAT 4705) OR (STAT 4714, STAT 4105)

CS 5234 - Advanced Parallel Computation
Survey of leading high-end computing systems and their programming environments. Advanced models of parallel computation. Mapping of parallel algorithms to architectures. Performance programming and tools for performance optimization on parallel systems. Execution environments and system software for large-scale parallel computing. Case studies of parallel applications. Graduate standing required. (3H,3C) Pre: CS 4234

CS 5244 - Web Application Development
Languages and technologies needed to develop modern data- centric web applications. Commonly used protocols and standards. Client-side technologies such as HTML, CSS, and JavaScript; server-side technologies such as Servlets and JSP; and database access with SQL. Principles and technologies for web application architecture, electronic commerce, and web application security. (3H,3C) Pre: CS 5044

CS 5254 - Mobile Application Development
Languages and technologies needed to develop applications for modern mobile devices. Mobile infrastructure and devices. Interactive graphical user interfaces for mobile devices. Protocols and standards for using mobile device features such as sensors, networking, location, camera, and audio. Mobile app architecture, performance considerations, and asynchronous programming. Principles and technologies for mobile security. (3H,3C) Pre: CS 5044

CS 5264 - Advanced Linux Kernal Programming
Design and internal organization of the Linux operating system kernel. Kernel subsystems, boot process, memory management, process and thread model, scheduling, interrupt and exception handling, virtual file system and the concrete file system, block I/O and I/O scheduler, network stack, and device drivers. Modification of existing kernel code. Design, implementation, test, and evaluation of new kernel modules. Kernel and full software stack debugging techniques, and virtualization as an aid for operating system development and debug. Software engineering techniques to analyze, modify and run a large, complex open-source code base. Pre: Graduate standing. (3H, 3C).

CS 5304 - Translator Design and Construction
Fundamental theory of parsing and translation and practical applications of this theory. Lexical analysis, parsing techniques based on top-down (LL, Recursive Descent) and bottom-up (LR, Precedence), code generation, code optimization techniques, and runtime systems. (3H,3C) Pre: CS 4114 OR CS 5034

CS 5314 - Programming Languages
In depth investigation of the principles of programming systems, not necessarily restricted to programming languages, both from the point of view of the user and implementer. Algorithms of implementation, syntax and semantic specification systems, block structures and scope, data abstraction and aggregates, exception handling, concurrency, and applicative/functional/data-flow languages. (3H,3C) Pre: CS 3304

CS 5424 (BIOL 5424) (GBCB 5424) - Computational Cell Biology
Use of mathematical models (nonlinear ordinary differential equations and stochastic processes) and simulation algorithms to explore the complex feedback circuits that control the behavior of living cells. Concepts and techniques from dynamical systems theory, bifurcation analysis, numerical methods, SBML (systems biology makeup language) and Matlab programming. Applications in gene regulatory networks, cell cycle control, circadian rhythms, cell signaling. (3H,3C) Pre: MATH 5515

CS 5474 (MATH 5474) - Finite Difference Methods for Partial Differential Equations
Finite difference methods for initial and boundary value problems for partial differential equations. Consistency, stability, convergence, dispersion, and dissipation. Methods for linear and nonlinear elliptic and parabolic equations, first- and second-order hyperbolic equations, and nonlinear conservation laws. (3H,3C) Pre: CS 3414

CS 5484 (MATH 5484) - Finite Element Methods for Partial Differential Equations
Weak formulations of boundary-value problems for elliptic partial differential equations. Finite element spaces. Approximation theory for finite element spaces. Error estimates. Effects of numerical integration and curved boundaries. Nonconforming methods. Concrete examples of the application of the finite element method. Efficient implementation strategies. Time dependent problems. (3H,3C) Pre: CS 3414

CS 5485 (MATH 5485) - Numerical Analysis and Software
Presentation and analysis of numerical methods for solving common mathematical and physical problems. Methods of solving large sparse linear systems of equations, algebraic eigenvalue problems, and linear least squares problems. Numerical algorithms for solving constrained and unconstrained optimization problems. Numerical solutions of nonlinear algebraic systems. Convergence, error analysis. Hardware and software influences. Efficiency, accuracy, and reliability of software. Robust computer codes. (3H,3C) Pre: MATH 4445, MATH 4446

CS 5486 (MATH 5486) - Numerical Analysis and Software
Presentation and analysis of numerical methods for solving common mathematical and physical problems. Methods of solving large sparse linear systems of equations, algebraic eigenvalue problems, and linear least squares problems. Numerical algorithms for solving constrained and unconstrained optimization problems. Numerical solutions of nonlinear algebraic systems. Convergence, error analysis. Hardware and software influences. Efficiency, accuracy, and reliability of software. Robust computer codes. (3H,3C) Pre: MATH 4445, MATH 4446

CS 5504 (ECE 5504) - Computer Architecture
Advanced computer architectures, focusing on multiprocessor systems and the principles of their design. Parallel computer models, programming and interconnection network properties, principles of scaleable designs. Case studies and example applications of pipeline processors, interconnection networks, SIMD and MIMD processors. (3H,3C) Pre: CS 4504

CS 5510 (ECE 5510) - Multiprocessor Programming
Principle and practice of multiprocessor programming. Illustration of multiprocessor programming principles through the classical mutual exclusion problem, correctness properties of concurrency (e.g., linearizability), shared memory properties (e.g. register constructions), and synchronization primitives for implementing concurrent data structures (e.g., consensus protocols). Illustration of multiprocessor programming practice through programming patterns such as spin locks, monitor locks, the work-stealing paradigm and barriers. Discussion of concurrent data structures (e.g., concurrent linked lists, queues, stacks, hash maps, skiplists) through synchronization patterns ranging from coarse-grained locking to fine-grained locking to lock-free structures atomic synchronization primitives, elimination, and transactional memory. (3H,3C) Pre: ECE 4534 OR ECE 4550

CS 5525-6 (STAT 5525-6) - Data Analytics
5525: Basic techniques in data analytics including the preparation and manipulation of data for analysis and the creation of data files from multiple and dissimilar sources. The data mining and knowledge discovery process. Overview of data mining algorithms in classification, clustering, association analysis, probabilistic modeling, and matrix decompositions. Detailed study of classification methods including tree-based methods, Bayesian methods, logistic regression, ensemble, bagging and boosting methods, neural network methods, use of support vectors and Bayesian networks. Detailed study of clustering methods including k-means, hierarchical and self-organizing map methods.  (3H,3C) Pre: Graduate Standing required. 5526: Techniques in unsupervised and visualized learning in high dimension spaces. Theoretical, probabilistic, and applied aspects of data analytics. Methods include generalized linear models in high dimensional spaces, regularization, lasso and related methods, principal component regression (pca), tree methods, and random forests. Clustering methods including k-means, hierarchical clustering, biclustering, and model-based clustering will be thoroughly examined. Distance-based learning methods include multi dimensional scaling, the self organizing map, graphical/network models, and isomap. Supervised learning will consist of discriminant analyses, supervised pca, support vector machines, and kernel methods. (3H,3C) Pre: CS5525 or STAT5525

CS 5544 (ECE 5544) - Compiler Optimizations
Overview of compilation and compiler optimizations. Design and internal organization of the Low-Level Virtual Machine compiler infrastructure. Static Single Assignment. Data-flow analysis and techniques for reaching definitions, live variable analysis, and available expressions. Lattice theory and iterative algorithms for general frameworks. Non-separable dataflow analysis including constant propagation and folding, faint variable analysis, and points-to may/must analysis. Loop-invariant code motion and lazy code motion. Static Single Assignment construction and optimizations. Register allocation and coalescing. Pointer analysis using Anderson’s and Steensgaard’s algorithms, and liveness analysis of heap data. (3H,3C) Pre: Graduate standing.

CS 5560 (ECE 5560) - Fundamentals of Info Security
Principles of information security and relevant mathematical concepts. Classical ciphers, relevant abstract algebra and number theory, symmetric-key ciphers, cipher modes of operation, and asymmetric-key ciphers. Cryptographic hash functions and message authentication codes. Elliptic curve cryptography and cryptosystems. Applications and standards relevant to network and computer security. (3H,3C) Pre: Graduate standing.

CS 5565-6 (ECE 5565, ECE 5560) - Network Architecture and Protocols
5565: Principles and concepts of networking and protocols, with emphasis on data link, network, and transport protocols. Contemporary and emerging networks and protocols to illustrate concepts and to provide insight into practical networks including the Internet. Quantitative and qualitative comparisons of network architectures and protocols. (3H, 3C) Pre: Graduate standing in EE, ECE, CS, or IT required; STAT 4714. 5566: Performance evaluation, design, and management of networks. Use of queuing and other analytical methods, simulation, and experimental methods to evaluate and design networks and protocols. Network management architectures and protocols. (3H,3C) Pre: CS 5565 or ECE 5565.

CS 5580 (ECE 5580) - Cryptographic Engineering
Implementation of cryptographic operations and protocols in contemporary computing platforms. Mapping of cryptographic operations, evaluation and optimization of performance and implementation cost, analysis of security against brute- force cryptanalysis and implementation-level attacks. Design of countermeasures against implementation-level attacks, security-testing procedures, and architectures to support a trusted computing base. (3H,3C) Pre: ECE 5560 OR CS 5560

CS 5584 (ECE 5584) - Network Security
Fundamentals of network security. Network security architecture, user and attacker perspective. Practical applications and security standards. Protocol design principles and their impact on computer and network security. Authentication systems. Email security. Firewalls and intrusion detection. Security for wireless systems. (3H,3C) Pre: Graduate standing.

CS 5590 (ECE 5590) - System and Software Security
Secure software design, memory and file system security, operating system security for various platforms. Program classification, anomaly detection, malware detection and analysis. Technical challenges and problems in securing operating systems and software. Classic and modern algorithms, models, principles, and tools for system and application software security. Actual security examples. (3H,3C) Pre: CS 5560 OR ECE 5560

CS 5594 - Blockchain Technologies
Principles of an open, distributed ledger. Underlying data structures and algorithms such as crytographic hashing and Merkle trees, consensus algorithms, and Byzantine agreement. Bitcoin as an exemplar. Proof of work and proof of stake.  Applications including cryptocurrencies, financial ledgers, and smart contracts.  Pre: Graduate standing in computer science. (3H,3C)

CS 5604 - Information Storage and Retrieval
Analyzing, indexing, representing, storing, searching, retrieving, processing and presenting information and documents using fully automatic systems. The information may be in the form of text, hypertext, multimedia, or hypermedia. The systems are based on various models, e.g., Boolean logic, fuzzy logic, probability theory, etc., and they are implemented using inverted files, relational thesauri, special hardware, and other approaches. Evaluation of the systems' efficiency and effectiveness. (3H,3C) Pre: Graduate standing required.

CS 5614 - Database Management Systems
Emphasizes concepts, data models, mechanisms, and language aspects concerned with the definition, organization, and manipulation of data at a logical level. Concentrates on relational model, along with introduction to design of relational systems using Entity-relationship modeling. Functional dependencies and normalization of relations. Query languages, relational algebra, Datalog, and SQL. Query processing, logic and databases, physical database tuning. Concurrency control, OLTP, active and rule-based elements. Data Warehousing, OLAP. (3H,3C) Pre: CS 3114 or CS 5040

CS 5624 - Natural Language Processing
Provides an overview to Natural Language Processing (NLP). Explores common NLP tasks, algorithms for effectively solvingproblems, and methods for evaluating performance. Focuses on high-level applications, deep neural networks and statistical algorithms that are trained on annotated text corpora to automatically acquire the knowledge needed to perform the tasks. Pre:  5805. (3H, 3C).

CS 5644 - Machine Learning with Big Data
Basic principles and techniques for big data analytics, including methods for storing, searching, retrieving, and processing large datasets; introduction to basic machine learning libraries for analyzing large datasets; data visualization; case studies with real-world datasets. (3H,3C) Pre: CS 5044. Not for CS-MS or CS-PhD credit. May be taken for CS-MEng credit.

CS 5664 - Social Media Analytics
Social media platforms, media feeds, and data formats; machine learning and graph theory foundations of social media analytics; Forms of social media analytics - text analytics, network analytics, and action analytics; Forecasting models and applications, including in marketing, event tracking, surveying, and A/B testing. (3H,3C) Pre: CS 5644. 

CS 5704 - Software Engineering
Study of the principles and tools applicable to the methodical construction and controlled evolution of complex software systems. All phases of the life cycle are presented; particular attention focuses on the design, testing, and maintenance phases. Introduction to software project management. Attention to measurement models of the software process and product which allow quantitative assessment of cost, reliability, and complexity of software systems. (3H,3C) Pre: CS 5044

CS 5714 (ISE 5714) - Usability Engineering
Design and evaluation of effective user interfaces, beginning with principles for designing the product. Development process for user interaction separate from interactive software development. Development process includes iterative life cycle management, systems analysis, design, usability specifications, design representation techniques, prototyping, formative user-based evaluation. Integrative and cross-disciplinary approach with main emphasis on usability methods and the user interaction development process. (3H,3C)

CS 5724 - Models and Theories of Human-computer Interaction
Survey of models and theories of users and their use of computer equipment; conditions of application for various approaches. Task analysis, task modeling, representations and notations. (3H,3C)

CS 5734 - Social Computing and Computer-Supported Cooperative Work
Social computing and cooperative work situations. Design, implementation, use, and analysis of computing systems concerned with multiple users and stakeholders. Analytic practices and application of human behavior theories for social computing. (3H,3C) Pre: Graduate standing.

CS 5740 - AI Tools for Software Engineering 

Application of Artificial Intelligence and Machine Learning to the software development process. The course includes an introductory overview of relevant AI techniques, the use of large language models, and the construction of an AI assistant to help software engineers. Main emphasis is on exploring how developers can leverage generative AI to enhance the software development process, including generating code, reading, and analyzing code, and testing and documentation

CS 5744 - Software Design and Quality
This course focuses on critical aspects of the software lifecycle that have significant influence on the overall quality of the software system including techniques and approaches to software design, quantitative measurement and assessment of the system during implementation, testing, and maintenance, and the role of verification and validation in assuring software quality. (3H,3C) Pre: CS 5704

CS 5754 - Virtual Environments
Introduction to the theory and practice of three-dimensional virtual environments (VEs). 3D input and output devices, applications of VEs, 3D user interfaces and human-computer interaction, 3D graphics techniques for VEs, 3D modeling and level of detail, evaluation of VEs, VE software systems and standards, collaborative and distributed VEs. Includes hands-on experience with VE hardware and software. (3H,3C)

CS 5764 - Information Visualization
Examine computer-based strategies for interactive visual presentation of information that enable people to explore, discover, and learn from vast quantities of data. Learn to analyze, design, develop, and evaluate new visualizations and tools. Discuss design principles, interaction strategies, information types, and experimental results. Research-oriented course surveys current literature, and group projects contribute to the state of the art.  (3H,3C) Pre: Graduate standing.

CS 5774 - User Interface Software
Survey of software architectures to build user interfaces, particularly focused on graphical user interfaces. Includes the design and implementation of user interfaces, the use of object-oriented application frameworks, software architecture for command undo, document management, layout managers, customized components, and separation of concerns in user interface software architectures. Discussion of research and advanced topics in User Interface Software. (3H,3C) Pre: CS 2704

CS 5784 - Software Project Management
Principles, activities, and tools relevant to the project management of software systems using agile methods. Differences between traditional and agile project management approaches and develop a minimum viable product (MVP) using agile project management techniques. Student participation in a team-based format focusing on end-to-end software/systems planning, technical analysis, and development. Pre: Graduate standing. (3H, 3C). 

CS 5804 - Introduction to Artificial Intelligence
A graduate level overview of the areas of search, knowledge representation, logic and deduction, learning, planning, and artificial intelligence applications. (3H,3C) Pre: Graduate standing.

CS 5805-6 - Machine Learning 
5805: Provides an introduction to the field of machine learning (or data mining) and explores the common tasks of machine learning to include preprocessing, classification, clustering, the discovery of association rules/sequential  atterns, and anomaly detection. Introduces fundamentals of probability theory and random variables for classification and clustering. Investigates multiple linear and nonlinear regression models to classify social phenomena. Apply application of machine learning in solving real work problems. Credit will not be given for both CS/STAT 5525 and CS 5805. Pre: Graduate standing. (3H, 3C).

5806: Provides an in-depth understanding of classical machine learning theory using Bayesian models, statistical machine learning and pattern recognition techniques, advanced machine learning methods, and their applications. Pre: CS 5805. (3H, 3C).

CS 5814 - Introduction to Deep Learning

History and basic concepts of artificial neural networks. Activation functions, optimization methods and regularization strategies used in deep multi-layered networks. Network architectures such as convolutional networks and recurrent neural networks. Deep reinforcement learning algorithms including deep Q-learning and policy gradient methods. Deep unsupervised models such as auto-encoders, and deep generative models including variational auto-encoders and generative adversarial networks. Encoder-decoder architectures and their applications in real-world problems such as machine translation, image captioning, visual question answering, and text summarization. (3H, 3C) Pre: 5805. Duplicates ECE 6524 (CS 6524). Students may not receive credit for both ECE/CS 6524 and CS 5814.

CS 5834 - Introduction to Urban Computing
Computational approaches to address urban challenges; sensor network testbeds; algorithms for storing, processing, and mining data from urban settings; communicating patterns to decision makers; special focus on epidemiology, sustainability, transportation, social science, urban economics; case studies with applications. (3H,3C) Pre: Graduate Standing.

CS 5844 - Human-Robot Interaction
Formalizing interaction between robots and humans. Developing learning and control algorithms that enable robots to seamlessly and intelligently collaborate with humans. Mathematical approaches to human-robot interaction, learning from demonstration, Bayesian inference, intent detection, safe and optimal control, assistive autonomy, and user study design. Students review and present existing literature, conduct a research project. (3H,3C) Pre: Graduate Standing.

CS 5854 - Computational Systems Biology
Phenomenological and data-driven models of molecular interaction networks. Applications of graph theory, discrete algorithms, data mining, and machine learning to the modeling and analysis of molecular interaction networks. Biological applications. Interaction between biological and computational disciplines in systems biology. Must have GBCB pre-requisite and CS pre-requisites or graduate standing in CSA or equivalent. (3H,3C) Pre: CS 4104 OR CS 5046, GBCB 5314

CS 5864 - Learning-based Computer Vision
Comprehensive introduction to modern computer vision. Fundamental concepts in computer vision and pattern recognition such as filtering, alignment, and matching. Survey of computer vision tasks, models, and learning techniques related to vision architectures, visual recognition methods, multimodal and generative models, and select advanced topics. Pre: 5805. (3H, 3C)

CS 5914 - Emerging Topics in Computer Science
Emerging topics in computer science. Covers contemporary and often rapidly changing topics from the theory, practice, or application of computing. May be repeated 2 times with different content for up to 9 credit hours. (3H,3C) Pre: Graduate standing.

CS 5934 - Capstone Project
Design, implementation, and communication of a software system throughout the product lifecycle. Students, working in teams, use current software product development models to move from an initial concept to a minimum viable product that meets a clear user or market need.  Product ideation, end-user and stakeholder analysis, product development, communication of design and goals, use of appropriate development tools. Pre: Graduate student standing. (3H,3C) Does not count toward area requirements. Intended for MEng program only.

CS 6104 - Advanced Topics in Theory of Computation
This course treats a specific, advanced topic of current research interest in the area of theory of computation. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5104 OR CS 5114

CS 6204 - Advanced Topics in Systems
This course treats a specific advanced topic of current research interest in the area of systems. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5204 OR CS 5214

CS 6304 - Advanced Topics in Languages and Translation
This course treats a specific advanced topic of current research interest in the area of languages and translation. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5304 OR CS 5314

CS 6404 - Advanced Topics in Mathematical Software
This course treats a specific advanced topic of current research interest in the area of mathematical software. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5485

CS 6424 - PGMs and Structured Prediction
Advanced concepts in machine learning. Probabilistic graphical models and structured output prediction. Directed models (Bayes Nets), undirected models (Markov/Conditional Random Fields), exact inference (junction tree), approximate inference (belief propagation, dual decomposition), parameter learning (MLE, MAP, EM, max-margin), structure learning. (3H,3C) Pre: ECE 5424G OR CS 5824

CS 6444 (ME 6444) - Verification and Validation in Scientific Computing
Applicable to scientific and engineering models described by partial differential or integral equations. Software engineering, code verification, and the method of manufactured solutions for generating exact solutions. Estimation of numerical approximation errors in scientific computing. Design and execution of experiments for model validation and model accuracy assessment. Propagation of aleatory and epistemic uncertainty through models. Estimation of total prediction uncertainty in scientific computing simulations.  (3H,3C) Pre: Graduate Standing required

CS 6504 - Advanced Topics in Computer Architecture
This course treats a specific advanced topic of current research interest in the area of architecture. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5515 OR CS 5516

CS 6564 (ECE 6564) - Multimedia Networking
This course examines and explores recent advances in multimedia networking technologies. Major topics include multimedia compression and standards, quality of service (QoS) support mechanisms and protocols, performance analysis, network calculus, IP multicasting, Internet multimedia applications, and multimedia transport over wireless networks. (3H,3C) Pre: CS 5565

CS 6570 (ECE 6570) - Advanced Foundations of Networking
This course covers theoretical foundations that are necessary for advanced study of networking. It focuses on algorithm design and optimization techniques that are most commonly used to solve complex networking problems. Major topics include complexity analysis with applications to networking problems, design and proof of approximation algorithms, design of meta-heuristic algorithms, formulation techniques for network optimization, linear and non-linear optimization techniques with applications to networking, design of distributed algorithms with proof of convergence for networks systems. (3H,3C) Pre: CS 5565 OR ECE 5565

CS 6604 - Advanced Topics in Data and Information
This course treats a specific advanced topic of current research interest in the area of data and information. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5604 OR CS 5614

CS 6704 - Advanced Topics in Software Engineering
This course treats a specific advanced topic of current research interest in the area of software engineering. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5704 OR CS 5714

CS 6724 - Advanced Topics in Human-computer Interaction
Addresses a specific advanced topic of current research interest in the area of human-computer interaction (HCI). Research monographs and papers from the current literature will be used as a source of material too new yet to be in a textbook. Student participation in a seminar-style format. Each offering of this course will address a different subtopic area of HCI. May be repeated for credit. (3H,3C) Pre: CS 5714 OR CS 5724 OR CS 5734

CS 6804 - Advanced Topics in Intelligent Systems
This course treats a specific advanced topic of current research interest in the area of intelligent systems. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. May be repeated with different content for a maximum of nine credit hours. (3H,3C) Pre: CS 5804 OR CS 5814

CS 6814 - Science-Guided Machine Learning
Addresses specific advanced topics in science-guided machine learning (SGML). Seminal papers, book chapters, and recent developments in the field will be used as a source of material too new to yet be in a textbook. Detailed study of science-guided learning, science-guided model design, science-guided initialization, and hybrid-science-machine learning modeling. Student participation is in a seminar style format. Pre: Graduate standing. (3H, 3C)

CS 6824 - Adv Topics Comp Biol & Bioinf
Addresses a specific advanced topic of current research interest in the area of computational biology and bioinformatics (CBB). Research monographs and papers from the current literature used as a source of material too new to be discussed in a textbook. Student participation in a seminar-style format. Each offering of this course will address a different subtopic area of CBB. May be repeated with different content for a maximum of 12 credit hours. (3H,3C) Pre: Graduate standing