CSCE - Computer Sci & Engr

CSCE 601 Programming with C and Java

Credits 3. 3 Lecture Hours. Survey of the C and Java programming languages, including principles of procedural and object-oriented languages; multi-disciplinary applications including business, Internet and engineering problems. Prerequisite: Graduate classification.

CSCE 602 Object-Oriented Programming, Development and Software Engineering

Credits 3. 3 Lecture Hours. Teaches Object-Oriented Programming in C++; software engineering techniques presented to teach how to build high quality software; semester project gives quasi-real-world experience with issues such as requirements capture and object-orient development. Prerequisites: CSCE 601 or approval of instructor; graduate classification.

CSCE 603 Database Systems and Applications

Credits 3. 3 Lecture Hours. Introduction to the concepts and design methodologies of database systems for non-computer science majors; emphasis on E. F. Codd's relational model with hands-on design application. Only one of the following will satisfy the requirements for a degree: CSCE 310 or CSCE 603. Prerequisites: CSCE 601; graduate classification.

CSCE 604 Programming Languages

Credits 3. 3 Lecture Hours. Study in the design space of programming languages, covering language processing, formalisms to describe semantics of programming languages, important concepts found in current programming languages, and programming paradigms. Prerequisite: Graduate classification.

CSCE 605 Compiler Design

Credits 3. 3 Lecture Hours. Advanced topics in compiler writing; parser generators and compiler-compilers; dynamic storage and scope resolution; data flow analysis and code optimization. Prerequisite: CSCE 434.

CSCE 606 Software Engineering

Credits 3. 3 Lecture Hours. Development of advanced concepts in software engineering; software development environments as a mechanism for enhancing productivity and software quality; the classification, evaluation and selection of methodologies for environments; rapid prototyping and reusability concepts; artificial intelligence techniques applied to software engineering. Prerequisite: CSCE 431 or approval of instructor.

CSCE 608 Database Systems

Credits 3. 3 Lecture Hours. Database modeling techniques; expressiveness in query languages including knowledge representation; manipulation languages data models; physical data organization; relational database design theory; query processing; transaction management and recovery; distributed data management. Prerequisite: CSCE 310 or approval of Instructor.

CSCE 610 Hypertext/Hypermedia Systems

Credits 3. 3 Lecture Hours. Comprehensive coverage of Hypertext/Hypermedia; basic concepts and definitions; fundamental components, architectures and models; problems and current solutions; design and implementation issues; and research issues. Prerequisites: CSCE 310 or CSCE 603; CSCE 313.

CSCE 611 Operating Systems

Credits 3. 3 Lecture Hours. Review of computer architecture hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction; algorithms for CPU scheduling memory and general resource allocation; process coordination and management; case studies of several operating systems; quality-of-services of operating systems and their impact on applications. Only one of the following will satisfy the requirements for a degree: CSCE 410 or CSCE 611. Prerequisites: CSCE 313; graduate classification.

CSCE 612 Applied Networks and Distributed Processing

Credits 3. 3 Lecture Hours. Fundamentals, including network design and protocol analysis, in the context of computer communications; mixes fundamentals with both programming and pragmatic views of engineering issues; it includes network architecture as well as principles of network engineering; focus is on applying principles of layered architecture to analyzing real networks; lab exercises focus on protocol understanding and programming; knowledge of UNIX and C programming helpful, but not required. Only one of the following will satisfy the requirements for a degree: CSCE 463 or CSCE 612. Prerequisite: Graduate classification.

CSCE 613 Advanced Operating Systems

Credits 3. 3 Lecture Hours. Analysis of algorithms in computer operating systems; sequencing and control algorithms supporting concurrent processes; scheduling algorithms to minimize execution times and mean flow times; algorithms for allocating tasks to processors; allocation of memory (virtual and real); direct access device schedules; auxiliary and buffer storage models. Prerequisite: CSCE 410 or CSCE 611.

CSCE 614 Computer Architecture

Credits 3. 3 Lecture Hours. Reviews of von Neumann architecture and its limitations; parallel computer structures and concurrent computation; pipeline computers and vectorization methods; array processors, multiprocessor architectures and programming; dataflow computers. Prerequisite: CSCE 350/ECEN 350, ECEN 350/CSCE 350, or CSCE 312; background in undergraduate computer engineering or computer science.

CSCE 616 Introduction to Hardware Design Verification

Credits 3. 3 Lecture Hours. Introduction to hardware functional verification; case studies on verification in integrated circuit design; introduction to industry best practices; introduction to logic functional verification. Prerequisites: CSCE 312 or CSCE 350/ECEN 350, or equivalent in computer architecture; familiarity with C/C++/Verilog/VHDL programming.

CSCE 617 Co-Design of Embedded Systems (CODES)

Credits 3. 3 Lecture Hours. Co-design methodologies of hardware-software systems; models of computation (MOC), system specification, co-simulation, synthesis, and verification; hardware-software implementation; core-based systems and interfaces, performance analysis and optimization; system on chip, power aware design. Prerequisites: CSCE 462 or equivalent, CSCE 410 and graduate classification.

CSCE 619 Networks and Distributed Computing

Credits 3. 3 Lecture Hours. Computer network concepts including network architecture, layering, protocols, packet switching and virtual circuits; performance evaluation and design considerations for local area networks; packet distributed networks; satellite networks. Prerequisite: CSCE 463 or CSCE 612.

CSCE 620/VIZA 670 Computational Geometry

Credits 3. 3 Lecture Hours. Design and analysis of algorithms for solving geometrical problems; includes convex hull problems, Voronoi diagrams, range searching and proximity problems. Prerequisite: CSCE 311. Cross Listing: VIZA 670/CSCE 620.

CSCE 622 Generic Programming

Credits 3. 3 Lecture Hours. The generic programming approach to design and systematic classification of software components, techniques for achieving correctness, efficiency, and generality of algorithms, data structures, and memory management, methods of structuring a library of generic software components for maximum usability are practiced in a significant design and implementation project. Prerequisite: CSCE 221.

CSCE 624 Sketch Recognition

Credits 3. 3 Lecture Hours. Analysis, implementation, and comparison of sketch recognition algorithms, including feature-based, vision-based, geometrical, timing-based, and path-based recognition algorithms; methods for combining these recognition methods for greater accuracy, using known AI techniques. Prerequisite: Graduate classification.

CSCE 625 Artificial Intelligence

Credits 3. 3 Lecture Hours. Fundamental concepts and modern methods of artificial intelligence; search (uninformed, informed, iterative improvement, constraint satisfaction, space/time complexity); game playing: minmax, alpha-beta pruning; knowledge representation and reasoning; propositional logic, first-order logic and automated theorem proving, etc.; planning; uncertainty and probabilistic reasoning; machine learning and deep learning basics; selected topics include cognitive models, distributed AI, intelligent agents, perception, robotics, natural language, etc.; philosophical issues, including ethics. Prerequisites: CSCE 411 or approval of instructor; graduate classification.

CSCE 626 Parallel Algorithm Design and Analysis

Credits 3. 3 Lecture Hours. Design of algorithms for use on highly parallel machines; area-time complexity of problems and general lower bound theory; application (of these concepts) to artificial intelligence, computer vision and VLSI design automation. Prerequisite: CSCE 221.

CSCE 627 Theory of Computability

Credits 3. 3 Lecture Hours. Formal models of computation such as pushdown automata; Turing machines and recursive functions; unsolvability results; complexity of solvable results. Prerequisite: CSCE 433.

CSCE 628/BICH 628 Computational Biology

Credits 3. 3 Lecture Hours. Introduction to computational biology; formulations of biology problems as computational problems; computational approaches to solve problems in genomics and proteomics. Prerequisite: Graduate classification or approval of instructor. Cross Listing: BICH 628/CSCE 628.

CSCE 629 Analysis of Algorithms

Credits 3. 3 Lecture Hours. Concrete algorithm design and analysis; abstract models to analyze the complexity of problems; NP-Completeness; approximation and probabilistic algorithms. Prerequisite: Graduate classification.

CSCE 630 Speech Processing

Credits 3. 3 Lecture Hours. Speech production and perception (speech apparatus, articulatory/auditory phonetics); mathematical foundations (sampling, filtering, probability, pattern recognition); speech analysis and coding (short-time Fourier analysis, linear prediction, cesptrum); speech recognition (dynamic time warping, hidden Markov models, language models); speech synthesis (front-end, back-end); speech modification (overlap-add, enhancement, voice conversion). Prerequisites: ECEN 314 or equivalent or approval of instructor; basic knowledge of signals and systems, linear algebra, probability and statistics; programming experience in a high-level language is required.

CSCE 631 Intelligent Agents

Credits 3. 3 Lecture Hours. On the design and implementation of Intelligent Agents and coordination mechanisms among multiple agents, ranging from theoretical principles to practical methods for implementation. Prerequisite: CSCE 420 or CSCE 625.

CSCE 632 Accessible Computing

Credits 3. 3 Lecture Hours. Exploration of traditionally disenfranchised user populations due to disability including discrimination and population characteristics; review of ethical and legal motivations for creating accessible technology; universal design and its role in the development, evaluation, design, and implementation of equitable and inclusive software and computer-based solutions; application of accessibility standards; compilation of a literature review on a current topic in accessible computing. Prerequisites: Graduate classification.

CSCE 633 Machine Learning

Credits 3. 3 Lecture Hours. Machine learning is the study of self-modifying computer systems that can acquire new knowledge and improve their own performance; survey machine learning techniques, which include induction from examples, conceptual clustering, explanation-based learning, exemplar learning and analogy, discovery and genetic algorithms. Prerequisite: CSCE 420 or CSCE 625.

CSCE 634 Intelligent User Interfaces

Credits 3. 3 Lecture Hours. Intersection of artificial intelligence and computer-human interaction; emphasis on designing and evaluating systems that learn about and adapt to their users, tasks, and environments. Prerequisites: Graduate classification and approval of instructor.

CSCE 635 AI Robotics

Credits 3. 3 Lecture Hours. 1 Lab Hour. Introduction and survey of artificial intelligence methods for mobile robots (ground, aerial, or marine) for science and engineering majors; theory and practice of unmanned systems, focusing on biological and cognitive principles which differ from control theory formulations.

CSCE 636 Deep Learning

Credits 3. 3 Lecture Hours. Basic concepts in neural computing; functional equivalence and convergence properties of neural network models; associative memory models; associative, competitive and adaptive resonance models of adaptation and learning; selective applications of neural networks to vision, speech, motor control and planning; neural network modeling environments. Prerequisites: MATH 251 and MATH 304 or approval of instructor.

CSCE 637 Complexity Theory

Credits 3. 3 Lecture Hours. Deterministic, non-deterministic, alternating and probabilistic computations; reducibilities; P, NP and other complexity classes; abstract complexity; time, space and parallel complexity; and relativized computation. Prerequisite: CSCE 627 or approval of instructor.

CSCE 638 Natural Language Processing: Foundations and Techniques

Credits 3. 3 Lecture Hours. Focus on teaching Natural Language Processing (NLP) fundamentals including language models, automatic syntactic processing and semantic understanding; introduction to major NLP applications including information extraction, machine translation, text summarization, dialogue systems and sentiment analysis.

CSCE 640 Quantum Algorithms

Credits 3. 3 Lecture Hours. Introduction to the design and analysis of quantum algorithms; basic principles of the quantum circuit model; gives a gentle introduction to basic quantum algorithms; reviews recent results in quantum information processing. Prerequisite: CSCE 629 or approval of instructor.

CSCE 641/VIZA 672 Computer Graphics

Credits 3. 3 Lecture Hours. Representation of 3-dimensional objects, including polyhedral objects, curved surfaces, volumetric representations and CSG models; techniques for hidden surface/edge removal and volume rendering; illumination and shading; antialiasing; ray tracing; radiosity; animation; practical experience with state-of-the-art graphics hardware and software. Prerequisite: CSCE 441 or approval of instructor. Cross Listing: VIZA 672/CSCE 641.

CSCE 642 Deep Reinforcement Learning

Credits 3. 3 Lecture Hours. Fundamentals of formalizing reinforce learning (RL) problems such as Markov Decision Process as well as various techniques and approaches for optimizing the agent's behavior given such problems; exploration of basic concepts and approaches in deep neural networks; overview of state-of-the-art algorithms that integrate deep learning with reinforcement learning; basics of reinforcement learning as well as deep reinforcement learning. Prerequisites: Graduate classification.

CSCE 643 Seminar in Intelligent Systems and Robotics

Credits 3. 3 Lecture Hours. Problems, methods and recent developments in intelligent systems and robotics. May be taken at multiple times for credit as content varies. Prerequisite: Approval of instructor.

CSCE 644 Cortical Networks

Credits 3. 3 Lecture Hours. The architecture of the mammalian cerebral cortex; its modular organization and its network for distributed and parallel processing; cortical networks in perception and memory; neuronal microstructure and dynamical simulation of cortical networks; the cortical network as a proven paradigm for the design of cognitive machines. Prerequisites: CSCE 420 or CSCE 625 and CSCE 636 and graduate classification.

CSCE 645/VIZA 675 Geometric Modeling

Credits 3. 3 Lecture Hours. Geometric and solid modeling concepts, Freeform curves and surfaces (splines and Bezier) with their relational, intersectional and global mathematic properties; parametric representation of solids, topology of closed curved surfaces, boundary concepts and Boolean/Euler operators; construction and display of curves and surfaces, and solid models. Prerequisites: CSCE 441 and CSCE 442 or equivalent. Cross Listing: VIZA 675/CSCE 645.

CSCE 646/VIZA 654 Digital Image

Credits 3. 2 Lecture Hours. 2 Lab Hours. Tools and techniques for generation, handling and analysis of two dimensional digital images; image representation and storage; display, media conversion, painting and drawing; warping; color space operations, enhancement, filtering and manipulation. Prerequisite: Graduate classification or approval of instructor. Cross Listing: VIZA 654/CSCE 646.

CSCE 647/VIZA 656 Image Synthesis

Credits 3. 2 Lecture Hours. 2 Lab Hours. Principles of image synthesis from 3-D scene descriptions; topics may include local and global illumination, shading, shadow determination, hidden surface elimination, texturing, raster graphics algorithms, transformations and projections. Prerequisites: Graduate classification in Visualization; VIZA 652, or approval of instructor. Cross Listing: VIZA 656/CSCE 647.

CSCE 648/VIZA 657 Computer Aided Sculpting

Credits 3. 2 Lecture Hours. 3 Lab Hours. Mathematical and artistic principles of 3-D modeling and sculpting; includes proportions, skeletal foundation, expression and posture, line of action; curves, surfaces and volumes, interpolation and approximation, parametric and rational parametric polynomials, constructive solid geometry, and implicit representations. Prerequisite: Approval of instructor. Cross Listing: VIZA 657/CSCE 648.

CSCE 649/VIZA 659 Physically-Based Modeling

Credits 3. 2 Lecture Hours. 2 Lab Hours. Physical simulation as used in choreography, geometric modeling, and the creation of special effects in computer graphics; a variety of problems and techniques are explored which may include particle-methods, modeling and simulation of flexible materials, kinematics and constraint systems. Prerequisite: Approval of instructor. Cross Listing: VIZA 659/CSCE 649.

CSCE 650/VIZA 677 Virtual Reality

Credits 3. 2 Lecture Hours. 2 Lab Hours. Theory and practice of virtual reality (VR); interactive 3D virtual environments, immersive technology, perceptual realism, and embodied interaction experience; overview of VR with topics including input devices, output devices, 3D interaction techniques, augmented reality, the role of realism in VR, navigation techniques, design guidelines, and evaluation methods; hands-on experience designing VR experiences emphasizing application, demonstration, or research purposes. Prerequisites: Graduate classification or approval of instructor. Cross Listing: VIZA 677/CSCE 650.

CSCE 652 Software Reverse Engineering

Credits 3. 2 Lecture Hours. 2 Lab Hours. Introduction to the compilation mechanism to generate executable files and raw binary codes from sources codes; the executable file formats for an operation system to run the binary code; disassembly algorithms and control graph analysis; static and dynamic analyses; case studies on code obfuscation, codebreaking and malware analysis. Prerequisites: CSCE 313 or approval of instructor.

CSCE 653 Computer Methods in Applied Sciences

Credits 3. 3 Lecture Hours. Classical and modern techniques for the computational solution of problems of the type that traditionally arise in the natural sciences and engineering; introductions to number representation and errors, locating roots of equations, interpolation, numerical integration, linear algebraic systems, spline approximations, initial-value problems for ordinary differential equations and finite-difference methods for partial differential equations. Prerequisite: CSCE 442 or MATH 417; graduate classification.

CSCE 654 Supercomputing

Credits 3. 3 Lecture Hours. Principles of high-performance scientific computing systems, vectorization, programming on supercomputers, numerical methods for supercomputers, performance measuring of supercomputers, multitasking. Prerequisite: CSCE 614.

CSCE 655 Human-Centered Computing

Credits 3. 3 Lecture Hours. A foundation course in human centered systems and information; understanding and conceptualizing interaction; design and prototyping methodologies; evaluation frameworks; visual design using color, space, layering, and media; information structuring and visualization; animation and games; individual and team programming projects. Prerequisite: Graduate classification or CSCE 436 or 444 or approval of instructor.

CSCE 656 Computers and New Media

Credits 3. 3 Lecture Hours. This class investigates the potential and realized impact of computers in the design of new media, explores the variety of relationships between authors and readers of interactive materials, and explores the influence of media design and content expressed. Prerequisite: Graduate classification.

CSCE 657/PETE 657 High Performance Computing for Earth Science and Petroleum Engineering

Credits 3. 3 Lecture Hours. Numerical simulation of problems in Earth Sciences and Petroleum Engineering using high performance computing (HPC); development of a parallel reservoir simulator. Prerequisite: Graduate classification. Cross Listing: PETE 657/CSCE 657.

CSCE 658 Randomized Algorithms.

Credits 3. 3 Lecture Hours. Introduction to randomized algorithms; selected tools and techniques from probability theory and game theory are reviewed, with a view towards algorithmic applications; the main focus is a thorough discussion of the main paradigms, techniques, and tools in the design and analysis of randomized algorithms; a detailed analysis of numerous algorithms illustrates the abstract concepts and techniques. Prerequisite: Graduate classification.

CSCE 659 Parallel/Distributed Numerical Algorithms and Applications

Credits 3. 3 Lecture Hours. A unified treatment of parallel and distributed numerical algorithms; parallel and distributed computation models, parallel computation of arithmetic expressions; fast algorithms for numerical linear algebra, partial differential equations and nonlinear optimization. Prerequisites: CSCE 653; MATH 304.

CSCE 660/MATH 660 Computational Linear Algebra

Credits 3. 3 Lecture Hours. Techniques in matrix computation including elimination methods, matrix decomposition, generalized inverses, orthogonalization and least-squares, eigenvalue problems and singular value decomposition, iterative methods and error analysis. Prerequisite: MATH 417 or equivalent or CSCE 442 or equivalent. Cross Listing: MATH 660/CSCE 660.

CSCE 662 Distributed Processing Systems

Credits 3. 3 Lecture Hours. Principles and practices of distributed processing; protocols, remote procedure calls; file sharing; reliable system design; load balancing; distributed database systems; protection and security; implementation. Prerequisite: CSCE 313 and CSCE 463 or CSCE 612.

CSCE 663 Real-Time Systems

Credits 3. 3 Lecture Hours. Taxonomy of real-time computer systems; scheduling algorithms for static and dynamic real-time tasks; hard real-time communications protocols; programming languages and environments for real-time systems; case studies of real-time operating systems. Prerequisites: CSCE 313, and CSCE 463 or CSCE 611, or approval of instructor.

CSCE 664 Wireless and Mobile Systems

Credits 3. 3 Lecture Hours. Wireless and mobile systems; wireless communication fundamentals; wireless medium access control design; transmission scheduling; network and transport protocols over wireless design, simulation and evaluation; wireless capacity; telecommunication systems; vehicular, adhoc, and sensor network systems; wireless security; mobile applications. Prerequisite: CSCE 463 or CSCE 464 or approval of instructor.

CSCE 665 Advanced Networking and Security

Credits 3. 3 Lecture Hours. Security aspects of various network protocols including investigation and tool development using "live" machines and networks. Prerequisites: Graduate classification and approval of instructor.

CSCE 666 Pattern Analysis

Credits 3. 3 Lecture Hours. Introduction to methods for the analysis, classification and clustering of high dimensional data in Computer Science applications; includes density and parameter estimation, linear feature extraction, feature subset selection, clustering, Bayesian and geometric classifiers, non-linear dimensionality reduction methods from statistical learning theory and spectral graph theory, Hidden Markov models, and ensemble learning. Prerequisites: MATH 222, MATH 411 or equivalent, and graduate classification.

CSCE 667 Seminar in Human-Centered Computing

Credits 3. 3 Lecture Hours. Problems, methods and recent developments in human-centered computing and information. May be repeated for credit as content varies. Prerequisites: Graduate classification.

CSCE 668 Distributed Algorithms and Systems

Credits 3. 3 Lecture Hours. Introduction to fundamental algorithmic results in distributed computing systems; leader election, mutual exclusion, consensus, logical time and causality, distributed snapshots, algorithmic fault tolerance, shared memory, clock synchronization. Prerequisites: CSCE 411 or equivalent or approval of instructor.

CSCE 669 Computational Optimization

Credits 3. 3 Lecture Hours. Combinatorial theory of polytopes as a tool for the solution of combinatorial optimization problems; applications to max flow, matching and matroids; geometric interpretation of the results indicating the profound role that polyhedral combinatorics play in the design and complexity of approximation algorithms. Prerequisite: CSCE 629.

CSCE 670 Information Storage and Retrieval

Credits 3. 3 Lecture Hours. Representation, storage, and access to very large multimedia document collections; fundamental data structures and algorithms of information storage and retrieval systems; techniques to design and evaluate complete retrieval systems, including cover of algorithms for indexing, compressing, and querying very large collections. Prerequisites: CSCE 310 or CSCE 603 or approval of instructor; graduate classification.

CSCE 671 Computer-Human Interaction

Credits 3. 3 Lecture Hours. Comprehensive coverage of Computer-human Interaction (CHI) including history, importance, design theories and future direction; modeling computer users and interfaces, empirical techniques for task analysis and interface design, and styles of interaction. Prerequisite: Graduate classification.

CSCE 672 Computer Supported Collaborative Work

Credits 3. 3 Lecture Hours. Covers design, implementation and use of technical systems that support people working cooperatively; draws from the research area of Computer Supported Cooperative Work (CSCW) and includes current theoretical, practical, technical and social issues in CSCW and future directions of the field. Prerequisite: CSCE 671 or CSCE 610 or approval of instructor.

CSCE 675 Digital Libraries

Credits 3. 3 Lecture Hours. Surveys current research and practice in Digital Libraries, which seek to provide intellectual access to large-scale, distributed digital information repositories; current readings from the research literature which covers the breadth of this interdisciplinary area of study. Prerequisite: Graduate classification in computer science.

CSCE 676 Data Mining and Analysis

Credits 3. 3 Lecture Hours. Broad overview of data mining, integrating related concepts from machine learning and statistics; exploratory data analysis, pattern mining, clustering and classification; applications to scientific and online data. Cross Listing: ECEN 758 and STAT 639.

CSCE 678/ECEN 757 Distributed Systems and Cloud Computing

Credits 3. 3 Lecture Hours. Fundamental concepts of distributed systems with a focus on the emerging application of cloud computing; design, analyze, and optimize distributed systems; includes MapReduce, synchronization, peer-to-peer systems, election, distributed agreement, replication, job assignment. Cross Listing: ECEN 757/CSCE 678.

CSCE 679/VIZA 676 Data Visualization

Credits 3. 3 Lecture Hours. Visual representation and design of data and information; 3D visualization, infographics, data narratives, principles of visual data encoding, and interaction techniques. Prerequisites: Graduate classification or approval of instructor. Cross Listing: VIZA 676/CSCE 679.

CSCE 680/ECEN 680 Testing and Diagnosis of Digital Systems

Credits 3. 3 Lecture Hours. The theory and techniques of testing VLSI-based circuits and systems, and design for testability. Prerequisites: ECEN 248 or equivalent; ECEN 350/CSCE 350 or CSCE 350/ECEN 350 or equivalent. Cross Listing: ECEN 680/CSCE 680.

CSCE 681 Seminar

Credits 0-1. 0-1 Other Hours. Reports and discussion of current research and of selected published technical articles. May not be taken for credit more than once in master's degree program nor twice in PhD program. Prerequisite: Graduate classification.

CSCE 682 Introduction to Doctoral Studies

Credits 0. 0 Other Hours. Overview and introduction to studies at the doctoral level; preparation for time in doctoral studies, including building awareness of major milestones and expectations; the importance of research, including the roles of publications and presentations of work. Must be taken on a satisfactory/unsatisfactory basis. Prerequisites: Doctoral classification in Computer Science and Engineering.

CSCE 684 Professional Internship

Credits 1 to 16. 1 to 16 Other Hours. Training under the supervision of practicing computer professionals in settings appropriate to the student's professional objectives, away from the Texas A&M University campus. Prerequisites: Approval of department head and one semester of graduate work completed.

CSCE 685 Directed Studies

Credits 1 to 12. 1 to 12 Other Hours. Research problems of limited scope designed primarily to develop research technique.

CSCE 689 Special Topics in...

Credits 0 to 4. 0 to 4 Other Hours. Selected topics in an identified area of computer science. May be repeated for credit. Prerequisite: Approval of instructor.

CSCE 691 Research

Credits 1 to 23. 1 to 23 Other Hours. Research for thesis or dissertation.

CSCE 701/CYBR 601 Foundations of Cybersecurity

Credits 3. 3 Lecture Hours. Foundational concepts and principles of cybersecurity; cryptographic algorithms; hash functions; introduction to cyber-physical systems security; authentication, firewalls, and intrusion detection systems; social constructs and domains of cybersecurity. Prerequisites: Graduate classification or approval of instructor. Cross Listing: CYBR 601/CSCE 701.

CSCE 702 Law and Policy in Cybersecurity

Credits 3. 3 Lecture Hours. Law and policy issues related to cybersecurity including procurement, operations, maintenance, governance, oversight, protection, defense; analyze law, policies, and regulations domestically and globally. Prerequisite: Graduate classification. Cross Listing: CYBR 602 and MARA 647.

CSCE 703 Cybersecurity Risk

Credits 3. 3 Lecture Hours. Risks in cybersecurity; avoidance, acceptance, mitigation or transference strategies; developing reliable cybersecurity risk assessments to include analysis, categorization and evaluation; cybersecurity risk audit frameworks. Prerequisites: Graduate classification. Cross Listing: CYBR 603 and MARA 655.

CSCE 704/CYBR 604 Data Analytics for Cybersecurity

Credits 3. 3 Lecture Hours. Introduction to the theoretical foundations, algorithms and methods of data analytics for cybersecurity; societally-critical topic with impacts across computing systems and networks, social and web-based communities, industrial control systems and personal devices, among many others; study and application of data analytics including cluster analysis, supervised machine learning, anomaly detection and visualization; addresses a suite of cybersecurity topics including cyber attacks, anomaly detection, vulnerability analysis, strategic manipulation and propaganda. Prerequisites: Graduate classification. Cross Listing: CYBR 604/CSCE 704.

CSCE 705 Introduction to Computing Systems

Credits 3. 3 Lecture Hours. Principles of basic computer systems; motivation, challenges and design issues in modern operating systems; synchronous and asynchronous event handling; principles of high-performance design in software and hardware, e.g., caching, multi-programming and virtual memory; software efficiency using concurrency, scheduling, concurrency and synchronization; persistent storage; I/O mechanism; network programming; network and software security and vulnerabilities; some advanced topics relating to security and modern networks; experience with programming in at least one of the following languages C/C++, Java or Python. Prerequisites: Graduate classification.

CSCE 706 Structured Programming in C

Credits 3. 3 Lecture Hours. Principles of computer science including algorithm development, programming techniques, language features and methods of documentation; introduction in detail to the C programming language. Prerequisites: Graduate classification; non-computer science majors.

CSCE 707 Programming I

Credits 3. 3 Lecture Hours. Using computation to enhance problem-solving abilities to implement programs in Python. Prerequisites: Graduate classification; non-computer science of engineering majors.

CSCE 708 Introduction to Computer Science Concepts and Programming

Credits 3. 3 Lecture Hours. Learning logic, algorithmic thinking and developing an iterative approach to solving problems and testing ideas using Java. Prerequisites: Graduate classification; non-computer science engineering majors.

CSCE 709 Intermediate Program Design and Development with C++

Credits 3. 3 Lecture Hours. 1 Lab Hour. Extension of prior programming knowledge to create computer programs which solve problems; use of the C++ language; application of computational thinking to enhance problem solving; analysis, design and implementation of computer programs; use of basic and aggregate data types to develop functional and object oriented solutions; development of classes that use dynamic memory to eliminate memory leaks; learn error handling strategies to develop more secure and robust programs. Prerequisite: Graduate classification.

CSCE 710 Fundamentals of Software Analysis

Credits 3. 3 Lecture Hours. Development of advanced concepts in program analyses; program abstraction, data-flow analysis, type systems, verification, testing, concurrency, reliability, fault detection; tools and empirical experimentation for program analyses. Prerequisites: CSCE 434 or approval of instructor.

CSCE 711/CYBR 711 Foundation of Modern Cryptography

Credits 3. 3 Lecture Hours. Perfectly secret encryption; one-time pad; pseudorandom generators, functions and permutations; security definitions; block ciphers; stream ciphers; cryptanalysis; message authentication codes; hash functions; factoring, discrete log and the Diffie-Hellman problem; trapdoor functions and permutations; public-key encryption; El Gamal and RSA encryption schemes; digital signatures; DSA and RSA signature schemes; identification schemes; the Fiat-Shamir transform; advanced topics include secret sharing, oblivious transfer, zero-knowledge proofs, secure multi-party computation. Prerequisite: STAT 211 and CSCE 411; graduate classification. Cross Listing: CYBR 711/CSCE 711.

CSCE 712 Digital Forensic Engineering

Credits 3. 3 Lecture Hours. Fundamentals and hands-on practice of computer and network forensics; exposure to technical principles, digital forensic tools and legal requirements on handling of digital information undergoing digital forensic analysis. Prerequisites: Graduate classification.

CSCE 713 Software Security

Credits 3. 3 Lecture Hours. Basic principles of design and implementation of secure software, code reviews including tool-assisted review by static and dynamic analysis, risk analysis and management, and methods for software security testing. Prerequisites: CSCE 431 or CSCE 606 or approval of instructor; graduate classification.

CSCE 714 Advanced Hardware Design Functional Verification

Credits 3. 3 Lecture Hours. Advanced topics in hardware functional verification; case studies on verification in integrated circuit design; exposure to advanced industry best practices; focus on functional verification in an IP-based hardware design methodology. Prerequisites: CSCE 616, CSCE 312, CSCE 350/ECEN 350, ECEN 350/CSCE 350, ECEN 468, or equivalent; familiarity with C/C++/Verilog/VHDL programming.

CSCE 715 Secure Authentication Systems

Credits 3. 3 Lecture Hours. Overview of passwords, two-factor and multi-factor authentication, biometric systems, end-to-end encryption protocols, and authentication side channels; analysis of new authentication techniques that build upon fundamental topics in computer science, including machine learning, crypto theory, natural language processing, and human-computer interaction. Prerequisites: Graduate classification.

CSCE 716 Foundations and Applications of Blockchains

Credits 3. 3 Lecture Hours. Foundational and practical, hands-on aspects of blockchains and their applications; properties of the blockchain and the achievability of the applications they enable depending on the required trusted setup assumptions and cryptographic tools that they employ; private Ethereum network ranging from simple fund transfers between accounts, to the understanding, design and development of more complex smart contracts. Prerequisites: Graduate classification.

CSCE 717 Algorithmic Game Theory

Credits 3. 3 Lecture Hours. Discussion of algorithms, computer science, and game theory to analyze strategic interactions among rational agents; overview of the fundamental concepts and techniques used in Algorithmic Game Theory, including Nash equilibria, social choice theory, mechanism design, and computational complexity. Prerequisites: CSCE 629 or approval of instructor.

CSCE 725 Data Science Capstone

Credits 3. 3 Lecture Hours. Application of data science methods including machine learning to research problems; team project-based training for project management, interdisciplinary collaboration and communication skills. Prerequisite: Two or more of CSCE 633, CSCE 636, CSCE 666, CSCE 676, ECEN 758, ECEN 649, ECEN 740, ECEN 743, ECEN 765, ECEN 760, STAT 616, STAT 618 or STAT 639; Python programming experience is highly recommended. Cross Listing: STAT 683 and ECEN 725.

CSCE 735 Parallel Computing

Credits 3. 3 Lecture Hours. Overview of parallel computing technology and programming methods; topics include multiprocessor architectures, programming tools, parallel performance, parallel algorithms and applications of parallel computing. Prerequisites: Graduate classification or approval of instructor.

CSCE 748 Computational Photography

Credits 3. 3 Lecture Hours. Cameras and the image formation process; basic image and video processing tools like sampling, filtering and pyramids; several image-based algorithms, including panorama creation, lightfields, image retargeting, high dynamic range imaging and texture synthesis. Prerequisites: Graduate classification or approval of course instructor.

CSCE 749 Applied Cryptography

Credits 3. 3 Lecture Hours. Applications in machine learning and blockchain to enhance data privacy; related cryptographic techniques include secure multiparty computations, verifiable computations and zero knowledge proofs; application of techniques to construct privacy-preserving machine learning, crypto-currencies and blockchain; study of efficiency and functionality constraints in practice, and discussion of challenges and solutions to efficiently realize these cryptographic protocols. Prerequisites: Graduate classification.

CSCE 752 Robotics and Spatial Intelligence

Credits 3. 3 Lecture Hours. The algorithmic foundation of robotics including spatial representations, frame transformation and mapping, forward kinematics, inverse kinematics, mobile robots wheel kinematics, motion planning, sensors, camera calibration, stereo vision, simultaneous localization and mapping and navigation. Prerequisites: Graduate classification or approval of instructor.

CSCE 753 Computer Vision and Robot Perception

Credits 3. 3 Lecture Hours. Projective geometry foundations of computer vision including spatial representations; geometric relations between multiple views of scenes; general principles of camera and image parameter estimation; visual feature extraction; lidar point cloud properties; visual and lidar-based simultaneous localization and mapping (SLAM). Prerequisites Graduate classification.

CSCE 765 Network Security

Credits 3. 3 Lecture Hours. Fundamental vulnerabilities of the networking communications and corresponding defense mechanisms covering cryptographic algorithms with the primary intent to correctly apply them for real-work network security applications and protocols; vulnerabilities associated within the networking infrastructures; design of defense mechanisms to defeat vulnerabilities; investigation of various layers of the networking stack when incorporating the security mechanisms. Prerequisites: Graduate classification.