Computer Science (CS)

How to Read Course Descriptions

Courses

CS 1181 Computer Science and Programming I: 3 semester hours.

Problem solving methods and algorithm development with an emphasis on programming style. Secure software design/coding concepts for resilient software. Taught in C++. Satisfies Objective 7 of the General Education Requirements. PREREQ: MATH 1143 or MATH 1144 or MATH 1147. F, S

CS 1187 Applied Discrete Structures: 3 semester hours.

Discrete structures in CS and EE. Boolean algebra and logic; sets, functions, and relations; iteration, recursion, and induction; algorithms; programming in pseudocode; basic counting principles; graphs and trees; and other selected topics from discrete mathematics. Equivalent to MATH 1187. PREREQ: CS 1181/INFO 1181. S

CS 1199 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.

CS 1337 Computer Organization and Architecture: 3 semester hours.

Computer organization and architecture. Machine and assembly language programming. Memory hierarchy. PREREQ: CS 1181 and MATH 1144 or MATH 1147. F,S

CS 2235 Data Structures and Algorithms: 3 semester hours.

Implementation, usage, and design concerns of important data structures and their operations. Implementation and discussion of basic search and sorting algorithms. Discussion will include both O(n log n) and linear sorting algorithms. Incorporates aspects of time complexity and asymptotic analysis of algorithms. Students will be required to develop small to medium sized programs. PREREQ: CS 1181 and MATH 1144 or MATH 1147. F,S

CS 2299 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.

CS 3305 Introduction to Computational Theory: 3 semester hours.

Finite state automata, regular languages, lexical analysis; push-down automata, context-free languages, parsing; Turing machines and unrestricted grammars; computability complexity, NP-completeness. PREREQ: (CS 1187/MATH 1187 or MATH 2287), MATH 1170 and CS 1181. F

CS 3309 Advanced Object-Oriented Programming: 3 semester hours.

Advanced software development with an object-oriented focus. Design, implementation, and testing of large programs. Efficiency PREREQ: CS 1337, CS 2235, and MATH 1144 or MATH 1147. F,S

CS 3310 Databases: 3 semester hours.

Database design, implementation. ER modeling. SQL. Integrity, security, dependencies. Physical design, tuning. Database application development with CS professional coding language. PREREQ: CS 1337, CS 2235, and MATH 1144 or MATH 1147. F

CS 3311 Secure Client Server Web Development: 3 semester hours.

Client and server-wide web development. Secure, web-based database and related applications. PHP, JavaScript, XML, HTML. PREREQ: CS 1337, CS 2235, MATH 1144 or Math1147. Pre-or-Coreq:CS 3310. F

CS 3318 Secure Mobile Application Development: 3 semester hours.

An individual project-intensive course on mobile development using either iOS or Android as a platform. Overview of mobile platforms and their characteristics, mobile interface design and best practices using such technologies as GPS, camera, persistence, notifications and others. PREREQ: CS 1337, CS 2235, MATH 1144 or MATH 1147. PRE-or-COREQ: CS 3310. S

CS 3321 Introduction to Software Engineering: 3 semester hours.

Techniques and tools for conceiving, designing, testing, deploying, maintaining, and documenting large Software Engineering with particular focus on the structured analysis and design phases including task analysis, human factors, costs, and project and team management. PREREQ: CS 1337, CS 3309, CS 3310, and MATH 1144 or MATH 1147. S

CS 3337 Secure Systems and Networks: 3 semester hours.

Communication networks including network applications, transport layer, network layer, local area networks, wireless networks, and network security. Basic techniques for error control, flow control, multiplexing, switching, routing, encryption, and digital signatures. Internet and other communication protocols. Linux including scripting. PREREQ: CS 1337, CS 2235, and MATH 1144 or MATH 1147, F

CS 3393 Computer Science Internship: 1-3 semester hours.

Internship program coordinated by Computer Science faculty providing significant exposure to computer science issues and techniques. May not be used to fulfill computer science major or minor requirements. PREREQ: CS 3309 and permission of instructor. D

CS 3399 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.

CS 4412 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. PREREQ: CS 1337, MATH 2240, CS 3309, CS 3305 and MATH 1175. F

CS 4416 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. PREREQ: CS 2235, MATH 1144 or MATH 1147, and CS 1337. F

CS 4417 Cybersecurity Threat Intelligence: 3 semester hours.

Intelligence analysis, production, evaluation, evidence assessment 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, Raspberry Pi ARM architectures. PREREQ: CS 3309, CS 1337, and CS 4416. S

CS 4418 Bioinformatics: 3 semester hours.

Examines computational methods for analyzing biological systems. Dynamic programming, Markov models, Neural Networks and Bayesian analysis are used to predict secondary structure, tertiary structure and active sites for drug docking given molecular DNA sequence analysis. PREREQ: CS 4412. D

CS 4420 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. PREREQ: CS 4412. D

CS 4421 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. Students, working in teams, will develop and evolve a large software product through multiple architectural patterns using current methods and tools found in the software industry. PREREQ: CS 3321. D

CS 4422 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. PREREQ: CS 3321 and MATH 3352 or MATH 4450, or ECE 4411. D

CS 4423 Software Evolution and Program Analysis: 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. The course will culminate in two projects, one being the successful modification and refactoring of a large software system and the second in the development of a basic dynamic analysis tool. PREREQ: CS 3321. D

CS 4424 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. PREREQ: CS 3321. D

CS 4432 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 4433 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 2240, or instructor permission.

CS 4439 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. PREREQ: CS 1337, CS 3337, MATH 1144 or MATH 1147, and CS 3309. D

CS 4441 Human Computer Interaction: 3 semester hours.

Science-based theories and models of user interface design and development. 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 mockups, and a high-fidelity prototype using contemporary tools and programming environments. PREREQ: CS 1337, CS 3337, MATH 1144 or MATH 1147, and CS 3309. D

CS 4442 GUI Development: 3 semester hours.

Planning and construction of Graphical User Interfaces and discussion of essential software engineering concepts. Includes the use of a modern toolkit language. PREREQ: CS 3321. D

CS 4451 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. Uses a different programming language. PREREQ: CS 4412. D

CS 4458 Computer Graphics: 3 semester hours.

Graphics, transformation matrices, lighting models, object hierarchies, visible surface determination, ray tracing. PREREQ: MATH 2240 and CS 4412. D

CS 4461 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. PREREQ: CS 3309, MATH 1144 or MATH 1147, and CS 1337. S

CS 4465 Special Problems in Cybersecurity: 3 semester hours.

Analysis and implementation of computer science cybersecurity problems and topics. May be repeated for up to 9 credits with different content. PREREQ: CS 1337 and CS 4416 PRE-OR-COREQ: CS 4417, CS 3337, and CS 4461. D

CS 4470 Parallel Processing: 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. PREREQ: CS 3337. D

CS 4472 Artificial Intelligence: 3 semester hours.

Introduction to the history, philosophy, and general algorithms for artifical intelligence. PREREQ: CS 4412. D

CS 4473 Computational Creativity: 3 semester hours.

Introduction to the 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 3309 and CS 4412. D

CS 4476 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 1170, MATH 1187 or MATH 2287, CS 1337, CS 2235, CS 3305. S

CS 4478 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. PREREQ: CS 4412 and MATH 2240. D

CS 4479 Natural Language Processing: 3 semester hours.

An introduction to Statistical Natural Language Processing (Stat. 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. PREREQ: CS 4412. D

CS 4481 Compilers: 3 semester hours.

Design and construction of compilers. Theory and pragmatics of lexical, syntactic, and semantic analysis. Interpretation. Code generation for a modern architecture. Run-time environments. Includes a large compiler-implementation project. PREREQ: CS 3305 and CS 4412. D

CS 4488 Capstone Project: 3 semester hours.

Analysis, specification, design, implementation, and testing of a large software project. Formal approach and tools. Software lifecycle. Human computer interaction. Project and team management. Uses a different programming language. PREREQ: CS 3310, CS 3321, and CS 4412 PRE-OR-COREQ: CS 3337. S

CS 4492 Special Problems in Computer Science: 3 semester hours.

Research and reports on problems or topics in computer science. May be repeated for up to 9 credits with different content. PREREQ: Permission of instructor. D

CS 4494 Undergraduate Research: 1-3 semester hours.

Students will engage in a research project under the supervision of a research instructor, learning fundamental skills in conducting and publishing research in computer science. May be repeated for up to 9 credits with different content. PREREQ: Consent of instructor. D

CS 4499 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.