Dr. Malcolm G. Lane, Department Head
Dr. Ralph Grove, Graduate Program Coordinator
For information, call (540) 568-8772
Web site: http://www.cs.jmu.edu/csprogram.htm
Professors
C. Fox, J. A. Harris, M. Heydari, M. Lane, J. Marchal, R.
Mata-Toledo
Associate Professors
C. Abzug, E. Adams, D. Bernstein, P. Cushman, M. Eltoweissy,
R. Grove, R. Prieto-Diaz, S. Redwine
Assistant Professors
M. Aboutabl, B. Tjaden, M. Norton, R. Tucker, X. Wang
Adjunct Assistant Professor
S. Greenwald
Admission
Mission
Concentrations
Course Offerings
Admission
Admission to the program is
competitive. Preference is given to students with undergraduate preparation in
Computer Science, or industrial or government experience in computing. Strong
students from other disciplines are encouraged to apply. Students judged able
to complete the program but lacking preparation in Computer Science will
generally be admitted conditionally and required to complete remedial courses.
In addition to the College of
Graduate and Professional Program’s admission qualifications, potential
candidates must meet the requirements of the Computer Science department as
specified by on the Web site at http://www.cs.jmu.edu/grad_admissions.htm.
Mission
The graduate program in
Computer Science prepares highly skilled professionals with advanced expertise
in creating and maintaining secure and reliable computing systems.
The Computer Science department offers two programs of study
leading to the Master of Science in Computer Science. The on-campus program in
Secure Software Engineering combines studies in the areas of software
engineering and information security. The distance-education program in
Information Security features intensive study of information security. Both
programs achieve their goals through courses in core areas of Computer Science,
followed by course work and directed study in software engineering and
information security.
Full-time on-campus graduate
students can expect to complete their course work in four semesters, and
distance-education students in five semesters. Part-time students seeking to
advance their careers may pursue their academic objectives at a pace
commensurate with their professional and personal obligations.
Concentrations
Concentration in Secure Software Engineering
Dr.
Ralph Grove, Concentration Coordinator
This concentration is available only to on-campus students.
The program requires 36 credit hours, half of which must be at the 600-level or
above. Ten courses comprising 30 credits are required and six credits are
electives. For electives students may choose independent studies, reading and
research courses, a thesis, or courses offered by faculty on topics of
interest. Students with exceptional undergraduate preparation may make
substitutions for selected required courses with the permission of the faculty.
|
Requirements
|
Credit
Hours
|
|
CS 530. Programming Languages
|
3
|
|
CS 550. Operating Systems
|
3
|
|
CS 552. Applied Complexity Theory
|
3
|
|
CS 555. Software Engineering
|
3
|
|
CS 557. Information Security
|
3
|
|
CS 574. Database Systems
|
3
|
|
CS 610. Networking and Security
|
3
|
|
CS 635. Secure Network Operations
|
3
|
|
CS 665. Software Requirements and
Design
|
3
|
|
CS 666. Software Quality Assurance
|
3
|
|
Approved Electives in Computer
Science
|
6
|
|
|
|
Concentration in Information Security
Dr. Mohammad H. Heydari, Concentration Coordinator
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 Program Web site at www.infosec.jmu.edu.
The distance-learning courses are available only to students in the Information
Security concentration, who will pay a higher tuition rate than students taking
traditional courses at the university.
|
Minimum Requirements
|
Credit
Hours
|
|
CS 523. Ethics, Law and Policy in
Cyberspace
|
3
|
|
CS 550. Operating Systems
|
3
|
|
CS 555. Software Engineering
|
3
|
|
CS 560. Networks and Network Security
|
3
|
|
CS 574. Database Systems
|
3
|
|
CS 625. Information Security Audit
Controls
|
3
|
|
CS 627. Cryptography: Algorithms and
Applications
|
3
|
|
CS 652 Formal Methods for Information
Security
|
3
|
|
CS 660. Advanced Network Security
|
3
|
|
|
|
|
Thesis Route
|
|
|
CS 700. Thesis
|
6
|
|
|
|
|
Non-Thesis Route
|
|
|
CS 621. Trusted Systems
|
3
|
|
CS 675 Distributed Computing and
Security, or
|
|
|
CS 685. Selected
Topics
|
3
|
|
|
|
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 graduation requirements for the
Information Security concentration.
|
|
Credit
Hours
|
|
CS 510. Accelerated Fundamentals of Computer Programming
|
3
|
|
CS 511. Accelerated Fundamentals of Computer Systems
|
3
|
|
CS 512. Advanced Fundamentals of Computer Programming
|
3
|
|
CS 515. Foundations of Computer
Science
|
3
|
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
program coordinator.
CS 510. Accelerated Fundamentals of Computer Programming. 3 credits.
Fundamental programming techniques using the C
programming language to support algorithm development and procedural
abstraction as a means of problem solving. Students also learn elementary data
structures including character strings, records and files. Does not satisfy
graduation requirements for the Master of Science degree in computer science.
CS 511. Accelerated Fundamentals of Computer Systems. 3 credits.
An explanation of elementary computer organization
and network communication by using the Unix operating system including use of a
distributed hierarchic file system, other network resources and command
scripting. Does not satisfy graduation requirements for the Master of Science
degree in computer science. Prerequisite: CS 510 or equivalent.
CS 512. Advanced Fundamentals of Computer Programming. 3 credits.
Various advanced problem-solving strategies that use
object-oriented techniques to develop algorithms in the C++ programming
language. Students also learn advanced 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, 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 on-line 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, 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 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 or 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, and intractable problems and the P=NP
question. Other topics in theoretical computer science with applications.
Prerequisite: CS 240 or CS 512 or equivalent.
CS 555. Software Engineering. 3 credits.
The software development life cycle, software
project management, development tools and methods, and software quality
assurance. Teams of students will complete a significant development project. Prerequisite:
CS 240 or 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 or 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. Prerequisite: 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, and 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. Trusted Systems. 3
credits.
Definition of a trusted system and considerations
pertaining to the design, evaluation, certification and accreditation of
trusted systems, to include hardware considerations, software considerations
such as developmental controls, validation/verification, assured distribution
and other assurance issues. Implementation, configuration management and
systems administration of trusted systems. Trusted applications and trusted
database issues. Importance of aggressive monitoring and setting traps for the
intruder. Importance of understanding the psychology and successful modus
vivendi of the attacker to generating and maintaining a powerful defense. Prerequisite:
CS 620.
CS 625. Information Security Audit Controls. 3 credits.
A course for the information system security
professional emphasizing administrative roles in the audit and control of
information systems. The administrator’s role in secure system accountability
and documentation will be stressed. Prerequisite: CS 621.
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 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 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 555.
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, 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 masters
program to better secure critical Information Infrastructure.
CS 665. Software Requirements and Design. 3 credits.
In-depth study of the state-of-the-art in
requirements engineering, analysis, and design. Topics include formal
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 Quality Assurance. 3 credits.
In-depth study of selected topics in software
quality assurance. Topics include reviews and inspections, testing, formal
verification methods, process management and improvement, and defect
prevention. 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. Prerequisite:
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. 2
credits.
Continued study, research and writing in the area of
thesis concentration. Course may be repeated as needed.
CS 700. Thesis. 6
credits.
This course is graded on a
satisfactory/unsatisfactory (S/U) basis.