Computer Science (CS)

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.