Computer Science (CS)

CS 101  Introduction to Computer Science  
Credits 3   Grading Basis Graded  
How to think like a computer scientist. Topics include an overview of the context of computing, computational operations, computational devices, algorithms and data structures, the storage and transmission of data, the presentation of information, and the limits of computing. Students learn about the design and implementation of computational systems, the value of abstraction, problem solving and the ways in which computation impacts society.
CS 149  Introduction to Programming  
Credits 3   Grading Basis Graded  
Fundamental problem-solving techniques using a modern programming language. Topics include variables, input/output, decisions, loops, functions, arrays, and objects. Students learn about algorithm development, testing strategies, and software tools. You may only enroll in CS 149 at most twice.
Prerequisites: MATH 155, MATH 156 or sufficient score on the Mathematics Placement Exam. You may only attempt CS 149 two times.
CS 159  Advanced Programming  
Credits 3   Grading Basis Graded  
Students use advanced problem-solving strategies to develop algorithms using classes and objects and techniques such as recursion, exceptions and file I/O. This course also focuses on designing small applications and effective testing strategies. You may only enroll in CS 159 at most twice.
Prerequisites: A minimum grade of "B-" in CS 149 or equivalent. You may only attempt CS 159 two times.
CS 227  Discrete Structures I  
Cross-listed with: MATH 227  
Credits 3   Grading Basis Graded  
An introduction to discrete mathematical structures including functions, relations, sets, logic, matrices, elementary number theory, proof techniques, basics of counting, graphic theory, discrete probability, digital logic, finite state machines, integer and floating point representations.
Prerequisites: A minimum grade of "B-" in CS 149.
CS 240  Algorithms and Data Structures  
Credits 3   Grading Basis Graded  
Students learn how to implement stacks, queues, lists, sets and maps using arrays, linked lists, binary trees, heaps, binary search trees, balanced trees and hashing. Students study graph representations and algorithms. Students analyze recursive and non-recursive algorithms, illustrated by various searching and sorting algorithms. Additional topics may be included as time permits. You may only enroll in CS 240 at most twice.
Prerequisites: Fully admitted Computer Science majors or minors only and grades of "C-" or better in CS 159, CS 227/MATH 227 or MATH 245, and MATH 231 or equivalent. You may only attempt CS 240 two times.
CS 261  Computer Systems I  
Credits 3   Grading Basis Graded  
This course provides an introduction to the operation of modern interrupt-driven computer systems. Explores the representation of software and information in binary memory, the primary components of a CPU, systems programming and basic interactions with an Operating System. You may only enroll in CS 261 at most twice.
Prerequisites: Fully admitted Computer Science majors or minors only and minimum grade of "C-" in either CS 227/MATH 227 or MATH 245, and in CS 159. You may only take CS 261 two times.
CS 280  Projects in Computer Science  
Credits 1-3   Grading Basis Graded  
Projects or topics in computer science which are of interest to the lower division student. May be repeated for credit when course content changes. Topics may vary.
Prerequisites: Fully admitted Computer Science majors or minors only and students should consult the instructor prior to enrolling for the course.
CS 327  Discrete Structures II  
Credits 3   Grading Basis Graded  
This course builds on the theoretical foundation developed in Discrete Structures I. Students study a range of topics from discrete mathematics and theoretical computer science including elementary number theory, matrices, graph theory, automata, computability and complexity theory.
Prerequisites: Fully admitted Computer Science majors only and a minimum grade of "C-" in CS 227/MATH 227 or MATH 245, and CS 240.
CS 330  Societal and Ethical Issues in Computing  
Credits 3   Grading Basis Graded  
Overview of philosophical and professional ethics, and a survey of societal and ethical issues in computing such as privacy, intellectual property, computer security, computer crime, product liability, and the societal, environmental, and economic impact of computers. Students develop skills in assuming and defending positions on societal and ethical issues through oral presentations and written reports.
Prerequisites: Fully admitted Computer Science majors or minors only.
CS 332  Technical Communication for Computer Science  
Credits 3   Grading Basis Graded  
A study of the process of planning, researching, producing and revising technical documents for specific audiences in the computing industry. Document forms studied include definitions, requirements specifications, design specifications, instructions, correspondence, descriptions, plans and reports. Specialized notations and languages are also considered.
Prerequisites: Fully admitted Computer Science majors or minors only.
CS 343  Application Development  
Credits 3   Grading Basis Graded  
Overview of application software development fundamentals and their use in building stand-alone applications, visualizing and interacting with complex data representations, and controlling the Internet of Things. This course provides an introduction to the technologies used to create modern user interfaces (e.g., web technologies), establishing a common foundation for later application-focused courses.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 159.
CS 345  Software Engineering  
Credits 3   Grading Basis Graded  
Study of modern methods and tools for the development of software products. Topics include software development process models, software development tools, design and construction principles and practice, software quality assurance and program management.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 159.
CS 347  Web Development  
Credits 3   Grading Basis Graded  
This course covers design and development of World Wide Web applications. Students examine protocols, architectures, development languages and facilities, and issues such as accessibility, usability, security and reliability. Students work with a suite of development tools and languages to construct a client or server application that includes a GUI and a database.
Prerequisites: Fully admitted Computer Science majors or minors and a minimum grade of "C-" in CS 343.
CS 349  Developing Interactive Multimedia  
Credits 3   Grading Basis Graded  
Students learn the concepts of multimedia, the issues in designing multimedia to interact effectively with users, the performance and speed issues in designing multimedia and how to implement interactive multimedia applications.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240.
CS 354  Introduction to Autonomous Robotics  
Credits 3   Grading Basis Graded  
A hands-on introduction to programming autonomous mobile robots. The focus of this course is on designing robotic systems that navigate independently in complex environments. Specific topics include localization, mapping, kinematics, path planning and computer vision.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and either MATH 220 or MATH 229 or MATH 318.
CS 361  Computer Systems II  
Credits 3   Grading Basis Graded  
Intermediate exploration of modern interrupt-driven computer systems. Explores models of computation and complex systems, techniques for communication and synchronization of parallel and concurrent software, and the protocols that make up the Internet.
Prerequisites: Fully admitted Computer Science majors only and a minimum grade of "C-" in CS 240 and CS 261.
CS 374  Database Systems  
Credits 3   Grading Basis Graded  
An introduction to database design and management with emphasis on data definition, data manipulation and query languages found in modern database management systems.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in either CS 240 or CS 343 or equivalent.
CS 412  Applied Algorithms  
Credits 3   Grading Basis Graded  
A practical study of algorithms and their use in problem solving. Algorithms are selected from categories including divide-and-conquer, greedy, backtracking, network flow and dynamic programming. The classes P and NP are introduced and intractable problems discussed. This is a programming intensive course.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 327 and either MATH 220 or MATH 229 or MATH 318. Students may not receive credit for both CS 412 and CS 452.
CS 415  Data Visualization Fundamentals and Techniques  
Cross-listed with: IT 415  
Credits 3   Grading Basis Graded  
This course provides an introductory examination of data visualization through lectures, applied learning activities, readings and hands-on experience with current visualization tools. It also introduces a theoretical framework that covers different types of data, including temporal, geospatial, topical and network data, and their analysis and visualization. Students will improve their data and information literacy, strengthen data visualization skills and build analytic abilities relevant to visualization problems. They will also gain an overview of various data types and examine visualizations and workflows that aim to answer "when" (temporal data), "where" (geospatial data), "what" (topical data) and "with whom" (trees and networks) questions. The course is intended for students with little or no prior background in data visualization and is targeted to those interested in using visualization in their own work and future academic studies.
Prerequisites: CS 240 with a minimum grade of "C-" or IT 340
CS 430  Programming Languages  
Credits 3   Grading Basis Graded  
Several actual programming languages are studied in terms of the fundamental principles of computer programming language design, including object-oriented programming, functional programming, concurrent programming and logic programming.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and CS 261.
CS 432  Compilers  
Credits 3   Grading Basis Graded  
Introduction to the theory and implementation of compilers. Explores the lexical, syntactic, and semantic analysis of high-level language code as well as code generation, optimization techniques, and architectural or operating system considerations. Course work includes a significant programming component.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 327 and CS 361.
CS 442  Logic in Computer Science  
Credits 3   Grading Basis Graded  
An exploration of some of the many connections between logic and computing, such as the application of classical and temporal logic in program verification, logic and logic programming, decidability, computability, automatic theorem proving, the computational complexity of logic algorithms, and applications of logic in artificial intelligence. A course in discrete mathematics or logic is recommended as preparation for this course.
Prerequisites: Fully admitted Computer Science majors and minors only and junior or senior standing.
CS 444  Artificial Intelligence  
Credits 3   Grading Basis Graded  
Students will study the history, premises, goals, social impact and philosophical implications of artificial intelligence. Students will study heuristic algorithms for large state spaces and learn to develop recursive and non-deterministic algorithms.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and either MATH 220, MATH 229 or MATH 318.
CS 445  Machine Learning  
Credits 3   Grading Basis Graded  
An introduction to the field of machine learning. Explores key problems and algorithms in machine learning from both a theoretical and an applied perspective. Specific topics include supervised and unsupervised learning, anomaly detection, text mining and experimental design. Students who have completed BSAN 393, ISAT 341 and MATH 358 may also take this course.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 327 and either MATH 220, MATH 229 or MATH 318.
CS 446  Software Analysis and Design  
Credits 3   Grading Basis Graded  
Contemporary software analysis and design methods, tools, notations, techniques, processes, principles and practices. Students solve analysis and design problems alone or in teams and present their work to their peers and the instructor.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and CS 345.
CS 447  Interaction Design  
Credits 3   Grading Basis Graded  
Study of and practice with processes, principles, tools, models and techniques for designing interactions between humans and digital products and systems. Topics include physiological and psychological factors affecting interaction design, interaction design processes, interaction models, styles and paradigms, design notations and representations, prototyping, and interaction design evaluation.
Prerequisites: Fully admitted Computer Science majors or minors and a minimum grade of "C-" in CS 343.
CS 448  Numerical Analysis  
Cross-listed with: MATH 448  
Credits 3   Grading Basis Graded  
This course is the study and analysis of algorithms used to solve nonlinear equations and systems of linear and nonlinear equations. Students will learn iterative methods for matrices and Newton-type methods as well as numerical differential and integral calculus. Students will perform programming using a high-level language and/or software packages.
Prerequisites: Fully admitted Computer Science majors or minors only; and MATH 248 or consent of instructor.
CS 449  Numerical Analysis for Differential Equations  
Cross-listed with: MATH 449  
Credits 3   Grading Basis Graded  
Study and analysis of numerical techniques to solve ordinary and partial differential equations, including Euler, Runge-Kutta, Picard, finite-difference and finite-element methods. Programming using a high-level language and/or software packages.
Prerequisites: Fully admitted Computer Science majors or minors only and MATH 237, MATH 238 or MATH 336, and MATH 248.
CS 450  Operating Systems  
Credits 3   Grading Basis Graded  
Introduction to the design and implementation of modern operating systems. Explores fundamental concepts of operating systems, memory management, virtualization, resource allocation, file systems and system protection mechanisms. Course work includes a significant programming component.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 361.
CS 452  Design and Analysis of Algorithms  
Cross-listed with: MATH 452  
Credits 3   Grading Basis Graded  
An introduction to algorithm design techniques and the mathematical analysis of algorithms. Techniques covered include divide-and-conquer, greedy, backtracking, network flow and dynamic programming. The classes P and NP are introduced and intractable problems are discussed. This is a proof-intensive course. Students may not receive credit for both CS 412 and CS 452.
Prerequisites: A grade of "C-" or better in CS 327 and either MATH 220 or MATH 229 or MATH 318. Students may not receive credit for both CS 412 and CS 452.
CS 455  Advanced Computer Networking  
Credits 3   Grading Basis Graded  
An in-depth analysis of networking protocols and tools to capture, analyze and synthesize network traffic. Includes significant programming projects that simulate the operation of network protocols. Introduces the design principles and implementation of client-server network applications.
Prerequisites: Fully admitted computer science majors or minors only and a minimum grade of "C-" in CS 361.
CS 456  Computer Architecture  
Credits 3   Grading Basis Graded  
Introduction to the design and implementation of modern CPU architectures. Explores hardware-based parallel execution, quantitative performance evaluation, I/O interfacing techniques and hardware descriptor languages. Course work includes a significant programming component.
Prerequisites: Fully admitted computer science majors or minors only and a minimum grade of "C-" in CS 361.
CS 457  Information Security  
Credits 3   Grading Basis Graded  
This course covers the basic issues of information system security. The roles of planning, management, policies, procedures and personnel in protecting the confidentiality, integrity and availability of information are described. Specific threats (malicious code, network attacks and hostile content) and widely used countermeasures (access control, mechanisms, firewalls and intrusion detection systems) are also discussed.
Prerequisites: Fully admitted Computer Science majors or minors only. CS 361 and a minimum grade of "C-" in either MATH 220 or MATH 229 or MATH 318. Corequisites: CS 361.
CS 458  Cyber Defense  
Credits 3   Grading Basis Graded  
A hands-on, lab-based learning experience in which the students engage in a series of mini projects to perform security assessment, penetration testing and hardening of networked systems. Students also participate in a cyber defense exercise.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grades of "C-" in CS 457 and CS 361.
CS 462  Network Applications Development  
Credits 3   Grading Basis Graded  
Design and implementation of network-based applications using languages and architectures such as sockets, JAVA, TL1 and CORBA. Concepts in distributed processing, including synchronization of interprocess communication and management of replicated data. Analysis of performance issues related to distributed applications.
Prerequisites: Fully admitted Computer Science majors or minors only and CIS 361.
CS 470  Parallel and Distributed Systems  
Credits 3   Grading Basis Graded  
Introduction to parallel and distributed systems. Explores shared memory, cluster, grid, peer-to-peer, and cloud computing models along with parallel software patterns, distributed file systems and performance considerations. Course work includes a significant programming component.
Prerequisites: Fully admitted computer science majors or minors only and a minimum grade of "C-" in CS 361.
CS 480  Selected Topics in Computer Science  
Credits 1-3   Grading Basis Graded  
Topics in computer science which are of interest but not otherwise covered in the regular computer science offerings of the department. Offered only with the approval of the department head; may be repeated for credit when course content changes. Topics selected may dictate further prerequisites; students should consult the instructor prior to enrolling for course.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 159. Topics selected may dictate further prerequisites; students should consult the instructor prior to enrolling for course.
CS 482  Selected Topics in Information Security  
Credits 1-3   Grading Basis Graded  
Topics in information security. Offered only with the approval of the department head; may be repeated for credit when course content changes. Topics selected may dictate further prerequisites; students should consult the instructor prior to enrolling for course.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and CS 261.
CS 488  Computer Graphics Applications  
Credits 3   Grading Basis Graded  
This course develops a computer graphics application package based on standard graphics functions as well as attributes of a graphical user interface. It includes experience in applying interactive computer graphics techniques to industrial problems.
Prerequisites: Fully admitted Computer Science majors or minors only and a minimum grade of "C-" in CS 240 and CS 261.
CS 497  Independent Study  
Credits 1-3   Grading Basis Graded  
An advanced course to give independent study experience under faculty supervision. May be taken multiple times for credit, but no more than three credits may be used in the computer science program graduation requirements.
Prerequisites: Fully admitted Computer Science majors or minors only and junior standing, and permission of the program coordinator.
CS 499A  Honors  
Credits 1   Grading Basis Graded  
CS 499B  Senior Honors Thesis  
Credits 3   Grading Basis Graded  
CS 499C  Senior Honors Thesis  
Credits 2   Grading Basis Graded  
CS 501  Workshop in Computer Science  
Credits 1-3   Grading Basis Graded  
Designed to provide workshop experience in a variety of computing areas. Does not satisfy graduation requirements for the Master of Science degree in computer science.
CS 503  Information Systems Security Management  
Credits 1   Grading Basis Graded  
An advanced study of the basic material needed to manage an information system. Topics covered include granting final approval to operate, accreditation of the system, and verifying compliance with stated policies and procedures. This course does not satisfy any requirements for the Master of Science degree in computer science.
Prerequisites: CS 560 or CS 610.
CS 504  Information System Security Administration  
Credits 1   Grading Basis Graded  
An advanced course to prepare a student to ensure information systems and networks are used securely; to identify and report security incidents; to maintain configuration control of systems and software; and to identify anomalies or integrity loopholes. This course does not satisfy any requirements for the Master of Science degree in computer science.
Prerequisites: CS 560 or CS 610.
CS 506  Assessment of Secure Information Systems  
Credits 1   Grading Basis Graded  
This course considers the assessment of the technical and non-technical security features of an information system in an operational configuration. Upon completion of the course, students should be able to identify the assurance levels achieved in meeting all applicable security policies, standards and requirements. This course does not satisfy any requirements for the Master of Science degree in computer science.
Prerequisites: CS 560 or CS 610.
CS 510  Object Oriented Programming  
Credits 3   Grading Basis Graded  
This course covers fundamental programming techniques including basic data types, control structures, algorithm development, procedures, arrays and abstract data types.
CS 511  Computer Organization  
Credits 3   Grading Basis Graded  
This course is the study of the organization of computer systems, including a brief study of number systems and digital circuits. It also covers basic components of computer systems such as main memory, CPU, I/O and their interconnection mechanisms.
CS 512  Data Structures  
Credits 3   Grading Basis Graded  
This course covers commonly used data structures including stacks, queues and lists using both static and dynamic memory allocations and including elementary performance analysis of these data structures.
Prerequisites: CS 510 or equivalent.
CS 515  Discrete Mathematics  
Credits 3   Grading Basis Graded  
This course provides a survey of fundamental computer science concepts such as set theory, elementary number theory, functions, relations, sequences and recurrence relations, induction, counting techniques and introductory probability, propositional and predicate logic, and proof methods.
CS 523  Ethics, Law and Policy in Cyberspace  
Credits 3   Grading Basis Graded  
Study of ethical issues, legal resources and recourses, and policy implications inherent in our evolving online society. Provides an overview of the ethical challenges faced by individuals and organizations in the information age. Introduces the complex and dynamic state of the law as it applies to behavior in cyberspace.
Prerequisites: CS 550.
CS 530  Programming Languages  
Credits 3   Grading Basis Graded  
Study of the fundamental principles of programming language design and their realization in actual programming languages. Examines programming languages from the procedural, object-oriented, functional and declarative paradigms. Introduces basic concepts of grammars and parsing.
Prerequisites: CS 511 and CS 512.
CS 531  Secure Programming  
Credits 3   Grading Basis Graded  
This course is a survey of concepts related to secure and rugged programming. It continues both the theoretical foundations of secure and rugged programming and various issues that arise in practice. Some language-specific and platform-specific issues are addressed.
Prerequisites: CS 512.
CS 550  Operating Systems  
Credits 3   Grading Basis Graded  
This course covers concepts and principles of multiple-user operating systems including memory, CPU, I/O device allocation, scheduling and security. Concepts studied will include memory hierarchies, performance evaluation, analytic models, simulation, concurrent programming and parallel processors. Completion of a student project is a significant part of the course.
Prerequisites: CS 511, CS 512, and CS 515 or equivalents.
CS 552  Applied Complexity Theory  
Credits 3   Grading Basis Graded  
Algorithms (sorting and searching, graph theory, arithmetic) with space and time complexity and analyses; formal models of computation; theoretical aspects of computational complexity, including complexity measures and hierarchies, intractable problems, and the P=NP question. Other topics in theoretical computer science with applications.
Prerequisites: Unconditional admission as a computer science graduate student.
CS 555  Secure Software Engineering  
Credits 3   Grading Basis Graded  
An overview of methodologies, tools and techniques for producing secure software systems. Students will cooperatively develop a secure software product. The course will also provide an introduction to professional resources and ethical issues for software developers.
Prerequisites: CS 512.
CS 557  Information Security  
Credits 3   Grading Basis Graded  
Fundamental concepts of information security including identification and authentication, access control, security models, security kernels, and Windows and Unix security. Discussions will cover the historical development of information security, cryptology, PKI key management, application-level security issues and security evaluation. Prerequisite: CS 550.
Prerequisites: CS 550.
CS 559  Computer Security  
Credits 3   Grading Basis Graded  
Computer security is one of the three traditional branches of information security. It studies the security of digital data within a computer system, either stand-alone or networked, and the control of the computer system. This course covers basic computer security building blocks include entity authentication, access control (including discretionary access control and mandatory access control [MAC]), MAC-based security models, formal methods, security development and evaluation, security auditing, and database access control.
Prerequisites: CS 511, CS 512, and CS 515 or equivalents.
CS 560  Networks and Network Security  
Credits 3   Grading Basis Graded  
Fundamental concepts, principles, and practical networking and internetworking issues relevant to the design, analysis and implementation of enterprise-level trusted networked information systems. Topics include networking and security architectures, techniques and protocols at the various layers of the Internet model. Prerequisite: CS 550.
Prerequisites: CS 550.
CS 574  Database Systems  
Credits 3   Grading Basis Graded  
Types of physical storage and access methods; data models; relational algebra and calculus, data definition and query languages; dependencies, decomposition and normalization; database design; recovery; consistency and concurrency; distributed databases. Examples from commercial databases.
Prerequisites: CS 511.
CS 585  Selected Topics I  
Credits 3   Grading Basis Graded  
Study of selected topics not otherwise covered in the regular offerings of the department. May be repeated for credit when course content changes.
CS 588  Introduction to Computer Graphics  
Credits 3   Grading Basis Graded  
Problems, objectives and study of computer graphics to include hardware, software and applications. Graphics, data structures and languages. Vectors, curves and character generation. Interactive display devices. Construction of hierarchical image lists. Surface representations. Discussion of problems of current interest.
Prerequisites: CS 510 and knowledge of calculus.
CS 610  Networking and Security  
Credits 3   Grading Basis Graded  
Fundamental concepts, principles, and practical networking and internetworking issues relevant to the design, analysis and implementation of enterprise-level trusted networked information systems. Topics include networking and security architectures, techniques and protocols at the various layers of the Internet model.
Prerequisites: CS 550.
CS 621  Software Assurance  
Credits 3   Grading Basis Graded  
This course investigates the engineering of robust security solutions. We study security problem definition and modeling, policy-to-code modeling, security factoring of software source code, model-based vulnerability analysis, and how security solutions are related to security problems through an assurance argument.
Prerequisites: CS 555 and CS 652.
CS 625  Secure Operations  
Credits 3   Grading Basis Graded  
This course covers the principles of secure composition of heterogeneous security components such as servers, firewalls, workstations and intrusion detection systems. It also covers principles and practice related to secure operation of existing distributed systems. Principles of penetration testing for assessment of system security are also addressed.
Prerequisites: CS 627 and CS 660.
CS 627  Cryptography: Algorithms and Applications  
Credits 3   Grading Basis Graded  
Cryptographic techniques to achieve confidentiality, integrity, authentication and non-repudiation are examined. The underlying mathematical concepts are introduced. Topics to be covered include symmetric and public key encryption, hashing, digital signatures, cryptographic protocols and other recent developments in the field.
Prerequisites: Unconditional admission as a computer science graduate student.
CS 630  Compiler Theory and Implementation  
Credits 3   Grading Basis Graded  
This course teaches an introduction to the theory of grammars and the mathematical foundations of compilers along with the practical considerations for developing them. The course covers practical aspects of all phases of the compilation process including lexical analysis, parsing, code generation and code optimization. Students develop a compiler for a small grammar using the appropriate techniques.
CS 633  Computer Forensics  
Credits 3   Grading Basis Graded  
This course teaches how to perform computer crime investigations. The course covers the recovery and analysis of digital evidence, addressing legal and technical issues. Forensic examination of Windows and Unix systems are used to illustrate typical investigative processes.
Prerequisites: CS 550.
CS 635  Secure Network Operations  
Credits 3   Grading Basis Graded  
Standard network security techniques for monitoring and maintaining an organization's internal and external networks. Students will learn how to detect network-based attacks, diagnose an attacker's intent, and respond to and recover from intrusions.
Prerequisites: CS 610.
CS 640  Malware Analysis  
Credits 3   Grading Basis Graded  
This course deals with the classification, identification and forensic analysis of malicious code found on computing systems or transmitted via digital networks. Topics will include types and classification of malware, a review of assembly programming and shell code exploits, reverse engineering techniques, dynamic and static code analysis, as well as techniques to identify and capture malicious code.
Prerequisites: CS 633.
CS 644  Artificial Intelligence  
Credits 3   Grading Basis Graded  
Application of heuristics to problem solving; perception and pattern recognition; search methods, production systems and knowledge representation; applications to expert systems, automatic programming and natural language processing.
Prerequisites: CS 512.
CS 652  Formal Methods for Information Security  
Credits 3   Grading Basis Graded  
A formal specification language is presented with case studies, proofs and the formal specification of software components. Additional topics may include formal security policy modeling, seminal formal systems, first-order logic, set theory, relations, functions, sequences, bags, free types, formal and rigorous proof, immanent reasoning, reification, decomposition and Floyd-Hoare logic.
CS 660  Advanced Network Security  
Credits 3   Grading Basis Graded  
This is a project-based course. Students will learn advanced network security concepts, conduct information security research and apply what they have learned throughout the information security master's program to better secure critical information infrastructure.
Prerequisites: CS 610.
CS 666  Software Construction and Testing  
Credits 3   Grading Basis Graded  
Study of the state-of-the-art in software construction and testing. Topics include tools, techniques and practices for software production, testing, verification, validation and evaluation.
Prerequisites: CS 555.
CS 680  Reading and Research  
Credits 3   Grading Basis Graded  
Opportunity for supervised reading and research in areas of special interest to the student. Reading and research may be done only in the major field of study.
CS 685  Selected Topics II  
Credits 3   Grading Basis Graded  
An in-depth study of selected topics not otherwise covered in the regular offerings of the department. May be repeated for credit when course content changes.
CS 698  Comprehensive Continuance  
Credits 1   Grading Basis Comprehensive/Thesis/Dissertation Continuance  
Continued preparation in anticipation of the comprehensive examination. Course may be repeated as needed.
CS 699  Thesis Continuance  
Credits 1   Grading Basis Comprehensive/Thesis/Dissertation Continuance  
Continued study, research and writing in the area of thesis concentration. Course may be repeated as needed.
CS 700  Thesis Research  
Credits 2-3   Grading Basis Satisfactory/Unsatisfactory  
This course is graded on a satisfactory/unsatisfactory (S/U) basis.