Computer Science (CS)

How to Read Course Descriptions

Courses

CS 5101 Computer Science Principles: 3 semester hours.

Introduction to central ideas, practices and impact of computer science, and computational thinking. Covers the big ideas in computer science: creativity, abstraction, data and information, algorithms, programming, the Internet, and global impact. Computational thinking practices: connecting computing, creating computational artifacts, abstracting, analyzing problems and artifacts, communicating, and collaborating. In-depth projects using at least one visual aid and one text-based programming language. Adapting content to high school courses.

CS 5102 Teaching and Learning Computer Science I: 3 semester hours.

Problem solving and object-oriented programming. Software development process. Data and expressions, conditionals and loops, arrays and lists, and classes and interfaces. Introduction to graphical user interfaces and UML diagrams. Approaches and techniques to teach CS I material in 6-12 grades.

CS 5103 Teaching and Learning Computer Science II: 3 semester hours.

Program correctness, testing and analysis of time and space complexity. Graphical user interfaces. Object-oriented programming and design, including hierarchy and inheritance. Basic data structures: lists, collections, stacks and queues. Basic searching and sorting. Approaches and techniques to teach CS II material in 6-12 grades.

CS 5108 Computer Organization, Networks, and Systems: 3 semester hours.

Machine memory system organization architecture, Multiprocessing and alternative architectures. Central processor, busses, I/O. Dynamic static linking. Instruction sets, loaders linkers, address computation. Cache. Virtual memory. Buffer overflow, networks, communication. Shell programming and scripting. Inter-process communication. Exceptions. Peripheral devices. Network concepts. PREREQ: MATH 1143, CS 1181. PRE-OR-COREQ: CS 2235. D

CS 5135 Data Science at Scale: 3 semester hours.

Current practices in big data analytics and modeling utilizing cloud computing platforms. Includes usage of the most popular platforms. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 5132 and CS 5133. D

CS 5512 Advanced Algorithms: 3 semester hours.

Further exploration of advanced topics in algorithms and data structures. Application of time complexity and mathematical analysis of algorithms, including best, worst, and average case analysis. Discussion and application of several algorithm design techniques including Brute force, Greedy, Divide-and-conquer, decrease-and-conquer, Dynamic programming, Transform-and-conquer, Backtracking and branch-and-bound, Probabilistic, and Approximation Algorithms approaches. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 1337, CS 3309, MATH 1187 or MATH 2287, MATH 1175 and MATH 2240. D

CS 5516 Foundations in Cybersecurity and Resilience: 3 semester hours.

Confidentiality, availability, integrity of computer systems; resistance, recognition and response categories of assurance. Cyber physical. Computer security survivability, including cryptography, network security, general purpose operating system security code, and special purpose systems for high assurance security and dependability. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 2235 and ((CS 1337 and CS 3337) or CS 5108). D

CS 5517 Cybersecurity Threat Intelligence: 3 semester hours.

Intelligence analysis, production, evaluation, evidence assessment and executive reporting. Use prevailing US government and open source intelligence paradigms and non-attribution techniques to collect process and evaluate a range of cyber threats, malicious actors, mechanisms, and disruptive activities. Combines analytical techniques for both network and platform vulnerabilities including cyber-physical and information technologies in critical infrastructures and enterprises. Open source platforms, Python script development, Raspberry Pi ARM architectures. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 2235 and ((CS 1337 and CS3337) or CS 5108). PRE-OR-COREQ: CS 4416 or CS 5516. D

CS 5520 Computer Security and Cryptography: 3 semester hours.

Public key and private key cryptography, key distribution, cryptographic protocols, requisite mathematics and selected topics in the development of security and cryptography. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 4412 or CS 5512. D

CS 5521 Software Architecture: 3 semester hours.

An introduction to the design and implementation of large software systems. Includes the application of software architecture patterns, architectural tactics, analysis of software architectures, selection of architectural patterns to meet functional and non-functional requirements, and the use of architecture to meet quality standards. The course will also include methods of documenting and recovering existing architectures. MSCS Graduates students who have completed CS 5512 and CS 5561. D

CS 5522 Software Testing: 3 semester hours.

An introduction to the theory and techniques used in software testing and formal design method. Includes topics related to code coverage, program analysis, test design, and advanced concepts such as mutation testing, metamorphic testing, and test automation. The second half of the course focuses on formal modelling techniques for the specification, verification and validation of software designs. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 3321. D

CS 5523 Software Evolution: 3 semester hours.

An exploration of the theory and issues surrounding the maintenance and improvement of existing software systems. Topics will include the identification and triage of software bugs, patching and deploying fixes to existing software systems, refactoring software in large code bases, and the processes for managing change and maintenance of software systems. The second half of this course will focus on the identification of issues in software using program analysis. Specifically, focusing on current techniques used in static and dynamic analysis of software to identify maintainability, security, and performance issues. Specific, evaluated graduate-level activities and/or performance are identified in the course syllabus. Restricted to graduate students who have the consent of the instructor.

CS 5524 Secure Software Engineering: 3 semester hours.

Introduction to the Secure Software Development Lifecycle and the tools and techniques used in practice to design and develop software from a security standpoint. This course will also discuss methods of analyzing software for security vulnerabilities, detecting threats through current testing techniques, and the management and mitigation of risk in the software development process. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. Restricted to graduate students who have the consent of the instructor.

CS 5531 Scientific Computing: 3 semester hours.

The course reviews and engages students in current usage of advanced programming language(s) and libraries used in science and engineering modeling and simulation. Restricted to graduate students who have the consent of the instructor.

CS 5532 Data Science and Applied Machine Learning: 3 semester hours.

This course covers intermediate subjects in data science and machine learning using the python data science stack, including pandas, numpy, and scikit-learn. Both supervised and unsupervised non-neural-network algorithms will be covered. Data wrangling, exploratory data analysis, preprocessing techniques, feature engineering, dimensionality reduction, ensemble methods, and evaluation of models will also be covered. CS 1181, MATH 1170 and MATH 2240 D

CS 5533 Applied Neural Networks: 3 semester hours.

This course teaches building and testing neural networks with TensorFlow and Keras, including artificial neural networks (ANNs), deep learning, convolutional neural networks (CNNs), recurrent neural networks (RNNs), image analysis, time series modeling, and introductory natural language processing. TensorFlow data pipelines, transfer learning, and data augmentation will be taught and utilized. Prerequisites: CS 1181, MATH 1170 and MATH 2240

CS 5535 Cloud Computing: 3 semester hours.

The course reviews and engages students in current practices in cloud computing, including usage of the most popular platforms. Restricted to graduate students who have the consent of the instructor.

CS 5539 Introduction to Computer Game Development: 3 semester hours.

An introduction to data structures, algorithms, and programming techniques useful in the development of computer games. Topics include 2D graphics, sound programming, user interfaces, game genres, computerization of classic board games and simulation games. assessment. CS 1337, (MATH 1144 or Math1147) and CS 3309. D

CS 5542 GUI Development: 3 semester hours.

Planning and construction of Graphical User Interfaces and essential software engineering concepts. Includes the use of a modern toolkit language. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 3321

CS 5551 Database Theory Design and Programming: 3 semester hours.

Data models, relational algebra and calculus, SQL and stored procedures, database design, ER diagrams, normalization theory, data storage, index structures, performance analysis, concurrency control. Database programming language access. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 4412 or 5512. D

CS 5558 Computer Graphics: 3 semester hours.

Graphics, transformation matrices, lighting models, object hierarchies, visible surface determination, ray tracing. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: MATH 2240 and (CS 4412 or 5512). D

CS 5561 Secure Operating Systems: 3 semester hours.

Operating systems structure and design. Process management, concurrency and synchronization, inter-process communication, scheduling, device management, memory management, I/O and files, distributed systems, security, networking. Kali. Implementation of a significant portion of an operating system. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: (CS 3309 or CS 4412 or CS 5512) and (CS 1337 or CS 5108). D

CS 5565 Special Problems in Cyber Physical Security: 3 semester hours.

Analysis and implementation of computer science cybersecurity problems and topics. May be repeated for up to 9 credits with different content. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 2235 and ((CS 1337 and

CS 5570 High-Performance Computing: 3 semester hours.

Topics in high performance computing: parallel architectures, SIMD, MIMD, SMP, NUMA models, message passing, cache coherency issues, MPI, PVM, parallel programming languages, cluster and grid approaches, applications and experience programming on a cluster. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 3337 or CS 4461 or 5561. D

CS 5573 Computational Creativity: 3 semester hours.

Introduction to the art, science, philosophy and engineering of computational systems which, by taking on particular responsibilities, exhibit behaviors that unbiased observers would deem to be creative. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 4412 or 5512. D

CS 5576 Introduction to Compilers: 3 semester hours.

Design and construction of compilers. Theory and pragmatics of lexical, syntactic, and semantic analysis. Application of code generation techniques to the comprehension of decompiled binaries. Compiler-implementation project. PREREQ: MATH 1175, MATH 2240, (MATH 1187 or MATH 2287), (CS

CS 5578 Machine Learning: 3 semester hours.

Introduction to the philosophy, utility, and models of machine learning, such that students are able to understand the basic concepts and issues of machine learning. Students will be prepared to use machine learning approaches in real world applications and/or to continue in a graduate research program. Topics covered include neural networks, decision trees, nearest neighbor learning, data mining, feature selection, clustering, ensembles, reinforcement learning, genetic algorithms, and deep learning. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: (CS 4412 or CS 5512) and MATH 2240. D

CS 5579 Natural Language Processing: 3 semester hours.

The course reviews and engages students in Natural Language Processing (NLP) for solving problems involving natural (human) language. NLP and language technologies have become an important part of the programmer's toolbox when working with text, speech, and other language data. Restricted to graduate students who have the consent of the instructor. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. Graduates students who have completed CS 5512 and CS 5561. D

CS 5581 Compilers and Lexical Analysis: 3 semester hours.

Covers lexical analysis, syntax analysis, top-down, bottom-up, and LR parsing, syntax directed translation, type checking, code generation and optimization, and writing a compiler. Specific, evaluated graduate-level activities and/or performances are identified in the course syllabus. PREREQ: CS 4412 or 5512. D

CS 5587 Topics in Computer Science: 3 semester hours.

Selected topics in Computer Science will be chosen depending on the instructor's interests. Restricted to senior and graduate students who have the consent of the instructor.

CS 5599 Experimental Course: 1-6 semester hours.

The content of this course is not described in the catalog. Title and number of credits are announced in the Class Schedule. Experimental courses may be offered no more than three times with the same title and content. May be repeated. With permission of instructor.

CS 6605 Computational Theory: 3 semester hours.

Proofs (deductive and inductive reasoning), computability (models of computability and computability issues), and complexity (time and space bounds, nondeterminism, and complexity classification). PREREQ: CS 4412 or 5512. D

CS 6612 Algorithms: 3 semester hours.

Concrete time and space complexity; combinatorial algorithms; greedy algorithms; dynamic programming; probabilistic and randomized algorithms; branch-and-bound algorithms. PREREQ: CS 4412 or 5512. D

CS 6618 Advanced Bioinformatics: 3 semester hours.

The course reviews and engages students in fundamental research on computational methods for analyzing biological systems. Restricted to graduate students who have the consent of the instructor.

CS 6620 Empirical Software Engineering: 3 semester hours.

Empirical software engineering focuses on improving software quality through the use of metrics. The course will provide guidance on designing, analyzing and reporting empirical studies, provide information on techniques and metrics needed to measure desired qualities, and the use of practical approaches to study software evolution. Restricted to graduate students who have the consent of the instructor.

CS 6622 Software Testing and Quality Assurance: 3 semester hours.

An exploration of current research associated with the theory and techniques used in software testing. Includes topics related to code coverage, program analysis, test design, and advanced concepts such as mutation testing, metamorphic testing, and test automation. PREREQ: CS 4422 or CS 5522.

CS 6625 Software Language Engineering: 3 semester hours.

An exploration of the current trends and research associated with various aspects of software language engineering. This includes the design and representation of grammars, parsers, interpreters, and compilers and the engineering processes in use to develop such tools. PREREQ: (CS 4412 or 5512) and (CS 4476 or 5576) D

CS 6631 Advanced Scientific Computing: 3 semester hours.

The course reviews and engages students in advanced topics concerning current software practices in science and engineering modeling and simulation. PREREQ: CS 5531. D

CS 6634 Advanced Methods In Artificial Intelligence: 3 semester hours.

This course covers advanced methods in artificial intelligence, including transformers and advanced natural language processing, autoencoders and generative adversarial networks (GANs), reinforcement learning and intelligent agents. TensorFlow and other frameworks will be utilized. Prerequisite: CS 5533

CS 6650 Thesis: 1-9 semester hours.

Thesis class for MSCS students. May be repeated for up to 9 credits. MSCS Graduates students who have completed CS 5512 and CS 5561. D

CS 6660 Computer Science Project: 1-6 semester hours.

Project class for MSCS students. A significant project involving computer science toward the completion of the M.S. program with non-thesis option. Includes a report and oral examination. May be repeated for up to 9 credits. MSCS Graduates students who have completed CS 5512 and

CS 6672 Research Methods in Human Computer Interaction: 3 semester hours.

Science-based theories and models of user interface design and development. Graphical user interfaces for desktop, web, and mobile devices. Usability assessment by quantitative and qualitative methods. Task analysis, usability tests, expert reviews, and continuing assessments of working products by interviews, surveys, and logging. Building of low-fidelity paper mock-ups, and a high-fidelity prototype using contemporary tools and programming environments.

CS 6673 Advanced Computational Creativity: 3 semester hours.

The course reviews and engages students in fundamental research on the art, science, philosophy and engineering of computational systems which, by taking on particular responsibilities, exhibit behaviors that unbiased observers would deem to be creative. PREREQ: CS 4473 or CS 5573. D

CS 6678 Advanced Machine Learning: 3 semester hours.

The course reviews and engages students in research on advanced concepts and models in machine learning and neural networks. PREREQ: CS 4478 or CS 5578. D

CS 6680 Quantum Computing: 3 semester hours.

The mathematics behind quantum computational devices and algorithms. Topics include qubits, entanglement, phase kickback, quantum gates and circuits, and quantum algorithms, including Shor's and Grover's algorithms. Programming of quantum devices. Prerequisites: CS 1337, MATH 1175, MATH 2240, CS 3309, CS 4412 or CS 5512, or instructor permission.

CS 6692 Special Problems in Computer Science: 1-3 semester hours.

Research and reports on problems or topics in computer science. May be repeated for up to 9 credits with different content.

CS 6699 Experimental Course: 1-6 semester hours.

This is an experimental course. The course title and number of credits are announced in the class schedule by the scheduling department. Experimental courses may be offered no more than three times with the same title and content. With permission of instructor.

CS 8850 Doctoral Dissertation: 1-24 semester hours.

Research toward completion of the dissertation for the Ph.D. in Engineering and Applied Science. Variable credits. May be repeated. Graded S/U.