Computer Science (CS)

How to Read Course Descriptions


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. Equivalent to INFO 1181. Satisfies Objective 7 of the General Education Requirements. PRE-or-COREQ: MATH 1143 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 Math1143. 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. F,S

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

Advanced software development with an object-oriented focus. Design, implementation, and testing of several large programs using current technologies. Includes a discussion of the philosophy, application, and examples of object-oriented concepts and techniques; comprehensive survey of software engineering design patterns.PREREQ: CS 2235. 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. F

CS 3316 Social Issues and Professional Practices in Computing: 3 semester hours.

Societal impact of computer technology, the computer scientist's place in society, ethical issues. Reading, discussion, and writing seminar. Essential skills for finding, applying for, and obtaining internships in CS. PREREQ: ENGL 3307 or ENGL 3308. F

CS 3321 Introduction to Software Engineering: 3 semester hours.

Techniques and tools for conceiving, designing, testing, deploying, maintaining, and documenting large software systems with particular focus on the structured analysis and design phases including task analysis, human factors, costs, and project and team management. PREREQ: CS 2263. F

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 2235, CS 1337 and MATH 1143, F,S

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 2263 and CS 3316, 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 2263, CS 3305 and MATH 1175. S

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 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 2263, 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 3350 or MATH 4450. 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 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 2263, 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 3377, and CS 4461. S

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 behaviours that unbiased observers would deem to be creative. PREREQ: CS 2263 and CS 4412. D

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: INFO 4407, CS 3321, and CS 4412 PRE-OR-COREQ: CS 3337. D

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.