Computer Science

Admission Criteria
Admission to the program is competitive. Preference is given to students with undergraduate preparation in computer science or professional experience in computing. Strong students from other disciplines are also encouraged to apply. Students judged able to complete the program but lacking background in computing can be admitted with a conditional requirement to complete a preparatory course sequence in computer science.

Mission
The graduate program in computer science prepares highly skilled professionals with advanced expertise in creating and maintaining secure and reliable computing systems. Two different concentrations are available: Information Security and Digital Forensics. Both concentrations lead to the M.S. degree in computer science and include courses in core areas of computer science.

Information Security
We are committed to providing a premier information security education that equips graduates with the knowledge and skills necessary to design, implement, and maintain secure modern information infrastructures and systems. InfoSec is a distance-education offering, completely Internet-based. Students can expect to finish their studies in two to two and one half years.

Digital Forensics
Our program offers quality education in digital forensics from a computer science perspective through a systems-oriented curriculum that provides the skills and knowledge needed to support digital investigations. The curriculum is highly system-oriented, where students gain deep insights into how operating systems, networks and computer programs function and how those systems relate to forensics and security in general.

Concentrations

Concentration in Information Security

Concentration Director: Dr. M. Hossain Heydari

This concentration is offered in a remote, electronic distance-learning format that, while satisfying all requirements for the Master of Science program, is especially appropriate for people with professional interests in information security. Further information can be obtained from the InfoSec website. The distance-learning courses are available only to students in the information security concentration, who will pay a different tuition rate than students taking traditional courses at the university.

Students completing this concentration will also receive two NSA approved certificates: Information Systems Security (INFOSEC) Professionals (NSTISSI No. 4011) and Information Systems Security Officers (CNSSI No. 4014).

Information Security Concentration Requirements

Minimum Requirements Credit Hours
CS 523. Ethics, Law and Policy in Cyberspace 3
CS 550. Operating Systems 3
CS 555. Secure Software Engineering 3
CS 560. Networks and Network Security 3
CS 621. Software Assurance 3
CS 625. Secure Operations 3
CS 627. Cryptography: Algorithms and Applications 3
CS 652. Formal Methods for Information Security 3
CS 660. Advanced Network Security 3

  27

Thesis Route Credit Hours
CS 700. Thesis 6

  33

Non-Thesis Route Credit Hours
CS 633. Computer Forensics 3
CS 675. Distributed Computing and Security 3
or CS 685. Selected Topics  

  33

Preparatory Courses
Depending on undergraduate background and work experience, students may be required to take one or more of the following preparatory courses. These courses do not satisfy degree requirements for the Information Security concentration.

Courses Credit Hours
CS 510. Object Oriented Programming 3
CS 511. Computer Organization 3
CS 512. Data Structures 3
CS 515. Foundations of Computer Science 3

Certificate Courses
Eligible students may take certificate courses CS 502CS 506 to receive specific security certificates.

RETURN TO TOP

Concentration in Digital Forensics

Concentration Director: Dr. Florian Buchholz

The digital forensics concentration combines core computer science concepts with an in-depth, technical study of digital forensics. The curriculum is highly system-oriented, where students gain deep insights into how operating systems, networks and computer programs function and how those systems relate to forensics and security in general. Coupled with these technical computer science topics, a core digital forensics component addresses the forensic process, relevant laws and analysis techniques, as well as report writing. Students with exceptional undergraduate preparation may choose electives in place of selected required courses with prior approval of the concentration director. For electives, students may also choose independent studies, reading and research courses, or special courses offered by faculty on topics of interest.

Students completing this concentration will also receive the Information Systems Security (INFOSEC) Professionals certificate (NSTISSI No. 4011).

This concentration is available on campus only. Additional information can be found at http://cs.jmu.edu/forensics/index.html.

Digital Forensics Concentration Requirements

Minimum Requirements Credit Hours
CS 530. Programming Languages 3
CS 550. Operating Systems 3
CS 552. Applied Complexity Theory 3
CS 557. Information Security 3
CS 610. Networking and Security 3
CS 630. Complier Theory and Implementation 3
CS 633. Computer Forensics 3
CS 635. Secure Network Operations 3
CS 640. Malware Analysis 3
Approved elective 3

  30

Thesis Route Credit Hours
CS 700. Thesis 6

  36

Non-Thesis Route Credit Hours
Approved electives 6

  36

RETURN TO TOP

Five-Year Concentration in Digital Forensics

Concentration Director: Dr. Florian Buchholz

This concentration allows students to complete both a bachelor's degree and a master's degree in computer science in five years by combining the first year of graduate studies with the senior year of undergraduate studies. The curriculum requires 30 credit hours of graduate courses, of which 21 hours are required courses and nine hours are electives or thesis credit. Substitutions for required courses may be made with permission of the concentration director. Additional information can be found at http://cs.jmu.edu/forensics/combinedprogram.html.

Students completing this concentration will also receive the Information Systems Security (INFOSEC) Professionals certificate (NSTISSI No. 4011).

Admission requirements include nine undergraduate CS courses that are normally taken by CS undergraduate majors and that may also be taken by JMU undergraduates who minor in CS, as an extension of regular minor requirements. Applicants must also be on track to have completed at least 99 hours of credit by the end of the junior year. Course selection for the junior-senior years should be done in consultation with the concentration director.

In comparison to the traditional concentration in digital forensics, this concentration requires the same 600-level courses, and all but two of the same 500-level courses (completion of an undergraduate version of CS 530 is required as a condition of admission).

Five-Year Digital Forensics Concentration Requirements

Minimum Requirements Credit Hours
CS 550. Operating Systems 3
CS 557. Information Security 3
CS 610. Networking and Security 3
CS 630. Compiler Theory and Implementation 3
CS 633. Computer Forensics 3
CS 635. Secure Network Operations 3
CS 640. Malware Analysis 3
Approved elective 3

  24

Thesis Route Credit Hours
CS 700. Thesis 6

  30

Non-Thesis Route Credit Hours
Approved electives 6

  30

These undergraduate courses are required for admission to this concentration:

CS 227/228. Discrete Structures I and II
CS 239. Advanced Computer Programming
CS 240. Algorithms and Data Structures
CS 345. Software Engineering
CS 350. Computer Organization
CS 430. Programming Languages
CS 450. Operating Systems

The department strongly encourages that this undergraduate course should be taken by undergraduates intending to apply for this concentration: CS 452, Analysis of Algorithm.

This undergraduate course should not be taken by undergraduates intending to apply for this concentration: CS 457, Information Security.

RETURN TO TOP

Certificate Programs
The MS/Computer Science program offers several certificate programs that provide working professionals and students from other disciplines a chance to learn in-depth about a specific topic without completing the entire MS curriculum. These programs are available to all JMU graduate students and to the public in general through JMU's Outreach and Engagement office. Course credit earned through these certificate programs can also be used towards earning an MS degree later. These certificate programs are available on campus only.

Prerequisites for the certificate programs generally include a baccalaureate degree and working knowledge of computer systems. See the specific program listings for details. Though multiple certificates may be earned, no more than one course may be used toward multiple certificates.

Certificate in Network/Information Security
This certificate will provide a practical understanding of computer security and techniques for defending computer networks.

Prerequisites:

Required Courses Credit Hours
CS 550. Operating Systems 3
CS 557. Information Security 3
CS 610. Networking and Security 3

  9

Certificate in Secure Computer and Database Systems
This certificate will provide an understanding of computer system and database operations and related security problems and solutions.

Prerequisites:

Required Courses Credit Hours
CS 550. Operating Systems 3
CS 557. Information Security 3
CS 574. Database Systems 3

  9

RETURN TO TOP

Course Offerings

Computer Science

CS 501. Workshop in Computer Science.
1-3 credits.
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. Prerequisite: Permission of the concentration coordinator.

CS 502. Introduction to Information System Security.
3 credits.
This course provides an introduction to the design and management of operating systems and networks, focusing on those aspects that affect information security. It provides students with the skill or ability to design, execute and evaluation information system security procedures and practices. This course does not satisfy any requirements for the Master of Science degree in computer science. Prerequisite: Approval of instructor.

CS 503. Information Systems Security Management.
1 credit.
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. Prerequisite: CS 502, CS 560 or CS 610.

CS 504. Information System Security Administration.
1 credit.
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. Prerequisite: CS 502, CS 560 or CS 610.

CS 505. Information System Security Operations.
1 credit.
This course covers the basic knowledge needed by information system security officers to protect their information systems. Topics covered include certification, accreditation, site security policy, security policy enforcement and security reporting. This course does not satisfy any requirements for the Master of Science degree in computer science. Prerequisite: CS 502, CS 560 or CS 610.

CS 506. Assessment of Secure Information Systems.
1 credit.
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. Prerequisite: CS 502, CS 560 or CS 610.

CS 510. Object Oriented Programming.
3 credits.
Fundamental programming techniques, including basic data types, control structures, algorithm development, procedures, arrays, and the definition of abstract data types. Does not satisfy graduation requirements for the Master of Science degree in computer science.

CS 511. Computer Organization.
3 credits.
The study of the organization of computer systems, including a brief study of number systems and digital circuits. Also covers basic components of computer systems such as main memory, CPU, I/O and their interconnection mechanisms. Does not satisfy graduation requirements for the Master of Science degree in computer science.

CS 512. Data Structures.
3 credits.
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. Does not satisfy graduation requirements for the Master of Science degree in computer science. Prerequisite: CS 510 or equivalent.

CS 515. Foundations of Computer Science.
3 credits.
Survey of fundamental computer science concepts such as iteration, recursion, induction, analysis of algorithms, combinations and probability, data structures, automata theory and regular expressions, context-free grammars and parsing, and propositional and predicate logic. This course does not satisfy graduation requirements for the program.

CS 523. Ethics, Law and Policy in Cyberspace.
3 credits.
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. Prerequisite: CS 550.

CS 530. Programming Languages.
3 credits.
Study of the fundamental principles of programming language design and their realization in actual programming languages. Examines programming languages from the procedural, object-oriented, and functional and declarative paradigms. Introduces basic concepts of grammars and parsing. Prerequisites: CS 240 and CS 350, or CS 511 and CS 512, or equivalent.

CS 547. Interaction Design.
3 credits.
Processes, principles, tools, models, and techniques for designing interactions between humans and digital products and systems. Students will learn through directed reading, design exercises, heuristic design evaluations, and empirical studies of designs.

CS 550. Operating Systems.
3 credits.
Concepts and principles of multiple-user operating systems. Memory, CPU, I/O device allocation, scheduling and security. Memory hierarchies, performance evaluation, analytic models, simulation, concurrent programming and parallel processors. Completion of a student project is a significant part of the course. Prerequisite: CS 350, CS 511 or equivalent.

CS 552. Applied Complexity Theory.
3 credits.
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. Prerequisite: CS 240, CS 512 or equivalent.

CS 555. Secure Software Engineering.
3 credits.
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. Prerequisite: CS 240, CS 512 or equivalent.

CS 557. Information Security.
3 credits.
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.

CS 560. Networks and Network Security.
3 credits.
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.

CS 574. Database Systems.
3 credits.
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. Prerequisite: CS 350, CS 511 or equivalent.

CS 585. Selected Topics I.
3 credits.
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.
3 credits.
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.
3 credits.
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.

CS 620. Introduction to Information Security.
3 credits.
Provides the manager with a broad overview of the threats to the security of information systems, the responsibilities and basic tools for information security and for the areas of training and emphasis needed in organizations to reach and maintain a state of acceptable security. The course provides an introduction to the language of information security and provides an overview of hardware, software and firmware components of an information security system, as well as their integration into an organization's information system operations for policy makers. The object of this course is to enable managers to make more informed policy and procedural evaluations in the information security area.

CS 621. Software Assurance.
3 credits.
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.
3 credits.
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.
3 credits.
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. Prerequisite: CS 252, MATH 227 or CS 515.

CS 630. Compiler Theory and Implementation.
3 credits.
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.
3 credits.
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. Prerequisite: CS 560, CS 610 or equivalent.

CS 634. Natural Language Processing.
3 credits.
Implementation of computer-based, natural language understanding systems; natural language syntax and processing knowledge representation, natural languages generation. Prerequisite: CS 555.

CS 635. Secure Network Operations.
3 credits.
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. Prerequisite: CS 610.

CS 640. Malware Analysis.
3 credits.
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.

CS 644. Artificial Intelligence.
3 credits.
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. Prerequisite: CS 240 or CS 512.

CS 649. Operating Systems II.
3 credits.
A study of various topics in operating systems such as distributed file systems, security, architectural support for operating systems, performance measurement, recovery management and real-time systems. Prerequisite: CS 550.

CS 650. Computer Networks.
3 credits.
The Open Systems Interface reference model. Network hardware, topologies and routing algorithms, reliability and security, application programs. Examples of various networks and protocols such as Ethernet, TCP/IP, NFS and USENET. Prerequisite: CS 550.

CS 652. Formal Methods for Information Security.
3 credits.
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 655. Programming Languages II.
3 credits.
A study of various topics in programming languages such as proof techniques, formal specification of syntax and semantics, operational, denotational and axiomatic semantics. Prerequisite: CS 555.

CS 660. Advanced Network Security.
3 credits.
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.

CS 665. Software Requirements and Design.
3 credits.
Study of the state of the art in software requirements engineering and design. Topics include techniques for system specification and verification, security models, software analysis and design methods and techniques, software architectures, and design patterns. Prerequisite: CS 555.

CS 666. Software Construction and Testing.
3 credits.
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. Prerequisite: CS 555.

CS 674. Database Systems II.
3 credits.
Continuation of CS 574. Prerequisite: CS 574.

CS 675. Distributed Computing and Security.
3 credits.
Covers theoretical and applied aspects of security and privacy needed for middleware and service-ware to offer reasonable assurance for modern distributed systems. Topics include distributed systems architectures, technologies and management; distributed system design, security and privacy issues; and applications such as Web services and mobile commerce. Prerequisite: CS 560.

CS 676. Distributed Databases.
3 credits.
Distributed databases and networks, levels of distribution, transparency, fragments and their allocation, distributed queries, optimization, and concurrency. Prerequisite: CS 574.

CS 680. Reading and Research.
3 credits.
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.
3 credits.
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 690. Practicum.
3 credits.
Provides a variety of supervised project, laboratory, leadership and instructional experiences. This course is graded on a satisfactory/unsatisfactory (S/U) basis. May be repeated for credit, but no more than six hours can be counted toward a degree program. Prerequisites: Consent of instructor and program coordinator.

CS 698. Comprehensive Continuance.
1 credit.
Continued preparation in anticipation of the comprehensive examination. Course may be repeated as needed.

CS 699. Thesis Continuance.
1 credit.
Continued study, research and writing in the area of thesis concentration. Course may be repeated as needed.

CS 700. Thesis Research.
2-3 credits.
This course is graded on a satisfactory/unsatisfactory (S/U) basis.

RETURN TO TOP

 

 

 

Horizontal Rule