Computer science is a discipline concerned with the analysis, design, implementation, maintenance, and evolution of computer-based systems used in almost all walks of life. Computer science is at the center of the information revolution in the 21st century. Advanced computation tools and techniques are revolutionizing and transforming the way we work, play, communicate, collaborate, and conduct business. In addition, computational approaches are integral to several scientific and engineering fields such as computational sciences, bioinformatics, and health informatics, to name a few.

Computer scientists must be well-grounded not only in the theory of computing, but also in its application to diverse areas. Computer scientists must be capable of working closely with members of other professions associated with computing. Students who pursue this discipline will learn about programming languages, data structures, algorithms, operating systems, artificial intelligence, robotics, data mining, computer networking, cyber-security, databases and software engineering.

Department Faculty

Professors

Barbara, Brodsky, J. Chen, S. Chen, Gomaa, Kerschberg, Luke, Menascé, Motro, Offutt, Pullen, Setia (chair), Simon, Sood, Tecuci, Wechsler, Wijesekera

Associate professors

Allbeck, Ammann, Aydin, Domeniconi, Duric, Kosecka, Li, Lien, Lin, T. Maddox, Rangwala, Richards, Shehu, Stavrou, P. Wang, X. Wang, White

Assistant professors

Baldimitsi, Bell, Dobolyi, Gingold, Gordon, Kauffman, Kim, LaToza, Pathak, Snyder, Soundararajan, Zhong

Instructors

Otten, Russell

Adjunct professors

Baldo, Barlow, Batarseh, Conroy, Curts, Dubey, Ellis, Geldon, Greensberg, Greenwald, Guidorizzi, He, Kacem, Kaznachey, King, Kodali, Kowalski, Macdowall, M. Maddox, Molloy, Nidiffer, Norbisrath, Pettit, Rasheed, Shin, Shuman, Smith, Wheeler

Emeritus faculty

Baum, DeJong, Hamburger, Rine, Sibley

Computer Science (CS)

100 Level Courses

CS 100: Principles of Computing. 3 credits.
This course is intended to help students learn to think in the manner necessary to fully grasp the nature and power of the digital world around us. The early era of the Internet and the personal computer led to the need for "computer literacy." Now, the changing nature of our global society requires that students learn new ways to think about problems and how to solve them, regardless of students' specific fields of endeavor. Through this course, students will explore major issues related to the "big ideas" of computational thinking (namely, (i) Creativity, (ii) Abstraction, (iii) Data, (iv) Algorithms, (v) Programming, (vi) Internet, and (vii) Societal Impact), as well as how these issues will impact their future lives. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 101: Preview of Computer Science. 2 credits.
Offers a broad overview of computer science designed to provide students with an introduction to the field of computer science and an orientation to the Computer Science department and the computing environment at the university. Includes a project to introduce problem solving using computers. All computer science majors are required to take this course within their first year. Notes: All computer science majors are required to take this course within their first year. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: CS 112*C.
* May be taken concurrently.
C Requires minimum grade of C.

Enrollment is limited to students with a major in Applied Computer Science or Computer Science.

Enrollment limited to students in a Bachelor of Science degree.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 105: Computer Ethics and Society. 1 credit.
Intensive introduction to legal, social, and ethical issues surrounding software development and computer use. Stresses professional conduct, social responsibility, and rigorous standards for software testing and reliability. Examines issues such as liability, ownership of information, and computer crime. Note: Students who have received credit for CS 305 or 306 should not register for CS 105. No credit will be given for CS 105 if a student has already received credit for CS 305 or 306. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 110: Essentials of Computer Science. 3 credits.
Offers a broad overview of computer science designed to provide computer science majors with an introduction to their discipline. Fundamental computing concepts such as number representation, programming environments, communication tools, and basic network security measures are covered. Privacy and ethical use of computing are also discussed along with guest lectures to sample current computer science research. Note: All computer science majors are required to take this course within their first year as a computer science major. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Enrollment limited to students in the BS Applied Computer Science or BS Computer Science programs.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 112: Introduction to Computer Programming. 4 credits.
Rigorous introduction to problem solving through development of computer programs. Focuses on identifying algorithmic patterns in problems, describing problem solutions in high-level pseudocode, then implementing in a procedural programming language. Basic programming concepts are covered in detail including expressions, control structures, simple data types, and input/output. Program testing and debugging are discussed to verify that problems are solved correctly. Note: The department will drop students who fail to meet the prerequisites. Lectures and Labs are offered in groups. Students MUST register for a lecture and a lab from the same group. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (minimum score of 65 in 'Math Placement Transcendentals', minimum score of 07 in 'Math Placement Transcendentals', MATH 105C, 105T, 104C, 104T or 113C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Laboratory, Lecture

200 Level Courses

CS 211: Object-Oriented Programming. 3 credits.
Thorough treatment of programming according to object-oriented principles. Introduces classes, interfaces, inheritance, polymorphism, and single dispatch as means to decompose problems. Covers intermediate programming techniques including error handling through exceptions, arrangement of source code into packages, and simple data structures. Intermediate debugging techniques and unit testing are covered. Note: Lectures and labs are offered in groups. Students MUST register for a lecture and a lab from the same group. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: (CS 112C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Laboratory, Lecture
CS 222: Computer Programming for Engineers. 3 credits.
Introduction to C as a second programming language with emphasis on problems and language features relevant to engineers. Topics include basic data types, pointers, elementary data structures, file/output, bitwise operations, and Unix commands for compilation and debugging. Intended as terminal course in computer programming. Notes: Intended as terminal course in computer programming. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: (CS 112C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 261: Introduction to a Second Language. 1 credit.
Advanced programming using Java programming language. Other languages may be offered at times. Notes: Not available for credit for CS majors. Offered by Computer Science. Limited to two attempts.
Recommended Prerequisite: Grade of C or better in CS 211.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 262: Introduction to Low-Level Programming. 3 credits.
Introduction to the language C, as well as operating system concepts, in UNIX, to prepare students for topics in systems programming. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 110*C or 101*) and (CS 211C or 222C).
* May be taken concurrently.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Laboratory, Lecture

300 Level Courses

CS 306: Synthesis of Ethics and Law for the Computing Professional. 3 credits.
Practical course to become effective computer professional. Examines legal and ethical issues surrounding computer technology and its use, as well as the foundation building that is necessary to deal with those challenges. Applies philosophical bases for ethical decision making to modern concerns raised by computers and technology. Addresses topics covered by CS 105 in a more intensive manner and focuses on the emerging legal and ethical issues involved in e-commerce and widespread use of the Internet. Notes: Computer science majors may use this course to satisfy the Mason Core synthesis requirement, so long as they have not previously taken CS 305 for credit. Offered by Computer Science. Limited to two attempts. Equivalent to IT 304.
Mason Core: Synthesis
Specialized Designation: Writing Intensive in the Major
Recommended Prerequisite: Junior standing (at least 60 credit hours).
Recommended Corequisite: All required Mason Core courses.
Registration Restrictions:

Required Prerequisites: ((COMM 100C and ENGH 302C) or (HNRS 110C and 122C) or (HNRS 110C and 130C) or (HNRS 110C and 131C) or (HNRS 110C and 230C) or (HNRS 110C and 240C)) and (CS 105C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 310: Data Structures. 3 credits.
Focuses on object-oriented programming with an emphasis on tools and techniques for developing moderate to large programs. Topics include use and implementation of linear and nonlinear data structures and the design and analysis of elementary algorithms. Offered by Computer Science. Limited to two attempts.
Recommended Corequisite: CS 105.
Registration Restrictions:

Required Prerequisites: (CS 211C and MATH 113C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 321: Software Engineering. 3 credits.
An introduction to concepts, methods, and tools for the creation of large-scale software systems. Methods, tools, notations, and validation techniques to analyze, specify, prototype, and maintain software requirements. Introduction to object-oriented requirements modeling, including use of case modeling, static modeling, and dynamic modeling using the Unified Modeling Language (UML) notation. Concepts and methods for the design of large-scale software systems. Fundamental design concepts and design notations are introduced. A study of object-oriented analysis and design modeling using the UML notation. Students participate in a group project on software requirements, specification, and object-oriented software design. Offered by Computer Science. Limited to two attempts. Equivalent to SWE 321.
Specialized Designation: Writing Intensive in the Major
Registration Restrictions:

Required Prerequisites: CS 310C and (ENGH 302C or (HNRS 110C and (HNRS 122C, 130C, 230C or 240C))).
C Requires minimum grade of C.

Enrollment is limited to students with a major, minor, or concentration in Applied Computer Science, Computer Science, Software Engineering or Systems Engineering.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 325: Introduction to Game Design. 3 credits.
Game design, in various electronic entertainment technologies, involves a diverse set of skills and backgrounds from narrative and art to computer programming. Surveys the technical aspects of the field, with an emphasis on programming. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: (CS 211C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 330: Formal Methods and Models. 3 credits.
Abstract concepts that underlie much advanced work in computer science, with major emphasis on formal languages, models of computation, logic, and proof strategies. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 211C and MATH 125C).
C Requires minimum grade of C.

Enrollment is limited to students with a major, minor, or concentration in Applied Computer Science, Computer Science or Software Engineering.

Enrollment limited to students in a Bachelor of Science or Post-Baccalaureate Certificate degrees.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 332: Object-Oriented Software Design and Implementation. 3 credits.
In-depth study of software design and implementation using a modern, object-oriented language with support for graphical user interfaces and complex data structures. Topics covered will be specifications; design patterns; and abstraction techniques; including typing, access control, inheritance, and polymorphism. Students will learn the proper engineering use of techniques such as information hiding, classes, objects, inheritance, exception handling, event-based systems, and concurrency. Offered by Computer Science. Limited to two attempts. Equivalent to SWE 332.
Registration Restrictions:

Required Prerequisite: (CS 310C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 351: Visual Computing. 3 credits.
Focuses on programming essential mathematical and geometric concepts underlying computer graphics. Covers fundamental topics in computational geometry, 3D modeling, graphics algorithms, and graphical user interfaces using both 2D and 3D implementations. Reinforces object-oriented programming practices. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 262C and 310C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 367: Computer Systems and Programming. 4 credits.
Introduces students to computer systems from a programmer's perspective. Topics include data representation, assembly and machine-level representation of high-level language programs, the memory hierarchy, linking, exceptions, interrupts, processes and signals, virtual memory, and system-level I/O. Foundation for courses on compilers; networks; operating systems; and computer architecture, where a deeper understanding of systems-level issues is required. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 262C or 222C) and MATH 125C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture, Recitation
CS 390: Research and Project Design Principles in Computing. 3 credits.
This course introduces students to the research and project design process within the computing field. Students will learn about the tools of the trade, work through design principles beginning with the articulation of a question, reviewing methods of exploration, gathering evidence, communicating results, and assessing and evaluating research or project outcomes. Offered by Computer Science. Limited to two attempts.
Specialized Designation: Scholarly Inquiry
Recommended Prerequisite: CS 310 and CS 321.
Registration Restrictions:

Required Prerequisite: CS 262C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 391: Advanced Programming Lab. 1 credit.
Programming-intensive lab course. Students refine problem-solving and programming skills while gaining experience in teamwork. Focuses on data structures, recursion, backtracking, dynamic programming, and debugging. Central focus is applying familiar and new algorithms and data structures to novel circumstances. Offered by Computer Science. May be repeated within the degree for a maximum 3 credits.
Registration Restrictions:

Required Prerequisite: CS 310C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Laboratory

400 Level Courses

CS 425: Game Programming I. 3 credits.
Introduction to technologies and techniques used in modern computer games. Teams will explore the various facets of a complete design using sophisticated tools. Includes a project in which a game is prototyped; this prototype and initial design will serve as the starting point for the project in CS 426. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C and 351C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 426: Game Programming II. 3 credits.
Project-orientated continuation of CS 425 with an emphasis on the implementation of a complete game. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: CS 325C and 425C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 440: Language Processors and Programming Environments. 3 credits.
Survey of basic programming language processors and software development tools such as assemblers, interpreters, and compilers. Topics include design and construction of language processors, formal syntactic definition methods, parsing techniques, and code-generation techniques. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 330C) and (CS 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 444: Introduction to Computational Biology. 3 credits.
Introduces computational methods in molecular biology. Covers a broad array of topics in bioinformatics and computational biology. Organized as 3 four-week modules intended to capture the current classification of bioinformatics and computational biology methods, thereby providing students with a broad view of the field. Offered by Computer Science. Limited to two attempts.
Recommended Prerequisite: C or better in CS 310.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 445: Computational Methods for Genomics. 3 credits.
Fundamental principles and techniques for implementing computational algorithms to solve problems in biology arising from the need to process large volumes of genomic information. Topics include sequence analysis, alignment, and assembly, gene prediction, and knowledge-based protein structure prediction. Projects involve designing and programming basic alignment and prediction methods. Offered by Computer Science. Limited to two attempts.
Recommended Prerequisite: C or better in CS 310 and STAT 344.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 450: Database Concepts. 3 credits.
Covers basics to intermediate knowledge for the design, implementation, and use of relational database systems. Topics include the Entity-Relationship (ER) and Entity-Enhanced Relationship (EER) models for database design, Relational Algebra (RA), Structured Query Language (SQL), SQL programming techniques, functional dependencies and normalization, object and object-relational databases, and security. Students will practice to design, develop, and implement a relational ORACLE database and use the database for queries, transaction processing, and report generation. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 330C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 451: Computer Graphics. 3 credits.
Basic graphics principles and programming. Topics include scan conversion, transformation, viewing, lighting, blending, texture mapping, and some advanced graphics techniques. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (MATH 203C) and (CS 310C) and (CS 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 455: Computer Communications and Networking. 3 credits.
Data communications and networking protocols, with study organized to follow layers of Internet Protocol Suite (TCP/IP family of protocols). Topics include role of various media and software components, local and wide area network protocols, network performance, and emerging advanced commercial technologies. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 367C) and (STAT 344C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 463: Comparative Programming Languages. 3 credits.
Key programming mechanisms described independently of particular machines or languages, including control, binding, procedural abstraction, types, and concurrency. Includes basic programming competence in several different types of programming languages, including a language that provides concurrency. Notes: Students who have taken CS 363 may not receive credit for CS 463. Offered by Computer Science. Limited to two attempts. Equivalent to CS 363.
Registration Restrictions:

Required Prerequisites: (CS 330C and 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 465: Computer Systems Architecture. 3 credits.
Computer subsystems and instruction set architectures. Single-cycle, multiple-cycle, and pipeline architectures. Memory hierarchy, cache, and virtual memory input-output processing. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: (CS 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 468: Secure Programming and Systems. 3 credits.
Fundamental principles and techniques for implementing secure computer systems. Topics include security and cryptography basics, vulnerability analysis, secure software development, and distributed system security. Projects involve designing and programming basic security tools, secure programs, and distributed systems. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 469: Security Engineering. 3 credits.
Covers the software subsystems that are involved in defending computer systems. Studies threats and architecting solutions against them, including but not limited to access control and identity management, network and system security, intrusion detection and recovery systems, monitoring and forensic systems. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 330C) and (CS 367C) and (STAT 344C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 471: Operating Systems. 3 credits.
Issues in multiprogramming. Covers concurrent processes and synchronization mechanisms; processor scheduling; memory, file, I/O, and deadlock management; performance of operating systems; and projects dealing with synchronization in multiprogrammed OS and virtual memory management. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 367C or ECE 445C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 475: Concurrent and Distributed Systems. 3 credits.
Practical issues in designing and implementing concurrent and distributed software. Topics include concurrent programming, synchronization, multithreading, local and wide-area network protocols, distributed computation, systems integration, and techniques for expressing coarsegrained parallelism at the application level. Projects involve network programming at application level. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 367C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 477: Mobile Application Development. 3 credits.
This project based course will teach fundamental principles of software development for the mobile device environment, emphasizing the application of numerous academic concepts and the new design and programming paradigms that stem from the use of mobile devices. Topics include user interfaces, event-based programming, interprocess communications, networking, mobile-specific capabilities and performance in a resource restricted environment. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: CS 310C and 367C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 480: Introduction to Artificial Intelligence. 3 credits.
Principles and methods for knowledge representation, reasoning, learning, problem solving, planning, heuristic search, and natural language processing and their application to building intelligent systems in a variety of domains. Uses LISP, PROLOG, or expert system programming language. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 330C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 482: Computer Vision. 3 credits.
Basic principles of visual perception and their implementation on computer systems. Topics include early visual processing, edge detection, segmentation, intrinsic images, image modeling, representation of visual knowledge, and image understanding. Students complete projects involving real images. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (MATH 203C) and (STAT 344C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 483: Analysis of Algorithms. 3 credits.
Analyzes computational resources for important problem types by alternative algorithms and their associated data structures, using mathematically rigorous techniques. Specific algorithms analyzed and improved. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (CS 330C) and (MATH 125C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 484: Data Mining. 3 credits.
Basic principles and methods for data analysis and knowledge discovery. Emphasizes developing basic skills for modeling and prediction and performance evaluation. Topics include system design; data quality, preprocessing, and association; event classification; clustering; biometrics; business intelligence; and mining complex types of data. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (CS 310C) and (STAT 344C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 485: Autonomous Robotics. 3 credits.
Covers various basic topics in autonomous robotics, such as autonomous architectures and their interaction with physical hardware, elementary kinematics and robot control, motion and trajectory planning, localization, task planning, learning and adaptation, modeling, and sensor fusion. Includes projects involving physical robots. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: CS 262C, 310C and MATH 203C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 490: Design Exhibition. 3 credits.
Capstone course focusing on design and successful implementation of major software project, encompassing broad spectrum of knowledge and skills, developed by team of students. Requires final exhibition to faculty-industry panel. Offered by Computer Science. May be repeated within the degree for a maximum 12 credits.
Recommended Prerequisite: Two other CS 400-level courses; and senior standing.
Registration Restrictions:

Required Prerequisites: (CS 321C or 421C) and (CS 483C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 491: Industry-Sponsored Senior Design Project. 3 credits.
Senior design project course focusing on design and successful implementation of major software project specified by an industry sponsor, encompassing broad spectrum of knowledge and skills, developed by team of students. Requires final exhibition to faculty-industry panel. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Registration Restrictions:

Required Prerequisites: CS 367C, 321*C and 483*C.
* May be taken concurrently.
C Requires minimum grade of C.

Enrollment is limited to students with a major, minor, or concentration in Applied Computer Science or Computer Science.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
CS 498: Independent Study in Computer Science. 1-3 credits.
Research and analysis of selected problems or topics in computer science. Topic must be arranged with instructor and approved by department chair before registering. Notes: May be repeated if topics substantially different. Offered by Computer Science. May be repeated within the term for a maximum 6 credits.
Recommended Prerequisite: 60 credits, CS major, and Permission of Instructor.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Independent Study
CS 499: Special Topics in Computer Science. 3 credits.
Topics of special interest to undergraduates. Notes: May be repeated if topics substantially different. Offered by Computer Science. May be repeated within the term for a maximum 6 credits.
Recommended Prerequisite: 60 credits and permission of instructor; specific prereqs vary with nature of topic.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture

500 Level Courses

CS 504: Principles of Data Management and Mining. 3 credits.
Techniques to store, manage, and use data including databases, relational model, schemas, queries and transactions. On Line Transaction Processing, Data Warehousing, star schema, On Line Analytical Processing. MOLAP, HOLAP, and hybrid systems. Overview of Data Mining principles, models, supervised and unsupervised learning, pattern finding. Massively parallel architectures and Hadoop. Notes: This course cannot be taken for credit by students of the MS CS, MS ISA, MS SWE, CS PhD or IT PhD programs. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 530: Mathematical Foundations of Computer Science. 3 credits.
This course focuses on the topics of basic mathematical structures, mathematical logic and probability theory; and application of these concepts to problem solving and formal reasoning through hand-on practice with the use of computational tools.Notes: This course is restricted to provisional students. It must be taken in the first semester at GMU. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: MATH 125 and STAT 344.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 531: Fundamentals of Systems Programming. 3 credits.
Introduces systems and network programming for UNIX and Windows using lectures and hands-on labs. Covers ANSI C programming, system libraries and APIs, forking and threads, interprocess communications, synchronization, Windows API, and code debugging Offered by Computer Science. May not be repeated for credit. Equivalent to ISA 563.
Recommended Prerequisite: CS 310 or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 540: Language Processors. 3 credits.
Basic programming language processors such as assemblers, interpreters, and compilers. Topics include design and construction of language processors, formal syntactic definition methods, parsing techniques, and code generation techniques. Lab includes construction of language processors and experience with programming environments. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: MATH 125 and CS 310 and CS 330 and CS 465.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 550: Database Systems. 3 credits.
An introduction to database management with focus on architecting databases and using them in applications. Topics to be covered include: data modeling with the Entity-Relationship model, the relational data model and its formal languages, SQL, the theory of database design, object databases, XML and Web data. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: (CS 310 and CS 330) or (INFS 501 and INFS 515 and INFS 519 and SWE 510).
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 551: Computer Graphics. 3 credits.
Graphics principles and programming. Topics include graphics hardware, antialiasing, transformations, viewing, illumination, blending, texture mapping, color models, curves, surfaces, and animation. Offered by Computer Science. May not be repeated for credit. Equivalent to CS 652.
Recommended Prerequisite: CS 310 and CS 367.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 555: Computer Communications and Networking. 3 credits.
Techniques and systems for communication of data between computational devices and layers of Internet Protocol Suite. Topics include role of various media and software components, local and wide area network protocols, network design, performance and cost considerations, and emerging advanced commercial technologies. Emphasizes TCP/IP family of protocols. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: CS 310 and CS 367 and STAT 344.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 571: Operating Systems. 3 credits.
Models of operating systems. Major functions including processes, memory management, I/O, interprocess communication, files, directories, shells, distributed systems, performance, and user interface. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: CS 310 and CS 367 and CS 465.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 580: Introduction to Artificial Intelligence. 3 credits.
Principles and methods for knowledge representation, reasoning, learning, problem solving, planning, heuristic search, and natural language processing and their application to building intelligent systems in a variety of domains. LISP, PROLOG, or expert system programming language. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: CS 310 and CS 330.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 583: Analysis of Algorithms. 3 credits.
Topics include analyzing sequential and parallel algorithmic strategies such as greedy methods, divide and conquer strategies, dynamic programming, search and traversal techniques, and approximation algorithms; and analyzing specific algorithms falling into these classes, NP-Hard and NP-Complete problems. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: CS 310 and CS 330 and MATH 125.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 584: Theory and Applications of Data Mining. 3 credits.
Concepts and techniques in data mining and multidisciplinary applications. Topics include databases; data cleaning and transformation; concept description; association and correlation rules; data classification and predictive modeling; performance analysis and scalability; data mining in advanced database systems, including text, audio, and images; and emerging themes and future challenges. Offered by Computer Science. May not be repeated for credit. Equivalent to CS 659, CS 750.
Recommended Prerequisite: CS 310 and STAT 344.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture

600 Level Courses

CS 600: Theory of Computation. 3 credits.
Introduction to logic and proof techniques, formal languages, automata theory, and computational complexity. Specific topics include regular and context-free languages, Turing machines, NP-completeness, and undecidability. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 611: Computational Methods for Genomics. 3 credits.
Covers fundamental principles and techniques for implementing computational algorithms to solve problems in biology arising from the need to process large volumes of genomic information. Topics include sequence analysis, alignments, sequence assembly, gene prediction, and protein structure prediction. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 630: Advanced Algorithms. 3 credits.
Provides an overview of advanced algorithm design and analysis techniques. Topics include algorithms for hash tables, matrix operations, number theory, string matching, computational geometry, combinatorial optimization, and linear programming; also the areas of NP-completeness and approximation algorithms. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 633: Computational Geometry. 3 credits.
Basic principles and methods for computing in field of geometric modeling. Emphasizes data structures used to represent geometric objects and algorithms for manipulating those data structures. Topics include range searching, polygon triangulation, convex hulls, motion-planning, visibility, and mesh generation. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 635: Foundations of Parallel Computation. 3 credits.
Covers three major parallel computing paradigms: MIMD computation, SIMD computation, and data flow computation. Emphasizes interfaces between algorithm design and implementation, architecture, and software. Examines parallel algorithms and parallel programming languages relative to architecture of particular parallel computers. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Proficiency in C programming language.
Registration Restrictions:

Required Prerequisites: (CS 583B- and 571B-).
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 640: Advanced Compilers. 3 credits.
Examines advanced compiler techniques such as code optimizations for sequential and parallel machines; compilers for logical, functional, or object-oriented languages; and other topics in current literature. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 540B- and 583B-).
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 650: Advanced Database Management. 3 credits.
Study of the internal architecture of database systems. Topics include: physical data organization and indexing, query processing and optimization, transaction processing, database system architectures, Web services and Web data security. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 550B- or INFS 614B-).
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 657: Mining Massive Datasets with MapReduce. 3 credits.
Covers the techniques to mine large datasets, including Distributed File Systems and Map-Reduce, similarity search, and data stream processing. Covers classic problems in data mining, such as clustering, association rule mining, and others from the point of view of scalability. Includes a final project to exercise concepts covered in class. Offered by Computer Science. May not be repeated for credit. Equivalent to CS 757.
Registration Restrictions:

Required Prerequisite: CS 584B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 658: Networked Virtual Environments. 3 credits.
Networked virtual environment overview, networking and multimedia concepts, virtual simulation concepts, efficiency/performance issues, and online conferencing/virtual classrooms. Course is based around a project with multiple segments, each covering one aspect of networked virtual environments, plus a final session where one- or two-person teams create a minimally functional networked virtual environment over the Internet using multicast network software. Lectures available online/recorded. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 555B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 662: Computer Graphics Game Technologies. 3 credits.
Addresses some graphics game techniques including collision detection, levels of detail, physics-based simulations, textures, maps, and shadows. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 551B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 667: Biometrics and Identity Management. 3 credits.
Basic principles and methods for automatic authentication of individuals. Technologies include face, fingerprint, and iris recognition; and speaker verification. Additional topics cover multimodal biometrics, system design, performance evaluation, and privacy concerns. Term project required. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 580B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 672: Computer System Performance Evaluation. 3 credits.
Theory and practice of analytical models of computer systems. Topics include open and closed multiclass queuing networks, single and multiple class Mean Value Analysis, Markov Chains, performance and availability models of Internet data centers, software performance engineering, and e-commerce performance. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 571B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 673: Multimedia Computing and Systems. 3 credits.
Focuses on technological and development environments in developing multimedia applications. Projects involve experience with multimedia authoring tools and simulations to assess performance. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 571B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 674: Data Mining on Multimedia Data. 3 credits.
Covers advanced techniques for managing, searching, and mining of various types of data such as text, web links, images, time series, video, and audio. Issues related to handling such data will be discussed, including feature selection, high dimensional indexing, interactive search and information retrieval, pattern discovery, and scalability. Offered by Computer Science. May not be repeated for credit. Equivalent to CS 780.
Registration Restrictions:

Required Prerequisite: CS 584B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 675: Distributed Systems. 3 credits.
Issues in design and implementation of distributed systems and applications. Topics include distributed communication paradigms, middleware, coordination and synchronization, distributed transactions, consistency and replication, fault-tolerance and reliability, and peer-to-peer systems. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 571B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 681: Knowledge Engineering. 3 credits.
Design, construction, and evaluation of software systems that solve problems generally deemed to require human expertise. Topics include modeling expert's knowledge, reasoning based on knowledge and evidence, ontology design and development, rule learning, and knowledge-based maintenance. Programming projects include development of tools or small-scale systems. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 580B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 682: Computer Vision. 3 credits.
Study of computational models of visual perception and their implementation in computer systems. Topics include early visual processing, edge detection, segmentation, intrinsic images, image modeling, representation of visual knowledge, and image understanding. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 580B- and 583B-).
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 683: Parallel Algorithms. 3 credits.
Examines design and analysis of parallel algorithms. Material focuses on algorithms for both theoretical and practical models of parallel computation. Considers algorithm design and analysis for PRAM and existing SIMD and MIMD type architectures. Topics include sorting, graph algorithms, numerical algorithms, and computational complexity. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 684: Graph Algorithms. 3 credits.
Data structures and analytical techniques to study graph algorithms. Data structures include disjoint sets, heaps, and dynamic trees. Algorithms include minimum spanning trees, shortest path, maximum flow, and graph planarity. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 685: Autonomous Robotics. 3 credits.
Reviews developments in intelligent autonomous systems. Studies applications of artificial intelligence, computer vision, and machine learning to robotics. Topics include analysis and design of algorithms and architectures for planning, navigation, sensory data understanding, sensor fusion, spatial reasoning, motion control, knowledge acquisition, learning concepts and procedures, self-organization, and adaptation to environment. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 580B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 686: Image Processing and Applications. 3 credits.
Concepts and techniques in image processing. Discusses methods for image capture, transformation, enhancement, restoration, and encoding. Students complete projects involving naturally occurring images. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 687: Advanced Artificial Intelligence. 3 credits.
Explores foundational issues of artificial intelligence, such as roles of knowledge and search, formalization of knowledge and inference, and symbolic versus emergent approaches to intelligence. Studies advanced programming techniques for artificial intelligence, relationship to foundational issues, and important application areas for artificial intelligence. Notes: Major programming project required. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 580B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 688: Pattern Recognition. 3 credits.
Explores statistical pattern recognition and neural networks. Pattern recognition topics include Bayesian classification and decision theory, density (parametric and nonparametric) estimation, linear and nonlinear discriminant analysis, dimensionality reduction, feature extraction and selection, mixture models and EM, and vector quantization and clustering. Neural networks topics include feed-forward networks and back-propagation, self-organization feature maps, and radial basis functions. Emphasizes experimental design, applications, and performance evaluation. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: CS 580B- or 584B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 689: Planning Motions of Robots and Molecules. 3 credits.
Covers topics from artificial intelligence, algorithms and databases. Presents algorithms that model and simulate physical and biological systems and focuses on motion-planning algorithms for robotic systems in the presence of obstacles. Simple deterministic and sampling-based approaches to motion planning will be covered, as well as advanced planning methods including planning with kinematics and dynamic constraints. Selected topics include sensor-based motion planning, manipulation planning, assembly planning, planning under uncertainty and robotics-inspired methods to compute functionally-relevant motions of molecular chains. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 583B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 695: Topics in Computer Science. 3 credits.
Special topics in computer science not occurring in regular computer science sequence. Notes: May be repeated for credit when topics are distinctly different. Offered by Computer Science. May be repeated within the term.
Recommended Prerequisite: Completion of at least two core courses and permission of the instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 697: Independent Reading and Research. 1-3 credits.
Students may undertake a course of study under supervision of consenting faculty member. Students usually submit written statement of course content and tentative reading list as part of request for approval. Literature review, project report, or other written product usually required. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Completion of at least two core courses, and permission of the instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research

700 Level Courses

CS 700: Quantitative Methods and Experimental Design in Computer Science. 3 credits.
Integrated treatment of models and practices in experimental computer science. Topics include scientific methods applied to computing, workload characterization, forecasting of performance and quality metrics of systems, uses of analytic and simulation models, design of experiments, interpretation and presentation of experimental results, hypothesis testing, and statistical analyses of data. Involves one or more large-scale projects. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Doctoral status and at least two 600-level courses offered by the Computer Science Department.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 706: Concurrent Software Systems. 3 credits.
Topics include concurrent programming languages and constructs, and specification, design, verification, and validation of concurrent programs. Students required to solve concurrent programming problems and check solutions by using verification, testing, and debugging tools. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 571B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 719: Scalable Internet Services. 3 credits.
Discusses, from quantitative point of view, characteristics of most important technologies used to support implementation of e-business sites. Includes topics such as hardware and software architectures of e-business sites, authentication, payment services, understanding customer behavior, workload characterization, scalability analysis, and performance prediction. Notes: Term paper and project required. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 555B- and 571B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 752: Interactive Graphics Software. 3 credits.
Advanced graphics methods and tools. Topics include visualization, modeling, rendering, animation, simulation, virtual reality, graphics software tools, and current research topics. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 551B- and 583B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 755: Advanced Computer Networks. 3 credits.
Current and emerging issues in advanced computer networks and applications. Topics include software systems associated with packet and cell-switched networking architectures and protocols, high-performance LANs, scheduling and congestion control, mobile networking, multimedia applications, and next generation of Internet. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 555B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 756: Performance Analysis of Computer Networks. 3 credits.
Analytical, measurement, and simulation techniques for modeling and analyzing computer networks. Examines elementary queuing analysis; networks of queues; routing and flow controls; and applications to local and wide area networks, Internet, and emerging networking technologies. A large portion of the course is devoted to projects, normally performed in student teams, who apply the techniques presented. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 555B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 773: Real-Time Systems Design and Development. 3 credits.
Real-time systems and principles supporting design and implementation. Emphasizes fundamental results from real-time scheduling theory and relevance to computer system design. Topics include system design issues for real-time applications involving operating systems, communication networks, databases, and multimedia Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 571B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 774: Computational Vision. 3 credits.
Studies recent advances in development of machine vision algorithms and knowledge-based vision systems. Topics include scalespace; Gabor and wavelet processing; distributed and hierarchical processing using neural networks; motion analysis; active, functional, and selective perception; object and target recognition; expert systems; data fusion; and machine learning. Emphasizes system integration in terms of perception, control, action, and adaptation. Presents applications to robotics, intelligent highways, inspection, forensic, and data compression. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 682B- and 686B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 775: Advanced Pattern Recognition. 3 credits.
Covers statistical pattern recognition, neural network, and statistical learning theory approaches. Topics include decision theory and Bayes' theorem, density (parametric and nonparametric) estimation, linear and nonlinear discriminant analysis, SVM and kernel methods, SRM and model selection, performance evaluation, mixture of experts (AdaBoost), dimensionality reduction, feature selection and extraction, and clustering. Emphasizes experimental design, applications, and performance evaluation. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: CS 688B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 777: Human-Computer Intelligent Interaction. 3 credits.
Current and emerging issues in human-computer intelligent interaction, and human-centered systems and their applications. Topics include video processing, visualization, virtual environments, adaptation and tutoring, image and scene modeling, analysis and synthesis, face and gesture recognition, and speech and natural language processing. Notes: Term project and topical review required. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 580B- and 551B-) or (CS 682B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 779: Topics in Resilient and Secure Computer Systems. 3 credits.
Covers study of alternate computer security, including how these methods can be combined in a layered defense and factors that affect the selection of the architectures. Reviews recent papers and reports. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: CS 571B- or ISA 562B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 782: Machine Learning. 3 credits.
Surveys machine learning concerning development of intelligent adaptive systems that are able to improve through learning from input data or from their own problem-solving experience. Topics provide broad coverage of developments in machine learning, including basic learning strategies and multistrategy learning. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 681B-, 687B- or 688B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 787: Decision Guidance Systems. 3 credits.
Decision-guidance systems support an iterative process of giving actionable recommendations to and extracting feedbacks from human decision-makers, with the goal of arriving at the best possible course of action. Focuses on models, languages, algorithms and applications of Decision-Guidance Management Systems, used for fast development of decision-guidance applications. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (INFS 614B- or CS 550B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 788: Autonomic Computing. 3 credits.
Studies self-managing, self-optimizing, self-configuring, self-tuning, self-healing, and self-protecting computing systems. This course analyzes many examples of autonomic systems as well as various techniques to design and build such systems. This is a doctoral seminar based on reading and analysis of current papers. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 555B-, 571B- or ISA 562B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 795: Advanced Topics in CS. 3 credits.
Advanced topics not occurring in regular sequence. Notes: May be repeated for credit when subject differs. Satisfies MS breadth requirement only if explicitly stated in syllabus in given section. Only one such course should be used for breadth requirements. Offered by Computer Science. May be repeated within the term.
Recommended Prerequisite: Admission into computer science PhD program.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 798: Project Seminar. 3 credits.
Master's degree candidates undertake a project using knowledge gained in MS program. Notes: Topics chosen in consultation with advisor. Meets project or thesis requirement for MS in computer science. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: 18 hours of credit applicable toward the M.S. in computer science.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis
CS 799: Thesis. 1-6 credits.
Original or expository work evaluated by committee of three faculty members. Offered by Computer Science. May be repeated within the degree.
Recommended Prerequisite: 18 hours of credit applicable toward the M.S. in Computer Science.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis

800 Level Courses

CS 800: Computer Science Colloquium. 0 credits.
Students are required to attend colloquia including talks by distinguished speakers, faculty candidates, and Mason faculty. Notes: This course introduces PhD students to research topics in computer science. This course can be taken twice for credit. Offered by Computer Science. May be repeated within the degree for a maximum 2 credits.
Registration Restrictions:

Enrollment is limited to students with a major in Computer Science.

Enrollment is limited to Graduate level students.

Enrollment limited to students in a Doctor of Philosophy degree.

Enrollment limited to students in the Volgenau School of Engineering college.

Schedule Type: Seminar
CS 811: Research Topics in Machine Learning and Inference. 3 credits.
Presents unifying principles that underlie diverse methods, paradigms, and approaches to machine earning and inference. Reviews most known learning and inference systems, discusses strengths and limitations, and suggests most appropriate areas of application. Hands-on experience by experimenting with state-of-the-art learning and inference systems and working on projects tailored to research interests. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (CS 681B-, 687B- or 688B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 818: Topics in Computer Systems. 3 credits.
Discussion of current research topics in computer systems. Topics vary according to faculty interest. Possible topics include peer-to-peer computing, high-performance distributed computing, sensor and ad hoc networks, autonomic computing, virtualization, and web services and middleware. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 880: Research Topics in Artificial Intelligence. 3 credits.
Special topics in artificial intelligence not occurring in regular computer science sequence. Notes: Requires substantial student participation. Subject matter may include continuation of existing 600- or 700-level courses in artificial intelligence or other topics. May be repeated for credit when subject matter differs. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Seminar
CS 884: Advanced Topics in Computer Vision and Robotics. 3 credits.
Covers recent developments. Topics motivated by applications to autonomous robotic systems, mobile robot navigation, multirobot systems, human-computer-environment interaction, image/video search and analysis, content discovery, and visual surveillance. Topics include 3D structure and motion recovery, motion understanding, map building and localization, object detection and recognition, and target tracking. Projects and experimental evaluation emphasized. Notes: Course may be repeated with change of topic. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Registration Restrictions:

Required Prerequisites: (CS 682B- or 685B-).
B- Requires minimum grade of B-.

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 895: Research Topics in CS. 3 credits.
Advanced topics not occurring in regular sequence. Notes: May be repeated for credit when subject differs. Only one such course should be used for breadth requirements. Offered by Computer Science. May be repeated within the term.
Recommended Prerequisite: Doctoral status.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
CS 896: Directed Reading and Research. 1-6 credits.
Reading and research on a specific topic under the direction of a faculty member. Notes: Students can sign up for this class only after passing the CS PhD qualifying exams. Offered by Computer Science. May be repeated within the degree for a maximum 18 credits.
Recommended Prerequisite: Permission of Instructor.
Registration Restrictions:

Enrollment limited to students in the PHD Computer Science program.

Enrollment is limited to Graduate level students.

Enrollment limited to students in a Doctor of Philosophy degree.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research

900 Level Courses

CS 990: Dissertation Topic Presentation. 0 credits.
Students put together a professional presentation of a research proposal and present it for critique to fellow students and interested faculty. Notes: Must be completed before the presentation of a dissertation research proposal. Offered by Computer Science. May not be repeated for credit. Equivalent to IT 990, STAT 990.
Recommended Prerequisite: Student must have passed the PhD qualifying examinations.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research
CS 998: Doctoral Dissertation Proposal. 1-12 credits.
Work on a research proposal that forms the basis for a doctoral dissertation. Notes: No more than 24 credits of CS 998 and 999 may be applied to the doctoral degree requirements. Offered by Computer Science. May be repeated within the degree.
Recommended Prerequisite: Student must have passed the PhD qualifying examinations and must have a dissertation advisor.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Dissertation
CS 999: Doctoral Dissertation. 1-12 credits.
Dissertation research under the supervision of the dissertation director. Notes: No more than 24 credits of CS 998 and 999 may be applied to the doctoral degree requirements. Offered by Computer Science. May be repeated within the degree.
Recommended Prerequisite: Admission to candidacy.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy.

Enrollment is limited to Graduate level students.

Enrollment limited to students in the Volgenau School of Engineering college.

Schedule Type: Dissertation

Information Systems (INFS)

500 Level Courses

INFS 501: Discrete and Logical Structures for Information Systems. 3 credits.
Study of discrete and logical structures for information systems analysis and design including basic set theory and proof techniques, propositional and predicate logic, trees and graphs, finite state machines, formal languages and their relation to automata, computability and computational complexity, formal semantics-operational, axiomatic and denotational approaches. Notes: Credit cannot be applied to a graduate degree in the Volgenau School or the BS degree in computer science. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Completion of 6 hrs of undergraduate mathematics.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Schedule Type: Lecture
INFS 515: Computer Organization Course and Operating Systems. 3 credits.
Computer hardware architecture concepts including number systems, machine representation of numbers, instruction set formats, addressing techniques, memory organization, internal processor structure and operation. Symbolic assembly language fundamental operating systems concepts: process synchronization and scheduling, interprocess communication, memory management, virtual memory, deadlocks, file I/O and disk management, and LINUX operating system case studies. Notes: Credit cannot be applied to a graduate degree in the Volgenau School or the BS degree in computer science. Offered by Computer Science. May not be repeated for credit. Equivalent to ECE 445.
Recommended Prerequisite: Undergraduate courses or equivalent knowledge in structured programming in a high-level language.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Schedule Type: Lecture
INFS 519: Program Design and Data Structures. 3 credits.
Study of the fundamentals of data structures and algorithms applied in programming solutions to application problems. The course stresses programming in a modern high-level language. Laboratory required. Notes: Credit cannot be applied to a graduate degree in the Volgenau School or the BS degree in computer science. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Undergraduate courses or equivalent knowledge in structured programming in a high-level language.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Schedule Type: Lecture

600 Level Courses

INFS 612: Principles and Practices of Communication Networks. 3 credits.
Introduces principles of computer networks and applications to Internet. Discusses details of layering, protocols, performance, resource allocation, management, security and other contemporary issues related to networks. Examples of course material are protocols such as HTTP(S), DNS, TCP/IP, RSVP, SNMP, algorithms such as Dijkstra's link state routing; and security measures such as firewalls and encryption, the principles behind them and analysis of performance. Notes: No substitutions can be made for this class. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, 519, and SWE 510, or equivalent
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 614: Database Management. 3 credits.
Introduces database systems, emphasizing study of database models and languages and practice of database design and programming. Topics include Entity-Relationship model, relational model and its formal query languages, SQL, theory of relational database design, and object-oriented and logic-based databases. Notes: Requires computing lab. No substitutions can be made for this class. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, 519, and SWE 510, or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 622: Information Systems Analysis and Design. 3 credits.
Integration of computing technologies, systems analysis, system design practices, and management criteria in the design of large-scale information management and decision-support systems. Includes cases, computing lab. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, and 519, or equivalent
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 623: Web Search Engines and Recommender Systems. 3 credits.
Study of Web search engines and recommender systems. Topics to include classical information retrieval methods, Boolean retrieval systems, ranked retrieval, performance metrics, Web crawling, link analysis, overall search engine architecture, fundamentals and classification of recommender systems, learning user interests and object properties, and case studies. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, 519, and SWE 510.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 640: Introduction to Electronic Commerce. 3 credits.
Studies electronic commerce from both managerial and technical perspectives. Topics include e-commerce models and concepts; Internet and web protocols and infrastructure; e-commerce marketing and branding; security protocols and standards; e-commerce payment systems; and case studies of business-to-consumer, business-to-business, consumer-to-consumer, and e-government. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, and 519; and SWE 510 or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 697: Topics in Information Systems. 1-6 credits.
Presents special topics in information systems not occurring in regular INFS sequence. Notes: May be repeated for credit when distinct offerings of course differ in subject. Offered by Computer Science. May be repeated within the degree.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture

700 Level Courses

INFS 740: Database Programming for the World Wide Web. 3 credits.
Information systems accessible through web and Internet are becoming prevalent. Course focuses on technologies and industry standards for accessing and manipulating persistent data that are suitable for web applications. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 614.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 760: Advanced Database Management. 3 credits.
Study of advanced database models and languages, database design theory, transaction processing, recovery, concurrency, distributed database, and security and integrity. Discusses recent developments and research directions. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 614.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 770: Knowledge Management for E-Business. 3 credits.
Addresses knowledge management (KM) from managerial, technical viewpoints in context of large organizations doing business over web and Internet. Topics include KM life cycle for knowledge creation, aggregation, dissemination, and sharing; ontology modeling, design, and engineering; role of standards such as XML, RDF, web services, and semantic web for e-business; business rules and reasoning engines; and digital rights management for e-business. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 622 or permission of instructor.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 772: Intelligent Agents and the Semantic Web. 3 credits.
Course covers the role of intelligent agents in cooperating to access, harvest, sift and winnow information and knowledge from the semantic web. Topics include agent architectures, practical reasoning and deductive agents, beliefs-desires-intentions (BDI) framework for agent reasoning, commitments and actions; Semantic Web ontology languages, description logics, reasoning and rule languages; and agent communication languages, protocols and standards. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 614
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 774: Enterprise Architecture. 3 credits.
This course presents the basic concepts and methodologies for the discipline known as Enterprise IT Architecting within a framework, structure, and methodology. Enterprise IT Architecting is a necessary step for designing and developing a system of information systems. It includes the definition of the business, work, functional, information and technical perspectives. As such, it is the enabling approach for the system development process that builds complex information systems. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 622 or permission of instructor.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 796: Directed Readings in Information Systems. 3 credits.
Research and analysis of contemporary problem in information system development. Notes: To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Prior approval required by faculty sponsor who supervises student's work. Written report required.. Offered by Computer Science. May be repeated within the term for a maximum 12 credits.
Recommended Prerequisite: Graduate standing in information systems, with at least 12 prior credits in MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research
INFS 797: Advanced Topics in Information Systems. 1-6 credits.
Special advanced topics not occurring in regular INFS sequence. Notes: May be repeated for credit when distinct offerings of course differ in subject. Offered by Computer Science. May be repeated within the degree.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
INFS 798: Research Project. 3 credits.
Research project chosen under guidance of full-time graduate faculty member, resulting in written technical report. Notes: To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Prior approval required by faculty sponsor who supervises student's work. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: 18 credits applicable toward MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis
INFS 799: Thesis. 1-6 credits.
Original or compilary work evaluated by a committee of three faculty members. Notes: To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Offered by Computer Science. May be repeated within the degree.
Recommended Prerequisite: 18 credits applicable toward MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis

Information Security and Assurance (ISA)

500 Level Courses

ISA 562: Information Security Theory and Practice. 3 credits.
A technical introduction to the theory and practice of information security, which serves as the first security course for the MS-ISA degree, is required as a prerequisite for all subsequent ISA courses (at the 600 and 700 levels) and subsumes most topics covered by the CISSP examination. Also serves as an entry-level course available to non-ISA students, including MS-CS, MS-IS, and MS-SWE students. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: INFS 501, 515, 519, and SWE 510, or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 564: Security Laboratory. 3 credits.
Provides hands-on experience in configuring and experimenting with commodity-networked systems and security software in a live laboratory environment, with the purpose of understanding real-world security threats. Takes both offensive and defensive approaches and exposes students to a variety of real-world attacks, including viruses, worms, rootkits, and botnets. Possible mitigation and defending mechanisms, such as firewalls and intrusion detection software, also covered. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: ISA 562 and CS 531 or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Laboratory

600 Level Courses

ISA 650: Security Policy. 3 credits.
Focuses on security policy and its management for information systems having national and international connectivity. Issues include legal, international, cultural, and local factors. Students are expected to participate regularly in presenting material, in discussion of recent security issues, and by writing short papers on major current issues. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: ISA 562B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 652: Security Audit and Compliance Testing. 3 credits.
Presents the fundamental concepts of the IT-security audit and control process that is being conducted in a plethora of environments, including government, the financial industry, and the healthcare industry. The goal of this course is to enable the students to structure and perform audits based on the specifications of Sarbanes-Oxley, HIPAA, and FISMA audit programs. Covers all the CISA certification requirements in depth. Students completing the course are encouraged to attempt the certification exam on their own. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: ISA 562B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 656: Network Security. 3 credits.
An in-depth introduction to the theory and practice of network security. It assumes basic knowledge of cryptography and its applications in modern network protocols. Studies firewalls architectures and virtual private networks and provides deep coverage of widely used network security protocols such as SSL, TLS, SSH, Kerberos, IPSec, IKE, and LDAP. It covers countermeasures to distributed denial of service attacks, security of routing protocols and the Domain Name System, e-mail security and spam countermeasures, wireless security, multicast security, and trust negotiation. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (ISA 562B- and INFS 612B-) or CS 555B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 673: Operating Systems Security. 3 credits.
Covers fundamentals and advanced topics in operating system (OS) security, including OS-level security mechanisms and policies in investigating and defending against real-world attacks on computer systems, such as self-propagating worms and large-scale botnets. Basic OS security techniques, such as logging, system call auditing, and memory protection, will be discussed. Recent advanced techniques, such as honeypots and honeyfarms, system randomization, vulnerability fingerprinting, and virtualization, will also be introduced. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: ISA 562.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 674: Intrusion Detection. 3 credits.
Studies methodologies, techniques, and tools for monitoring events in computer system or network, with the objective of preventing and detecting unwanted process activity and recovering from malicious behavior. Topics include types of threats, host-based and network-based information sources, vulnerability analysis, denial of service, deploying and managing intrusion detection systems, passive versus active responses, and designing recovery solutions. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: ISA 564B- and 656B-.
B- Requires minimum grade of B-.

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 681: Secure Software Design. 3 credits.
Theory and practice of software security, focusing in particular on some common software security risks, including buffer overflows, race conditions and random number generation, and the identification of potential threats and vulnerabilities early in the design cycle. Emphasis is on methodologies and tools for identifying and eliminating security vulnerabilities, techniques to prove the absence of vulnerabilities, and ways to avoid security holes in new software and on essential guidelines for building secure software. Explores how to design software with security in mind from the ground up and integrate analysis and risk management throughout the software life cycle. Offered by Computer Science. May not be repeated for credit. Equivalent to SWE 681, SWE 781.
Recommended Prerequisite: SWE 619.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 697: Topics in Information Security. 1-6 credits.
Special topics in information security and assurance not occurring in regular ISA sequence. Notes: May be repeated for credit when distinct offerings of course differ in subject. Offered by Computer Science. May be repeated within the term for a maximum 12 credits.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture

700 Level Courses

ISA 763: Security Protocol Analysis. 3 credits.
Teaches how to design, understand, verify, and test communication protocols so they meet their objectives of recognizing the basic components of a communication protocol; specifying security properties accurately; modeling actors and mal-actors against which a protocol ought to be secure; discussing verification and testing methods and their limitations by ensuring that the specified protocol satisfies stated security objectives in the presence of specified mal-actions; designing a medium-size protocol that satisfies a specification of requirement; using existing tools to specify and verify security protocols; and testing protocols for satisfying their security objectives. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisite: ISA 656B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 764: Security Experimentation. 3 credits.
Teaches how to conduct security experimentations and empirically demonstrate, validate, and evaluate security vulnerabilities, exploits, and defense mechanisms. By the end of the course, students will gain a deeper understanding and first-hand experience on capturing packets of interests from both wired and wireless networks, and replying interested network flows and how shellcode various buffer overflows attacks, worms, spyware, rootkits, botnets, anonymous communication and traceback mechanisms work. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: ISA 564B- and 656B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 785: Research in Digital Forensics. 3 credits.
Focuses on research-related aspects of digital forensics including open problems in digital forensics, countermeasures against digital forensics, and fundamental and practical limitations of current digital forensics techniques. Also covers currently established techniques and tools for digital forensics as well as common legal and ethical issues. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Required Prerequisites: (ISA 562B- and INFS 612B-) or CS 555B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 796: Directed Readings in Information Security. 3 credits.
Research and analysis of contemporary problem in information security. Notes: Prior approval required by faculty sponsor who supervises student's work. To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Written report also required. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Recommended Prerequisite: Graduate standing in information security and assurance, with at least 12 prior credits in MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research
ISA 797: Advanced Topics in Information Security. 3 credits.
Special advanced topics not occurring in regular ISA sequence. Notes: May be repeated for credit when distinct offerings of course differ in subject. Offered by Computer Science. May be repeated within the term for a maximum 9 credits.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 798: Research Project. 3 credits.
Research project chosen under guidance of full-time graduate faculty member, resulting in written technical report. Notes: Prior approval required by faculty sponsor who supervises student's work. To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Offered by Computer Science. May be repeated within the degree for a maximum 9 credits.
Recommended Prerequisite: 18 credits applicable toward MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis
ISA 799: Thesis. 1-6 credits.
Original or expository work chosen and completed under supervision of graduate faculty member, which results in technical report accepted by three-member faculty committee. Report must be defended in oral presentation. Notes: To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Offered by Computer Science. May be repeated within the degree.
Recommended Prerequisite: 18 credits applicable toward MS or permission of instructor.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis

800 Level Courses

ISA 862: Models for Computer Security. 3 credits.
This class will be focused on current research in Security with emphasis in Network and Software Security. Notes: May be repeated with change in topic. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Registration Restrictions:

Required Prerequisite: ISA 562B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
ISA 863: Advanced Topics in Computer Security. 3 credits.
Current topics of advanced research. Content varies depending on faculty interests, research developments, and student demand. Requires substantial student participation. May include formal models for computer security, multilevel data models, multilevel database management system architectures, secure concurrency control protocols, distributed secure system architectures, integrity models and mechanisms, security policy, and requirements analysis. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Registration Restrictions:

Required Prerequisite: ISA 562B-.
B- Requires minimum grade of B-.

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture

Software Engineering (SWE)

200 Level Courses

SWE 205: Software Usability Analysis and Design. 3 credits.
Principles of user interface design. Concepts for objectively and quantitatively assessing the usability of software user interfaces. Outcomes include knowledge of quantitative engineering principles for designing usable software interfaces and an understanding that usability is more important than efficiency for almost all modern software projects, and often the primary factor that leads to product success. Major topics include cognitive models for human perceptions and needs, which are used as a basis for analytical and critical thinking about user interfaces; specific engineering principles for designing usable menus, forms, command languages, web sites, graphical user interfaces and web-based user interfaces. Assessments will include written analytical evaluations of existing user interfaces, exams, and HTML-based design projects. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisite: ENGH 101C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture

300 Level Courses

SWE 301: Internship Preparation. 0 credits.
Preparation for Internship Educational Experience. Intended for, but not limited to, students planning internships in the Applied Computer Science Software Engineering Program. Internship employment opportunities. Basic interview skills. Techniques for applying academic knowledge to practical software development. Techniques for extracting knowledge from practical experience. Peer presentation from students who have completed internships. Offered by Computer Science. Limited to two attempts.
Recommended Prerequisite: Limited to ACS or CS majors with junior standing or permission of instructor.
Registration Restrictions:

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
SWE 321: Software Engineering. 3 credits.
An introduction to concepts, methods, and tools for the creation of large-scale software systems. Methods, tools, notations, and validation techniques to analyze, specify, prototype, and maintain software requirements. Introduction to object-oriented requirements modeling, including use of case modeling, static modeling, and dynamic modeling using the Unified Modeling Language (UML) notation. Concepts and methods for the design of large-scale software systems. Fundamental design concepts and design notations are introduced. A study of object-oriented analysis and design modeling using the UML notation. Students participate in a group project on software requirements, specification, and object-oriented software design. Offered by Computer Science. Limited to two attempts. Equivalent to CS 321.
Registration Restrictions:

Required Prerequisites: ((ENGH 302C) or ((HNRS 110C) and (HNRS 122C, 130C, 131C, 230C or 240C)) and (CS 310C)).
C Requires minimum grade of C.

Enrollment is limited to students with a major in Applied Computer Science, Computer Science or Systems Engineering.
Enrollment is limited to students with a minor in Computer Science or Software Engineering.

Enrollment limited to students in a Bachelor of Science or Post-Baccalaureate Certificate degrees.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
SWE 332: Object-Oriented Software Design and Implementation. 3 credits.
In-depth study of software design and implementation using a modern, object-oriented language with support for graphical user interfaces and complex data structures. Topics covered are specifications, design patterns, and abstraction techniques, including typing, access control, inheritance, and polymorphism. Students will learn the proper engineering use of techniques such as information hiding, classes, objects, inheritance, exception handling, event-based systems, and concurrency. Offered by Computer Science. Limited to two attempts. Equivalent to CS 332.
Registration Restrictions:

Required Prerequisite: (CS 310C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture

400 Level Courses

SWE 401: Internship Reflection. 1 credit.
Reflection on Internship Educational Experience. Intended for, but not limited to, students completing internships in the Applied Computer Science Software Engineering Program. Analysis of techniques for applying academic knowledge to practical software development. Analysis of techniques for extracting knowledge from practical experience. Student presentations summarizing internships relating them to academic program goals. Offered by Computer Science. Limited to two attempts.
Recommended Prerequisite: Completion of internship.
Registration Restrictions:

Required Prerequisite: SWE 301C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
SWE 432: Design and Implementation of Software for the Web. 3 credits.
Teaches how to develop software for web applications. Covers client-server computing, theories of usable graphical user interfaces, and models for web-based information retrieval and processing. Goals are to understand how to design usable software interfaces and implement them on web, learn how to build software that accepts information from users across web and returns data to user, and understand how to interact with database engines to store and retrieve information. Specific topics are HTML, CGI programming, Java, Java applets, Javascripts, and Java servlets. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (MATH 125C) and (CS 310C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
SWE 437: Software Testing and Maintenance. 3 credits.
Concepts and techniques for testing and modifying software in evolving environments. Topics include software testing at the unit, module, subsystem, and system levels; developer testing; automatic and manual techniques for generating test data; testing concurrent and distributed software; designing and implementing software to increase maintainability and reuse; evaluating software for change; and validating software changes. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: (MATH 125C and CS 310C).
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture
SWE 443: Software Architectures. 3 credits.
Teaches how to design, understand, and evaluate software systems at an architectural level of abstraction. By end of course, students will be able to recognize major architectural styles in existing software systems, describe a system's architecture accurately, generate architectural alternatives to address a problem and choose from among them, design a medium-size software system that satisfies a specification of requirements, use existing tools to expedite software design, and evaluate the suitability of a given architecture in meeting a set of system requirements. Offered by Computer Science. Limited to two attempts.
Registration Restrictions:

Required Prerequisites: CS 321C, 421C, SWE 321C or 421C.
C Requires minimum grade of C.

Students with the terminated from VSE major attribute may not enroll.

Schedule Type: Lecture

500 Level Courses

SWE 510: Object-Oriented Programming in Java. 3 credits.
Introduces students to programming in the Java language. Topics include problem-solving methods and algorithm development, program structures, abstract data types, simple data and file structures and program development in a modular, object-oriented manner. Introductory use of OO language features, including data hiding, inheritance, polymorphism, and exception handling. Goals include design and development of Java classes and class type hierarchies. An introduction to Java servlets and applets is included. Emphasis on program development is reinforced through several programming projects. Notes: Credit cannot be applied to a graduate degree in the Volgenau School or the BS degree in computer science. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: Undergraduate courses or equivalent knowledge in programming in a high-level language.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Schedule Type: Lecture

600 Level Courses

SWE 619: Object-Oriented Software Specification and Construction. 3 credits.
In-depth study of software construction using modern, object-oriented language with support for graphical user interfaces and complex data structures. Specifications, design patterns, and abstraction techniques, including procedural, data, iteration, type, and polymorphic. Information hiding, classes, objects, and inheritance. Exception handling, event-based systems, and concurrency. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE foundation courses or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 620: Software Requirements Analysis and Specification. 3 credits.
In-depth study of object-oriented requirements modeling, including use case modeling, static modeling and dynamic modeling with Unified Modeling Language (UML) notation. Students participate in group project on software requirements and specification using modern method. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE foundation courses or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 621: Software Modeling and Architectural Design. 3 credits.
Concepts and methods for the architectural design of large-scale software systems are presented. Fundamental design concepts and design notations are introduced. Concepts of requirements analysis and specification are taught. Several design methods are presented and compared. In-depth study of object-oriented analysis and design modeling using the Unified Modeling Language (UML) notation. Students participate in a group project on software requirements, analysis, and design modeling. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE foundation courses or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 622: Distributed Software Engineering. 3 credits.
Hands-on introduction to techniques and programming interfaces for distributed software engineering. Networking protocols at several layers. Construction of distributed and concurrent software using network protocol services. Applications of Internet and web-based software. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE foundation courses or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 625: Software Project Management. 3 credits.
Lifecycle and process models; process metrics; planning for a software project; mechanisms for monitoring and controlling schedule, budget, quality, and productivity; and leadership, motivation, and team building. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE foundation courses or equivalent.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 626: Software Project Laboratory. 3 credits.
Covers requirements analysis, design, implementation, and management of software development project. Students work in teams to develop or modify software product, applying sound principles of software engineering. Uses both industrial and academic standards to assess quality of work products. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 619,620, and 621; or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 631: Software Design Patterns. 3 credits.
Principles of software design patterns. Design patterns as solutions to recurring design problems. Categories of software design patterns; structure patterns, communication patterns. Design patterns in software architectures. Designing software applications using design patterns. Offered by Computer Science. May not be repeated for credit. Equivalent to CS 631.
Recommended Prerequisite: SWE 621.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 632: User Interface Design and Development. 3 credits.
Principles of user interface design, development, and programming. Includes user psychology and cognitive science, menu system design, command language design, icon and window design, graphical user interfaces, web-based user interfaces. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 619, or CS 540 and 571, or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 637: Software Testing. 3 credits.
Students learn to test software effectively. Programmers learn practical ways to design high quality tests during all phases of software development. Students learn the theory behind criteria-based test design and to apply that theory in practice. Topics include test design, test automation, test coverage criteria, and how to test software in cutting-edge software development environments. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 619, or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 642: Software Engineering for the World Wide Web. 3 credits.
Detailed study of engineering methods and technologies for building highly interactive web sites for e-commerce and other web-based applications. Presents engineering principles for building web sites that exhibit high reliability, usability, security, availability, scalability, and maintainability. Teaches methods such as clientserver programming, component-based software development, middleware, and reusable components. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 619 or CS 540 and CS 571, or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 645: Component-Based Software Development. 3 credits.
Introduces concepts and foundations of software component and component-based software. Detailed study of engineering principles of modeling, designing, implementing, testing, and deploying component-based software. Also explores state-of-the-art component technologies. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 619 or CS 540 and CS 571, or permission of instructor.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 681: Secure Software Design and Programming. 3 credits.
Theory and practice of software security, focusing in particular on some common software security risks, including buffer overflows, race conditions and random number generation, and on identification of potential threats and vulnerabilities early in design cycle. Emphasizes methodologies and tools for identifying and eliminating security vulnerabilities, techniques to prove absence of vulnerabilities, ways to avoid security holes in new software, and essential guidelines for building secure software: how to design software with security in mind from the ground up and integrate analysis and risk management throughout the software life cycle. Offered by Computer Science. May not be repeated for credit. Equivalent to ISA 681, SWE 781.
Recommended Prerequisite: SWE 619.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 699: Special Topics in Software Engineering. 3 credits.
Special topics not occurring in regular SWE sequence. Notes: May be repeated for credit when semester topic is different. Offered by Computer Science. May be repeated within the term.
Registration Restrictions:

Enrollment limited to students with a class of Advanced to Candidacy, Graduate, Non Degree or Senior Plus.

Enrollment is limited to Graduate, Non-Degree or Undergraduate level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture

700 Level Courses

SWE 721: Reusable Software Architectures. 3 credits.
Investigates software concepts that promote reuse of software architectures. Studies influence of object technology on software design and reuse. Investigates domain modeling methods, which model the application domain as a software product family from which target systems can be configured. Covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 621.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 722: Service Oriented Architecture. 3 credits.
This course covers the state-of-the-art approaches to building dependable Service-Oriented Architecture (SOA) software systems. A variety of relevant topics are covered, including SOA design principles, implementation platforms and standards, quality of service contracts, runtime management of service providers, and coordination and composition of services. The course includes a final project to exercise the concepts covered in class. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 622 or instructor’s permission.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 724: Program Analysis for Software Testing. 3 credits.
Different methods for analyzing software, primarily for purpose of testing. Analysis techniques, algorithms, tools, and applications. Goals are to explore current research issues, learn how to build analysis tools, and understand how these techniques can be applied to software-related activities such as maintenance, reuse and optimization. Offered by Computer Science. May not be repeated for credit. Equivalent to SWE 824.
Recommended Prerequisite: A compiler class (e.g. CS 540) OR a testing class (e.g. SWE 637) or permission of the instructor.
Schedule Type: Lecture
SWE 727: Quality of Service for Software Architectures. 3 credits.
Builds on acquired skills for modeling architectures, and focuses on the relationship between architectural patterns and qualities of service (QoS). By the end of the course, students will be able to elicit the QoS preferences of stakeholder; recognize major architectural styles and the QoS tradeoffs that each presents; design for and reconcile competing QoS requirements; and evaluate a given architecture with respect to a set of QoS requirements. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 621 or permission of instructor.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 737: Advanced Software Testing. 3 credits.
Cutting edge concepts and techniques in software testing. An in-depth study of existing approaches to testing software as well as development of new approaches. Applications of existing concepts and techniques to new technologies. Advanced MS students learn in-depth knowledge for how to apply testing in difficult and challenging real-world scenarios. PhD students learn current research trends, both theoretical and practical. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 637.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 760: Software Analysis and Design of Real-Time Systems. 3 credits.
Background for students who want to conduct research in software engineering of real-time systems. Provides understanding of key real-time software system analysis, design concepts and methods, and how they are used in developing large-scale, real-time software systems. Also explores potential impact of emerging technologies. Includes term project in design and analysis of complex, real-time software system. Offered by Computer Science. May not be repeated for credit. Equivalent to SWE 860.
Recommended Prerequisite: SWE 621.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 763: Software Engineering Experimentation. 3 credits.
Detailed study of scientific process, particularly using experimental method. Examines how empirical studies are carried out in software engineering. Reviews distinction between analytical techniques and empirical techniques. Other topics include experimentation required in software engineering, problems that can be solved using experimentation, methods used to control variables and eliminate bias in experimentation, and analysis and presentation of empirical data for decision making. Offered by Computer Science. May not be repeated for credit.
Recommended Prerequisite: SWE 621, or permission of instructor.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture
SWE 795: Advanced Topics in Software Engineering. 3 credits.
Advanced topics not occurring in existing courses. Topics normally assume knowledge in one or more existing MS SWE courses. Notes: Repeatable within degree for credit when subject differs. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Recommended Prerequisite: 12 credits applicable toward MS.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Schedule Type: Lecture
SWE 796: Directed Readings in Software Engineering. 3 credits.
Analysis and investigation of contemporary problem in software engineering. Requires prior approval by faculty member who supervises student's work. Written report also required. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Research
SWE 798: Research Project. 3 credits.
Master's degree candidates undertake a project using knowledge gained in MS program. Topics chosen in consultation with a faculty sponsor. Research project is chosen under guidance of full-time graduate faculty member, resulting in written technical report. Notes: Prior approval required by faculty sponsor who supervises student's work. To register, students must complete an independent study form available in department office. It must be initialed by the faculty sponsor and approved by the department chair. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Recommended Prerequisite: 18 credits applicable towards MS degree.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis
SWE 799: Thesis. 1-6 credits.
Research project completed under supervision of faculty member, which results in technical report accepted by three-member faculty committee. Report must be defended in oral presentation. Notes: To register, students must complete independent study form available in department office. It must be initialed by faculty sponsor and approved by department chair. Offered by Computer Science. May not be repeated for credit.
Registration Restrictions:

Enrollment is limited to Graduate or Non-Degree level students.

Students in a Non-Degree Undergraduate degree may not enroll.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Thesis

800 Level Courses

SWE 821: Software Engineering Seminar. 3 credits.
Study of application of software engineering principles, design methods, and support tools through real-life problems extracted from faculty and industry projects. Notes: May be repeated with change in topic. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Recommended Prerequisite: SWE 621
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Seminar
SWE 825: Special Topics in Web-Based Software. 3 credits.
Advanced topics in specifying, designing, modeling, developing, deploying, testing and maintaining software written as web applications and web services. May be repeated with change in topic. Offered by Computer Science. May be repeated within the degree for a maximum 6 credits.
Recommended Prerequisite: SWE 642 Software Engineering for the World Wide Web.
Registration Restrictions:

Enrollment is limited to Graduate level students.

Enrollment limited to students in the College of Science, Schar School of Policy and Gov or Volgenau School of Engineering colleges.

Schedule Type: Lecture