Comp Sci & Comp Engr (CSCE)

CSCE 500  - Computer Programming and Applications  (3 Credits)  

Concepts and properties of algorithms; programming exercises with emphasis on good programming habits. Credit may not be received for both CSCE 500 and CSCE 145. Open to all majors. May not be used for major credit by computer science and engineering majors.

CSCE 510  - System Programming  (3 Credits)  

System software such as command language interpreters, client-server applications, debuggers; mail systems, browsers, macroprocessors, and revision control systems; file systems, processes, threads, and interprocess communication.

Prerequisites: CSCE 215, CSCE 240.
CSCE 512  - System Performance Evaluation  (3 Credits)  

Measuring, modeling, analyzing, and predicting performance of computer systems and networks; bottleneck analysis; Markovian queuing systems and networks; use of operational and probabilistic models.

Prerequisites: CSCE 311, STAT 509 or STAT 515.
CSCE 513  - Computer Architecture  (3 Credits)  

Design methodology; processor design; computer arithmetic: algorithms for addition, multiplication, floating point arithmetic; microprogrammed control; memory organization; introduction to parallel architectures.

Prerequisites: CSCE 211, CSCE 212.
CSCE 515  - Computer Network Programming  (3 Credits)  

Computer networks and communication protocols; socket programming; interprocess communication; development of network software; case studies.

Prerequisites: CSCE 311.
CSCE 516  - Computer Networks  (3 Credits)  

Structure, design, and analysis of computer networks; ISO/OSI network architecture.

Prerequisites: STAT 509 or STAT 515.
CSCE 517  - Computer Crime and Forensics  (3 Credits)  

Structure, design, and analysis of computer networks; ISO/OSI network architecture.

Prerequisites: CSCE 215.
CSCE 518  - Ethical Hacking  (3 Credits)  

Fundamental principles and techniques of ethical hacking, including penetration testing life cycle, planning and scoping, identifying targets and goals, active and passive reconnaissance, enumeration and scanning, exploitation, post-exploitation, and results reporting.

Prerequisites: CSCE 215 or previous Linux/UNIX experience.
CSCE 520  - Database System Design  (3 Credits)  

Database management systems; database design and implementation; security, integrity, and privacy.

Prerequisites: CSCE 240 or GEOG 563.
CSCE 522  - Information Security Principles  (3 Credits)  

Threats to information resources and appropriate countermeasures. Cryptography, identification and authentication, access control models and mechanisms, multilevel database security, steganography, Internet security, and intrusion detection and prevention.

Prerequisites: CSCE 146; MATH 374 or MATH 174.
CSCE 526  - Service Oriented Computing  (3 Credits)  

Cooperative information systems and service-oriented computing. Techniques for achieving coordinated behavior among a decentralized group of information system components. Distributed databases, multiagent systems, conceptual modeling, Web services, and applications.

Prerequisites: CSCE 311.
CSCE 531  - Compiler Construction  (3 Credits)  

Techniques for design and implementation of compilers, including lexical analysis, parsing, syntax-directed translation, and symbol table management.

Prerequisites: CSCE 240.
CSCE 546  - Mobile Application Development  (3 Credits)  

Development of mobile applications, including user interface design for mobile, local and cloud data storage techniques, and application architectures.

Prerequisites: CSCE 240 or previous programming experience with one of the following programming languages (C/C++, Java, Swift, Python, Matlab, Javascript).
CSCE 547  - Windows Programming  (3 Credits)  

Object-oriented methods and tools for application programming with graphically interactive operating systems.

Prerequisites: CSCE 240.
CSCE 548  - Building Secure Software  (3 Credits)  

Construction of software systems resistant to vulnerabilities and attacks. Cryptographic tools. Language, operating system, and network security. Case studies. Development of best practices through programming assignments.

Prerequisites: CSCE 240.
CSCE 551  - Theory of Computation  (3 Credits)  

Basic theoretical principles of computing as modeled by formal languages and automata; computability and computational complexity

Prerequisites: C or better in CSCE 350 or MATH 300.

Cross-listed course: MATH 562

CSCE 552  - Computer Game Development  (3 Credits)  

Design and development of computer games, with emphasis on the technologies used. Hands-on development of computer games.

Prerequisites: CSCE 240, CSCE 350.
CSCE 555  - Algorithms in Bioinformatics  (3 Credits)  

Concepts, algorithms and tools for important problems in Bioinformatics, including nucleotide and amino acid sequence alignment, DNA fragment assembly, phylogenetic reconstruction, and protein structure visualization and assessment.

Prerequisites: CSCE 350.
CSCE 557  - Introduction to Cryptography  (3 Credits)  

Design of secret codes for secure communication, including encryption and integrity verification: ciphers, cryptographic hashing, and public key cryptosystems such as RSA. Mathematical principles underlying encryption. Code-breaking techniques. Cryptographic protocols.

Prerequisites: C or better in CSCE 145 or MATH 241, and at least one of CSCE 355, MATH 300 or MATH 374.

Cross-listed course: MATH 587

CSCE 561  - Numerical Analysis  (3 Credits)  

Interpolation and approximation of functions; solution of algebraic equations; numerical differentiation and integration; numerical solutions of ordinary differential equations and boundary value problems; computer implementation of algorithms.

Prerequisites: C or better MATH 520 or in both MATH 242 and MATH 344.

Cross-listed course: MATH 527

CSCE 563  - Systems Simulation  (3 Credits)  

Computer simulation of real systems; principles of system organization; random number generation; programming exercises in a simulation language.

Prerequisites: CSCE 240, STAT 509 or STAT 515.
CSCE 564  - Computational Science  (3 Credits)  

Parallel algorithms; scientific visualization; techniques for solving scientific problems.

Prerequisites: MATH 526, CSCE 146 or CSCE 207 or CSCE 500.
CSCE 565  - Introduction to Computer Graphics  (3 Credits)  

Graphics hardware; graphics primitives; two-dimensional and three-dimensional viewing; basic modeling.

Prerequisites: CSCE 240, MATH 526 or MATH 544.
CSCE 567  - Visualization Tools  (3 Credits)  

Scientific visualization tools as applied to sampled and generated data; methods for data manipulation and representation; investigation of visualization techniques.

Prerequisites: CSCE 145 or CSCE 206 or CSCE 207.
CSCE 569  - Parallel Computing  (3 Credits)  

Architecture and interconnection of parallel computers; parallel programming models and applications; issues in high-performance computing; programming of parallel computers.

Prerequisites: knowledge of programming in a high-level language; MATH 526 or MATH 544.
CSCE 571  - Critical Interactives  (3 Credits)  

Foundational techniques in multidisciplinary software development, specifically of applications designed to present sensitive, sometimes controversial, materials in ways to engender empathic awareness of the interactor.

Cross-listed course: FAMS 581

CSCE 572  - Human-Computer Interaction  (3 Credits)  

Interdisciplinary approach to interaction design, user-centered design, human abilities, survey development, experimental study methodology, heuristic evaluations, usability testing, universal design, and accessibility.

Prerequisites: Undergraduate or graduate standing in CSE or permission of the instructor.
CSCE 574  - Robotics  (3 Credits)  

Design and application of robotic systems; emphasis on mobile robots and intelligent machines.

Prerequisites: CSCE 211, CSCE 212, CSCE 240.
CSCE 578  - Text Processing  (3 Credits)  

Text and natural language processing; formal models and data structures appropriate for text processing; selected topics in computational linguistics, stylistics, and content analysis.

Prerequisites: CSCE 330, CSCE 355.
CSCE 580  - Artificial Intelligence  (3 Credits)  

Heuristic problem solving, theorem proving, and knowledge representation, including the use of appropriate programming languages and tools.

Prerequisites: CSCE 350.
CSCE 582  - Bayesian Networks and Decision Graphs  (3 Credits)  

Normative approaches to uncertainty in artificial intelligence. Probabilistic and causal modeling with Bayesian networks and influence diagrams. Applications in decision analysis and support. Algorithms for probability update in graphical models.

Prerequisites: CSCE 350; STAT 509 or STAT 515.

Cross-listed course: STAT 582

CSCE 585  - Machine Learning Systems  (3 Credits)  

Design and implementation of machine learning systems, Deep learning systems stack, machine learning platforms, scalable and distributed machine learning.

Prerequisites: C or better in CSCE 240 or CSCE 206.
CSCE 587  - Big Data Analytics  (3 Credits)  

Foundational techniques and tools required for data science and big data analytics. Concepts, principles, and techniques applicable to any technology and industry for establishing a baseline that can be enhanced by future study.

Prerequisites: STAT 509, STAT 513, or STAT 515.

Cross-listed course: STAT 587

CSCE 590  - Topics in Information Technology  (3 Credits)  

Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by title. May be repeated for credit as topics vary.

CSCE 594  - Strategic Management of Information Systems  (3 Credits)  

Strategic management and use of information systems in organizations.

Cross-listed course: MGSC 594

CSCE 611  - Advanced Digital Design  (3 Credits)  

Design techniques for logic systems; emphasis on higher-level CAD tools such as hardware description languages and functional modeling.

Prerequisites: CSCE 212.
CSCE 612  - VLSI System Design  (3 Credits)  

VLSI design process models, introduction to EDA tools, HDL modeling and simulation, logic synthesis and simulation, benchmark design projects.

Prerequisites: CSCE 211.
CSCE 613  - Fundamentals of VLSI Chip Design  (3 Credits)  

Design of VLSI circuits, including standard processes, circuit design, layout, and CAD tools. Lecture and guided design projects.

Prerequisites: ELEC 371.
CSCE 711  - Advanced Operating Systems  (3 Credits)  

Operating system organization and interactive processing systems, multiprogramming systems, process management, task scheduling, resource control, deadlocks.

Prerequisites: CSCE 311.
CSCE 713  - Advanced Computer Architecture  (3 Credits)  

Architecture of high-performance computers, including array processors, multiprocessor systems, data flow computers, and distributed processing systems.

Prerequisites: CSCE 311 and CSCE 513.
CSCE 715  - Network Systems Security  (3 Credits)  

Analysis of security threats in TCP/IP networks. Design of safeguards. Coverage of security threats at each of the OSI layers. Application of cryptographic protocols for secure communication across a network.

Prerequisites: CSCE 515 or CSCE 516.
CSCE 716  - Design for Reliability  (3 Credits)  

Design of more reliable systems through the application of reliability theory and models; reliability modeling; design techniques; testing; and requirement specifications.

Prerequisites: STAT 509 or STAT 511, or MATH 511.
CSCE 717  - Computer System Performance and Reliability Analysis  (3 Credits)  

Evaluation of computer system performance and reliability using reliability block diagrams, fault trees, reliability graphics, queuing networks, Markov models, and Markov reward models.

Prerequisites: STAT 509 or STAT 511.
CSCE 718  - Real-Time Computer Applications  (3 Credits)  

Problems of real-time computer applications in process control or similar areas; task scheduling; real-time operating systems; advanced interrupt structures; memory management techniques.

Prerequisites: CSCE 245, CSCE 311.
CSCE 719  - Security and Privacy for Wireless Networks  (3 Credits)  

This course focuses on the security and privacy issues associated with wireless networks. Various attacks against wireless networks and their defense strategies will be analyzed. Students are able to embark in research of wireless network security.

Prerequisites: CSCE 416.
CSCE 721  - Physical Database Design  (3 Credits)  

Components of a database management system; implementation issues; query optimization; file organization; file organizations’ transaction management; fault recovery; security; system performance.

Prerequisites: CSCE 520.
CSCE 723  - Advanced Database Design  (3 Credits)  

Database design methodologies and tools; data models; implementation languages; user interfaces.

Prerequisites: CSCE 520.
CSCE 725  - Information Retrieval: Algorithms and Models  (3 Credits)  

Structure, design, evaluation, and use of information retrieval systems; algorithms and mathematical models for information retrieval; storage and retrieval of textual data in information systems.

CSCE 727  - Information Warfare  (3 Credits)  

Current trends and challenges in information warfare. High-level analysis of information warfare threats, like cyber terrorism, espionage, Internet fraud, intelligence activities, cyber ethics, and law enforcement.

Prerequisites: CSCE 522.
CSCE 730  - Programming Language Semantics  (3 Credits)  

Approaches for specifying programming language semantics, including operational, axiomatic, and denotational specification.

Prerequisites: CSCE 531.
CSCE 740  - Software Engineering  (3 Credits)  

Current practices and research in software development, requirements definition, design, program testing and reliability, maintenance, and management.

Prerequisites: CSCE 240.
CSCE 741  - Software Process  (3 Credits)  

Personal, team, and organizational software processes; personal and organizational maturity; application of software process and management concepts during software development, primarily at the individual level.

CSCE 742  - Software Architectures  (3 Credits)  

Structural organizations for software systems as collections of interconnected components: formal models and languages; design tools and guidelines.

CSCE 743  - Software Requirements  (3 Credits)  

Elicitation, analysis, and validation of software requirements, specification of software systems including formal specification methods; CASE tools.

Prerequisite or Corequisite: CSCE 740.
CSCE 744  - Object-Oriented Analysis and Design  (3 Credits)  

Fundamentals of object-oriented technology; object modeling of structure, function, and time-dependent behavior; system analysis and design.

Prerequisites: CSCE 350.
CSCE 745  - Object-Oriented Programming Methods  (3 Credits)  

Object-oriented programming paradigm, including encapsulation, inheritance, reusable classes, object classification, specialization, and message passing; case studies and applications.

Prerequisites: CSCE 245.
CSCE 747  - Software Testing and Quality Assurance  (3 Credits)  

Structural and functional techniques for testing software; code inspection, peer review, test verification and validation; statistical testing methods; preventing and detecting errors; testing metrics; test plans; formal methods of testing.

Prerequisites: CSCE 740.
CSCE 750  - Analysis of Algorithms  (3 Credits)  

Algorithm design techniques; algorithms and data structures for sets and graphs; time and space complexity; sorting and searching; NP-complete problems.

Prerequisites: CSCE 350.
CSCE 755  - Computability, Automata, and Formal Languages  (3 Credits)  

Formal models of computation, including finite state automata, Turing machines, recursive functions, formal grammars, and abstract complexity theory.

Prerequisites: CSCE 355 or CSCE 551.
CSCE 758  - Probabilistic System Analysis  (3 Credits)  

Application of probability theory and stochastic processes to analyze the dynamic behavior of engineering systems.

Prerequisites: STAT 509 or STAT 511.
CSCE 760  - Numerical Analysis I  (3 Credits)  

Numerical solution of equations and systems of linear equations, polynomial approximation, difference calculus, solution of ordinary and partial differential equations, least squares and sets of orthogonal polynomials, Gaussian quadrature.

Prerequisites: MATH 526 or MATH 544.
CSCE 761  - Numerical Analysis II  (3 Credits)  

Continuation of CSCE 760.

Prerequisites: CSCE 760.
CSCE 763  - Digital Image Processing  (3 Credits)  

Concepts and techniques for digital image processing; emphasis on low-level processes that analyze discrete images at the pixel level.

CSCE 765  - Computer Graphics System Design  (3 Credits)  

Graphics data structures, graphics languages, modeling, raster displays, 3-D shading, hidden surface algorithms.

Prerequisites: CSCE 565.
CSCE 766  - Scientific Visualization  (3 Credits)  

Visualization techniques for scientific computing; interactive steering of calculations; animation and rendering techniques for multivariate data analysis.

Prerequisites: CSCE 565.
CSCE 767  - Interactive Computer Systems  (3 Credits)  

Principles for the design of systems supporting effective human-computer interaction; interaction styles; displays and interactive devices; user assistance; system design and evaluation.

CSCE 768  - Pattern Recognition and Classification  (3 Credits)  

Bayesian classifiers; optimal risk schemes; error rates; numerical methods; implementation; architectures.

Prerequisites: STAT 509 or STAT 510 or STAT 511.
CSCE 769  - Computational Structural Biology  (3 Credits)  

Theoretical concepts and algorithmic tools currently utilized in the field of protein folding such as Xplor-NIH and ROSETTA are presented. Participants are enabled to embark in research of protein folding.

Prerequisites: linear algebra.
CSCE 771  - Computer Processing of Natural Language  (3 Credits)  

Computational models for the analysis and synthesis of natural language; representations for syntax and semantics; applications to text-to-speech conversion, speech recognition, and language understanding.

Prerequisites: CSCE 580.
CSCE 772  - Computer Speech Processing  (3 Credits)  

A/D conversion, digital filters, discrete Fourier transform and FFT, acoustics of speech, and synthesis and recognition of speech.

Prerequisites: CSCE 580.
CSCE 774  - Robotics Systems  (3 Credits)  

Design and operation of robot systems; dynamics, control, and motion trajectories of manipulators; visual, auditory, and tactile sensing systems; planning and learning.

Prerequisites: CSCE 574.
CSCE 780  - Knowledge Representation  (3 Credits)  

Representation techniques and languages for symbolic knowledge, including predicate calculus, frame-based systems, and terminological systems; computer reasoning using these systems.

Prerequisites: CSCE 580.
CSCE 781  - Knowledge Systems  (3 Credits)  

Expert system domains, knowledge representation techniques, inference engines, and knowledge acquisition methods.

Prerequisites: CSCE 580.
CSCE 782  - Multiagent Systems  (3 Credits)  

Coordinated problem solving by multiple knowledge systems.

Prerequisites: CSCE 580.
CSCE 784  - Neural Information Processing  (3 Credits)  

Mathematical foundations of biological and artificial neural networks, supervised and unsupervised systems, applications.

Prerequisites: MATH 526 or MATH 544.
CSCE 787  - Introduction to Fuzzy Logic  (3 Credits)  

Principles of fuzzy set theory, fuzzy relations, and fuzzy logic; fuzzy “if-then” rules.

Prerequisites: MATH 174.
CSCE 790  - Topics in Information Technology  (1-3 Credits)  

Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by title. May be repeated for credit as topics vary.

CSCE 791  - Seminar in Advances in Computing  (1 Credit)  

Technical writing and presentations in major computing research areas; ethics in research and writing.

CSCE 793  - Internship in Software Engineering  (1 Credit)  

Work. Written report required. Not auditable.

CSCE 797  - Individual Study and Research  (1-12 Credits)  

Individual research to be arranged with the instructor.

CSCE 798  - Directed Study and Research  (1-12 Credits)  

Individual research to be arranged with the instructor.

CSCE 799  - Thesis Preparation  (1-12 Credits)  
CSCE 813  - Internet Security  (3 Credits)  

Study security threats and prevention/detection/response techniques on the Internet, including hackers, masqueraders, information spoofing, sniffing, and distribution of damaging software. Security analysis of Web applications.

Prerequisites: CSCE 522 and CSCE 715.
CSCE 814  - Distributed Systems Security  (3 Credits)  

Security mechanisms of distributed software systems, including cryptographic applications. Secure multiparty computation, group-based cryptography, and security mechanisms for emerging distributed architectures.

Prerequisites: CSCE 522.
CSCE 815  - Computer Communications  (3 Credits)  

Contemporary computer communication protocols and network architectures.

Prerequisites: CSCE 515 or CSCE 516.
CSCE 818  - Top-Down VLSI Design  (3 Credits)  

VLSI system design automation, hardware description language-based design, multi-methodology design, and introduction to HDL support tools.

Prerequisites: CSCE 611 or CSCE 612.
CSCE 819  - Custom VLSI Design  (3 Credits)  

Custom design methodology design rules, stick notation, logic synthesis, and circuit layout; symbolic layout languages; introduction to CAD tools.

Prerequisites: CSCE 611 or CSCE 612.
CSCE 821  - Distributed Database Design  (3 Credits)  

Architecture, design, and implementation of distributed database managements systems; data fragmentation, replication, and allocation; query processing and transaction management; distributed object database management systems.

Prerequisites: CSCE 520.
CSCE 822  - Data Mining and Warehousing  (3 Credits)  

Information processing techniques and mathematical tools to assemble, access, and analyze data for decision support and knowledge discovery.

Prerequisites: CSCE 520.
CSCE 824  - Secure Database Systems  (3 Credits)  

Security threats to database systems. Access control models, multilevel security, integrity, Web-based databases, and data inference problem. Formal models of multilevel security, confidentiality versus availability and integrity.

Prerequisites: CSCE 522.
CSCE 826  - Cooperative Information Systems  (3 Credits)  

Strategies for achieving coordinated behavior among a heterogeneous group of information system components; world-wide information networks and applications in health care, logistics, telecommunications, and manufacturing automation.

Prerequisites: CSCE 520, CSCE 580.
CSCE 846  - Software Reliability and Safety  (3 Credits)  

Reliability and safety of computer-intensive systems; software reliability models and analysis; operational profiles; hazard analysis using fault trees and event trees; formal verification of safety-critical systems.

Prerequisites: STAT 509 or STAT 510 or STAT 511.
CSCE 850  - Advanced Analysis of Algorithms  (3 Credits)  

Definitions of algorithms and formal models of computation; concepts of space and time; synthesis and analysis of algorithms for sorting, search graphs, set manipulation and pattern matching; NP-complete, and intractable problem.

Prerequisites: CSCE 750.
CSCE 853  - Formal Methods in Computer Security  (3 Credits)  

Formal techniques applied to computer security, including formal specification language for security properties, security analysis utilities, domain-specific security concerns, and case studies of formally verified secure systems.

Prerequisites: CSCE 522 and CSCE 715.
CSCE 865  - Advanced Computer Graphics  (3 Credits)  

Input and display devices, data structures, architectures, primitives, and geometrical transformations appropriate to computer graphics, parametric surfaces.

Prerequisites: CSCE 765.
CSCE 867  - Computer Vision  (3 Credits)  

Scene segmentation using texture, color, motion; representation of 2-D or 3-D structures; knowledge-based vision systems.

Prerequisites: CSCE 763.
CSCE 868  - Advanced Pattern Recognition  (3 Credits)  

Feature nomination, selection, extraction, and evaluation; deterministic, stochastic, and fuzzy models for classifier design; parameter estimation; error rate estimation; clustering and sequential learning.

Prerequisites: CSCE 768.
CSCE 883  - Machine Learning  (3 Credits)  

Fundamentals of machine learning including rote learning, learning from examples, learning from observations, and learning by analogy; knowledge acquisition for expert systems.

Prerequisites: CSCE 580.
CSCE 895  - Ph.D. Seminar  (1-3 Credits)  
CSCE 899  - Dissertation Preparation  (1-12 Credits)