Graduate School of Operational and Information Sciences (GSOIS)

Website

http://www.nps.edu/Academics/Navigation/GSOIS.html

Dean

Peter Purdue, Ph.D.

Naval Postgraduate School

Code 06, Glasgow Hall, Room 220

1411 Cunningham Road

Monterey, CA 93943

(831) 656-2663, DSN 756-2663, FAX (831) 656-3828

ppurdue@nps.edu

Associate Dean

Alejandro (Andy) Hernandez, COL, USA

Naval Postgraduate School

Code 06, Glasgow Hall, Room 220A

1411 Cunningham Road

Monterey, CA 93943

(831) 656-3116, DSN 756-3116, FAX (831) 656-3828

ahernand@nps.edu

The Graduate School of Operational and Information Sciences consists of the following departments:

Computer Science

CS

Defense Analysis

DA

Information Sciences

IS

Operations Research

OR

Overview

The Graduate School of Operational and Information Sciences includes Graduate Resident Programs consisting of 15 technical curricula and awards Master of Science and Ph.D. degrees across four academic departments. The faculty number approximately 100 and educate approximately 600 military and DoD students annually.

In the domains of education and ideas, staying current in these dynamic times is basic to the Graduate School of Operational and Information Sciences. Unlike a civilian university, at GSOIS we know we are educating our students for military related careers. First we teach them scientific principles and mathematical methods, and then we teach them how to apply them to military objectives when they return to service.

Another university could not tailor a curriculum, adapt to change, or transform its courses as swiftly as do the GSOIS faculty. For example, pedagogically, we have embraced the shift to distance learning, especially in the past five years, as Web-based instruction has become an efficient delivery mode, and we supplement it with Video TeleEducation so that students will benefit in widely dispersed locations, sometimes in ships at sea.

Mission Statement

To deliver graduate-level education and conduct cutting-edge research in four nontraditional knowledge domains in response to the needs of naval and DoD customers. Our four knowledge domains are:

Department of Computer Sciences

Chairman

Peter J. Denning, Ph.D.

Code CS, Glasgow East, Room 317

(831) 656-3603, DSN 756-3603, FAX (831) 545-2814

pjd@nps.edu

Associate Chairman

Chris Eagle

Code CS/Ce, Glasgow East, Room 331

(831) 656-2378, DSN 756-2378, FAX (831) 656-2814

cseagle@nps.edu

Associate Chairman, Academic Affairs

Thomas W. Otani, Ph.D.

Code CS/To, Glasgow East, Room 307

(831) 656-3391, DSN 756-3391, FAX (831) 656-2814

twotani@nps.edu

Associate Chairman, Research

George W. Dinolt, Ph.D.

Code CS/Gd, Glasgow East, Room 224

(831) 656-2462, DSN 756-2462, FAX (831) 656-2814

gwdinolt@nps.edu

Associate Chairman, Administration and Academic Associate of Computing Technology Curriculum

Loren E. Peitso

Code CS/Lp, Glasgow East, Room 340

(831) 656-3009, DSN 756-3009, FAX (831) 656-2814

lepeitso@nps.edu

Academic Associate of Computer Science Curriculum

Thomas W. Otani, Ph.D.

Code CS/To, Glasgow East, Room 307

(831) 656-3391, DSN 756-3391, FAX (831) 656-2814

twotani@nps.edu

Academic Associate of MOVES Curriculum

Mathias N. Kölsch, Ph.D.

Code MOVES/Mk, Watkins Hall, Room 279

(831) 656-3402, DSN 756-3402, FAX (831) 656-7599

mnkolsch@nps.edu

Academic Associate of Software Engineering Curriculum

Bret Michael, Ph.D.

Code CS/Mi, Glasgow East, Room 335

(831) 656-2655, DSN 756-2655, FAX (831) 656-2814

bmichael@nps.edu

Distance Program Coordinator Software Engineering Curriculum

Man-Tak Shing, Ph.D.

Code CS/Sh, Glasgow East, Room 334

(831) 656-2634, DSN 756-2634, FAX (831) 656-2814

shing@nps.edu

Academic Associate of Computing Technology Curriculum

Loren E. Peitso

Code CS/Lp, Glasgow East, Room 340

(831) 656-3009, DSN 756-3009, FAX (831) 656-2814

lepeitso@nps.edu

* The year of joining the Naval Postgraduate School faculty is indicated in parentheses.

Mikhail Auguston, Associate Professor (2003); Ph.D., Glushkov Cybernetics Institute, 1983.

Eric R. Bachmann, Research Assistant Professor, (1997); Ph.D., Naval Postgraduate School, 2000.

Valdis Berzins, Professor (1986); Ph.D., Massachusetts Institute of Technology, 1979.

Karen Burke, Research Associate Professor (2003); M.S., Southern Illinois University, 1979.

Paul Clark, Research Associate (1999); M.S., Naval Postgraduate School, 1999.

Richard S. Cote, Lecturer (2001); M.S., Naval Postgraduate School, 2000.

Chris Darken, Associate Professor (2001); Ph.D., Yale University, 1993.

Rudy Darken, Professor (1996); DS.c., George Washington University, 1995.

Arijit Das, Research Associate (2003); M.S., University of Nevada, 1989.

Peter J. Denning, Chairman, Department of Computer Sciences and Distinguished Professor (2002); Ph.D., Massachusetts Institute of Technology, 1968.

George W. Dinolt, Associate Professor (2002); Ph.D., University of Wisconsin at Madison, 1971.

Doron Drusinsky, Associate Professor (2002); Ph.D., Weizmann Institute of Science, 1988.

Chris Eagle, Senior Lecturer (1997); M.S., Naval Postgraduate School, 1995.

John Falby, Senior Lecturer (1991); M.S., Naval Postgraduate School, 1986.

John D. (JD) Fulp, Senior Lecturer (2001); M.S., Naval Postgraduate School, 1996.

Simson L. Garfinkel, Associate Professor (2006); Ph.D., Massachusetts Institute of Technology, 2005.

John H. Gibson, Research Associate (2001); B.S., University of California at Santa Barbara, 1969.

Jonathan C. Herzog, Associate Professor (2006); Ph.D., Massachusetts Institute of Technology, 2004.

John Hiles, Research Professor (1999); B.S., University of California at Santa Barbara, 1969.

Ted Huffmire, Assistant Professor (2007); Ph.D., University of California at Santa Barbara, 2007.

Cynthia E. Irvine, Professor and Director, Center for Information Systems Security Studies and Research (1994); Ph.D., Case Western University, 1975.

Mathias N. Kölsch, Assistant Professor (2005); Ph.D., University of California at Santa Barbara, 2004.

Timothy E. Levin, Research Associate Professor (2001); B.S., University of California at Santa Cruz, 1991.

Theodore G. Lewis, Professor (1993); Ph.D., Washington State University, 1971.

G.M. Lundy, Associate Professor (1988); Ph.D., Georgia Institute of Technology, 1988.

Luqi, Professor (1986); Ph.D., University of Minnesota, 1986.

Craig Martell, Associate Professor, (2003); Ph.D., University of Pennsylvania, 2004.

Bret Michael, Professor (1998); Ph.D., George Mason University, 1993.

William H. Murray, Research Associate (2001); B.S., Louisiana State University, 1962.

Thuy D. Nguyen, Research Associate (2002); B.A., University of California at San Diego, 1982.

Thomas W. Otani, Associate Professor (1985); Ph.D., University of California at San Diego, 1983.

Loren E. Peitso, Senior Lecturer (2004); M.S., Naval Postgraduate School, 2002.

Charles Prince, Research Associate (2006); B.S., Oregon State University, 1993.

Richard Riehle, Visiting Professor (2000); M.S., National University, 1971.

Neil C. Rowe, Professor (1983); Ph.D., Stanford University, 1983.

David Shifflett, Research Associate (2000); B.S., California State University at Northridge, 1985.

Man-Tak Shing, Associate Professor (1988); Ph.D., University of California at San Diego, 1981.

Gurminder Singh, Professor and Director, Center for the Study of Mobile Devices and Communications (2002); Ph.D., University of Alberta, 1989.

Kevin M. Squire, Assistant Professor (2005); Ph.D., University of Illinois, 2004.

Joe A. Sullivan, CDR, USN, Military Lecturer and MOVES Institute Acting Director (2001); M.S., Naval Postgraduate School, 1998.

Timothy Vidas, Research Associate (2006); M.S., University of Nebraska, 2006.

Dennis M. Volpano, Associate Professor (1991); Ph.D., Oregon Graduate Institute, 1986.

Daniel F. Warren, Senior Lecturer (1996); M.S., University of California at Santa Cruz, 1986.

Duminda Wijesekera, Associate Professor (2006); Ph.D., University of Minnesota, 1997.

Geoffrey Xie, Professor (1996); Ph.D., University of Texas at Austin, 1996.

Emeritus Professors

Robert B. McGhee, Professor Emeritus (1986); Ph.D., University of Southern California, 1963.

Degree

The Department of Computer Science provides graduate training and education in major areas of computer science; thus, both basic and advanced graduate courses are offered. Course work and research lead to either the Master of Science or Doctor of Philosophy degree. The requirements to complete either program are rigorous and are comparable to those of other major universities.

Master of Science in Computer Science

Master of Computing Technology

Master of Science in Modeling, Virtual Environments, and Simulation

Master of Science in Software Engineering

Doctor of Philosophy in Computer Science

Doctor of Philosophy in Modeling, Virtual Environments, and Simulation

Doctor of Philosophy in Software Engineering

Laboratories

There are currently 12 laboratories:

Computer Science Learning Resource Center

This laboratory provides a general purpose, networked, PC desktop environment for a variety of programming languages and software packages. It is used both as a teaching lab for a number of courses and as an open lab for NPS-wide coursework.

Introductory Computer Security Laboratory

This lab is primarily used by the Center for Information Systems Security Studies and Research (CISR). It is an "air-gapped" lab dedicated to studies of network vulnerabilities, intrusion detection, secure system management, and computer forensics; where tools used by administrators and hackers can be freely researched and studied. It is also used in certifying students with NSTISSI 4000 series certifications in Security Professionalism by the Committee of National Security Systems (CNSS), via the National Science Foundation (NSF).

Computer Information Security Research (CISR) Laboratory

This teaching and research computer lab is primarily used by the Center for Information Systems Security Studies and Research (CISR) and is dedicated to studies of information assurance, computer security, high assurance system architecture, and authentication. This lab facility introduces students to studies in high assurance systems, steganography, public key infrastructure, mandatory access control, viruses, covert channels, and the reference monitor concept.

Public Key Infrastructure Laboratory

This teaching and research computer lab is primarily used by the Center for Information Systems Security Studies and Research (CISR) and is dedicated to studies of network security; secure computer systems; and security policies, modeling, and formal methods. In addition, through the use of a Virtual Private Network (VPN), it is utilized for the Inter-Service Academy Cyber Defense Exercise (CDX). This annual exercise involves NPS, AFIT, and all four U.S. Service Academies acting as network defenders (Blue teams) against network attackers (Red teams) from NSA and DoD information warfare agencies. This lab also directly supports DoD-funded research on DoD Public Key Infrastructure (PKI).

Network Research and Experimentation Laboratories

Introductory PC Network Laboratory

Intermediate Local Area Network Laboratory

These two labs support the Networks Track and provide students the opportunity to apply network theory in concrete applications. The Introductory PC Network Laboratory enables students to install network hardware and software, learning firsthand the advantages, limitations, and intricacies of various components and operating systems. The Intermediate Local Area Network Laboratory allows students to participate in ongoing Next Generation INTERNET research, advanced protocol development, future high-speed digital switching systems experimentation, network management, and control design and analysis. These labs also directly support DoD-funded research for the Defense Advanced Research Projects Agency and the National Science Foundation (NSF).

Wireless and Mobile Computing Laboratory

The Wireless and Mobile Computing Lab provides the majority of academic computing needs to support the wireless and mobile computing track within the Department of Computer Science. This lab provides students with the opportunity to program and examine security aspects of mobile computing devices ranging from personal digital assistants (PDAs) through cellular phones.

Autonomous Robotics Coordination Laboratory

This teaching and research computer lab supports graduate students and faculty work on sponsored classes/research projects regarding the coordination between multiple autonomous robots to achieve a coordinated result. The lab is equipped with several types of programmable robots and a wide range of intelligent software tools, including programming languages, planners, language processors, image processors, and neural-computing.

Software Engineering Laboratory

This laboratory provides a state-of-the-art engineering systems environment to support graduate students and faculty work on sponsored classes and projects in software automation. The laboratory provides a test bed for DoD software-intensive systems and software for embedded/safety-critical systems can be precisely tested in the lab. Evaluation and assessment on network-based system integration and interoperability, and the risk assessment on systems of systems can be conducted effectively in the lab. The lab also provides support for requirements analysis, prototyping, specification, and computer-aided system architecture design.

Forensics Exploitation Lab

This laboratory provides a state-of-the-art forensics exploitation environment to support graduate students and faculty work on sponsored classes and projects in basic and applied forensics exploitation research projects. Primary work is done with new techniques for automatically processing data recovered from disk drives and other types of storage devices. Using forensic techniques, the data on a hard drive can reveal who used or broke into a computer system, what it was used for or what was done during a break-in, and the identities of those in question.

Biometrics Research Lab

This new laboratory is intended to provide a state-of-the-art biometrics identity management systems environment to support graduate students and faculty work on sponsored classes and projects in identity management. The lab will conduct both basic and applied research in identity management techniques, hardware, and software.

SCIF Security Lab

This laboratory provides a state-of-the-art engineering systems environment to support graduate students and faculty work on sponsored classes and projects in security areas that are required to be conducted in high-security, compartmented classifications and dedicated air-gapped hardware/networks.

Computer Science Course Descriptions

CS Refresher Courses

Place-holder. Do not remove.

<CS Refresher Courses CSR100-CSR101>

CSR100 Refresher for Beginning Programming (2-2) Winter/Summer

(No credit) An introduction to computer algorithms, programs, and hardware. Using structured programming and stepwise refinement techniques, students receive classroom instruction plus design and test programs in the laboratory. Computer projects of increasing difficulty are assigned. This course is not graded. Prerequisite: None.

CSR101 Refresher for Laboratory Systems (2-1) As Required

Intended for Computer Science majors, to provide an introduction to computer science and computing laboratory facilities. Both Unix and the MS-DOS operating systems are introduced from a user perspective, as well as operation of corresponding workstation and personal computer hardware. Each system's user interface, text processing, programming environment, network and communication facilities are surveyed. Students are exposed to basic principles and procedures for productive software and document development through both lecture and hands-on tutorials. Should be taken concurrently with CSO100. Not graded. No credit. Prerequisite: None.

CS Courses

Place-holder. Do not remove.

<CS Courses CS0001-CS3450>

CS0001 Colloquium (0-1) As Required

(No credit) Departmental lecture series. Attendance is required by students in their fourth quarter. Graded on a Pass/Fail basis. Prerequisite: None.

CS0102 Review for Direct Input Students (2-1) As Required

(No credit) (Meets entire quarter) An individualized course to cover the topics of CSR100 and CSR101. The course is open only to first-quarter computer science majors who did not take CSR100 and CSR101. This course is not graded. Prerequisite: None.

CS0810 Thesis Research (0-8) Fall/Winter/Spring/Summer

Every student conducting thesis research will enroll in this course. Prerequisite: None.

CS0820 Integrated Project (0-1) Fall/Winter/Spring/Summer

The Naval Postgraduate School provides many opportunities for students to participate in campus-wide interdisciplinary projects. These projects encourage students to conceptualize systems which respond to current and future operational requirements. An integral part of the project involves working with other groups to understand and resolve issues involved with system integration. This course is available to Computer Science students who are participating in a campus-wide integrated project. Graded on a Pass/Fail basis. Prerequisite: None.

CS2101 Introduction to the Modern PC (3-1) As Required

This course is designed to introduce students to modern PC technology. Part one of the class covers the hardware and software design of the PC. This section details the feature of the Windows operating system including the Windows interface, multitasking, memory and device management, and other operating system services. Part two introduces the basic concepts of office automation, multimedia applications, and networking technology. Prerequisite: None.

CS2900 Introduction to Objects and Programming (4-2) Fall/Spring

This course teaches the fundamental programming concepts. Topics covered include data types, variables, expressions, parameter passing, control structures, objects, methods, visibility modifiers, strings, arrays, exception handling, software development, and testing techniques. Although Python and C/C++ are used, this course places focus on teaching programming concepts and not on teaching specific language features of Python and C/C++. Prerequisite: None.

CS2971 Fundamental Object-Oriented Programming in C++ (4-2) Fall/Spring

This course is an introductory course in program development techniques and the structured and object-oriented programming paradigms using C++. The topics covered include: problem-solving, documentation, C++ Integrated Programming Environment (IDE), control flow, native types and statements, operators, structures, functions, pointers, arrays, object-oriented programming, encapsulation (class and objects), and I/O. Weekly programming or written assignments will be assigned. Prerequisite: None.

CS2973 Fundamental Object-Oriented Programming in Java (4-2) As Required

This course is an introductory course in program development techniques and the structured and object-oriented programming paradigms using Java. The topics covered include: problem-solving, documentation, Java Integrated Programming Environment (IDE), control flow, native types and statements, operators, structures, functions, pointers, arrays, object-oriented programming, encapsulation (class and objects), and I/O. Weekly programming or written assignments will be assigned. Prerequisite: None.

CS3000 Great Principles of Computing Technology (4-1) Fall/Spring

An introduction to computing technology that underlies all of information technology (IT). Offers a holistic view of the computing field and its connections with other fields in science, business, and philosophy. Covers deep principles of information technology in the areas of computation, communication, coordination, storage, and automation. Emphasizes the historical development of these principles, why they have stood the tests of time, how they relate to one another, and how they relate to issues in other fields. Prepares students for graduate study in computing-related fields. Prerequisite: None.

CS3006 An Introduction to Information System Security (4-0) Fall/Winter/Spring/Summer

Due to the rapid development and ubiquitous deployment of computer and information systems, and the very nature of insecurities they may hold, professionals involved with the design, development, deployment, and management of these systems now require a familiarity with information assurance (IA) and security. This course will introduce topics relevant to IA and computer security necessary to create a foundation of knowledge for the information management professional. The domains of knowledge to be introduced during the course include: access control systems and methodology; telecommunications and network security; security management practices; application and systems development security; cryptography; security architecture and models; operations security; business continuity and disaster recovery planning; laws, investigations, and ethics; and physical security. This course is meant to introduce the topics and will lay the foundations for further studies in any of the domains listed. Prerequisite: None.

CS3010 Computing Systems Principles (4-0) Fall/Spring

Designed to provide computer science majors with a basic understanding of computer systems hardware. The course includes the following topics: basic computer concepts, number systems and data representation, digital logic and Boolean algebra, storage devices and organization, basic computer organization and control, and instruction formats, addressing modes and the assembler process. No previous background in computer hardware is assumed. Prerequisite: None.

CS3030 Computer Architecture and Operating Systems (4-0) Winter/Summer

(For non-CS students.) This course provides an overview of basic computer hardware concepts and operating systems software. The following topics are covered: basic computer concepts; data representation; elements of computer architecture and operation; processor and process management; multiprogramming; memory management; and file management. Future trends in computer hardware and operating systems will be discussed. Prerequisites: CS2900 and CS2971, or consent of the instructor.

CS3050 Software Development for Combat Systems (3-2) As Required

This course covers the unique characteristics of software development for mission-critical embedded computer systems. Students will be introduced to real-time systems issues including analysis, design, process scheduling, operating systems, communications, architecture and fault-tolerance. The DoD Standard 2167A life cycle model will be explored, along with analysis, design, programming, and verification methodologies used in developing combat systems software. Students will learn the Ada programming language's real-time tasking and interprocess communication techniques, and be introduced to tools for prototyping, code reuse, and automatic code generation and documentation. The laboratory experience includes work with software analysis, design and programming tools to build a combat-type software system from requirements analysis through verification. Intended for non-CS majors. Prerequisite: CS2900.

CS3111 Principles of Programming Languages (4-0) As Required

This course is an introduction to the design, evaluation, and implementation of programming languages. Imperative, functional, logic, and concurrent programming methodologies are investigated, with an emphasis on practical issues. Tradeoffs in choosing different programming languages for a given task are discussed and principles on which an objective assessment of programming language design can be made are presented. Prerequisite: CS2900 or consent of the instructor.

CS3113 Introduction to Compiler Writing (3-2) Winter/Summer

This course is intended to explore the basics of modern compiler design and construction techniques. The fundamentals of scanning, parsing, and compiler semantics are developed in the framework of modern compiler-compiler and translator-writing systems technology. The laboratory periods will be used to develop a small model compiler/assembler. Prerequisite: CS3902.

CS3130 Software Design for Mobile Computers (3-2) As Required

This course introduces the student to rapid application development environments, programming languages, and operating systems used by commercial off-the-shelf handheld computers running operating systems such as Newton Intelligence, Magic Cap, GEOS, and PalmOS. The course includes a survey of devices, architectures, operating systems, and programming languages. Laboratory programming exercises will be required for at least one PDA-class operating system platform. Prerequisite: CS3901.

CS3200 Computer Architecture (3-2) As Required

This course examines the organization of computer and processor architectures. Instruction set design alternatives, processor implementation, memory system hierarchy, and I/O systems are the main topics of study. A quantitative approach is taken in which different design alternatives are evaluated and compared through analysis and/or experimentation. The course is accompanied by a set of labs which reinforce and extend the lecture subject matter. Prerequisites: CS3010 and either CS2900 or consent of the instructor.

CS3204 Human-Computer Interaction (3-2) Fall/Spring

This course studies the principles of human-computer interaction (HCI) and computing system usability. The design of an interactive system is much different than that of a conventional, noninteractive one. A successful software application depends on how well the designer understands the users of the system and how best to design for their needs and capabilities. In addition, an understanding of system design constraints and operational implementation issues are equally important. The primary focus of the course is to build the knowledge and skills needed to develop an effective and usable human interactive system. All students will participate on a design project that will take them through an entire interactive design process, from problem statement and requirements definition through prototyping and implementation, test, and evaluation. The course material will survey the field of HCI including interaction techniques and styles, design methodologies, evaluation techniques, software development, and input/output devices. The student will learn how to approach design problems from the user's point of view, how to study usability issues, and how to consider the strengths and limitations of the user during the design process. Prerequisite: None.

CS3310 Artificial Intelligence (4-1) Fall/Spring

Survey of topics and methods of Artificial Intelligence. Methods include rule-based systems, heuristic search and exploitation of natural constraints, means-ends analysis, semantic networks, and frames. Emphasis is placed on solving problems that seem to require intelligence rather than attempting to simulate or study natural intelligence. Projects to illustrate basic concepts are assigned. Prerequisites: CS3010 and one college-level course in programming.

CS3320 Database Systems (3-1) Winter/Summer

This course presents an up-to-date introduction to database systems including database system architectures, physical file organizations, data models, query languages, and design of databases. Prerequisite: CS2900 or consent of the instructor.

CS3450 Operating Systems (3-2) Fall/Spring

A theoretical and practical treatment of operating concepts. Major course topics include concurrency, Ada tasking, virtual memory including demand paging and segmentation, dynamic linking and loading, file structures, and information security. The laboratory portion of the class will give students the opportunity to write and test components of a modern operating system. Prerequisites: CS2900 and CS3901 and CS3010.

<CS Courses CS3502-CS3920>

CS3502 Computer Communications and Networks (4-2) Fall/Spring

This course covers basic computer networking concepts and technology through the study of protocols at each layer of the Internet architecture. Materials taught in class are reinforced through laboratory projects. Prerequisites: CS3010 and CS3030 and a solid background in Computer Architecture, Algorithm and Data Structures; and programming experience with C/C++ or Java are important for success in this class.

CS3505 The Internet and the Information Highway (3-2) Winter/Summer

In this class, the Internet and related technologies are explored. Major objectives are to (1) learn what the Internet and the "information highways" are; (2) learn how to use the Internet for business, academic, and personal uses; and (3) learn what the current and especially future direction the Internet is going. Students will gain experience in exploring the World Wide Web and in creating their own home pages using the language HTML. They will also learn how to use the "big three" Internet tools, which are FTP, E-mail, and Telnet. Some background on how these protocols were developed is also presented. Lectures also discuss the origins of the Internet, and the various physical and software layers which make up the Internet. The class requires a series of laboratory assignments, through which the students become familiar with the concepts in a "hands on" way. The class is intended for all graduate students interested in learning about and using the Internet, so the only prerequisite is graduate standing. Prerequisite: None.

CS3600 Information Assurance: Introduction to Computer Security (4-2) Fall/Winter/Spring/Summer

This course provides a comprehensive overview of the terminology, concepts, issues, policies, and technologies associated with the fields of Information and Software Assurance. It covers the notions of threats, vulnerabilities, risks, and safeguards as they pertain to the desired information security properties of confidentiality, integrity, authenticity, and availability for all information that is processed, stored, or transmitted in/by information systems. This is the entry point prerequisite for all other Computer Security Track courses. Prerequisites: CS3010 or CS3030.

CS3601 Theory of Formal Languages and Automata (4-0) Winter/Summer

This course will cover the Chomsky hierarchy of Formal Languages (regular sets, context-free languages, context-sensitive languages, and recursively enumerable languages) and the types of grammars and automata associated with each class in the hierarchy. Emphasis is placed on the major results of the theory as they apply to language and compiler design. In addition, the major results involving the concept of in decidability are covered. Prerequisite: MA3025.

CS3610 Information Ethics, Crime, and Law (4-0) Fall

This class examines the major controversies affecting today's Internet resulting from the interplay of policy, law, technology and human nature. Topics include computer crime; intellectual property; privacy; encryption; free speech; identity; data mining and additional DoD specific issues. Readings include laws, judicial opinions, popular articles, and academic computer science articles. Assignments include written exercises, a midterm quiz analyzing a public policy problem, and term paper. Prerequisite: None.

CS3640 Analysis of DoD Critical Infrastructure Protection (3-1) Fall/Spring

The DoD relies on the correct functioning of an extensive information and control infrastructure to accomplish its mission. To assist in ensuring the survivability of assets that comprise this infrastructure, the DoD has formulated a CIP lifecycle, which includes: Analysis and Assessment, Remediation, Indicators and Warnings, Mitigation, Incident Response, and Reconstitution. This course introduces students to this lifecycle, and how the criticality and survivability of mission-critical infrastructures within the DoD are assessed. Prerequisite: CS3600.

CS3650 Design and Analysis of Algorithms (4-0) Fall/Spring

This course focuses on the design and analysis of efficient algorithms. Techniques for analyzing algorithms in order to measure their efficiency are presented. Control structure abstractions, such as divide and conquer, greedy, dynamic programming, backtrack (branch and bound), and local search methods are studied. The theory of NP-completeness is presented, along with current approaches to NP-hard problems. Prerequisites: CS3901 and MA3025.

CS3651 Computability Theory and Complexity (3-1) As Required

This course covers the concepts needed to argue the decidability and computational complexity of problems. Topics include recursive enumerability, undecidability, diagonalization, computational complexity classes, intractability, Turing reduction, and many-one reducibility. Basic techniques are presented for proving undecidability and for establishing a lower bound on the computational complexity of a problem. Prerequisites: CS3601 and CS3650.

CS3660 Critical Infrastructure Protection (4-0) Spring

This course examines the critical infrastructure of the USA. Eight sectors of the critical infrastructure are examined: Banking/Finance; Health Care/Health Affairs; Space/ISR; Power/Energy; Logistics/Postal System; Transportation; Telecommunications and Satellites; and Internet/IA. Each sector and its components are characterized in terms of its vulnerabilities, especially its interdependencies and couplings with other sectors. Finally, the course identifies potential countermeasures that mitigate sector and system vulnerabilities and assesses their costs and benefits. Prerequisite: NS3180.

CS3670 Information Assurance: Secure Management of Systems (3-2) Fall/Spring

This course provides students with a security manager's view of the diverse management concerns associated with administering and operating an automated information system facility with minimized risk. Students will examine both the technical and nontechnical security issues associated with managing a computer facility, with emphasis on DoD systems and policies. Students have the opportunity to earn the following CNSS (formerly NSTISSI) certifications: INFOSEC Professional, System Administration in Information Systems Security, and ISSO. Prerequisite: CS3600.

CS3675 Network Vulnerability Assessment (3-2) Winter/Summer

This course provides a basis for understanding the potential vulnerabilities in networked systems by studying methods to: (1) obtain information about a remote network and (2) to possibly exploit or subvert systems residing on that network. Labs provide practical experience with current network attack and vulnerability assessment tools. Foot printing, scanning, enumeration, and escalation are addressed from the attacker's perspective. A final project that demonstrates skill and knowledge is required. Prerequisite: CS3502.

CS3686 Identity Management Infrastructure (3-0)

This course covers a broad range of topics related to the standards, protocols, technology, and management infrastructure necessary to field an enterprise-level identity management (IdM) solution. Lecture and reading assignments span the gamut of IdM issues: from low-level authentication protocol mechanics, to high-level identity federal initiatives. This course is one of several that will collectively compose the requirements for Identity Management specialization tracks in the Information Science and Computer Science degree programs. Completion of four courses: CS3686, CS3699, IS3710, and IS3720, will meet the requirements for earning the Federal/DoD Identity Management Certificate offered by NPS. Prerequisites: None.

CS3690 Network Security (4-2) Winter/Summer

This course covers the concepts and technologies used to achieve confidentiality, integrity, and authenticity for information processed across networks. Topics include: fundamentals of TCP/IP-based networking, core network security principles, traffic filtering types and methodology, packet-level traffic analysis, employment of cryptography, tunneling/encapsulation, Public Key Infrastructure (PKI), remote authentication protocols, and virtual private networks based on the IPSec, L2TP, and SSL protocols. Prerequisites: CS3600 and CS3502 and IS3502.

CS3699 Biometrics (3-0) As Required

This course reviews the technical details of biometric identification and verification. The major biometric approaches (fingerprints, irises, etc.) are covered in detail with respect to acquisition of biometric data, matching techniques, anti-spooking techniques, and current standards. The uses and limitations of biometrics are covered, as well as some of the legal, ethical, and privacy concerns of maintaining and using biometric data. This course is one of several that will collectively comprise the requirements for Identity Management specialization tracks in both the Information Science and Computer Science degree programs. Completion of four courses, CS3686, CS3699, IS3710, and IS3720, will meet the requirements for earning the Federal DoD Identity Management Certificate offered by NPS. Prerequisites: None.

CS3700 Advanced Object-Oriented Programming in C++ (4-2) As Required

This is a course in advanced object-oriented programming using C++ for students having an intermediate-level experience with C++. Students will learn guidelines for using C++ effectively through general design strategies and language specific features to make C++ programs and object-oriented designs more efficient, robust, maintainable and portable. Topics include: Memory management; Constructor and Assignment Operator Issues; Classes and Functions; Inheritance and Object-Oriented Design; Standard Template Library; Exceptions; Efficiency. Prerequisite: CS2971 or CS3771 or consent of the instructor.

CS3770 ADA as a Second Language (4-2) As Required

A first course in ADA for students experienced in another programming language. Students learn to implement problem solutions using the procedural and object-oriented language features of ADA. The procedural programming topics include: data types, operators, input/output, control structures, repetition structures, functions, arrays, and pointers. The object-oriented topics include: data abstraction and encapsulation, packages, inheritance, polymorphism, and generics. Weekly programming projects will be assigned. Prerequisite: Recent completion of the complete series in another programming language course, or programming experience in another programming language.

CS3771 C++ as a Second Language (4-2) As Required

A first course in C++ for students experienced in another programming language. Students learn to implement problem solutions using the procedural and object-oriented language features of C++. The procedural programming topics include: data types, operators, input/output, control structures, repetition structures, functions, arrays, and pointers. The object-oriented topics include: data abstraction and encapsulation, classes, objects, operator overloading, inheritance, polymorphism, templates, and reusable class libraries. Weekly programming projects provide students the opportunity to implement techniques covered in class. Prerequisite: Recent completion of the complete series in another programming language course, or programming experience in another programming language.

CS3773 Java as a Second Language (4-2) Winter/Summer

A first course in Java for students experienced in another programming language. Students learn to implement problem solutions using the procedural and object-oriented language features of Java. Topics include: program structures and environment, arrays, exceptions, constructors and finalizers, class extension, visibility and casting, overriding versus overloading, abstract classes and interfaces, files and streams, class loaders, threads, and sockets. Programming projects provide students the opportunity to implement techniques covered in class. Prerequisite: Recent completion of the complete series in another programming language course, or programming experience in another programming language.

CS3800 Directed Study in Computer Sciences (0-V) As Required

(Variable hours 0-2 to 0-8.) Individual research and study by the student under the supervision of a faculty member. The course is intended primarily to permit interested students to pursue in-depth subjects not fully covered in formal class work. Graded on a Pass/Fail basis only. Prerequisite: Consent of the instructor.

CS3901 Introduction to Data Structures and Intermediate Programming (4-2) Winter/Summer

This is the second course in the programming practice sequence. One of the main goals of this course is the teaching of data structures so the students will be able develop intermediate-level programs. Another goal is the teaching of modern programming techniques such as threads, and advanced-level, object-oriented, programming concepts such as inheritance and polymorphism. Topics covered include recursion, file input and output, sorting and searching, threads, stacks and queues, lists, binary search trees, balanced binary search trees, and hashing. Prerequisite: CS2900.

CS3902 Programming Paradigms (4-2) Winter/Summer

This is the third course in the programming practice sequence. Based on the knowledge of Java, this course introduces students to other programming paradigms. Many concepts are illustrated using C++ and ADA Functional programming using Lisp and Haskell and logic programming using Prolog are also introduced in the course. Prerequisite: CS3901.

CS3920 Topics in Computer Science (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support subject matter of special interest, dependent on faculty availability. Topics will either be drawn from areas not covered by core courses or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic. Prerequisite: Consent of the instructor.

<CS Courses CS4112-CS4556>

CS4112 Distributed Operating Systems (3-2) Winter/Summer

An advanced treatment of operating systems concepts. Major course topics include distributed operating systems, distributed operating system architectures, and concurrent programming. Other topics include secure operating systems and real-time operating systems, as time permits. Prerequisite: CS3450 or equivalent.

CS4113 Advanced Language Topics (4-0) As Required

This course is designed to explore concepts considered essential to the study of programming languages. These concepts include the lambda calculus, the Church-Rosser Theorem, reduction strategies, continuations, semantics, and recursion. Prerequisites: CS3111 and CS3450.

CS4130 Wireless Mobile Computing (3-2) Fall/Spring

This course will focus on a new paradigm in computing: wireless mobile computing. Portable, handheld, computing devices are now being used for many applications previously accomplished by larger desktop computers or dedicated small devices. Some of these devices contain powerful RISC CPUs, user-accessible flash RAM storage, networking and peripheral connectivity, handwriting recognition, and built-in infrared networking capabilities. The goal of this course is to provide a fundamental understanding of the devices, communications, and design and implementation issues in building such mobile networked applications. Students will be required to research, design, and/or implement a project that integrates multiple technologies to solve a real-world problem requiring mobile computing. Prerequisites: CS3502 and CS3901.

CS4135 Mobile Devices (3-2) Spring

There are a large number of mobile devices, including cellular phones, personal digital assistants (PDAs), PDA/cellular phone combinations, pagers, badges, and other wearable devices, in use today in a variety of applications. The number and variety of such devices keeps growing at a fast pace, as new processing, display, and battery and wireless technologies are invented, and as new applications for these devices are envisioned. This is a practical, hands-on course that covers the architecture, usability, and applications of mobile devices. From an application perspective, this course will discuss mobile devices as tools to support homeland security applications, military applications for capability enhancement, and communications and computing needs of mobile professionals. The study of principles is combined with hands-on laboratory exercises to develop applications on mobile devices. The ultimate objective of the course is to show students how they can exploit the capabilities of mobile devices to implement innovative applications to enhance productivity and effectiveness in a variety of domains. Prerequisite: CS2900.

CS4137 Wireless Data Services (3-2) Summer

Tremendous progress has been made in mobile device and wireless networking technologies. Many different PDAs, cell phones, smartphones, and specialized devices have been introduced in the marketplace, and been enthusiastically adopted by millions of people around the world. Wireless networking technology development and adoption has moved even faster! The combination of mobile devices and wireless networking lends itself to data applications that can make a significant difference in a wide variety of application areas. The aim of this course is provide an understanding of the issues, technologies, and applications related to wireless data services. In addition to other topics, this course will cover wireless Internet, SMS, MMS, WAP, iMODE, J2ME, and BREW. Prerequisites: CS4130 and CS4135.

CS4138 Mobile and Wireless Security (3-1) Spring

The application of mobile and wireless devices has grown rapidly in military and commercial environments. The functionality and reliability of these devices has grown tremendously. The mobile and wireless nature of these devices raise new and important security challenges not usually present in static environments. This course will address these challenges including the security functionality, protocol, and assurance issues associated with this emerging technology. Prerequisites: CS3600 and CS3690 and CS4137.

CS4182 Capstones in Computer Science (4-0) Winter/Summer

This is the capstone course for the CS curriculum. It surveys the transforming effects of seminal papers on ten subject areas within computer science. Each paper illustrates how the introduction of an organizing framework, a suitable form of analysis, or a set of supporting principles was able to change the way problems within the subject area were approached; a change that led to integrated and lasting solutions. Students will be responsible for reading and evaluating key papers that have helped to shape modern computer science. Prerequisite: CS3000.

CS4310 Sensory Artificial Intelligence (4-1) As Required

A study of methods of computational simulation in natural-language processing, computer vision, and sensor networks. Issues in natural-language processing include modeling of syntax, semantics, morphology, discourse, phonetics, and stochastic phenomena. Issues in computer vision include low-level processing, segmentation, shape inference, and object identification. Issues in sensor networks include deployment, local inference, and communications. Prerequisite: CS3310.

CS4312 Advanced Database Systems (3-1) As Required

This course is a sequel to CS3320, Database Systems. The course will provide an in-depth coverage of relational database theory, distributed database systems, semantic data models, query processing and optimization, transaction management, recovery, security, and other advanced topics. Topics will be illustrated using both commercial and prototype database systems. Prerequisite: CS3320 or consent of the instructor.

CS4315 Learning Systems and Data Mining (3-1) Winter

A survey of methods by which software and hardware can improve their performance over time. Methods include case-based reasoning, concept learning, neural networks, simulated annealing, and genetic algorithms. Students will do projects with software tools. Prerequisites: CS3000 and one college-level course in programming.

CS4322 Internet Information Systems Technology (3-2) Summer

A course exploring the implementation of recent Internet tools for supporting databases, intelligent systems, and information retrieval. Topics include browsers and server technology including servlets, XML, data mining, and data warehousing. Students will do programming to build their own tools. Prerequisites: CS2900 and either CS3310 or CS3320, or consent of the instructor.

CS4330 Introduction to Computer Vision (3-2) Fall

This course introduces students to the main concepts that allow computers to "see" and understand visual information. It teaches methods and skills in image processing, pattern recognition, statistical analysis, classification, and learning. These are exemplified on applications such as military intelligence, surveillance, object tracking, robotic navigation, human-computer interfaces, and visual effects. Students complete a small class project that demonstrates the use of computer vision for an application of their interest. In laboratory activities, students get hands-on experience with the most important tools for building practical vision systems. Experiments and projects are tightly coupled with the material covered in class. Students must be familiar with a programming language such as C, C++, or Java (CS2900, CS3771, CS3773, etc.). Prerequisites: Helpful, but not necessary, is knowledge of basic linear algebra, probability or game theory, and Matlab (EC1010), or consent of the instructor.

CS4450 Advanced Computer Architecture (4-0) Summer

This course covers advanced topics in computer architecture and the application of concepts in computer architecture to the design and use of computers. The topics discussed include classes of computer architecture, application-oriented architecture, and high performance architecture. Prerequisites: CS3010, and CS3200 or equivalent.

CS4552 Network Design and Programming (3-3) Fall/Spring

A hands-on introduction to parallel computing. The course introduces the student to different scientific and engineering applications that can benefit from parallel computing. The performance trade-offs among different ways of parallelizing an application are discussed. With the aid of parallel programming development tools, the students design, implement, debug, and monitor parallel programs for a few of the applications discussed. Every student is required to complete a nontrivial parallel program for solving some problem pertaining to his/her academic fields of study. The course is intended for CS and non-CS majors. Students will be guided to evaluate an emerging networking technology through experiments performed on a real network or using a Java-based network emulator called SAAM. The network protocols covered in this course include: RIP, OSPF, DNS, HTTP, DHCP, TCP, UDP, and VPN. Prerequisites: A Java programming course, CS3502, and CS4550, or equivalent(with instructor's consent).

CS4554 Network Modeling and Analysis (4-0) Winter/Summer

The purpose of this class is to learn to formally specify and analyze network protocols, emphasizing wireless protocols, and in the process acquire a thorough understanding of these protocols. Formal protocol models, such as communicating finite state machines and systems of communicating machines, will be used as a tool for this purpose. Some protocols other than wireless protocols may also be covered. Several research papers from recent years will be assigned reading. Cellular networking, IEEE 802.11, Bluetooth, and wireless local loop networks will be covered as well. The class will study these protocols in the context of the network architectures and physical environments they are intended to perform in. Students should acquire an increased knowledge of formal tools, experience in protocol and system analysis, and a better understanding of protocols and networks. At the discretion of the instructor, other advanced topics such as simulation and statistical analysis of networks and network protocols may be added and/or substituted for some of the topics above. The emphasis is on application of mathematical rigor to the analysis and description of networking protocols. Prerequisite: CS3502.

CS4556 Business Economics Network Technology (4-0) Fall/Spring

This class teaches a different side of the networking world—the business and economics areas, which necessarily include relevant laws and government policies. The course reviews the history of telecommunications, including the major inventions and the development of the business and resulting regulations. The importance of capital and investment is taught by studying actual decisions of telecom companies and their results in the ensuing years. In this way, the students learn how the telecom industry developed and how the current regulatory structure came about. All of the major telecom laws and court decisions are studied.

Basic business and economics principles are also studied, and numerous real-life examples are given. Students learn to write business plans and to analyze a telecom company or industry. The influence of the stock market on major companies is shown. The results of having either too much capital or too little are examined. The divestiture of AT&T in 1984, the resulting competition, the Telecom Act of 1996, and the telecom boom and bust of 1996-2003 are all examined in detail. Students in this class will gain a thorough understanding of the telecom industry, the major companies, and the effects of government regulation (too much or too little) and capital investment. Prerequisite: None.

<CS Courses CS4600-CS4923>

CS4600 Secure Computer Systems (3-2) Fall/Spring

This course covers the implementation of protection for monolithic and distributed secure computer systems. The problems of subversion and confinement in highly secure components are addressed by life cycle assurance methodologies. Topics include: protection hardware, the implementation of virtual machines through effective memory management techniques, synchronization mechanisms, critical sections, SWE methodologies, and configuration management techniques. Prerequisites: CS3600 and CS3450 and CS3502.

CS4603 Database Security (3-1) Spring

Course topics include: policies for information integrity and confidentiality of database (DB) systems, modeling of secure DB systems, security in statistical DBs, security approaches for object-oriented DBs, multitier architecture security issues, privacy, aggregation and inference, military applications of secure DBs, and other important implementation issues, such as atomicity, serialization, and view-based controls. Prerequisites: CS3600 and CS3320 and CS3450.

CS4605 Security Policies, Models, and Formal Methods (3-1) Winter/Summer

This course covers the methods used to specify, model, and verify the access control mechanisms of computational systems. The identification of the security policy and its interpretation in terms of a technical policy is covered. Several security policy and access-control models are explored. Prerequisites: CS3650 and CS3600 and CS3601.

CS4610 Information Ethics (3-0) Fall

Rapid and revolutionary advances in IT confront society with novel choices and opportunities. This course attempts to identify the kinds of ethical choices that may arise from its use. While a few may be clear choices, most will be between the greater of goods or the lesser of evils. These choices will be difficult because the values are difficult to identify, the right choices are more difficult than the wrong, and their consequences are neither certain nor easily predicted. Prerequisite: None.

CS4614 Advanced Topics in Computer Security (3-1) Winter/Summer

This course applies graduate-level knowledge and reasoning skills in written essays and verbal discussion of current topics in computer security. Students read academic papers regarding information assurance topics, and discuss issues that they derive from the readings. This pedagogical approach is constructivist in encouraging the students to develop their own viewpoints and conclusions. Prerequisites: CS3600 and CS4600 and CS4605, or consent of the instructor.

CS4615 Formal Analysis of Cryptographic Protocols (3-1) Spring

Cryptographic protocols (such as key-exchange and mutual-authentication protocols) are essential to the security of all distributed computer networks. Such protocols are often simple, but they also often fall to "structural" attacks (attacks that do not need to break the underlying cryptography). This course considers the "protocol analysis problem": finding structural attacks against a protocol (if they exist) or proving their absence (if they do not). We will examine several protocol-analysis techniques and compare their strengths and weaknesses. Advanced topics include (as time permits) protocol-design heuristics, trust-management and higher-level protocol goals, interactions between protocols, computational soundness, and decidability results. Prerequisites: CS3600 or permission of instructor.

CS4650 Application of Security Evaluation Criteria for Information and Software Assurance (3-1) Spring

This course uses the Common Criteria (ISO/IEC 15408) as the framework for an in-depth study of security evaluation philosophies, processes, and issues. Coverage of the Common Criteria include: (1) security requirements taxonomy, (2) requirements derivation methodology, (3) interpretation process, and (4) evaluation methodology performed by evaluators. Examinations of existing Protection Profiles and Security Targets provide insights on domain-specific requirements expression. This course discusses fundamental security principles and disciplines for information and software assurance (e.g., requirements engineering, design principles, formal methods, life cycle management) as applied to security evaluation. Skills and knowledge on the Common Criteria are DoD-relevant regarding the evaluation and validation of IA-enabled components as per DoD Directive 8500.1. Homework reinforces classroom instruction and labs provide practical experience with the use of the Common Criteria from the developer's perspective. Prerequisites: CS3600 and CS4600 or consent of the instructor.

CS4675 Intrusion Detection and Response (3-1) Winter/Summer

This is an introduction to methods of intrusion detection in computer systems and networks and the possible methods of automatic responses to those events. It will cover types of intrusion detection, inference of suspicion, implementation, and management, and will examine at least one specific product. A special focus in response management will be the use of deliberate deception in defense of systems, including the psychology and ethics of deception in general. Prerequisite: CS3600.

CS4677 Computer Forensics (3-2) Fall/Spring

This course covers the fundamentals of computer forensics in the context of DoN/DoD information operations. Students examine how information is stored and how it may be deliberately hidden and/or subverted. Coverage includes: practical forensic examination and analysis, techniques of evidence recovery, legal preparation of evidence, common forensic tools, principle of original integrity, disk examination, and logging. Prerequisites: CS3010 and CS3600 and CS3670.

CS4678 Advanced Vulnerability Assessment (4-2) Winter/Summer

This course provides a basis for understanding the potential vulnerabilities in networked systems by applying a problem-solving approach to: (1) obtaining information about a remote network, (2) possibly exploiting or subverting systems residing on that network, (3) understanding the theory of operation of existing tools and libraries, along with how to measure the effectiveness of those tools, and (4) understanding tools and techniques available for vulnerability discovery and mitigation. Labs provide practical experience with current network attack and vulnerability assessment tools as well as development of new tools. Foot printing, scanning, numeration, and escalation are addressed from the attacker's perspective. A final project that demonstrates skill and knowledge is required. Prerequisites: CS3113 and CS3450 and CS3690, or consent of the instructor. Classification: UNCLASSIFIED FOUO, U.S. only.

CS4680 Introduction to Certification and Accreditation (3-2) Fall/Spring

This course provides an in-depth instruction on the DoD/DoN security certification process. It provides an introduction to the Certification and Accreditation (C&A) process as applied to procurement and lifecycle management of DoD and federal government information systems, with a focus on the role of the Certifier. Topics include the principal C&A roles, functional components, and output documents of the C&A process. Also included is a comparison of the Government C&A process specifications currently in use (DITSCAP/NIACAP, FIPS, DCID 6/3) and the emerging effort aimed at producing a unified specification. In the laboratory portion of the course, students will do 2 or 3 case studies of information systems that have been evaluated under the current DoD criteria in preparation for accrediting to carry sensitive information. The students will study each system from concept through final system certification and accreditation. They will look at and evaluate such things as the security policies, system architecture, the system security architecture, design, implementation, deployment, management, evolution, assurances, etc. through available documentation and other evidence, to determine whether the systems were secure enough to handle the classified information at the appropriate levels of assurance. The case studies will be based on the information available about deployed systems. Prerequisites: CS3600 and CS3670 and CS3690.

CS4800 Directed Study in Advanced Computer Science (0-V) Fall/Winter/Spring/Summer

Advanced group studies in computer science on a subject of mutual interest to students and faculty member. Intended primarily to permit students to pursue in-depth subjects not fully covered in formal class work or thesis research. May be repeated for credit with a different topic. Graded on a Pass/Fail basis only. Prerequisite: Consent of the instructor.

CS4900 Technology and Transformation I (2-0) Winter/Summer

This is a two-quarter course that supports students in the selection of thesis topics with potential for transformation. The thesis process is a microcosm of transformation processes. Topics include: meaning of transformation and innovation, innovation process, skills of innovation, selection of thesis topic, design of an effective thesis document, and organizing an effective writing process. Frequent faculty guest speakers will discuss different research areas and current problems under study. The emphasis in the first quarter is on the range of possible research, and in the second quarter on the transformation process as it applies to theses. Includes weekly readings and exercises. Prerequisite: None.

CS4901 Technology and Transformation II (2-0) Fall/Spring

This is a two-quarter course that supports students in the selection of thesis topics with potential for transformation. The thesis process is a microcosm of transformation processes. Topics include: meaning of transformation and innovation, innovation process, skills of innovation, selection of a thesis topic, design of an effective thesis document, and organizing an effective writing process. Frequent faculty guest speakers will discuss different research areas and current problems under study. The emphasis in the first quarter is on the range of possible research, and in the second quarter on the transformation process as it applies to theses. Includes weekly readings and exercises. Prerequisite: None.

CS4902 Practices of Transformation (0-2) As Required

This course will examine the current and planned research of Computer Science faculty in multiple fields of study. The course is designed to support Computer Science students in their third quarter of study in the selection of an emphasis track and an area for thesis research. Completion of this course requires submission of an approved thesis proposal during finals week. Prerequisite: Computer Science students in third quarter or consent of the department chairman.

CS4910 Advanced Readings in Computer Science (0-V) Fall/Winter/Spring/Summer

(Variable hours 0-2 to 0-8.) Directed readings in computer science on a subject of mutual interest to students and faculty member. The course allows in-depth study of advanced topics not fully covered in formal class work or thesis research. May be repeated for credit with a different topic. Prerequisite: Consent of the instructor.

CS4920 Advanced Topics in Computer Science (3-2) Fall/Winter/Spring/Summer

(Variable hours 2-4 to 4-1.) Designed to support advanced group study of a subject matter of special interest, dependent on faculty availability. Topics will be drawn from areas not covered by other advanced courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic.

CS4921 Advanced Topics in Computer Science I (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support advanced group study of a subject matter of special interest, dependent on faculty availability. Topics will be drawn from areas not covered by other advanced courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic.

CS4922 Advanced Topics in Computer Science II ( V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support advanced group study of a subject matter of special interest, dependent on faculty availability. Topics will be drawn from areas not covered by other advanced courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic.

CS4923 Advanced Topics in Computer Science III (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support advanced group study of a subject matter of special interest, dependent on faculty availability. Topics will be drawn from areas not covered by other advanced courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic.

MV Courses

Place-holder. Do not remove.

<MV Courses MV0810-MV3923>

MV0810 Thesis Research (0-8) As Required

MOVES Thesis Research. Prerequisite: None.

MV0820 Integrated Project (0-12) As Required

The Naval Postgraduate School provides many opportunities for students to participate in campus-wide interdisciplinary projects. These projects encourage students to conceptualize systems which respond to current and future operational requirements. An integral part of the project involves working with other groups to understand and resolve issues involved with system integration and to lend MOVES-specific expertise to these projects. This course is available to Modeling, Virtual Environment and Simulation Students who are participating in a campus-wide integrated project. Course is grade on a Pass/Fail basis. Prerequisite: None.

MV1000 Becoming a Master Learner (3-2) As Required

This course teaches fundamental skills associated with success in higher education, with a focus on improving learning strategies and self-management skills to help students better organize, prepare, and perform effectively in an academic or work environment. The course teaches students to improve study habits, develop critical thinking skills, use time management principles, hone communication skills, and develop their own individual success strategies. The course helps students understand their own cognitive processes, and what strategies work for best for them in order to improve their learning and lead them to successes academically, personally, and in their careers. Graded on a Pass/Fail basis only. Prerequisite: None.

MV2920 Introductory Topics in Modeling, Virtual Environments, and Simulation (V-V) As Required

(Variable hours 2-4 to 4-1.) This course is designed to support introductory subject matter of special interest and is dependent on faculty availability. Topics will typically augment those offered in the basic core courses. This course may be lecture- or lab-oriented, or self-paced, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic. Prerequisite: None.

MV2921 Introduction to Modeling, Virtual Environments, and Simulation (2-0) Fall/Spring

This course is an introduction to the Modeling, Virtual Environments, and Simulation discipline. Topics include Combat Modeling, Networked Visual Simulation, Web-Based Simulation, Agents and Cognitive Modeling, Training Systems, Human Factors, Physically Based Modeling, and Optimization. Graded on a Pass/Fail basis only. Prerequisite: None.

MV3101 Introduction to Department of Defense Modeling and Simulation (4-0) Fall/Spring

This course serves as an important overview course for all students enrolled in the MOVES curricula, in addition to other curricula at NPS. It covers the origin, evolution, breadth and importance of DoD modeling and simulation (M&S), and the utilization of M&S in DoD system acquisition life cycle. The course focuses on the functional areas of DoD M&S, which are: Training, Analysis, Acquisition, Planning, Test, and Evaluation. This course also is offered as SE3101. Prerequisite: None.

MV3202 Introduction to Computer Graphics (3-2) Winter/Summer

This course introduces you to computer graphics — its powerful capabilities, a history of its technologies as well as up-to-date developments, to its far-reaching potentials across the consumer, industrial, and military domains, and how to achieve these potentials. You will learn about the principles of hardware and software used to create computer-generated images, about basic rendering and raytracing, 3D graphics programming in OpenGL, lighting and shading, textures, and scene graph architectures. MV3202 prepares you to design and implement 3D graphics simulations and to understand the theory of modern graphics rendering. The course is intended for students who have taken a basic course in, or have recent programming experience in, a programming language such as C++ or Java. Prerequisite: None.

MV3204 Computer Graphics Modeling Using X3D/VRML (4-0) Winter/Summer

This course provides an introduction to the principles of hardware and software used for computer-generated 3-D graphics via the World Wide Web. The focus of the course is authoring interactive 3-D scenes and a major design project. The course is intended for MOVES and Computer Science students working in visual simulation, or students in other majors interested in the basics of 3-D modeling and rendering. Prerequisites: CS2971 and CS2973, or equivalent.

MV3250 Introduction to Extensible Markup Language (XML) (4-0) Fall/Spring

XML and related technologies provide platform independent representation, description, and validation of data. This is necessary for the data communication among different networks, computers, and applications that is essential for contemporary military and civilian applications. The course will present the benefits of XML and how to use software tools to construct and process XML documents using XML editors, XML parsers, XML Schema for validation, XSLT to transform documents, and DOM, SAX, and JDOM to access and manipulate XML documents within a computer program. Much of the programming code in contemporary computer applications that is used to construct data files, access databases and spreadsheets, check and validate data values, and output data can be replaced by these more general software tools. Prerequisite: None.

MV3472 Graphical Simulation of Physical Systems in Virtual Worlds (3-2) Winter

Design and construction of reusable software modules for real-time computer simulation of physical systems in graphical virtual worlds. Rigid body kinematics and dynamics, perspective transformations, and wire-frame graphical models. Time domain and transform domain analysis of linearized dynamic systems. Laboratory is concerned with development and testing of software. Prerequisites: CS2900 or CS2971 or CS2973 or equivalent; MA3042 or consent of the instructor.

MV3500 Internetwork Communications and Simulation (3-2) As Required

An introduction to network communications in simulation applications. Topics include an introduction to the TCP/IP protocol stack; TCP/IP socket communications, including TCP, UDP, and multicast; and protocol design issues, with emphasis on Distributed Interactive Simulation and High Level Architecture. The emphasis will be on Windows and Web-browser applications. Prerequisites: CS2971 and CS3773.

MV3800 Directed Study in Modeling, Virtual Environments, and Simulation (0-V) As Required

Individual research and study by the student under the supervision of a member of the faculty. The course is intended primarily to permit interested students to pursue in-depth subjects not fully covered in formal class work. Graded on Pass/Fail basis only. Variable hours 0-2 to 0-8. Prerequisite: Consent of the instructor.

MV3920 Topics in Modeling, Virtual Environments, and Simulation (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support s subject matter of special interest, dependent on faculty availability. Topics will either be drawn from areas not covered by core courses or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic. Prerequisite: Consent of the instructor.

MV3922 Introduction to Virtual Environmental Technology (2-0) Winter/Summer

This course is an introduction to the technology used in virtual environments and discusses applications that use virtual environments. It is intended to give the students an introduction to the items they are likely to use throughout the master's degree program in Modeling, Virtual Environments, and Simulation (MOVES). Graded on a Pass/Fail basis only. Prerequisite: MV2921.

MV3923 Introduction to Research and Modeling, Virtual Environments, and Simulation (0-2) Fall/Spring

This course will examine the current and planned research of Modeling, Virtual Environments, and Simulation (MOVES) faculty in multiple fields of study. The course is designed to support MOVES students in the selection of emphasis blocks and an area for thesis research. Graded on a Pass/Fail basis only. Prerequisite: MV3922.

<MV Courses MV4000-MV4302>

MV4000 Hamming: Learning to Learn (3-2) Winter

Richard W. Hamming's original capstone course, EC4000, "Learning to Learn: Future of Science and Engineering" has been fully digitized and placed online. This course presents the distilled career insights of a preeminent thinker. In 1968, Dr. Hamming was the recipient of the Turing Award, the highest honor in computer science, for his work on numerical methods, automatic coding systems, and error-detecting and error-correcting codes. This course is intended to instill a "style of thinking" that will enhance one's ability to function as a problem solver of complex technical issues. With respect, students sometimes called the course "Hamming on Hamming" because he relates many research collaborations, discoveries, inventions, and achievements of his own. This collection of stories and carefully distilled insights relates how those discoveries came about. Most importantly, these presentations provide objective analysis of the thought processes and reasoning that took place as Dr. Hamming, his associates, and other major thinkers in computer science and electronics progressed through the grand challenges of science and engineering in the twentieth century. Prerequisite: None.

MV4001 Human Factors of Virtual Environments (4-1) Winter

This course focuses on human factors issues in virtual environments (VEs). While the similarities of VEs to the real world can often make VE interfaces intuitive and easy to use, the differences between VEs and the real world can often be the cause of serious performance problems and physical inability to effectively use a system. The design of effective VE systems depends on an understanding of humans and their interaction with their environment. Only then can a VE system hope to achieve reasonable performance levels and acceptability. This course will survey the VE literature on issues of human performance, perception, cognition, multimodal interfaces, locomotion, wayfinding, object selection and manipulation, visualization, simulator sickness, and performance differences between individuals. Prerequisite: None.

MV4002 Simulation and Training (4-1) Summer/Winter

This course focuses on training issues in virtual environments (VEs). VEs have often been considered to be general purpose trainers. However, systems are often built without an understanding of how to build a trainer that can verify that it improves subsequent performance without forming bad habits or other reverse training artifacts. This course will first investigate VE training systems from a theoretical perspective, focusing on learning, memory, and cognition. From this framework, actual training systems will be studied with the focus being on an actual study of training transfer of a real training system. Prerequisite: None.

MV4015 Agent-Based Autonomous Behavior for Simulations (4-2) Winter

Covers the concepts and skills required to apply agent-based programming to models and simulations of complex adaptive systems (CAS). Concepts covered will include: complex systems—especially their properties of path dependence, sensitivity to initial conditions, emergence of self-organized structure, adaptation to a changing environment, and criteria for evaluation model or simulation fidelity; distinctions between agent-based methods and other kinds of programming; goal-directed behavior and decision making; situational reasoning and the elements of rational behavior. The course will survey specific works and key contributors to this subject: John Holland, Complexity Science at the Santa Fe Institute, Artificial Life, Brian Arthur (the El Farol Problem and Bounded Rationality), SWARM, Sugarscape, ISAAC, Daniel Dennett (Intentionality), and Richard Dawkins. Within this conceptual and historical framework, the course will emphasize design, specification, and programming skills that will equip the student to know when and how to apply agent-based methods to models and simulations. The programming skills will involve genetic algorithms, classifier systems, applications of game theory and reinforcement learning, and the treatment of collaboration and defection in groups. Finally, the course will discuss agent-based simulations in the context of distributed, virtual environments. Prerequisite: None.

MV4025 Cognitive Behavioral Modeling for Simulations (3-2) Summer

This course focuses on the primary technologies used to model cognition and behavior in order to create agents that represent human beings in simulations. Topics include the dominant technologies in use, the tools used to support them, and their application to the various capabilities required of an agent. The modeling technologies covered include the production-system approaches common in artificial intelligence/cognitive science/psychology, as well as the finite-state, automata-inspired approaches that are part of engineering practice in computer-generated force simulations and the computer entertainment industry. The full scope of the modeling problem will be addressed, from sensation and perception through situation awareness and action selection, to action execution. Approaches to modeling communication and behavior moderators (e.g., experience, emotion, fatigue) will also be discussed. Prerequisite: CS3310.

MV4030 Modeling and Simulation in Ocean Environments (3-2) Spring

This course focuses on modeling and simulation (M&S) issues in ocean environments. While virtual environments (VEs) serve as M&S tools, the design of effective VE systems needs realistic physical environments. This course will cover the basic physics of ocean environments, visualization of the ocean from satellites, visualization of the ocean from Navy METOC model output, METOC information flow in M&S, the impact of the environment on human behavior, and physically-based modeling. Prerequisite: None.

MV4100 Cognitive Engineering (4-1) Winter

This course is about a cognitive approach to engineering systems. It is partly about artificial intelligence and agent-based technologies, and partly about human-computer interaction. The objective is to build intelligent interactive systems where we maximize the performance and capabilities of the combined human-machine system. Prerequisite: None.

MV4205 Advanced 3-D Modeling with X3D/VRML (3-2) Fall/Spring

This course focuses on the primary technologies used to model cognition and behavior in order to create agents that represent human beings in simulations. Topics include the dominant technologies in use, the tools used to support them, and their application to the various capabilities required of an agent. The modeling technologies covered include the production-system approaches common in artificial intelligence/cognitive science/psychology, as well as the finite-state, automata-inspired approaches that are part of engineering practice in computer-generated force simulations and the computer entertainment industry. The full scope of the modeling problem will be addressed, from sensation and perception through situation awareness and action selection, to action execution. Approaches to modeling communication and behavior moderators (e.g., experience, emotion, fatigue) will also be discussed. Prerequisite: None.

MV4250 Advanced Extensible Markup Language (XML) Authoring and Design (4-0) Winter/Summer

MV4250 presents advanced principles and practices for Web-based document design and authoring using XML data structures, XML applications, and XML-based languages. Examples and class projects are typically oriented to problems of broad Navy, military, or scientific interest. Because this new course deals with principles of all Web-based languages, and since XML authoring tools are becoming more intuitive and accessible, MV4250 will be of interest to many other departments and curricula. Prerequisites: OA3250 and MV3250, or sufficient background knowledge of XML.

MV4302 Advanced Discrete Event Simulation Modeling (3-2) Fall/Spring

This course is an in-depth study of modern methods of Discrete Event Simulation (DES) modeling. The focus will be on learning advanced methods for designing and implementing DES models using the most current methodologies, including component-based simulation modeling, listener design patterns, XML and Web-based models. Students will implement a nontrivial DES model of military relevance as a final project. Prerequisite: OA3302.

<MV Courses MV4460-MV4930>

MV4460 Management of Modeling and Simulation Development (4-0) Summer

The purpose of this course is to prepare MOVES students to manage large-scale modeling and simulation projects. The course traces the development life cycle of modeling and simulation systems, including, but not limited to, project management, measurement, life cycle models, requirements, implementation, testing, verification, and deployment of large-scale systems typical of DoD acquisition. Prerequisite: None.

MV4470 Image Synthesis (3-2) Spring

This course covers advanced topics in computer image generation. The focus of the course is quality and realism in computer image synthesis. Topics include illumination, shading, transparency, antialiasing, shadows, raytracing, radiosity, texture mapping, and parametric surfaces. Labs are directed towards providing students with experience working with scene graph architecture. Prerequisites: CS3773 and MV3202, or consent of the instructor.

MV4471 Computer Animation (3-2) Winter

This course covers advanced topics in state-of-the-art, animated, 3-D, computer models. Computational techniques for real-time animation, motion control, interactive key-frame systems, kinematic methods for figure animation, dynamics for figure animation, soft object animation, procedural animation and other high-level approaches will be examined. Labs utilize state-of-the-art animation software and equipment. Prerequisite: MV3202 or MV3204 or consent of the instructor.

MV4472 Physics for Game Developers and Virtual Environments (3-2) Spring

This course enables you to produce convincing graphical virtual reality representations of the motion of vehicles and human actors or avatars. Basic linear algebra and vector-matrix calculus are explained, and the ANSI Common Lisp programming language is used, in the context of examples. This is a hands-on, project-oriented course. After studying basic topics, each student will focus on developing and presenting an individual project during the second part of the course. Prerequisite: MV3472 or equivalent.

MV4474 Virtual Environment Network and Software Architecture (3-2) Spring

This course covers the design and implementation of network and software architectures for real-time, interactive 3-D virtual environments (VEs). Network architecture topics include a taxonomy for networked virtual environments, distributed interactive simulation protocols (DIS and HLA), virtual reality modeling language (VRML), agent-based network protocols (Java/Telescript), proposed solutions for large-scale networked virtual environments (area of interest managers and object brokers), multicast backbone tools and developments, and virtual reality transfer protocol proposals. Software architecture topics include representative software architectures for VEs (NPSNET, DIVE, MASSIVE, etc.), commercial toolkits for VE development (WorldToolKit, Division's dvs, Performer, etc.), lag in multiprocessor virtual environments, and the HCI implications on VE network and software architectures. Prerequisite: MV3500 or consent of the instructor.

MV4655 Introduction to Joint Combat Modeling (4-0) As Required

This course covers the basic tools and concepts of joint combat modeling. Both the science and the art are emphasized. Topics include: the role of combat modeling in analyses, taxonomies of models, an introduction to some important models and organizations, measures of effectiveness, approaches to effectively using models to assist decision making, object-oriented approaches to designing entities to simulate, firing theory, one-on-one and few-on-few engagements, introduction to aggregated force-on-force modeling (including the basic Lanchester model and some of its derivatives), sensing algorithms, simulation entity decision making, simulating C4ISR processes, terrain and movement algorithms, verification, validation, and accreditation (VV&A), stochastic versus deterministic representations, hierarchies of models, and variable resolution modeling. The primary course objective is for you to understand the enduring fundamentals of how combat models are built and used to support decision making. This will be done, in part, through several small projects that will require students to design, implement, and analyze models. Prerequisites: Probability and Statistics (through third course in the sequence), familiarity with a programming language (Java recommended), Stochastic Models (OA3301), Calculus, and concurrent instruction in computer simulation (e.g., OA3302).

MV4657 Modeling and Simulation for Stability, Security, Transition, and Reconstruction (SSTR) Operations (3-2) Fall/Spring

The purpose of this course is to explore the challenges of modeling non-traditional combat for today's war fighters. This course investigates issues, challenges, and opportunities for application of modeling and simulation (M&S) to military support for Stability, Security, Transition, and Reconstruction (SSTR) operations. The course considers application of M&S for SSTR from the perspectives of analysis, training, acquisition, and mission planning/rehearsal. Students are given hands-on experience with current and emerging SSTR M&S simulations and computational tools. Meet prerequisites or consent of the instructor. Prerequisite: MV4655.

MV4800 Directed Studies in Advanced Modeling, Virtual Environments, and Simulation (0-V) As Required

Advanced group studies in modeling, virtual environments, and simulation on a subject of mutual interest to students and faculty member. The primary intent of this course is to permit students to pursue in-depth subjects not fully covered in formal class work or thesis research. This course may be repeated for credit with a different topic. Graded on Pass/Fail basis only. The variable credit hours are 0-2 to 0-8. Prerequisite: Consent of the instructor.

MV4900 Research Seminar in Modeling, Virtual Environments, and Simulation (0-2) As Required

A seminar series designed to give a broad-brush introduction to MOVES. Presentations include the major areas of MOVES and are presented by subject matter experts within MOVES. Also covered are ongoing research projects within MOVES at NPS and around the world. All first and second quarter MOVES students are required to take this course. Prerequisite: None.

MV4910 Advanced Readings in Advanced Modeling, Virtual Environments, and Simulation (0-V) As Required

(Variable credit hours 0-2 to 0-8.) This course is centered on directed readings in modeling, virtual environments, and simulation on a subject of mutual interest to students and faculty member. The course allows in-depth study of advanced topics not fully covered in formal class work or thesis research. This course may be repeated for credit with a different topic. The course can be taken either Pass/Fail or graded. Prerequisite: Consent of the instructor.

MV4920 Advanced Topics in Advanced Modeling, Virtual Environments, and Simulation (V-V) As Required

(Variable credit hours 2-4 to 4-1.) This course is designed to support the advanced group study of a subject matter of special interest, dependent on faculty availability. Topics will be drawn from areas not covered by other advanced courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic.

MV4924 Research Seminar in Modeling, Virtual Environments, and Simulation Fall/Winter/Spring/Summer

The course is designed to provide breadth in MOVES not normally provided by classroom material, as well as focus in major areas of MOVES. Faculty and research staff attend class sessions, providing the opportunity to interact with a broad group once a week, and with a focused group of the student's choosing once a week. Course is expected to be repeated and is required of all MOVES students every quarter starting with their fourth quarter in the curriculum. Graded on a Pass/Fail basis only. Prerequisite: MV3923.

MV4925 Advanced Rendering Techniques for Visual Simulation (2-3) Summer

Currently, the number of transistors on a certain consumer-level graphics processing units exceeds the number of transistors on a Pentium IV processor. Until recently, however, programming these powerful units has been done using a limited assembly-like instruction set targeted for a specific vendor's hardware. This has made cinematic effects difficult to program, update, and transport. Recent developments such as High Level Shading Language (HLSL), Nvidia's C for Graphics (CG), and the OpenGL 2.0 specification could revolutionize the process of programming GPUs. This class will provide an overview of current technology and will explore in-depth its application to DoD. Prerequisite: MV4470 or consent of the instructor.

MV4930 Advanced Topics in Advanced Modeling, Virtual Environments, and Simulation (0-2) As Required

This course is part of the seminar series in advanced research topics in MOVES. Topics are drawn from current student thesis research, funded research projects, proposed research projects, and other research directions within the MOVES Institute. This course is required by all MOVES students in their second quarter and beyond, as well as all CS Graphics Track students. Presentations are made by M.S. and Ph.D. students, as well as by MOVES faculty and researchers. This course may be repeated multiple times. Prerequisite: None.

SW Courses

Place-holder. Do not remove.

<SW Courses SW0810-SW4583>

SW0810 Thesis Research (0-8) As Required

Every student conducting thesis research will enroll in this course.

SW2920 Introductory Topics in Software Engineering (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support introductory subject matters of special interest in software engineering, dependent on faculty availability. Topics will typically augment those offered in the basic core courses. This course may be lecture- or lab-oriented, or self-paced, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic. Prerequisite: Consent of the instructor.

SW3460 Software Methodology (3-1) Winter/Summer

The course is designed to teach students the basic concepts of software engineering and methods for requirements definition, design, and testing of software. Specific topics include introduction to the software life cycle, basic concepts and principles of software engineering, object-oriented methods for requirements analysis, software design, and development. Prerequisite: OO programming experience (CS2900) or consent of instructor.

SW3800 Directed Study in Software Engineering (0-V) As Required

(Variable hours 0-2 to 0-8.) Individual research and study by the student under the supervision of a member of the faculty. The course is intended primarily to permit interested students to pursue in-depth subjects not fully covered in formal class work. Graded on Pass/Fail basis only. Prerequisite: Consent of the instructor.

SW3920 Topics in Software Engineering (V-V) As Required

(Variable hours 2-4 to 4-1.) Designed to support subject matters of special interest in software engineering, dependent on faculty availability. Topics will either be drawn from areas not covered by core courses, or be focused treatments of subjects of limited scope. This course may be lecture- or lab-oriented, with prerequisites determined by the instructor. Students may repeat this course for credit with a different topic. Prerequisite: Consent of the instructor.

SW4150 Programming Tools and Environments (4-0) As Required

This course covers the design and implementation of tools to aid software development, including syntax-directed editors, version-control systems, language-oriented debuggers, symbolic execution vehicles, programming databases, type checkers, and automatic programming tools. These topics are discussed in the context of an integrated, language-oriented, programming environment. Prerequisite: SW4500.

SW4500 Introduction to Formal Methods in Software Engineering (3-1) Fall

This course covers formal methods for specification and analysis of software systems. The course introduces application of mathematical logic to software design, program verification, and formal specification languages. The laboratory sessions will cover special topics and case studies. Prerequisite: SW3460 or consent of the instructor.

SW4510 Computer-Aided Prototyping (3-0) As Required

This course covers the concept and application of computer-aided prototyping to the development and acquisition of DoD software systems. Specific topics include the prototyping software life cycle, system models, design methods, automatic code generation, prototyping languages and tools, and their unique systematic system for increasing productivity, reliability, and portability of software development in comparison with other development methods. Prerequisite: None.

SW4520 Advanced Software Engineering (3-0) As Required

This course covers methods for specifying, designing, and analyzing software systems, with emphasis on automatable techniques and their mathematical basis. The techniques are applied to construct and check programs using a formal specification language. The course concludes with a summary of current research areas in software engineering. Prerequisite: SW4500 or consent of the instructor.

SW4530 Software Engineering Research and Development in DoD (3-1) Summer

This course builds on the material covered in SW4500. Fundamental principles of computer system/network security and distributed computing are covered, along with advanced methods, techniques, and standards aimed at improving the development and acquisition of DoD software systems. Specific topics include: the application of software engineering principles for designing large, secure, embedded real-time computer systems; the application of software engineering principles for the design of distributed systems; automated tools for the specification, design, and generation of code for applications; and existing and emerging standards for software development, security, and acquisition. Prerequisite: SW4500 or consent of the instructor.

SW4540 Software Testing (3-1) Spring

This course covers the theory and practice of testing computer software with the intent of preventing, finding, and eliminating bugs in software. Planning and executing software tests are covered, including requirements-based testing, functional testing, static analysis, code reading, symbolic testing, structural testing, and advanced testing techniques. These topics are discussed in the context of a realistic development environment, illustrated using a variety of software testing tools. Prerequisite: SW3460.

SW4555 Engineering Network Centric Systems (3-1) As Required

This course covers the concepts, methods, techniques, and tools for engineering the development of network centric systems. Specific topics include the evolution of client/server models to distributed objects, an introduction to and comparison of CORBA/OpenDoc and OLE/COM, intelligent software agents, application development in distributed environments, security issues in network centric computing, and DoD software system development. Prerequisite: SW4500.

SW4560 Software Evolution (3-0) Fall

This course covers the concepts, methods, techniques, and tools for supporting the evolution and maintenance of software systems. Specific topics include the use of formal specifications to support software evolution, design databases, configuration management, software change merging, and software re-engineering. Prerequisite: SW4500.

SW4570 Software Reuse (3-0) Spring

This course covers the concepts, methods, techniques, and tools for systematic reuse of software components and systems. Specific topics include design and re-engineering for reuse, mechanisms for enhancing reuse, domain specific reuse and software architectures, reuse of requirements models, specifications and designs, tools for reuse, software library organization, and methods for component search. Prerequisite: SW4500 (can be taken concurrently) or consent of the instructor.

SW4580 Design of Embedded Real-Time Systems (3-0) Summer

This course covers the concepts, methods, techniques, and tools for supporting the design of embedded real-time systems. Specific topics include real-time systems and concurrency models, object-oriented methods for real-time system design, real-time scheduling, and programming language support for concurrent and real-time systems. Prerequisite: SW4500 or consent of the instructor.

SW4581 Software Reliability (3-1) Fall

This course covers the concepts, methods, and techniques for evaluating and improving the engineering of software reliability. Specific topics include system-level dependability and reliability modeling concepts; software reliability prediction and estimation models and metrics; and techniques for model evaluation, fault/failure forecasting, fault removal, fault prevention, and fault tolerance. Prerequisite: SW4500 taken concurrently or consent of the instructor.

SW4582 Weapon System Software Safety (3-1) Fall

This course provides an introduction to software system safety. The course covers the principles and processes of system safety engineering, including the basics of hazard analysis and risk assessment. Emphasis is placed in this course on both planning and managing acquisition programs involving safety-critical software. Concepts and principles are applied to the acquisition of weapon systems. An advanced course in system safety is offered as SW4920. Prerequisite: SW3460.

SW4583 Principles of Software Design (3-1) Winter

The course is designed to teach students the role of design in software engineering. Specific topics include the software system design process, design qualities, principles and strategies, design models, design methods, and the use of patterns in the design of object-oriented software systems. Prerequisite: SW3460.

<SW Courses SW4590-SW4938>

SW4590 Software Architecture (3-1) Winter

This course covers both high- and low-level software architectures, including software patterns and pattern-oriented architectures, from the module level through the enterprise level. Where appropriate, we examine formalisms, and actual software architecture practice. Special attention is given to interoperability of architectural components. Case studies of existing DoD systems are used throughout the course. Prerequisite: SW4500 (can be taken concurrently) or consent of the instructor.

SW4591 Requirements Engineering (3-1) Spring

This is an in-depth treatment of requirements engineering concepts, methods, and tools. The role of requirements engineering within software engineering is explored, as well as consistency, cost-benefit analysis, resolving multiple viewpoints, dependency tracing, and automated decision support. Topics are reinforced with examples from DoD applications. Prototyping is introduced as a means of assessing requirements early in the design process. Prerequisite: SW4500 taken concurrently or consent of the instructor.

SW4592 Software Risk Assessment in DoD (3-1) Summer

This course introduces concepts, techniques, and tools for software risk management. The course examines various risks of software practice and evaluates them in terms of mathematical models (e.g., probability theory). Students learn techniques for mitigating, avoiding, and handling risks throughout the software life cycle. The course depends on software metrics; we also look at reliability theory and its application to sof