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